1.3.3 离散系统的数字PID控制算法
控制对象为
采样时间为1ms,采用z变换进行离散化,经过z变换后的离散化对象为
y(k)=-den(2)y(k-1)-den(3)y(k-2)-den(4)y(k-3)+num(2)u(k-1)+num(3)u(k-2)+num(4)u(k-3)
【仿真之一】 指令为阶跃信号、正弦信号和方波信号
设计离散PID控制器。其中,S为信号选择变量,S=1时为阶跃跟踪,S=2时为方波跟踪,S=3时为正弦跟踪,仿真结果如图1-13~图1-15所示。
图1-13 PID阶跃跟踪(S=1)
图1-14 PID方波跟踪(S=2)
图1-15 PID正弦跟踪(S=3)
〖仿真程序〗 chap1_9.m
【仿真之二】 指令为三角波、锯齿波和随机信号
设计离散PID控制器,各信号的跟踪结果如图1-16~图1-18所示,其中S代表输入指令信号的类型。通过取余指令mod实现三角波和锯齿波。当S=1时为三角波,S=2时为锯齿波,S=3时为随机信号。在仿真过程中,如果D=1,则通过pause命令实现动态演示仿真。在随机信号跟踪中,对随机信号的变化速率进行了限制。
图1-16 PID三角波跟踪(S=1)
图1-17 PID锯齿波跟踪(S=2)
图1-18 PID随机信号跟踪(S=3)
〖仿真程序〗 chap1_10.m
上述PID控制算法的缺点是,由于采用全量输出,所以每次输出均与过去的状态有关,计算时要对error(k)量进行累加,计算机输出控制量u(k)对应的是执行机构的实际位置偏差,如果位置传感器出现故障,u(k)可能会出现大幅度变化。u(k)的大幅度变化会引起执行机构位置的大幅度变化,这种情况在生产中是不允许的,在某些重要场合还可能造成重大事故。为避免这种情况的发生,可采用增量式PID控制算法。
【仿真之三】 采用Simulink实现离散PID控制器
离散PID控制的封装界面如图1-19所示,在该界面中可设定PID的三个系数、采样时间及控制输入的上下界。仿真结果如图1-20所示。
图1-19 离散PID控制的封装界面
图1-20 采用Simulink离散PID控制的阶跃跟踪
〖仿真程序〗
(1)Simulink主程序:chap1_11.mdl
离散PID控制的比例、微分和积分三项分别由Simulink模块实现。
离散PID控制器子程序如下:
(2)作图程序:chap1_11plot.m