查看: 10535|回复: 31

[原创] LPC553x双伺服电机控制方案详解(下)

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3916

    主题

    7534

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39870
    最后登录
    2025-8-15
    发表于 2022-9-2 16:28:23 | 显示全部楼层 |阅读模式
    LPC553x双伺服电机控制方案详解(下)
    接上文:LPC553x双伺服电机控制方案详解(上)
    4. 演示操作
    4.1. 项目文件结构
    项目中源文件(*.c)和头文件(*.h)的总数较多。因此,我们只详细介绍关键项目文件,其余的将被分组描述。


    主工程文件夹分为以下目录:
    \boards\dual_servo - 包含硬件板的初始化配置文件。
    \boards\dual_servo\iar - 包含编译器所需的必要文件。
    \boards\dual_servo\mc_drivers - 包含各模块的驱动文件。
    \boards\dual_servo\motor_control - 包含电机控制算法文件和状态机文件。
    \boards\dual_servo\parameter - 包含参数头文件和配置文件。
    \CMSIS - Cortex微控制器软件接口标准。
    \device\LPC55S36 - LPC55S36软件开发工具包。
    \FM_ControlPage - FreeMASTER控制页面文件。
    \middleware\freemaster - FreeMASTER支持文件。
    \middleware\CM33F_RTCESL_4.6.2_IAR - 实时控制嵌入式软件电机控制和电源转换库。


    文件夹中的文件:


    M1_statemachine.c和M1_statemachine.h包含当应用程序处于特定状态或状态转换时执行的软件例程。


    State_machine.c和state_machine.h包含应用程序状态机结构定义,并管理应用程序状态和应用程序状态转换之间的切换。


    Motor_structure.c和motor_structure.h包含专门用于执行电机控制算法的结构定义和子程序(矢量控制算法、位置和速度估计算法、速度控制回路)。


    Motor_def.h包含主控和故障结构定义。


    4.2 电机参数
    本文中使用的电机是两个无刷直流伺服电机,带1000线的正交编码器。下表提供了电机的基本参数:
    11.png
    注:本文中的应用参数(位置、速度和电流控制器)是在电机轴上安装有塑料环的情况下设置的,使用参数空轴运行可能会出现速度振荡。


    4.3 建立双伺服演示
    12.png
    硬件需求:
    LPC55S36-EVK板 REV.B
    两个FRDM-MC-LVPMSM电机驱动板
    两个24V伺服电机
    一根Micro USB数据线
    注意:请确保电源适配器在所有步骤之前关闭。使用FRDM-MC-LVPMSM板为EVK板供电时,板上的TPS54060 DC-DC转换器会产生电压毛刺。因此推荐将EVK板上的JP71跳线帽断开,并使用EVK板上的5V引脚为电机编码器供电以获得更好的效果。


    要建立双伺服演示,请遵循以下步骤:


    如图所示,将LPC55S36-EVK和FRDM-MC-LVPMSM电机驱动板通过Arduino接口连接在一起,并连接电机相线与编码器接口。
    接通24V适配器,为电机驱动板供电。
    将LPC55S36-EVK与PC间通过USB接口连接。
    在软件包中打开“FM_DualServo.pmp”。(FREEMATER版本不应低于3.1.2)
    选择Project->Options,配置串口通信属性与工程二进制文件地址。
    点击GO!按钮,即可启用PC与LPC55S36-EVK之间的FreeMASTER通信,如下图所示。
    打开DualServo页面。
    单击Start按钮启用演示。
    通过单击控制页面上的其他按钮来操作演示。
    13.png
    4.4 参数配置
    如果用户伺服电机的参数与本演示中默认电机的参数不同,则应重新配置参数以匹配不同的电机。


    打开头文件M1_Params.h或M2_Params.h,将电机本体的基本参数输入到对应的位置。
    14.png
    转速环、位置环的PI控制参数需要在文件中手动输入并调试,而电流环被等效成二阶控制系统,可以通过设置衰减、带宽频率的方式自动生成对应的PI控制系数。而转速、电压的使用IIR滤波器,可以手动输入滤波器的截止频率进行调试。具体的控制器、滤波器参数会由公式计算得出并在程序运行时赋值到相关的结构体变量中执行。
    15.png
    4.5 实验性能演示
    首先,下面所有的实验结果都是在电机负载轻塑料环的情况下进行测试的,并且所有的实验波形与数据都来自FreeMASTER。
    16.png
    上图显示了电机启动到2500rpm时的速度和电流波形。
    上方的显示窗口中红线是速度给定,绿线是电机实际转速,下方串口中红色线是转矩电流给定,蓝线是实际转矩电流。我们可以看到它可以在0.13s内加速到2500转,超调非常小,而且转矩电流的控制响应也很迅速。
    17.png
    上图显示了位置给定为10Hz正弦波且运动范围为180°机械角时的位置响应。我们可以看到转子位置(绿线)可以很好地跟踪给定值(红线)的变化,最大误差(蓝线)约为2°。
    18.png
    上图中顶部波形显示速度响应,底部波形显示位置响应。红线是转速与位置给定,绿线是实际响应值,蓝线表示它们之间的误差。设置电机反转180°位置给定的命令后,大约需要0.1秒就能到达预定位置。可以看到动态响应的误差很小,静态响应也很稳定。
    19.png
    如果我们先设定一个按照周期性变化的变量x,两个电机的位置给定分别设置为sin(x)与cos(x),然后将两个电机的转子位置分别作为横坐标与纵坐标,则坐标点的理想轨迹会是一个圆形,圆形的边沿越平滑意味着位置控制越精准。在FreeMASTER控制页面上点击“X-Y Graph ON”按键即可开启演示,实验结果如上图所示。


    4.6 CPU负荷和内存使用
    以下信息适用于使用IAR Embedded Workbench®IDE v8.50.9构建的演示应用程序,优化等级为高,开启Flash cache与预取指功能。表中显示内存使用和CPU负荷。内存使用是从.map文件(IAR IDE)计算的,包括在RAM中分配的4KB FreeMASTER记录器缓冲区。使用SysTick定时器测量CPU负荷。快速环周期数是在进入ADC中断后立即使能Systick计数器,并在快速环程序执行结束后停止计数,将两次计数器的差值用于计算CPU负载。需要注意的是,表中的CPU总负载一栏显示的是运行一段时间后统计的两个电机占用的负载的最大值之和,反映了最恶劣条件下的运行情况。


    在此情况下,它适用于16kHz的快环频率和2kHz的慢环(速度和位置环)频率。
    20.png
    具体工程代码实现和更多详细细节请参考以下资料:
    LPC553x参考手册:LPC553xRM
    应用笔记:MCUXpresso SDK 3-Phase PMSM Control(LPC). (3PPMSMCLPCUG)
    应用笔记:Dual Servo Motor Demo on LPC553x/LPC55S3x

    qiandao qiandao
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 22:36
  • 签到天数: 1866 天

    连续签到: 9 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112688
    最后登录
    2025-8-14
    发表于 2022-9-2 16:57:24 | 显示全部楼层
    不错~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 22:36
  • 签到天数: 1866 天

    连续签到: 9 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112688
    最后登录
    2025-8-14
    发表于 2022-9-7 08:49:47 | 显示全部楼层
    感谢分享~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    2024-9-14 16:55
  • 签到天数: 27 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    2

    主题

    2348

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2861
    最后登录
    2025-6-26
    发表于 2022-9-7 08:55:04 来自手机 | 显示全部楼层
    高大上啊
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 15:34
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    4

    主题

    115

    帖子

    1

    高级会员

    Rank: 4

    积分
    726
    最后登录
    2025-1-9
    发表于 2022-9-7 09:20:19 | 显示全部楼层
    以后有空了研究研究伺服
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-2-25 10:20
  • 签到天数: 32 天

    连续签到: 1 天

    [LV.5]常住居民I

    1

    主题

    290

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1147
    最后登录
    2025-7-2
    发表于 2022-9-7 09:26:11 | 显示全部楼层
    让我想到两个电机同步的情况
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-7-4 08:15
  • 签到天数: 336 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3

    主题

    1567

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    5800
    最后登录
    2025-8-13
    发表于 2022-9-7 09:33:05 来自手机 | 显示全部楼层
    553x系列电机控制,不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-6 11:04
  • 签到天数: 541 天

    连续签到: 1 天

    [LV.9]以坛为家II

    80

    主题

    2595

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8319
    最后登录
    2025-8-7
    发表于 2022-9-7 11:27:42 | 显示全部楼层
    双驱,学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-1-4 09:08
  • 签到天数: 493 天

    连续签到: 1 天

    [LV.9]以坛为家II

    3

    主题

    764

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1872
    最后登录
    2025-5-13
    发表于 2022-9-7 15:05:18 | 显示全部楼层
    谢谢分享
    加油!
    回复

    使用道具 举报

  • TA的每日心情

    2025-5-29 09:38
  • 签到天数: 632 天

    连续签到: 1 天

    [LV.9]以坛为家II

    94

    主题

    1639

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4470

    热心会员

    最后登录
    2025-6-10
    发表于 2022-9-7 16:06:07 | 显示全部楼层
    很不错~
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-16 02:59 , Processed in 0.101861 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表