实验三、数字PID控制器的设计
实验三、数字PID控制器的设计
--- 直流闭环调速实验
一、实验目的
1.理解晶闸管直流单闭环调速系统的数学模型和工作原理;.
2. 掌握PID控制器参数对控制系统性能的影响;
3. 能够运用MATLAB/Simulink软件对控制系统进行正确建模并对模块进行正确的参数设置;
4. 掌握计算机控制仿真结果的分析方法。
二、实验工具
MATLAB 软件( 2022a);
三、实验要求
1、独立编写数字PID控制器仿真程序,并根据实验曲线,进行仿真结果分析。
2、在进行数字PID控制作用分析时,建议采用如下两种方法:
a.先求出整个闭环系统传递函数,采用Matlab中的c2d函数指令对其进行离散化,分析Kp, Ta, Ta选用不同参数时对系统稳定性和动态特性的影响。
b.分别对PID控制器和被控对象进行离散化。其中:
那么:
模拟PID控制系统
c.讨论PID参数整定和Ts选取的意义。
四、实验内容
已知晶闸管直流单闭环调速系统的转速控制器为PID控制器,如图所示。试运用MATLAB软件对调速系统的P、I、 D控制作用进行分析。
单闭环调速系统
五、实验步骤
(一)模拟PID控制作用分析:
运用MATLAB软件对调速系统的P、I、D控制作用进行分析。
(1)比例控制作用分析
为分析纯比例控制的作用,考察当Tg=0, T=∞, K,=1~ 5时对系统阶跃响应的影响。
MATLAB程序如下:
- clear
- clc
- G1=tf(1,[0.017 1]);
- G2=tf(1,[0.075 0]);
- G12=feedback(G1*G2,1);
- G3=tf(44,[0.00167 1]);
- G4=tf(1,0.1925);
- G=G12*G3*G4;
- Kp=1:1:5;
- for i=1:length(Kp)
- Gc=feedback(Kp(i)*G,0.01178);
- step(Gc),hold on
- end
- axis([0 0.2 0 130]);
- gtext('1Kp=1'),
- gtext('2Kp=2'),
- gtext('3Kp=3'),
- gtext('4Kp=4'),
- gtext('5Kp=5'),
参考图如下:
P控制阶跃响应曲线
分析如下:
图为P控制阶跃响应曲线。比例调节器对偏差是即时反应的,偏差一旦出现,调节器即控制使其输出量朝着减小偏差的方向变化,控制作用的强弱取决于比例系数^p。比例调节器虽然简单快速,但对于系统响应为有限值的控制对象存在稳态误差。加大比例系数可以减小稳态误差,但过大时会使系统的动态质量变坏,引起输出量震荡,甚至导致闭环系统不稳定。
随着Kp的增加,闭环系统的超调量增加,响应速度加快,控制时间加长,稳态误差减少;但不能完全消除静态误差。随着其继续增加,系统的稳定性变差。本例中当Kp大于等于21后,系统变为不稳定。
(2)积分控制作用分析
保持Kp=1不变,考察Ti = 0.03 ~ 0.07时对系统阶跃响应的影响。MATLAB程序如下:
- G1=tf(1,[0.017 1]);
- G2=tf(1,[0.075 0]);
- G12=feedback(G1*G2,1);
- G3=tf(44,[0.00167 1]);
- G4=tf(1,0.1925);
- G=G12*G3*G4;
- Kp=1;
- Ti=0.03:0.01:0.07;
- for i=1:length(Ti)
- Gc=tf(Kp*[Ti(i) 1],[Ti(i) 0]);
- Gcc=feedback(G*Gc,0.01178);
- step(Gcc),hold on
- end
- gtext('1Ti=0.03'),
- gtext('2Ti=0.04'),
- gtext('3Ti=0.05'),
- gtext('4Ti=0.06'),
- gtext('5Ti=0.07'),
参考图如下:
Ti控制阶跃响应曲线
分析如下:
图为PI控制阶跃响应曲线。引入积分环节可以消除在比例积分中的残余稳态误差。但当积分时间常数Ti增大,那么积分作用变弱,反之变强,因此增大Ti将减慢消除稳态误差的过程,但减小超调,提高系统的稳定性。引入积分环节的代价就是降低了系统的快速性。由图可知,随着Ti的增加,系统的超调量减小,响应速度减慢;Ti太小,系统将会变得不稳定; Ti能完全消除系统的静态误差,提高系统的控制精度。
(3)微分控制作用分析
为分析微分控制的作用,保持K。=0.01,T =0.01不变,考察当T =12 ~ 84时对系统阶跃响应
的影响。MATLAB 程序如下: .
- G1=tf(1,[0.017 1]);
- G2=tf(1,[0.075 0]);
- G12=feedback(G1*G2,1);
- G3=tf(44,[0.00167 1]);
- G4=tf(1,0.1925);
- G=G12*G3*G4;
- Kp=0.01;
- Ti=0.01;
- Td=12:36:84;
- for i=1 :length(Td)
- Gc=tf(Kp*[Ti*Td(i) Ti 1],[Ti 0]);
- Gcc=feedback(G* Gc,0.01178);
- step(Gcc),hold on
- pause(1)
- end
- gtext('1Td=12'),
- gtext('2Td=48'),
- gtext('3Td=84'),
参考图如下:
Td控制阶跃响应曲线
分析如下:
图为PD控制阶跃响应曲线。微分调节的原理是在偏差出现或出现的瞬间,按偏差变化的趋向进行控制,使偏差消失在萌芽阶段,从而达到加快控制作用的效果,引入微分环节会降低最大超调量,减少.上升时间和调节时间,使系统趋于稳定。由图可知,由于微分环节的作用,在曲线的起始上升段出现了一个尖锐的波峰,之后曲线也呈衰减的振荡:随着Td增加,系统的超调量增大,但曲线尖锐的起始上升阶段后响应速度减慢,可以看出Td越小。调节作用越好。
(二)数字PID控制作用分析:
仿照上述过程,独立完成PID离散化仿真程序编写及结果分析。
(1)比例控制作用下,取采样时间0.001 秒。
代码如下:
- clear
- clc
- G1=tf(1,[0.017 1]);
- G2=tf(1,[0.075 0]);
- G12=feedback(G1*G2,1);
- G3=tf(44,[0.00167 1]);
- G4=tf(1,0.1925);
- G=G12*G3*G4;
- Kp=1:1:5;
- ts=0.001;
- for i=1:length(Kp)
- Gc=feedback(Kp(i)*G,0.01178);
- Gcc=c2d(Gc,ts, 'zoh');
- step(Gcc),hold on
- end
- axis([0 0.2 0 130]);
- gtext('1Kp=1'),
- gtext('2Kp=2'),
- gtext('3Kp=3'),
- gtext('4Kp=4'),
- gtext('5Kp=5'),
仿真结果参考图:
分析如下:
Kp增加,系统响应速度 加快:如果Kp偏大, 系统输出震荡次数增多,调节时间加长:Kp过大将导致系统的不稳定 。
- 比例积分控制作用下,取采样时间0.001秒。
代码如下:
- G1=tf(1,[0.017 1]);
- G2=tf(1,[0.075 0]);
- G12=feedback(G1*G2,1);
- G3=tf(44,[0.00167 1]);
- G4=tf(1,0.1925);
- G=G12*G3*G4;
- Kp=1;
- Ti=0.03:0.01:0.07;
- ts=0.001;
- for i=1:length(Ti)
- Gc=tf(Kp*[Ti(i) 1],[Ti(i) 0]);
- Gcc=feedback(G*Gc,0.01178);
- Gccd=c2d(Gcc,ts, 'zoh');
- step(Gccd),hold on
- pause(1)
- end
- gtext('1Ti=0.03'),
- gtext('2Ti=0.04'),
- gtext('3Ti=0.05'),
- gtext('4Ti=0.06'),
- gtext('5Ti=0.07'),
仿真结果参考图:
分析如下:
积分控制能消除系统静差,但若Ti太大,积分作用太弱,以致不能消除静差;若太小,系统将不稳定。
(3)比例积分微分控制作用下,取采样时间0.05秒。.
代码如下:
- G1=tf(1,[0.017 1]);
- G2=tf(1,[0.075 0]);
- G12=feedback(G1*G2,1);
- G3=tf(44,[0.00167 1]);
- G4=tf(1,0.1925);
- G=G12*G3*G4;
- Kp=0.01;
- Ti=0.01;
- Td=12:36:84;
- ts=0.05;
- for i=1 :length(Td)
- Gc=tf(Kp*[Ti*Td(i) Ti 1],[Ti 0]);
- Gcc=feedback(G* Gc,0.01178);
- Gccd=c2d(Gcc,ts, 'zoh');
- step(Gccd),hold on
- pause(1)
- end
- gtext('1Td=12'),
- gtext('2Td=48'),
- gtext('3Td=84'),
仿真结果参考图:
实验分析:
选择合适的Td将使系统的超调量减小,增加系统的稳定性,调节时间缩短,允许加大比例控制:但若过大或过小都不会达到效果。
六、实验总结
1、模拟PID控制:
在模拟PID控制器中,比例环节的作用是对偏差瞬间作出反应。偏差一旦产生,控制器立即产生控制作用,使控制量向减小偏差的方向变化。控制作用的强弱取决于比例系数Kp。Kp越大,控制作用越强,则过渡过程越快,控制过程的静态偏差也就越小。但是Kp越大,也越容易产生振荡,破坏系统的稳定性。积分环节虽然会消除静态误差,但是也会降低系统的响应速度,增加系统的超调量。积分时间常数越大,积分的积累越弱。这时,系统在过渡时不会产生振荡。但是,增大积分时间常数会减慢静态误差的消除过程,消除偏差所需的时间也较长,但可以减少超调量,提高系统的稳定性。当积分时间常数较小时,则积分的作用较强。这时系统过渡时间中有可能产生振荡,不过消除偏差所需的时间较短。所以必须根据实际控制的具体要求来确定积分时间常数。微分环节的作用是阻止偏差的变化。它根据偏差的变化趋势(变化速度)进行控制。偏差变化的越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。微分作用的引入,有助于减小超调量、克服振荡,使系统趋于稳定。特别对高阶系统有利,它加快了系统的跟踪速度。但微分的作用对输入信号的噪声很敏感。对那些噪声较大的系统一-般不用微分,或在微分起作用之前先对输入信号进行滤波。微分部分的作用由微分时间常数决定。微分时间常数越大时,则它抑制偏差变化的作用越强;微分时间常数越小时,则它反抗偏差变化的作用越弱。微分部分显然对系统稳定有很大的作用。适当地选择微分时间常数,可以使微分作用达到最优。
2、数字PID控制:
因为在微机处理器里面是通过软件来实现PID控制算法的,所以必须将模拟PID控制器进行离散化处理,这样控制器只需根据采样时刻的偏差值计算控制量。控制器成比例的反映控制系统的误差信号,偏差一旦产生,控制器立即产生控制作用,以减小偏差。比例控制器在信号变换时,只改变信号的幅值而不改变信号的相位,采用比例控制可以提高系统的开环增益,是系统的主要控制部分。积分控制主要用于消除静差,提高系统的无差度,但是会使系统的震荡加剧,超调增大,损害动态性能,一般不单独作用,而是与PD控制相结合。积分作用的强弱取决于积分时间常数Ti,时间常数越大,积分作用就越弱,反之则越强。
4、采样周期:
对于Ts,采样周期Ts越小,数字模拟越精确,控制效果越接近连续控制。对大多数算法,缩短采样周期可使控制回路性能改善,但采样周期缩短时,频繁的采样必然会占用较多的计算工作时间,同时也会增加计算机的计算负担,而对有些变化缓慢的受控对象无需很高的采样频率即可满意地进行跟踪,过多的采样反而没有多少实际意义。
其中选择采样周期应综合考虑的因素:
第一,给定值的变化频率。加到被控对象上的给定值变化频率越高,采样频率应越高,以使给定值的改变通过采样迅速得到反映,而不致在随动控制中产生大的时延。
第二,被控对象的特性。考虑对象变化的缓急,若对象是慢速的热工或化工对象时,T一般取得较大。在对象变化较快的场合,T应取得较小。考虑干扰的情况,从系统抗干扰的性能要求来看,要求采样周期短,使扰动能迅速得到校正。
第三,使用的算式和执行机构的类型。采样周期太小,会使积分作用、微分作用不明显。同时,因受微机计算精度的影响,当采样周期小到一定程度时,前后两次采样的差别反映不出来,使调节作用因此而减弱。执行机构的动作惯性大,采样周期的选择要与之适应,否则执行机构来不及反应数字控制器输出值的变化。
第四,控制的回路数。要求控制的回路较多时,相应的采样周期越长,以使每个回路的调节算法都有足够的时间来完成。
- 总结:
本次实验是对PID算法以及MATLAB应用的初步掌握,经过本次实验,我对PID算法有了进一步的认识。期间遇到过许多上述提到过的类似问题,虽然这些问题看似简单,但如若不亲自经历并寻求方法解决,下次遇到可能仍然不会解决。此外,通过此次课程设计,我也明白了自学能力的重要性,在今后的学习中,我们仍会遇到各种难题,这些都需要我们通过自学逐渐解决。最后,课程设计的结果固然重要,但是我认为这个过程才是更重要的,过程中培养的能力、掌握的经验会让我们受益终身。
相关文章:

