发明内容
为了解决预测函数在预测模型不匹配时的控制性能变差的不足,本发明提供一种通过PI与预测函数相结合的控制方法对预测函数进行改进。控制量增加了两个可调参数,使得控制调节更加灵活,通过调节两个参数可改善无刷直流电动机的转速响应性能。
本发明为解决上述技术问题采用以下技术方案:
一种基于ARX模型和PI预测函数的无刷直流电动机控制方法,具体包括以下步骤:
步骤1、使用ARX模型作为无刷直流电动机被辨识系统的数学模型,ARX模型表示为:
A(z-1)y(k)=B(z-1)u(k-1)+ξ(k)
其中,A(z-1)=1+a1z-1+…+anaz-na,B(z-1)=1+b1z-1+…+bnbz-nb,A(z-1)、B(z-1)为关于平移算子z-1的多项式,a,b分别为A(z-1)、B(z-1)关于平移算子z-1的系数,下标na、nb分别为输入、输出阶次,ξ(k)为零均值、方差为σ2的系统噪声干扰,u(k-1)为k-1时刻的输入电压,y(k)为k时刻的输出转速;
通过递推最小二乘法离线辨识ARX模型中的未知参数A(z-1)、B(z-1),得到ARX预测模型;
步骤2、根据步骤1所辨识得到的ARX预测模型,通过下式计算控制量u(k):
其中:
f n=[f1(j),f2(j),…,fN(j)],j=0,1,…,P-1
f n(0)=[f1(0),f2(0),…,fN(0)]
d=[d(k+1),d(k+2),…,d(k+P)]T
Δd=[Δd(k+1),Δd(k+2),…,Δd(k+P)]T
G j=[g0,g1,…,gj]T;j=0,1,…,P-1
ΔG j=[g0,g1-g0…,gj-gj-1]T;j=0,1,…,P-1
d(k+j)=(1-βj)[c(k)-y(k)]+[1-Sj(z-1)]ym(k)-Hj(z-1)u(k-1)(1)
其中,u(k)是系统第k时刻的控制量输出;Kp、Ki分别为比例项系数、积分项系数;fn(j)为基函数在t=jTs时的值,Ts为采样周期;f n为基函数的值构成的矩阵,N为基函数的个数,n为基函数个数的索引,n=1,2,…,N;Q和R分别表示误差加权矩阵和控制加权矩阵;c(k)为k时刻无刷直流电动机的转速设定值;y(k)为k时刻无刷直流电动机的实际转速;ym(k)为k时刻无刷直流电动机的模型输出转速;d(k+j)是由式(1)表示的多项式;d(k+j)为d(k+j)的向量表示形式,简写为d;Δd(k+j)为向量d(k+j)与d(k+j-1)的向量差,简写为Δd;G j是由Gj(z-1)多项式中的系数组成的向量,ΔG j是G j与G j-1的向量差;Ts是采样时间;Tr是参考轨迹的期望响应时间;β为参考轨迹的衰减因子;P为预测步长;j为第j步预测时刻;
步骤3、无刷直流电动机控制系统包括速度环和电流环,所述速度环的控制为PI预测函数控制,其控制参数为步骤2计算所得的控制量u(k),所述电流环的控制为比例控制;
将控制量u(k)以可执行文件的形式加载到DSP的RAM中,DSP的捕获单元读取位置信号,计算得出电动机的转速,将转速与速度参考值比较得到速度偏差值,经过速度环PI预测函数控制器后得到电流参考值;
将电流参考值与实际电流反馈值进行比较得到电流偏差值,再经过比例调节得到占空比可变的PWM信号,将PWM信号施加到电动机的功率驱动电路上,控制三相逆变桥的功率管的开断状态,从而控制无刷直流电动机的转速。
作为本发明的进一步优选方案,在步骤1中引入Diophantine方程,通过Diophantine方程递推解出各系数的递推解,具体步骤如下:
1=Rj(z-1)A(z-1)+z-jSj(z-1)
Rj(z-1)B(z-1)=Gj(z-1)+z-jHj(z-1)
Rj(z-1)、Sj(z-1)、Gj(z-1)、Hj(z-1)是各系数的递推解,是由A(z-1)、B(z-1)和第j步预测时刻唯一确定的多项式,表示如下:
Rj(z-1)=r0+r1z-1+…+rj-1z-(j-1)
Sj(z-1)=sj,0+sj,1z-1+…+sj,na-1z-(na-1)
Gj(z-1)=g0+g1z-1+…+gj-1z-(j-1)
Hj(z-1)=hj,0+hj,1z-1+…+hj,nb-1z-(nb-1)
其中,r、s、g、h分别为Rj(z-1)、Sj(z-1)、Gj(z-1)、Hj(z-1)关于平移算子z-1的系数。
作为本发明的进一步优选方案,所述步骤2中所述基函数为单位阶跃函数,基函数的个数N取值1。
作为本发明的进一步优选方案,预测步长P取值为3-10。
作为本发明的进一步优选方案,所述DSP型号为TMS320F28335。
作为本发明的进一步优选方案,步骤3中通过编译软件CCS3.3将控制量u(k)编写成程序,进而编译成可执行文件。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
在相同的实验条件下,PI预测函数控制比预测函数控值上升快,快速到达稳定状态,且静态误差小。PI预测函数控制可根据实际情况调节Kp,Ki两个参数,可达到良好的控制效果。
与包含多个基函数的预测函数控制的计算量相比较,PI预测函数算法计算量小,控制灵活方便,无需重新修改控制程序,只需调节两个参数,同时解决了预测函数模型不匹配导致的控制效果变差的问题。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
1.PI预测函数推导步骤如下:
(1)预测模型
预测模型基于扩展自回归模型(ARX模型):
A(z-1)y(k)=B(z-1)u(k-1)+ξ(k)(2)
其中,A(z-1)=1+a1z-1+…+anaz-na,B(z-1)=1+b1z-1+…+bnbz-nb,A(z-1)、B(z-1)为关于平移算子z-1的多项式,a,b分别为A(z-1)、B(z-1)关于平移算子z-1的系数,下标na、nb分别为输入、输出阶次,ξ(k)为零均值,方差为σ2的系统噪声干扰,u(k-1)为k-1时刻的输入电压,y(k)为k时刻的输出转速。
直接计算预测模型的输出比较困难,于是引入Diophantine方程,如下表示:
1=Rj(z-1)A(z-1)+z-jSj(z-1)
Rj(z-1)B(z-1)=Gj(z-1)+z-jHj(z-1)(3)
通过Diophantine方程递推解出各系数的递推解,如下:
Rj(z-1)=r0+r1z-1+…+rj-1z-(j-1)(4)
Sj(z-1)=sj,0+sj,1z-1+…+sj,na-1z-(na-1)(5)
Gj(z-1)=g0+g1z-1+…+gj-1z-(j-1)(6)
Hj(z-1)=hj,0+hj,1z-1+…+hj,nb-1z-(nb-1)(7)
其中,r、s、g、h分别为Rj(z-1)、Sj(z-1)、Gj(z-1)、Hj(z-1)关于平移算子z-1的系数。
由此可以解得第j步预测模型的输出:
ym(k+j)=Gj(z-1)u(k+j-1)+Sj(z-1)y(k)+Hj(z-1)u(k-1)+Rj(z-1)ξ(k+j)(8)
(2)基函数的选择与参考轨迹
预测函数控制(PFC)将控制输入结构化,新加入的未来控制作用可表示为若干个已知基函数{fn}的线性组合,即
其中,u(k+j)为k+j时刻的控制量;μn为基函数的线性加权系数;fn(j)为基函数在k+j采样周期的取值;N为基函数的个数,n为基函数个数的索引,n=1,2,…,N;P为预测步长。
在PFC中,为了使系统输出平缓地到达设定值,事先规定一条渐进趋向未来设定值的曲线称为参考轨迹。一般参考轨迹取为一阶指数的形式:
yr(k+j)=c(k)-βj[c(k)-y(k)](10)
其中,yr(k+j)为k+j时刻的参考轨迹值;c(k)为k时刻的跟踪设定值;β为衰减因子,β=exp(-Ts/(Tr/3)),0<β<1;Ts是采样时间;Tr为参考轨迹的期望闭环响应时间;y(k)为k时刻的过程实际输出值。
(3)过程预测输出
在实际过程中,由于模型失配、噪声等原因,模型输出与实际过程输出之间常存在一定的误差:
(4)优化目标函数及控制量
为了使实际过程输出对参考轨迹有良好的跟踪性能,将未来的实际输出与未来的参考轨迹的误差引入PI结构中,优化目标函数取下式:
式(12)中,Kp为比例增益,Ki为积分系数,P为预测时域,M为控制时域,Q、R为控制量加权因子。
在未来j时刻,实际输出值与参考轨迹的误差,由式(10)和式(11)可得:
忽略随机噪声ξ(k+j),整理式(13)可得
e(k+j)=(1-βj)[c(k)-y(k)]+[1-Sj(z-1)]ym(k)
(14)
-Hj(z-1)u(k-1)-Gj(z-1)u(k+j-1)
为了方便推导,则令
d(k+j)=(1-βj)[c(k)-y(k)]+[1-Sj(z-1)]ym(k)-Hj(z-1)u(k-1)(15)
预测函数的控制量u(k+M-1)的控制时域M=1,因此将e(k+j)写成向量的形式:
e(k+j)=d(k+j)-G ju(k)(16)
由式(16)可得Δe(k+j)为
Δe(k+j)=e(k+j)-e(k+j-1)
=d(k+j)-G ju(k)-d(k+j-1)+G ju(k-1)
(17)
=Δd(k+j)-G ju(k)+G j-1u(k)
=Δd(k+j)-ΔG ju(k)
其中,
d=[d(k+1),d(k+2),…,d(k+P)]T;Δd=[Δd(k+1),Δd(k+2),…,Δd(k+P)]T;
e=[e(k+1),e(k+2),…,e(k+P)]T;Δe=[Δe(k+1),Δe(k+2),…,Δe(k+P)]T;
e=d-G ju(k)(18)
Δe=Δd-ΔG ju(k)(19)
G j=[g0,g1,…,gP-1]T;(20)
G j-1=[0,g0,…,gP-2]T(21)
ΔG j=[g0,g1-g0…,gP-1-gP-2]T;(22)
将式(12)化成向量的形式,得
J=KpΔe T QΔe+Ki e T Qe+uTRu(23)
式(23)中,控制矩阵其中,
f n=[f 1(j),f 2(j),…,f N(j)]T N×M,j=0,1,…,M-1,μ=[μ1,μ2,…,μN]T N×1。
由于控制时域M=1,即f n=[f 1(0),f 2(0),…,f N(0)]T N×1,继而得u(k)=f n T(0)μ。
为了寻找到J最小时的一组加权系数μ,使得在整个优化时域内预测输出尽可能接近参考轨迹,令可得:
结合公式(9)可得最优控制率u(k):
式(27)中,f n(0)=[f1(0),f2(0),…,fN(0)]T。
2.硬件环境
本实验平台是基于DSP设计的无刷直流电动机速度伺服系统(调速系统),主要由无刷直流电动机、功率驱动板、DSPTMS320F28335评估板、DSP仿真器、编程软件CCS3.3器件构成,其系统构成如图1所示。
具体器件型号与特点描述为:
(1)无刷直流电动机
无刷直流电动机的型号为57BLF01,具体参数:磁极数:8;相数:3;额定电压:24V;额定转速:3000rpm;保持力矩:0.2N-m;输出功率:63W;峰值转矩:0.6N-m;峰值电流:9.6A;线电阻:0.6Ω;线电感:0.75mH;转矩常数:0.065N-m/A;反电势6.23V/Kprm;转动惯量:120g·cm2。
(2)DSP评估板
TMS320F28335核心板的工作电压3.3V;主频达150MHz;具有外扩512K的Flash存储器;集成电动机控制外设和12位模数转换模块;串口通信外设接口及转换电路;具有先进的仿真调试功能。
(3)DSP仿真器
TIDSP-XD510仿真器支持CCS3.3集成开发环境,支持C语言和汇编语言,传输速度可达480MB/s。
(4)开发环境
TI公司最新推出的CCS3.3集成开发环境,该版本功能强大,可有效、快速地用C/C++高级语言进行系统控制和高级算法的实现。
(5)集成功率驱动板
电动机功率驱动板可以驱动12-36V的电动机,电动机额定电流不超过4A,可以根据有位置传感器和无位置传感器的无刷直流电动机的不同原理进行换向,可提供电源输出;电流环、速度环、位置环反馈接口;过电流保护等等功能。
无刷直流电动机硬件电路主要包括:功率主电路,功率管驱动电路,转子位置检测电路,采样电路,过流保护电路。首先,对无刷直流电动机开环起动:DSP通过IO口捕捉电动机转子的位置传感器上的脉冲信号,判断转子位置,输出合适的驱动逻辑电平给MOSFET驱动芯片,再由MOSFET功率驱动电路驱动电动机旋转;其次对电动机闭环控制:当电动机起动后,DSP转速计算子程序计算电动机当前的转速,与电动机转速设定值进行比较,通过外环PI预测函数算法计算得到电流参考信号,AD电流采样得到的电流值再与电流参考信号进行比较,通过内环比例调节控制产生所需的PWM控制信号,提供给驱动电路使电动机在闭环控制下旋转。
3.无刷直流电动机模型辨识
PI预测函数是一种基于数学模型的控制算法,因此先要掌握被控对象的数学模型。在此通过利用系统可测量的输入、输出数据来建立系统的数学模型。为了确保辨识的模型准确度可靠,因此采用离线辨识方式。
辨识方案选择在带有PI控制的闭环控制系统中,对被控对象进行参数辨识。对闭环控制系统施加一阶跃信号,采集PI控制器的输出值和无刷直流电动机的转速值作为被控对象的输入输出数据,根据所得到的输入输出数据利用递推最小二乘法进行辨识。
4.系统程序结构
无刷直流电动机调速系统的软件主要由无刷直流电动机位置的检测,转速的计算,转速与电流的调节,PWM信号的产生等环节组成,图2为软件总流程图。
(1)主程序及各中断子程序
首先初始化DSP,配置寄存器和IO口,定义并初始化变量,关总中断,初始化中断向量和系统时钟,以及初始化捕获中断和ADC中断,使能总中断;配置完寄存器后,读取启动时刻的位置值,根据位置值来调用换相子程序。一旦启动,主程序就进去了等待死循环。
ADC中断是通过定时器周期中断来启动的,ADC中断周期为50us,即每50us读取一次电流,进行电流环调节。在ADC子程序中,首先读取电流值,然后判断速度环计数器的值来决定是否进行速度调节,速度环周期为30ms(所以计数器的周期为600)。如果计数器小于600,只进行电流比例调节和限幅调节。如果计数器等于600,则首先进行PI预测函数算法的速度调节,然后再调节电流。位置信号一旦发生变化,进入捕获中断子程序,读取此刻的捕获值和位置值,根据位置值进行换相导通,并计算两次捕获的时间差,用来进行速度计算。
(2)转速环控制PI预测函数算法
如图3为转速环PI预测函数控制算法的软件流程图,基本步骤如下:
①根据辨识得到ARX模型的A(z-1)、B(z-1)系数,通过Diophantine方程离线算得Sj(z-1),Gj(z-1),Hj(z-1);给变量设置初值:参考轨迹的衰减因子β=0.1,控制量的加权系数Q=0.3,R=0.1,预测步长P=3,PI预测函数的系数Kp=5,Ki=10。
②当读取无刷直流电动机转速设定值c(k)与实际值
③由式(14)、(16)(23)、(24)计算d,Δd,
④由式(25)控制量u(k);
⑤更新预测模型ym,u(k-1)的值;
⑥当程序再次调用速度环控制算法时,返回计算步骤②。
通过实验表明,在没法得到无刷直流电动机精准的预测模型时,给无刷直流电动机设定参考转速为2500r/min,如图4为预测函数转速控制,从图中可以看出转速在0.04s达到稳定状态,转速维持在2532r/min,存在静态误差;如图5为PI预测函数转速控制,电动机转速在0.025s达到稳定值,且静态误差小;从两幅图中可以看出,在相同的实验条件下,PI预测函数控制比预测函数控值上升快,快速到达稳定状态,且静态误差小。PI预测函数控制可根据实际情况调节Kp,Ki两个参数,可达到良好的控制效果。图6为PI预测函数控制直流无刷电动机调速实验曲线。
与包含多个基函数的预测函数控制的计算量相比较,PI预测函数算法计算量小,控制灵活方便,无需重新修改控制程序,只需调节两个参数,同时解决了预测函数模型不匹配导致的控制效果变差的问题。