响应曲线及虚拟的PID控制器的控制按钮等加以显示。
5. PID控制器控制作用输出子程序:
将PID控制器的控制作用转换成执行机构所能接受的电压信号输
出。
Lab VIEW中PID工具中包括用于Lab VIEW环境中开发控制系统的各种函数。为了适应工程实际使用中的需要,还对式(4—1)做了必要的修正,并为用户提供接口,以便根据现场情况配置参数。
应用LabVIEW 提供的功能软件实现PID控制功能的程序的前面板如图(4-10)所示,流程图如(4-11)所示。
10.07.5Input Device1Input Channel05.02.50.0Output DeviceOutput Channel01Set Point4620Lower Limit0.0008100.2011.010.510.09.59.0500505000.350P0.200I25.000D0.000Upper Limit10.000Loop Delay(ms)20301040STOP0
图4-10 PID控制程序前面板
§4.3 程序的仿真试验[19][25][31]
为验证程序的准确性,在进行仿真时选择了三个对象,并利用LabVIEW提供的实时控制模块(RT模块)模拟对象的传递函数。
在进行PID控制程序仿真演示时,对原有的程序进行了如下的改动: 1. 1. 设定值子程序:
.将原有程序中测量值与设定值之间的差值(即偏差值)改为由单位阶跃信号替代。
2. 2. 模拟对象环节子程序:
利用LabVIEW提供的实时控制模块(RT模块)模拟对象的传递函数。
PID控制功能演示程序流程图如图(4-12)所示。
§4.3.1 仿真演示实例一
在LabVIEW环境下选择的传递函数为:
10W(s)?1?1.5s
(4-14)
这是一个一阶惯性环节,当PID参数整定为:δ=22%; TI=15s; TD=0s时,其仿真结果如图(4-13)所示。在仿真过程中设定值采用的是方波信号。
§4.3.2 仿真演示实例二
在LabVIEW环境下选择的传递函数为:
101W(s)??(1?10s)(1?0.1s) (4-15)
这是一个二阶惯性环节,当PID参数整定为:δ=8.5%; TI=12s; TD=3s时,其仿真结果如图(4-14)所示。在仿真过程中设定值采用的是单位阶跃信号。
若比例作用增加,即PID参数整定为:δ=2.5%; TI=12s; TD=3s; 若比例作用减弱,即PID参数整定为:δ=17%; TI=12s; TD=3s; 若积分作用减弱,即PID参数整定为:δ=8.5%; TI=30s; TD=3s; 若积分作用增强,即PID参数整定为:δ=8.5%; TI=6s; TD=3s; 若微分作用增加,即PID参数整定为:δ=8.5%; TI=12s; TD=16s; 若微分作用减弱,即PID参数整定为:δ=8.5%; TI=12s; TD=1. 5s。 取上述参数时其仿真结果比较如图(4-15)所示。 §4.3.3 仿真演示实例三
在LabVIEW环境下选择的传递函数为:
0.723?3?W(s)?e1?8s(4-16)
这是一个具有纯滞后的一阶惯性环节,也就是在第二章中系统测试软件所选择的实验对象。
??s由自动控制理论可知,当系统内含有纯滞后环节时,可将纯滞后因子e用
[5]
有理函数来近似。我们知道一个指数函数可以用如下极限表示:
1ne??s?lim()n???1?sn (4-17)
??这就是说,纯滞后环节可以用无穷个具有极点为n值(n??)的一阶环节串联起来表示。当然,为了简化起见常用近似公式,例如近似取n=3时则:
???1??e??s????1?s???3? (4-18) ?即用三个一阶环节串联来近似。对于式(4-17)的表示形式,n取得愈大则愈精确地近似理想值,但增加了分析计算时的复杂性。
指数函数的另一个近似公式是用马克劳林展开式,它由式(4-19)表示:
1e??s??2s2?3s31??s???......2!3!
(4-19)
3在计算时,可以取前面几项。如取一项则可写成:
11W(s)?e??s?1?Ts(1?Ts)(1??s)
(4-20)
同理,也可以将式(4-16)近似表示为:
0.7212?3s0.7212W(s)?e?1?8s(1?8s)(1?3s) (4-21)
当PID参数整定为:δ=23%; TI=360s; TD=90s时,其仿真结果如图(4-16)所示。在仿真过程中设定值采用的是单位阶跃信号。
若比例作用增加,即PID参数整定为:δ=2%; TI=360s; TD=90s; 若比例作用减弱,即PID参数整定为:δ=50%; TI=360s; TD=90s; 若积分作用减弱,即PID参数整定为:δ=23%; TI=720s; TD=90s; 若积分作用增加,即PID参数整定为:δ=23%; TI=180s; TD=90s;