技术论坛

 S7-200Smart编程思路之五-自然数和浮点数的转换-温度反馈控制

返回主题列表
作者 主题
holdkcsxyz
至圣

经验值:13020
发帖数:1815
精华帖:22
楼主    2024-03-20 15:05:11
主题:S7-200Smart编程思路之五-自然数和浮点数的转换-温度反馈控制

分享做过的一个简单的温度控制个例 

1 硬件构成

 SmartPLC+AM06+SSR固态继电器+接触器+温度探头(量程0-500)+温度变送(电阻变换成电压0-10V)+PTC吹风式加热器.   两个温度探头做保护+一个485温湿度检测湿度+80度限温器(内部构造是双金属片) 简图如下


2软件组态

输入组态(自用方法非标准做法)双极±27648,其实单极也是对的并且节省计算量

输出组态成模拟量 由于PWM的周期是200ms;因此PID输出是0-200


如下图PID的反馈引脚温度反馈整数值==未缩放前的模拟量原始值==远程主机PUT过来的AIW20模拟量值

如下视频“主机实时模拟量值”是主机PUT前的监控到的主机模拟量实时值AIW20,以及另一个保护用的模拟量值AIW22,附件有1MB限制

主机实时模拟量值.zip

如下图PID块的反馈是原始模拟量数字值,给定要人为的缩放相应的倍数,设置63度则对应3484.0左右,现场实测反馈和给定一直实时相差3以内;3/27648*500==0.05摄氏度左右,即控制精度是±0.05左右,偶尔开门机器人上下料扰动时也能稳定在±0.2以内.PWM周期固定200,占空比时间值是PID输出模拟量值.


视在的实时缩放后的温度反馈在63左右

实测视频 反馈和给定实时相差±3个单位即±0.05摄氏度左右

7截取视频.zip

输入未滤波,输出无斜坡,放大后的PID调节参数要仔细调节,比没有放大前难调一点点.

以上主要参考 <S7-200Smart的延长函数和数据的分辨率问题>主帖结尾关于输入输出处理的方法,在那个不同的温度反馈控制案例中还组态了PWM周期是40ms==40000us的最优PID模拟量双极性输出-20000---+20000变换成0-40000区间PWM占空比时间.

回路设定值---浮点数;过程变量--整数值 形成1.0:1这种浮点数和整数值的极限配置可以充分挖掘PID向导的潜力.

以下是长视频网盘链接附件

长视频网盘地址.zip

以下是六年前做压差控制的图片,另外一个控制器的实时压差PID函数的反馈和给定都放大48倍后的控制精度:静态精度±0.16帕斯卡;动态精度±0.5帕斯卡

PID给定和反馈放大图片附件一.zip

PID给定和反馈放大图片附件二.zip

###问题:如果是0---27648对应-40度---+120度,输入组态是什么样呢?PID的给定引脚又是怎么变换呢?

答案:输入组态还是要"铺满"实数和整数对应关系即还是1.0:1(1:1)即输入组态不变,而此时PID给定引脚的实数是-40---+120变换到0.0---+27648.0,这个是带有截距的变换,根据线性时不变控制理论知识知道,这是不会损失线性度和精度的.整数和浮点数变换:非硬件层面的软件算法的做法并非能够从本质上提高分辨率和精度,但是放大后(即使带着截距)也满足控制上的线性时不变系统的特性,可以让浮点数和整数的区间线段长度一一对应,因为ADC/DAC本质是非浮点数的自然数序列,即我们不可能把原始ADC控制到小数点后,即控制过程中只取有意义的精度,而非理想的基本不可能存在的7位小数精度,让PID函数块对输入的合理波动更敏感,从长时间的个例控制过程视频也可以看出放大后,采样时间0.5秒,比例系数很大达到1200,微分系数较小0.05左右,这样可以改善PID设定点局部动态敏感性,和调节品质,以及有意义的对照精度###

以下是两个探头保护程序截图

      PID的给定和反馈实时相差3个单位左右,这3个单位相当于0.05摄氏度,理论上整个控制精度在0.05摄氏度左右,实际精度不确定但差不多.给定63摄氏度缩放后给到PID设置值引脚的值相当于3484.0个单位左右.

      如上图两个独立的保护用的温度探头实时温度反馈在62摄氏度和63摄氏度左右,个位数基本不会改变,工况简单,加热温度不高,低温段的线性度较好.

      内容正确与否,有用与否,是随意的,自由的,不保证正确性和合理性;同样查看和评论也是随意的,自由的---带着批判性观点随便看看,不一定对,更不一定有用.

      PID计算的本质可能是带着缩放的局部直线关系下的/高速的/高精度的/给定和反馈.

------------------------------------------------------------------------------------------

结语:

     帖子主要说明了一个个例用法,将PID函数设定值浮点数事先放大到和输入AIWx原始整数值1.0:1(即1:1)来用,这样过程变量--整数值和回路设定值---浮点数值,这两者形成极限的整数值和浮点数转换的最优极限配置.

     没太多难点,就是简单的应用,要说PID的难点主要还是理解并能解决现场工况及控制模型的数据积累和数字化描述.

就是要理解现场,理解对象,曹雪芹能写出一部细致入微而又宏伟壮观的巨著靠的是经历,观察,学习,创作.

     做工控的进阶到一定层次也要用自己熟练掌握的工具写出一部部自己理解的"巨著",虽然可能远达不到曹的水平.

     AI越来越发展最终到达曹的水平,达到真正的‘拟人似’的智能化.

     阅读文学作品,理解人情世故有助于提高写工控类的程序.

     写工控类程序不是把一个变量赋值给另一个变量似的"打打杀杀",而是理解并能解决工业控制对象之间的"人情世故",这大概也适用于写其他语言的代码.








您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。