- 先进PID控制MATLAB仿真(第5版)
- 刘金琨编著
- 9字
- 2023-12-12 19:43:34
1.2 连续系统的PID仿真
1.2.1 基本的PID控制
以二阶线性传递函数为被控对象,进行模拟PID控制。在信号发生器中选择正弦信号,仿真时取kp=60、ki=1、kd=3,输入指令为yd(t)=Asin(2πFt),其中A=1.0,F=0.20Hz。采用ODE45迭代方法,仿真时间为10s。
【仿真之一】 PID控制Simulink仿真
PID控制器由Simulink下的工具箱提供。
Simulink仿真程序:chap1_1.mdl。
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_19_2.jpg?sign=1739388135-wQC4N6JIRID8ckg16j5MOf2MTbxnXE2l-0-95f48c5fd197348acda3bf437b80fd47)
上述PID控制器采用Simulink封装的形式,其内部结构如下:
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_19_3.jpg?sign=1739388135-W4UFOneYT1DRRf9XtkkiYk6EoPzX4zah-0-6226f582370d02a11dc2daf20d78a323)
连续系统的模拟PID控制正弦响应如图1-2所示。
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_19_4.jpg?sign=1739388135-7yfJkAcARkrGsC0ZLMJ2rN6GelRReZMD-0-af9fc6575ce18838ae44e232c4efed6f)
图1-2 连续系统的模拟PID控制正弦响应
【仿真之二】 基于M语言作图的PID控制Simulink仿真
在仿真之一的基础上,将仿真结果输出到工作空间中,利用M语言作图,仿真结果如图1-3所示。
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_20_1.jpg?sign=1739388135-skkRlGwTnxJuG1S0fKINqHsBXyLBra19-0-97b13a4be5af7890eb8f34da5627a41e)
图1-3 基于M语言作图的PID控制正弦响应
〖仿真程序〗
(1)Simulink仿真程序:chap1_2.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_20_2.jpg?sign=1739388135-Y2YrA2g7AmgGGNz19J1TykiRUsNzBuwk-0-fc30fbdc510d778af276e49307e1e67e)
程序中同时采用了传递函数的另一种表达方式,即状态方程的形式,其中
,
,C=[1 0],D=0。
(2)作图程序:chap1_2plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_20_6.jpg?sign=1739388135-OWjg1DXbio639dfosJpQ26RuXrmX5WUi-0-8363c9f122f688de44bf939c555dbefe)
【仿真之三】 基于S函数的PID控制Simulink仿真
仍以二阶线性传递函数为被控对象,进行模拟PID控制。被控对象形式为,其中b为在[103,163]范围内随机变化,a为在[15,35]范围内随机变化,则被控对象的描述方式可转换为
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_21_1.jpg?sign=1739388135-sPQ6XuebdvLHgzoP8N0QZ3reXnc29R36-0-f5a7630640b26ea13e70a719324a4943)
S函数是Simulink一项重要的功能,采用S函数可实现在Simulink下复杂控制器和复杂被控对象的编程。在仿真之一的基础上,利用S函数实现上述对象的表达、控制器的设计及仿真结果的输出。
在S函数中,采用初始化、微分函数和输出函数,即mdlInitializeSizes函数、mdlDerivatives函数和mdlOutputs函数。在初始化中采用sizes结构,选择2个输出、3个输入,3个输入实现了P、I、D三项的输入。S函数嵌入在Simulink程序中。系统初始状态为x(0)=0、。仿真结果如图1-4所示。
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_21_3.jpg?sign=1739388135-azpu2HrkcFtbISvTkXi00btx2q1kJRCA-0-81cb19ee66bc6722627e0cd2040b3fea)
图1-4 基于S函数的PID控制正弦响应
〖仿真程序〗
(1)Simulink仿真主程序:chap1_3.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_21_4.jpg?sign=1739388135-EeKkeiFmjfY9incyZTNhNmSMGgkq282D-0-9e7d0a194d43521a12e6d9f4f11c5396)
(2)S函数PID控制器程序:chap1_3s.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_21_5.jpg?sign=1739388135-1TWaoTMPvrBPE8npYnrOuQbFU381mtT8-0-b733d998a1e54bd7fe8f433167bc232f)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_22_1.jpg?sign=1739388135-ESswpfnaMeSH3kmka2Ndvw7BnnaBjtS2-0-a63b51630fba768a6f97a18661df66f4)
(3)S函数被控对象程序:chap1_3plant.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_22_2.jpg?sign=1739388135-4rEJIDntez1uSd5ulgySdueIuskZ5Iqr-0-215907f32f2aa2a1b31510e3b0c50d96)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_23_1.jpg?sign=1739388135-DTg4mb6SFG59sV8DzOwNCspARHES0kJJ-0-b552a52e06af644634a91b13690ce326)
(4)作图程序:chap1_3plot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_23_2.jpg?sign=1739388135-njqrNW0C0Onxusu3fZ2KZHQS0MHmVODc-0-260057b3481336cdf66cf347042920ec)
【仿真之四】 基于简化S函数的PID控制Simulink仿真
利用简化S函数形式实现被控对象的表达、控制器的设计及仿真结果的输出。在简化S函数中,flag=0时为S函数初始化。S函数支持多采样周期的系统,x0=[]为系统初始值设定,flag=1时为S函数被控对象微分方程的描述,flag=3时为S函数输出。仿真结果如图1-5所示。
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_24_1.jpg?sign=1739388135-EVzco4jEONJoqVzYWXzauNdYbUhq2Mum-0-aa9451b7f7b30aa74c335ca220e4bad5)
图1-5 基于简化S函数的PID控制正弦响应
〖仿真程序〗
(1)Simulink仿真主程序:chap1_3n.mdl
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_24_2.jpg?sign=1739388135-tVTsaaQlmhf1dTo4aC1QTiprYgNlsQwg-0-ea3c2cfca3088dc9098ece44937abbe8)
(2)简化的S函数控制器程序:chap1_3ns.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_24_3.jpg?sign=1739388135-8ny5sdupgPDLxpFd09m2Jok1tAGpY0Bw-0-3655c2a47309d75f58d4a7009b18ce52)
(3)简化S函数被控对象程序:chap1_3nplant.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_24_4.jpg?sign=1739388135-ukuF5yV9GGUVViefvZbyhQP5mJTKok8O-0-889c761bfe2b93c4b7b9045ed67121f2)
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_25_1.jpg?sign=1739388135-OePX6AzFOxTSvGukDUfuY72X4LQwniYv-0-b87b42442777f23a7aa4017cdc4894f0)
(4)作图程序:chap1_3nplot.m
![](https://epubservercos.yuewen.com/49A0DC/26947284307535106/epubprivate/OEBPS/Images/45295_25_2.jpg?sign=1739388135-cEcQqcYm4pdhrgcXCsdRyPXhn3lpGDFL-0-b8564d5969e0079cfa16fb4ed1fb08d5)