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

1.3.3 离散系统的数字PID控制算法

控制对象为

采样时间为1ms,采用z变换进行离散化,经过z变换后的离散化对象为

yk)=-den(2)yk-1)-den(3)yk-2)-den(4)yk-3)+num(2)uk-1)+num(3)uk-2)+num(4)uk-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)量进行累加,计算机输出控制量uk)对应的是执行机构的实际位置偏差,如果位置传感器出现故障,uk)可能会出现大幅度变化。uk)的大幅度变化会引起执行机构位置的大幅度变化,这种情况在生产中是不允许的,在某些重要场合还可能造成重大事故。为避免这种情况的发生,可采用增量式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