对PID\rm PIDPID控制器三个参数的认识

声明:本文代码思路参考了(B站ID:DR_CAN知乎ID:小潘是个工程师),又或者自己在看二人的帖子或视频后,自己做了相应的改进。奈何时间有点长了,再次整理时实在无法回忆起细节,若有读者发现了代码的起源处,烦请告知,我会补上相应的引用链接。

本文尝试演示了P\rm PP、I\rm II、D\rm DD三个参数对控制器性能的影响,并给出了相应的实现代码。需要指出的是:在实际的控制系统中,依靠简单的控制变量法无法直接获取满意的控制器参数,一组最优控制器参数的获取并非易事。实际控制中,相较于PID\rm PIDPID,PI\rm PIPI控制器可能更常见,这在一定程度上削弱了调参的难度。本文仅作为参考,帮助读者对PID控制器的三个参数产生一个感性的认识。蓝色虚线框中的内容不同造就了三段不同的演示代码。

P\rm PP对控制器性能的影响

MATLAB代码

clear
figure
Gs = tf(2,conv([3,1],[2,1]));           %Gs是传递函数,conv是可以理解为因式分解(3s+1)(2s+1)
Kp = [0.5,2,5,10];                      %取不同的比例系数,类似数组
for m = 1:4sys = feedback(Kp(m)*Gs,1);         %feedback(G,H),(G,H需事先设定)。%其中G是传递函数,H为反馈函数,表示一个控制系统G,对其进行负反馈H(要求正反馈用-H)。这里前面写上比例环节与系统的串联,后面的1表示负反馈step(sys);                          %求阶跃响应,可以用形如step(feedback(G,H))hold on;
end%% 格式控制
lgd = legend({'Kp=0.5','Kp=2','Kp=5','Kp=10'},'FontSize',10.5,'FontName','Times New Roman');
set(gcf,'unit','centimeters','position',[30 15 15 10]);%设置画布大小和位置
set(gca,'FontName','Times New Roman','FontSize',10.5,'FontWeight','bold' ,'XColor',[0 0 0] ,'YColor',[0 0 0]);%坐标轴数字大小,坐标轴数字是灰色,故加color代码
xlabel('Time','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
ylabel('Amplitude','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
grid on
set(gca,'gridlinestyle',':','Gridalpha',1)

代码效果

I\rm II对控制器性能的影响

MATLAB代码

figure
clear
Gs = tf(2,conv([3,1],[2,1]));
Kp = 2;
Ti = [2,4,8,12];
for m = 1:4
G1 = tf([Kp,Kp/Ti(m)],[1,0]);              %这里也是(KpS+Kp/Ti)/s
sys = feedback(G1*Gs,1);
step(sys);
hold on;
end%% 格式控制
lgd = legend({'Ti=2','Ti=4','Ti=8','Ti=12'},'FontSize',12,'FontName','Times New Roman');
set(gcf,'unit','centimeters','position',[30 15 15 9]);%设置画布大小和位置
set(gca,'FontName','Times New Roman','FontSize',10.5,'FontWeight','bold' ,'XColor',[0 0 0] ,'YColor',[0 0 0]);%坐标轴数字大小,坐标轴数字是灰色,故加color代码
xlabel('Time','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
ylabel('Amplitude','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
grid on
set(gca,'gridlinestyle',':','Gridalpha',1)

代码效果

D\rm DD对控制器性能的影响

MATLAB代码

figure
clear
Gs = tf(2,conv([3,1],[2,1]));
Kp = 10;
Td = [0,0.4,1,4];
for m = 1:4
G1 = tf([Kp*Td(m),Kp],[0,1]);            %这个地方要注意 (Kp*Td(m)*S+Kp)/1=Kp(1+TdS)
sys = feedback(G1*Gs,1);                 %前面是微分环节与系统的串联,负反馈
step(sys);
hold on;
end%% 格式控制
lgd = legend({'Td=0','Td=0.4','Td=1','Td=4'},'FontSize',10.5,'FontName','Times New Roman');
set(gcf,'unit','centimeters','position',[30 15 15 9]);%设置画布大小和位置
set(gca,'FontName','Times New Roman','FontSize',10.5,'FontWeight','bold' ,'XColor',[0 0 0] ,'YColor',[0 0 0]);%坐标轴数字大小,坐标轴数字是灰色,故加color代码
xlabel('Time','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
ylabel('Amplitude','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
grid on
set(gca,'gridlinestyle',':','Gridalpha',1)

代码效果

对PID控制器三个参数的认识相关推荐

  1. 【转】PID算法原理 一图看懂PID的三个参数

    这是目前发现写的最好的了,原文作者DF创客社区virtualwiz 以下为原文: LZ以前有个小小的理想,就是让手边的MCU自己"思考"起来,写出真正带算法的程序. 前段时间做一个 ...

  2. PID控制器改进笔记之一:改进PID控制器之参数动态调整

    前面我们发布了一系列PID控制器相关的文章,包括经典PID控制器以及参数自适应的PID控制器.这一系列PID控制器虽说实现了主要功能,也在实际使用中取得了良好效果,但还有很多的细节部分可以改进以提高性 ...

  3. matlab pid 课设 参考文献,系统控制论文,关于Matlab在计算机控制技术课程“PID控制器参数整定”中的应用相关参考文献资料-免费论文范文...

    导读:本论文可用于系统控制论文范文参考下载,系统控制相关论文写作参考研究. 周少武陈敏沈红远 曾照福 (湖南科技大学信息与电气工程学院 湖南湘潭411201) 摘 要:传统PID参数整定的教学方法以定 ...

  4. PID控制器改进笔记之三:改进PID控制器之正反作用

    前面我们发布了一系列PID控制器相关的文章,包括经典PID控制器以及参数自适应的PID控制器.这一系列PID控制器虽说实现了主要功能,也在实际使用中取得了良好效果,但还有很多的细节部分可以改进以提高性 ...

  5. PID控制器开发笔记之十三:单神经元PID控制器的实现

    神经网络是模拟人脑思维方式的数学模型.神经网络是智能控制的一个重要分支,人们针对控制过程提供了各种实现方式,在本节我们主要讨论一下采用单神经元实现PID控制器的方式. 1.单神经元的基本原理 单神经元 ...

  6. PID控制器的优缺点和周期

    PID控制器参数优缺点 PID控制器简介 PID控制器是非常经典的一种控制算法,是不需要知道系统的模型,仅仅根据期望与现状的偏差调节,使之能够到达期望的一种线性控制器. 优点:使用简单,灵活,调节方便 ...

  7. 强化学习4——基于Actor-Critic的自适应PID控制器设计

    注释:本博文内容来源于文献:Wang X, Cheng Y, Sun W, et al. A Proposal of Adaptive PID Controller Based on Reinforc ...

  8. 十一.四轮车驱动开发之四:理解直流电机PID控制器

    这是"四轮车驱动控制"系列,分多个小节来介绍: 1. 八.四轮车驱动开发之一:正/逆向运动学分析 2. 九.四轮车驱动开发之二: 配置PWM驱动直流电机 3. 十.四轮车驱动开发之 ...

  9. 如何使用matlab得出pid控制参数值,基于MATLAB的PID控制器参数整定及仿真

    基于MATLAB的PID控制器参数整定及仿真 摘要:PID控制器结构和算法简单,应用广泛,但参数整定比较复杂,在此我探讨利用MATLAB实现PID参数整定及其仿真的方法,并分析比较比例.比例积分.比例 ...

最新文章

  1. matlab按顺序排列图片,小技巧
  2. [BeiJing2011][bzoj2460] 元素
  3. Alpine 操作系统是一个面向安全的轻型 Linux 发行版
  4. Docker镜像大小
  5. python字典键值可以是元组或列表吗_Python列表、元组、字典、集合的内置使用方法...
  6. Spring : Spring事物支持核心接口
  7. mysql外键排序规则_mysql创建外键出错(注意数据库表字段排序)
  8. 决策树ID3、C4.5、CART、随机森林、bagging、boosting、Adaboost、GBDT、xgboost
  9. Vue router-link 两种传参方法及参数的使用
  10. 认识 ARM、FPGA
  11. DSP之解读FAT32文件系统
  12. Android UI设计中一些不错的示例及第三方控件
  13. URL任何获取html form的提交值
  14. quora 分享链接
  15. 是时候关注邮件安全了
  16. 流程控制语句swtch
  17. 比尔·盖茨创立的泰拉能源获SK集团投资2.5亿美元;阿特拉斯科普柯中国工业气体装备研发生产基地落户苏州 | 美通企业日报...
  18. 最近在B站重新看学习视频小结
  19. maya 白天室内灯光_Maya Vray室内灯光渲染教程
  20. dota自走棋寻找不到服务器,《DOTA自走棋》服务器不对怎么办 服务器不对解决方法介绍...

热门文章

  1. linux ubuntu联网设置方法,Ubuntu系统无线网络连接设置方法
  2. 配置IIS解决VUE跨域问题
  3. 用python动手写了个自动点检表单脚本
  4. 玩偶 二次元 cosplay 手办迷宫 鬼屋 轰趴 密室逃脱
  5. 图片铺满div元素不变形,超出部分隐藏,保留中心部分css代码
  6. PostgreSQL学习总结(11)—— PostgreSQL 常用的高可用集群方案
  7. 如何统计网站各页面一天内的 PV 和 UV?
  8. 让普通人也能轻松建模?我们做到啦
  9. Android Linker详解(二)
  10. DCDC电源SW电压尖峰过冲问题解析