打印
[应用相关]

STM32的PID温控

[复制链接]
1767|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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输出电平的高低宽度进而控制加热器的工作状态。

使用特权

评论回复
沙发
发给她更好fh|  楼主 | 2021-4-27 10:56 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:05 编辑

1 位式控制算法




1 位式控制算法输出信号只有H,L两种状态。Sv用户设定值,Pv控制对象当前值。

使用特权

评论回复
板凳
发给她更好fh|  楼主 | 2021-4-27 11:06 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:05 编辑

2 算法输出信号OUT的依据:

Pv < Sv时,信号输出H; Pv >= Sv时,信号输出L。此方式是二位式输出信号,当控制对象是1000w的加热器,用户设定值为100摄氏度,传感器反馈回来的值小于100度时,系统输出H信号加热器按照额定功率工作;当传感器反馈回来的值大于等于100度时,系统输出L信号加热器立即停止工作。

使用特权

评论回复
地板
发给她更好fh|  楼主 | 2021-4-27 11:08 | 只看该作者
3 只考察控制对象当前的状态值

此算法使得系统只有两种输出状态,大功率运行或者完全不工作,结果导致传感器反馈回来的温度值总是在设定温度值上下浮动。特别的,,位式控制算法主要考虑现在时间控制对象的状态,控制对象加热器具有热的惯性,无法实现温度的有效控制。

使用特权

评论回复
5
发给她更好fh|  楼主 | 2021-4-27 11:10 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:05 编辑

2 PID控制算法




算法分析:

1 从开机以来传感器的所有采样点的数据序列

X1 、 X2 、 X3 …… …… Xk-2 、 Xk-1 、 Xk

2 分析采样点的数据序列,可挖掘三方面信息


使用特权

评论回复
6
发给她更好fh|  楼主 | 2021-4-27 12:49 | 只看该作者
比例控制:

若差值越大表明实际与设定值之间的偏差越大,将偏差值乘以一个系数值作为系统的输入量,则输出信号使电路导通加热时间越长;偏差值越小输入控制信号使被控对象加热工作时间越短或者不加热。例如,加热片的一个控制周期为T,利用pwm波形控制电路的导通与截止,输出信号Pout值越大则pwm波有效电平维持时间越长,反之同理。

比例控制就是根据当前偏差值比例大小输出控制信号,优点是反应快控制作用及时,其缺点在于当系统反馈值与设定值相等时,系统不输出信号处于失控状态,单纯的比例控制算法是个始终有偏差的控制算法。

使用特权

评论回复
7
发给她更好fh|  楼主 | 2021-4-27 12:50 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:06 编辑

②历史偏差序列



积分控制:

当历史偏差值积分结果大于0,调节器输出较强的信号;小于0,调节器输出较弱信号。只要有稳态偏差存在,调节器输出会不断变化,直到偏差值为0。但当历史积分值为0,则证明历史上系统不存在误差,却无法保证当前不存在误差。积分作用能消除单纯比例控制产生的余差,但系统的稳定性必然下降。积分作用的强弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之则越强。

使用特权

评论回复
8
发给她更好fh|  楼主 | 2021-4-27 12:52 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:06 编辑

③最近两次偏差相减




在微分控制中,控制器的输出与输入偏差信号的微分(即偏差的变化率)成正比关系。可减小超调量,并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。微分控制反映偏差的变化率,只有当偏差随时间变化时,微分控制才会对系统起作用,而对无变化或缓慢变化的对象不起作用。因此微分控制在任何情况下不能单独与被控制对象串联使用。

使用特权

评论回复
9
发给她更好fh|  楼主 | 2021-4-27 12:53 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:06 编辑

3 PID算法的数学模型

使用特权

评论回复
10
发给她更好fh|  楼主 | 2021-4-27 12:54 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:07 编辑

4 基于STM32的PID算法




程序设计时利用C语言或汇编语言可以方便实现这个计算公式。OUT即为本次运算的结果,利用OUT可以去驱动执行机构输出对应的控制信号,例如温度控制就可以控制PWM的宽度,电磁阀就可以改变电磁线圈电流以改变阀门开度,或者是可控硅的导通角度等;这种PID算法计算出的结果(OUT值)表示当前控制器应该输出的控制量,所以称为位置式(直接输出了执行机构应该达到的状态值)。

使用特权

评论回复
11
发给她更好fh|  楼主 | 2021-4-27 12:56 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:07 编辑



式中:,本次偏差值;,上次偏差值;,上上此偏差值。增量式PID的计算只需要最近3次的偏差(本次偏差,上次偏差,上上次偏差),不需要处理器存储大量的历史偏差值,计算量也相对较少,容易实现。

使用特权

评论回复
12
发给她更好fh|  楼主 | 2021-4-27 12:58 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:08 编辑

5.STM32控制电路图设计




K型热电偶信号处理电路




使用特权

评论回复
13
发给她更好fh|  楼主 | 2021-4-27 13:02 | 只看该作者
本帖最后由 发给她更好fh 于 2021-4-27 13:08 编辑


温控板输出电路
PID参数整定

PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用

使用特权

评论回复
14
发给她更好fh|  楼主 | 2021-4-27 13:02 | 只看该作者
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作﹔(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期﹔(3)在一定的控制度下通过公式计算得到PID控制器的参数。

使用特权

评论回复
15
发给她更好fh|  楼主 | 2021-4-27 13:03 | 只看该作者
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。

使用特权

评论回复
16
发给她更好fh|  楼主 | 2021-4-27 13:04 | 只看该作者
7 程序实现

输出高电平停止加热,IO口置为SET;输出低电平开始加热,IO口置为RESET。主函数开始执行时,第一步将液晶屏LCD初始化,显示我们想要显示的字符;把4号定时器打开,设置10ms为产生一个更新事件,将中断函数初始化把需要用到的热电偶信号调理电路初始化,让其具备控制能力;PID参数初始化时,将我们预先经过调试法得出的部分参数输入程序,设为固定值,若运行效果不理想再继续试调;PID计算函数其最终计算结果将体现在输出端口的高低电平变化中。循环函数中,不断调用温度读取函数及PID输出计算函数,核心函数为PID计算实现。

使用特权

评论回复
17
jcky001| | 2021-4-27 15:10 | 只看该作者
认真看一看,楼主讲解的真心不错

使用特权

评论回复
18
coshi| | 2021-5-11 20:48 | 只看该作者
控制精度高不高

使用特权

评论回复
19
maximQ820270087| | 2022-4-26 20:23 | 只看该作者
楼主高手,谢谢无私分享哦 赞!

使用特权

评论回复
20
maximQ820270087| | 2022-4-26 20:25 | 只看该作者
coshi 发表于 2021-5-11 20:48
控制精度高不高

精度方面受很多因素影响:其中选用K型温度转换器是一个重要因素;本案中如果选用max31856,效果会更好,更精准!
按照精度来分:MAX31856>MAX31855K>MAX6675

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

546

帖子

1

粉丝