PID控制的难点在于整定控制器的参数。为了学习整定PID控制器参数的方法,必须做闭环实验,开环运行PID程序没有任何意义。用硬件组成一个闭环需要plc的CPU模块、模拟量输入模块和模拟量输出模块,此外还需要被控对象、检测元件、变送器和执行机构。例如可以用电热水壶作为被控对象,用热电阻检测温度,用温度变送器将温度转换为标准电压,用移相控制的交流固态调压器作执行机构。
有没有比较简单的实现PID闭环控制的方法呢?
在控制理论中,用传递函数来描述被控对象、检测元件、执行机构和PID控制器。
被控对象一般是串联的惯性环节和积分环节的组合。在实验室可以用以运算放大器为核心的模拟电路来模拟广义的被控对象(包括检测元件和执行机构)的传递函数。我曾将这种运放电路用于S7-200和S7-1200的PID参数自动调节实验。
用运算放大器模拟被控对象一般需要做印刷电路板,还是比较麻烦。有没有更简单的方法呢?
除了用运算放大器来模拟被控对象的传递函数,也可以用PLC的程序来模拟。为此我编写了用来模拟被控对象的S7-200的子程序,它也可以用于S7-200 SMART。使用模拟的被控对象的PID闭环示意图如下图所示,虚线右边是被控对象,DISV是系统的扰动输入值。虚线左边是PLC的PID控制程序。
被控对象的数学模型为3个串联的惯性环节,其增益为GAIN,3个惯性环节的时间常数分别为TIM1~TIM3。其传递函数为
分母中的“s”为自动控制理论中拉普拉斯变换的拉普拉斯算子。将某一时间常数设为0,可以减少惯性环节的个数。图中被控对象的输入值INV是PID控制器的输出值。被控对象的输出值OUTV作为PID控制器的过程变量(反馈值)PV。
下图是模拟被控对象的子程序,实际上只用了两个惯性环节,其时间常数分别为5000ms和2000ms。用与PID的采样周期相同的定时中断时间间隔来调用这个子程序。
下图是用来监视PID回路运行情况的STEP 7-Micro/WIN的PID调节控制面板,可以用它进行PID参数自整定或手动调节PID参数的实验。标有PV(即被控量)的是过程变量的阶跃响应曲线。
将上图中的积分时间由0.03min(分钟)增大到0.12min,下图的超调量有明显的减小。通过修改PID的参数,观察被控量阶跃响应曲线给出的超调量和调节时间等特征量的变化情况,可以形象直观、快速地学习和掌握PID参数的整定方法。