基于STM 的+PMSM+FOC软件库培训

合集下载

基于STM32的+PMSM+FOC

基于STM32的+PMSM+FOC

基于STM32的+PMSM+FOC基于STM32+PMSM+FOC电机驱动项目PMSM:Permanent-Magnetic-Synchronous-Motor 永磁同步电机NVIC:Nested-Vectored-Interrupt-Controller 嵌套向量中断控制器MPU: Microprocessor-Unit 微处理器单元ISR: Interrupt-Service-Routine 中断服务程序IRQ: Interrupt-Request 中断申请Cortex—M3中断优先级:1)STM-32(Cortex-M3)中定义了两中优先级:抢占式优先级(Preemptive Priority)和副优先级(Sub-Priority);2)每一个中断源都需要指定这两种优先级;3)若IRQ1和IRQ2的抢占式优先级相同,系统在处理IRQ1的时候,IRQ2申请进入(无中断嵌套),IRQ2:必须等待系统将IRQ1处理完才处理IRQ2的申请;4)若IRQ1,IRQ2同时申请进入,系统首先会根据谁的抢占式优先级高,就先处理谁;5)如果IR1,IRQ2的抢占式优先级一样,副优先级高的首先被处理;6)如果IRQ1,IRQ2的抢占式优先级、副优先级一样高,系统根据二者在中断向量表中的排位顺序来决定处理;Cortex-M3中断优先级分组:STM 32中利用一些寄存器的位(4 bit)来指定两种中断优先级,4 bit的分组方式如下:1)第0组(NVIC_PriorityGroup_0):所有的4 bit全部用来表示副优先级(sub-priority2)第1组(NVIC_PriorityGroup_1):最高一位用于表示抢占式优先(preemptive-priority),最低3位用于表示副优先级(sub-priority);3)第2组(NVIC_PriorityGroup_2): 最高两位用于表示抢占式优先级(preemptive-priority),最低两位用于表示副优先级(sub-priority);4)第3组(NVIC_PriorityGroup_3):最高三位用于表示抢占式优先级,最低一位表示副优先级;5)第4组(NVIC_PriorityGroup_4): 四位全部用来表示抢占式优先级。

基于STM32的+PMSM+FOC软件库培训_3

基于STM32的+PMSM+FOC软件库培训_3

软件库结构及其它特性
故障管理 刹车 DAC功能
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
1
FOC 框图 (速度控制)
逆变器 AC Mains
ICS / shunts
~
3 phase inverter
PMSM Motor
~
va,b,c iqs* + 转矩及磁链 控制器 ids* + iqs ids + ωr PID PID vqs vds 反 PARK 变化 & circle limitation θr el PARK θr el 转子 速度/位置 反馈 MCU Application Great China vαβs SVPWM 计算
基于STM32的 PMSM FOC软件库 培训
MCU Application Great China
蒋建国
Shanghai, March,2008
Plan
无传感器转子位置检测:
框图 观测器理论 应用到PMSM马达系统 PLL 起动策略 转子堵转检测 头文件 “MC_State_observer_param.h”
MCU Application Great China
Luenberger观测器的离散化
根据上述的马达方程,引入估测电流( iα,iβ )的 反馈值并离散化 (T 为采样时间),可得:
rT ˆ T T ⎧ˆ ˆ ˆ ˆ iα (k + 1) = iα (k ) − s iα (k ) + K1T (iα (k ) − iα (k )) − eα (k ) + vα (k ) ⎪ Ls Ls Ls ⎪ ⎪i (k + 1) = i (k ) − rsT i (k ) + K T (i (k ) − i (k )) − T e (k ) + T v (k ) ˆβ ˆβ ˆβ ˆβ ˆβ 1 β β ⎪ Ls Ls Ls ⎨ ˆ ⎪eα (k + 1) = eα (k ) + K2T (iα (k ) − iα (k )) + pωr eβ (k )T ˆ ˆ ˆ ⎪ ⎪ ˆ ˆ ˆ ˆ ⎪eβ (k + 1) = eβ (k ) + K2T (iβ (k ) − iβ (k )) − pωr eα (k )T ⎩

【老资料】基于STM32的PMSM_FOC软件库培训

【老资料】基于STM32的PMSM_FOC软件库培训

Destination 32b 32b 32b 64b
Cycles 1 1 1
3-7*
*UMULL, SMULL,UMLAL, and SMLAL
UDIV & SDIV (Unsigned or Signed divide) 2 12
(/)
source
MCU Application Great China
PUSH 26
PUSH 12
ISR 1
POP PUSH
ISR 2
POP
16
Tail-chaining
ISR 1
ISR 2
6
6 CYCLES
26
16
POP 12
Saving in Clock Cycles
65%
Cortex-M3
• IRQ1 •
• ISR1 • ISR2
ISR1 26
LSM
42
ISR2
12
Cortex-M3
No. Exception Type Priority
1
Reset
-3 (Highest)
Type of Priority
fixed
Reset
Descriptions
2
NMI
-2
fixed
Non-Maskable Interrupt
3
Hard Fault
4
MemManage Fault
Mar ‘08
5
Cortex-M3
ARM v7M Thumb-2
16 32
(1/2)
ISR C
,
(NVIC) ( ARM7 )

