- 先进PID控制MATLAB仿真(第5版)
- 刘金琨编著
- 430字
- 2023-12-12 19:43:35
1.2.2 线性时变系统的PID控制
被控对象为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_25_3.jpg?sign=1739005097-4yuF93o7dzgqeygbNworAG7tuGwpEs40-0-a2a3562b379c9e71a39c3bd0a3acb8f5)
输入指令信号为0.5sin(2πt),J=20+10sin(6πt),K=400+300sin(2πt)。采用PD控制算法进行正弦响应。
【仿真之一】 基于Simulink模块的PID控制
通过Simulink模块实现不确定对象的表示,取kp=10、ki=10、kd=10。仿真结果如图1-6所示。
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_25_4.jpg?sign=1739005097-vC6hjbsZEwUxyQibN17wSS3qadp5Bzv5-0-726e551de21fc3f28f3a0fd3a3020fb6)
图1-6 基于Simulink模块的PID控制正弦响应
〖仿真程序〗
(1)Simulink仿真主程序:chap1_4.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_1.jpg?sign=1739005097-kPZklwem7ZUJnpEHcdyL76XeoKJRCdCh-0-76f10d346f43e4a8f5082fcbbe5bdcc0)
其中被控对象封装模块如下:
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_2.jpg?sign=1739005097-Or7YpqDQv3M9AjsCCKIxqw5wSWjzOqhc-0-da59280c7a27f1659f0ac425fa7c242d)
(2)作图程序:chap1_4plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_3.jpg?sign=1739005097-ATnuN0f86FkjWsiGJi4bhGlcJOAYWGgN-0-92ec4187cc11a7dcb1b51e833796569e)
【仿真之二】 基于S函数的PID控制
被控对象为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_4.jpg?sign=1739005097-4q8u4DH9IfVNOREBTbn6Pps54Up2z1nM-0-9ff6f783011dc6e67abe60e7ba480ace)
被控对象的描述方式可转换为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_1.jpg?sign=1739005097-LMDvPf9sBbntCg5z0EB5H20z6P6FHkT8-0-6e45211598027e68194ce7d34dfd64b7)
在S函数中,采用初始化、微分函数和输出函数,即mdlInitializeSizes函数、mdlDerivatives函数和mdlOutputs函数。在初始化中采用sizes结构,选择1个输出、3个输入,3个输入实现了P、I、D三项的输入。S函数嵌入在Simulink程序中。系统初始状态为x(0)=0、。取kp=10、ki=2、kd=1。仿真结果如图1-7所示。
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_3.jpg?sign=1739005097-OkGGCFePJ8usp5DiHXAbH248FKvjm3Nu-0-843f701ff3deb655877978d6a5f7f2ad)
图1-7 基于S函数的PID控制正弦响应
〖仿真程序〗
(1)Simulink主程序:chap1_5.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_4.jpg?sign=1739005097-0z2ZeG96mFb8nza9HKuRFwW6sPgHJOM4-0-504413d26c07b715a2668a3c9886cfa0)
(2)S函数控制器子程序:chap1_5ctrl.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_5.jpg?sign=1739005097-cjKx7tizmfmMod0ziiMiZS8Qko5nuDBG-0-c3f9fd02f0bf4232de202be085e5d752)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_28_1.jpg?sign=1739005097-OAurn5jKQySBwyyex9i772Nd46OLFI35-0-41bad1567e6975726cef220dd1b4e39f)
(3)S函数被控对象子程序:chap1_5plant.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_28_2.jpg?sign=1739005097-AKqbOtMkulwt7OI6CS0iVtC6X7ZdzC6o-0-c00e05d38a83031e92a09075eb7f2a1d)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_29_1.jpg?sign=1739005097-EejB457COrRh51xtUJbYVetYqZM0JYkA-0-de8d423923f4c7ac21b9e40aed63e4ab)
(4)作图程序:chap1_5plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_29_2.jpg?sign=1739005097-mGy5mrYW7rLmEQ4mtPIQdFOnXT1AtLSO-0-dea49f99af9a5c2aef94af5152e47a08)
通过本实例的仿真可见,采用S函数可很容易地表示复杂的被控对象及控制算法,特别适合于复杂控制系统的仿真。