本发明涉及电机控制,具体涉及一种电机转动控制方法及装置。
背景技术:
1、永磁同步电机控制应用广泛,如整车驱动电机、电动助力转向电机、整车刹车制动电机等。这些电机的控制器一般要求具有较高的功能安全等级和产品看可靠性,通常会采用成熟可靠的软件架构。autosar作为一种成熟可靠且使用广泛的架构,已经成为一种趋势。通过购买满足功能安全的autosar 架构的cots软件,通过配置生成期望的满足功能安全的代码。同时电机控制器本身也会增加很多安全机制以满足功能安全的要求。这无疑增加了代码的复杂度和软件执行时间。
2、目前的电机控制方法,传统采用的方式是中断触发信号和pwm信号参考通道是同一个信号,这样电机的控制周期和pwm信号周期是一致的。比如电机控制的pwm信号周期是50us,那么中断函数的执行周期也是50us。如果电机控制器的cpu负荷较高,此时降低负荷,只能将电机控制的pwm信号和中断触发的pwm信号的周期都变长,pwm周期变长就会影响nvh。
3、传统的电机foc控制的三闭环控制一种是根据针对三闭环系统分别建立三个task或中断,分别是位置环控制函数、速度环控制函数和电流环函数。由于这三个函数于分属不同的task或中断,必然存在三者执行优先级以及函数嵌套的问题。此外在此过程中,ecu通常有其他的中断和task穿插或阻塞三环控制系统函数的时序和相位,对于电机一个实时控制系统来说,在任务打断或嵌套执行的过程中,三环控制运算结果的值可能不是当前最新的值或者控制顺序不是按照期望顺序执行,从而影响控制效果,此外它的cpu负荷一般都会很大。因此,设计一种能够电机转动控制方法成为本领域技术人员亟待解决的技术问题。
技术实现思路
1、针对所述缺陷,本发明实施例公开了一种电机转动控制方法,其能够实现降低cpu负荷而不影响电机控制时svpwm的更新频率。
2、本发明实施例第一方面公开了电机转动控制方法,包括:
3、在第一中断周期,获取电机的第一位置采样信息,对所述电机的第一位置采样信息进行位置环计算以得到第一控制输出结果;
4、在第二中断周期,接收第一中断周期计算得到的第一控制输出结果,对所述第一控制输出结果进行速度环计算以得到第二控制输出结果;
5、在第三中断周期,接收第二中断周期计算得到的第二控制输出结果,对所述第二控制输出结果进行电流环计算以得到第三控制输出结果;
6、在第四中断周期,接收第三中断周期计算得到的第三控制输出结果,对所述第三控制输出结果进行反park变化和反clark变换以得到当前周期的svpwm信号;其中,所述第一中断周期、第二中断周期、第三中断周期和第四中断周期构成一中断控制周期,所述中断控制周期与pwm信号参考通道解耦;
7、在第四中断周期,获取电机当前的第二位置采样信息,对所述第二位置采样信息进行预测以得到预设数量预测周期内电机转子的位置结果信息;对所述位置结果信息进行反park变化和反clark变换以得到预设数量预测周期的svpwm信号;
8、根据所述当前周期的svpwm信号和预设数量预测周期的svpwm信号来生成svpwm控制信号组,并根据所述svpwm控制信号组来对电机进行控制。
9、作为一种可选的实施方式,在本发明实施例第一方面中,所述获取电机的第一位置采样信息,对所述电机的第一位置采样信息进行位置环计算以得到第一控制输出结果,包括:
10、获取电机在第一中断周期的电机位置采样信息;
11、对第一中断周期的电机位置采样信息进行处理以得到电机转子的实际位置和电子转子的实际转速;
12、根据电机控制输入的目标位置及电机转子的实际位置,并对电机的位置进行闭环控制并得到第一控制输出结果;
13、所述接收第一中断周期计算得到的第一控制输出结果,对所述第一控制输出结果进行速度环计算以得到第二控制输出结果,包括:
14、接收第一中断周期计算得到的第一控制输出结果以及电机转子的实际转速;
15、对电机的目标速度进行闭环控制计算得到第二控制输出结果;
16、所述接收第二中断周期计算得到的第二控制输出结果,对所述第二控制输出结果进行电流环计算以得到第三控制输出结果,包括:
17、对电机相电流进行采样以得到相电流ia和ic;
18、对所述相电流ia和ic进行clark和park变换后得到直轴电流id和交轴电流iq;其中,交轴超前直轴的电角度为90度;
19、接收第二中断周期计算得到的第二控制输出结果,并对电机的直轴电流id和交轴电流iq进行闭环控制,并得到第三控制输出结果;
20、所述接收第三中断周期计算得到的第三控制输出结果,对所述第三控制输出结果进行反park变化和反clark变换以得到当前周期的svpwm信号,包括:
21、获取电机在第四中断周期的电机位置采样信息;
22、对在第四中断周期的电机位置采样信息进行处理以得到电机转子的实际位置和电机转子的转速;
23、接收第三中断周期计算得到的第三控制输出结果,对所述第三控制输出结果进行反park变化和反clark变换以得到当前周期的svpwm信号;
24、所述获取电机当前的第二位置采样信息,对所述第二位置采样信息进行预测以得到预设数量预测周期内电机转子的位置结果信息;对所述位置结果信息进行反park变化和反clark变换以得到预设数量预测周期的svpwm信号,包括:
25、获取第四中断周期的电机转速和位置;
26、根据所述第四中断周期的电机转速和位置预测下一阶段的第一中断周期的电机转子位置、第二中断周期的电机转子位置和第三中断周期的电机转子位置;
27、分别对下一阶段第一中断周期、第二中断周期和第三中断周期的输出结果进行反park变化和反clark变换计算得到下一阶段位置环、速度环和电流环对应的svpwm信号。
28、作为一种可选的实施方式,在本发明实施例第一方面中,所述中断控制周期的优先级被配置为应用程序类中断的最高级。
29、在具体实施时,中断控制周期的优先级被配置为很高,这样就不会被其他的中断或者应用程序任务打扰;一般的中断分为一类中断和二类中断,这里的应用程序中断为二类中断,一类中断一般都是系统级设置;在这里只需要将其配置为应用程序类中断的最高级即可实现相应的三闭环控制拆解。
30、作为一种可选的实施方式,在本发明实施例第一方面中,在所述根据所述当前周期的svpwm信号和预设数量预测周期的svpwm信号来生成svpwm控制信号组之后,还包括:
31、循环执行上述步骤,并针对得到的svpwm控制信号组生成相应的序列索引号;并将相应的svpwm控制信号组与序列索引号进行关联存储;
32、在每次进入新的中断控制周期时,则根据相应序列索引号获取与新的中断控制周期关联的svpwm控制信号组以进行后续的电机控制。
33、整个控制序列依次生成循环执行,在每次进入中断函数时根据进入中断函数的序列号,索引并更新其对应的一组svpwm控制信号,作用于电机驱动桥电路上。这样不会出现因为降低cpu负荷而影响电机控制时的svpwm更新频率。
34、作为一种可选的实施方式,在本发明实施例第一方面中,所述电机转动控制方法,还包括:
35、获取中央处理器当前的负荷运行信息;
36、将所述负荷运行信息与预设负荷进行比对,若所述负荷信息大于预设负荷,则提高所述中断控制周期的大小直至中央处理器的负荷运行信息小于预设负荷。
37、这里通过实时检测cpu的负荷运行状态来与预先设置好的负荷进行比对以判断cpu是否运行在合理区间内,若该cpu当前的运行负荷过高,则提高中断控制周期的大小来降低运行负荷。
38、作为一种可选的实施方式,在本发明实施例第一方面中,所述电机转动控制方法还包括:
39、通过时间获取模块来获取ad信号采样触发的时间t1以及中断触发时间t2;
40、获取电机的当前转速ω;
41、根据所述ad信号采样触发的时间t1、中断触发时间t2、当前转速ω以及位置补偿公式计算得到预测的电机转子位置信息,并根据预测的电机转子位置信息对电机进行转动控制,并生成svpwm,所述位置补偿公式为:θ2=θ1+ω*(t2-t1+ n*t),其中,n为生成预测pwm信号的控制周期与当前控制周期相差的周期个数,t为电机控制的周期时间,ω为电机当前转速,t2为中断触发时间,t1为ad信号触发时间,θ1为当前周期电机转子位置ad采样处理后计算得到的角度,θ2为对应控制周期预测的电机转子位置。
42、由于中断控制周期与pwm信号参考通道周期解耦,即中断控制函数进入的时刻与电机驱动的svpwm的ad采样触发的时刻的时间差是随机的,为了实现更好的信号同步,则在具体实施时,需要对其进行角度补偿以实现更加精准的电机控制。
43、作为一种可选的实施方式,在本发明实施例第一方面中,所述预设数量为3个。
44、本发明实施例第二方面公开一种电机转动控制装置,包括:
45、位置环计算模块:用于在第一中断周期,获取电机的第一位置采样信息,对所述电机的第一位置采样信息进行位置环计算以得到第一控制输出结果;
46、速度环计算模块:用于在第二中断周期,接收第一中断周期计算得到的第一控制输出结果,对所述第一控制输出结果进行速度环计算以得到第二控制输出结果;
47、电流环计算模块:用于在第三中断周期,接收第二中断周期计算得到的第二控制输出结果,对所述第二控制输出结果进行电流环计算以得到第三控制输出结果;
48、pwm计算模块:用于在第四中断周期,接收第三中断周期计算得到的第三控制输出结果,对所述第三控制输出结果进行反park变化和反clark变换以得到当前周期的svpwm信号;其中,所述第一中断周期、第二中断周期、第三中断周期和第四中断周期构成一中断控制周期,所述中断控制周期与pwm信号参考通道解耦;
49、信号预测模块:用于在第四中断周期,获取电机当前的第二位置采样信息,对所述第二位置采样信息进行预测以得到预设数量预测周期内电机转子的位置结果信息;对所述位置结果信息进行反park变化和反clark变换以得到预设数量预测周期的svpwm信号;
50、电机控制模块:用于根据所述当前周期的svpwm信号和预设数量预测周期的svpwm信号来生成svpwm控制信号组,并根据所述svpwm控制信号组来对电机进行控制。
51、作为一种可选的实施方式,在本发明实施例第二方面中,所述中断控制周期的优先级被配置为应用程序类中断的最高级。
52、本发明实施例第三方面公开一种电子设备,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例第一方面公开的电机转动控制方法。
53、本发明实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的电机转动控制方法。
54、与现有技术相比,本发明实施例具有以下有益效果:
55、本发明实施例中电机转动控制方法通过增加中断函数触发信号来实现与pwm信号参考通道的解耦,使得在增加中断函数的调度周期降低cpu负荷时不会影响电机控制时svpwm的更新频率。