先进PID控制MATLAB仿真(第5版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 线性时变系统的PID控制

被控对象为

输入指令信号为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所示。

图1-6 基于Simulink模块的PID控制正弦响应

〖仿真程序〗

(1)Simulink仿真主程序:chap1_4.mdl

其中被控对象封装模块如下:

(2)作图程序:chap1_4plot.m

【仿真之二】 基于S函数的PID控制

被控对象为

被控对象的描述方式可转换为

在S函数中,采用初始化、微分函数和输出函数,即mdlInitializeSizes函数、mdlDerivatives函数和mdlOutputs函数。在初始化中采用sizes结构,选择1个输出、3个输入,3个输入实现了P、I、D三项的输入。S函数嵌入在Simulink程序中。系统初始状态为x(0)=0、。取kp=10、ki=2、kd=1。仿真结果如图1-7所示。

图1-7 基于S函数的PID控制正弦响应

〖仿真程序〗

(1)Simulink主程序:chap1_5.mdl

(2)S函数控制器子程序:chap1_5ctrl.m

(3)S函数被控对象子程序:chap1_5plant.m

(4)作图程序:chap1_5plot.m

通过本实例的仿真可见,采用S函数可很容易地表示复杂的被控对象及控制算法,特别适合于复杂控制系统的仿真。