你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

详细讲解G4在电机控制中的应用

[复制链接]
gaosmile 发布时间:2020-3-4 17:30
此文的主要评测对象是基于NUCLEO-G431RB 开发板实现电机控制的软硬件环境。
) V7 _- I) {0 o. G* H9 ?
硬件环境:控制板:Nucleok-G431RB;功率控制板:X-NUCLEO-IHM07M1;受控电机:BR2804-1700KV-1无刷电机;9 }. J: m1 x9 T- y
软件环境:电机参数设置及配置工具:ST Motor Control SDK 5.4.3工程代码的生成工具:STM32CubeMX;应用功能开发工具:STM32CubeIDE

' F7 m7 I. `7 B4 P1 J8 ~
% s+ Z- `( [: k# i" Q5 |3 W
一、硬件介绍

- |& m% ?+ w9 L, M
本次电机控制的功率板是X-NUCLEO-IHM07M1,板载两颗主要的集成电路器件是 L6230PD和TSV994IPT, 分别提供无刷电机的功率控制和电机运转信号的放大,提供给ADC采样分析。
微信图片_20200304171614.jpg
▲ X-NUCLEO-IHM07M1正面照
( O* W- H8 h7 h" `3 w
该功率板带有CN7和CN10各38PIN(双排)的插座,用于实现与Nucleo系列的控制板连接,二者扣合在一起组合成电机控制的实验板。X-NUCLEO-IHM07M1主要可连接的控制板有STM32F302R8、STM32F303RE、STM32G431RB等。) f( F1 I9 P  c+ w6 \2 r$ r) R5 x
下图是Nucleo-G431RB控制板与X-NUCLEO-IHM07M1扩展板的主要功能引脚标识,电机程序控制的时候,可以参考这两图进行引脚的矫正与配置。
微信图片_20200304171621.jpg
▲ X-NUCLEO-IHM07M1
( G+ K1 [6 N2 g# A' `
微信图片_20200304171626.jpg ▲ Nucleo-G431RB
  
1 P$ [* o9 Z% b9 r4 @
微信图片_20200304171640.jpg 微信图片_20200304171633.jpg
▲ 控制板、功率板、电机实验实物连接
微信图片_20200304171646.jpg
▲ 功率板下的Nucleo-G431RB控制板

; F- ]1 B' y3 I9 |8 G+ ]( u- N1 j
二、MCSDK 5.4.3 电机参数配置工具
9 i& f8 O# Y9 `+ F! e& }+ z
1、ST Motor Profiler,是一个电机配置工具,通过它可以快速配置所控制电机的相关参数,在“Select Boards”按钮中,选择控制板和功率板的组合,在右侧输入电机的磁对数(Pole Pairs)、最大转速(Max Speed)、最大电流(Max Current)、供电电压(VBus),以及电机磁场类型(magnetic)是表面贴式(SM-PMSM),还是内嵌式(I-PMSM):/ i& I3 N9 o5 z: N1 }; ]9 t
电机是表贴式与内嵌式的区分方式如下图:

( S- N3 A8 L- M  \% z9 b. u# T
微信图片_20200304171652.png
# i) E- ~+ X) L
软件主要界面如下图:
微信图片_20200304171659.png
▲ ST Motor Profiler 系统主界面
本次实验的板卡组合方式在“Select Boards”选择响应的板卡,或在功率板查询框内输入” IHM07” 查询相关的Nucleo组合。这里我们选择第三个组合。
0 o5 N4 i' M6 B- l# a9 W+ A
微信图片_20200304171705.jpg
/ h( j: Z3 X+ L6 t
选择好板卡后输入相关参数,并连接板卡,如果这板卡是第一次连接,会提示下载电机参数配置的测试固件。下载好后,点击“Start Profile”根据输入的参数(转速、最大电流以及I-PMSM的Ld/Lq比值)对电机的运行进行配置,并自动分析出电机的各项运行参数,例如:最大转速、最大扭矩、最大加速度等。电机运行参数调校得是一个漫长得过程,根据需要的场景可利用这个功能进行相关参数的粗调。如下图:
  x* L& C4 I+ s) P& l; C$ l' d* J
微信图片_20200304171711.jpg
' U* @( @' ?7 u- O: M
电机参数配置好后,点击“Save”按钮进行保存,待” MotorControl Workbench”工具中进行使用。保存窗体中输入电机参数的文件名和描述即可。
% X& q& F& Y. y# r
微信图片_20200304171717.png 微信图片_20200304171723.png
        保存窗体                                覆盖同名文件提示
点击“Play”可对点击的正转、反转、最大转速、低速性能有一个大致的了解,如果这些体验都满意,可以进行后期的电机控制板的配置和相关代码生成,这些工作是在“MotorControl Workbench”中实现。, \5 P- n' X4 T: Z7 A
顺便说一下:离开“Motor Profiler”工具,最好将工具与开发板的固件断开,方便其他应用程序使用,恢复到下图状态即可。
微信图片_20200304171729.png
( d, q+ y0 G7 A3 g0 u* q
2、MotorControl Workbench 5.4.3 相关参数的设定及电机控制代码生成。

4 g9 M2 B& E. H/ Z( g
第一步:新建项目
微信图片_20200304171736.png
9 K5 L2 Q3 ]4 D: N
在新建项目窗体中,选择控制板、功率板信号以及运行的电机名称,这里的电机名称实际上是包含了一些列电机参数的文件,下图是工具中默认的电机参数配置。
微信图片_20200304171741.png

! }- j) D. J7 T' Y& K, |& G
也可以选择之前用“Motor Profiler”生成的电机参数文件。在开发阶段,建议优选“Motor Profiler”生成的电机参数,这样电机的就指标能达到最优,当然也可以选择默认的电机参数,在生成的代码中,这类电机参数适应性更好。
微信图片_20200304171747.png
▲ 新建项目窗体

