JS32M040 电机算法库通用调试说明

cathy的头像
cathy 发布于:周一, 01/15/2024 - 18:23 ,关键词:

一、电机参数测量配置

1.相电感测

采用电桥测量,选择电感测量档位,测量频率调至1khz,测量电机的三相线每两两交互测量三次,将得到的三组数据相加再除以六,得到的值便是相电感值(此测量方法只适用于星形绕线电机)。添加计算公式

1.png

2.相电阻测量

电桥选择电阻测量档位,测量频率调至100hz,测量电机的三相线每两两交互测量三次,将得到的三组数据相加再除以六,得到的值便是相电阻值(此测量方法也只适用于星形绕线电机)。添加计算公式

2.png

3. 电机极对数测量

电机极对数的测量方法有很多,这里只讲两个通用的方法:(1)给电机的其中两相线通电,一端接正,一端接负;电压最好不要超过7v(4~7v范围内,太高会烧坏电机,用手转动电机时要有顿挫感,不能用手去转电机的采用第二种方法),电机会被钳定在一个位置,转动电机一圈,一共有多少次顿挫感便是多少极对数。(2)极对数随意给一个值,当然这个值不能太大,2~5便好,极对数不正确不会影响电机运行,但速度值太大可能会触发堵转保护;待电机观测器闭环运行起来后用频闪仪去测量电机真实转速,极对数 = 观测器计算速度 * 写入随机极对数 /真实速度。

4.电机参数设置

打开JSPMSMCFG文件夹里面的JSPMSMCFG.exe。

3.png

将测量到的电机参数以及硬件参数用电机参数上位机软件生成一个配置文件pmsm_foc.h;生成的配置文件在user文件夹里面。

4.png

5.png

6.png

二、电机调试

1.比较器过流功能检测

在user.h板型选择JSFDM040_BOARD,此教程使用电机板为我司040芯片开发板。

如要使用其它型号芯片如(041 24pin),则只需切换FAN_LAMP_24P_M041_BOARD板型即可。

7.png

首先将电机板与电机断开,给电机板vcc供5v上电烧录程序并进debug仿真;然后将vcc通电到比较器母线电流输入端引脚(要接到引脚端,接到母线电流端会短路),看程序是否触发了比较器过流保护。如果未触发则比较器配置不正确,需要检查。

8.png

9.png

比较器功能确保可以使用后电机接上电机板,供24v,看电源电流有没有超过100mA,电机板什么功能都不开的话应该只有几十mA的电流,无过流后就可以进行电机调试了。

2.电压强拖

在user.h里将VSP使能关闭:VSP_CTRL_EN置0,打开电压强拖模式:DEBUG_V_DETA_DRAG_EN置1,编译烧录后进debug仿真。

10.png

先给key_down_flag置1,让电机参数进行初始化;再给Vd一个电压:gMC_DQ_open_VoltageRef.d = 4000(Vd先给一个小的值,只要能拖动起来),拖动角度:g_openloop_deta_angle = 10,MotorCtrlFlg.SVM_en置1、MotorCtrlFlg.Foc_en置1,电机便能转动起来。

11.png

然后连接串口,打开直流无刷电机上位机调试软件(软件使用参考上位机使用说明),串口打印编号:g_uart_type选择3;看gMC_Alfabeta_Currents.alpha最大值是否在300~1000范围内,不在此范围内便调整gMC_DQ_open_VoltageRef.d值。

12.png

3.电流环闭环

在强拖可以正常拖动电机后,给Iq:gMC_QAxis_Pi_Q12.InRef = 500(Iq值范围在100~2000内),MotorCtrlFlg.current_PI_en置1电流环闭环,然后逐渐增加拖动角度g_openloop_deta_angle,拖动角度可以拖动到80即可。不能拖动到80则需增大Iq:gMC_QAxis_Pi_Q12.InRef。然后将参数Vd:gMC_DQ_open_VoltageRef.d值给到启动Vq:VF_START_VQ,Iq:gMC_QAxis_Pi_Q12.InRef值给到启动函数参数二,最大拖动角度和启动拖动角度分别给到参数一和参数三。启动最大拖动角度不一定需要到80,只要观测器观测角度与电角度相近且无波动,最大拖动角度在50~100内都可以。

