三菱PLC 实现PID控制温度 手搓PID指令!!!

目录

1.前言

2.PID公式的讲解

3.程序

4.硬件介绍

5.EPLAN图纸

6.成果展示

7.结语

1.前言

新手想要学习PLC的PID控制 首先会被大串的PID 公式吓到 

PID公式有很多种:基本PID  位置式  增量式 模拟式 理想型 等等 

但是 不要急 别看这么多公式 其实 将公式拆开来了解了单个公式 就会发现其实还行

就 P比例 I积分 D微分 三个部分的值相加得出PID运算值

注意:要想控制的精准 不仅要挑 好公式 还要不断调PID参数等

结果值不理想 主要是由外部环境影响等多种因素 并没有完美的算法公式 和参数 更多的是根据实际情况结合外部因素 自己调出一个接近理想的值。

本文章就用简单好理解的基本 PID 算法:

U(t)=K_{p}\cdot e(t)+K_{i}\cdot \int_{0}^{t} e(t)dt+K_{d}\cdot \frac{\mathrm{de(t))} }{\mathrm{dt} }

其中:

  • U(t)是控制器的输出信号
  • K_{p}是比例增益
  • e(t)是误差信号,即设定值r(t)与实际测量值y(t) 之差
  • K_{i} 是积分增益
  • \int_{0}^{t} e(t)dt是累积误差,即误差的积分
  • K_{d}是微分增益​
  • \frac{\mathrm{de(t))} }{\mathrm{dt} }是误差变化率,即上一刻误差de(t)与下一刻误差dt的商

记住这个公式 后面讲程序的时候 会用到

2.PID公式的讲解

P 比例部分

比例部分公式是 Kp\cdot e(t)

就是 比例增益 X 误差值

I 积分部分

积分部分公式是K_{i}\cdot \int_{0}^{t} e(t)dt

就是 积分增益 X 累积误差

D 微分部分

微分部分公式是K_{d}\cdot \frac{\mathrm{de(t))} }{\mathrm{dt} }

就是 微分增益 X 误差变化率

对PID公式的讲解 个人认为B站大大 等角螺线 的视频已经把PID公式 讲解的不能再详细了

我这边就不过多解释了。

PID算法和比例控制【目前最简单最实用的PID教程】第一讲_哔哩哔哩_bilibili视频链接:PID算法和比例控制【目前最简单最实用的PID教程】第一讲_哔哩哔哩_bilibili

https://www.bilibili.com/video/BV1y24y197nK/?share_source=copy_web&vd_source=286a394adaa62adcb7573e7f2a0221ea

其中讲到了最基础的 什么是 比例运算 什么是积分运算 什么是微分运算 

对新手很友好 看完基本上就了解 PID了

3.PID程序

我这边是写一个 简单的PID控制温度的程序 

这边我就 结合公式去讲解程序 

首先是 一个开关控制 PID的运算 和数据的采样

按下开关 清除寄存器中的值 不然可能会影响后面的运算

数据采样时 使用 FLT指令 将 采样到的当前温度值和设定值转换成二进制浮点数 

设定  各个参数值:U(t)=Kp​\cdot e(t)+Ki​⋅​\int_{0}^{t} e(t)dt+Kd​ \cdot \frac{\mathrm{de(t))} }{\mathrm{dt} }

我这边设定的是 比例系数 积分系数 微分系数

注意:我这边是用的 基本PID 的公式 所以要注意其它公式程序中设定值到底是

积分系数还是积分时间 这几个设定的常量 要根据公式 来设定相应值

补充:如 理想型公式中 设定的是

Kp 比例系数 Ti  积分时间 Td 微分时间 虽然公式都差不多 但设参数时要注意

运算 PID 先将上一时刻的误差值 差 31.9℃存入寄存器中 

比例运算  Kp\cdot e(t)   比例运算值=比例系数 X 误差值

积分运算  K_{i}\cdot \int_{0}^{t} e(t)dt 积分运算值=积分系数 X 累积误差值

