当前位置: 首页 > news >正文

周期性温度和压力波的PID自动控制解决方法

 

摘要:目前各种PID控制器仪表常用于简单的设定点(Set Point)和斜坡(Ramp)程序控制,但对于复杂的正弦波等周期性变量的控制则无能为力。为了采用标准PID控制器便捷和低成本的实现对正弦波等周期性变量的自动控制,本文介绍相应的解决方案。解决方案的主要内容一是采用具有远程设定点功能的PID控制器,二是采用外置信号发生器,发生器输出的周期信号作为PID控制器周期性改变的设定值,从而实现周期性变量的自动控制。

原文阅读:(PDF格式)


1. 问题的提出

在各种科研生产中经常会设计一些周期性的温度、湿度、真空压力和振动等交变环境或边界条件来进行各种特定的测试和考核,这些周期性边界条件或环境所呈现出的常见形式往往会是方波、正弦波,三角波和梯形波等,这在各种物理参数的动态测试和产品构件的性能考核试验过程中体现的尤为明显,由此就要求相应的自动化系统能提供这些不同波形环境变量的准确控制,从而保证实际环境的变化与测试及试验数学模型对边界条件的描述尽可能的吻合,最终保证物理变量测试以及考核试验的准确性和可靠性。

在各种温度、湿度、真空压力和振动等环境的形成和自动化控制过程中,基本都是采用各种小巧的工业级PID控制器和PLC可编程逻辑控制器,这些控制器非常适用于定点或变化速度较慢的线性变化控制,图1(a)所示就是这样一个非常典型温度控制变化过程曲线。

图1 温度过程典型变化曲线:(a)折线形式;(b)正弦波形式

对于图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 正弦波等周期变量PID控制装置及接线图

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测试下载示例前言 文件的上传和下载是很多系统必备的功能&#xf…...

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语言杂记(指针篇)

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

ES window 系统环境下连接问题

环境问题&#xff1a;&#xff08;我采用的版本是 elasticsearch-7.9.3&#xff09;注意 开始修正之前的配置&#xff1a;前提&#xff1a;elasticsearch.yml增加或者修正一下配置&#xff1a;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 基本概念 我们都使用过连接池&#xff0c;比如C3P0、DBCP、hikari、Druid&#xff0c;虽然 HikariCP 的速度稍快&#xff0c;但 Druid 能够提供强大的监控和扩展功能。Druid DataSource 是阿里巴巴开发的号称为监控而生的数据库连接池&#xff0c;它不仅可以…...

maven镜像源及代理配置

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

【Java面试篇】Spring中@Transactional注解事务失效的常见场景

文章目录Transactional注解的失效场景☁️前言&#x1f340;前置知识&#x1f341;场景一&#xff1a;Transactional应用在非 public 修饰的方法上&#x1f341;场景二&#xff1a; propagation 属性设置错误&#x1f341;场景三&#xff1a;rollbackFor属性设置错误&#x1f3…...

【C】分配内存的函数

#include <stdlib.h>//分配所需的内存空间&#xff0c;并返回一个指向它的指针。 void *malloc(size_t size);//分配所需的内存空间&#xff0c;并返回一个指向它的指针。并且calloc负责把这块内存空间用字节0填//充&#xff0c;而malloc并不负责把分配的内存空间清零 vo…...

IDEA 断点总是进入class文件没有进入源文件解决

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

【flink】 flink入门教程demo 初识flink

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

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...