(&)

基于STM32的 PMSM FOC软件库培训_4

基于STM32的 PMSM FOC软件库培训_4

t
n
n
基于STM32的 PMSM FOC软件库培训
Mar ‘08
10
状态观测器方程回顾
如前所述,状态观测器的离散化方程为:
rT T T iα (k + 1) = iα (k ) s iα (k ) + K1T (iα (k ) iα (k )) eα (k ) + vα (k ) Ls Ls Ls i (k + 1) = i (k ) rsT i (k ) + K T (i (k ) i (k )) T e (k ) + T v (k ) β β β β β 1 β β Ls Ls Ls eα (k + 1) = eα (k ) + K2T (iα (k ) iα (k )) + pωr eβ (k )T eβ (k + 1) = eβ (k ) + K2T (iβ (k ) iβ (k )) pωr eα (k )T
Target current
+ -
e
KP
+
Voltage command +
Байду номын сангаас
Measured Current
KI
1 s
PI Controller
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
7
转矩/磁链 闭环框图
Target current + Measured current
MCU Application Great China
Mar ‘08
12
基于STM32的 PMSM FOC软件库培训

STM32_PMSM_MC_SDK5.0_Training_CHN

STM32_PMSM_MC_SDK5.0_Training_CHN

9
Uq* Uq2* Ud2*
-1
∆Ud
fr
2πp
Ud*
© 2018 STMicroelectronics - 保留所有权利
矢量控制 — MTPA与弱磁控制
2
10
MTPA:������������ =
1, ������ > 0 0, ������ = 0 −1, ������ < 0
������������ − 2 ������������ −������������
从两相到三 电压 相的变换
1 1 ������������ ������������ = − 2 ������������ 1 − 2 ������������ ������������ ������������ 1 1 − = 2 1 − 2
0 3 ������������ − 2 ������ ������ 3 2 0 3 ������������ − 2 ������ ������ 3 2 ������������ ������������ = ������������ ������������ ������������ = ������������
2Ubus/3
-Ubus/3 0
© 2018 STMicroelectronics - 保留所有权利
������3
uk un ������5 uβ ������3
������2 ������ θ
60
矢量控制 — SVPWM(2/3)
������������ = ������1 ������������ + ������2 ������������ ������ ≥ ������1 + ������2

基于STM32的永磁同步电机的控制共3篇

基于STM32的永磁同步电机的控制共3篇

基于STM32的永磁同步电机的控制共3篇基于STM32的永磁同步电机的控制1永磁同步电机(Permanent Magnet Synchronous Motor,简称PMSM)是一种极具应用前景的高性能电机,被广泛应用于交通工具、家电、机械设备等领域。

随着电动汽车、新能源等产业的发展,PMSM的控制技术也越来越受到关注。

本文将基于STM32单片机,介绍PMSM的控制过程和相关技术。

一、PMSM的基本原理PMSM的基本原理是将定子上的三相绕组和转子上的永磁体之间的电磁作用力转化为机械转矩。

其中,定子上的三相绕组通过交流电源得到三相交流电,产生旋转磁场。

转子上的永磁体则产生磁动势,与旋转磁场作用产生转矩。

为了使PMSM能够实现精确的控制,需要知道其电磁状态,即定子电流、转子位置等信息。

接下来,我们将介绍PMSM的控制过程和所需技术。

二、PMSM的控制过程1. 传感器获取PMSM的控制需要准确的电磁状态信息,因此需要安装传感器获取定子电流、转子位置等信息。

一般来说,采用霍尔传感器或编码器获取转子位置信息,采用霍尔电流传感器或电阻分压电路获取定子电流信息。

2. 位置估算针对没有安装位置传感器的情况,可以采用磁场观测器或滑模观测器等算法来实现位置估算。

3. 控制算法选择对于PMSM的控制算法,可以选择基于直流型或交流型控制的空间矢量调制(Space Vector Modulation,简称SVPWM)或PI控制等算法。

其中,基于直流型控制的SVPWM由于计算量小、实现简单,更适合嵌入式单片机平台。

4. 控制器的设计与实现选择STM32单片机作为PMSM控制器,需要进行硬件和软件的设计与实现。

在硬件设计方面,需要选择合适的器件如功率MOS管、光耦、保险丝等;在软件实现方面,需要编写电机控制程序,实现数据采集、控制算法等功能。

5. 闭环控制系统搭建为了保证PMSM控制精度,需要建立闭环控制系统。

一般由电流环、速度环、位置环组成。

STM32 V4.0 电机软件库培训1

STM32 V4.0 电机软件库培训1

