史永丽,熊 军,支康仪,武登云,魏文杉
(北京控制工程研究所,北京 100190)
控制力矩陀螺(Control Moment Gyroscope, CMG)应用在航天器上的一类惯性执行机构,由低速框架和高速转子组成。在高速转子中,通常采用无刷直流电动机作为驱动电机,并采用开关式霍尔传感器检测转子磁极位置,提供换相信息。然而,由于空间环境极为恶劣,随着航天器的长期运行,霍尔传感器或其信号传输通道难免会出现故障。一旦霍尔信号异常,将导致无刷直流机换相错误,轻则可使电机无法正常运行,严重时甚至使绕组电流急剧增加,将电机烧毁,从而使控制力矩陀螺失效。
针对霍尔传感器故障检测与信号重构问题,目前已进行了大量研究。文献[1]提出了一种基于功率谱密度的霍尔故障诊断方法和基于120 电角度递推的信号重构方法,但故障角较大,实现较为复杂。文献[2]提出了一种基于霍尔矢量变换顺序的故障检测方法,但该方法所需时间较长,在信号重构中还需要存储大量的状态序列信息。前馈神经网络和无位置传感器方法也已分别应用于霍尔故障的检测与容错控制[3-4],但实现较复杂。
为便于实现,并考虑转速的变化,文献[5]提出了一种基于线性插值的预报方法,对霍尔故障进行检测,并对故障信号进行矫正,但在转速较高情况下,信号具有一定的滞后。文献[6-9]在角度外插估计法的基础上,提出了基于闭环角度观测器和霍尔矢量跟踪观测器的霍尔故障检测与容错方法,但算法实现亦较复杂。文献[10]则根据霍尔信号的逻辑对故障进行诊断,并通过两个无故障的霍尔信号来构造另一个霍尔信号,但该方法只适用于一相霍尔故障的情况。
为适应控制力矩陀螺高速转子转速大范围变化的需要,针对一相或两相霍尔故障,本文提出了一种变转速情况下的霍尔位置传感器故障检测和重构方法。该方法实现简单,并考虑了霍尔安装误差和转速的变化,不仅适用于动态过程,也适用于稳态过程。
高速转子驱动电机为无刷直流电机,采用霍尔传感器进行转子位置检测,并根据三相霍尔信号读取三个转速值。霍尔位置传感器三相霍尔电路的输出信号为互差120°电角度的开关信号。控制电路采用“处理器+FPGA”的形式,通过斩波器调节高速电机中点电压,采用三相半桥逆变电路进行驱动。高速转控制组成框图如图1所示。
图1 高速转子控制系统结构框图
图1中霍尔信号故障检测和重构在FPGA内部实现。从电机本体输出的霍尔信号通过导电环输出三相信号Ha、Hb、Hc,经过滤波、整形、电平转换后的霍尔信号HaF、HbF、HcF进入FPGA,在FPGA内对三相霍尔信号插入周期脉冲进行计数,经霍尔故障检测判断后,进入重构模块,最后经换相逻辑计算后输出换相信号,对三相半桥逆变电路中的MOSFET进行通断控制,使电机按照预定的指令进行转动。Cnt_Ha、Cnt_Hb、Cnt_Hc为三相霍尔信号对应的周期脉冲计数器,HaO、HbO、HcO为重构模块的输出信号,EnR为重构使能控制信号。
FPGA内部的霍尔状态寄存器Hall_State用来表示三相霍尔信号是否发生故障,D2D1D0分别对应三相霍尔信号Hc、Hb、Ha的状态,Hall_State的含义如表1所示。处理器通过读取霍尔状态,判断出无故障的霍尔信号,通过周期脉冲计数器得到真实的高速转子转速值。
表1 霍尔状态寄存器Hall_State定义
对于任意一相霍尔信号故障,可以表现为霍尔信号上升沿提前、下升沿延迟、多出一组霍尔信号、缺少一组霍尔信号以及霍尔信号一直处于一种电平[5]。对控制力矩陀螺来说,最常见的故障形式是霍尔信号长时间断开或瞬断。无故障时的霍尔信号、换相信号和反电势的波形如图2所示。图中M1、M2、M3为经换相逻辑运算后的三相半桥MOSFET开关信号,Ea、Eb、Ec为三相电机绕组的反电势。无故障时,三相半桥的3个开关管顺序导通,电机可以正常运转。
当B相霍尔信号出现长时间断开时,波形如图3所示。故障发生后,M1的高电平持续时间增长,表明A相电机绕组的导通时间增长,B相电机绕组处于关断状态,C相电机绕组通断正常。由无刷直流电机相电压方程可知,绕组A上的电流为
(1)
式中,u为中点电压,由于A相绕组导通时间增长,多出的这一段时间内,对应的反电势Ea为负值,由式(1)可知,在这段时间内电机中点u与反电势Ea叠加,在A相绕组中产生较大的电流冲击,电流冲击形成的制动力矩,使电机转速迅速下降。转速越高,反电势越大,电流冲击越大,制动力矩越大,转速下降也越快。
图2 无故障时霍尔信号、换相信号和反电势波形图
图3 HbF长断时霍尔信号、换相信号和反电势波形图
从故障产生到故障被消除,这一段时间内霍尔信号对应的电角度称为故障角。故障角越大,对系统的影响越大。转速越高,霍尔脉冲频率越高,换相间隔时间越短,反电势越大,电流冲击也越大。所以如果检测和重构不及时,大的绕组电流对电机及驱动电路的损害越大。因此转速越高,故障检测的实时性要求越高,故障出现后对重构能力的要求也越高。
正常情况下,三相霍尔信号互差120°,如图4所示,随着转速的升高,三相霍尔脉冲宽度逐渐变窄,图中的T表示电角度周期。
从Ha的上升沿开始,将每个电角度周期分为6个部分,每相邻两个脉冲时间分别记为t1,t2,…,t6,理想情况下,相邻脉冲的上升沿或下降沿之间的电角度均为60°,然而由于霍尔传感器安装误差、转子磁极安装误差、霍尔处理器电路延迟等因素的影响,相邻脉冲的电角度不是严格的60°,主要影响因素是安装误差和转子转速。
图4 理想情况下升速过程中的霍尔信号
在不考虑磁极安装偏差情况下,一个电角度周期对应的机械角度为2π/p,其中p为电机极对数。对于一个电角度周期T,假设初始时刻的角速度为ω0,角加速度为α,忽略角加速度的变化,由此可写出:
(2)
由于T>0,上式的解可以表示为
(3)
为便于分析,上式可变换为
(4)
(5)
如果忽略α的影响,则对于一个电角度周期T内的6个脉冲,假设对应的6个机械角度增量分别为θ1,θ2,…,θ6,时间间隔分别为t1,t2,…,t6,则
(6)
(7)
每一个脉冲的占空比分别为
(8)
由式(8)可知占空比与转速ω无关,所以在控制力矩陀螺转子升速过程中,随着转速的升高,尽管电角度周期逐渐变短,但t1~t6值在一个电周期中所占的占空比是不变的。基于这样的思想,设计了一种霍尔故障检测方法。实现方法如下:
(1)计算一个电角度周期内的6个脉冲宽度t1~t6值在电角度周期中的占空比。
处理中设置一个故障检测和重构使能信号DR_En,起动开始前先设置该信号禁止,即DR_En=0。在FPGA中设置6个晶体时钟脉冲计数寄存器,用于计算t1~t6值。当克服起动摩擦力矩,电流达到稳定状态一段时间后,设定此时的转速为ωen。当实时转速ω>ωen后,就可以读取一次t1~t6中的计数值,并计算t1~t6值在当前电角度周期中的占空比μi(i=1,2,…,6)。之后将故障检测和重构使能信号开启,即DR_En=1。
(2)设置6个脉冲宽度t1~t6的置信区间,判断霍尔是否发生故障,设置霍尔状态。
设置t1~t6的置信区间为[ti-Δt,ti+Δt](i=1,2,…,6),分别检测当前转速下以及一定转速变化范围内的t1~t6值的脉冲宽度变化是否超过置信区间,来判断是否有霍尔信号故障产生。t1~t6未超出置信区间范围,表明此时未发生霍尔故障,霍尔状态寄存器Hall_State设置为0x000;t1~t6超出置信区间范围,表明发生霍尔故障,霍尔状态寄存器相应位置1。其中 t可以设置为
Δt=ti×δ(i=1,2,…,6)
(9)
为保证升速过程中的故障角尽可能小,δ根据转速进行分段设置。由于低转速下电角度周期时间长,因此希望故障出现的时间要相对短些,低速下的置信区间 可以取得小些。高转速下的置信区间要稍微大些,否则容易误进入故障状态。δ一般取为5%~10%,根据转速的变化范围和稳态转速值进行适当选取,
(3)根据转速变化及时更新电角度周期内的6个霍尔脉冲宽度t1~t6。
考虑到转速是实时变化,需要计算转速的变化Δω,并查询Δω是否达到设定阈值Δωth。
当Δω<Δωth时,t1~t6值不更新;
当Δω>Δωth时,t1~t6值需要更新。计算当前转速对应的电角度周期Tk。为保证高精度的转速检测,在一个机械周期内对同一个霍尔的所有脉冲填充FPGA基准时钟脉冲,根据测量的基准时钟脉冲个数,计算出对应的当前高速转子转速ωk。处理器分别读取三相霍尔信号计数值Cnt_Ha、Cnt_Hb和Cnt_Hc,就可以获得三相霍尔对应的3个转速ωka、ωkb、ωkc。无故障情况下,可以任取一个转速值作为当前的转子转速;当检测到霍尔故障时,根据霍尔状态寄存器指示的霍尔状态,选取无故障的霍尔信号计算出的转速值作为当前的转速值ωk。
根据电机的极对数,可以计算出ωk对应的当前电角度周期Tk。根据Tk和步骤(1)中得到的占空比μ1~μ6,可以获得更新后的t1~t6值为
ti=Tk×μi(i=1,2,…,6)
(10)
为保证变转速下故障判断的准确性,Δωth的选取需要根据电机的转速加速度确定,加速度小,Δωth可以选择大一些;加速度大,Δωth需要选择小一些,以保证转速稳定度和精度。中型控制力矩陀螺中Δωth一般取2 r/min分~5 r/min。
(4) 重复步骤(2)和步骤(3),持续进行故障诊断。
如果检测到一相或两相霍尔故障,就进入霍尔重构模块。
如果检测到三相霍尔故障,则进入故障处理模块,故障检测和重构使能信号禁止,停止电机运行。
该检测方法的优点是检测及时,故障角小。
考虑安装误差,根据转速的变化,通过霍尔信号的占空比预报下一电角度周期的6个霍尔脉冲宽度,进行故障重构。
当无霍尔故障发生时,FPGA采集到的霍尔信号经过FPGA滤波后,直接进入换相逻辑计算单元,经计算后输出换相控制信号;当发生一相或两相霍尔信号故障时,FPGA切断故障信号进入后续功能模块的通路,利用无故障的霍尔信号,根据转速变化和占空比重新构造出与未发生故障时一致的另外两相霍尔信号。
经过重构产生的霍尔信号进入换相逻辑计算单元,计算后输出换相控制信号,转速变化过程中霍尔信号重构方法如下:
查询转速的变化是否达到设定阈值Δωth,将Δω与转速变化阈值Δωth进行比较:
(1)当Δω<Δωth时,重构控制策略如下:
如果此时未发生故障,则三相霍尔信号直接进入换相逻辑计算单元直接进行计算,然后输出换相控制信号。
如果此时发生一相霍尔故障:
若Ha故障,则按照Hc和t1~t6产生Ha和Hb的重构信号;
若Hb故障,则按照Ha和t1~t6产生Hb和Hc的重构信号;
若Hc故障,则按照Hb和t1~t6产生Ha和Hc的重构信号。
如果此时发生二相霍尔故障:
若Ha和Hb故障,则按照Hc和t1~t6产生Ha和Hb的重构信号;
若Ha和Hc故障,则按照Hb和t1~t6产生Ha和Hc的重构信号;
若Hb和Hc故障,则按照Ha和t1~t6产生Hb和Hc的重构信号。
当故障恢复为正常时,按照新的霍尔状态进行相应的处理。
(2)当Δω>Δωth时,根据占空比μ1~μ6以及当前的电角度周期,可以计算获得更新后的电子角度周期内的新的6个霍尔脉冲宽度t1~t6值,然后再根据步骤(1)的重构策略进行重构控制。
经过重构后的三相霍尔信号进入换相逻辑计算单元直接计算后输出换相控制信号。
处理器和FPGA中霍尔传感器故障检测和重构的程序流程如图5和图6所示。
图5 处理器中的相关程序流程图
图6 FPGA中的霍尔故障检测和重构算法流程图
为了验证该方法的有效性,在70 Nms中型控制力矩陀螺上进行了试验,控制力矩陀螺由控制力矩陀螺本体、控制力矩陀螺线路盒组成,通过转接盒以点对点方式将三相霍尔信号接入,以转接盒上开关关断来模拟霍尔故障。高速转子系统采用恒流1.3 A升速,当接近设定转速时进入转速
和电流双闭环控制,直至进入稳定转速。高速转子转速由测试设备测量读取。
(1)一相霍尔信号故障
高速转子的稳态转速设置为9500 r/min,升速过程中,当高速转子升速到3000 r/min时,对霍尔信号Hb进行通断测试,Ha和Hc保持正常状态,不进行霍尔重构时的测试波形如图7所示。图中HbO为重构模块的输出信号,与Hb反相。VI为驱动电路直流侧电流遥测值,转换系数为1 A/V。IA为电机绕组A的电流,电流放大器设置为10 A/V。
图7 升速中Hb断开时的测试波形(3000r/min,无重构)
由曲线可知,霍尔信号Hb故障前,采用恒流1.3 A升速,电流稳定,此时绕组A上的电流最大幅值为2.5 A。故障发生后,由于未进行霍尔故障重构,直流侧电流由1.3 A升高为2 A,绕组A上的电流尖峰值由2.3 A升高为12.4 A。
图8 升速中Hb断开时的波形(3000r/min,有重构)
采用霍尔重构后的测试曲线如图8所示,同样条件下,升速到3000 r/min时,Hb断开,Ha和Hc保持正常状态。为了更清楚的观察波形变化,将检测高速电机绕组A的电流放大器设置为1 A/V。由图8可看出,故障前后直流侧电流和绕组A的电流波形未发生变化,故障发生后,FPGA重构出的Hb波形与故障前是一致的,重构效果很好。
(2)两相霍尔信号故障
恒流升速中,当高速转子转速升至7000 r/min时,绕组A的电流尖峰值已升高至4.2 A,此时断开两相霍尔信号Ha和Hb,Hc保持正常状态,经故障检测和重构控制后的示波器测试波形如图9所示,电流放大器设置为10 A/V。从图中可以看出,两相霍尔信号故障前后,直流侧电流和绕组A的电流无变化。
图9 升速中Ha和Hb断开时的波形(7000r/min,有重构)
图10 升速直至稳速后的转速曲线(有重构)
图10为高速转子的一段升速曲线,从2500 r/min升速并稳定到9500 r/min的转速曲线。在升速过程中分别在3000 r/min、5000 r/min、7000 r/min以及稳态9500 r/min下,均进行了一相霍尔和两相霍尔的多次通断测试,从图中可以看出,虽然多次出现霍尔故障,但上升曲线光滑,升速过程中未发生转速下滑,稳速后转速精度也非常高,转速精度为万分之一。
本文针对无刷直流电机霍尔位置传感器一相和两相霍尔故障情况下,提出了一种变转速下霍尔故障检测和重构控制方法,故障检测和重构均在FPGA内部完成。通过实验验证,充分证明了该方法的有效性,该算法易于实现,实时性高,在故障瞬间不会引起大电流,故障前后基本无变化,实现了故障前后的无缝连接,且动态和稳态均适用,有效的提高了系统的可靠性。