上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函数可很容易地表示复杂的被控对象及控制算法,特别适合于复杂控制系统的仿真。