凌鸥电机开发学习记录

个人学习记录使用

一、调试学习
1、电机MCU和通用MCU区别

相比较于通用的MCU,电机MCU的区别在:

  1. 电机MCU的集成度更高,MCU内部集成了电机驱动需要的运放ADC比较器DACPWM模块等;
  2. 电机专用的芯片PWM模块一般会经过处理,用户比较好配置,同时和其他模块联动性更好,通用MCU一般没有该功能;
  3. 电机驱动对电流等信号采样要求比较高,电机专用芯片的ADC一般采样速度更快,精度更高(GD32F103系列ADC采样速率是12Msps,而LKS32MC03系列ADC采样速率为1Msps);
  4. 电机驱动算法中频繁的用到除法、开方、三角函数等运算,芯片内部一般会集成协处理器或者DSP等加速运算的单元,加快运算速度,提高效率;
  5. 通常需要较高的电流和电压,因此电机专用的MCU在功耗和散热方面可能进行了特殊设计。它们可能采用更低功耗的处理器内核、更有效的电源管理策略以及更好的散热结构,以确保在长时间、高负载运行下的稳定性和可靠性;
  6. 电机控制中广泛使用PWM信号来调节电机的速度和转矩。电机专用的MCU通常具有硬件加速的PWM模块,可以生成高分辨率的PWM信号,减少软件开销并提高控制精度;
  7. 电机控制应用可能涉及到安全相关的功能,如故障保护、过载保护、短路保护等。电机专用的MCU通常具有专门的安全特性,如安全启动、安全停止、安全更新等,以确保系统的安全性;
  8. 提供配套的电机控制固件库或算法,如PID调节、空间矢量调制(SVM)等,简化电机控制算法的开发难度;
  9. 其他外设,如串口、IIC、SPI、通用定时器等无太大区别;

总的来说,电机专用MCU在设计时会特别考虑到电机控制的需求,包括算法支持、实时性、精确测量、通信能力、抗干扰和安全特性等。这些特性使得它们在电机控制应用中比普通MCU更加适合。

2、凌鸥芯片命名规则

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、供电问题

调试过程中需要注意,只用3.3V供电时需要修改供电电压,否则无法初始化成功!!!

image-20250103100544893

4、IO口对应问题

操作LED的寄存器位置似乎有问题,建议直接直接对IO进行操作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5、PWM频率设置

image-20250106171410450

因为有公式计数周期 = ( 2 * TH + 1 ) / fclk,所以

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以该段代码中的计数周期设置PWM_PERIOD等于PWM_FREQ斩波频率,所以设置PWM的开关频率即直接修改PWM斩波频率即可;

6、电机参数问题

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

该部分参数若是填写不正确可能会导致电机开环角度和观测器角度完全跟随不上,这种情况下电机开环状态下有可能可以转动,但是三相电流或者是DQ电流的跟随情况并不理想;

7、有感HALL相序问题

在有感HALL的电机控制中,第一次进行使用时需要用lksscope来将HALL自学习标志置1来进行HALL自学习获取HALL的相序;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

8、电机参数测量

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

9、ADC触发周期设定

​ 在ADC模式的选择中使用的是基于PWM周期来触发的单次采样模式,而非连续采样模式,单次采样可以精确的控制采样时刻,实现与PWM同步采样精准控制电流,这是连续采样模式做不到的;

通过配置MCPWM的T0和T1时刻来实现硬件触发事件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就等同于ADC的采样周期是基于MCPWM的输出周期来进行触发采样的,而采样点是通过修改TriggerPoint0来配置的;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最长触发周期可配置为16个周期的T1触发设置;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

10、系统初始化

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

该部分多为系统时钟的配置内容,以及部分电源策略;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

11、凌鸥库函数软件过流点设定值BUG

在软件过流点的判断中,是以当前三相电流和经过了内部转换的设定值相比较,如果大于设定值则判断为过流,下图为具体代码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

​ 在实际的测试中发现,不论软件过流点的设定值为多少,stru_FaultValue.nOverCurrent的值始终为负数,导致了开环切闭环时进入该软件过流判断时直接故障了;

**补充:**这里有问题是因为数据类型赋值间的问题,stru_FaultValue.nOverCurrent是s16类型,然而App2CoreCurTrans最后的返回值是s32类型,并且返回值是59384大于s16类型的最大值导致数据溢出;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

