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 位式控制算法

1 位式控制算法输出信号只有H,L两种状态。Sv用户设定值,Pv控制对象当前值。
2 算法输出信号OUT的依据:
Pv < Sv时,信号输出H; Pv >= Sv时,信号输出L。此方式是二位式输出信号,当控制对象是1000w的加热器,用户设定值为100摄氏度,传感器反馈回来的值小于100度时,系统输出H信号加热器按照额定功率工作;当传感器反馈回来的值大于等于100度时,系统输出L信号加热器立即停止工作。
3 只考察控制对象当前的状态值
此算法使得系统只有两种输出状态,大功率运行或者完全不工作,结果导致传感器反馈回来的温度值总是在设定温度值上下浮动。特别的,,位式控制算法主要考虑现在时间控制对象的状态,控制对象加热器具有热的惯性,无法实现温度的有效控制。
2 PID控制算法

算法分析:
1 从开机以来传感器的所有采样点的数据序列
X1 、 X2 、 X3 …… …… Xk-2 、 Xk-1 、 Xk
2 分析采样点的数据序列,可挖掘三方面信息

比例控制:
若差值越大表明实际与设定值之间的偏差越大,将偏差值乘以一个系数值作为系统的输入量,则输出信号使电路导通加热时间越长;偏差值越小输入控制信号使被控对象加热工作时间越短或者不加热。例如,加热片的一个控制周期为T,利用pwm波形控制电路的导通与截止,输出信号Pout值越大则pwm波有效电平维持时间越长,反之同理。
比例控制就是根据当前偏差值比例大小输出控制信号,优点是反应快控制作用及时,其缺点在于当系统反馈值与设定值相等时,系统不输出信号处于失控状态,单纯的比例控制算法是个始终有偏差的控制算法。
②历史偏差序列

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

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

4 基于STM32的PID算法

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

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

K型热电偶信号处理电路

温控板输出电路

  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 系统运行效果:

STM32的PID温控相关推荐

  1. 全新STM32 PID温控‘包括‘PID源码‘PCB‘源理图 全新自整定PID温控 STM32温控源码 … 资料参考价值较高,内含PCB+原理图+程序,内容完整。

    全新STM32 PID温控'包括'PID源码'PCB'源理图 全新自整定PID温控 STM32温控源码 - 资料参考价值较高,内含PCB+原理图+程序,内容完整. 注:STM32程序使用IAR打开 注 ...

  2. PID温控实验平台搭建(一)——PID基础知识介绍

    PID温控实验平台搭建 (一)PID基础知识介绍 (二)PID进阶知识介绍及源码分享 (三)从零开始搭建STM32温控实验平台 (四)PID温控系统代码讲解 (五)最终实验现象与总结 文章目录 前言 ...

  3. PID温控实验平台搭建(二)——PID进阶知识介绍及源码分享

    PID温控实验平台搭建 (一)PID基础知识介绍 (二)PID进阶知识介绍及源码分享 (三)从零开始搭建STM32温控实验平台 (四)PID温控系统代码讲解 (五)最终实验现象与总结 文章目录 前言 ...

  4. PID温控实验平台搭建(四)——PID温控系统实验代码讲解

    PID温控实验平台搭建 (一)PID基础知识介绍 (二)PID进阶知识介绍及源码分享 (三)从零开始搭建STM32温控实验平台 (四)PID温控系统代码讲解 (五)最终实验现象与总结 文章目录 前言 ...

  5. 基于stm32单片机智能温控风扇控制系统Proteus仿真

    资料编号:103  下面是相关功能视频演示: 103-基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料) 功能介绍:采用stm32单片机.ds18b20温度传感器采集温 ...

  6. stm32直流电机PID控制hal库(Cubemx)

    stm32直流电机PID控制hal库(Cubemx),一步步手把手教你怎么配置cubemx怎么写代码. 未对pid就行深入解析,不过相信您通过配置和写代码以后大概可以知道pid的主要作用. 文章目录 ...

  7. STM32电机PID速度控制

    2.3 STM32电机PID速度控制 之前的文章,完成了直流减速电机的PWM控制.电机测速.本篇文章,将实现电机的速度闭环控制. 在公众号:小白学移动机器人,发送:速度PID,即可获得本篇文章的STM ...

  8. 【DIY】使用STM32及PID算法实现一个磁悬浮玩具

    今天教大家来做一个磁悬浮玩具,先上两张成品的效果图: 1)磁悬浮的基本原理 磁悬浮有下推式和上拉式两种基本形式. 所谓下推式,就是控制部分在底座上,悬浮的磁铁在上面,依靠底座从下往上的排斥磁力推动磁铁 ...

  9. STM32——灰度PID的使用

    灰度PID 文章目录 灰度PID 一.灰度传感器背景 二.原理介绍 三.通信协议 四.传感器的调试方法 一.灰度传感器背景 世界正处在科技革命和产业革命的交汇点上,科学技术在广泛交叉和深度融合中不断创 ...

最新文章

  1. 高级经济师计算机水平考试,【2017上海高级经济师评审职称外语、计算机成绩不再为前置条件】- 环球网校...
  2. Linux交叉编译问题strace解决 signalfd.c:15: xlat/sfd_flags.h:17: error: size of array 'type name' is negative
  3. 9 个可以快速掌握的 Java 性能调优技巧
  4. 全球及中国液压磁路保护器行业发展规划与产销需求预测报告2022版
  5. hdu2037今年暑假不AC
  6. OAuth 2.0攻击方法及案例总结
  7. 小白学数据分析-----留存率分析_I[次日留存率突然下降了50%?]
  8. Windows 10 x64 安装 Visual Basic 6.0 SP6
  9. Kong 网关API安装部署以及应用实例----------腾云驾雾
  10. 2015手机网民超10亿是什么景象?
  11. 表情识别(四)--多网络级联表情识别
  12. 理解数据类型与数学运算:摄氏温度与华氏温度的相互转换
  13. java排序_Java实现九种排序算法3:插入排序之希尔排序
  14. FIT2CLOUD飞致云旗下多云管理平台完成华为FusionCompute兼容性测试
  15. SAR空间自回归模型
  16. r语言和python培训_Python 和R语言
  17. 求一个向量变换为另一个向量的矩阵_机器学习数学-矩阵
  18. ai钢笔工具怎么描线_AI: 如何用钢笔工具画曲线
  19. 李一男复出,能否完成一次“永不言败”的创业?
  20. LightOJ 1406 Assassin`s Creed

热门文章

  1. springboot各种集成
  2. ONU弱光对网速的影响
  3. android 图片质量,Android微信朋友圈图片不如 IOS的质量好
  4. 服务器三大技术架构及应用软件部署架构
  5. 学习EMACScript6新特性
  6. android打印机打印网页,如何不调用Android打印预览页面去进行打印?
  7. javaweb JAVA JSP房屋租赁管理系统房屋管理系统JSP网上租房系统JSP房产信息网站房屋租赁系统房屋
  8. 稀疏矩阵的三元组存储方法c语言,数据结构C语言版 稀疏矩阵的三元组顺序表存储表示和实现...
  9. .NET Framework下载
  10. 文件服务器报告,如何对文件服务器进行精细化管理之三:存储报告(示例代码)...