周期性温度和压力波的PID自动控制解决方法
摘要:目前各种PID控制器仪表常用于简单的设定点(Set Point)和斜坡(Ramp)程序控制,但对于复杂的正弦波等周期性变量的控制则无能为力。为了采用标准PID控制器便捷和低成本的实现对正弦波等周期性变量的自动控制,本文介绍相应的解决方案。解决方案的主要内容一是采用具有远程设定点功能的PID控制器,二是采用外置信号发生器,发生器输出的周期信号作为PID控制器周期性改变的设定值,从而实现周期性变量的自动控制。
原文阅读:(PDF格式)
1. 问题的提出
在各种科研生产中经常会设计一些周期性的温度、湿度、真空压力和振动等交变环境或边界条件来进行各种特定的测试和考核,这些周期性边界条件或环境所呈现出的常见形式往往会是方波、正弦波,三角波和梯形波等,这在各种物理参数的动态测试和产品构件的性能考核试验过程中体现的尤为明显,由此就要求相应的自动化系统能提供这些不同波形环境变量的准确控制,从而保证实际环境的变化与测试及试验数学模型对边界条件的描述尽可能的吻合,最终保证物理变量测试以及考核试验的准确性和可靠性。
在各种温度、湿度、真空压力和振动等环境的形成和自动化控制过程中,基本都是采用各种小巧的工业级PID控制器和PLC可编程逻辑控制器,这些控制器非常适用于定点或变化速度较慢的线性变化控制,图1(a)所示就是这样一个非常典型温度控制变化过程曲线。

对于图1(a)所示的典型温度变化过程,采用普通的PID程序控制器进行编程设计就可以实现,并且还可以编辑多条这样的多折线控制程序进行存储和调用运行。但对于如图1(b)所示的正弦波形式的温度控制和线性升温加正弦波调制的温度控制,目前还未看到可进行这种周期性变量控制的标准化PID控制器。为了在实际应用中实现这种周期性变量的PID控制,往往需要采用计算机和PLC并进行复杂的控制程序编写才能实现这种复杂功能,但这具有较高的技术门槛。
为了解决上述PID控制器对于复杂正弦波等周期性变量控制的无能为力,并能采用标准PID控制器便捷和低成本的实现对正弦波等周期性变量的自动控制,本文将提出以下解决方案。
2. 解决方案
PID调节器进行自动控制的基本原理是根据设定值与被控对象测量值之间的控制偏差,将偏差按比例、积分和微分通过线性组合形成控制输出量,对被控对象进行控制。这里的设定值是一种泛指,实际上包括了不随时间变化的固定设定值和随时间变化的设定曲线。
由此可见,对于PID控制器要实现自动控制的必要前提是要已知被控对象的变化要求,并将此要求按照设定值曲线输入给PID控制器。通常的设定曲线如图1(a)所示,它可以通过设定不同的爬升速率构成控制程序曲线。如果采用此方式来进行如图1(b)所示正弦波那样的周期性被控对象,则需要设计很多个小折线才能准确代表波形曲线,而在实际应用中还需能不断调整被动对象的波幅和频率,由此可见采用这种折线方式来对正弦波类周期性变化被动对象进行设定值近似无可操作性。总之,这种问题最终可以归结到如何使得PID控制器的设定值变得符合周期性函数特征,并可以很方便的进行波形、波幅和频率的更改。
为了可以很方便的将PID控制器设定值按照所需的函数波形进行设置,本文提出的解决方案具体内容如下:
(1)采用具有外部设定点功能的PID控制器,即PID控制器所接收到的外部任意波形信号都可以作为设定值。
(2)外置一个函数信号发生器,给PID控制器传输所需的波形信号。
依据上述方案所确定的PID控制装置及其接线如图2所示。

