您好,欢迎光临本网站![请登录][注册会员]  
文件名称: ST MC SDK5.x 电机库软件框架说明资料(共20页转载ST原厂).pdf
  所属分类: 嵌入式
  开发工具:
  文件大小: 1mb
  下载次数: 0
  上传时间: 2019-10-15
  提 供 者: feiyin*******
 详细说明: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最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: