PID电机调速PWM

PID电机调速PWM

ID:46799014

大小:134.54 KB

页数:5页

时间:2019-11-27

PID电机调速PWM_第1页
PID电机调速PWM_第2页
PID电机调速PWM_第3页
PID电机调速PWM_第4页
PID电机调速PWM_第5页
资源描述:

《PID电机调速PWM》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、所谓PID指的是Proportion-Integral-Differential。翻译成中文是比例-积分-微分。记住两句话:1、PID是经典控制(使用年代久远)2、PID是误差控制()对直流电机速度进行定速控制:1、L293作为电机驱动;2、光电传感器-作为输出反馈;3、PWM做为输入控制。PID怎么对误差控制,听我细细道来:所谓“误差”就是命令与输出的差值。比如你希望控制转速为4转/s(PWM波占空比=80%),而事实上控制转速只有3.5转/s,则误差:e=0.5转,如果实际转速为4.5转,则误差e

2、=-0.5转(注意正负号)。该误差值送到PID控制器,作为PID控制器的输入。PID控制器的输出为:误差乘比例系数Kp+Ki*误差积分+Kd*误差微分。Kp*e+Ki*∫edt+Kd*(de/dt)(式中的t为时间,即对时间积分、微分)上式为三项求和(希望你能看懂),PID结果后送入电机驱动器。从上式看出,如果没有误差,即e=0,则Kp*e=0;Kd*(de/dt)=0;而Ki*∫edt不一定为0。三项之和不一定为0。总之,如果“误差”存在,PID就会对电机驱动作调整,直到误差=0。评价一个控制系统是

3、否优越,有三个指标:快、稳、准。所谓快,就是要使压力能快速地达到“命令值”(不知道你的系统要求多少时间)所谓稳,就是要压力稳定不波动或波动量小(不知道你的系统允许多大波动)所谓准,就是要求“命令值”与“输出值”之间的误差e小(不知道你的系统允许多大误差)对于你的系统来说,要求“快”的话,可以增大Kp、Ki值要求“准”的话,可以增大Ki值要求“稳”的话,可以增大Kd值,可以减少压力波动仔细分析可以得知:这三个指标是相互矛盾的。如果太“快”,可能导致不“稳”;如果太“稳”,可能导致不“快”;只要系统稳定且

4、存在积分Ki,该系统在静态是没有误差的(会存在动态误差);所谓动态误差,指当“命令值”不为恒值时,“输出值”跟不上“命令值”而存在的误差。不管是谁设计的、再好的系统都存在动态误差,动态误差体现的是系统的跟踪特性,比如说,有的音响功放对高频声音不敏感,就说明功放跟踪性能不好。调整PID参数有两种方法:1、仿真法;2、“试凑法”仿真法我想你是不会的,介绍一下“试凑法”“试凑法”设置PID参数的建议步骤:1、把Ki与Kd设为0,不要积分与微分;2、把Kp值从0开始慢慢增大,观察压力的反应速度是否在你的要求内

5、;3、当压力的反应速度达到你的要求,停止增大Kp值;4、在该Kp值的基础上减少10%;5、把Ki值从0开始慢慢增大;6、当压力开始波动,停止增大Ki值;7、在该Ki值的基础上减少10%;8、把Kd值从0开始慢慢增大,观察压力的反应速度是否在你的要求内P、I、D参数整定口诀: 参数整定找最佳,从小到大顺序查;先是比例后积分,最后再把微分加;曲线振荡很频繁,比例度盘要放大;曲线漂浮绕大湾,比例度盘往小扳;曲线偏离回复慢,积分时间往下降;曲线波动周期长,积分时间再加长;曲线振荡频率快,先把微分降下来;动差大

6、来波动慢,微分时间应加长。这是我在STM32F103RB上做速度PID的PID函数,当然也可以利用ST公司自带的DSP库,//======================================================================//Adjustthesethreefactor,toachievethebestcontroleffect//P:1~10之间I:0-5之间D:0.1~1floatP_Coefficient=4.75;floatI_Coefficient

7、=0.55;floatD_Coefficient=0.2;#defineDiff_Order4/*Differentialorder*/intTemp,DestTemp,HeatPower;intSet_Distant;longintIntegral=5;//PointsaccumulatedfloatPrev_Error[10];//RecordtentimesbeforetheerrorfloatP,I,D;floatEk,E;unsignedcharFirstFlag=1;/**********

8、**********************************************************************Funtionname:PIDControl*Time:2013/3/5*Author:zhuhao*******************************************************************************/floatPID_Control(floatError){

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。