首页 理论教育 程序设计:模拟被控对象和连续PID控制器初始化设置及精确采样方案

程序设计:模拟被控对象和连续PID控制器初始化设置及精确采样方案

时间:2023-06-28 理论教育 版权反馈
【摘要】:下面是OB100中的程序:程序段1:初始化模拟被控对象的FB100程序段2:初始化连续PID控制器FB41程序段3:复位启动标志程序段4:令PID设定值的初值为70%3.循环中断组织块OB35为了保证PID运算的采样时间的精度,在循环中断组织块OB35中调用FB41和FB100。

程序设计:模拟被控对象和连续PID控制器初始化设置及精确采样方案

1.在OB1中产生方波给定信号

在OB1中,用T8和T9组成振荡电路(见图10-16),T8的常开触点的接通和断开的时间均为30s。"PID_DI".SP_INT是FB41的背景数据块PID_DI中存放控制器浮点数设定值的输入参数SP_INT。在T8的常开触点刚接通和刚断开时,分别将设定值SP_INT修改为浮点数20.0%和70.0%,设定值的波形为方波。

978-7-111-53570-6-Chapter10-25.jpg

图10-16 OB1中的梯形图

2.起动组织块OB100

在OB100中调用FB41和模拟被控对象的功能块FB100,设置下述输入参数的初始值。

1)令FB41和FB100的起动标志COM_RST为TRUE,将PID控制器和被控对象的内部参数初始化为默认值。

2)设置FB41和FB100的采样时间CYCLE为200ms,它们的采样时间一般与OB35的循环执行周期相同,也可以是OB35周期的若干倍。

3)设置被控对象的增益和时间常数的值。因为输入参数TM_LAG3(惯性环节的时间常数)为0,实际上模拟的被控对象只有两个惯性环节。被控对象的传递函数为3/[(5s+1)(2s+1)]。

4)设置PID控制器的参数GAIN、TI和TD的初始值。假设AO模块为双极性输出,设置控制器输出下限值为-100.0%,上限值为默认的100.0%。

5)FB41默认的设置为PI控制器,将参数D_SEL设置为1(TRUE),该控制器为PID控制器。设置微分操作的延迟时间TM_LAG为0ms,微分部分未使用惯性滤波环节。

6)设置MAN_ON为FALSE,控制器工作在自动方式。

7)在退出OB100之前,将两个FB的起动标志位COM_RST复位,以后在执行FB41和FB100时,COM_RST位的值均为0。

未设置的输入参数采用其默认值(即初始值)。下面是OB100中的程序:

程序段1:初始化模拟被控对象的FB100

978-7-111-53570-6-Chapter10-26.jpg

程序段2:初始化连续PID控制器FB41

978-7-111-53570-6-Chapter10-27.jpg

978-7-111-53570-6-Chapter10-28.jpg

程序段3:复位启动标志

978-7-111-53570-6-Chapter10-29.jpg(www.xing528.com)

程序段4:令PID设定值的初值为70%

978-7-111-53570-6-Chapter10-30.jpg

3.循环中断组织块OB35

为了保证PID运算的采样时间的精度,在循环中断组织块OB35中调用FB41和FB100。

在OB35中使用在OB100中设置的FB41和FB100的参数初始值,直到用PID参数赋值工具修改了其中的某些参数。在OB100和OB35中未设置的FB41和FB100的输入、输出参数,将使用它们的默认值。在FB41和FB100的局部变量表或FB41的在线帮助中,可以看到各输入、输入参数的默认值。

FB41的背景数据块DB41的符号名为“PID_DI”,FB100的背景数据块DB100的符号名为“对象DI”。将PID控制器的输出参数值"PID_DI".LMN送给FB100的输入参数INV,将FB100的输出参数值"对象DI".OUTV送给PID控制器的过程变量输入PV_IN,FB41和FB100组成了图10-14所示的闭环。因为是用软件对被控对象仿真,不涉及模拟量输入模块和模拟量输出模块,闭环中的变量均为浮点数。

因为是自动方式(MAN_ON为FALSE),不用设置手动输入值MAN。

输入端的选择开关PVPER_ON为默认值FALSE,采用浮点数格式的过程变量。过程变量不是来自外部设备(AI模块),不用设置PV_PER(外设输入过程值)。因为PID的输出不是送给AO模块,不用设置I/O格式的控制器输出LMN_PER。

在实际的语句表程序中,如果要给功能块的某个输入、输出参数添加注释,必须设置该变量的实参。下面是循环中断组织块OB35的程序。

程序段1:调用被控对象仿真程序FB100

978-7-111-53570-6-Chapter10-31.jpg

程序段2:调用连续PID控制器FB41

978-7-111-53570-6-Chapter10-32.jpg

978-7-111-53570-6-Chapter10-33.jpg

4.仿真系统的程序与实际的PID程序的区别

对于工程实际应用,在例程“PID控制”的基础上,PID控制程序应作下列改动:

1)删除OB100和OB35中调用FB100(过程对象)的指令,以及OB1中产生方波给定信号的程序。

2)实际的PID控制程序一般使用来自AI模块的过程变量PV_PER,后者应设为实际使用的AI模块的通道地址。用来选择输入参数的PVPER_ON应设置为TRUE(使用外设变量),不用设置浮点数输入过程变量PV_IN的实参。

3)不用设置浮点数输出LMN的实参,LMN_PER(外设输出值)设为实际使用的模拟量输出模块的通道地址。

4)如果系统需要自动/手动两种工作模式的切换,FB41的参数MAN_ON应设置为切换自动/手动的BOOL变量。手动时该变量为1状态,参数MAN应为用于输入手动值的地址。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