hpm_apps v1.8.0上线:HPM6200四轴伺服驱控方案重磅发布!

cathy的头像
cathy 发布于:周三, 02/12/2025 - 10:13 ,关键词:

下载地址:

https://resource.hpmicro.com/hpm_apps_v1.8.0.zip 

文档路径

本地路径

English: hpm_apps/docs/index.html 

中文: hpm_apps/docs/index_zh.html 

在线文档:

Englist:https://hpm-apps.readthedocs.io/en/latest/ 

中文: https://hpm-apps.readthedocs.io/zh-cn/latest/ 

代码仓库

hpm_apps:

github: https://github.com/hpmicro/hpm_apps 

gitee: https://gitee.com/hpmicro/hpm_apps 

hpm_sdk:

github: https://github.com/hpmicro/hpm_sdk 

gitee: https://gitee.com/hpmicro/hpm_sdk 

1、HPM6200四轴伺服驱控方案

・概 述・

HPM6200是来自上海先楫半导体科技有限公司的基于RISC_V内核的32位高性能微控制器。

针对HPM6200系列MCU,先楫半导体推出四轴伺服驱控方案,本方案单轴采用FOC控制,同步计时器实现四轴电机以固定相位差运动。

四轴驱控样机如下图所示。

1739326275739008.png

单轴驱控细节图如下图所示。

1739326291610391.png

本方案测试电机型号信息如下表所示,如选用其他型号电机,需要重新调整PI控制参数相关宏定义即可。

电机型号极对数编码器类型分辨率
雷赛智能BLM570502增量式4000count/r

・软件方案・

软件设计主要分为四个部分:预定位,速度/位置环,电流环,S曲线,同步计时器,串口通信和USB通信。

其中全局参数如下表所示。

名称说明类型
PI参数SPEEDLOOP_KP速度环kp宏定义
PI参数SPEEDLOOP_KI速度环ki宏定义
PI参数SPEEDLOOP_OUTMAX速度环输出最大值宏定义
PI参数POSITIONLOOP_KP位置环kp宏定义
PI参数POSITIONLOOP_KI位置环ki宏定义
PI参数POSITIONLOOP_OUTMAX位置环输出最大值宏定义
运行模式OpMode_Typ速度:1位置:0枚举
速度轨迹规划CONSTANT_SPEED_TIME_s匀速时间宏定义
速度轨迹规划MOVE_SPEED运动速度r/s宏定义
速度轨迹规划MOVE_ACC加速度r/s/s宏定义
速度轨迹规划MOVE_JERK加加速度r/s/s/s宏定义
位置轨迹规划MOVE_RELATIVE_POS_r绝对运动位置r宏定义
位置轨迹规划CYCLE_CNT往返运动次数宏定义
位置轨迹规划CONTINOUS_RONUD_MOVE_TYPE连续往返运动宏定义
位置轨迹规划SIGNLE_MOVE_TYPE单次往返运动宏定义
速度轨迹规划MULTIPLE_MOVE_TYPE多次往返运动(以上三种任选一种)宏定义
速度轨迹规划DWELLTIME_ms运行相对距离后停止时间宏定义
全局控制MOTOR_CONTROL_Global
结构体
电机参数MOTOR_PARA
结构体

具体函数接口如下表所示。

函数接口名称描述调用状态
pwm_sync同步计时器伺服初始化
pmsm0_foc_angle_align轴0预定位伺服启动
motor0_highspeed_loop轴0电流环50us中断
pos_cmd_gene位置轨迹规划1ms中断
vel_cmd_gene速度轨迹规划1ms中断
motor_speed_ctrl速度/位置环1ms中断

・预定位・

上电时,电机转子位置随机,编码器转子位置与电机转子存在固定角度差。因此需要将电机转子位置转到固定位置,此时既知道编码器的位置也知道转子角度。本方案中采用的是在正常运行之前将编码器转子位置与电机转子位置重合的方法。

主要实现步骤分为三步:

  • 电角度90°,逐步增大 d轴电流到限幅;

  • 保持d轴电流,逐步减小电角度至0度;

  • 保持电角度为0度,逐步减小d轴电流至0。

・电流环・

pwm通道产生比较中断,中断内执行电流环。电路环回路主要有两部分工作:

  • 电流幅值更新:ADC采样三相电流,以及经过CLARK,PARK变换后成为DQ轴直流分量。电流环PI控制器控制DQ轴电流

  • 电角度更新:QEI模块获得电机反馈位置,再根据电机极对数计算得出电角度

・轨迹规划・

电机在启停时,速度存在阶跃的情况。电机速度的突变可能会导致电流过载。所以通常用加减速控制算法来规划电机速度。

在本方案中,我们使用的是电机库中的轨迹规划算法——S曲线,通过可变加加速度大小来控制加速度的变化,保证加速度不突变,使得加减速的速度曲线平滑,电机更平稳运行。

这里以运动轴0为例,简单介绍下如何使用电机库中的轨迹规划算法:

(1)添加电机库

  • 将hpm_motor添加到middleware文件夹下

  • 工程引用hpm_motor库

更多细节请查看电机库使用说明文档。(hpm_apps/middleware/hpm_motor/doc)

(2)对配置参数结构体的各成员赋值

  • 定义结构体变量

CMDGENE_PARA cmdpar[4] = {0};

  • 速度模式下

配置cmdpar[0].cmdgene_in_par.velcfgpar

  • 位置模式下

配置cmdpar[0].cmdgene_in_par.poscfgpar

(3)轨迹生成

轴0使能后,在1ms中断内调用轨迹生成函数,获得对应时间序列的速度指令、位置指令

速度模式下:vel_cmd_gene

位置模式下:pos_cmd_gene

(4)轨迹规划重置

API:cmd_gene_disable

清除轨迹规划中间变量,以便再次对用户指定的PTP运动的起点,终点,速度规划算法,计算连接各点的加速度,加加速度,由此再推算出各点的位置,速度。

・速度/位置环・

计时器产生1ms中断,控制速度环/位置环更新:

  • 速度/位置指令

  • 反馈位置/反馈速度

・同步计时器・

通过配置连接到PWM的同步触发输入SYNCI模块,让四个电机以一定的相位差开启运动。

・UART/USB通信・

为了方便用户控制电机,支持用UART或USB调试工具下发运动指令,用户可在cmakelist文件中选择使用UART或USB。MCU根据接收到的运动指令进行相应的运动。

2、Ethercat master 更新

Ethercat 主站使用开源SOEM, 当前版本主要更新以下内容:

  • 优化延时抖动。实测挂载25台从站设备,抖动在20us以内。

  • 优化减少RAM资源使用。

  • 支持在裸机和RTOS下运行。

由于 SOEM 开源协议的限制,故源代码不会放在 hpm_apps 中,请自行下载源代码并放到middleware目录下即可。

SOEM 下载链接:https://github.com/hpmicro/ethercat_soem/releases

3、其 他

  • 全系列适配SDK1.8.0

  • 修复HPM二级BOOT固件升级方案user_app linker文件缺少变量的问题

  • 修复hpm_monitor服务UART通道DMA传输时地址转换错误的问题

・完 结・

在使用过程中有任何疑问或者建议,欢迎在github对应项目中提交。

问题提交

hpm_apps Issues:

https://github.com/hpmicro/hpm_apps/issues 
https://gitee.com/hpmicro/hpm_apps/issues 

来源:先楫半导体HPMicro

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

围观 31