0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

干货 |直流电机控制算法精髓

丫丫119 来源:未知 作者:肖冰 2019-10-06 07:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通常我们在控制小车运动的时候不知道如何精确的对小车轨迹进行控制。在不懂得小车控制算法精髓的时候,我们是无法对小车进行精确的控制的。目前绝大多数小车都是用PID控制算法来实现对小车的运动控制的。现在很多玩家就只知道一种调节方法,就是比例调节,即向左偏就向右调节,向右偏就向左调节,最容易想到,也是最容易用软硬件实现的,但是结果也是最容易出问题的。当时的感觉就是小车太灵敏了,忽左忽右,不是很稳定。后来查了资料后知道了其他的调节方式。小车的实物图如下图所示。

小车实物图

控制算法:

电机控制算法的作用是接受指令速度值,通过运算向电机提供适当的驱动电压,尽快地和尽快平稳地使电机转速达到指令速度值,并维持这个速度值。换言之,一旦电机转速达到了指令速度值,即使在各种不利因素(如斜坡、碰撞之类等使电机转速发生变化的因素)的干扰下也应该保持速度值不变。为了提高机器人小车控制系统的控制精度,选用合适的控制算法显得十分必要。
控制算法是任何闭环系统控制方案的核心,然而并非越复杂、精度越高的算法越好,因为比赛要求非常高的实时性,机器人必须在非常短的时间内作出灵敏的反应,所以现代的一些先进控制算法,比如模糊控制、神经元网络控制等就不能应用到小车控制系统里。本系统选用了最常规、最经典的PID控制算法,通过实际应用取得了很好的效果。下图是PID控制原理结构图。

微信图片_20190809101635.jpg

PID控制系统原理结构框图

比例项

控制回路中的第一个偏差转换环节就是比例项。这一环节简单地将偏差信号乘以常数K 得到新的CV值(值域为-100~100)。基本的比例控制算法如下:

loop:

PV=ReadMotorSpeed()

Error=SP-PV

CV=Error*Kprop

Setpwm(cv)

Goto loop

其中SP为设定值,PV为反馈值,Error为误差。

上一段程序中的SetPWM()函数并非将CV值作为绝对的PWM占空比来对待。否则,不断降低的偏差值会使输出值接近零,而且由于电机工作时需要持续的PWM信号,控制系统将会使电机稳定在低速运转状态上,从而导致控制系统策略失败。

相反,CV值一般被取作当前PWM占空比的改变量,并被附加到当前的PWM占空比上。这也要求SetPWM()函数必须将相加后得到的PWM占空比限制在0%~100%。正的CV值将使电机两端电压增加。负的CV值将使电机两端电压降低。如果CV值等于0,则无需改变但前占空比。较低的K 值会使电机的速度响应缓慢,但是却很平稳。较高的K 值会使速度响应更快,但是却可能导致超调,即达到稳定输出前在期望值附近振荡。过高的K 值会导致系统的不稳定,即输出不断震荡且不会趋于期望值。

积分项

积分正好与微分相对。假如有一个描述变化率(微分)的表达式,那么对该表达式的积分就将得到随时间变化的原物理量。如加速度的积分是速度,速度的积分是位移。

在PID控制回路中,偏差的积分代表从控制开始时算起所有偏差积累的总和。该总和被常数K 所乘后再添加到回路输出中。在回路中,如果没有积分环节,尽管控制系统也会趋于稳定,但是由于某种原因输出值可能最终也无法达到SP值。

一个简单但完全的PID控制器地伪代码实现如下:

loop:

PV=ReadMotorSpeed()

LastError=Error

Isum=Isum+Error

Error=SP-PV

Rate=Error-Last

ErrorCV=Error*Kprop+Krate*Rate+Kint*Isum

SetPWM(CV)

Goto loop

由于积分项会越来越大,这就会使控制回路在SP值的改变时响应变慢,某些应用场合在CV值达到取值边界(如为:-100~100)时会停止累加Isum。在SP值改变时,也可以除去Isum项。

微分项

任何变量的微分项被用来描述该变量是如何相对于另一个变量(多位时间)变化的。换句话说,任何变量的微分项就是它随时间的变化率。如位移随时间的变化率是速度。速度相对于时间的微分是加速度。

在PID控制器中,值得关心的是偏差信号相对于时间的微分,或称变化率。绝大多数控制器将微分项定义为:Rate=(E-E )/T