12、母线电压采样电路

image-20250107150557981

image-20250107150702620

通过上述的串联分压公式以及母线电压采样电路可以计算出母线电压的分压比
V a d c = V b u s × R 76 R 74 + R 75 + R 76 Vadc = Vbus \times \frac{R76}{R74 + R75 + R76} Vadc=Vbus×R74+R75+R76R76

13、MOS管驱动电路

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在配置MCPWM的极性配置时,要通过查询驱动芯片的芯片手册来获取控制逻辑时序图;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就比如LKS560的控制逻辑为

上桥输入为高,输出为高,上桥输入为低,输出为低;

下桥输入为高,输出为低,下桥输入为低,输出为高;

14、运放电路

虚框内为封装在芯片内部的部分,所以我们可以通过修改R0来修改运放倍数;

image-20250210165742914

从下图可以得到运放的放大倍数为(200/(10.4+20*2)=3.96825所以放大倍数为3.96825;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

15、SVPWM调制

​ 在功率桥电路中,有六个开关元件,通过SVPWM调制方法,这六个开关总共有8种开关状态的组合。我们把上桥臂的开关元件导通时定义为’1’,关断时定义为’0’,所以根据六个开关我们可以得到六组非零矢量V001V010V011V100V101V110和两组零矢量V000、V111

image-20250109115100472

NMOS导通条件为Vgs大于一定值,PMOS导通条件为Vgs小于一定值

16、单电阻采样

分析基本非零矢量下的母线电流测量情况,以扇区1的V110和V100为例,规定从电机绕组电流流入的方向为正,从绕组电流流出的方向为负;

当在矢量V110作用下时,A相、B相的上管导通,C相的下管导通,电流的流向如下图所示,电流从A相和B相流入,从C相流出,此时母线电流的测量值I = -Ic;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当在矢量V100作用下时,A相的上管导通,B相、C相的下管导通,电流的流向如下图所示,电流从A相流入,从B相和C相流出,此时母线电流的测量值I = Ia;

image-20250109115533884

​ 通过上面的分析可以知道,如下图所示,在浅蓝色区域可以采集到C相电流,在浅橙色区域可以采集到A相的电流,在载波周期足够短时,我们可以近似认为这是同一时刻分别流过电机C相和A相的电流,从而重构出B相的电流;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在零矢量的作用下,母线上的采样电阻无电流流过,母线电流 I = 0;

根据SVPWM的内容可以知道,六个非零电压矢量将平面划分成了六个扇区如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对这6个扇区按照如上方法进行分析,得出了采集的母线电流与基本的非零矢量之间的对照关系,具体如下表所示

扇区基本电压矢量母线电流对应的相电流
1V100IA
1V110-IC
2V110-IC
2V010IB
3V010IB
3V011-IA
4V011-IA
4V001IC
5V001IC
5V101-IB
6V101-IB
6V100IA

​ 通过上述的图表可以看出,母线电压的采样电阻在其中一种非零矢量的开关状态下只能够采集到某一相的电流,那么

Q):单电阻采样是怎么重构出三相的电流的呢?这一个采样电阻可以在同一时刻采集到两个相电流值吗?

A):我们知道电感有续流的特性,流过它的电流不能突变,那么当我们的电感值足够大,载波周期足够小时,我们就可以把这一个载波周期内,两次不同开关状态下检测到的两相的电流,近似看成同一时刻这两相的电流值。从而根据基尔霍夫定律就可以重构出这一时刻的三相电流;

因此对于单电阻方案而言这就需要在一个周期采集到两路电流,然后再通过基尔霍夫定律得到三相电流
I a + I b + I c = 0 Ia + Ib + Ic = 0 Ia+Ib+Ic=0

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

17、双电阻采样

​ 双电阻采样,是通过在全桥逆变电路的任意两个下桥臂分别串联一个采样电阻,就可以采样两路电流,在SVPWM驱动时,在下管全开时,采样两路电流,然后合成就可以拿到三路的电流,双电阻采样电路如下图所示

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

18、三电阻采样

​ 三电阻采样,可以采到准确的三路电流,在SVPWM驱动时,根据当前矢量采出两路,进行合成就可以拿到三路准确的电流;

