一种无位置传感器的无刷直流电机控制装置及方法
文献发布时间:2024-04-18 19:44:28
技术领域
本发明属于电机控制技术领域,涉及一种无位置传感器的无刷直流电机控制装置及方法。
背景技术
无位置传感器的无刷直流电机指通过硬件检测采样到的电机相电流、电压信息并配合电机的电气数学模型,经过数字算法实时推算得到电机的转子位置信息,从而达到控制电机正常运动的目的。无位置传感器的无刷直流电机的换相控制通常分无感方波控制和矢量控制。在无感方波控制中,通过六步换相实现电机运转,其常用的转子检测为反电动势过零点检测法,通过对电机转子的反电动势过零点进行检测,以控制电机的启动、停止和调速。
目前,在无感方波控制电机的控制方法中,为了便于检测反电动势过零点,采用的驱动频率高于无感电机的换相频率,检测过零点时在驱动控制的中间点进行检测,导致其转子位置信息分辨率低;而采用低于换相频率的驱动控制,检测过零点容易出现误判或检测不到过零点,使换相出错,电机运行错误等。
发明内容
本发明解决的技术问题在于提供一种无位置传感器的无刷直流电机控制装置及方法;FPGA芯片以低驱动频率驱动控制高换相频率的无刷直流电机,并借助自适应控制方法和过零检测模块保障过零点的检测及无刷直流电机的正常运行。
本发明是通过以下技术方案来实现:
一种无位置传感器的无刷直流电机控制装置,包括FPGA芯片,以及与无刷直流电机的三相绕组相连的三相逆变器和过零检测模块,三相逆变器与直流电源相连;三相逆变器和过零检测模块均与FPGA芯片相连;
FPGA芯片接收的电机启动指令,并控制三相逆变器为三相绕组的任意两相供电,以启动无刷直流电机;过零检测模块采集三相绕组悬空相的反电动势过零点信号并将其发送至FPGA芯片;FPGA芯片接收反电动势过零信号并依据其调整六相方波控制模型,FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号;三相逆变器接收控制信号进行动作为三相绕组换相并供电;
过零检测模块采集三相绕组悬空相的反电动势过零点信号并将其发送至FPGA芯片;FPGA芯片根据反电动势过零点信号并对连续过零点次数进行累计,连续过零点次数超过启动设定值后,无刷直流电机切入正常运行状态。
进一步地,所述无刷直流电机的三相绕组分别记为:A相、B相和C相;
三相绕组的A相、B相和C相在运行时为两相导通一相悬空;三相绕组的两相导通状态包括AB相、AC相、BA相、BC相、CA相和CB相导通;AB相、AC相、BA相、BC相、CA相和CB相导通由六相方波控制模型生成的控制导通方波控制。
FPGA芯片依次提取六相方波控制模型内的AB相、AC相、BC相、BA相、CA相和CB相导通的控制导通方波并将其转换为控制信号。
进一步地,所述六相方波控制模型为带占空比的六相方波控制模型,FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作将三相绕组切换为两相导通一相悬空的状态。
进一步地,所述三相逆变器包括MOS场效应管Q1、Q2、Q3、Q4、Q5和Q6;MOS场效应管Q1、Q3和Q5的第三引脚接直流电源;
MOS场效应管Q1的第一引脚与MOS场效应管Q2的第三引脚、三相绕组的A相相连;MOS场效应管Q1的第二引脚接入FPGA芯片;MOS场效应管Q2的第一和第二引脚均接入FPGA芯片;
MOS场效应管Q3的第一引脚与MOS场效应管Q4的第三引脚、三相绕组的B相相连;MOS场效应管Q3的第二引脚接入FPGA芯片;MOS场效应管Q4的第一和第二引脚均接入FPGA芯片;
MOS场效应管Q5的第一引脚与MOS场效应管Q6的第三引脚、三相绕组的C相相连;MOS场效应管Q5的第二引脚接入FPGA芯片;MOS场效应管Q6的第一和第二引脚均接入FPGA芯片;
MOS场效应管Q2、Q4和Q6的第一引脚还接电阻Rs的一端,电阻Rs另一端接地。
进一步地,所述过零检测模块包括运算放大器U1、U2和U3;
运算放大器U1、U2和U3的第一引脚均接入FPGA芯片;运算放大器U1、U2和U3的第三引脚相连;
运算放大器U1的第二引脚接电阻R3的一端,电阻R3的另一端接三相绕组的B相;运算放大器U1的第二引脚接电容、电阻R5和R4的一端,电容的另一端和电阻R5的另一端相连且接地,电阻R4的另一端与运算放大器U1的第三引脚相连;
运算放大器U2的第二引脚接电阻R2的一端,电阻R2的另一端接三相绕组的A相;
运算放大器U2的第二引脚接电容C2、电阻R7和R6的一端,电容C2的另一端和电阻R7的另一端相连且接地,电阻R6的另一端与运算放大器U2的第三引脚相连;
运算放大器U3的第二引脚接电阻R1的一端,电阻R1的另一端接三相绕组的C相;运算放大器U3的第二引脚接电容C3、电阻R9和R8的一端,电容C3的另一端和电阻R9的另一端相连且接地,电阻R8的另一端与运算放大器U3的第三引脚相连。
一种无位置传感器的无刷直流电机控制方法,包括以下步骤:
S1、FPGA芯片接收的电机启动指令,并控制三相逆变器为无刷直流电机的三相绕组的任意两相供电,以启动无刷直流电机;
S2、过零检测模块采集三相绕组悬空相的反电动势过零点信号,并将其发送至FPGA芯片;
S3、FPGA芯片接收反电动势过零信号并依据其调整六相方波控制模型;
S4、FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号;
S5、三相逆变器接收控制信号进行动作为三相绕组换相并供电;
S6、过零检测模块采集三相绕组悬空相的反电动势过零点信号并将其发送至FPGA芯片;
S7、FPGA芯片接收反电动势过零点信号,并通过过零点计数器对过零点次数进行累计;若连续过零点次数未超过启动设定值,则返回S4继续执行;
否则,无刷直流电机切入正常运行状态,FPGA芯片以自适应控制方法控制电机正常运行。
进一步地,所述S7中,无刷直流电机切入正常运行状态的方法为:
S10、FPGA芯片提取六相方波控制模型内的AB相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的AB相导通,并延时20ms;
S20、FPGA芯片提取六相方波控制模型内的AC相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的AC相导通;
S30、过零检测模块在20ms内检测三相绕组的B相的上升沿,若检测到上升沿,则过零点计数器加1,并延时300us;否则,过零点计数器清零,延时20ms;
S40、FPGA芯片提取六相方波控制模型内的BC相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的BC相导通;记录换相时间T1;
S50、过零检测模块在8ms内检测三相绕组的A相的下降沿,若检测到下降沿,则过零点计数器加1,并延时300us;否则,过零点计数器清零,延时20ms;
S60、FPGA芯片提取六相方波控制模型内的BA相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的BA相导通;记录换相时间T2;
S70、过零检测模块在20ms内检测三相绕组的C相的上升沿,若检测到上升沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms;
S80、FPGA芯片提取六相方波控制模型内的CA相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的CA相导通;记录换相时间T3;
S90、过零检测模块在8ms内检测三相绕组的B相的下降沿,若检测到下降沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms;
S100、FPGA芯片提取六相方波控制模型内的CB相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的CB相导通;记录换相时间T4;
S110、过零检测模块在20ms内检测三相绕组的A相的上升沿,若检测到上升沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms;
S120、重复上述步骤,若过零点计数器的值超过启动设定值,FPGA芯片控制无刷直流电机切入正常运行状态;否则,返回S10重新运行。
进一步地,所述S7中,无刷直流电机切入正常运行状态后,FPGA芯片以自适应控制方法控制电机正常运行的方法为:
S01、FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电;换相完成后,FPGA芯片开始计时;
S02、更新换相电周期T、延时换相时间D、有效过零时间M和预测过零时间点L;
S03、过零检测模块在有效过零时间M内检测三相绕组的悬空相的跳边沿Al及反电动势过零点信号;
S04、判断FPGA芯片的计时时间或更新的有效过零时间M是否超过有效过零时间M;若未超过有效过零时间M,执行S05;否则,执行S08;
S05、判断是否检测到跳变沿A1;若未检测到跳变沿A1,返回S04继续执行;否则,继续执行S06;
S06、计算预测过零点时间点L与跳变沿A1之间的时间差并取绝对值,将时间差的绝对值记为Deta;
S07、更新有效过零时间M,令有效过零时间M=预测过零点时间点L+时间差的绝对值Deta;继续执行S04;
S08、判断是否检测到过零点;若检测到反电动势过零点信号,最靠近预测过零时间点L的过零点作为实际过零点;
否则,将预测过零时间点L作为实际过零点;
S09、延时换相时间D,并返回S01继续执行。
进一步地,若无刷直流电机在正常运行过程中,无法连续在设定保护值内检测到反电动势过零点信号,具体的处理方法为:
S001、FPGA芯片依据六相方波控制模型输出六路控制信号,三相逆变器依据控制信号为三相绕组切换供电,以实现换相;
S002、更新换相电周期T和延时换相时间D;
过零检测模块在有效过零时间M内检测三相绕组的悬空相的跳边沿Al及反电动势过零点信号;
S003、判断在有效过零时间M内是否有反电动势过零点信号;若存在反电动势过零点信号,继续执行S004;否则,执行S006;
S004、令FPGA内的计数器CNT为0,计数器CNT1为0;其中,CNT为检测不到过零点的计数值;CNT1为连续在设定保护值内检测不到过零点的计数值;
S005、延时换相时间D,返回S001继续执行;
S006、令计数器CNT=CNT+1;其中,CNT为检测不到过零点的计数值;
S007、判断CNT的计数值是否大于设定保护值;若CNT的计数值不大于设定保护值,执行S005;否则,继续执行S008;
S008、令计数器CNT1=CNT1+1,停止使用FPGA芯片依据六相方波控制模型输出六路控制信号;CNT1为连续在设定保护值内检测不到过零点的计数值;
S009、判断计数器CNT1的计数值是否大于3;若计数器CNT1的计数值大于3,执行S013;否则,继续执行S010;
S010、延时100us;
S011、通过过零检测模块检测三相绕组的任一相的跳边沿Al;
S012、FPGA芯片依据任一相的跳边沿Al恢复使用FPGA芯片依据六相方波控制模型输出六路控制信号,并返回S005执行;
S013、停止使用FPGA芯片依据六相方波控制模型输出六路控制信号。
进一步地,更新换相电周期T的方式为:FPGA芯片通过滑动窗滤波器对换相时间T1、T2、T3和T4进行滑动窗滤波后获得换相周期T;
更新后的延时换相时间D为(换相电周期T*度数)/60;
更新后的预测的过零点L为换相电周期T-延时换相时间D;
更新后的有效过零时间M为:预测过零角度l+15°的时间点;其中,过零检测模块检测到过零点后需要延时角度d;预测过零角度l为60°与延时角度d的差值。
与现有技术相比,本发明具有以下有益的技术效果:
本发明提供的无刷直流电机控制装置及方法,以低频(驱动周期为设定保护值5us)驱动电转速为设定保护值0000rpm(换相周期为83us)的无位置传感器的无刷直流电机;三相逆变器用于与FPGA芯片的控制信号配合,对无刷直流电机的三相绕组进行切换,使无刷直流电机能够运行。同时,FPGA芯片与六相方波控制模型、自适应控制方法配合控制无刷直流电机运行,在无刷直流电机运行过程中,与过零检测模块、自适应控制方法和六相方波控制模型配合采集无刷直流电机的三相绕组的悬空相的反电动势过零信号;通过FPGA芯片接收反电动势过零信号对过零点进行判断,使FPGA芯片能够控制无刷直流电机精确换相。同时,克服了驱动频率低于无位置传感器的无刷直流电机的换相频率时检测过零点容易出现误判或检测不到过零点,使换相出错,电机运行错误等的问题。
附图说明
图1为无位置传感器的无刷直流电机的驱动控制电路结构示意图;
图2为本发明中六相控制方波模型的示意图;
图3为无位置传感器的无刷直流电机控制方法的流程图;
图4为无位置传感器的无刷直流电机切入运行状态的具体控制方法的流程图;
图5为无位置传感器的无刷直流电机在正常运行状态的具体控制方法的流程图;
图6为无法连续在设定保护值内检测到反电动势过零点信号后的控制流程图。
具体实施方式
下面结合附图对本发明做进一步详细描述,所述是对本发明的解释而不是限定。
参见图1至图2;本发明公开了一种无位置传感器的无刷直流电机控制装置,包括FPGA芯片,以及与无刷直流电机的三相绕组相连的三相逆变器和过零检测模块,三相逆变器与直流电源相连;三相逆变器和过零检测模块均与FPGA芯片相连。
FPGA芯片接收的电机启动指令,并控制三相逆变器为三相绕组的任意两相供电,以启动无刷直流电机;过零检测模块采集三相绕组悬空相的反电动势过零点信号并将其发送至FPGA芯片;FPGA芯片接收反电动势过零信号并依据其调整六相方波控制模型,FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号;三相逆变器接收控制信号进行动作为三相绕组换相并供电。
过零检测模块采集三相绕组悬空相的反电动势过零点信号并将其发送至FPGA芯片;FPGA芯片根据反电动势过零点信号并对连续过零点次数进行累计,连续过零点次数超过启动设定值后,无刷直流电机切入正常运行状态。
具体的,FPGA芯片为GW1NSR系列芯片;六相方波控制模型加载于FPGA芯片内。
所述无刷直流电机的三相绕组分别记为:A相、B相和C相。
三相绕组的A相、B相和C相在运行时为两相导通一相悬空;三相绕组的两相导通状态包括AB相、AC相、BA相、BC相、CA相和CB相导通;AB相、AC相、BA相、BC相、CA相和CB相导通由六相方波控制模型生成的控制导通方波控制。
FPGA芯片依次提取六相方波控制模型内的AB相、AC相、BC相、BA相、CA相和CB相导通的控制导通方波并将其转换为控制信号。
FPGA芯片接收反电动势过零信号并依据其调整六相方波控制模型,具体的调整方式为:FPGA芯片依据过零点检测模块采集的三相绕组的反电动势过零信号判断当前的三相绕组的AB相、AC相、BA相、BC相、CA相或CB相导通,再结合FPGA芯片依次提取六相方波控制模型内的AB相、AC相、BC相、BA相、CA相和CB相导通的控制导通方波的规则判断下一组导通相,由FPGA芯片根据该导通相提取六相方波控制模型内的控制导通方波。
所述六相方波控制模型为带占空比的六相方波控制模型,FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作将三相绕组切换为两相导通一相悬空的状态。
具体的,带占空比的六相方波控制模型参见图2中的207-212段,用于为无刷直流电机调速。
所述三相逆变器包括MOS场效应管Q1、Q2、Q3、Q4、Q5和Q6;MOS场效应管Q1、Q3和Q5的第三引脚接直流电源。
MOS场效应管Q1的第一引脚与MOS场效应管Q2的第三引脚、三相绕组的A相相连;MOS场效应管Q1的第二引脚接入FPGA芯片;MOS场效应管Q2的第一和第二引脚均接入FPGA芯片。
MOS场效应管Q3的第一引脚与MOS场效应管Q4的第三引脚、三相绕组的B相相连;MOS场效应管Q3的第二引脚接入FPGA芯片;MOS场效应管Q4的第一和第二引脚均接入FPGA芯片。
MOS场效应管Q5的第一引脚与MOS场效应管Q6的第三引脚、三相绕组的C相相连;MOS场效应管Q5的第二引脚接入FPGA芯片;MOS场效应管Q6的第一和第二引脚均接入FPGA芯片。
MOS场效应管Q2、Q4和Q6的第一引脚还接电阻Rs的一端,电阻Rs另一端接地。
所述过零检测模块包括运算放大器U1、U2和U3。
运算放大器U1、U2和U3的第一引脚均接入FPGA芯片;运算放大器U1、U2和U3的第三引脚相连。
运算放大器U1的第二引脚接电阻R3的一端,电阻R3的另一端接三相绕组的B相;运算放大器U1的第二引脚接电容、电阻R5和R4的一端,电容的另一端和电阻R5的另一端相连且接地,电阻R4的另一端与运算放大器U1的第三引脚相连。
运算放大器U2的第二引脚接电阻R2的一端,电阻R2的另一端接三相绕组的A相。
运算放大器U2的第二引脚接电容C2、电阻R7和R6的一端,电容C2的另一端和电阻R7的另一端相连且接地,电阻R6的另一端与运算放大器U2的第三引脚相连。
运算放大器U3的第二引脚接电阻R1的一端,电阻R1的另一端接三相绕组的C相;运算放大器U3的第二引脚接电容C3、电阻R9和R8的一端,电容C3的另一端和电阻R9的另一端相连且接地,电阻R8的另一端与运算放大器U3的第三引脚相连。
一种无位置传感器的无刷直流电机控制方法,包括以下步骤:
S1、FPGA芯片接收的电机启动指令,并控制三相逆变器为无刷直流电机的三相绕组的任意两相供电,以启动无刷直流电机。
S2、过零检测模块采集三相绕组悬空相的反电动势过零点信号,并将其发送至FPGA芯片。
S3、FPGA芯片接收反电动势过零信号并依据其调整六相方波控制模型。
S4、FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号。
S5、三相逆变器接收控制信号进行动作为三相绕组换相并供电。
S6、过零检测模块采集三相绕组悬空相的反电动势过零点信号并将其发送至FPGA芯片。
S7、FPGA芯片接收反电动势过零点信号,并通过过零点计数器对过零点次数进行累计;若连续过零点次数未超过启动设定值,则返回S4继续执行。
否则,无刷直流电机切入正常运行状态,FPGA芯片以自适应控制方法控制电机正常运行。
所述S7中,无刷直流电机切入正常运行状态的方法为:
S10、FPGA芯片提取六相方波控制模型内的AB相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的AB相导通,并延时20ms。
S20、FPGA芯片提取六相方波控制模型内的AC相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的AC相导通。
S30、过零检测模块在20ms内检测三相绕组的B相的上升沿,若检测到上升沿,则过零点计数器加1,并延时300us;否则,过零点计数器清零,延时20ms。
S40、FPGA芯片提取六相方波控制模型内的BC相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的BC相导通;记录换相时间T1。
S50、过零检测模块在8ms内检测三相绕组的A相的下降沿,若检测到下降沿,则过零点计数器加1,并延时300us;否则,过零点计数器清零,延时20ms。
S60、FPGA芯片提取六相方波控制模型内的BA相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的BA相导通;记录换相时间T2。
S70、过零检测模块在20ms内检测三相绕组的C相的上升沿,若检测到上升沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms。
S80、FPGA芯片提取六相方波控制模型内的CA相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的CA相导通;记录换相时间T3。
S90、过零检测模块在8ms内检测三相绕组的B相的下降沿,若检测到下降沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms。
S100、FPGA芯片提取六相方波控制模型内的CB相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的CB相导通;记录换相时间T4。
S110、过零检测模块在20ms内检测三相绕组的A相的上升沿,若检测到上升沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms。
S120、重复上述步骤,若过零点计数器的值超过启动设定值,FPGA芯片控制无刷直流电机切入正常运行状态;否则,返回S10重新运行。
所述S7中,无刷直流电机切入正常运行状态后,FPGA芯片以自适应控制方法控制电机正常运行的方法为:
S01、FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电;换相完成后,FPGA芯片开始计时。
S02、更新换相电周期T、延时换相时间D、有效过零时间M和预测过零时间点L。
S03、过零检测模块在有效过零时间M内检测三相绕组的悬空相的跳边沿Al及反电动势过零点信号。
S04、判断FPGA芯片的计时时间或更新的有效过零时间M是否超过有效过零时间M;若未超过有效过零时间M,执行S05;否则,执行S08。
S05、判断是否检测到跳变沿A1;若未检测到跳变沿A1,返回S04继续执行;否则,继续执行S06。
S06、计算预测过零点时间点L与跳变沿A1之间的时间差并取绝对值,将时间差的绝对值记为Deta。
S07、更新有效过零时间M,令有效过零时间M=预测过零点时间点L+时间差的绝对值Deta;继续执行S04。
S08、判断是否检测到过零点;若检测到反电动势过零点信号,最靠近预测过零时间点L的过零点作为实际过零点。
否则,将预测过零时间点L作为实际过零点。
S09、延时换相时间D,并返回S01继续执行。
若无刷直流电机在正常运行过程中,无法连续在设定保护值内检测到反电动势过零点信号,具体的处理方法为:
S001、FPGA芯片依据六相方波控制模型输出六路控制信号,三相逆变器依据控制信号为三相绕组切换供电,以实现换相。
S002、更新换相电周期T和延时换相时间D。
过零检测模块在有效过零时间M内检测三相绕组的悬空相的跳边沿Al及反电动势过零点信号。
S003、判断在有效过零时间M内是否有反电动势过零点信号;若存在反电动势过零点信号,继续执行S004;否则,执行S006。
S004、令FPGA内的计数器CNT为0,计数器CNT1为0;其中,CNT为检测不到过零点的计数值;CNT1为连续在设定保护值内检测不到过零点的计数值。
S005、延时换相时间D,返回S001继续执行。
S006、令计数器CNT=CNT+1;其中,CNT为检测不到过零点的计数值。
S007、判断CNT的计数值是否大于设定保护值;若CNT的计数值不大于设定保护值,执行S005;否则,继续执行S008。
S008、令计数器CNT1=CNT1+1,停止使用FPGA芯片依据六相方波控制模型输出六路控制信号;CNT1为连续在设定保护值内检测不到过零点的计数值。
S009、判断计数器CNT1的计数值是否大于3;若计数器CNT1的计数值大于3,执行S013;否则,继续执行S010。
S010、延时100us。
S011、通过过零检测模块检测三相绕组的任一相的跳边沿Al。
S012、FPGA芯片依据任一相的跳边沿Al恢复使用FPGA芯片依据六相方波控制模型输出六路控制信号,并返回S005执行。
S013、停止使用FPGA芯片依据六相方波控制模型输出六路控制信号。
更新换相电周期T的方式为:FPGA芯片通过滑动窗滤波器对换相时间T1、T2、T3和T4进行滑动窗滤波后获得换相周期T。
更新后的延时换相时间D为(换相电周期T*度数)/60。
更新后的预测的过零点L为换相电周期T-延时换相时间D。
更新后的有效过零时间M为:预测过零角度l+15°的时间点;其中,过零检测模块检测到过零点后需要延时角度d;预测过零角度l为60°与延时角度d的差值。
依据图1搭建无位置传感器的无刷直流电机控制装置的电路图;将启动设定值设为256次,将设定保护值设为12次。
依据图2的带占空比的六相方波控制模型控制电机启动,具体的,包括以下步骤:
A1、FPGA芯片接收的电机启动指令,并控制三相逆变器为无刷直流电机的三相绕组的任意两相供电,以启动无刷直流电机。
A2、过零检测模块采集三相绕组悬空相的反电动势过零点信号,并将其发送至FPGA芯片。
A3、FPGA芯片接收反电动势过零信号并依据其调整六相方波控制模型。
A4、FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号。
A5、三相逆变器接收控制信号进行动作为三相绕组换相并供电。
A6、过零检测模块采集三相绕组悬空相的反电动势过零点信号并将其发送至FPGA芯片。
A7、FPGA芯片接收反电动势过零点信号,并通过过零点计数器对过零点次数进行累计;若连续过零点次数未超过256次,则返回A4继续执行。
否则,无刷直流电机切入正常运行状态,FPGA芯片以自适应控制方法控制电机正常运行。
无刷直流电机切入正常运行状态的方法为:
A01、FPGA芯片提取六相方波控制模型内的AB相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的AB相导通,并延时20ms。
A02、FPGA芯片提取六相方波控制模型内的AC相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的AC相导通。
A03、过零检测模块在20ms内检测三相绕组的B相的上升沿,若检测到上升沿,则过零点计数器加1,并延时300us;否则,过零点计数器清零,延时20ms。
A04、FPGA芯片提取六相方波控制模型内的BC相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的BC相导通;记录换相时间T1。
A05、过零检测模块在8ms内检测三相绕组的A相的下降沿,若检测到下降沿,则过零点计数器加1,并延时300us;否则,过零点计数器清零,延时20ms。
A06、FPGA芯片提取六相方波控制模型内的BA相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的BA相导通;记录换相时间T2。
A07、过零检测模块在20ms内检测三相绕组的C相的上升沿,若检测到上升沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms。
A08、FPGA芯片提取六相方波控制模型内的CA相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的CA相导通;记录换相时间T3。
A09、过零检测模块在8ms内检测三相绕组的B相的下降沿,若检测到下降沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms。
A010、FPGA芯片提取六相方波控制模型内的CB相的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电,将三相绕组的CB相导通;记录换相时间T4。
A011、过零检测模块在20ms内检测三相绕组的A相的上升沿,若检测到上升沿,则过零点计数器加1,延时300us;否则,过零点计数器清零,延时20ms。
A012、重复上述步骤,若过零点计数器的值超过256次,FPGA芯片控制无刷直流电机切入正常运行状态;否则,返回A010重新运行。
无刷直流电机切入正常运行状态后,FPGA芯片以自适应控制方法控制电机正常运行的方法为:
A001、FPGA芯片提取六相方波控制模型内的控制导通方波并将其转换为控制信号,三相逆变器接收控制信号进行动作为三相绕组换相并供电;换相完成后,FPGA芯片开始计时。
A002、更新换相电周期T、延时换相时间D、有效过零时间M和预测过零时间点L。
A003、过零检测模块在有效过零时间M内检测三相绕组的悬空相的跳边沿Al及反电动势过零点信号。
A004、判断FPGA芯片的计时时间或更新的有效过零时间M是否超过有效过零时间M;若未超过有效过零时间M,执行A005;否则,执行A008。
A005、判断是否检测到跳变沿A1;若未检测到跳变沿A1,返回A004继续执行;否则,继续执行A006。
A006、计算预测过零点时间点L与跳变沿A1之间的时间差并取绝对值,将时间差的绝对值记为Deta。
A007、更新有效过零时间M,令有效过零时间M=预测过零点时间点L+时间差的绝对值Deta;继续执行A004。
A008、判断是否检测到过零点;若检测到反电动势过零点信号,最靠近预测过零时间点L的过零点作为实际过零点。
否则,将预测过零时间点L作为实际过零点。
A009、延时换相时间D,并返回A001继续执行。
若无刷直流电机在正常运行过程中,无法连续在12次内检测到反电动势过零点信号,具体的处理方法为:
A10、FPGA芯片依据六相方波控制模型输出六路控制信号,三相逆变器依据控制信号为三相绕组切换供电,以实现换相。
A20、更新换相电周期T和延时换相时间D。
过零检测模块在有效过零时间M内检测三相绕组的悬空相的跳边沿Al及反电动势过零点信号。
A30、判断在有效过零时间M内是否有反电动势过零点信号;若存在反电动势过零点信号,继续执行A40;否则,执行A60。
A40、令FPGA内的计数器CNT为0,计数器CNT1为0;其中,CNT为检测不到过零点的计数值;CNT1为连续在12次内检测不到过零点的计数值。
A50、延时换相时间D,返回A10继续执行。
A60、令计数器CNT=CNT+1;其中,CNT为检测不到过零点的计数值。
A70、判断CNT的计数值是否大于12次;若CNT的计数值不大于12次,执行A50;否则,继续执行A80。
A80、令计数器CNT1=CNT1+1,停止使用FPGA芯片依据六相方波控制模型输出六路控制信号;CNT1为连续在12次内检测不到过零点的计数值。
A90、判断计数器CNT1的计数值是否大于3;若计数器CNT1的计数值大于3,执行A130;否则,继续执行A100。
A100、延时100us。
A110、通过过零检测模块检测三相绕组的任一相的跳边沿Al。
A120、FPGA芯片依据任一相的跳边沿Al恢复使用FPGA芯片依据六相方波控制模型输出六路控制信号,并返回A50执行。
A130、停止使用FPGA芯片依据六相方波控制模型输出六路控制信号。
以驱动频率为8KHz(驱动周期为125us)的FPGA芯片(GW1NSR系列芯片)驱动电转速为120000rpm(换相时间为83us)的无位置传感器的无刷直流电机;三相逆变器用于与FPGA芯片的控制信号配合,对无刷直流电机的三相绕组进行切换,使无刷直流电机能够运行。同时,FPGA芯片与六相方波控制模型、自适应控制方法配合控制无刷直流电机运行,在无刷直流电机运行过程中,与过零检测模块、自适应控制方法和六相方波控制模型配合采集无刷直流电机的三相绕组的悬空相的反电动势过零信号;通过FPGA芯片接收反电动势过零信号对过零点进行判断,使FPGA芯片能够控制无刷直流电机精确换相。同时,克服了驱动频率低于无位置传感器的无刷直流电机的换相频率时检测过零点容易出现误判或检测不到过零点,使换相出错,电机运行错误等的问题。
以上给出的实施例是实现本发明较优的例子,本发明不限于上述实施例。本领域的技术人员根据本发明技术方案的技术特征所做出的任何非本质的添加、替换,均属于本发明的保护范围。
- 无位置传感器的无刷直流电机控制方法及控制系统
- 一种无位置传感器无刷直流电机控制系统