15
工具:GUI, IDE ,demo 板
工具:ST MC Workbench 1/2
• STMCWB PC软件通过图形界面产生软件库的参数头文件,方便用户 对软件库的配置及马达的调试
1 2 3 4
17
工具:ST MC Workbench 2/2
• 实时串口通讯
• 与PC实时通讯,实现马达的启动/停止,或速度的加减速 • 调试和监控软件参数 • 实时画出马达的参考及实际速度曲线
• 电流采样
• • 1-SHUNT 3-SHUNT
• 更换EVB可支持不同的MCU
EVB
• 更换EVB可支持不同的MCU
22
功率板
• 更换功率板可支持不同的功率
23
单板demo板
• 控制及功率部分集成在一块demo板上
24
STM32F0xx风扇demo板 1/2
• 拓扑结构 ωr*
STM32F0xx
Speed Control
vabc
Space Vector PWM
Current Control
i q*
MTPA & FLUX WEAKENING CONTROLLER
+
PID
-
vqs vds
vαβ
REVERSE PARK + circle limitation
i d*
+
θr el
PID
-
Te*
PID
• 必须读取定子的电流(1-shunt/3-shunt/ICS) • 必须读取转子的位置及速度(Encoder/Hall/Sensorless算法) • 电流的实时控制(PI/D):
• 不容易控制:高频正弦参考值、幅值的调制及与转子磁链的耦合 • 通过参考坐标系的转换来简化耦合问题

意法半导体对外公开的最新版PMSM电机控制培训资料

意法半导体对外公开的最新版PMSM电机控制培训资料
• Encoder
• 成本较高,一般适用于伺服控制
12
• Hall
• 成本较低,一般适用于马达静止或低速下也要求额定扭矩的应用
• Sensorless
• 高频注入算法 – HFI
• 适用于凸极马达(IPMSM,Ld<Lq) • 能实现马达转子位置的精确检测,即使在 静止或低速下 • 仅STM32F3和STM32F4系列支持
Speed Control
vabc
Space Vector PWM
Current Control
i q*
MTPA & FLUX WEAKENING CONTROLLER
+
PID
-
vqs vds
vαβ
REVERSE PARK + circle limitation
i d*
+
θr el
PID
-
Te*
PID
iqd
PARK
iαβ
θr el
ROTOR SPEED/POSITION FEEDBACK
ωr*,t
-
RAMP GENERATOR
wr*
+
iabc
CLARKE
PHASE CURRENTS FEEDBACK
STM32 PMSM FOC SDK v3.2
29/10/2014
Dual PMSM FOC – 框图
HFI Max FOC * F3~30kz F4~50kz Max FOC Dual * F3~27kz F4~45kz
Sensorless
STO+CORDIC
ICS FreeRTOS F103,F2xx Max FOC* ~23 kHz

基于STM32的+PMSM+FOC软件库培训_3

基于STM32的+PMSM+FOC软件库培训_3

vα = eα = Φ m
dθ r cos θ r dt
eα = + Φ m pωr cos( pωr t ) eβ = −Φ m pωr sin( pωr t )
C1: C2: C3: C4: observed eα observed eβ Hall sensor C2 phase current ia
⎧ dλ vα = rsiα + α ⎪ ⎪ dt ⎨ ⎪v = r i + dλβ s β ⎪β dt ⎩
⎧λα = Lsiα + sinθr ⋅ Φm ⎪ ; ⎨ ⎪λβ = Lsiβ + cosθr ⋅ Φm ⎩
其中 : Ls = Lls + 3Lms / 2;
θ r = pω r t
把磁链方程代入电压方程,得到:
基于STM32的 PMSM FOC软件库 培训
MCU Application Great China
蒋建国
Shanghai, March,2008
Plan
无传感器转子位置检测:
框图 观测器理论 应用到PMSM马达系统 PLL 起动策略 转子堵转检测 头文件 “MC_State_observer_param.h”
输入/内部状态/输出 的数学表达 3/3
引入两个新的状态变量:
eα = Φ m pωr cos( pωr t ) eβ = −Φ m pωr sin( pωr t )
那么,最后,假设机械变量相对于电变量变化缓慢得多,则:
⎧ di α ⎪ ⎪ dt ⎪ di β ⎪ dt ⎪ ⎨ ⎪ de α ⎪ dt ⎪ de ⎪ β ⎪ dt ⎩
MCU Application Great China
基于STM32的 PMSM FOC软件库培训

STM32 PMSM SDK V4 training_Day2

STM32 PMSM SDK V4 training_Day2

49
STO 起动 Basic,速度曲线
50
STO 起动 Basic,电流曲线
51
STO 起动 Advanced
• 起动过程分为5段,每一段的时间、最终速度、最终电流都可自定义 • 可自定义起动时的初始电角度 • 其时间段可为0:阶跃电流的设定
52
STO 马达速度检测
• 在START/RUN状态机下,SDK V4.0循环执行如下任务:
打开WB文件:SDK40x-STM3210E-EVAL-MB459-Shinano_Examples.stmc
20
2
5ቤተ መጻሕፍቲ ባይዱ
下载目标代码,运行代码
3
4
Example project 举例说明怎样基于SDK写应用层代码
PI and sensor type
1. PI 参数的修改 2. Sensor的切换
21
COMPx根据 OPAMPy的配置自 动分配管脚
42
• 也可以用外部运放来采样电流,而用内部比较器做过流检测 • 另外,SDK V4.0不允许同时使用外部和内部比较器做过流检测
使用内部比较器做过流检测
• 3种方式设定OCP的过流阀值
• 内部参考值,省一个管脚,但是该值较粗(只有有限的几个值可选)
43
访问MC Tuning
• #include "MC.h“ • CMCT oMCT:定义一个MCT对象 • oMCT = GetMCT(M1):调用函数GetMCT(),使得oMCT指向目标马达 的MCT对象
13
MC Tuning
• 调用MC Tuning中的命令分2步进行:
• 通过MC Tuning的函数得到目标对象 • 调用该目标对象的Interface函数