image-20250109144845897

19、硬件过流保护电路

因为硬件过流保护采用的是比较器DAC组合处理,所以需要同时配置好程序中比较器的配置DAC的过流值设定

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

20、开环角度和观测器角度反向问题

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

21、空载状态速度环控制问题

image-20250115120039645

​ 对于空载状态而言,可能刚开始加载电流的一瞬间速度会瞬间上去,没那么容易控制住,导致了PI参数可能直接调不回来了,但是还是有概率能够正常运转的,这种情况在带载的状态下应该是不会出现的,因为刚开始启动的电流并不能直接将速度拉的很高;

结论:是由于空载的时候开环切闭环时电流给的太大了,导致了在闭环前就有了高转速导致拉不回来了,这种情况下可以手动将开环切闭环时电流给定值给小;

image-20250115170245147

22、开环强拖跑不起来原因分析

​ 开环强拖跑不起来就只有一个原因,就是电流问题,因为角度是人为给定的,而电流是我们通过采样闭环运算的,因此可以分析:1、电流采样问题;2、电流环KpKi没调好;

23、开环状态的三相波形不正弦原因分析

​ 开环状态的三相电流波形不正弦的情况一般有两种:1、电流环的KpKi没调好;2、电机的反电动势不正弦,这种情况可以用示波器测量,手动转动电机看看三相电流波形是否为正弦来验证;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

24、电流环调试技巧

​ 在跑电流环闭环时,由于电流环中Iq的值是通过直接赋值来给定的,因此,在上位机中可以通过直接修改Iq来实现电流环的电流给定,具体程序与上位机修改处如下图;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

25、SVPWM调制比

