1、STM32 马达控制软件介绍 及开发套件的使用,2009年STM32 全国研讨会,北京、深圳、上海、台北、青岛、重庆、南京、哈尔滨、武汉、福州、西安,2,演讲内容,STM32面向马达控制的特性 STM32马达控制软件库的介绍 FOC简介 软件库特点 软件库结构 软件库性能 马达控制套件的使用 套件特点 套件功能 怎样基于STM32马达控制套件及软件库实现PMSM马达的无传感器模式控制 使用户能在很短时间内就能运转自己的马达,3,STM32面向马达控制的特性,功能强劲的内核 ARM Cortex-M3 1.25DMIPS/MHz,哈弗结构,与ARM7相比性能提高30% 单周期乘法、硬件除法及乘累
2、加指令 代码密度 Thumb-2指令集,与ARM7相比代码密度提高30% NVIC:快速的中断响应 面向马达控制的丰富的外设,16位高级定时器 6通道三相互补PWM的产生,带硬件死区,每个通道的极性独立设定 时钟为72MHz(13.9ns精度) 紧急故障输入端口,可异步地关断PWM的输出 可触发ADC的事件 16位通用定时器 霍尔、编码器硬件接口,ADC 双ADC或三ADC模块 12 BIT精度,1MSps,每个通道的采样时间可单独编程 可由外部或定时器事件触发 DMA 通道分组:注入转换组及常规转换组 SCAN模式 多样化的双ADC模式,4,软件库FOC简介,FOC(Field Orient
3、ed Control),采用数学方法实现三相马达的力矩和励磁的解耦控制 定子电流被分解成: 励磁电流Id:产生励磁 交轴电流Iq:控制电磁力矩,类似于DC马达的电枢电流 FOC算法优点: 当负载变化时,速度响应快速而精确 马达的瞬时效率得到优化 能实现位置控制(通过瞬时力矩控制),5,软件库 特点(1),针对无刷马达控制的方案 有传感器/无传感器方案的实现 交流感应马达(带速度反馈) PMSM马达(无传感器方案的实现) 特点 GUI用户界面:产生软件库的头文件 用户调试界面(通过LCD及JOYSTICK):可实时地调试PID及观测器参数 DAC功能:可实时地跟踪某些重要的变量 以循序渐进的方式
4、指导用户如何使用软件库来开发自己的项目 详尽的用户手册 免费的软件源代码,6,软件库特点(2),特点(续) 优化的PMSM马达控制 不同的转子位置反馈方法的实现 Sensor模式:HALL(120度/60度)/ ENCODER Sensorless模式: Luenberger观测器及PLL算法 马达相电流采样: 三电阻法 单电阻法:改善硬件成本 电流传感器法 MTPA I-PMSM马达的优化控制 改进的弱磁控制算法:无须知道马达的精确参数 电流前馈:可实现对DC BUS纹波的补偿,7,软件库 特点(3):GUI界面,通过直观的界面配置软件库 输入马达及控制参数,可直接生成软件库的头文件,8,软
5、件库特点(4):实时调试界面,可实时地调节力矩环,励磁环及速度环PID的参数 可实时地调节观测器的增益参数(无传感器模式下) 可实时地改变目标速度(速度控制模式下)或目标力矩及励磁(力矩控制模式下) 进入弱磁控制区的上限电压值的选择 DC BUS电压及功率板温度监控 DAC输出变量的选择,STM32 Motor Control PMSM FOC ver 1.0 Sensorless Demo Speed control mode Target Measured 02500 (rpm) 00000 Move Change,9,STM32 Motor Control PMSM FOC ver 1.
6、0 Singal on PB0 Iqref Singal on PB1 Ia Move Change,软件库特点(5):DAC功能,通过TIM3的两个PWM通道实现 可通过LCD菜单实时地检测两个软件变量 软件脱机运行,避免使用仿真器运行时引起的驱动电路烧坏 可实时检测马达相电流,速度,转子位置等 可在头文件中通过条件编译行禁止,10,软件库特点(6):MTPA,MTPAI-PMSM(永磁体内嵌式马达:Ld Lq)的优化控制 控制 力矩/电流比 最大化 提高效率,11,软件库特点(7):循序渐进的开发,通过头文件STM32F10X_MCconf.h实现 一步一步地指导 用户进行项目的 开发 通
7、过条件编译避 免包含不需要的 代码,/* Current sensing by ICS (Isolated current sensors) */ /#define ICS_SENSORS /* Current sensing by Three Shunt resistors */ #define THREE_SHUNT /* Position sensing by Incremental encoder */ /#define ENCODER /* Speed sensing by Hall sensors */ /#define HALL_SENSORS /* No speed senso
8、rs */ /#define NO_SPEED_SENSORS /#define VIEW_HALL_FEEDBACK /#define VIEW_ENCODER_FEEDBACK /* PI + Differential term for Id & Iq regulation */ /#define Id_Iq_DIFFERENTIAL_TERM_ENABLED /* PI + Differential term for speed regulation */ /#define SPEED_DIFFERENTIAL_TERM_ENABLED /* PIDs Parameter regulat
9、ion software */ /#define FLUX_TORQUE_PIDs_TUNING /#define OBSERVER_GAIN_TUNING #define DAC_FUNCTIONALITY/#define IPMSM_MTPA #define FLUX_WEAKENING /#define FEED_FORWARD_CURRENT_REGULATION,12,软件库FOC软件框图,13,软件库性能FOC算法执行时间,基于CortexTM-M3强劲的计算能力,sensorless模式下FOC控制环的执行时间如下(与第三方编译器有关) 三电阻电流采样方式:从20.2s 到 21
10、.6s 单电阻电流采样方式:从23.9s 到 26s,CPU load 10kHz sampling time 30%,CPU load 10kHz sampling time 25%,1-SHUNT CURRENT READING,14,软件库性能代码长度,由于Thumb2指令集具有较好的代码密度, PMSM FOC 软件库的总的代码长度(sensorless 模式,三电阻电流采样)为: 23.3kB 到 24.7kB(与第三方的编译器有关) 排除LCD及Joystick管理代码,纯的马达驱动的代码长度为:(矢量控制模块的优化选项为速度优化),12.5Kb,15,马达控制套件(1)特点,高压
11、驱动板 + 低压控制板整合成一块主板,价格远低于第一代套件 更高的功率容量(与第一代套件相比) 直观的硬件平台,使用户无需设计硬件即可进行马达驱动性能的评估。 给用户设计硬件电路提供参考,仿真器 (不包含在套件中),隔离板,主板,16,马达控制套件(2):功能,兼容STM32 FOC 软件库 软件库可以直接在该套件上运行 通过跳线设置,可满足软件的各种编译模式 单电阻和三电阻电流取样选择功能 编码器/ HALL输入检测功能,Sensorless模式 满足大功率应用要求,如变频空调压缩机及工业大功率电机驱动的开发调试 20A/30A IGBT 三相半桥驱动模块 主动PFC控制功能 兼容部分PFC
12、、全部PFC硬件拓扑结构,包括: AC输入电压波形检出(正弦波) 电感电流波形检出(正弦波) DC BUS 电压检出 PFC硬件保护电路:IGBT过流硬件自关断, IGBT过流保护信号输出 可提升DC BUS 电压,抑制输入电流谐波,17,马达控制套件的使用(3):功能,一块控制板集成了EVB及功率驱动的所有功能,摒弃了原开发套件(EVB + Power Stage)的模式,且驱动功率更高 JTAG仿真隔离板 能耗刹车控制电路 LCD及Joystick用户界面:可结合FOC软件库调试马达 RS232通信接口(光耦隔离) CAN通信接口 上电延时功能:抑制上电浪涌电流 可驱动低压马达(12V/2
13、4V)及高压马达(交流220V),18,基于马达控制套件实现PMSM马达的控制(1),使用GUI产生软件库参数头文件 使马达运行在纯传感器模式 HALL或ENCODER 选择马达电流采样方式 马达电流采样电路参数设置 Shunt:0.015欧 放大倍数:3.9 输入马达参数 使能电流环调节 使用GUI产生参数头文件,替代软件库中的原文件,编译软件库,通过JTAG仿真器把程序烧入MCU 在套件上运行,此时马达短时间地正反转,运行在速度开环模式下,用DAC功能监测阶跃响应,实时调节电流PID参数; 把电流PID参数结果写入软件,禁止电流环调节,使马达运行在速度闭环模式下,调节速度PID参数,19,
14、基于马达控制套件实现PMSM马达的控制(2),使马达运行在纯传感器模式,且使能观测器: 选择OBSERVER_GAIN_TUNING: 电流和速度环仍使用由传感器反馈的转子位置角信号, 但此时观测器同时运行; 使用DAC功能实时地调节观测器及PLL增益参数( K1,K2,F1,F2,PLL_KP_GAIN ,PLL_KI_GAIN ):观测器增益参数对反电动势观测起作用,而PLL增益参数(一般其缺省值就满足要求了)对位置角重构起作用; 一旦这6个参数确定,把它们写入头文件 MC_State_Observer_param.h,20,基于马达控制套件实现PMSM马达的控制(3),使马达运行在无传感
15、器模式,但仍使能传感器反馈处理: 选择NO_SPEED_SENSORS及VIEW_HALL_FEEDBACK或VIEW_ENCODER_FEEDBACK之一,电流和速度环使用由观测器反馈的转子位置角信号。传感器反馈的信号仍处理,使其可与观测器反馈的位置角信号进行比较; 填写MC_State_Observer_param.h中剩余的参数,且第一次设置统计参数; 注意: 如要达到较高的速度精度,可能需要针对不同的速度值设置不同的速度PID参数,且需要进一步实时地调节观测器,PLL及速度PID参数。,21,基于马达控制套件实现PMSM马达的控制(4),马达运行在无传感器模式: 注释掉VIEW_HALL_FEEDBACK 或VIEW_ENCODER_FEEDBACK;注释掉OBSERVER_GAIN_TUNING; 如果DAC功能不再需要,注释掉DAC_FUNCTIONALITY以减小代码长度,谢谢,2009年ST MCU巡回演讲,