这段时间为了实现气相色谱仪的温控伺服系统,采用了PID控制算法,需要实现温控的通道为4个,分别为:柱室温度,汽化室温度,氢焰室温度,热导室温度;PCB板子采用ADS1248实现7个通道的AD转换(其中3个为备用通道)获取各通道的温度,根据PID算法调节PWM通道的占空比,通过可控硅实现温度的调节。 在这4个通道中,汽化室,氢焰室以及热导室的执行器只有一个(电炉丝),采用普通的PID调节即可实现;柱室的执行器有两个(电炉丝,散热门),由于执行器有两个,采用普通的PID调节就行不通了,最初的想法是:当PID计算出来的值>0时控制电炉丝,当PID值<0时控制散热门,测试后发现两个执行器相互干扰,曲线长时间波动无法稳定,最终妥协,采用了分段式的调节方式:
阶段一:实际温度值低于PID调节下限:关闭散热门,全速加热;
阶段二:实际温度处于PID调节范围:关闭散热门,采用PID调节PWM占空比;
阶段三:实际温度值高于PID调节上限:打开散热门,全速降温;
虽然采用这种方式实现了用户要求(温度最大超调量为0.5度,温度后波动范围0.1度),但是散热门这个执行器没能很好的利用到,除了上述方式还可以采用哪些更好的方法呢?大侠们给点建议吧
====程序简述:
开发环境:
开发工具:keil V5.20,RTX
硬件设备:STM32F103C8T6,ADS1248 ,PT100
目标伺服系统特点:
1、采用电炉丝进行加热,在可控硅的作用下,通过调
节PWM通道的占空比实现伺服系统的温度控制。
2、存在一个上电便开始转动的风扇一直向电炉丝吹风
3、存在一个散热门,用于堵住进风口和出风口,当门
闭合时会有部分空气流通,当门开启时,由于风扇
的作用,大量室内空气被吸入伺服系统,同时大量
热空气(伺服系统内的空气)在出风口被排出
4、风扇的转动产生了一个循环,室内空气不断的被吸
入伺服系统,同时伺服系统内地热空气也在不断的
被排出,吸入与排出的空气量由散热门的开口大小决定。
5、目标系统的功能决定了温度超调量不能高于0.5度,
例如:当需要将含有多种成分液体中的物质分离出来,
如果其中有两种成分的分离临界温度值相差仅为1-5度,
当超调量过大时将造成分离所得结果无效。
创建了一个专门用于控制通道温度的任务,
任务实现功能如下:(每秒执行下列操作一次)
1、实现各通道的ADC
2、实现各通道的PID运算(PID调节范围20度)
3、实现各通道对应的PWM通道占空比配置
图示:
|