Somachine软件当中有很多的库文件,在其中包装库中有一个TemperatureControl功能块,如下图所示:
包装库提供了温度加热控制功能,该库中的 TemperatureControl 功能块通过自动调谐算法找到 PID 参数,通过 PID 控制算法精确的控制温度。
新建程序后我们可以先在“库管理器”中添加Packaging这个库。
程序当中我们直接调用该功能块,这里以一路模拟量输入为例,功能块pwm输出信号来调节温度。
自整定算法采用基于 Ziegler-Nichols 曲折切线法确定 PID 参数。
PID 的数学模型是在用拉普拉斯变换方法求解微分方程过程中引出来的复域中的数学模型,它不但能等同微分方程反映系统的输入、输出动态特性,而且能间接的反映结构、参数变化是对系统输出的影响。
PID 传递函数只取决于系统的结构和参数,与外界输入无关。 Ziegler 和 Nichols 于 20 世纪 40 年代提出了基于带有延迟的一阶传递函数模型的传统 PID 控制经验公式,这种回路整定技术使得 PID 算法知道现在还没广泛应用在工业控制领域内反馈控制策略中。 这种方法计算过程值的最大响应速度和死区时间,计算出时间常数后再确定 PID 参数。
TemperatureControl 功能块集成了自整定功能、数字滤波功能和 PWM 功能。
功能块具体参数说明请参考 SoMachine 在线帮助。
为了更直观的显示功能块的状态,我们可以在SoMachine中调用可视化界面来控制功能块。
首先是参数的整定
通过可视化界面执行 PID 参数整定、自动控制。
a) 使能功能块:点击按钮 1,功能块进入使能状态, Enable Out 输出 true;
b) 开启自整定:点击按钮 2,功能块自整定功能启用;
c) 执行功能块:点击按钮 3,进入自整定状态;
d) 参数确定:整定完成后, AttnStaId=6,功能块进入 ready 状态,关闭自整定功能(再次点击按钮 2) ,此时 PID 整定后参数通过程序赋值给 PID 输入参数并作为后续 PID 控制参数。
然后让功能块自动运行
a) 使能功能块: 点击按钮 1,功能块进入使能状态, Enable Out 输出 true;
b) 修改设定值 Sp1:修改设置值 Sp1 后,按键盘上 Enter 键确认;
c) 触发功能块:点击按钮 3,功能块进入 PID 自动控制状态;
通过 Trace 跟踪监视过程值、设定值、 PID 输出值的变化。
由于温度变化缓慢存在迟滞,建议在 trace 设置中高级选项中配置采样时间为 1s。
这样一个自动整栋整定温度的方法就实现了,大家感兴趣的可以试下。