# }' }$ u4 q5 x2 K/ C7 S
通过“Motor Profiler”创建的电机参数,下拉框旁边的垃圾图标 可对“Motor Profiler”生成的参数文件进行删除。- d5 z  _1 {& h9 w1 I2 c
项目创建好后,会根据控制板、功率板和电机的信息生成项目信息提示。8 Q) r3 g, u7 v0 E6 n3 h6 h9 }
微信图片_20200304171856.png
▲ 新建项目信息
新建项目好后,可通过主窗体中的“监控面板按钮”(下图红框)进入监控台对电机运行转台检查,方便验证电机相关性能。
微信图片_20200304171901.png
▲ 控制面板按钮的菜单位置

: v! \4 b0 J& f2 Z% J
电机监控台操控面板,可以实现软件电子状态的显示(Status)、异常的提示(Faults);控制板的连接与断开(红框)、电机启停(Start Motor、Stop Motor)、异常状态的消除(Fault Ack);以及电机基础信息、高级信息、寄存器、配置参数等内容,并且可以通过输入/调节转盘实现电机转速的控制。
微信图片_20200304171908.jpg
▲ 控制操控面板

0 r  ~" j1 t% P8 I5 `; i( l3 f1 ~
若需要对电机配置参数进行设定,需要关闭监控台窗体,回到主界面,调节各个模块的内容。
微信图片_20200304171913.jpg