微分运算 K_{d}\cdot \frac{\mathrm{de(t))} }{\mathrm{dt} }微分运算值=微分系数 X 误差变化率

最后 将 三个运算值 相加 就得出了 PID的运算结果。

得到了 PID的运算值 就可以使用PWM控制 执行元件 调整设备到达指定温度了

有一些PLC 支持使用PWM 指令就可以直接输出了

我这边就 自己手写了一个PWM

到这边PID控制温度的程序就结束了 现在看起了是不是也是挺简单的

PID程序 并没有那么难

PID控制最难的是 在复杂环境下 在各种因素情况下调节出一个合适理想的PID参数 

4.硬件介绍

本次的使用的

PLC是 艾莫迅AMX-FX3U-26MT-E 

本PLC根据手册 并不支持 PID PWM指令

触摸屏使用的是 SUP043-A  工控串口屏

温度传感器是 使用的PT100

温控器使用的是 XMT-9系列温控器

温控器主要的作用是读取温度 将温度值通过485通讯传给PLC

实物图

5.EPLAN图纸

6.成果展示

LTY PID烧水

7.结语

关于PID参数如何调节 可以看 B站视频,或者看我们的另一篇博客。

PID参数整定——临界振荡法【目前最简单最实用的PID教程】第十二讲_哔哩哔哩_bilibili

本文主要为个人学习心得 偏新手向。如果有不足请多多包涵 及时指出QwQ。

觉得有用的话点个免费的赞吧QWQ。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/783204.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

知识图谱驱动的深度推理:ToG算法的创新与应用

LLMs通过预训练技术在大量文本语料库上生成连贯且符合上下文的响应。然而,面对需要复杂知识推理的任务时,它们存在明显的局限性。这些问题包括对超出预训练阶段的专业知识的准确回答失败,以及缺乏责任性、可解释性和透明度。为了解决这些问题…

(19)夹钳(用于送货)

文章目录 前言 1 常见的抓手参数 2 参数说明 前言 Copter 支持许多不同的抓取器,这对送货应用和落瓶很有用。 按照下面的链接(或侧边栏),根据你的设置了解配置信息。 Electro Permanent Magnet v3 (EPMv3)Electro Permanent M…

教育相关知识

教育的含义 教育的基本要素 教育的属性 教育的功能 教育的起源 教育的发展

软件安全性测试的工具有哪些?

软件安全性测试是确保软件系统在设计和实施过程中能够保护系统的机密性、完整性和可用性。为了进行软件安全性测试,有许多工具可供选择,这些工具可以帮助测试人员发现潜在的安全漏洞和弱点,从而提高软件系统的安全性。 以下是一些常用的软件安…

两年经验前端带你重学前端框架必会的ajax+node.js+webpack+git等技术 Day2

前端框架必会的(ajaxnode.jswebpackgit)个人学习心得作业及bug记录 Day2 你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner 🌹 如果本…

从RL的专业角度解惑 instruct GPT的目标函数

作为早期chatGPT背后的核心技术,instruct GPT一直被业界奉为里程碑式的著作。但是这篇论文关于RL的部分确写的非常模糊,几乎一笔带过。当我们去仔细审查它的目标函数的时候,心中不免有诸多困惑。特别是作者提到用PPO来做强化学习,…

Jenkins 常用的 Linux 指令

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

法国工程师IMT联盟 密码学及其应用 2022年期末考试

1 密码学 1.1 问题1 对称加密(密钥加密) 1.1.1 问题 对称密钥la cryptographie symtrique和公开密钥有哪些优缺点? 1.1.1.1 对称加密(密钥加密)的优缺点 1.1.1.1.1 优点 加解密速度快encrypt and decrypt:对称加密算法通常基于…

不锈钢焊条A022

说明:A022是钛钙型药皮的不锈钢焊条。交直流两用,操作性能良好。熔敷金属有良好的耐热、耐腐蚀及抗裂性能。 用途:用于焊接尿素、合成纤维等设备及相同类型的不锈钢结构,也可用于焊后不能进行热处理的铬不锈钢以及复合钢和异种钢等…