2.1 具有远程设定点功能的PID控制器
所用的具有远程设定值功能的PID控制器一般配置有两个输入通道,第一主输入通道作为测量被控对象的传感器输入,第二辅助输入通道用来作为远程设定点输入。与主输入信号一样,辅助输入的远程设定点同样可接受47种类型的输入信号,其中包括10种热电偶温度传感器、9种电阻型温度传感器、3种纯电阻、10种热敏电阻、3种模拟电流和12种模拟电压,即任何信号源只要能转换为上述47种类型型号,都可以直接接入第二辅助输入通道作为远程设定点源。需要注意的是,远程设定点功能只能在单点设定控制模式下有效,在程序控制模式下无此功能。
2.2 函数信号发生器
对于所有被控对象而言,相应的传感器测量输出无外乎就是电压和电阻这两类信号输出。因此,为了实现被控对象周期性变化的控制,可以采用各种相应的函数信号发生器输出周期性设定值,对于热电偶和热电阻的周期信号输出,可以采用专门的过程校验仪输出相应的温度设定值。
2.3 接线、参数设置和操作
在如图2所示的周期性变量PID控制系统中,在主输入通道上连接过程传感器,在主控输出通道连接的是执行机构,由此传感器、执行机构和PID调节器组成标准的闭环控制回路,在一般情况下可以通过内部设定点进行PID自动控制。
如果要对被控对象进行周期性变化的控制,则使用远程设定点功能,此时需要在辅助输入通道接入远程设定点源,即函数信号发生器或过程校验仪。
完成外部接线后,在运行使用远程设定值功能之前,需要对PID控制器的辅助输入通道相关参数进行设置,需要满足以下几方面要求:
(1) 辅助通道上接入的远程设定点信号类型要与主输入通道完全一致。
(2) 辅助通道的显示上下限也要与主输入通道完全一致。
(3) 显示辅助通道接入的远程设定点信号大小的小数点位数要与主输入通道保持一致。
完成上述辅助输入通道参数的设置后,开始使用远程设定点功能时,还需要激活远程设定值功能。远程设定值功能的激活可以采用以下两种方式:
(1) 内部参数激活方式:在PID控制器中,设置辅助输入通道2的功能为“远程SV”,相应数字为3。
(2)外部开关切换激活:如图2所示可连接一个外部开关进行切换来选择远程设定点功能。同时,还需在PID控制器中,设置辅助输入通道2的功能为 “禁止”,相应数字为0。然后设置外部开关量输入功能DI1为“遥控设定”,相应数字为2。通过这种外部开关量输入功能的设置,就可以采用图2中所示的纽子开关实现远程设定点和本地设定点之间的切换,开关闭合时为远程设定点功能,开关断开时为本地设定点功能。
需要注意的是,无论采用哪种远程设定点激活和切换方式,在输入信号类型、显示上下限范围和小数点位数这三个参数选项上,辅助输入通道始终要与主输入通道保持一致。
3. 总结
综上所述,本文提出的解决方案,可以彻底解决正弦波等周期性变量的PID控制问题,而且使用简便和门槛较低,无需再进行复杂的程序编写。
另外,本解决方案还可以进行多种拓展,如可实现被控对象周期性调制波的加载,非常便于实现更复杂的第二类和第三类边界条件的精密PID控制。
相关文章:

周期性温度和压力波的PID自动控制解决方法
摘要:目前各种PID控制器仪表常用于简单的设定点(Set Point)和斜坡(Ramp)程序控制,但对于复杂的正弦波等周期性变量的控制则无能为力。为了采用标准PID控制器便捷和低成本的实现对正弦波等周期性变量的自动控…...

从头开始搭建一个SpringBoot项目--SpringBoot文件的上传与下载
从头开始搭建一个SpringBoot项目--SpringBoot文件的上传前言流程分析代码结构代码详情UploadFileInfo.classUploadController.classUploadDao.classUploadDao.xmlUploadServices.classUploadServicesImpl.class测试下载示例前言 文件的上传和下载是很多系统必备的功能…...
It做形式主语和宾语
主谓宾,主宾能被名词性的sth,替换,如动名词,不定式,从句等等 而且,不能出现前面或者中间,很长,一大推的在开头或者中间,就产生了it做形式主宾。 一、It用作形式主语当不…...

做测试一定要知道的——软件测试流程和测试规范标准文档
目录 1、目的 2、工作范围 3、工作职责 4、测试的流程 5、测试准备阶段 6、测试方法制定阶段 7、测试执行阶段 8、bug管理 9、标准文档 总结感谢每一个认真阅读我文章的人!!! 重点:配套学习资料和视频教学 1、目的 通…...
Linux下将一个文件压缩分包成多个小文件
压缩分包 将文件test分包压缩成1G 的文件: tar czf - 文件名字 | split -b 10 - 文件名.tar.gz解压 将第一步分拆的多个包解压: cat 文件名.tar.gz* | tar -xzv...

分享5款用了一段时间,个人觉得非常nice的软件
大家在使用Windows办公、学习的时候,有没有觉得自己的电脑差了点意思?比如:电脑桌面上太杂乱、装满了各类五花八门的软件、桌面壁纸不美观等。今天,给大家分享五款个人用了段时间后,觉得非常nice的软件。 1.鼠标可视化…...

搜广推 Product-based Neural Networks (PNN) - 改进特征交叉的方式
😄 PNN:2016年上海交通大学提出。 文章目录 1、PNN1.1、原理1.2、创新点:product层1.3、product层z部分的输出:l~z~ 的计算方式:1.4、product层z部分的输出:l~p~ 的计算方式:1.4.1、IPNN1.4.2、OPNN1.5、优点1.6、缺点Reference1、PNN PNN:Product-based Neural Netwo…...

