STM32的PID温控

                      STM32的 PID和PWM墨水温度控制系统

控制方案:

K_SENSOR热电偶作为温度传感器,50w电烙铁作为加温设备作为控制对象,预先设定一个温度值,微处理器为ARM公司Cortex-M3内核,STM32F103ZET6型号,开发板需用3.3v供电运行。采用MAX6675芯片作为K型热电偶信号调理电路,它将从热电偶读取温度值并转换为12位数字量存储在内部存储器中,其三根外部通信线与STM32开发板相连,对应SDIO_CMD、SDIO_CK、SDIO_D3,进行数据的读取传输。考虑意外断电时用户设定数据值与PID参数等的保存,采用具有断电保存数据功能的24C202芯片,将其两引脚与STM32中TIM4 CH2与TIM4 CH1相连通信,相关数据便可写入进24C202芯片进行后备保存,液晶屏作为显示温度的器件。固态继电器受控于三极管,三极管受控于光电耦合器,光电耦合器接开发板outputPB8管脚。STM32端口信号输出时经PID控制算法计算得出数据,相应的控制PB8输出电平的PWM脉冲信号宽度,通过改变PB8输出电平的高低宽度进而控制加热器的工作状态。

1 位式控制算法
STM32的PID温控_第1张图片
1 位式控制算法输出信号只有H,L两种状态。Sv用户设定值,Pv控制对象当前值。
2 算法输出信号OUT的依据:
Pv < Sv时,信号输出H; Pv >= Sv时,信号输出L。此方式是二位式输出信号,当控制对象是1000w的加热器,用户设定值为100摄氏度,传感器反馈回来的值小于100度时,系统输出H信号加热器按照额定功率工作;当传感器反馈回来的值大于等于100度时,系统输出L信号加热器立即停止工作。
3 只考察控制对象当前的状态值
此算法使得系统只有两种输出状态,大功率运行或者完全不工作,结果导致传感器反馈回来的温度值总是在设定温度值上下浮动。特别的,,位式控制算法主要考虑现在时间控制对象的状态,控制对象加热器具有热的惯性,无法实现温度的有效控制。
2 PID控制算法
STM32的PID温控_第2张图片
算法分析:
1 从开机以来传感器的所有采样点的数据序列
X1 、 X2 、 X3 …… …… Xk-2 、 Xk-1 、 Xk
2 分析采样点的数据序列,可挖掘三方面信息
STM32的PID温控_第3张图片
比例控制:
若差值越大表明实际与设定值之间的偏差越大,将偏差值乘以一个系数值作为系统的输入量,则输出信号使电路导通加热时间越长;偏差值越小输入控制信号使被控对象加热工作时间越短或者不加热。例如,加热片的一个控制周期为T,利用pwm波形控制电路的导通与截止,输出信号Pout值越大则pwm波有效电平维持时间越长,反之同理。
比例控制就是根据当前偏差值比例大小输出控制信号,优点是反应快控制作用及时,其缺点在于当系统反馈值与设定值相等时,系统不输出信号处于失控状态,单纯的比例控制算法是个始终有偏差的控制算法。
②历史偏差序列
STM32的PID温控_第4张图片
积分控制:
当历史偏差值积分结果大于0,调节器输出较强的信号;小于0,调节器输出较弱信号。只要有稳态偏差存在,调节器输出会不断变化,直到偏差值为0。但当历史积分值为0,则证明历史上系统不存在误差,却无法保证当前不存在误差。积分作用能消除单纯比例控制产生的余差,但系统的稳定性必然下降。积分作用的强弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之则越强。
③最近两次偏差相减
STM32的PID温控_第5张图片
在微分控制中,控制器的输出与输入偏差信号的微分(即偏差的变化率)成正比关系。可减小超调量,并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。微分控制反映偏差的变化率,只有当偏差随时间变化时,微分控制才会对系统起作用,而对无变化或缓慢变化的对象不起作用。因此微分控制在任何情况下不能单独与被控制对象串联使用。
3 PID算法的数学模型
在这里插入图片描述
4 基于STM32的PID算法
STM32的PID温控_第6张图片
程序设计时利用C语言或汇编语言可以方便实现这个计算公式。OUT即为本次运算的结果,利用OUT可以去驱动执行机构输出对应的控制信号,例如温度控制就可以控制PWM的宽度,电磁阀就可以改变电磁线圈电流以改变阀门开度,或者是可控硅的导通角度等;这种PID算法计算出的结果(OUT值)表示当前控制器应该输出的控制量,所以称为位置式(直接输出了执行机构应该达到的状态值)。

STM32的PID温控_第7张图片

式中:,本次偏差值;,上次偏差值;,上上此偏差值。增量式PID的计算只需要最近3次的偏差(本次偏差,上次偏差,上上次偏差),不需要处理器存储大量的历史偏差值,计算量也相对较少,容易实现。
5.STM32控制电路图设计
STM32的PID温控_第8张图片
K型热电偶信号处理电路
STM32的PID温控_第9张图片
温控板输出电路

  1. PID参数整定
    PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
    PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作﹔(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期﹔(3)在一定的控制度下通过公式计算得到PID控制器的参数。
    PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P\I\D的大小。PID控制器参数的工程整定,各种调节系统中P.I.D参数经验数据以下可参照:
      温度T: P=2060%,T=180600s,D=3-180s
      压力P: P=3070%,T=24180s,
      液位L: P=2080%,T=60300s,
      流量L: P=40100%,T=660s。
    7 程序实现
    输出高电平停止加热,IO口置为SET;输出低电平开始加热,IO口置为RESET。主函数开始执行时,第一步将液晶屏LCD初始化,显示我们想要显示的字符;把4号定时器打开,设置10ms为产生一个更新事件,将中断函数初始化把需要用到的热电偶信号调理电路初始化,让其具备控制能力;PID参数初始化时,将我们预先经过调试法得出的部分参数输入程序,设为固定值,若运行效果不理想再继续试调;PID计算函数其最终计算结果将体现在输出端口的高低电平变化中。循环函数中,不断调用温度读取函数及PID输出计算函数,核心函数为PID计算实现。
    8 系统运行效果:

你可能感兴趣的:(学习记录)