式中,E为当前偏差,E 为前次偏差值,T为两次测量的时间间隔。负的变化率表明偏差信号的改善。当微分项被具体应用于控制器中时,将一个常数乘以该微分项,并将它加到比例项上,就可以得到最终的CV值计算公式:

CV=( K E)+( K Rate)

当偏差信号接近零时,CV值将为负,所以当偏差信号开始改善时,微分项的作用将逐渐减弱校正输出量。在某些场合下,微分项还有利于超调量的消除,并可以允许使用较大的K 值,从而可以改善响应的快速性。微分环节还预示了偏差信号的变化趋势。当控制对象对控制器的输出响应迟缓时,微分环节的作用尤为明显。

含有微分项的控制算法的伪代码实现如下:

loop:

PV=ReadMotorSpeed()

LastError=Error

Error=SP-PV

Rate=Error-Last

ErrorCV=Error*Kprop+Krate*Rate

SetPWM(CV)

Goto loop

PID的整定方法

在整定PID控制器参数时,可以根据控制器的参数与系统动态性能和稳态性能之间的定性关系,用实验的方法来调节控制器的参数。有经验的调试人员一般可以较快地得到较为满意的调试结果。在调试中最重要的问题是在系统性能不能令人满意时,知道应该调节哪一个参数,该参数应该增大还是减小。

为了减少需要整定的参数,首先可以采用PI控制器。为了保证系统的安全,在调试开始时应设置比较保守的参数,例如比例系数不要太大,积分时间不要太小,以避免出现系统不稳定或超调量过大的异常情况。给出一个阶跃给定信号,根据被控量的输出波形可以获得系统性能的信息,例如超调量和调节时间。应根据PID参数与系统性能的关系,反复调节PID的参数。

如果阶跃响应的超调量太大,经过多次振荡才能稳定或者根本不稳定,应减小比例系数、增大积分时间。如果阶跃响应没有超调量,但是被控量上升过于缓慢,过渡过程时间太长,应按相反的方向调整参数。

如果消除误差的速度较慢,可以适当减小积分时间,增强积分作用。

反复调节比例系数和积分时间,如果超调量仍然较大,可以加入微分控制,微分时间从0逐渐增大,反复调节控制器的比例、积分和微分部分的参数。

总之,PID参数的调试是一个综合的、各参数互相影响的过程,实际调试过程中的多次尝试是非常重要的,也是必须的。

具体有以下几种方法:

(1)试凑法试凑法就是人工选择PID参数,使控制系统响应达到预定要求,这种方法既简单又复杂,说简单是,如果你有经验和运气的话,那么在SIMULINK中,可能很快就达到了目标,说难的是,在现场实战中,可能费了很大时间和精力来调整三个参数,也没有完成任务。

(2)临界比例度法临界比例度法就是仅在P作用下,调整比例度使系统等幅振荡,然后根据公式算出PID值,效果如图1所示,图中左半部分是系统等幅振荡,右半部分是控制效果。下图是通过MATLAB 仿真的PID临界比例度法控制的曲线效果图。

微信图片_20190809102031.jpg

PID临界比例度法控制的曲线

(3)衰减曲线法衰减曲线法

就是仅在P作用下,调整比例度使系统响应曲线以4:1或10:1比率衰减,然后根据公式算出PID值,效果如图2所示,图中左半部分是系统衰减曲线,右半部分是控制效果。下图是通过MATLAB 仿真的PID衰减曲线法控制的曲线效果图。

微信图片_20190809102217.jpg
PID衰减曲线法控制的曲线