STM32F103_永磁同步电机_PMSM_FOC软件库_用户手册_中文版

STM32F103_永磁同步电机_PMSM_FOC软件库_用户手册_中文版
图1 固件结构图
目录 1 工具 .......................................................... 7
1.1 工作环境 ...................................................................................................................... 7 1.2 软件工具 ...................................................................................................................... 7 1.3 源代码库 ...................................................................................................................... 8 1.3.1 更新 .................................................................................................................. 8 1.3.2 文件结构........................................................................................................... 8 1.4 自定义 STM32F103xx 系列工作区............................................................................... 8

基于STM32的+PMSM+FOC软件库培训_1

基于STM32的+PMSM+FOC软件库培训_1

基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
9
中断响应 - Tail Chaining
Highest
IRQ1
IRQ2
42 CYCLES
ARM7
中断响应由汇编 代码实现
Cortex-M3
中断响应由硬件实现
ARM7
PUSH 26
PUSH 12
No. Exception Type Priority
1
Reset
-3 (Highest)
Type of Priority
fixed
Reset
Descriptions
2
NMI
-2
fixed
Non-Maskable Interrupt
3
Hard Fault
4
MemManage Fault
5 6 7-10 11
MCU Application Great China
Mar ‘08
15
高精度 PWM 产生
时钟
可为APB总线频率的2倍 最大72MHz:可提供13.8ns 定时精度
边沿或中心对称模式
更新率倍频模式(见下页)
中心对称模式下无精度损失
每个PWM周期可产生两次中断或DMA
基于STM32的 PMSM FOC软件库培训
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
2
Agenda
第三天
上午 软件库结构及其它特性 无传感器模式软件开发进程; 头文件:MC_Control_param.h; 怎样计算转矩/磁链PI参数的初始值; 怎样计算观测器增益参数的初始值

STM32_PMSM_MC_SDK5.0_Training_CHN (1)

STM32_PMSM_MC_SDK5.0_Training_CHN (1)

us
UCN[u] 0 0 0 0 Ubus
UAO [u] 0 2Ubus/3 Ubus/3 -Ubus/3 -2Ubus/3
UBO[u] 0 -Ubus/3 Ubus/3 2Ubus/3 Ubus/3
UCO[u] 0 -Ubus/3 2Ubus/3 -Ubus/3 Ubus/3
������ ������ + ������������ ������������
© 2018 STMicroelectronics - 保留所有权利
矢量控制 — 矢量变换
变换内容 从三相到两 电压 相的变换 变换前后幅值不变 ������������ ������������ = 1 1 3 0 2 3 ������������ ������������ 变换前后瞬时功率不变 ������������ ������������ = 3 2 1 0 2 ������������ ������������
© 2018 STMicroelectronics - 保留所有权利
矢量控制 — 电流前馈
∆������������ = −������������ ������������ 2������������������������ ∆������������ = (������������ +������������ ������������ )2������������������������ Iq* Id* Lq Ld + + kE K K ∆Uq + +
设定值S.V.
fr-ref (fr*) Id/q-ref(Id/q*)
实际值 P.V.
fr-fb(fr) Id/q-fb(Id/q)
控制值C.V.

基于STM32的+PMSM+FOC软件库培训V2

基于STM32的+PMSM+FOC软件库培训V2

其中1GHz=1000MHz,1MHz=1000kHz,1kHz=1000Hz。

计算脉冲信号周期的时间单位及相应的换算关系是:s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒),其中:1s=1000ms,1 ms=1000μs,1μs=1000ns。