通过三相六桥逆变器对应的8种开关状态对应的8个空间向量合成矢量输出有下公式:
U out = 2 U dc 3 ( s a + s b e j 2 3 π + s c e − j 2 3 π ) U_{\text{out}} = \frac{2U_{\text{dc}}}{3} \left( s_a + s_b e^{j \frac{2}{3} \pi} + s_c e^{-j \frac{2}{3} \pi} \right) Uout=32Udc(sa+sbej32π+scej32π)
由此可得:
{ V A N = U d c 3 ( 2 s a − s b − s c ) V B N = U d c 3 ( 2 s b − s a − s c ) V C N = U d c 3 ( 2 s c − s a − s b ) \begin{cases} V_{AN} = \frac{U_{dc}}{3}(2s_a - s_b - s_c) \\ V_{BN} = \frac{U_{dc}}{3}(2s_b - s_a - s_c) \\ V_{CN} = \frac{U_{dc}}{3}(2s_c - s_a - s_b) \end{cases} VAN=3Udc(2sasbsc)VBN=3Udc(2sbsasc)VCN=3Udc(2scsasb)
通过上式以及公式
U a N + U b N + U c N = 0 U_{aN} + U_{bN} + U_{cN} = 0 UaN+UbN+UcN=0
可以得出下图中u1~u6的值为2Udc/3,以及内切圆半径为√3/3Udc

Snipaste_2025-01-21_10-43-05

通过八种开关状态可得下表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过SVPWM的调制比公式
m = 3 U ref U dc m = \frac{\sqrt{3} U_{\text{ref}}}{U_{\text{dc}}} m=Udc3 Uref
可得调试比最大为
m max = 3 ⋅ 2 3 U dc U dc = 1.1547 {m_{\text{max}}} = \frac{\sqrt{3} \cdot \frac{2}{3} U_{\text{dc}}}{U_{\text{dc}}} = 1.1547 mmax=Udc3 32Udc=1.1547

m min = 3 ⋅ 1 3 U dc U dc = 0.57735 {m_{\text{min}}} = \frac{\sqrt{3} \cdot \frac{1}{3} U_{\text{dc}}}{U_{\text{dc}}} = 0.57735 mmin=Udc3 31Udc=0.57735

​ 当达到电压饱和时转速无法达到要求可以增大PWM的调制比18919内切圆的最小调制比,因此调试时需要注意最大不能够超过值18919 * 1.15,在慢慢增加调制比的过程中;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

​ 如果修改上述的调制比无法达到要求转速时,可以同时给电机的电感参数乘一个系数(如0.9)来观测是否转速会进行提升,慢慢的调整到转速能达到的最高亦或者是电流无法进行收敛时打住,如果这时候还无法达到要求那么这时候在回去调整PWM的调制比看看是否还能够继续增大;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

26、无法达到需求转速

​ 当达到电压利用率饱和时,还无法达到需求转速时除了上述**(25、SVPWM调制比)中描述的过调制技术和调整电机电感参数以外还有自动弱磁技术**;

27、功率环

​ 首先,有功率公式:
电机的瞬时功率 = I d ⋅ U d + I q ⋅ U q 电机的瞬时功率 = \sqrt{I_d \cdot U_d + I_q \cdot U_q} 电机的瞬时功率=IdUd+IqUq
​ 但是程序中使用的并不是电流和电压的实际物理值,所以我们需要进行拟合曲线的建立来确定计算出来的值wPowerValue所对应的实际功率值;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

28、开环时电流采集是正常的,一闭环电流就变差

​ 主要原因是因为对于负载不大的应用来说,如果想要观测到小负载时候的相电流则需要较高的信噪比,不然在开环切闭环时效率增大,同样的转速下电流变小了,相当于有效信号变小,但是噪声没有变小,信噪比降低了很多,波形自然不太好了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

​ 运放倍数3.96825(200/(10.4+40)),采样电阻0.005Ω

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

​ 运放倍数16.129(200/(10.4+2)),采样电阻0.05Ω

29、相电流波形会突然产生尖峰

​ 相电流采样时有尖峰产生一般有两个原因:1、相电流采样的采样点配置不正确;2、电压利用率饱和;

30、系统状态机

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

31、电流采样值换算

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

​ 相电流峰值数据为1666,然后就可以得到和ADC量程的比值,即:1666/32768=0.05(16位,其中第一位是符号位);然后通过ADC最大电压为3.6V,运放倍数为18.18,采样电阻0.05Ω,可以得到最大采样电流为3.6/18.18/0.05=3.96,把两值相乘便可以得到实际相电流的峰值为3.96*0.05=0.198A

二、程序流程
  1. 首先关闭中断总开关
  2. 然后是进行硬件部分的初始化内容,包括DSPUART0ADCPWMTimerGPIODACPGACMPHALLTempSensor以及中断优先级的设置,最后打开中断总开关
  3. 硬件初始化后进行系统后的初始化内容,包括故障检测代码检测以及恢复电流采样通道偏置、观测器参数;
  4. 然后是主要的执行内容任务调度的部分,在1ms的任务调度中包括故障检测以及状态机调度,在10ms的任务调度中有开关检测和电位器检测
三、FOC算法

电流环逻辑框架

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四、硬件软件调试逻辑

在获取到了一套硬件和电机后,

  1. 首先是先验证一下MCPWM的输出(先验证预驱极性的设置,如下图中LKS560的极性为上管高有效,下管低有效,这里还需要注意的是芯片是否有内置预驱,如果有内置预驱时需要将MCPWM_SWAP_FUNCTION该内置预驱设置打开);
    image-20250109151216607

  2. 开关频率的配置以及死区时间的配置;
    image-20250109161731457

    1. 配置好硬件过流中Fail1并使能,然后是将硬件过流中DAC硬件过流参数配置好(这里确定Fail1是通过原理图中过流OC连接的比较器来确定的,其中P端接电流采样N端接DACP>N时输出高电平,在Fail事件中配置为高电平有效(如果实际电路中P端接的是DAC,N端接的是电流采样则配置为低电平有效),再执行PWM封管操作);
      image-20250205155957578

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 将上述的硬件保护内容配置好后就可以使能DEBUG模式中的PWM调试模式;
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传到这个部分若是硬件和软件配置都没有问题的话已经可以输出三相PWM波形了(用电源测试的时候要把电流限流到0.1A左右),那如果在软件配置正确的情况下,如果三相波形不对或者其中一两相有问题,通常是有以下方案:1、通过测量两相回路的阻抗看看是否有元器件损坏;2、尝试更换MOS;3、PCB布板是否存在断路;4、芯片的虚焊或尝试更换芯片;

调试框架如下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

软件调试中的注意事项:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五、附件

​ 1、上述更详细的调试步骤可参考附件算法新平台使用手册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忱铭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值