实验三、数字PID控制器的设计
实验三、数字PID控制器的设计 --- 直流闭环调速实验 一、实验目的 1.理解晶闸管直流单闭环调速系统的数学模型和工作原理;. 2. 掌握PID控制器参数对控制系统性能的影响; 3. 能够运用MATLAB/Simulink软件对控制系统进行正确建模并对模块进行正确的参数设置; 4.…...

python List和常用的方法
List:列表中包含多个数据,数据之间使用逗号分隔,索引从0开始。 空列表: dir:查看列表的所有方法 List常用方法:insert、append,extend、del、remove、pop、clear、count、index 增加insert(索引…...

PMP证书要怎么考,含金量怎么样?
对于新改版的PMP提纲,很多人都不知道如何去备考,这里我就总结一些经验,希望能帮助到大家!! 一,学习内容及考试形式? 学习内容:《PMBOK》项目管理知识体系指南,建议大家…...

MySQL实战解析底层---事务隔离:为什么你改了我还看不见
目录 前言 隔离性与隔离级别 事务隔离的实现 事务的启动方式 前言 和数据库打交道的时候,总是会用到事务最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱转账过程具体到程序里会有一系列的操作࿰…...

变更数据捕获(CDC)
从广泛意义上说,全球许多企业每天都需要通过频繁的数据批量处理与加载,来定期将数据从一个数据库迁移到另一个数据库(或数据仓库)。这类定期批量加载的工作,往往既耗费时间,又会消耗原始系统的大量处理能力。因此,管理…...

【移动端表格组件】uniapp简单实现H5,小程序,APP多端兼容表格功能,复制即用,简单易懂【详细注释版本】
前言: 由于最近需要做移动端的项目 有个pc端的后台系统里面需要移一部分页面过来 而里面就有很多的表格,我就开始惯例网上先找前人栽的树,我好乘凉 然后找了一圈发现,不管是主流的移动端ui库或者网上自己写的帖子,或者…...

电子技术——CMOS 逻辑门电路
电子技术——CMOS 逻辑门电路 在本节我们介绍如何使用CMOS电路实现组合逻辑函数。在组合电路中,电路是瞬时发生的,也就是电路的输出之和当前的输入有关,并且电路是无记忆的也没有反馈。组合电路被大量的使用在当今的数字逻辑系统中。 晶体管…...

【C++】C++11 新特性
目录 1.列表初始化 1.1. C98中使用{}初始化的问题 1.2. 内置类型的列表初始化 1.3. 自定义类型的列表初始化 2. 变量类型推导 2.1. 为什么需要类型推导 2.2. decltype类型推导 2.2.1 为什么需要decltype 2.2.2. decltype 3. 对默认成员的控制(default、delete) 3.1. …...
JPA 相关注解说明
jpa相关注解 JPA(Java Persistence API)是一种Java规范,定义了一套标准的对象关系映射(ORM)API,用于将Java对象映射到关系型数据库中。JPA旨在统一各种ORM框架之间的差异,提供一种标准化的ORM解…...

SAP 生产订单/流程订单中日期的解释
SAP 生产订单/流程订单中日期的解释 基本开始日期:表示订单的开始日期 基本完成日期:表示订单的完成日期 我们在输入基本开始日期和基本完成日期时需要关注 调度 下面的“类型”,其中有向前、向后、当天日期等: 调度类型 为向前…...

Java设计模式笔记——七大设计原则
系列文章目录 第一章 Java 设计模式之七大设计原则 文章目录系列文章目录前言一、单一职责原则1.案例分析2.改进二、开闭原则1.案例分析2.改进三、里氏替换原则1.案例分析2.改进四、依赖倒转原则五、接口隔离原则1.案例分析2.改进六、合成复用原则1.案例分析2.改进七、迪米特原…...

记录第一次接口上线过程
新入职一家公司后,前三天一直在学习公司内部各种制度文化以及考试。 一直到第三天组长突然叫我过去,给了一个需求的思维导图,按照这个需求写这样一个接口, 其实还不错,不用自己去分析需求,按照这上面直接开…...

时序预测 | MATLAB实现Rmsprop算法优化LSTM长短期记忆神经网络时间序列多步预测(滚动预测未来,多指标,含验证Loss曲线)
时序预测 | MATLAB实现Rmsprop算法优化LSTM长短期记忆神经网络时间序列多步预测(滚动预测未来,多指标,含训练和验证Loss曲线) 目录 时序预测 | MATLAB实现Rmsprop算法优化LSTM长短期记忆神经网络时间序列多步预测(滚动预测未来,多指标,含训练和验证Loss曲线)效果一览基本描…...
如何利用Level2行情数据接口追板和交易股票?
十档行情看得更深的A股行情软件,我们在盘口数据中可以看到,买一到买五以及卖一到卖五,共10个价位的挂单情况,但基于上证所的level-2行情软件,视野则扩展到了买一到买十以及卖一到卖十数据,无疑比所有免费软…...
MySQL常用的聚合函数
聚合函数聚合函数对一组值进行运算,并返回单个值。也叫组合函数函数作用COUNT(*|列名) 统计查询结果的⾏数AVG(数值类型列名)求平均值,返回指定列数据的平均值SUM (数值类型列名)求和,返回指定列的总和MAX(列名)查询指定列的最⼤值MIN(列名)查…...

如何评估模糊测试工具-unibench的使用
unibench是一个用来评估模糊测试工具的benchmark。这个benchmark集成了20多个常用的测试程序,以及许多模糊测试工具。 这篇文章(https://zhuanlan.zhihu.com/p/421124258)对unibench进行了简单的介绍,本文就不再赘诉,…...

2023初级会计详细学习计划打卡表!自律逆袭,一次上岸!
2023年初级会计职称考试报名时间:2月7日-28日考试时间:5月13日—17日给大家整理了《经济法基础》和《初级会计实务》两科超实用的学习打卡表重要程度、难易度、易错点、要求掌握内容、章节估分等都全部总结在一起,一目了然!为什么…...

【Python】Python项目打包发布(四)(基于Nuitka打包PySide6项目)
Python项目打包发布汇总 【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目) 【Python】Python项目打包发布(二)(基于Pyinstaller打包PyWebIO项目) 【Python】Pytho…...
一起Talk Android吧(第五百一十三回:Java中的byte数组与int变量相互转换)
文章目录整体思路示例代码各位看官们大家好,上一回中咱们说的例子是"自定义Dialog",这一回中咱们说的例子是" Java中的byte数组与int变量相互转换"。闲话休提,言归正转, 让我们一起Talk Android吧!在实际项目…...

22《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享
《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限,如果错误欢迎批评指正。 第五章:Folding and Aggregation Are Cooperative Transitions (折叠和聚合是同时进行的) -蛋白质折叠的协同作…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...