- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新手教新手之PID算法
新手教新手之PID算法
作者:重庆大学电气学院 杨子浩
QQ:402326134
开始学习PID的时候看了很多篇PID的教程,总是觉得和自己的思路不一样,很难理解,现在好不容易有点头绪了,想和在学习的同学交流一下。希望大家给予修改意见以及互相交流继续深入学习并学会应用,然后用伟大的PID改变生活改变世界!
PID(经典PID)
初始公式:
Ut=KP[et+1TIetdt+TDdetdt]
Ut=Kp+Kietdt+Kddetdt
为了在计算机上实现PID函数,需要离散化,得到离散化公式:
Uk=KPek+TTIj=0kej+TDek-ek-1T
Uk=KPek+Kij=0kej+Kdek-ek-1
更为常用地,转换为增量式:
△uk=uk-uk-1=Kpek-ek-1+Kiek+Kd(ek-2ek-1+ek-2)
uk=uk-1+△uk
这两条就是我们程序中需要用到的公式
下面我来介绍一下各参数的含义(电机调速为例子)
需要关注的三个量:设定值(目标速度)、输出值(PWM)、当前值(当前速度)
ek、et:速度设定值-当前速度值
Kp、Ki、Kd:比例、积分、微分参数,这是我们用经典PID需要调的三个值
uk:PWM占空份数 假设PWM周期20ms,我把周期分为20000份,算出的uk就是占空比的份数。
PID就是能将当前值和目标值的关系转换为我们当前需要的输出量,最终让当前值达到目标值。
详细解释:
我学习的时候,最弄不明白的是,为什么关于速度差的一个函数会输出PWM的份数,而不是PWM的百分比,或者其他什么呢?
我现在认为是式子中积分的作用:对比下图比例、积分、微分的作用(跃阶响应)
微分图中绿色直线为初始值0,红线为目标值
我认为刚学习PID,可以先把注意力放在积分上面,而不是比例上面。
上图是我用EXCEL模拟计算PID函数的作用,我先把KP和KD置零,即不采用比例和微分
速度反馈值用如下公式:(假设速度和PWM是线性的)
速度反馈值(也就是当前速度)=PWM份数PWM总份数*满PWM对应的速度
从这里可以发现:PWM份数的改变→改变速度→积分作用→改变PWM分数
我认为,这里积分这样的作用:将PWM份数和速度对应起来
也就是说,积分能将输出量和当前值建立起关系。
为了证明这个,我把PWM控制改为以百分比控制,得到如下图:
速度反馈值也就是当前速度=PWM百分比*满PWM对应的速度
可见:输出值的形式可以随意更改,他们的关系通过积分作用联系。
而注意到2次的Ki不一样,说明了,Ki的取值范围和输出形式有关系。
我们现在只采用了积分控制
△uk=uk-uk-1=Kiek
相信大家都明白了PID公式是如何将速度值的关系转化为输出量了。
我觉得可以这样理解:积分是主作用,没有积分,只有其他无法达到目标值。而比例和微分可以帮助函数更加好地达到目标值。(例如快速、稳定等因素)
我相信通过我的解释,大家都能学会如何使用上PID,至于比例,微分,积分3个参数如何选定,对系统有什么作用,请大家参考其他高级教程。
总结:如何代码实现PID
以PWM份数为输出量,速度用编码器单位时间脉冲数表示
初始化数值
Speed_Target=1500 目标速度为1500个脉冲/单位时间
Speed=0 当前速度为0
e=0 e(k)
de=0 e(k)-e(k-1)
last_e=0 e(k-1)
last_de=0 e(k-1)-e(k-2)
dde=0 e(k)-2e(k-1)+e(k-2)或(e(k)-e(k-1))-(e(k-1)-e(k-2))
dPWM=0 PWM份数需要增加的量
PWM=0 当前PWM份数
Kp=0 比例参数
Ki=1 积分参数
Kd=0 微分参数
由于3个参数选择范围与速度的表示方式以及输出的表示方式有关,但是我也不知道是什么关系,所以大家可以先从小的开始试,因为小的时候是肯定可用的。
2、每隔一段时间执行如下代码:
e=Speed_Target-Speed; 求e(k)
de=e-last_e; 求e(k)-e(k-1)
dde=de-last_de; 求e(k)-2e(k-1)+e(k-2)
last_e=e; 把e(k)保存为e(k-1)供下次计算使用
last_de=de; 把e(k)-e(k-1)保存为e(k-1)-e(k-2)
dPWM=Kp*de+Ki*e+Kd*dde;
根据公式△uk=Kpek-ek-1+Kiek+Kd(ek-2ek-1+ek-2)求出PWM份数需要改变量
PWM+=dPWM; 由公式uk=uk-1+△uk求出当前P
您可能关注的文档
- 开普勒三定律、万有引力定律的应用(学生用).doc
- 倒装考点归纳.doc
- 手把手教你写英语四、六级作文4.ppt
- 第三部分(16-20章):货币与金融.doc
- 快速霍夫曼解码算法.doc
- 第12周周考理综答案.doc
- 市场市场宣传专员标准化.doc
- 电路部分复习课.doc
- 2010届高二减数分裂复习(精品).ppt
- 滨州学院2009-2010学年第二学期期末考试B答案.doc
- 白天晚上教学课件.ppt
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题带答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解一套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及完整答案详解1套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解1套.docx
- 2025年山东菏泽市事业单位招聘急需紧缺岗位目录(第一批)笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及答案详解1套.docx
- 画西瓜教学课件.ppt
最近下载
- 2025广西南宁市交通运输综合行政执法支队招聘编外聘用人员5人备考试题及答案解析.docx VIP
- 青少年航天知识竞赛题库及答案.docx
- 环氧地坪施工工艺流程.docx VIP
- DB 34T 2752-2016 用人单位职业病危害现状评价导则.docx VIP
- 2025年高考全国1卷读后续写讲评课件 -2026届高考英语一轮复习专项.pptx
- MiniMk8调试与接线资料.pdf VIP
- 五菱宏光MINIEV说明书.docx VIP
- 2024初中物理教师进城考试模拟试卷及参考答案.pdf VIP
- 秦-使用手册-20131215.pdf VIP
- 四库全书基本概念系列文库:遵义府志.pdf VIP
文档评论(0)