- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PID算法–原理–流程图–及代码
PID算法、原理、流程图、及代码
PID原理2.流程图3。PID代码//定义变量float Kp;? ?? ?? ?? ?? ?? ?? ???//PI调节的比例常数float Ti;? ?? ?? ?? ?? ?? ?? ???//PI调节的积分常数float T;? ?? ?? ?? ?? ?? ?? ?? ?//采样周期float Ki;float ek;? ?? ?? ?? ?? ?? ?? ???//偏差e[k]float ek1;? ?? ?? ?? ?? ?? ?? ? //偏差e[k-1]float ek2;? ?? ?? ?? ?? ?? ?? ? //偏差e[k-2]float uk;? ?? ?? ?? ?? ?? ?? ???//u[k]signed int uk1;? ?? ?? ?? ?? ???//对u[k]四舍五入取整signed int adjust;? ?? ?? ?? ???//调节器输出调整量//变量初始化? ? Kp=4;? ? Ti=0。005;? ? T=0.001;// Ki=KpT/Ti=0.8,微分系数Kd=KpTd/T=0.8,Td=0.0002,根据实验调得的结果确定这些参数? ? ek=0;? ? ek1=0;? ? ek2=0;? ? uk=0;? ? uk1=0;? ? adjust=0;int piadjust(float ek)??//PI调节算法{? ? if( gabs(ek)0.1 )? ? {? ?? ? adjust=0;? ? }? ? else ? ? {? ???? ?? ? uk=Kp*(ek-ek1)+Ki*ek;??//计算控制增量? ?? ? ek1=ek; ? ?? ? ? ?? ? uk1=(signed int)uk;? ?? ? if(uk0)? ?? ? {? ?? ?? ? if(uk-uk1=0.5)? ?? ?? ? {? ?? ?? ?? ? uk1=uk1+1;? ?? ?? ? }? ?? ? }? ?? ? if(uk0)? ?? ? {? ?? ?? ? if(uk1-uk=0.5)? ?? ?? ? {? ?? ?? ?? ? uk1=uk1-1;? ?? ?? ? }? ?? ? }? ?? ? adjust=uk1;? ? ? ? }? ?? ???? ? ? ? ? ? return adjust;}下面是在AD中断程序中调用的代码。? ?? ? ? ?? ? 。。。。。。。。。。。? ?? ? else //退出软启动后,PID调节,20ms调节一次? ?? ?? ???{? ?? ?? ?? ???EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);//误差较小PID调节稳住? ?? ?? ?? ???if(EvaRegs.CMPR3=890)? ?? ?? ?? ???{? ?? ?? ?? ?? ???EvaRegs.CMPR3=890; //限制PWM占空比? ?? ?? ?? ???}? ?? ???? ?? ?? ???}? ?? ???。。。。。。。。。。。。。。。。4。PID调节经验总结PID控制器参数选择的方法很多,例如试凑法、临界比例度法、扩充临界比例度法等。但是,对于PID控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断的调整才能得到较为满意的控制效果。依据经验,一般PID参数确定的步骤如下[42]:(1)? ? ? ? 确定比例系数Kp确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp由0开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的60%~70%。(2)? ? ? ? 确定积分时间常数Ti比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。(3)? ? ? ? 确定微分时间常数Td微分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,则与确定Kp的方法相同,取不振荡时其值的30%。(4)? ? ? ? 系统空载、带载联调对
您可能关注的文档
最近下载
- 25题固定收益分析岗位常见面试问题含HR问题考察点及参考回答.pdf
- 韶关市2025届高三一模(综合测试一) 英语试卷(含答案).docx
- 工作报告及设计心得20160831.pdf VIP
- SPC导入的钢箱截面在生成变截面时,消隐显示各板件连接错乱.pdf VIP
- Lessonsinlifesaving英国短片剧本.docx VIP
- 2019年注册土木工程师(道路工程)考前培训南京班文件-李 雪.pdf VIP
- 上海市2018-2022年近五年中考数学试卷附答案.pdf VIP
- 城轨车站施工与维护——开挖作业.pptx VIP
- 城轨车站施工与维护——围护结构施工及基坑开挖.pptx VIP
- 铁道概论——单元7.7铁路专用通信系统.pptx VIP
文档评论(0)