基于STM32的+PMSM+FOC软件库培训_2
基于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
软件库结构及其它特性
故障管理 刹车 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 ⎩
基于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
异常/中断处理
非常低的中断响应时间
STM32F103_永磁同步电机_PMSM_FOC软件库_用户手册_中文版
UM0492 用户手册 STM32F103xx 永磁同步电机磁场定向控制(PMSM FOC)软件库 V2.0 简 介
本用户手册介绍了永磁同步电机(PMSM)FOC 软件库,STM32F103xx 微控制 器就是针对磁场定向控制(FOC)3 相永磁电机固件库开发的。 这些 32 位,ARM 的 Cortex™- M3 的芯 ST 微控制器(STM32F103xx)附带一 套外围设备, 使之适用于永磁交流同步电机和交流异步电机磁场定向控制。特别 是, 本手册介绍了 STM32F103xx 软件库发展到可以控制外置型或嵌入型或在扭矩 和速度两个控制模式下控制正弦波驱动永磁电机。这些电机可能配备一编码器, 具有三个霍尔传感器或者他们可能无传感器。在 UM0483 用户手册中介绍了具有 编码器或测速发电机的交流感应电机的控制。 永磁同步电机磁场定向控制库是由几个 C 语言的模块构成,并列装 IAR EWARM 5.20,Keil 公司的 RealView MDK 3.22a 和 Green Hills 5.03 工作区。 它是用来同时快速评估 MCU 和可用的工具。此外,当和 STM32F103xx 电机控制入 门套件(STM3210B- MCKIT)及永磁电机一起使用时,可以让电机在很短的时间 运转起来。 它通过提供立即可用功能,也省去了 FOC 发展的耗时和速度调节的需 要,让用户专注于应用层。而且,因为有了转子位置重构无传感器算法,它可能 不需要任何速度传感器。 使用这个库的一个先决条件是要懂得 C 语言程序设计的基础知识, 永磁电机 驱动器和功率逆变器的硬件的基本知识。 需要定制现有模块和添加一个新型的完 整应用开发时才需要深入了解 STM32F103xx 功能。 图 1 显示了固件结构图。它广泛使用 STM32F103xx 标准库,但当需要优化执 行速度和代码大小时它也直接作用于硬件设备的外围设备。
【老资料】基于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
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
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 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):
• 不容易控制:高频正弦参考值、幅值的调制及与转子磁链的耦合 • 通过参考坐标系的转换来简化耦合问题
基于STM32的 PMSM FOC软件库培训_2
Te =
3 p Φ m iq s 2
(
)
而且,如果需要在弱磁控制区域运行,逆变器必须有刹车电阻或再 生发电能力(昂贵的4象限AC-DC,..)
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
14
深入:弱磁控制 2/3
“转矩及磁链控制器” (FOC速度控制) 实时地提供:目标交轴电流 iq ( 通 过 一 个 PID 调 节 器 实 现 ) 及 目 标 直 轴 电 流 id ( 通 过 查 MC_PMSM_Motor_param.h中的数据表实现),以此来逼近目标 转速。 该头文件由电子表格产生,在该表格中,需要填写如下参数: 逆变器交流输入电压; Rs,马达绕组电阻; Ls,马达绕组电感; Ke,马达反电动势常数; p, 极对数; In, 马达额定电流(< 逆变器额定电流); MMI (它是PWM频率的函数).
基于STM32的 PMSM FOC软件库 培训
MCU Application Great China
蒋建国
Shanghai, March,2008
Plan
直流无刷马达介绍 FOC 基础 Clark及Parke坐标系转换 Circle limitation 磁链及力矩控制器 电流读取
3电阻法 电流传感器法
STM32 PMSM FOC SDK V3.2_讲座2
.LIB
MC Library Project
底层
1100100101010 0010100101001 0101001..
.LIB
• Parameter files, generated by the ST MC Workbench GUI, are used by the MC Application to instance objects from MC Library classes. The IDE rebuilds the Application project, links and creates the .exe
文档 PC配置
• Documentation (User Manual, Developer Manual, doxygen source file Help)
STM32 PMSM FOC SDK v3.2
12/06/2014
Architecture: Layers
• According to components description, the SDK’s architecture can be depicted as:
• • • • OOP – Object Oriented Programming Our implementation of OOP Interrupt Handling Classes and interaction
STM32 PMSM FOC SDK v3.2
12/06/2014
Architecture: SDK Components
IDE
110111010101 001011110001 101010101..
User Project
MC Application Project
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函数
STM32 PMSM SDK V4.2 使用指南中文版
60
基于shunt的相电流采样
• 必须合理配置运放电路的增益及偏置电压 • Workbench中专门设计了一个放大电路的设计工具
3-shunt
• 3-shunt:必须在下桥臂打开时才能采样到相电流
OpAmp + Offset Gate
STM32 PMSM FOC SDK V4.2概述
STM32 PMSM FOC SDK V4.2
• SDK V4.2软件包包含:PMSM FOC 固件库和ST MC Workbench(GUI), 允许用户使用STM32进行单或双PMSM马达的FOC的驱动,其支持 STM32F0xx, STM32F1xx, STM32F2xx, STM32F3xx及STM32F4xx
• State Observer + PLL
• 基于马达的BEMF,使用相电流及相电压估计 马达转子的位置 • 适用于马达的转速范围:额定转速的5% - 100%
• State Observer + CORDIC
9
9
无传感观测器
29
22
X-NUCLEO-IHM07M1
• 供电电压:8V—48VDC • 2.8A峰值电流 • 最大工作频率100KHz • 兼容STM32 Nucleo/ ST Morpho接口 • 支持三电阻/单电阻电流采样 • 支持Hall/Encoder
X-NUCLEO-IHM08M1
• 供电电压:10V—48VDC • 最大30 A峰值电流 • 最大工作频率100KHz • 兼容STM32 Nucleo/ ST Morpho接口 • 支持三电阻/单电阻电流采样 • 支持Hall/Encoder
STM32_PMSM_FOC_SDK_V3.2_讲座9
CMCP_UI
LCD Manager
CFCP
CCOM
CLCD_UI
MCI C MCT C UIcfgC
STM Manager
LCD_Init
CI2C_COM
CDAC_UI
DAC Manager
MCI N MCT N UIcfgN MC Object
CDACT_UI
CSPI_COM DAC Manager
162
User Interface
CUI
User
LCD Manager
Serial communication
DAC
MC Application
STM32 PMSM FOC SDK v3.2
12/06/2014
User interface architecture
• DAC manager (CDAC_UI) is used to manage the DAC outputs.
Private member - List of Drives - Drive Num - Selected drive MotorControl Protocol
164
CUI
Frame Communication Protocol
PhysicalLayerCommunication
MCI B MCT B UIcf gB
161
User Interface
CUI
User
LCD Manager
Serial communication
DAC
MC Application
STM32 PMSM FOC SDK v3.2
12/06/2014
User interface architecture
STM32F103_永磁同步电机_PMSM_FOC软件库_用户手册_中文版
目录 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软件库培训
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)
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
其中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的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_讲座1
• Energy efficient, quite, motor drive • Full customization through GUI
效率、静音、同步控制 突出的动态性能、运动范围
• Outstanding dynamic performances, speed range
宽广的硬件支持,可识别所以应用,家电、工厂自动化 • Wide range of hardware support, system configurations, to address applications from Home Appliances to Factory Automation
6
KIT:软件库、硬件支持、PC软件的配置软件 三相同步马达
• for 3-phase Permanent Magnet Synchronous Motors
• It allows:
• Single / Dual simultaneous vector control (FOC)
• Sensored/sensorless
• Practical hints in motor tuning
• • • • Draw an arbitrary sensorless start-up waveform Open loop feature Faults generation Motor start-up
• Demo, Q&A
STM32 PMSDK v3.2
12/06/2014
PMSM FOC - Basics
7
Permanent Magnet Synchronous Motors: Stator: three phase windings: symmetrical, displaced 120° electrical, Y / ∆ connected Rotor: Surface mounted permanent magnets Internal permanent magnets (anisotropic magnetic structure) Sinusoidal 正弦驱动 六步换向法驱动 BLDC 转子磁链和定子磁链垂直时产生的电磁
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
b
S
θr
q
a
vabcs = rs iabcs +
Lls + Lms
dλabcs dt
1 − Lms 2 Lls + Lms 1 − Lms 2
N
c
Φm
d
λabc = − Lms
s
1 2 1 − Lms 2
1 − Lms sin θ r 2 1 2 ⎞ ⎛ − Lms iabcs + sin ⎜θ r − π ⎟ Φ m 2 3 ⎠ ⎝ 2 ⎞ ⎛ Lls + Lms sin ⎜θ r + π ⎟ 3 ⎠ ⎝
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08 3
转子磁场定向控制 (FOC): 概述
数学理论应用于三相马达磁链及转矩的解耦控制 定子电流被分解成:
直轴电流Ids:用于产生磁场,与转子的磁场叠加 Ids 交轴电流Iqs:用于控制转矩(其作用等同于直流电机的电枢电 流)。
Mar ‘08
17
FOC 实现
函数: FOC_Model (MC_FOC_DRIVE.c)
Feature is executed after Current Conversions (SAMPLING FREQ) vq* = PI regulator (iq, iq ref)
(ia, ib) = Get Phase Currents
MCU Application Great China
Mar ‘08
6
坐标变换理论(3/3)
Clarke变换应用于定子电流:ias,ibs,ics:
Iα
iα = ias iβ = − ias + 2ibs 3
Park变换应用于定子电流:iα,iβ:
iqs = iα cos θ r − iβ sin θ r ids = ia sin θ r + iβ cos θ r
基于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) 放射状内埋式
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 |
r1 = S16_MAX r2 = MMI ⋅ S16_MAX
End
基于STM32的 PMSM FOC软件库培训
转子的速SM FOC软件库培训
MCU Application Great China
Mar ‘08 1
直流无刷马达介绍
两种直流无刷马达
PMSM:永磁同步马达 BLDC:直流无刷马达 相似性 同步转矩; 转子为永磁体; AC定子电流 差异性 PMSM的反电动势为正弦波,而BLDC的为梯形波; BLDC的电感较低; PMSM需要正弦的定子电流来产生稳定的转矩,而 BLDC的定子电流为梯形波
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
13
深入:弱磁控制 1/3
很多应用需要使马达在额定转速以上运行:这可以通过弱磁控制的 方法来实现。 额定转速是指马达能始终输出最高转矩的最高转速 可通过控制直轴电流id来降低磁通量,当然,代价是其同样降低了交 轴电流iq,最终输出转矩也降低。参见转矩方程:
Te =
3 p Φ m iq s 2
(
)
而且,如果需要在弱磁控制区域运行,逆变器必须有刹车电阻或再 生发电能力(昂贵的4象限AC-DC,..)
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
14
深入:弱磁控制 2/3
“转矩及磁链控制器” (FOC速度控制) 实时地提供:目标交轴电流 iq ( 通 过 一 个 PID 调 节 器 实 现 ) 及 目 标 直 轴 电 流 id ( 通 过 查 MC_PMSM_Motor_param.h中的数据表实现),以此来逼近目标 转速。 该头文件由电子表格产生,在该表格中,需要填写如下参数: 逆变器交流输入电压; Rs,马达绕组电阻; Ls,马达绕组电感; Ke,马达反电动势常数; p, 极对数; In, 马达额定电流(< 逆变器额定电流); MMI (它是PWM频率的函数).
(
)
(
)
3 Te = p Φ m iq s 2
Mar ‘08 9
(
)
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
SM-PMSM FOC 3/3
FOC 驱动 SM-PMSM 马达模型
iq s * id s * = 0
i abc s
e-jθr
Synchronous Frame CR-PWM
vαβ
SVPWM 计算
ids* + -
iqs ids + ωr
iαβ
CLARKE
iabc s
电流读取
转子 速度 /位置 反馈 MCU Application Great China
ωr*
基于STM32的 PMSM FOC软件库培训
Mar ‘08
12
深入: circle limitation
从前面的分析可知: vqs与vds是由2个PID调节器单独计算的,因此 需要正确计算电压矢量V,使之输入到SVPWM模块 最大的电压幅值为:S16_MAX (即:32767),若使用3电阻法读 取电流, 它是PWM频率的函数(详见软件库中的MMI表)
Mar ‘08 10
基于STM32的 PMSM FOC软件库培训
FOC 转矩控制
AC Mains 逆变器
3 phase inverter
~
PMSM Motor
~
iqs* ids*
+
vabc + PID iqs ids PID vqs vds PARK反变 换& circle limitation θr el PARK θr el 转子 速度 /位置 反馈 iαβ CLARKE iabc s vαβ SVPWM 计算
iq s
ejθr
id s
3 p Φmiqs 2
(
)
Te
+
-
TL
Rotor position feedback is required!
1 s⋅ J
ωr θ r el
p s
θ r el
3 Te = p Φ m iq s 2
(
)
FOC 小结: 把定子电流分解为与转子磁链同相的直轴分量及 正交的交轴分量
MCU Application Great China
θ =
∫
t
0
ω ( t ) dt + θ ( 0 )
3个变换方程用于PMSM矢量控制
Clarke: ω=0, θ(0)=0 θ=0; Park: ω=ωr, θ(0)=θr(0) θ=θr; 反Park: ω=-ωr , θ(0)= θr(0) θ=-θr;
基于STM32的 PMSM FOC软件库培训
2π ⎞ 2π ⎞⎤ ⎛ ⎛ cos⎜θ − ⎟ cos⎜θ + ⎟ 3 ⎠ 3 ⎠⎥⎛ f ⎞ ⎝ ⎝ ⎥ ax 2π ⎞ 2π ⎞ ⎥⎜ ⎟ ⎛ ⎛ sin ⎜θ − ⎟ ⎜ f bx ⎟ ⎟ sin ⎜θ + 3 ⎠ 3 ⎠ ⎥⎜ ⎟ ⎝ ⎝ ⎥⎝ f cx ⎠ 1 1 ⎥ 2 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
Vα
SM-PMSM FOC 1/3
Read Target Speed
Choose id ref , iq sat
(MC_PMSM_Motorparam.h)
Read Measured Speed
PID speed regulator
End
iq temp
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
益处
马达转速可对负载的变化做出精确而快速的反应 效率优化 可进行位置控制 (通过瞬时转矩控制)
基于STM32的 PMSM FOC软件库培训
MCU Application Great China
Mar ‘08
4
坐标变换理论 (1/3)
坐标变换理论可以降低马达方程的复杂性,利用坐标变换把 定子及转子变量变换到一个旋转坐标系中,该坐标系的转速 为角速度ω。 假设 fax, fbx, fcx 为三相瞬时变量,位于相移120度的a,b,c 坐标上,fqx, fdx, f0x 为其变换变量,位于正交坐标d,q上:
基于STM32的 PMSM FOC软件库 培训