![先进PID控制MATLAB仿真(第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/9/47549009/b_47549009.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.2 线性时变系统的PID控制
被控对象为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_25_3.jpg?sign=1739000951-BGoiOXQi8rh2MGrpQjJEO8tL8NtEh5Ho-0-d24108b57b8c99db8d20ef11faf7c076)
输入指令信号为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=1739000951-au8Wx5hEzINIRuVFBsoZbyk884aOeJfB-0-0b31c749d2249da9e9864678fddcb7cc)
图1-6 基于Simulink模块的PID控制正弦响应
〖仿真程序〗
(1)Simulink仿真主程序:chap1_4.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_1.jpg?sign=1739000951-bY0t1AkFajcFaMWxGR3qyG1HPFZQ95Sz-0-714283f353f8b384ace26656cfb1c208)
其中被控对象封装模块如下:
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_2.jpg?sign=1739000951-2Y1i5JDHkDP0DbZrM7deyVmIDbuK2UYr-0-014ab71f8f00606a1e4afbf43dd9d5a6)
(2)作图程序:chap1_4plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_3.jpg?sign=1739000951-iCmei0fOynMWi0BUS2LOpTnfw7XFeP8x-0-b762047adc225a947e151b5293eaa28d)
【仿真之二】 基于S函数的PID控制
被控对象为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_4.jpg?sign=1739000951-OtfKyjwZtwUhW1xKzXL756nooBamT7jU-0-d591f425bece72ca81ccff64fd0f66a8)
被控对象的描述方式可转换为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_1.jpg?sign=1739000951-AefTEjzG36zy5Ai2Ig14M3BSPUZ8C8Xt-0-7577e5f687929f56d526f7774f53a2c5)
在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=1739000951-jo28RhPGdeIyb5RoNizKvtUMwYTieCsu-0-8950ee4de43256861fedb4c21c8b2cfe)
图1-7 基于S函数的PID控制正弦响应
〖仿真程序〗
(1)Simulink主程序:chap1_5.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_4.jpg?sign=1739000951-B3RXvVhosw14xPVGgTsDx3lEUO75yzMW-0-5c654166b8546a113c07f06e7bf2c943)
(2)S函数控制器子程序:chap1_5ctrl.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_5.jpg?sign=1739000951-56DaEuBdXHsah47c6tLWhI2IgPlE0Ujw-0-1b21b9000ba8bd4ffafbc6cbbd88f3ee)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_28_1.jpg?sign=1739000951-JmFZ7PRU5dvKcITaDgH82QmLJjoafdgY-0-f8debf7ab0c7fc7e826f1eac5c11b727)
(3)S函数被控对象子程序:chap1_5plant.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_28_2.jpg?sign=1739000951-qelOK9f4iOvdYGEtCdYW7dPozJQWcSgv-0-3bfcce24bd0bae0d26940f858f1e8123)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_29_1.jpg?sign=1739000951-MnP2ZEx1O8YTz8Nh2beEg4jXmKz2XqZZ-0-0f095ea55b01b943a574199afd11a3ab)
(4)作图程序:chap1_5plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_29_2.jpg?sign=1739000951-fT0kgKT3cAhq3DHlAojTZcO0Z9UfsQU6-0-b70ed4dacddca74b2676101760c83fec)
通过本实例的仿真可见,采用S函数可很容易地表示复杂的被控对象及控制算法,特别适合于复杂控制系统的仿真。