% @6 T0 n/ a/ C2 @7 w3 \
一般的调节顺序是,先调节电机自身参数,然后调节温度传感器、电流传感器、过载电流保护、速度传感器、电源控制器等功率板电路及参数,最后调节控制板电路及参数(从右至左)。通过“Motor Profiler”的电机参数生成的项目电机参数可以不用调整,这都是实际测得的;功率板电路的接口对照功率板的电路原理图进行调整,功率阈值等内容根据电路原理的电器电路进行设定;控制板的相关参数参考单路原理图、板间接口进行调整,详细的描述请异步电堂电机相关课程,有详细的功能描述和电机控制原理知识。. x0 k7 u; A$ l8 A1 U
特别说明一下,在 “MotorControl Workbench 5.4.3”中,自动生成的控制板引脚与实际的不符,这会让项目生成的代码无法正确驱动电机,这里需要对照原理图逐一检查。避免控制板的电路和芯片出现异常。7 g! ~! [% R! k' g' J
X-Nucleo-IHM07M1-3Sh 的电机驱动控制方案搭配有F302R8和G431RB的控制板,二者使用的引脚几乎一致,只有少部分区别,主要的DAC、ADC、温度等配置是一样的,在用G431RB控制板搭建电机驱动方案时,可参考F302R8方案中的配置内容。
微信图片_20200304171920.png
▲ Nucleo-F302R8电机驱动控制方案
微信图片_20200304171926.png
▲ Nucleo-G431RB电机驱动控制方案
在各项参数配置好后,即可保存“MotorControl Workbench”项目文件(注意不要覆盖项目案例的文件,最好选择项目个人目录,方便管理和后期的代码生成)。在Cubemx功能里自动生成电机相关的项目代码和项目文件。如需要添加电机控制之外的,如:配置电机周边的显示、控制与人机交互等功能。可在Cubemx工具中修改“.IOC”项目文件,实现周边功能的配置与初始化。
微信图片_20200304171932.png
▲ 代码生成按钮
- R9 R5 f! i# g+ A% P7 v
第一次生成的代码时“UPDATE”按钮是灰色的,选择Cubemx版本、选择开发工具、选择固件库版本,以及驱动方式,点击“GENERATE”按钮后就会在项目保存目录下生成该项目的代码。这里选择的开发工具是ST STM32CubeIDE。
微信图片_20200304171938.png
▲ 项目代码生成与更新
微信图片_20200304171944.png
▲ 代码生成中的提示
微信图片_20200304171950.png
▲ 代码生成完成后

2 ?& Y1 ~; Y$ h& I4 @/ q4 [
三、用STM32CubeMX生成用户应用代码

& x2 p6 X: @* T
微信图片_20200304171958.png

7 k" {6 k3 G" c2 }
在项目代码生成目录有一个“MCSDK543_G431RB.ioc”的项目文件,可用CubeMX工具打开该文件,添加修改对电机控制之外内容,用Cubemx自动生成其相关初始化配置代码。" ?+ h$ G5 {8 D/ C9 r" `& i/ n
这里验证Nucleo-G431RB对功率板的电机控制,暂不加入相关设备(略过),有兴趣的请观看电堂精心准备的《STM32电动机控制应用系列讲座》专题进行学习。因为篇幅有限不在这里深入描述。

+ ?5 F# s8 F/ p! v$ z* k8 D2 A
四、用STM32CubeIDE对整体项目代码生成及验证

; R4 q* W  K! f- D# {3 ^  N' ]$ p
# o: \4 P7 K3 N' W. I
在“MotorControl Workbench”工具中生成的工程代码类型是“ST STM32CubeIDE”,在ST STM32CubeIDE导入相关工程即可实现代码的编译与下载验证(位置:FileàImport)按钮。
微信图片_20200304172004.png
▲ Import菜单功能位置

) w/ }5 ?& d3 Q# ?6 y+ Q( k! V选择“Existing Projects into Workspace”进行外部工程项目的导入;
# Q" X! c* ^5 Y( _& U
微信图片_20200304172011.png
▲ 选择导入外部工程到工作区

; h8 ?" p6 E1 j' x) F% y% Z; J
选择外部工作区的目录,系统会在目录中搜索相应的工程项目。
微信图片_20200304172016.png
▲ 选择项目导入目录,ST STM32CubeIDE会在其子目录下搜索出项目工程

3 U; q8 M! t1 P; U" ~& D
当工程文件导入后,工程文件的结构如下图:Application是应用代码,Drivers是G431RB的各类片内设备驱动,电机控制文件在Middlewares目录下。当系统编译后会生成Debug目录,存放各类.O文件。
微信图片_20200304172022.png
▲ 项目的工程结构
! w' }: J/ j1 k& W2 o4 ^
工程的main函数及入口在main.c文件中,芯片引脚、设备驱动相关的初始化和功能应用在此文件中。跟普通的STM32工程文件结构相似,流程相同。
微信图片_20200304172027.png
▲ 选择Main.c文件
. t, U) f$ ^% R; X
通过“MotorControl Workbench”生成的工程项目,只有相应的结构,并没有电机的启动停止的操作(按键电机停止运转除外),可以在用户代码区添加这么两行指令。
9 d, G+ L6 \% X0 `* H
1、 设置以速度模式运行1号电机2、 启动1号电机
微信图片_20200304172033.png
▲ 添加的电机启动代码
2 k/ l5 K1 J( H$ W" i4 Q+ Q
程序经过编译、下载到Nucleo-G431RB控制板,接通电机电源,重启控制板,这时功率板连接的电机开始运转,按下控制板的用户按键,电机停止转动,按下Reset键,电机重新运转。
微信图片_20200304172039.jpg
▲ 电机运行效果图
% U9 }& s4 i) n5 U
7 H6 T- m* s% E4 C
至此Nucleo-G431RB的电机应用项目软硬件环境搭建及功能验证结束了,不过这才是电机控制的开始,后续很多关于无刷电机控制理论的实验内容需要进行,例如上位机控制通讯、电机启动优化、其他无刷电机及功率板的验证、无刷电机低速率转矩的理论和实验、无刷电机的加减速控制等等,无刷电机相关的控制的知识盛宴已准备就绪,有了ST的这套开发工具,控制论的学习不再仅限于理论,还有实验与发现。: l9 ?/ W& R+ [* ?9 X9 e; A
微信图片_20200304171817.jpg
微信图片_20200304171825.png
微信图片_20200304171830.png
微信图片_20200304171836.png
微信图片_20200304171845.png
微信图片_20200304171850.png
收藏 评论2 发布时间:2020-3-4 17:30

举报

2个回答
mmuuss586 回答时间:2020-3-5 10:26:58
alatan8 回答时间:2020-3-12 11:13:18
感谢分享!
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版