(4)反应曲线法反应曲线法就是在开环状态下,加阶跃信号,然后用一阶加纯滞后系统逼近原系统,然后根据由Z-N或C-C公式算出PID值,效果如图3所示,图中左半部分是系统 响应曲线 , 右半部分是控制效果。图4是一个三阶系统,临界比例度法 求得的有关参数。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 直流电机
    +关注

    关注

    36

    文章

    1772

    浏览量

    73499
  • PID控制算法
    +关注

    关注

    1

    文章

    21

    浏览量

    10954
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32电机控制基础——无刷直流电机换相控制原理

    与有刷直流电机相比,无刷直流电机除使用电子换相器取代有刷直流电机电刷机械换向,使用永磁体产生转子磁场外,从结构和工作原理上都和有刷直流电机相类似,故其
    的头像 发表于 10-09 17:15 3562次阅读
    CW32<b class='flag-5'>电机</b><b class='flag-5'>控制</b>基础——无刷<b class='flag-5'>直流电机</b>换相<b class='flag-5'>控制</b>原理

    单片机直流电机调速原理

    在工业自动化、智能设备等领域,直流电机的调速控制至关重要,而单片机凭借其灵活的控制能力,成为实现直流电机精准调速的核心部件。单片机直流电机
    的头像 发表于 07-17 13:42 506次阅读

    浮思特 | 无刷电机与有刷直流电机的区别是什么,该如何选择?

    在精密运动控制领域,永磁直流电机因其优于交流电机的可控性,被广泛应用于需精准调节速度、扭矩或位置的场景。美蓓亚三美有刷直流电机当前主流直流电机
    的头像 发表于 07-16 10:15 3103次阅读
    浮思特 | 无刷<b class='flag-5'>电机</b>与有刷<b class='flag-5'>直流电机</b>的区别是什么,该如何选择?

    无刷直流电机双闭环控制的仿真研究

    摘 要:为了便于对无刷直流电机的运行特性和控制策略的研究,文章详细的介绍了无刷直流电机工作原理和数学模型,提出无刷直流电机控制策略,采用电
    发表于 07-08 18:33

    无刷直流电机模糊自适应PID控制的研究

    摘要:为了提高无刷直流电机控制系统的动、静态性能,将模糊控制结合PID控制算法应用到无刷直流电机
    发表于 07-07 18:29

    无刷直流电机控制研究

    摘一要:设计了一种采用 TMS320LF2407DSP作为主控制器,集成 IGBT 作为功率驱动元件的无刷直流电机控制器,对电机转速和电流的双闭环 PID 调节。通过在跑步机上的试验表
    发表于 06-26 13:39

    无刷直流电机RBF磁场定向控制及监控系统设计

    摘 要:针对现有无刷直流电机转矩脉动抑制方法存在抑制效果不理想,或脉动抑制效果好但学习算法复杂,不利于推广的问题,将RBF神经网络与磁场定向控制相结合,选用Luminary615微控制
    发表于 06-25 13:15

    直流电机EMC整改:怎么选择?功率多少?

    南柯电子|直流电机EMC整改:怎么选择?功率多少?
    的头像 发表于 05-29 09:36 739次阅读
    <b class='flag-5'>直流电机</b>EMC整改:怎么选择?功率多少?

    改进的BP网络PID控制器在无刷直流电机中的应用

    通过分析学习速率对BP算法的影响,提出一种分层调整学习速率的改进BP 网络算法,并把该方法设计成 PID控制器应用在无刷直流电机控制系统中,
    发表于 05-28 15:42

    电机:无刷直流电机的原理

    运动的原理都是依靠磁场,要么利用磁场的异性相吸,要么利用磁场的同性互斥。无刷直流电机和有刷直流电机的主要区别在于,无刷电机电流的大小和方向是通过控制器来改变的。通常,定
    的头像 发表于 05-23 21:00 6469次阅读
    <b class='flag-5'>电机</b>:无刷<b class='flag-5'>直流电机</b>的原理

    永磁直流电机实用设计及应用技术

    电气和自动化控制及仪器仪表中。在医用方面,永磁直流电机用处更不小,如医用的各种仪器、 手术工具,如开脑术中的电动锯骨刀,特别是野外手术中的各种仪器基本上都是用的永磁直流电机。在残疾人用品方面,如机械手
    发表于 03-31 15:42

    直流电机控制方法的Matlab仿真研究

    针对无刷直流电机控制方法进行了深入研究 。根据无刷直流电机实际物理模型建立相应的数学模型,电机使用双闭环进行控制 。根据
    发表于 03-27 12:15

    无刷直流电机运行原理与基本控制方法

    一、几个术语解释(极对数、相数、电角度、电角频率、相电压、线电压、反电动势)二、无刷直流电机的运行原理(运行原理、数学模型)三、无刷直流电机的基本控制方法(各参数相互关系、换流过程与换流模式)四、车用无刷
    发表于 03-14 14:18

    直流电机基本知识彩色PDF来啦

    1 直流电机的工作原理、主要结构、额定值 2直流电机的电枢绕组 3直流电机的电枢反应 4电枢绕组感应电动势和电磁转矩 5直流电机换向 一文带你了解
    发表于 02-28 01:28

    直流电机

    直流电机(direct current machine)是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋
    发表于 02-27 01:06