摘 要:在分析了无刷直流电机闭环速度控制方案的基础上,针对PID算法在无刷直流电机应用中出现的种种问题,给出了相应的解决方法,提出了非线性变速积分PID算法,成功地解决了在低采样周期时PID算法的积分饱和问题。
直流电机具有良好的调速性能,如无级调速、调速范围宽、低速性能好、高起动转矩、高效率等。无刷直流电机由于采用电子换向,PWM调速,在进一步提高直流电机性能的同时又克服了直流电机机械换向带来的一系列问题,从而大大延长了电机的使用寿命,近年来已广泛应用于家电、汽车、数控机床、机器人等领域。 1、无刷直流电机的速度控制方案 对无刷直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差率(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范围可以大大提高。无刷直流电机的速度控制方案如图1所示。 无刷直流电机控制器可采用电机控制专用DSP(如TI公司的TMS320C24X系列、AD公司的ADMCxx系列),也可采用单片机+无刷直流电机控制专用集成电路的方案。前者集成度高,电路设计简单,运算速度快,可实现复杂的速度控制算法,但由于DSP的价格高而不适合于小功率低成本的无刷直流电机控制器。后者虽然运算速度低,但只要采用适当的速度控制算法,依然可以达到较高的控制精度,适合于小功率低成本的无刷直流电机控制器。 摩托罗拉公司的第二代无刷直流电机控制专用集成电路MC33035,集成了转子位置传感器译码器电路、脉宽调制电路(PWM)、功率输出驱动电路、限流电路,可以实现无刷直流电机速度开环系统的全部控制功能。系统中采用了一片MC33035、一片低成本的单片机AT89C2051、串行输入A/D、串行输出D/A 以及由MOSFET型场效应管组成的功率驱动电路,无刷电机控制逻辑和保护由MC33035完成,单片机用来完成转速设定值的获取、转速反馈的实时采样以及速度控制算法的实现。 闭环速度调节器采用比例积分微分控制(简称PID控制),其输出是输入的比例、积分和微分的函数。PID调节器控制结构简单,参数容易整定,不必求出被控对象的数学模型,因此PID调节器得到了广泛的应用。 PID调节器虽然易于使用,但在设计、调试无刷直流电机控制器的过程中应注意:PID调节器易受干扰、采样精度的影响,且受数字量上下限的影响易产生上下限积分饱和而失去调节作用。所以,在不影响控制精度的前提下对PID控制算法加以改进,关系到整个无刷直流电机控制器设计的成败。 2、速度设定值和电机转速的获取 为在单片机中实现PID调节,需要得到电机速度设定值(通过A/D变换器)和电机的实际转速,这需要通过精心的设计才能完成。 无刷直流电机的实际转速可通过测量转子位置传感器(通常是霍尔传感器)信号得到,在电机转动过程中,通过霍尔传感器可以得到如图2所示的周期信号。 图2:霍尔传感器信号 由图2可知,电机每转一圈,每一相霍尔传感器产生2个周期的方波,且其周期与电机转速成反比,因此可以利用霍尔传感器信号得到电机的实际转速。为尽可能缩短一次速度采样的时间,可测得任意一相霍尔传感器的一个正脉冲的宽度,则电机的实际转速为: 但由于利用霍尔传感器信号测速,所以测量电机转速时的采样周期是变化的,低速时采样周期要长些,这影响了PID调节器的输出,导致电机低速时的动态特性变差。解决的办法是将三相霍尔传感器信号相“与”,产生3倍于一相霍尔传感器信号频率的倍频信号,这样可缩短一次速度采样的时间,但得增加额外的硬件开销。直接利用霍尔传感器信号测速虽然方便易行,但这种测速方法对霍尔传感器在电机定子圆周上的定位有较严格的要求,当霍尔传感器在电机定子圆周上定位有误差时,相邻2个正脉冲的宽度不一致,会导致较大的测速误差,影响PID调节器的调节性能。若对测速精度要求较高时,可采用增量式光电码盘,但同样会增加了电路的复杂性和硬件的开销。 电机速度设定值可以通过一定范围内的电压来表示。系统中采用了串行A/D(如ADS7818)来实现速度设定值的采样。但在电机调速的过程中,电机控制器的功率输出部分会对A/D模拟输入电压产生干扰,进行抗干扰处理。 3、非线性变速积分的PID算法 (1)PID算法的数字实现 离散形式的PID表达式为: 其中:KP,KI,KD分别为调节器的比例、积分和微分系数;E(k),E(k-1)分别为第k次和k-1次时的期望偏差值;P(k)为第k次时调节器的输出。 比例环节的作用是对信号的偏差瞬间做出反应,KP越大,控制作用越强,但过大的KP会导致系统振荡,破坏系统的稳定性。积分环节的作用虽然可以消除静态误差,但也会降低系统的响应速度,增加系统的超调量,甚至使系统出现等幅振荡,减小KI可以降低系统的超调量,但会减慢系统的响应过程。微分环节的作用是阻止偏差的变化,有助于减小超调量,克服振荡,使系统趋于稳定,但其对干扰敏感,不利于系统的鲁棒性。
(2)经典PID算法的积分饱和现象 当电机转速的设定值突然改变,或电机的转速发生突变时,会引起偏差的阶跃,使|E(k)|增大,PID的输出P(k)将急剧增加或减小,以至于超过控制量的上下限Pmax,此时的实际控制量只能限制在Pmax, 电机的转速M(k)虽然不断上升,但由于控制量受到限制,其增长的速度减慢,偏差E(k)将比正常情况下持续更长的时间保持在较大的偏差值,从而使得 PID算式中的积分项不断地得到累积。当电机转速超过设定值后,开始出现负的偏差,但由于积分项已有相当大的累积值,还要经过相当一段时间后控制量才能脱离饱和区,这就是正向积分饱和,反向积分饱和与此类似。解决的办法: 一是缩短PID的采样周期(这一点单片机往往达不到),整定合适的PID参数; 二是对 PID算法进行改进,可以采用非线性变速积分PID算法。
(3)变速积分的PID算法 变速积分PID算法的基本思想是改变积分项的累加速度,使其与偏差的大小相适应。偏差大时,减弱积分作用,而在偏差较小时则应加强积分作用,为 这时PID算法可改进为: f的值在0~1区间变化,当偏差大于A+B时,证明此时已进入饱和区,这时f=0,不再进行积分项的累加;|E(k)|≤A+B时,f随偏差的减小而增大,累加速度加快,直至偏差小于B后,累加速度达到最大值1。实际中A,B的值可做一次性整定,当A,B的值选得越大,变速积分对积分饱和抑制作用就越弱,反之越强。笔者的经验:取A=30%〔|E(k)|〕MAX,B=20%〔|E(k)|〕MAX为宜。
(4)非线性变速积分的PID算法 变速积分用比例作用消除了大偏差,用积分作用消除小偏差,大部分情况下可基本消除积分饱和现象,同时大大减小了超调量,容易使系统稳定,改善了调节品质,但对于在大范围突然变化时产生的积分饱和现象仍不能很好地消除,这时可采用非线性变速积分的PID算法。 非线性变速积分的PID算法的基本思想是将PID调节器输出限定在有效的范围内,避免P(k)超出执行机构动作范围而产生饱和。程序的框图如图3所示。 4、结语 在无刷直流电机驱动器中采用非线性变速积分PID算法,消除了一般PID调节器算法中的饱和现象,使电机调速稳定,并具有快速跟随性,同时也使电机具有恒转矩调速特性。
|