一种高通用性的电机控制方法

文档序号:9813623阅读:526来源:国知局
一种高通用性的电机控制方法
【技术领域】
[0001 ]本发明属于电机控制领域,具体涉及一种高通用性的电机控制方法。
【背景技术】
[0002]现在的永磁同步电机(PMSM)控制方案主要有两种,方波控制和弦波控制。方波控制的优点是控制简单,理解方便,易于上手,缺点是电机转动不是特别平滑,噪声略大,最关键的是对电能的利用率比较低,所以现在对能效比有要求的产品一般都不用方波控制了。
[0003]弦波控制的基础是pwm波控制,后来又在此基础上发展出了 SPffM和SVPffM波控制方案,其中SVPWM波控制方案是目前最先进的控制算法,缺点是比较难以理解,需要较高的技术门槛,优点是电源利用率很高。
[0004]因为大部分芯片的底层写法方式不一样,所以每次换芯片编程的时候就需要耗费比较长的时间去修改以前程序中的底层驱动的命名,效率低,通用性差。

【发明内容】

[0005]针对现有技术中的不足,本发明提供一种高通用性的电机控制方法,来解决每次换芯片编程的时候就需要耗费较长时间去修改以前程序中的底层驱动的命名的问题。
[0006]本发明通过以下技术方案实现。
[0007]—种高通用性的电机控制方法,包括以下步骤:
a.构建中间层;
b.svpwm三电阻采样方式的电机控制;
其特征在于,所述步骤a中包括以下步骤:
al所述的中间层包含真实底层模块中所有电机驱动需要用到的模块,中间层的各个模块和底层的各个模块对应的;
a2把中间层的各个模块映射到芯片上对应的硬件模块;
a3初始化三个电流偏差和三个电压偏差,把中间层的三个PffM模块映射到多个硬件PffM中的实际用到的三个模块;
a4把中间层的三个定时器模块映射到多个硬件定时器中的实际用到的三个模块,
所述步骤b中包括以下步骤:
bl根据采样得到的电流值估算出当前角度和速度以及磁通;
b2经过CLARKE变化,PARK变换,IPARK变换,SVGEN计算,得到当前UVW三相电流驱动的PffM 波。
[0008]由于中间层的命名是自己定义的,所以可读性可以做到很好,因为大部分芯片的底层写法方式不一样,所以每次换芯片编程的时候就需要耗费比较长的时间去修改以前程序中的底层驱动的命名,但是有了中间层就可以不用修改,直接映射就可以通用,节约研发时间,减少修改时产生的错误,提高效率,通用性很强。
[0009]作为优选,所述步骤&1、&2、&3、&4后需要进行初始化中间层,包括以下步骤:设置芯片主时钟,中断PLL,GP1,ADC,PffM,HMER寄存器,使得后面的程序能正常运行,初始化采样偏置,禁止全局中断和CPU中断,设置时钟,设置倍频,设置中断,矫正ADC出厂偏差,初始化GP1 口配置,初始化ADC配置,初始化PWM配置,初始化定时器配置,设置初始化中断向量表。
[0010]作为优选,所述的步骤bl、b2的中的多种变换,包括以下步骤:对采样得到的电流值和电压值进行CLARKE变换,估算当前的转子位置,速度,磁通,转矩,得到当前转子的角度,求出对应角度的三角函数值,电流值进行PARK变换,速度环进行PID调节,调整I d的Kp值,设定估算时候的Id参考值,设定Vd和Vq的最大最小值,对Id进行PID调节,调整Iq的Kp值,设定Iq的参考值,对Iq进行PID调节,根据速度加上角度补偿,并求出对应的三角函数值,对Vd和Vq进行IPARK变换,根据Vd和Vq得出最终的HVM波占空比。SVPffM控制方案是目前最优秀的电机控制方案,再配合采用三电阻采样方式,与单电阻采样方式相比,可以提高采样精度且对采样时间控制不需要特别高的要求。
[0011 ]作为优选,根据给定的指令启动或者关闭PffM波,同时更新观察变量。
[0012]作为优选,从ADC结果寄存器中得到相应的采样值,并减去AD偏置值,得到准确的电流和电压值。
[0013]作为优选,在AD转化完毕之后触发中断,在获取到最新的电流值之后进行电机控制。
[0014]与现有技术相比:极易移植的电机控制程序,程序员不需要每次都要根据原理图重新配置各个寄存器和1 口这些底层操作,可以有效地缩短开发周期,提高研发效率。
【附图说明】
[0015]图1为本发明的程序整体流程图。
[0016]图2为本发明的中断控制的流程图。
[0017]图3为本发明的电机逻辑控制的流程图。
[0018]图4为本发明的电机底层驱动的流程图。
【具体实施方式】
[0019]下面结合附图与【具体实施方式】,对本发明做进一步描述。
[0020]一种高通用性的电机控制方法,包括以下步骤:
1.构建中间层,把中间层的ADC模块,CLOCK模块,FLASH模块,GP1模块,OSC模块,PIE模块,PLL模块都映射到芯片上对应的硬件模块,初始化三个电流偏差和三个电压偏差,把中间层的三个PWM模块映射到多个硬件PffM中的实际用到的三个模块,把中间层的三个定时器模块映射到多个硬件定时器中的实际用到的三个模块。
[0021]2.获取用户给定的参数,把用户给定的传感器数目,最大电流,电机的电阻和电感量参数赋值给中间层。
[0022]3.初始化中间层,设置芯片主时钟,中断,PLL,GP1,ADC,PWM,HMER寄存器,使得后面的程序能正常运行,初始化采样偏置,禁止全局中断和CPU中断,设置时钟,设置倍频,设置中断,矫正ADC出厂偏差,初始化GP1 口配置,初始化ADC配置,初始化PWM配置,初始化定时器配置,设置初始化中断向量表,使能ADC中断,使能全局中断,禁止PWM输出,使能母线电压补偿。
[0023]4.主逻辑控制,根据给定的指令开始启动程序,开始启动电机,开始识别电机,启动或者关闭PWM波,同时更新观察变量,确定使用用户给定的参数,
确定每次启动之前需要的转子电阻,确定每次启动之前的AD采样偏置值,确定电机启动,获取电机当前的运转
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1