对PID控制器三个参数的认识
对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控制器三个参数的认识相关推荐
- 【转】PID算法原理 一图看懂PID的三个参数
这是目前发现写的最好的了,原文作者DF创客社区virtualwiz 以下为原文: LZ以前有个小小的理想,就是让手边的MCU自己"思考"起来,写出真正带算法的程序. 前段时间做一个 ...
- PID控制器改进笔记之一:改进PID控制器之参数动态调整
前面我们发布了一系列PID控制器相关的文章,包括经典PID控制器以及参数自适应的PID控制器.这一系列PID控制器虽说实现了主要功能,也在实际使用中取得了良好效果,但还有很多的细节部分可以改进以提高性 ...
- matlab pid 课设 参考文献,系统控制论文,关于Matlab在计算机控制技术课程“PID控制器参数整定”中的应用相关参考文献资料-免费论文范文...
导读:本论文可用于系统控制论文范文参考下载,系统控制相关论文写作参考研究. 周少武陈敏沈红远 曾照福 (湖南科技大学信息与电气工程学院 湖南湘潭411201) 摘 要:传统PID参数整定的教学方法以定 ...
- PID控制器改进笔记之三:改进PID控制器之正反作用
前面我们发布了一系列PID控制器相关的文章,包括经典PID控制器以及参数自适应的PID控制器.这一系列PID控制器虽说实现了主要功能,也在实际使用中取得了良好效果,但还有很多的细节部分可以改进以提高性 ...
- PID控制器开发笔记之十三:单神经元PID控制器的实现
神经网络是模拟人脑思维方式的数学模型.神经网络是智能控制的一个重要分支,人们针对控制过程提供了各种实现方式,在本节我们主要讨论一下采用单神经元实现PID控制器的方式. 1.单神经元的基本原理 单神经元 ...
- PID控制器的优缺点和周期
PID控制器参数优缺点 PID控制器简介 PID控制器是非常经典的一种控制算法,是不需要知道系统的模型,仅仅根据期望与现状的偏差调节,使之能够到达期望的一种线性控制器. 优点:使用简单,灵活,调节方便 ...
- 强化学习4——基于Actor-Critic的自适应PID控制器设计
注释:本博文内容来源于文献:Wang X, Cheng Y, Sun W, et al. A Proposal of Adaptive PID Controller Based on Reinforc ...
- 十一.四轮车驱动开发之四:理解直流电机PID控制器
这是"四轮车驱动控制"系列,分多个小节来介绍: 1. 八.四轮车驱动开发之一:正/逆向运动学分析 2. 九.四轮车驱动开发之二: 配置PWM驱动直流电机 3. 十.四轮车驱动开发之 ...
- 如何使用matlab得出pid控制参数值,基于MATLAB的PID控制器参数整定及仿真
基于MATLAB的PID控制器参数整定及仿真 摘要:PID控制器结构和算法简单,应用广泛,但参数整定比较复杂,在此我探讨利用MATLAB实现PID参数整定及其仿真的方法,并分析比较比例.比例积分.比例 ...
最新文章
- matlab按顺序排列图片,小技巧
- [BeiJing2011][bzoj2460] 元素
- Alpine 操作系统是一个面向安全的轻型 Linux 发行版
- Docker镜像大小
- python字典键值可以是元组或列表吗_Python列表、元组、字典、集合的内置使用方法...
- Spring : Spring事物支持核心接口
- mysql外键排序规则_mysql创建外键出错(注意数据库表字段排序)
- 决策树ID3、C4.5、CART、随机森林、bagging、boosting、Adaboost、GBDT、xgboost
- Vue router-link 两种传参方法及参数的使用
- 认识 ARM、FPGA
- DSP之解读FAT32文件系统
- Android UI设计中一些不错的示例及第三方控件
- URL任何获取html form的提交值
- quora 分享链接
- 是时候关注邮件安全了
- 流程控制语句swtch
- 比尔·盖茨创立的泰拉能源获SK集团投资2.5亿美元;阿特拉斯科普柯中国工业气体装备研发生产基地落户苏州 | 美通企业日报...
- 最近在B站重新看学习视频小结
- maya 白天室内灯光_Maya Vray室内灯光渲染教程
- dota自走棋寻找不到服务器,《DOTA自走棋》服务器不对怎么办 服务器不对解决方法介绍...