欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    STM32实现电机的PID控制.docx

    • 资源ID:1230851       资源大小:40.33KB        全文页数:6页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    STM32实现电机的PID控制.docx

    PlD控制应该算是非常古老而且应用非常广泛的控制算法了,小到热水壶温度控制,大到控制无人机的飞行姿态和飞行速度等等。在电机控制中,PID算法用得尤为常见。一、位置式PID1.计算公式在电机控制中,我们给电机输出的是一个PWM占空比的数值。话不多说,直接上位置式PlD基本公式:Pwm=KP*e(k)+Ki*e(k)+Kde(k)-e(k-1)e(k):本次偏差e(k-I):上一次的偏差e(k):e(k)偏差的累积和淇中k为l,2,k;Pwm:输出Kp:比例项参数Ki:积分项参数Kd:微分项参数控制流程图如下:a<MCU)上图中的目标位置一般我们可以通过按键或者开关等方式编程实现改变目标值,测量位置就是通过stm32去采集编码器的数据。目标位置和测量位置之间作差就是目前系统的偏差。送入PID控制器进行计算输出,然后再经过电机驱动的功率放大控制电机的转动去减小偏差,最终达到目标位置的过程。2.C语言实现如何把我们以上的理论分析和控制原理图使用C语言写出来呢,这是一个有趣且实用的过程。位置式PID具体通过C语言实现的代码如下:intPosition_PID(intEncodeointTarget)(staticfloatBiaszPwmJntegral-bias,Last-Bias;Bias=Target-EnCOder;计算偏差IntegraLbiaS+=Bias;求出偏差的积分/PID基本公式Pwm=Position_KP*Bias+Position_KI*lntegral_bias+Position_KD*(Bias-Last_Bias);1.aSjBiaS=Bias;保存上一次偏差returnPwm;输出)入口参数为编码器的位置测量值和位置控制的目标值,返回值为电机控制PWM(现在再看一下上面的控制框图是不是更加容易明白了)。第一行是相关内部变量的定义。第二行是求出位置偏差,由测量值减去目标值。第三行通过累加求出偏差的积分。第四行使用位置式PID控制器求出电机PWM.,第五行保存上一次偏差,便于下次调用。最后一行是返回。二、增量式PID1 .计算公式速度闭环控制就是根据单位时间获取的脉冲数(这里使用了M法测速)测量电机的速度信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向于零的过程。Pun+=Kpe(k)-e(k-l)+Ki*e(k)+Kde(k)-2e(k-l)÷e(k-2)e(k):本次偏差e(k-l):上一次的偏差e(k-2):上上次的偏差Kp:比例项参数Ki:积分项参数Kd:微分项参数在我们的速度控制闭环系统里面只使用Pl控制,因此对PID控制器可简化为以下公式:Pwm+=Kpe(k)-e(k-1)+Ki*e(k)控制框图和位置式的一样的。上图中的目标速度一般我们可以通过按键或者开关等方式编程实现改变目标值,测量速度前面在编码器的章节己经有说到就是通过单片机定时去采集编码器的数据并清零。目标速度和测量速度之间做差就是目前系统的偏差。送入PID控制器进行计算输出,然后再经过电机驱动的功率放大控制电机的转动去减小偏差,最终达到目标速度的过程。2 .C语言实现如何把我们以上的理论分析和控制原理图使用C语言写出来呢,这是一个有趣且实用的过程。位置式PID具体通过C语言实现的代码如下:intlncremental_PI(intEncoderJntTarget)(staticfloatBiaszPwm,Last_bias;BiaS=EnCoder-Target;计算偏差增量式Pl控制器Pwm+=Velocity_KP*(Bias-Last_bias)+Velocity_KI*Bias;1.aSJbiaS=Bias;保存上一次偏差returnPWm;增量输出)入口参数为编码器的速度测量值和速度控制的目标值,返回值为电机控制PWMo第一行是相关内部变量的定义。第二行是求出速度偏差,由测量值减去目标值。第三行使用增量Pl控制器求出电机PWMk第四行保存上一次偏差,便于下次调用。最后一行是返回。三、P、I、D各个参数的作用自动控制系统的性能指标主要有三个方面:稳定性、快速性、准确性。稳定性:系统在受到外作用后,若控制系统使其被控变量随时间的增长而最终与给定期望值一致,则称系统是稳定的,我们一般称为系统收敛。如果被控量随时间的增长,越来越偏离给定值,则称系统是不稳定的,我们一般称为系统发散。稳定的系统才能完成自动控制的任务,所以,系统稳定是保证控制系统正常工作的必要条件。一个稳定的控制系统其被控量偏离给定值的初始偏差应随时间的增长逐渐减小并趋于零。快速性:快速性是指系统的动态过程进行的时间长短。过程时间越短,说明系统快速性越好,过程时间持续越长,说明系统响应迟钝,难以实现快速变化的指令信号。稳定性和快速性反映了系统在控制过程中的性能。系统在跟踪过程中,被控量偏离给定值越小,偏离的时间越短,说明系统的动态精度偏高。准确性:是指系统在动态过程结束后,其被控变量(或反馈量)对给定值的偏差而言,这一偏差即为稳态误差,它是衡量系统稳态精度的指标,反映了动态过程后期的性能。在实践生产工程中,不同的控制系统对控制器效果的要求不一样。比如平衡车、倒立摆对系统的快速性要求很高,响应太慢会导致系统失控。智能家居里面的门窗自动开合系统,对快速性要求就不高,但是对稳定性和准确性的要求就很高,所以需要严格控制系统的超调量和静差。

    注意事项

    本文(STM32实现电机的PID控制.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开