![先进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=1738872930-CinybEiofqRkuIiFDXoK1JOKtSxK5AiZ-0-119d33cac59b349b9fce74c25e1353cf)
输入指令信号为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=1738872930-M4OKPV8L1IhINM5qDTiGirpukqYzcIeS-0-cc5916d1f3b6454ee483247d17d21196)
图1-6 基于Simulink模块的PID控制正弦响应
〖仿真程序〗
(1)Simulink仿真主程序:chap1_4.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_1.jpg?sign=1738872930-qQpT2YXs3VX79tc4VApGfOfC009ZVxPa-0-03c2681437f3045c9581849617b0aff6)
其中被控对象封装模块如下:
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_2.jpg?sign=1738872930-MY1xg3Xm03hXyCjrKmnKwBl55Fbk338G-0-8ed7cbbb1662dbeeb5ba6af3628a2e51)
(2)作图程序:chap1_4plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_3.jpg?sign=1738872930-8nXR29xLcaQFfCHBaEh3l097UZaB7ipK-0-0537307cd695cdbfca70f3fc0735f157)
【仿真之二】 基于S函数的PID控制
被控对象为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_26_4.jpg?sign=1738872930-uXcChAcfHbsDDG6GgYc7NLDvYJXqoZg7-0-2eddb40bb7425bab8d621b5247041e12)
被控对象的描述方式可转换为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_1.jpg?sign=1738872930-KkzNEnGc1IwbBuzkIqXIRIortGwvr2Wj-0-8473732ae7201870bd9fbc7fea1a9ece)
在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=1738872930-IpMHg5FfYOx2agtgm58erOP3jgXXgY5F-0-895b27af52bb54bbf07912f99ceb5dce)
图1-7 基于S函数的PID控制正弦响应
〖仿真程序〗
(1)Simulink主程序:chap1_5.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_4.jpg?sign=1738872930-4gNu7xgz8whKhIpn0gr5Z40eRh3BwD15-0-3b8d13f07a66424cb3eb41e52d5dfd0f)
(2)S函数控制器子程序:chap1_5ctrl.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_27_5.jpg?sign=1738872930-AVem1zJC2YXbSvUpZiWsPYR0Y3VwOpaj-0-ebdc6b9231d3a1c1420b88f6bf83b9ad)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_28_1.jpg?sign=1738872930-jic6CoSDl2itTKYHvs7QZGw8K2mAvJ94-0-7dc3ba24f4d979dfb3acd41a52823695)
(3)S函数被控对象子程序:chap1_5plant.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_28_2.jpg?sign=1738872930-OBLRuYKdTO94I3VTEUAop8ounNWtv6GC-0-ee14048c11718f2ae73a768101ef54c6)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_29_1.jpg?sign=1738872930-92QtinVAODBYhcAQFPZTtCAsmNfER3sX-0-989371b919a864c104fa3a6fb067e21c)
(4)作图程序:chap1_5plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_29_2.jpg?sign=1738872930-NqSFpnCeMcwibQw9iqzR0zjTsDCdKxx7-0-07084e8d43a6d9968f24890463909800)
通过本实例的仿真可见,采用S函数可很容易地表示复杂的被控对象及控制算法,特别适合于复杂控制系统的仿真。