IDEA2022 配置spark开发环境
本人强烈建议在 linux环境下 学习 spark!!! Introduction Apache Spark是一个快速且通用的分布式计算引擎,可以在大规模数据集上进行高效的数据处理,包括数据转换、数据清洗、机器学习等。在本文中,我们将…...
趣味答题竞赛小程序开发功能的详细介绍
随着人们对知识学习的要求越来越高,答题已经成为了一项重要的学习和考核方式。而为了让答题变得更加有趣和富有挑战性,我们推出了趣味答题竞赛小程序。下面,我们将详细介绍这个小程序的开发功能。 1.个人淘汰赛 在个人淘汰赛中,…...
【独家】华为OD机试提供C语言题解 - 获取最大软件版本号
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明获取…...

k8s编程operator实战之云编码平台——⑤项目完成、部署
文章目录1、效果展示2、保存用户状态和访问用户服务实现方案2.1 如何保存用户的状态2.1.1 解决保留安装的插件问题2.2 如何访问到用户在工作空间中启动的http服务2.2.1 code-server如何帮我们实现了用户程序的代理3、Operator功能实现3.1 使用KubeBuilder创建项目3.1.1 完善kin…...

C语言杂记(指针篇)
指针篇 指针就是地址,地址就是指针 指针变量就是存放地址的变量 *号只有定义的时候表示定义指针变量,其他表示从地址里面取内容 通过指针的方法使main函数中的data1和data2发生数据交换。 #include <stdio.h> void chang_data(int *data1,int *da…...

ES window 系统环境下连接问题
环境问题:(我采用的版本是 elasticsearch-7.9.3)注意 开始修正之前的配置:前提:elasticsearch.yml增加或者修正一下配置:xpack.security.enabled: truexpack.license.self_generated.type: basicxpack.secu…...

hexo部署github搭建个人博客 完整详细带图版(更新中)
文章目录0. 前置内容1. hexo创建个人博客2. GitHub创建仓库3. hexo部署到GitHub4. 常用命令newcleangenerateserverdeploy5. 添加插件5.1 主题5.2 博客基本信息5.3 创建新的菜单5.4 添加搜索功能5.5 添加阅读时间字数提示5.6 打赏功能5.7 切换主题5.8 添加不蒜子统计5.9 添加百…...

SpringBoot集成DruidDataSource实现监控 SQL 性能
一、快速入门 1.1 基本概念 我们都使用过连接池,比如C3P0、DBCP、hikari、Druid,虽然 HikariCP 的速度稍快,但 Druid 能够提供强大的监控和扩展功能。Druid DataSource 是阿里巴巴开发的号称为监控而生的数据库连接池,它不仅可以…...

maven镜像源及代理配置
在公司使用网络一般需要设置代理, 我在idea中创建springboot工程时,发现依赖下载不了,原以为只要浏览器设置代理,其他的网络访问都会走代理,经过查资料设置了以下几个地方后工程创建正常,在此记录给大家参考…...

【Java面试篇】Spring中@Transactional注解事务失效的常见场景
文章目录Transactional注解的失效场景☁️前言🍀前置知识🍁场景一:Transactional应用在非 public 修饰的方法上🍁场景二: propagation 属性设置错误🍁场景三:rollbackFor属性设置错误dz…...
【C】分配内存的函数
#include <stdlib.h>//分配所需的内存空间,并返回一个指向它的指针。 void *malloc(size_t size);//分配所需的内存空间,并返回一个指向它的指针。并且calloc负责把这块内存空间用字节0填//充,而malloc并不负责把分配的内存空间清零 vo…...

IDEA 断点总是进入class文件没有进入源文件解决
前言 idea 断点总是进入class文件没有进入源文件解决 问题 在源文件里打了断点,断点模式启动时却进入了class文件里的断点,而没有进入到java源文件里的断点。 比如:我在 A.java 里打了断点,调试时却进入到了 jar 包里的 A.clas…...

【flink】 flink入门教程demo 初识flink
文章目录通俗解释什么是flink及其应用场景flink处理流程及核心APIflink代码快速入门flink重要概念什么是flink? 刚接触这个词的同学 可能会觉得比较难懂,网上搜教程 也是一套一套的官话, 如果大家熟悉stream流,那或许会比较好理解…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...

Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...
RLHF vs RLVR:对齐学习中的两种强化方式详解
在语言模型对齐(alignment)中,强化学习(RL)是一种重要的策略。而其中两种典型形式——RLHF(Reinforcement Learning with Human Feedback) 与 RLVR(Reinforcement Learning with Ver…...
java+webstock
maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...