72MHz = 13.888888ns14.4KHz = 69.44444usPWM为中心对齐方式14.4KHz/2 = 34.72222usFOC算法总的执行时间(无传感器/3电阻法)大约24μs(代码为速度优化);TIM1 Break interrupt:BRK_PRE_EMPTION_PRIORITY 0BRK_SUB_PRIORITY 0stm32f10x_svpwm_3shunt.c or stm32f10x_svpwm_ics.cADC Interrupt(JEOC or AWD):ADC_PRE_EMPTION_PRIORITY 1ADC_SUB_PRIORITY 0stm32f10x_svpwm_3shunt.c or stm32f10x_svpwm_ics.cTIM1 Update Interrupt:TIM1_UP_PRE_EMPTION_PRIORITY 1TIM1_UP_SUB_PRIORITY 0stm32f10x_svpwm_3shunt.cTIMxInterrupt:TIMx_PRE_EMPTION_PRIORITY2TIMx_SUB_PRIORITY0stm32f10x_encoder.c or stm32f10x_hall.cSysTickInterrupt:SYSTICK_PRE_EMPTION_PRIORITY 3SYSTICK_SUB_PRIORITY 0stm32f10x_Timebase.cMC_pwm_3shunt_prm.h三个电阻时#define SAMPLING_TIME_NS(u16)(700) //0.7usec = 700ns ADC#define TNOISE_NS(u16)(2550) //2.55usec#define TRISE_NS(u16)(2550) //2.55usec#define PWM_FREQ ((u16) 14400) // in Hz (N.b.:pattern type is center aligned)PWM 频率为14400 HZ#define CKTIM ((u32)72000000uL) /* Siliconrunning at 72MHz Resolution: 1Hz */工作频率为72Mhz#define PWM_PRSC ((u8)0)/* Resolution: 1Hz */#define PWM_PERIOD ((u16) (CKTIM / (u32)(2 * PWM_FREQ *(PWM_PRSC+1))))当PWM为14400时PWM_PERIOD= 0X09C4= 2500 即为2500*13.888ns = 34.72222usvoid SysTickHandler(void); 500us 中断一次//User should make his choice here below#define PID_SPEED_SAMPLING_TIME (u8)(PID_SPEED_SAMPLING_2ms)volatile u8 bPID_Speed_Sampling_Time_500us = PID_SPEED_SAMPLING_TIME;// FOC_TorqueCtrl(); static u16 hSpeedMeas_Timebase_500us = SPEED_SAMPLING_TIME;//测量速度。

STM32 PMSM FOC SDK V3.2_讲座5

STM32 PMSM FOC SDK V3.2_讲座5
主管马达启动 涉及到4个类
• is the start-up master • It deals with sections duration • It configures the other objects at the beginning of each section
• The speed and torque controller (STC class)

速度和转矩控制:设定每段电流幅值
accounts for phase current amplitude ramps within the present section
虚拟速度传感器
• The virtual speed sensor (VSS class)
• is programmed by oRUC at the beginning of each section • feeds back a speed linearly increasing (programmable virtual acceleration) within the present section and – accordingly – a virtual electrical angle
无感的启动由配置的段数和持续时间来决定
• Speed and/or current amplitude increase linearly within the section • It is carried out by the synergy of 4 different objects:
• The rev-up controller (RUC class)
电流更新
STM32 PMSM FOC SDK v3.2

基于STM32的 PMSM FOC软件库培训_2

基于STM32的 PMSM FOC软件库培训_2

反Park变换应用于定子电压:vqs,vds:
vα = vqs cos θ r + vds sin θ r vβ = −vqs sin θ r + vds cos θ r
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08 7

SM-PMSM FOC 1/3
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
2
PMSM: 永磁同步马达
不同的转子结构:
La < Lb < Lc
a)SM-PMSM: 表面贴式磁钢(Ld=Lq). b) & c)IPM-SM: 内嵌式磁钢(Ld<Lq). 特别地, b) 内插式; c) 放射状内埋式
MCU Application Great China
Mar ‘08
6
坐标变换理论(3/3)
Clarke变换应用于定子电流:ias,ibs,ics:

iα = ias iβ = − ias + 2ibs 3
Park变换应用于定子电流:iα,iβ:
iqs = iα cos θ r − iβ sin θ r ids = ia sin θ r + iβ cos θ r
r V* r V
Vq*
Vq* ⋅ (MMI ⋅ S16_MAX ) r* Vq = |V |
Vq
Vd
r2 r1
Vd*
Vd* ⋅ (MMI ⋅ S16_MAX ) r Vd = | V* |
MMI ⋅ S16_MAX 2 r* Look up table : |V |

基于STM 的PMSM FOC软件库培训

基于STM 的PMSM FOC软件库培训