使用 pgbadger 自动填充准备好的语句占位符#PG培训

问题 当某些应用程序使用扩展查询协议/准备好的语句来查询 Postgres(出于性能原因,您通常应该这样做)并由于某种原因获得查询错误或只是超过“慢查询日志”阈值(log_min_duration_statement配置参数)时,您…

Kafka(二)Producer第一篇

一,Client开发 生产逻辑需要具备以下几个 步骤: (1)配置生产者客户端参数及创建相应的生产者实例。 (2)构建待发送的消息。 (3)发送消息。 (4)关闭生产者实例…

字节码编程javassist之打印方法耗时和入参

写在前面 本文看下如何实现打印方法耗时和入参。 1:程序 需要增强的类: public class ApiTest1 {public Integer strToInt(String str01, String str02) {return Integer.parseInt(str01);}}插桩类 package com.dahuyou.javassist.huohuo.aa;import…

基于 V7 FPGA 的4X 100G 光纤加速卡,可应用于基于服务器的光纤通道数据采集、数据传输等场景

4个100G QSFP28 光纤通道PCIE x16 主机接口,支持xdma,支持SG DMA光纤通道支持Aurora等协议标准,最高支持25Gbps/lane2组独立的DDR4 SDRAM 缓存,工作时钟频率1200MHz多路数字离散IO接口高性能时钟管理单元 功能框图 一款基于PCIE总…

easyexcel使用小结-未完待续

官网&#xff1a;https://easyexcel.opensource.alibaba.com/docs/current/ <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.1</version></dependency>一、读 1.1简单读 Getter…

Vue 与 OpenAI 接口交互实战:发送请求的全流程解析(一)

前言 本文讲解使用vue去搭建一个项目&#xff0c;然后向OpenAI发送请求&#xff0c;并获取数据 文章分为两篇书写&#xff0c;本篇文章侧重于书写API的封装与调用&#xff0c;第二篇文章侧重于页面逻辑的处理 接下来就让我们开始吧! 调用OpenAI的本质是什么&#xff1f; 本…

基于AD8232的心电图套件的测试

基于AD8232的心电图套件的测试 1、测试设备2、电源的选择3、 用于测试心电图套件的模拟心电图电路基本4017B的电路基于multisim的电路仿真基于STM32F103RCT6 参考测试数据 1、测试设备 1、AD8232心电模块 2、手持示波器 3、心电信号模拟发生器 4、NI multisim 14.3 5、实物待补…

关于振动盘正反料下料逻辑编写

写在前文 借鉴某个程序的逻辑套路写的 1.就是第一个料是正方向&#xff0c;第二个料是反方向。 (* 基础逻辑应该都差不多&#xff0c;这个是一个振动盘&#xff0c;振动盘的末端是一个上下对射的感应器&#xff0c;这个感应器的作用是对射感应到物料的到位信号&#xff0c;末端…

java LogUtil输出日志打日志的class文件内具体方法和行号

最近琢磨怎么把日志打的更清晰&#xff0c;方便查找问题&#xff0c;又不需要在每个class内都创建Logger对象&#xff1b;利用堆栈的方向顺序拿到日志的class问题。看效果&#xff0c;直接上代码。 1、demo test 2、输出效果 3、完整的LogUtil文件 import org.jetbrains.anno…

导入项目,JAVA文件是咖啡杯图标

问题 从图中可以看到&#xff0c;JAVA文件是咖啡杯图标 原因 项目没有识别为MAVEN项目 解决办法 进入pom.xml文件&#xff0c;右键点击Add as Maven Project即可

详解Linux的shell脚本基础指令

一、shell简介 是Linux系统的用户界面&#xff0c;它提供用户与内核的一种交互方式。它接收用户输入的命令&#xff0c;并把它送入内核去执行&#xff0c;是一个命令解释器。 脚本&#xff1a;本质是一个文件&#xff0c;文件里面存放的是 特定格式的指令&#xff0c;系统可以…