文件名称:
ST MC SDK5.x 电机库软件框架说明资料(共20页转载ST原厂).pdf
开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2019-10-15
详细说明:ST 5.X的电机库文档说明,对这个电机库有简答的说明,不包含源代码文件技术交流QQ群:124545085
Project
由□ Application/User
曰② Drivers/STM323 o HAL Driver
由口stm32f3 ox hal adc.
口stm32 o hal adc exc
由口stm32f3 x hal dac.c
由tm32f3 o hal dac exc
由口tm32f3 x hal tim. c
由tm32f3 o hal tim exc
由口tm3f3 x hal uart.c
团
stm32f3x hal uart exc
口stm32f3hal
D stm3213xx hal rcc.c
由口stm32f3 ox hal rcc exc
由tm32 Sox_hal_gpio. c
stm32f3x hal dma. c
1.2电机控制库文件及共说明
般来说,普通应用这个部分不会涉及到,如果是在AP丨层已经无法满足电机控
制的需求时才会考虑修改这个部分,需要对电机运行框架非常熟悉的前提下去进
行修改
技术交流QQ群:124545085
源文件
描述
bus voltage sensor. c
母线电压
circle limitation, c
电压极限限制
enc
align ctrl, c
编码器初始定位控制
encoder speed pos fbk.c
编码醫传感器相关
fast div. c
快速软件除法
hall speed pos fbk.c
Ha传感器相关
inrush current limiter.c
浪涌电流限制
mc math. c
数学计算
mc interface. c
马达控制底层接口
motor power measurement. c
平均功率计算
ntc temperature sensor.c
NTC温度传感
open loop,c
开环控制
pid regulator.c
PD环路控制
pad motor power measurement.c功率计算
pwm common c
TMER同步使能
pwm curr fbk.c
SVPWM,ADC设定相关接口
r divider bus voltage sensor.c实际母线电压釆集
virtual bus voltage sensor. c
虚拟母线电压
ramp_ext mngr.c
无传感开环转闭环控制
speed pos fbk. c
速度传感接囗
speed torg ctrl c
速度力矩控制
state machine. c
电机状态相关
virtual speed sensor. c
无传感开环运行相关
以下部分在工程中只会存在其中一个文件
ics f30x pwm curr fbk. c
STM32F3的CS采样
r1 f30x pwm curr fbk. c
STM32F3的单电阻采样
r3 1 f30x pwm curr fdb.c
STM32F3的三电阻采样(1各个ADC
r3 2 f30x pwm curr fbk. c
STM32F3的三电阻采样(2各个ADC)
4
技术交流QQ群:124545085
13电机驾驶舱
这个部分就是为客户直接使用电机库而准备的,各种AP函数供用户调用;可以说简
单应用或直接使用这些AP|函数足够达成电札控制应用,客户不需要关心底层如何操作,
只需要关注自身需要实现哪些必要的功能,使得项目开发更加快速有效。
这里以个亐达控制数为例:如果双马达控制的第二个马达则将后缀变为 Motor2,
比如启动第二个电机的函数名为MC_ Startmotor2(),此处所涉及的除非特别说明,速度即为
机械速度
函数名称
函教参量数返回函赦功能
MC StartMotorl
yoid
hool
启动电机
MC StopMotor1
d
停止电机
MC ProgramspeedRampMotcrl
speed, time
void
设定目标速度以及所需时间
MC ProgramtorqueRampMotorl
torque,time void
设定日标力矩以及所需拍
MC 5etCurrentReferenceMotorl
Graf,Idrefvoid
设定,ld参考
MC GetcommandstateMotorl
void
MCI Commandstate t返回指令执行状态
停止速度指令执行速度指合
MC-StopSpeedRampMotorI
oid
bool
保存为执行停止前谏度指令
MC HasRampCompletedMotor1
void
boo
指令是否执行完成
MC GetMecspeedReferenceMotor1 void
Int16
返回机械考速度
MC GetMecSpeedAverage Motorl
Y
bid
int16
返回平均机械車度
MC GetLastRampFinalSpeedMotor1 woid
int16
返回上次指令速度
MC GetcontrolModeMotorl
void
STC Modality t
返回控制棱式
MC GetimposedDirection Motorl
智od
Int16
返回电机转动方向
MC.GetSpeedSensorReliabilityMotor1woid
bool
返回当前速度传器可信度
MC GetphaseCurrentAmplitudeMatorl vold
s
返回电流值
L MC GetPhasevoltage void
返回电压值
MC GetabMotorl
yoid
la, Ib
返回a,b相电流
MC GetlalphabetaMotorl
Yoid
返回cak变换后的la,阝
MC GetiqdMotorl
oid
Id, Iq
返回park变换后的ld,l
MC Getlgdre mOtor 1
void
Idref, igrf
返回l,参考
MC Geto
vd, va
返回变换电压量vd,w
MC GetvalphabetaMotor1
Va, vp
返回变换电压量va,v
MC GetElAngledppMotorl
Angledpp
返回电角度DPP数据
MC GetTerefMotor1
void
Igrf
返回电流参考
MC Setldrefmotorl
loret
void
设定电流|d参考
LMC Clear lgdrefMotorl
void
void
lq,ld数据回到默认值
MC Acknowledgefault 1
void
Bool
清除异常状态一
MC Getoccurred FaultsMatorl
void
Fault
得到发生了的Fau状态
MC GetCurrentFaults Motor
void
Faul
得到当前的Fa状态
AC GetsTMStateMctor 1
void
state
得到电机状态
电
技术交流QQ群:124545085
、软件主要环路
包含有三个主要环路:FoC环路,安全环路,电机控制环路;虚线方框部分为可选择
组件,实现部分为主要组件,可以看到整个控制围绕了电机控制系统的方方面面。
Satety loop
Legend
Optional Component
over
Under
:: Votage:: voltage:: Current : Heating
Safety
Protect. :! Protect :: Protect : Protect
routines is
Mandatory component
ICL
Bus
ACG
Brake: Voltage
M
f Sensing
Rectitier
Three Phase Inverter
Reference computa tion loop
FOC loop
了“1
Current sensing
副7
MTPA
Clarke. Park
Weaken
Circle limitation
tSh ii 3Sh i ICS
ParK-1 SVPWM
PIn
Speed &Position Feedback
】5
::Speed 8
Feed
PLLCORDIC
UIii Torque
i Forward
Regul
I HALL ENCODER
Rev up ie-
Appli
Control
Open
:loop FoC
AEF
3、整体软件框图
可以看到上面的电机控制框图三个环路构成了底层驱动部分,对于整体程序沇程上,电
杋库控制过程都发生在中断中,区别于普通顺序控制流程,也无仼务调度;这样做可以将电
机控制做到实时控制,因此整个STM32产品都可以用于FOC控制。
技术交流QQ群:124545085
「系统初始化
Systick中
断发生?
是
电机
安全任务
START命
ysck中断
令?
是
速度环执否
速度环更
电流ADC
行计数-1
新时间到?
转换完成?
是
是
电机
高频任务
空闲状态
START命
电流环执行FOC
令?
是
中频任务
电流环参
(速度环执行周期)
考输入
S. AJE
.1Main数
在main.c中主要是系统的初始化函数,main两数更是条理清晰。
7
技术交流QQ群:124545085
HAL Inito;
Systemclock Contigo
MX GPIO Inito;
ⅨADC1nit();
时钟外设配置
Ⅸ DAC Init
MX TIM1_(
MX USART2_ UART Inito
马达控制初始化
MX Motorcontrol_Init()
中断优先级设置,
使能中断
MX NVIC Inito
Whe(1)循环
电机程序执行在中断中完成
32两个重要的中断
321ADC转换完成中断
321ADC转换完成中断
高频任务执行于ADC采样转换完成中断,ADC采样开始由TM1硬件触发,转换完成后
进入中断,在这个中断中执行FOC坐标变换以及 SVPWM的执行,最终控制TM1的
PWM占空比输出。
TM1硬件触发ADC转换
TM1,ADC初始化中完成配置
ADC转换完成中断文件:sm32Qxm
函数: void AdC12| RQHandler(vod)
高频任务
FOC坐标变换
文件: mc tasks.c
SVPWM
函数:uint8 t TSK High Frequency Task(vod)
调整TM1占空比
文件: xxx pwm curr fdb.c
函数: xXX Write TIMRegisters0
322 Systick中断
这个中断默认为500us的定时中断,安全任务执行在这个中断中,并且以500us为基
础,中频任务也执行在这个中断中,比如我们设定的速度环执行为2ms,实乐是500us*4,
也就是匹次 systick中断后执行一次中频任务
技术交流QQ群:124545085
s断
文件:stm32f3 Ox mc if.c
默认500s
函数: void Sys Tick Handler(void
马达控制初
否
始化完成?
退出
是
Safe Task
中频计数
否
安全任务
值为0
中频计数减1
是
中频任务
文件: mc tasks. c
(速度环执行周期
函数: void TsK MediumFrequency
4、三人任务流稈
41高频任务
高频任务函数位于 mc task.C的 TSK High Frequency Task数中,执行的是核心FOC
算法
技术交流QQ群:124545085
电角度读取
SPD GetEIAngleo
读取电流
PWMC GetPhase Currents)
Clark/Park变换
MCM Clarke
MCM Parko
电流环P|D调整
PI Controller(
反Pak变换
MCM Rev Parko
SVPWM
PWMC SetPhase Voltage
TM占空比调整
42安全任务
所说的安全任务,字面意义已经很明确。这个部分对于过温、过流、欠压、过压保护进
行判断,如果触发了上述保护,则会关闭PWwM输出,复位电札控制参数,同时这个部分
也是温度ADC采样,母线电压采样,用户ADC采样的执行地方。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.