MCU Application Great China
Mar ‘08
4
Cortex-M3 处理器
处理器集成了先进的内核及系统外设
Cortex-M3 内核
哈佛结构 3级流水线 & 分支指令推断 Thumb®-2 指令 ALU & 硬件除法 & 单周期乘法
Cortex-M3 处理器
Cortex-M3 内核 可配置的中断控制器 总线矩阵 先进的debug 模块 可选的 MPU & ETM (Not available in
•从ISR1退出到ISR2进入: 6个周期 •从ISR2返回:12个周期
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
10
NVIC 寄存器
中断输入的每个通道由几个寄存器控制,包括:
使能/禁止位
使能/禁止中断 该控制位可置1,清0或被读
(Group Priority)
Bits
Levels
4
16
3
8
2
4
1
2
0
0
Sub-Priority
Bits 0 1 2 3 4
Levels 0 2 4 8 16
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
12
Cortex-M3 中断类型
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
7
异常/中断处理
非常低的中断响应时间

stm32的pmsmfoc软件库v4.2培训

stm32的pmsmfoc软件库v4.2培训

基于STM32的+PMSM+FOC软件库培训my参考文档:2.0STM32 FOC FW library v2.0 新功能(1).pdf基于STM32的+PMSM+FOC软件库培训_1.pdf3.0STM32 PMSM FOC lib Update_SDK V3.0_CHNx.pdf STM32 PMSM FOC SDK V3.2培训课程1.pdf4.0STM32_PMSM_SDK_V4_training_Day1.pdfSTM32 3phase PMSM MC library day1(v4.0).pdf 没有下载ST 三相电机控制4.2新算法介绍.pdfhands-on_stm32_pmsm-foc-sdk.pdf 1.5定子电流被分解成:直轴电流Ids:用于产生磁场,与转子的磁场叠加交轴电流Iqs:用于控制转矩(其作用等同于直流电机的电枢电流)。

可进行位置控制(通过瞬时转矩控制)The “Motor Profiler” algorithm will determine the following parameters: • Stator resistance Rs• Stator inductance Ls• BEMF constant Ke• KP and KI of speed controller• Nominal speed of the motor一、介绍与应用STM32F100 (Value Line) FOC 性能1shunt/sensorless @20kHz PWM,10kHZ FOCMotor Control code size is 15.82KbMotor Control RAM usage is 2.77KbFOC Total execution time is 65.22us (ADC ISR + TIM1 Update ISR)FOC introduced CPU load is 65.2%Total CPU load is ~70% (~60% at 8kHz FOC)STM32F103 FOC 性能20.9usec with 3 shunt resistor (14.5kB flash; <2.5kB RAM) 26.1usec with single shunt resistor (16.2kB flash; <2.5kB RAM) • 3-Shunt: CPU load @ 10kHz sampling time ≈ 25% • 1-Shunt: CPU load @ 10kHz sampling time ≈ 30%STM32F103 HD, 双FOC驱动性能---(1) Motor 1, 1shunt/sensorless @8kHz PWM/FOC.Flux Weakening enabledMotor 2, 1 shunt/sensorless @16kHz PWM, 8kHZ FOC. Motor Control code size is 22.3Kb (below 1.5 times single motor case)Motor Control RAM usage is 4.01KbFOCs introduced CPU load (including TIMx Update ISRs) is 44%Total CPU load ~50%STM32F103 HD, 双FOC驱动性能---(2) Motor 1, 3shunts/sensorless @16kHz PWM/FOC. MTPA and Flux Weakening enabledMotor 2, 1shunt/sensorless @16kHz PWM, 8kHZ FOC.Motor Control code size is 25.5KbMotor Control RAM usage is 4.14KbFOCs introduced CPU load (including TIMx Update ISRs) is 62.6%Total CPU load <70%F ield O riented C ontrol: 定子电流的幅值和相位相对于转子的磁链独立 控制,因此:• 必须读取定子的电流(1-shunt/3-shunt/ICS)• 必须读取转子的位置及速度(Encoder/Hall/Sensorless算法)• 电流的实时控制(PI/D):• 不容易控制:高频正弦参考值、幅值的调制及与转子磁链的耦合• 通过参考坐标系的转换来简化耦合问题速度及位置检测支持:• Encoder• 成本较高,一般适用于伺服控制• Hall• 成本较低,一般适用于马达静止或低速下也要求额定扭矩的应用• Sensorless• 高频注入算法– HFI• 适用于凸极马达(IPMSM,Ld<Lq)• 能实现马达转子位置的精确检测,即使在静止或低速下• 仅STM32F3和STM32F4系列支持• State Observer + PLL• 基于马达的BEMF,使用相电流及相电压估计马达转子的位置• 适用于马达的转速范围:额定转速的5% - 100% • State Observer + CORDIC二、库2.0三、不同库中的不同算法3.0库4.0库中4.2库中4.2库中四、电机参数测量Pole pair numberThe number of pole pairs is usually provided by the motor supplier, but in case it’s not or if you’d like to double check it:•Connect a DC power supply between two (of the three) motor phases and provide up to 5% of the expected nominal DC bus voltage. (You may also set current protection to nominal motor current.)•Rotate the motor with your hands, you should notice a little resistance, otherwise:•If you are not able to rotate the motor, decrease the applied voltage.•If the motor does not generate any resistance, gradually increase the applied voltage.•The number of rotor stable positions in one mechanical turn represents the number of pole pairs.Stator resistance and inductance•Using the multimeter, measure the DC stator resistance phase-to-phase (Rs) and divide it by two.•Connect the DC voltage between two motor phases.•Connect the oscilloscope voltage and current probes as shown in the figure. •Increase the voltage up to the value where the current equals the nominal value, rotor with align.•Don’t move the rotor anymore.Stator resistance and inductance•Disable the current protection of DC voltage source.•Unplug one terminal of the voltage source cable without switching it off.•Plug the voltage source rapidly and monitor on the scope the voltage and current waveform until you get something like the one shown in the figure.•The measurement is good if the voltage can be assimilated to a step and the current increasesuch as I* (1-e-t *L/R).•Measure the time required to current waveform to rise up to 63%.•This time is Ld/Rsconstant. Multiply it by Rsand you’ll get Ldvalue.Back EMF constant Ke•The Back-EMF constant represents the proportionality constant between themechanical motor speed and the amplitude of the B-EMF induced into the motor phases:•To measure Ke, it usually suffices to turn the motor with your hands (or using a drill oranother motor mechanically coupled) and use an oscilloscope to look for thephase-to-phase induced voltage (V Bemf)Measure the V Bemf frequency (f Bemf) and the peak-to-peak amplitude (V Bemf –A) • Compute Ke in V RMS/ K RPM:五、详细介绍3.2库(STM32 PMSM FOC lib Update_SDK V3.0_CHNx.pdf)3.2库中有视频5.1结构体系:层结构• SDK软件库分为若干个软件层,分别为:MCU标准外设软件库、马达 控制库及马达控制应用层• 还包含用户界面层及FreeRTOS模块STM32Fxxx standard peripherals library and CMSIS library•Motor control library•Motor control application•Demonstration user project• 每一个马达控制软件的workspace包含有2个project:• MC Library project• User project(包含MC Application层):即在V4.0中,User project层和MC Application 层被放到了同一层• 每个project都需要分别编译,并最终连接生成可执行代码5.2 OOP:面向对象编程(Object Oriented Programming)•OOP is a programming style; the data and the functions that operate on it are packed together, forming an Object•Instance Methods are functions associated with an object;•Class is the factory from which objects are created. It is a user defined data type (variables,•A dedicated C embodiment of OOP has been developed for implementing the MC Library对象(Object)对象是一个数据结构和函数的集合,其函数允许对对象自己的数据进行操作数据结构包含了对象的属性及变量,它描述了对象的状态类(Class)用户自定义的数据类型,包含了变量,属性及方法一个类可以用来产生多个单独的对象方法(Method)方法是唯一的可以改变对象的内部状态的操作,它通过修改对象的变量及属性来实现对象内部变量对于对象的使用者而言是隐藏的:数据的封装及隐藏特性接口(Interface)对象与外界的接口是由其定义的方法来实现通过方法实现对象与外界的接口使得类的使用更严谨•Object•The object is a collection of data structure (members) and functions (methods) allowed operating on the data structure itself.•Data structure contains both object properties and variables and can also be referenced as the state of the object•Class•User defined data type containing variables, properties and methods•A class can be considered the factory from which individual objects are created•Method•Methods are the only operations that can change the internal state of an object by modifying its variables and properties•Object internal variables are hided to object users: data encapsulation or data hiding•Interface•The interaction of objects with the outside world is defined by the methods that they export•Methods form the interface with the outside world allowing a class to become more formal about the behavior it promise and provides继承定义:一个新的类继承了另一个类的成员及方法。

STM32 PMSM FOC SDK V3.2_讲座4

STM32 PMSM FOC SDK V3.2_讲座4

CSTC
STM32 PMSM FOC SDK v3.2
12/06/2014
MC Interface commands
API命令
62
Method
MCI_StartMotor
启动马达
Description
This is a user command used to start the motor. If is possible, the command is executed instantaneously otherwise the command is discarded. User must take care of this possibility by checking the return value. This is a user command used to stop the motor. If is possible, the command is executed instantaneously otherwise the command is discarded. User must take care of this possibility by checking the return value.
MCI_EncoderAlign
带编码器马达定位
START
STOP
STM32 PMSM FOC SDK v3.2
12/06/2014
MC Interface buffered commands
焕缓冲命令 缓冲命令并不会立即执行而是在合适的状态才回去执行
63
• Buffered commands don't become active as soon as it is called but it will be executed when machine is in a predefined state (Ex. RUN).
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

⎧ ⎪ ⎪
diα dt
= − rsiα Ls
− eα Ls
+ vα Ls
⎪ di β
⎪⎪ ⎨
dt
= − rsiβ Ls
− eβ Ls
+ vβ Ls
⎪ deα
⎪ ⎪ ⎪
dt de β
⎪⎩ dt
= pωreβ = − pω r eα
⎧ ⎪ ⎪
diˆα dt
= − rsiˆα Ls
− eˆα Ls
+ vα Ls
反电动势 计算
b-emf α b-emf β
转子 角度/速度
重构
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
θr el ωr
3
反电动势计算:观测器
根据控制理论,如果一个系统能够完全通过其检 测到的输出值来重构其系统状态,则认为该系统 是可观测的;
状态观测器根据所观测系统的输入及输出值估计 其内部状态。
U
PLANT
Y
(X)
Y −Yˆ
Observer
Yˆ Χˆ
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
K
Mar ‘08
4
输入/内部状态/输出 的数学表达 1/3
把SM-PMSM马达的电压方程变换到αβ坐标系,并把a轴定位在α轴 上(Clark变换):
⎧ ⎪⎪vα
=
rsiα
+
dλα
dt
⎨ ⎪⎪⎩vβ
=
rsiβ
+
dλβ
dt
;
⎪⎧λα ⎪⎩⎨λβ
= =
Lsiα Lsiβ
+ sinθr ⋅Φm + cosθr ⋅Φm
其中: Ls = Lls + 3Lms / 2; θr = pωrt
把磁链方程代入电压方程,得到:
⎧ ⎪⎪vα ⎨ ⎪⎪⎩vβ
= =
rsia rsiβ
MCU Application Great China
Mar ‘08
8
PMSM马达的Luenberger观测器 2/2
状态模型则表示为:
PMSM 马达模型
PMSM 状态观测器
⎧x&(t) = Ax(t) + Bu(t)
⎨ ⎩
y(t)
=
Cx(t
)
⎨⎧xˆ&(t) = Axˆ(t) + Bu(t) + K ( y − yˆ) ⎩ yˆ(t) = Cxˆ(t)
MCU Application Great China
Mar ‘08
2
无传感器方案框图
逆变器
~
vDC
meas
3 phase inverter
ICS / shunts
PMSM Motor
~
总线电压 测量
va,b,c
vαβ s
SVPWM 计算
iαβ s
CLARKE
iabc s
电流读取
vBUS
vα’β’s iαβ s
软件库结构及其它特性
故障管理 刹车 DAC功能
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
1
FOC 框图 (速度控制)
AC Mains
~
转矩及磁链 控制器
iqs*+
ids* +
-
+
ωr*
逆变器
3 phase inverter
ICS / shunts
基于STM32的 PMSM FOC软件库 培训
Shanghai, March,2008
MCU Application Great China
蒋建国
Plan
无传感器转子位置检测:
框图 观测器理论 应用到PMSM马达系统 PLL 起动策略 转子堵转检测 头文件 “MC_State_observer_param.h”
up failed”)
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
17
起动实例
下图为Shinano PMSM马达的起动波形:
图中:转子位置角在150ms内收敛,起动判据在 500ms内满足。
两者相除,可得到转子的位置角为:
θr
=
pωrt
=
arctg⎜⎜⎝⎛ −
eˆβ eˆα
⎟⎟⎠⎞
这个方法是开环的,它对耦合在反电动势里的干扰非 常敏感(它会使反电动势成为非正弦信号!)
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
12
转子位置角/速度 计算2/2:锁相环 (PLL)
⎪ ⎪eˆβ
(k
+1)
=
eˆβ
(k
)
+
K2T
(iˆβ
(k
)


(k))

pωreˆα
(k
)T

基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
10
状态信号捕捉

=
rsiα
+
d (Lsiα
+ Φm dt
sinθr )
C1 C2 C3: Hall sensors
FIRST_I_START_UP
I_START_UP_DURATION FREQ_START_UP_DURATION
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
15
起动成功的判据 1/2
为了从起动模式(在软件中:state= START的状 态)切换到FOC闭环控制(state= RUN的状态), 观测器和PLL必须都收敛; 根据所观测的速度FIFO,周期性地计算下列两个 统计指数(该周期在软件中定义为 PID_SPEED_SAMPLING_TIME):
⎨ ⎩ y(t )
=
g ( x(t ))
为:
⎧ diα
⎪ ⎪
dt
= − rsiα Ls
− Φm Ls
pωr
cos(
pωr t )
+
vα Ls
⎪ ⎨
diβ
⎪ dt
= − rsiβ Ls
+ Φm Ls
pωr
sin(
pωr t )
+
vβ Ls
⎪ dθ r
⎪⎩ dt
= ωr p
其中: 状态矢量 x=[iα iβ θr]t, 输入矢量 u=[vα vβ 0]t, 其输出 y=θr 。
⎧x&(t) = Ax(t) + Bu(t)
⎨ ⎩
y(t)
=
Cx(t)
其中:
状态矢量 x=[iα iβ eα eβ ]t, 输入矢量 u=[vα vβ]t, 输出变量 y=[iα iβ]t
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
PI闭环作用:调节ωr以保持其输入为0 (电角度将领先反电动势 一个采样时间)
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
13
PLL 闭环系数计算
经过验证,Kp及Ki定义为:
P gain = 532 ⋅Maximum electrical frequency Observer sampling freq
eˆα
X
sin
-
PI ωr
ωr
+
− eˆβ
X
∫ θr
θr
cos
( ) 令 A = ǫmpωr ,则:
eˆα (kT ) = Acos θˆk
那么:
( ) − eˆβ (kT ) = Asin θˆk
( ) − eˆα (kT )⋅ sin (θk−1 )− eˆβ (kT )⋅ cos(θk−1 ) ≅ A θˆk − θk−1

T Ls
eˆα
(k)
+
T Ls

(k)
⎪⎪iˆβ ⎨
(k
+1)
=
iˆβ
(k)

rsT Ls
iˆβ
(k)
+
K1T (iˆβ
(k)


(k))

T Ls
eˆβ
(k)
+
T Ls

(k)
⎪⎪eˆα (k +1) = eˆα (k) + K2T(iˆα (k) − iα (k)) + pωreˆβ (k)T
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
11
转子位置角/速度 计算 1/2
在得到反电动势的alpha及Beta分量后,可从中解 析出转子的位置角;
由 eα 及eβ 的定义:
eα = Φm pωr cos( pωrt) eβ = −Φm pωr sin( pωrt)
C4: back-emf phase A-0
相关文档
最新文档