PID参数整定具体方法-圆周倒立摆
0.前言
关于PID参数的整定,网上调节的口诀、原则、方法满天飞,但是并没有具体的到步的教程,作为初学者且非自动化相关专业学生有点看不懂、一脸懵逼,走了不少弯路,呕心沥血才调节好,之后才看得懂那些口诀、原则。为了让大家少走弯路,这里将给出圆周倒立摆直立环PID参数整定的具体步骤。
多图预警!
圆周倒立摆整体图
1.PID编程及理解
磨刀不误砍材工,是骡子是马,咱先看看,要想调好PID参数必须理解每个参数的意义,具体来说就是每个参数在那条PID曲线的作用,这需要一点点高等数学功底,如果你对PID有很深的理解,可以跳下文。必须认识到:不了解PID公式是没办法了解各个参数的意义的。如果你不知道微分系数D为什么能增加系统稳定性、不知道为什么微分系数I可以消除偏差,我们需要了解PID重要参数的数学意义对应的实际意义,可以去看:https://blog.csdn.net/qq_36720691/article/details/97252418#comments
2.具体调试方法
在调试PID之前,先保证几件事情:
1.PID调节周期(T)为固定值,(也就是说你需要一个定时器实现精确周期调用PID调节,具体原因,请看上文:PID编程及理解)
2.相关辅助系统是稳定运行的,(比如你需要PID控制电机转速,你需要保证驱动器的供电电压稳定,假设:pwm占空比是50%,驱动器电压输出给电机电压=供电电压 X 50%,如果你供电电压不稳定的话,相同PWM下,电机电压不是相同值,会造成pid怎么调节都无法调稳)
3.给上位机发送信息的周期为固定值(你需要一个上位机,用于观察波形、方便计算其余参数)
一句话总结:要保证所有的不行都是PID参数的不行
接下来开始调节PID了:我采用的是圆周倒立摆进行演示,采用临界比例度法,演示调节直立环的具体方法。
第一步:找到临界比例项系数P
1.将调节器积分时间设定为无穷大、微分时间设定为零(即ti=∞,Td=0),也就是说:积分项I、微分项D先清零,P随便给个值,这里给了35.5
double Balance_PID(double *Angle,double SET){ static double E_sum,Error_last; //上一次误差 double kp=35.5,ki=0,kd=0;double pid;double Error_now; //当前误差 Error_now = SET-*Angle; //当前误差E_sum += Error_now; //误差累计 pid= kp * Error_now + ki * E_sum + kd * (Error_now-Error_last); //pid计算公式Error_last=Error_now;return -pid;
}
2.给倒立摆摆杆一个偏置,然后启动,开始调节、观察波形。(倒立摆摆杆目标值180°,开始时把摆杆放在165°或者195°或者其他非目标值(180°)的度数上、按下按键开始调节)
按下按键后,系统开始周期性调用PID进行姿态调节,单片机周期性给上位机传输角度数据,因此会得到一个角度波形,
我这里是给的偏置大约是-10°,从170°开始调节,可以看到只有P的作用时,系统挣扎了几下,摆杆来回摆动了加下,然后失去稳定落下来。
我们放大来看:
初始位置是170度左右,目标位置是180°,角度在迅速变大之后迅速变小,来回几下之后,失去稳定
如果你理解了PID公式,那么你应该知道,在存比例调节的时候,能让摆杆等幅度震荡的P是最合适的,我们需要找的就是能让摆杆等幅度震荡的P
可以看到上面的那个角度波形图中,角度再上去之后下来是超过了一开始的偏置,因此可以判断P大了,这不是我们想要的P
我们换个值看看,直接缩小一半左右:P=26.5,给同样的偏置,按下按键开始调节,看波形。
角度再上去之后下来是没有达到一开始的偏置,因此可以判断P小了。
重复工作,慢慢测试,有时候同一个数要多测几次,如果你手斗的话,可以采用某一种策略改变P(如每次+10,每次翻倍,两边夹逼),工作量很大,慢慢找,直到找到比较好的等幅震荡的曲线:
P=27.5
P=28.5
P=34.5
P=35.2
测试到最好找到了最好的曲线:
P=35.135
P=35.135放大来看:
至此我们找到了临界的P值。
第二步:根据临界比例度方法计算I和D
PID经验计算方法这里有很好的介绍:
http://bbs.elecfans.com/jishu_1502798_1_1.html
表中是临界比例度,Tk是临界周期,
Tk通过观察波形曲线计算出来:
当时大概两个波峰之差算是9,我单片机是每10ms给上位机发送一次数据,因此Tk = 90ms,(所以给上位机发送数据的周期必须使固定的,不然会有比较大的误差)
而:临界比例度 = 1/Kp;
如果你了解PID的公式(不了解可以去看上文),轻易知道:
上面的T是调节周期,也就是你调用PID调节函数的周期,我是每4ms调节一次,因此我的T = 4ms
接下来就是计算的问题了:
至此,P、I、D三个参数全部得到;(不好意思,上图,Td算错了)
同样给个偏置,看看波形
放大来看:
从150°开始,按下按键,开始调节,杆子瞬间就直立了,觉还可以。
至此:直立环调节基本完成,不过值得注意的是,一个直立环无法让倒立摆稳定。
第三步:P、I、D微调
如果你有强迫症,对直立环响应曲线不满意,这时候就需要对三个参数进行微调,
调节原则如下:
1、在输出不振荡时,增大比例增益P。
2、在输出不振荡时,减小积分时间常数Ti。
3、输出不振荡时,增大微分时间常数Td。
口诀:
参数整定找最佳,从小到大顺序查。
先是比例后积分,最后再把微分加。
曲线振荡很频繁,比例度盘要放大。
曲线漂浮绕大湾,比例度盘往小扳。
曲线偏离回复慢,积分时间往下降。
曲线波动周期长,积分时间再加长。
曲线振荡频率快,先把微分降下来。
动差大来波动慢。微分时间应加长。
理想曲线两个波,前高后低4比1。
一看二调多分析,调节质量不会低
调节PID把我强迫症被治得差不多了,微调我并没有有花太多时间研究,了解了再补充。
说一些额外的:
圆周倒立摆需要两个环让其稳定,一个是直立环,一个是位置环,本文分享的是直立环的调节方法,只有直立环时倒立摆虽然能直立但是会朝一个方向一直转,越来越快,最后达到最大PWM值,然后失去稳定。
和直立环不同的是位置环是正反馈,让倒立摆追上去,让其多往回摆一点,通过直立环的调节回到设定的位置目标,因此屏蔽掉直立环时,推着倒立摆转,他会朝那个方向越转越快,所以位置环其实会削弱直立环的作用。
圆周倒立摆需要两个环并联(串联?),我在调节位置环时采用前一种方法,但是效果不显著,勉强可以,两个环的联调方法我看了上网查了不少资料却没有一点思路。
如果你会调串联PID,请务必教教我。
PID参数整定具体方法-圆周倒立摆相关推荐
- 我的四轴专用PID参数整定方法及原理
给四轴调了好久的PID,总算是调好了,现分享PID参数整定的心得给大家,还请大家喷的时候手下留情. 首先说明一下,这篇文章的主旨并不是直接教你怎么调,而是告诉你这么调有什么道理,还要告诉大家为什么'只 ...
- 我的四轴专用PID参数整定方法及原理---超长文慎入(转)
给四轴调了好久的PID,总算是调好了,现分享PID参数整定的心得给大家,还请大家喷的时候手下留情. 首先说明一下,这篇文章的主旨并不是直接教你怎么调,而是告诉你这么调有什么道理,还要告诉大家为什么'只 ...
- matlab求系统根轨迹代码_根轨迹法、PID参数整定和matlab指令计算
收获 (1)理解根轨迹的概念及其在控制系统设计中的作用: (2)手绘根轨迹草图,以及如何使用极端及绘制根轨迹: (3)熟悉在反馈控制系统中应用广泛的关键部件:PID控制器: (4)理解根轨迹在参数设计 ...
- 一个实例说明PID 参数整定
引言:PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解. 1.比例控制 ...
- PID 参数整定过程
Kp: 比例系数 ----- 比例带(比例度)P:输入偏差信号变化的相对值与输出信号变化的相对值之比的百分数表示 (比例系数的倒数) T:采样时间 Ti: 积分时间 Td: 微分时间 温度T: P= ...
- 基于遗传算法的PID参数整定研究(三)
基于遗传算法的PID参数整定研究 在获得对象模型的基础上设计PID参数时常用的原理,经典的有经验试凑法.临界比例度法.极点配置原理.零极点相消原理.幅相裕度法等:现代的则往往借助于计算机,利用最优化方 ...
- 【控制理论】——控制系统分类PID算法简介PID参数整定PID上位机通信协议
目录 前言 一.PID算法 1.控制系统分类&参数&信号 2.PID算法简介 二.PID参数整定 三.PID上位机通信协议 1.数据帧&协议调试 2.协议代码实现 拓展: ...
- 基于入门级粒子群算法的PID参数整定(MATLAB2016b-simulink)(超详细01)
PID算法作为工业或日常生活中常用的控制算法,想必大家都不陌生,依靠误差反馈来消除误差,关于PID的原理部分相比看这篇博客的同学应该都十分清楚,有不清楚的同学可以百度或知网搜索.PID算法的应用程度很 ...
- 基于遗传算法的PID参数整定研究(七)
基于遗传算法的PID参数整定研究 在前述深入了解PID参数的含义.基于常规人工的PID参数整定.以及所运用的遗传算法的介绍与应用后,紧接着进入应用遗传算法的PID参数整定,实现了Simulink仿真与 ...
- 自动控制原理PID参数整定的Matlab实现
以一道题为例介绍调节PID控制器系数的方法,有:试凑法(Trial-and-Error Method).齐格勒-尼科尔斯校正规则(Ziegler and Nichols First Method. ...
最新文章
- LeetCode简单题之至少是其他数字两倍的最大数
- 全球第五大社交网站,二号员工离职创业,自爆心酸历程!想做10亿美元规模?先活着!...
- 3.20周记:栈和队列
- base cap 分布式_神一样的CAP理论被应用在何方?
- 重启sshd_调整linux服务器sshd的MaxStartups,确保可以并行登录
- 小打卡基于阿里云构建企业级数仓的实践及总结
- Java NIO:Buffer、Channel 和 Selector
- K8s报错#!/bin/bash yum install -y yum-utils device-mapper-persistent-data lvm2 if [ $? = 0 ];then echo
- solr 配置mysql数据源_solr data-config.xml配置文件的见解mysql数据源
- 更便捷的画决策分支图的工具_做出更好决策的3个要素
- dubbo kryo序列化_为什么如此高效?解密kryo各个数据类型的序列化编码机制,强...
- 2001.dumpbin工具使用
- 准备好的文字转换成语音的方法
- Servlet3.0之八:基于Servlet3.0的文件上传@MultipartConfig
- 巴克码信号处理的计算机仿真,单码道绝对编码信号处理建模与仿真
- 微信打飞机--Java版
- bzoj 3332 旧试题
- java游戏 麦克斯 狗,我的主角麦克斯----记南极大冒险中的狗狗们
- 三菱Q系列PLC通过QD75P2N控制三菱MR-JEA伺服
- 如何选购护眼灯呢?南卡/明基/孩视宝台灯哪个比较好?「测评三款热销护眼灯」