13.png

4.观测器闭环

在电流环闭环且拖动角度到80也能正常运行的前提下,g_uart_type置13,看反电动势gMC_Smc_Params.Ealpha是否为正弦波,否则调节gMC_Smc_Params.Kslide参数使反电动势gMC_Smc_Params.Ealpha为正弦波、gMC_Smc_Params.Zalpha接近正弦波。

14.png

然后g_uart_type置14,看观测器锁相环角度与电角度是否接近且无波动,否则调整gMC_Smc_Params.kp、gMC_Smc_Params.ki使得它们接近且无波动。

15.png

17.png

调整好后MotorCtrlFlg.add_smc_angle_en 置1观测器闭环。g_uart_type置9,看Vd:gMC_DQAxis_Voltage.d、Vq:gMC_DQAxis_Voltage.q波形是否无波动,否则调整电流环Iq、Id的PI参数。

18.png

19.png

调完后将观测器参数,锁相环PI参数替换掉观测器参数初始化函数里的参数。电流环参数替换掉电流环初始化函数里的参数。

5. 速度环闭环

在观测器闭环正常运行的前提下,g_uart_type置8,看电机计算速度:gMC_Speed_Pi_Q13.InMeas是否达到设置目标速度:gMC_Speed_Pi_Q13.InRef,如果电机速度一直大于设置目标速度则减小gMC_Speed_Pi_Q13.OutMin值(此值不能太小,太小会导致电机停止,需要调试确定参数),如果一直小于设置目标值则增大gMC_Speed_Pi_Q13.OutMax(此值也不能太大,不能超过2400,可以通过降低运放倍数),如果gMC_QAxis_Pi_Q12.Out 已达到最大值:gMC_QAxis_Pi_Q12.OutMax则此电机最大速度就达不到设置的目标速度,需降低设置目标速度。

如果gMC_Speed_Pi_Q13.InMeas波形有波动则可以调节速度环PI参数使其稳定且通过调节目标速度能够快速响应,然后将调试好的参数调到速度环PI参数初始化函数里;然后停止电机:gMC_MotorState置4,退出debug。

20.png

21.png

6.IPD调节

IPD为转子初始位置检测,能接受启动时反转的可以不使用IPD。IPD检测需要将DEBUG_IPD_EN置1使能,电压强拖使能关闭,编译烧录进入debug。

22.png

key_down_flag置1则发一次波,转子位置信号:g_IPD_result会得到一个值,如果每发波一次,手动小幅度转动电机,转子位置信号:g_IPD_result会按顺序变大或变小则IPD调试完成。否则可以通过增大IPD发波脉宽来使IPD调试准确。

23.png

7.堵转检测调试

调试时确定电机能达到的最大转速跟最小转速,如果电机在闭环运行状态下电机转速超过或小于这两个值都判定为堵转。

24.png

8.顺逆风启动

在user.h文件将顺逆风检测模式:DEBUG_MOTION_DETECT_EN置1使能,编译烧录进入debug,key_down_flag置1让电机参数初始化。

25.png

g_uart_type置10,手动正向匀速转动电机,可以看到反正切函数角度是个完整锯齿波,角度值是递增状态,则可以得到最小顺风启动速度。

26.png

手动反向匀速转动电机,可以看到反正切函数角度是个完整锯齿波,角度值是递减状态,则可以得到最小逆风启动速度跟最小电流iq。

27.png

在user_motor.c文件里将得到的最小顺风启动速度给到最小顺风启动速度阈值:START_SPD_IPD_VAR;最小逆风启动速度给到最小逆风启动速度阈值:START_SPD_DEAD_FAST,最小电流iq给到顺逆风判断电流阈值:START_IQ_RUN_VAR。

28.png

9.VSP启动调速

所有的参数都配置好后,将调试开关的标志都置0,调用user_MotorStart()函数就可以直接让电机转动起来。

如果电机板是巨晟040开发板则可以在user.h文件将VSP功能打开:VSP_CTRL_EN置1,然后编译烧录,通过调节电位器可以启动电机并调速,user_MotorStart()里的参数要替换掉之前调试好的参数。

29.png

30.png

来源:珠海巨晟科技股份有限公司

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 16