3_1_PID控制原理

news2024/9/25 17:15:30

       自从计算机进入控制领域以来,用数字计算机代替模拟计算机调节器组成计算机控制系统,不仅可以用软件实现PID控制算法,而且可以利用计算机的逻辑功能,使PID控制更加灵活。数字PID控制在生产过程中是一种最普遍采用的控制方法,在机电、冶金、机械、化工等行业中获得了广泛的应用。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。

       1.1 PID控制原理

       在模拟控制系统中,控制器最常用的控制规律是PID控制。模拟PID控制系统原理框图如下。系统由模拟PID控制器和被控对象组成。

5da46ea4906a030fc5edfc5e26cd468e.png

       PID控制器是一种线性控制器,它根据给定值yd(t)与实际输出值y(t)构成控制篇差:

       error(t) = yd(t) – y(t)                                               (1.1)

       PID控制规律为:

c41a425a3562620cd70e1d443e68c221.png

或写成传递函数的形式:    

d45adeb81dcabbc93a90725660fc7210.png        

式中,kp为比例系数;T1为积分时间常数;TD为微分时间常数。

       简单来说,PID控制器各校正环节的作用如下:

(1)比例环节:成比例地反映控制系统的偏差信号error(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。

(2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数T1,T1越大,积分作用越弱,反之则越强。

(3)微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。

       1.2  Matlab对阶跃信号的仿真

       代码:

%设一被控对象G(s)=50/(0.125s^2+7s)<em id="__mceDel">%用增量式PID控制算法编写仿真程序
%输入分别为单位阶跃、正弦信号,采样时间为1ms
 
clear;
close all;
ts=0.001;                 %采样时间
sys=tf(50,[0.125,7,0]); %tf是传递函数  即被控对象函数G();
dsys=c2d(sys,ts,'z');    %把控制函数离散化
[num,den]=tfdata(dsys,'v');% 离散化后提取分子、分母
u_1=0;
u_2=0;
y_1=0;
y_2=0;
error_1=0;
error_2=0;
P=0;I=0;D=0;
n=1000;
time=zeros(1,n);
rin=zeros(1,n);
yout=zeros(1,n);
for k=1:n
    time(k)=k*ts;                   %采样时间
    S=1;
    if S==1
        kp=10;ki=100;kd=0.1;        %初始化PID
        rin(k)=1*(time(k)>0.1);     %Step Signal
    elseif S==2
        kp=10;ki=100;kd=0.1;
        rin(k)=0.5*sin(2*pi*k*ts);  %Sine Signal即实际输入
    end
    du=kp*P+kd*I+ki*D;              %PID Controller控制系数
    u=u_1+du;                       %Restricting the output of controller
     
    yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;   %实际输出
    error=rin(k)-yout(k);           %Return of parameters 误差
    u_2=u_1;                        %保存上上次输入
    u_1=u;                          %保存上一次控制系数
    y_2=y_1;                        %保存上上次输出
    y_1=yout(k);                    %保存上一次输出
    P=error-error_1;                %Calculating P
    D=error-2*error_1+error_2;      %Calculating D
    I=error;                        %Calculating I
    error_2=error_1;                %保存上上次误差
    error_1=error;                  %保存上一次误差
end
figure;
plot(time,rin,'b',time,yout,'r');   %输入和实际控制输出
xlabel('time(s)'),ylabel('rin,yout');

       效果:    

05a7723fdbcf80f7f47aa07f19ff5165.png

上面代码没研究,有兴趣的小伙伴可以研究修改测下。

Simulink PID仿真:

93e2e07ed3fb77c4c12fcc31926cd430.png

效果:    

bb5890373fb5104258fcbc92d97c1b81.png

《先进PID控制MATLAB仿真》

https://www.cnblogs.com/dingdangsunny/p/17967886

https://blog.csdn.net/STM89C56/article/details/105666186

欢迎关注:

92561ec6ca34c87d2f264008567a35d4.png

有需要交流的小伙伴可留言讨论。    

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI-Talk开发板外设测试

一、说明 需要先测试各外设的功能正常&#xff0c;再开发正式应用。SDK提供了两个测试工程&#xff0c;测试工程A和测试工程B。 二、测试工程 1、多模态开发板硬件检测工程A 检测的模块包括&#xff1a; - 摄像头 - 显示屏 - 触摸屏 - USB口&#xff08;csk_usb&#xff09;…

张宇36讲+1000题重点强化!保100冲120速刷攻略

如果你选择考研时全程跟随张宇的课程&#xff0c;基础阶段使用《张宇30讲》&#xff0c;强化阶段跟着《张宇36讲》&#xff0c;并且还要完成《张宇1000题》&#xff0c;那么你的任务量将非常大。尤其是今年&#xff0c;张宇老师的课程体系发生了重大调整&#xff1a; 张宇老师…

【字符串连接】输入两个字符串,将其进行连接然后输出

输入两个字符串&#xff0c;将其进行连接然后输出 使用C语言代码实现&#xff0c;具体代码&#xff1a; #include<stdio.h>int main(){char str1[100],str2[100];int i0,j0;printf("请输入第一个字符串:");scanf("%s",&str1);printf("请输…

SSRF漏洞与redis未授权访问的共同利用

1.利用靶场Pikachu来认识SSRF漏洞 1.什么是SSRF SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求&#xff0c;而这些请求通常是攻击者无法直接从客户端发起的。 简单来说&#xff0c;假设你的网站有一个功能…

代谢组数据分析(十九):随机森林构建代谢组预后模型

介绍 建立胃癌(GC)预后模型时,从队列3中的181名患者中,使用右删失结果数据进行了随机分层抽样,分为训练数据集(n = 121)和测试数据集(n = 60)。训练了一个包含1000棵树的随机生存森林(RSF)模型,根据它们基于排列的特征重要性来选择突出的特征。通过再次训练随机生…

探索c++中的类型转化

文章目录 相关引入c中的转化机制const_castreinterpret_caststatic_castdynamic_cast 其他 相关引入 C语言中的类型转换: 有相关性的类型之间才能转换: 非相关性不能转换: c中的转化机制 const_cast 去掉常量属性 指针相同, 值不相同, 本质是编译器对这个常属性的a做了…

关键点检测——HRNet原理详解篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

pycharm2024.1.1配置已有的pytorch环境

在pycharm中也可以创建jupyter notebook. 本人最近尝试了2024.2.0.1和2024.1.1&#xff0c;这两种的配置方式略有不同。本文介绍2024.1.1版本的配置方法 新建一个项目 注意这里选择自定义环境和选择现有&#xff0c;并类型是conda 路径选择 这里的路径是我安装的conda目录的S…

甄选范文“NoSQL数据库技术及其应用”,软考高级论文,系统架构设计师论文

论文真题 随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0 网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 NoSQL(Not only SQL )的产生就是为了解…

【STM32】RTT-Studio中HAL库开发教程六:IIC通信--GZP6877D气压传感器

文章目录 一、简介二、寄存器操作三、硬件IIC通信四、模拟IIC通信五、测试验证 一、简介 GZP6877D 型压力传感器采用 SOP6 封装形式&#xff0c;倒钩管的设计可以保证安装的密封性。内有封装的压力传感器与信号调理芯片&#xff0c;对传感器的偏移、灵敏度、温漂和非线性进行数…

(二十)Flink Paimon

数据湖、湖仓一体是当前大数据领域技术发展的重要趋势。近几年开源数据湖技术如 Apache Hudi、Apache Iceberg、Apache Paimon、DeltaLake 等不断涌现,基于湖仓一体架构的统一元数据管理、数据治理也越来越受到关注。从传统数仓到数据湖、湖仓一体架构,从流批一体计算到基于数…

【内网渗透】最保姆级的春秋云镜Brute4Road打靶笔记

目录 ①fcan扫外网&#xff0c;redis主从复制拿shell&#xff0c;suid提权 ②wget下载frp&#xff0c;内网穿透&#xff0c;fscan扫内网 ③wpscan扫wordpress RCE写webshell ④配置文件泄露&#xff0c;连数据库读敏感信息 ⑤fscan爆破MSSQLSERVER密码&#xff0c;MDUT连接…

MyBatis 通用 Mapper5 来了

通用 Mapper 是一个发布于 2014 年的开源项目&#xff0c;是第一个在 MyBatis 中实现了通用 DAO 的开源框架&#xff0c;发布距今接近 10 年&#xff0c;仍然有一部分开发者在使用&#xff0c;项目仍然在维护&#xff0c;主要通过开发者提交 PR 来进行维护。 基于 JDK 17 Jaka…

【Linux】05.Linux 下的编辑器——vim

vim是一个多模式的编辑器。 一、vim的模式 我们主要介绍 vim 的三种模式&#xff0c;分别是命令模式、插入模式和底行模式&#xff0c;各模式的功能区分如下&#xff1a; 命令模式&#xff08;Normal mode&#xff09; 控制屏幕光标的移动&#xff0c;字符、字或行的删除&am…

NOsql数据库Redis

关系型数据库和 NoSQL 数据库 Redis的源码安装 编译 vim /etc/redis/6379.conf bind改成* -::* 关闭protected模式 Redis 主从复制 主从同步过程 环境配置 redis-node1 master redis-node2 slave1 redis-node3 slave2 slave中配置 vim /etc/redis/6379.conf master中操…

设计模式25-访问器模式

设计模式25-访问器模式 访问者模式的动机定义与结构定义结构访问者模式概述结构图解析总结 C代码推导原理代码实例代码 优缺点应用总结 访问者模式的动机 在软件构建过程中&#xff0c;由于需求的改变&#xff0c;某些类层次结构中常常需要增加新的行为方法。此时如果直接在基…

169页PPT丨城投公司战略规划之产业投资商规划

一、规划背景与目标随着经济的不断发展和市场环境的变化&#xff0c;麦肯新城投公司致力于从传统的城市建设主体向产业投资商转型&#xff0c;以实现可持续发展和提升区域经济活力。 目标&#xff1a;在未来5年内&#xff0c;成为具有核心竞争力和广泛影响力的产业投资商&…

Hadoop: Mapreduce了解

目录 1.MapReduce概述 2.MapReduce的基本工作原理 2.1.Map阶段 2.1.1.Map源码解析 2.1.2.map端代码总结 2.2.Shuffle and Sort阶段 2.3.Reduce阶段 2.3.1.Reduce源码解析 2.3.2.Reduce端源码总结 3.数据流与任务执行 3.1.数据输入与输出格式 3.1.1.TextInputFormat…

【公共科目】简单概率问题

问&#xff1a;在人寿保险事业中&#xff0c;很重视某一年龄段的投保人的死亡率&#xff0c;计入每个投保人能活到65的概率为0.6&#xff0c;问3个投保人中有2个人活到65岁的概率是多少? A 0.126 B 0.388 C 0.432【正确答案】 D 0.534 首先看到这道题&#xff0c;很感慨能活到…

redis分布式是如何实现的(面试版)

需要结合项目中的业务进行回答&#xff0c;通常情况下&#xff0c;分布式锁使用的场景&#xff1a; 集群情况下的定时任务、抢单、幂等性场景。 下面先来看一个抢卷场景&#xff1a; 以下情况会出现超卖情况&#xff1a; 因为线程会交替执行&#xff0c;所以线程查询优惠价的…