0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用专业MCU简化PI控制运动系统的设计

电子设计 来源:郭婷 作者:电子设计 2019-02-25 08:57 次阅读

数字运动控制方法可在机器人系统中精确调节电动机和执行器驱动末端执行器的运动和定位。然而,在实践中,开发基于传统比例积分(PI控制器的运动控制系统工程师通常会发现他们的项目因为难以调整敏感的控制器参数而停滞不前。更有效的方法可降低调谐复杂度,同时在各种工作条件下提供稳定的性能。

低成本,高性能微控制器推动了数字电机控制的迅速发展,能够广泛应对通过软件控制的操作条件。通过在软件中设计PI控制器,工程师可以创建具有最少数量组件的高响应电机控制系统。然而,在实践中,找到最佳的PI控制器参数集给开发人员带来了重大挑战。很多时候,工程师发现每个电机的独特特性(以及相关的电机控制系统实现)使确保电机在不同速度和负载下稳定运行的任务变得非常复杂。因此,电机控制开发团队发现自己被迫扩展项目进度并解决微妙的调整问题。

PI控制器挑战

传统PI控制器使用生成的控制回路用于减少某些过程中预期值和测量值之间误差的输出。在控制回路的串行形式(图1)中,Kb设置PI控制器的零点,而Ka设置闭环系统响应的带宽。

使用专业MCU简化PI控制运动系统的设计

图1:在传统PI控制器的串行形式中,工程师必须找到其零(Kb)和带宽(Ka)的最佳设置 - 经常延迟运动控制项目的过程。 (图像来源:德州仪器

在电机控制应用中,PI控制器优化的复杂性变得更加复杂,因为工程师需要控制电流来控制速度。在典型的电机速度控制回路中,工程师将使用两个PI控制器 - 一个在内环中控制电机电流,另一个在外环中控制电机速度(图2)。当电机速度低于指令值时,外环需要更多电流;内环纠正电机电流以匹配所需的值。

使用专业MCU简化PI控制运动系统的设计

图2:典型的速度控制回路使用两个PI控制器来控制电机电流和速度本身,从而使寻找最佳控制器参数的任务更加复杂。 (图像来源:德州仪器)

实际上,在整个运行条件下实现稳定的性能变成了一项复杂,耗时的任务。工程师需要调整多个参数以针对特定速度和负载工作点调整控制器。然而,特定的调整解决方案可能只能解决非常小的速度和负载范围。因此,工程师可能会发现具有不同速度和负载点的高动态系统可能需要为每个点调整PI控制器,从而进一步延迟项目进度。

高级控制算法

TI InstaSPIN-MOTION解决方案为数字电机控制设计提供了一种简单明了的方法。作为InstaSPIN-MOTION的核心,LineStream Technologies的SpinTAC可在系统的动态速度,位置和负载范围内提供强大的控制。这种专有方法提供先进的速度和位置控制,并具有主动干扰抑制控制(ADRC)。

ADRC适应电机模型的高度不确定性。它将未建模的电机动力学和系统的不良行为视为可以估计,拒绝或纠正的干扰。这允许SpinTAC控制器通过一个调整参数(称为带宽)控制各种位置,速度和负载,这些参数决定了系统的刚度,并决定了系统拒绝干扰的积极程度。

当设计人员通过这种调谐方法增加控制器的带宽时,对扭矩干扰的响应变得更快并且具有更小的过冲(图3)。如果带宽设置得太高,则当从系统中消除扭矩干扰时,系统开始围绕目标速度振荡。设计者只需找到带宽,当扭矩消除时,该带宽导致目标速度值附近的最小振荡。

使用专业MCU简化PI控制运动系统的设计

图3:SpinTAC调整只需要设置一个参数 - 带宽。在该示例中,理想带宽是40rad/s。在该带宽处,当扭矩被移除时,响应在目标速度附近表现出最小的振荡。 (图片来源:德州仪器公司

简化开发

InstaSPIN-MOTION不是处理传统PI控制器中优化多个参数的复杂性,而是让工程师只需设置单带宽参数。与使用传统PI控制器的设计相比,这种简单而强大的方法可以显着缩短开发时间。同时,这种方法提供的解决方案具有更少的过冲和更快的建立时间,从而最终降低了最终应用的功耗(图4)。

使用专业MCU简化PI控制运动系统的设计

图4:响应应用的扭矩干扰,InstaSPIN比传统的PI控制器回路明显更快地恢复。 (图片来源:德州仪器)

TI进一步提供了一个结合了软件和硬件的广泛的开发和部署平台。 TI的MotorWare产品包括特定于器件的驱动器和支持软件,以及完整的系统示例和技术培训。

为了更快地部署这些设计,TI提供了包含InstaSPIN-MOTION库的C2000 Piccolo MCU的专用版本在片上ROM和Flash中,无需额外电荷(图5)。基于90 MIPS C28x处理内核,C2000 InstaSPIN TMS320F28069M MCU将片上InstaSPIN-MOTION电机控制软件与完整的片上外设相结合,包括一个16通道模数转换器ADC),用于采集电机控制算法中使用的数据(例如,参见图5右侧的ADC输入)。

使用专业MCU简化PI控制运动系统的设计

图5:德州仪器(TI)的TMS320F28069M MCU采用片上InstaSPIN-MOTION软件库,进一步简化了运动控制系统的开发。 (图像来源:德州仪器)

TMS320F28069M还具有8个片上增强型脉冲宽度调制器(ePWM)模块,提供16个PWM通道。因此,工程师可以使用最少的附加组件快速设计完整的电机控制系统。 MCU的PWM可以直接驱动专用隔离栅极驱动器,如TI ISO5851(图6)。 ISO5851具有CMOS输入,使微控制器能够直接驱动它们 - 与典型的基于光耦合器的栅极驱动器不同,后者需要外部电流驱动器和偏置电路来提供输入控制信号

使用专业MCU简化PI控制运动系统的设计

图6:与高度集成的微控制器(如TI TMS320F28069M)配合使用,CMOS隔离栅极驱动器(如TI ISO5851)使设计人员能够创建具有最少数量附加组件的复杂电机控制系统。 (图像来源:德州仪器)

在软件方面,由于SpinTAC控制器算法,电机控制实现同样简单明了。工程师以最少的步骤配置SpinTAC速度控制,包括适当的头文件(例如,spintac_velocity.h)以将SpinTAC软件组件带入应用程序。 (此示例解决了SpinTAC速度控制,但SpinTAC位置控制配置遵循类似的方法。)

然后开发人员在主源文件中声明全局结构:

ST_VelCtl_t stVelCtl;//SpinTAC速度控制器对象

ST_VELCTL_Handle stVelCtlHandle;//SpinTAC速度控制器句柄

在应用程序的主要功能中,开发人员会将配置变量初始化为其默认值。对于许多电机,此配置通常包括以下变量:

复制

ST_VelCtl_t stVelCtl;//SpinTAC速度控制器对象

ST_VELCTL_Handle stVelCtlHandle;//SpinTAC速度控制器句柄

在应用程序的主要功能中,开发人员会将配置变量初始化为其默认值。对于许多电机,此配置通常包括以下变量:

//初始化SpinTAC速度控制器组件stVelCtlHandle = STVELCTL_init(& stVelCtl,sizeof(stVelCtl));

//设置PU中的最大电流

_iq maxCurrent_PU = _IQ(USER_MOTOR_MAX_CURRENT/USER_IQ_FULL_SCALE_CURRENT_A);

//速度控制器的实例

STVELCTL_setAxis(stVelCtlHandle,ST_AXIS0);

//采样时间[s],(0,1)

STVELCTL_setSampleTime_sec(stVelCtlHandle,_IQ(ST_SPEED_SAMPLE_TIME));

//系统惯性上限(0,127.9999)和下限(0,SgiMax)限制[PU/(pu/s ^ 2)] STVELCTL_setInertiaMaximums(stVelCtlHandle,_IQ(10.0),_IQ(0.001));

//系统控制信号高(0,OutMax)和低[OutMin,0]限制[PU] STVELCTL_setOutputMaximums(stVelCtlHandle,maxCurrent_PU,-maxCurrent_PU);

//系统最大值( 0,1.0]和最小[-1.0,0]速度[pu/s] STVELCTL_setVelocityMaximums(stVelCtlHandle,_IQ(1.0),_ IQ(-1.0));

//系统上限(0,0.2/(T * 20)]和带宽标度的下限[0,BwScaleMax]限制STVELCTL_setBandwidthScaleMaximums(stVelCtlHandle,

_IQ24((0.2)/(ST_SPEED_SAMPLE_TIME * 20.0)),_ IQ24(0.01));

//系统惯性[PU/(pu/s ^ 2)],[SgiMin,SgiMax]

STVELCTL_setInertia(stVelCtlHandle,_IQ(USER_SYSTEM_INERTIA));

//控制器带宽比例[BwMin,BwMax]

ST VELCTL_setBandwidthScale(stVelCtlHandle,_IQ24(USER_SYSTEM_BANDWIDTH_SCALE));

//最初未启用ST_VelCtl

STVELCTL_setEnable(stVelCtlHandle,false);

//最初ST_VelCtl未重置

STVELCTL_setReset(stVelCtlHandle,false);

在运行期间,主中断服务程序将更新速度参考,加速度参考和速度反馈,然后以适合该部件的抽取率(在ISR_TICKS_PER_SPINTAC_TICK中指定)调用SpinTAC速度控制功能。

< p> 复制

CTRL_Obj * obj =(CTRL_Obj *)ctrlHandle;//获取指向CTRL对象的指针

//获取pu/s中的机械速度

_iq speedFeedback = EST_getFm_pu(obj-> estHandle);//获取pu/s中的机械速度//更新速度参考

STVELCTL_setVelocityReference(stVelCtlHandle,

STVELMOVE_getVelocityReference(stVelMoveHandle));

//更新加速参考

STVELCTL_setAccelerationReference(stVelCtlHandle,

STVELMOVE_getAccelerationReference(stVelMoveHandle));

//更新速度反馈STVELCTL_setVelocityFeedback(stVelCtlHandle,speedFeedback);//运行SpinTAC速度控制器STVELCTL_run(stVelCtlHandle);

//从SpinTAC速度控制器获取扭矩参考

iqReference = STVELCTL_getTorqueReference(stVelCtlHandle);

//设置来自SpinTAC速度控制的Iq参考

CTRL_setIq_ref_pu(ctrlHandle,iqReference);

开发人员可以使用TI C2000 Piccolo F28069M LaunchPad快速启动电机控制开发,该产品具有所有硬件和功能。基于F2806x微处理器开发应用程序所需的软件。 TI还提供完整的电机控制解决方案套件,如高压电机控制套件,该套件全面介绍了对最常见类型的高压三相电机的控制,包括交流感应(ACI),无刷直流(BLDC)和永磁同步电机(PMSM)。 TI还提供补充套件,如BLDC电机套件,其中包括带内置霍尔效应传感器的无刷直流电机,可直接与电机控制套件软件配合使用。

结论

使用传统PI控制器的传统电机控制设计由于调整这些控制器的复杂过程而可能面临严重的延迟。 TI的InstaSPIN-MOTION内置于专用微控制器中,可将调谐功能简化为单一参数,为设计人员提供简单性和稳定性的组合,使其成为机器人系统等多种状态转换或体验动态变化等应用的理想选择。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16016

    浏览量

    343585
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171166
  • 电动机
    +关注

    关注

    73

    文章

    3798

    浏览量

    93542
收藏 人收藏

    评论

    相关推荐

    运动控制卡/运动控制器的ZCAN总线ZMIO310扩展模块使用# 正运动技术# 工业自动化# 运动控制系统

    自动化运动控制系统
    正运动技术
    发布于 :2024年04月15日 14:09:08

    智能车的运动控制系统介绍

    器及相应的传感器构成,其框图及涉及学科领域如下图: 对照运动控制系统的结构框图,可以推断出智能车中的运动控制系统如下: 被控对象 电机是门深奥的学问号称自动化
    的头像 发表于 11-14 15:54 682次阅读
    智能车的<b class='flag-5'>运动</b><b class='flag-5'>控制系统</b>介绍

    MSP430™ MCU简化楼宇自动化设计的创新选择

    MSP430™ MCU简化楼宇自动化设计的创新选择
    的头像 发表于 11-01 16:57 243次阅读
    MSP430™ <b class='flag-5'>MCU</b>:<b class='flag-5'>简化</b>楼宇自动化设计的创新选择

    基于MCU+DSP的运动控制硬件平台设计

    基于MCU和DSP的运动控制系统由于结构紧凑、环境适应性好而有良好的发展前景。由于PC机与MCU和DSP资源环境差异较大, 进行MCU和DS
    的头像 发表于 10-31 17:01 455次阅读

    运动控制系统是什么?什么是运动控制系统

    运动控制系统其实运动控制系统是一个比较大的系统,就像前面的通信系统一样,通常会由众多的组成部分构
    的头像 发表于 10-25 08:07 1032次阅读
    <b class='flag-5'>运动</b><b class='flag-5'>控制系统</b>是什么?什么是<b class='flag-5'>运动</b><b class='flag-5'>控制系统</b>?

    通过RA MCU和微型ROS简化机器人设计流程

    通过RA MCU和微型ROS简化机器人设计流程
    的头像 发表于 10-24 17:55 267次阅读
    通过RA <b class='flag-5'>MCU</b>和微型ROS<b class='flag-5'>简化</b>机器人设计流程

    pi调节器p和i都是什么 pi调节器参数怎么整定

    PI调节器是一种常见的控制系统反馈控制器,用于调节系统。在PI调节器中,P代表比例控制作用,I代
    的头像 发表于 08-01 17:01 9644次阅读

    机器视觉运动控制快组态软件RTFuse在XYZ三轴运动平台的应用方案

    简化视觉+运动控制开发流程,助力高效生产,快速点击了解!
    的头像 发表于 07-21 10:04 446次阅读
    机器视觉<b class='flag-5'>运动</b><b class='flag-5'>控制</b>快组态软件RTFuse在XYZ三轴<b class='flag-5'>运动</b>平台的应用方案

    使用Raspberry Pi的Motioneyeos网络摄像头运动检测

    电子发烧友网站提供《使用Raspberry Pi的Motioneyeos网络摄像头运动检测.zip》资料免费下载
    发表于 07-05 10:40 1次下载
    使用Raspberry <b class='flag-5'>Pi</b>的Motioneyeos网络摄像头<b class='flag-5'>运动</b>检测

    Raspberry Pi上HA中的运动传感器、警报、视频录制

    电子发烧友网站提供《Raspberry Pi上HA中的运动传感器、警报、视频录制.zip》资料免费下载
    发表于 07-05 09:14 0次下载
    Raspberry <b class='flag-5'>Pi</b>上HA中的<b class='flag-5'>运动</b>传感器、警报、视频录制

    运动控制卡与PLC的区别

    PLC专长在于逻辑IO控制运动控制卡就跟专业伺服电机的控制运动而已他的指令很简单
    发表于 06-29 14:13 1099次阅读

    设计稳健且容错的运动控制反馈系统

    典型的运动控制器卡和模块包括运动控制IC、微处理器以及用于处理高速编码器信号的DSP或定制ASIC。控制器向驱动器或放大器提供速度和旋转方向
    的头像 发表于 06-12 14:51 469次阅读
    设计稳健且容错的<b class='flag-5'>运动</b><b class='flag-5'>控制</b>反馈<b class='flag-5'>系统</b>

    基于宽度神经网络的微型仿鱼机器人运动控制方法

    研究团队设计了以宽度神经网络为主体的微型机器人基本运动控制器;基于李雅普诺夫稳定理论,推导了保障机器人运动稳定的控制器网络参数约束,简化了不
    发表于 05-30 10:21 177次阅读
    基于宽度神经网络的微型仿鱼机器人<b class='flag-5'>运动</b><b class='flag-5'>控制</b>方法

    嵌入式运动控制器在网络化交流伺服系统中的应用

    速轮廓控制等等,其主要关键在于降低整体系统运动控制的路径误差;伺服驱动器负责伺服电机的位置控制,主要关键在于降低伺服轴的追随误差。图1所示是
    的头像 发表于 05-09 10:56 1029次阅读
    嵌入式<b class='flag-5'>运动</b><b class='flag-5'>控制</b>器在网络化交流伺服<b class='flag-5'>系统</b>中的应用