1、 UM0492 用户手册 STM32F103xx 永磁同步电机磁场定向控制 (PMSM FOC)软件库V2.0 简体中文版 *本手册由优易特电子公司根据ST公司的UM0492文档,组织翻译而成,仅为方便用户学习使用,如有错误,请以英文原稿为准。 *优易特电子技术支持邮箱:uetu-UM0492 用户手册 STM32F103xx 永磁同步电机磁场定向控制(PMSM FOC)软件库V2.0 简 介 本用户手册介绍了永磁同步电机(PMSM)FOC软件库,STM32F103xx微控制器就是针对磁场定向控制(FOC)3相永磁电机固件库开发的。 这些32位,ARM的Cortex- M3的芯ST微控制器(S
2、TM32F103xx)附带一套外围设备,使之适用于永磁交流同步电机和交流异步电机磁场定向控制。特别是,本手册介绍了STM32F103xx软件库发展到可以控制外置型或嵌入型或在扭矩和速度两个控制模式下控制正弦波驱动永磁电机。这些电机可能配备一编码器,具有三个霍尔传感器或者他们可能无传感器。在UM0483用户手册中介绍了具有编码器或测速发电机的交流感应电机的控制。 永磁同步电机磁场定向控制库是由几个C语言的模块构成,并列装IAR EWARM 5.20,Keil公司的RealView MDK 3.22a和Green Hills 5.03工作区。它是用来同时快速评估MCU和可用的工具。此外,当和STM
3、32F103xx电机控制入门套件(STM3210B- MCKIT)及永磁电机一起使用时,可以让电机在很短的时间运转起来。它通过提供立即可用功能,也省去了FOC发展的耗时和速度调节的需要,让用户专注于应用层。而且,因为有了转子位置重构无传感器算法,它可能不需要任何速度传感器。 使用这个库的一个先决条件是要懂得C语言程序设计的基础知识,永磁电机驱动器和功率逆变器的硬件的基本知识。需要定制现有模块和添加一个新型的完整应用开发时才需要深入了解STM32F103xx功能。 图1显示了固件结构图。它广泛使用STM32F103xx标准库,但当需要优化执行速度和代码大小时它也直接作用于硬件设备的外围设备。 图
4、1 固件结构图 目录 1 工具7 1.1 工作环境7 1.2 软件工具7 1.3 源代码库8 1.3.1 更新8 1.3.2 文件结构.8 1.4 自定义STM32F103xx系列工作区.8 2 无传感器FOC的永磁电机介绍.10 2.1 永磁同步电机磁场定向控制驱动器简介.10 2.1.1 永磁电机结构.11 2.1.2 永磁同步电机基本方程.12 2.1.3 SM-PMSM磁场定向控制(FOC)13 2.1.4 IPMSM的最大转矩电流比(MTPA)的控制14 2.1.5 前馈电流调节.16 2.2 无传感器的转子位置/速度反馈简介.17 2.3 弱磁控制简介18 3 运行演示程序.20
5、3.1 转矩控制模式20 3.2 速度控制模式22 3.3 电流和速度调节器的调整.23 3.4 弱磁PI控制器的调节.24 3.5 观测器和PLL增益调节.25 3.6 DAC的功能.26 3.7 电源反馈(Power stage feedbacks).26 3.8 故障信息27 3.8.1 过流27 3.8.2 过热28 3.8.3 总线过压.28 3.8.4 总线欠压.28 3.8.5 启动失败.28 3.8.6 错误的速度反馈.28 3.9 在单分流拓扑结构和使用MB459B电路板的系统设置.29 3.10 使用ICS时的系统设置.29 3.10.1 PHASE_A_ADC_CHANN
6、EL和PHASE_B_ADC_CHANNEL的选择30 3.11 使用编码器时的系统设置.30 3.12 使用霍尔传感器时的系统设置.32 3.13 先进无传感器系统开发.33 3.14 使用制动电阻时的系统设置.34 3.14.1 如何对制动电阻运行配置FOC软件库.35 3.14.2 如何对制动电阻运行修改MB459板.35 3.15 调试工具的注意事项.36 4 库的入门.37 4.1 库的配置文件:stm32f10x_MCconf.h.37 4.2 驱动控制参数:MC_Control_Param.h.40 4.3 增量编码器参数: MC_encoder_param.h.43 4.4 霍
7、尔传感器参数: MC_hall_prm.h.44 4.5 状态观测器参数: MC_State_Observer_param.h.45 4.5.1 状态观测器参数.46 4.5.2 启动参数.47 4.5.3 统计参数.48 4.6 永磁同步电机(PMSM)参数:MC_PMSM_motor_param.h.49 4.6.1 基本电机参数.49 4.6.2 无传感磁场定向控制(FOC)电机参数.50 4.6.3 弱磁运行的额外参数.50 4.6.4 IPMSM驱动优化(MTPA)的额外参数51 4.6.5 用于前馈、高性能电流控制的额外参数.51 5 函数库.53 5.1 三相电阻拓扑电流采集和空
8、间矢量PWM产生:stm32f10x_svpwm_3 shunt 模块53 5.1.1 可用函数列表.53 5.1.2 空间矢量脉冲宽度调制(SVPWM)运行.56 5.1.3 三相分流拓扑电流采集和通用A/D转换.58 5.1.4 三相分流电阻拓扑结构中调节延时参数和定子电流采集.59 5.2 单相电阻拓扑电流读取和空间矢量 PWM 产生: stm32f10x_svpwm_1shunt module63 5.2.1 可用函数列表.63 5.2.2 单相分流拓扑电流采集.67 5.2.3 定义干扰参数和边界区域.69 5.2.4 性能71 5.3 隔离电流传感器读取和空间矢量的PWM产生:st
9、m32f10x_svpwm_ics module.72 5.3.1 可用的函数列表和中断服务程序.72 5.3.2 隔离电流传感器拓扑和通用A/D转换的整合中电流采集.74 5.4 PMSM (SM-PMSM / IPMSM) 磁场定向控制:MC_FOC_Drive and MC_FOC_Methods 模块75 5.4.1 可用C函数列表.76 5.5 参考坐标转换: MC_Clarke_Park 模块.82 5.5.1 可用C函数列表.83 5.5.2 详解参考坐标系转换.85 5.5.3 循环限制.87 5.6 编码器反馈处理:stm32f10x_encoder模块88 5.6.1 可用
10、函数列表和中断服务程序.88 5.7 霍尔传感器反馈处理:stm32f10x_hall模式91 5.7.1 可用函数列表.91 5.7.2 速度测量实施.93 5.7.3电角度推算方法96 5.8无传感器速度/位置检测:MC_State_Observe和MC_State_Observer_Interface模块96 5.8.1 可用C函数列表.96 5.9 PID调节器:MC_PID_regulators模块.100 5.9.1 可用函数列表.101 5.9.2 PID调节器理论背景101 5.9.3 调节器采样时间设定.102 5.9.4 电机频率与速度定义循环Ki,Kp,Kd的调节.103
11、 5.10 通用目的时间基准:stm32f10x_Timebase模块105 5.10.1 可用函数列表与中断服务程序.105 5.11 功率级核查: MC_MotorControl_Layer模块107 5.11.1 函数列表.107 5.12 主中断服务程序:stm32f10x_it module.110 5.12.1 非空中断服务程序列表.110 附录A 附加信息 .112 A.1 调节运行FOC算法相关负载.112 A.2 基于单相或三相分流电阻配置的PWM频率选择更新重复频率.113 A.3 固定点数字代表113 A.4 磁通和转矩电流PI增益优先决策.114 A.5 调节电流调节器
12、116 A.6 静态观测增益优先策略.118 A.7 速度格式118 A.8 MMI(最大调制指数):自动计算.119 A.9 参考文献121 修订史122 124 永磁同步电机磁场定向控制软件库2.0版的特征(CPU运行在72MHz) l 支持速度反馈: - 传感器 - 间隔60或120 配置霍尔传感器 - 正交增量编码器 l 电流取样方法: - 两个相互隔离的电流传感器(ICS) - 单一,通用直流环节分流电阻 - 在三个逆变器底部间隔处放置三个分流电阻 l 优化的永磁同步电动机和凸极永磁同步电动机驱动器 l 磁场减弱 l 前馈,高性能的电流调节 l 用于跟踪最重要的软件变量的DAC功能
13、 l 制动电阻的管理 l 转速调节控制模式 l 转矩调节控制模式 l 16位的空间矢量 - PWM频率易于调整 - 中心型PWM模式 - 17.6KH 时的11位分辨率 l “先验“所有必要参数的规则,对固件通用化是必须的 l 在3分流/无传感器配置(10KHz FOC的采样率)下CPU负载低于22 l 在3分流/无传感器情况下为LCD /操纵杆的管理,配置代码大小约为12.5Kbytes外加11.5Kbytes 1 工具 为了使用永磁同步电机磁场定向控制软件库,开发一个关于永磁同步电机的应用程序,您必须建立一个完整的开发环境,如下文所述。同时,您需要上运行Windows XP的PC机。 1.
14、1 工作环境 当使用使用的主要的硬件板时,包括STM3210B- MCKIT入门套件(一个完整的逆变器和控制电路板),永磁同步电机磁场定向控制软件库完全的生效。该STM3210B- MCKIT入门套件为新建工程和使用软件库提供了一个理想工具包。因此,为了快速使用和评价用户手册介绍的软件,建议首先获取入门工具包。 该库由IAR EWARM v. 5.20, KEIL RVMDK v. 3.22和Green Hills MULTI v. 5.0.3工作区提供。使用 IAR 进行详细验证,同时可以使用其他工具链进行简单的功能验证。您可以针对任何其他工具链手动设置设置您的工作空间。 1.2 软件工具
15、一个完整的软件包包括: l 第三方集成开发环境(IDE) l 一个第三方C编译器 l JTAG调试和编程接口 利用微控制器的JTAG界面,使用大多数的工具链就能进入在线调试会话框。每个工具链都可以由一个连接PC机和目标应用程序的界面来提供。 图2 用于调试和编程的JTAG界面 JTAG接口也可用于在线 MCU的编程。其他编程程序可以从第三方获得。 1.3 源代码库 1.3.1 更新 在新项目开始之前,强烈建议检查是否有最新的版本库,然后要随时的检查所有版本注释,以便于了解到对您的项目有用的新特征。在ST网站上注册后可以自动获取更新。 1.3.2 文件结构 永磁同步电机(PMSM)磁场定向控制(
16、FOC)软件库包含了前面提到的工具链的工作区间。点开文件,包含的库结构就会显现出来,如图3所示。 图3 文件结构 STM32 FOC固件库V2.0文件夹包含3相(带传感器或无传感器)永磁同步电机(PMSM)和带传感器的交流感应电机固件库。 该STM32F10xFWLIB夹包含了STM32F103xx标准库。 该inc文件夹包含头文件,src文件夹包含了控制电机的源文件库。 最后,EWARM,RVMDK和MULTI的每个文件夹包含各自的工具链结构文件,外加上一个 lib 文件夹,lib 文件夹包含两个编译的目标文件模块:MC_State_Observer和MC_FOC_Methods。 根据要求
17、,从ST来的完整的源文件完全免费。不要犹豫联系离你最近的ST销售办事处或支持小组。 1.4 自定义STM32F103xx系列工作区 永磁同步电机(PMSM)磁场定向控制(FOC)软件库是针对 STM32F103VB6的。但是,它应用在STM32F103xx系列产品上同样成功。 根据可用的功能(有些 I/ O 端口是不出现低电平),在使用不同类型的STM32F103xx系列时,可能需要对库进行一些修改。详情参阅单片机数据表。 另外,根据内存大小,工作区可能要进行配置,以适合您的STM32F103xx MCU系列。 2 无传感器FOC的永磁电机介绍 2.1 永磁同步电机磁场定向控制驱动器简介 该软
18、件库是为了实现由完善的定向控制(FOC)策略提供飞高动态性能交流永磁同步电动机(PMSM)控制而设计的。 使用这种方法,可以说,通过控制定子电流精确变换而来的 iqs和ids两种电流,调节电磁扭矩(Te),并在一定程度上达到弱磁能力就成为可能。 这类似于一个状态良好的直流电机,其中的角色相当于电枢电流和励磁电流。 因此,可以说,FOC包括定子电流相位的控制和定向以及与转子磁通量正交。本定义明确指明测量定子电流和转子角度的必要性。 基于该算法结构(和库函数)的基本信息,如图4所示。 l 空间矢量 PWM 模块(CALC SVPWM),实现了先 进的降低电流谐波调制方法,从而优化了直流母线的利用
19、l 使用低价分流电阻或市场有售的隔离电流霍尔传感器(ICS),电流读取模块可以保证系统正确测量定子电流 l 转子的速度/位置反馈模块可以让系统通过操纵霍尔传感器或增量编码器的信号,从而得到正确的转子角速度或位置。此外,该固件库提供了无传感器检测转子速度/位置,如第2.2节所述。 l PID控制器块实现比例,积分和微分反馈控制(电流调节) l Clarke, Park, Reverse Park和Circle限制模块实现FOC要求的精确转换。 图4 FOC算法的基本结构,转矩控制 图5 速度控制回路 可以用电流iqs 和ids控制电磁转矩和磁通量。 另一方面,图5显示了速度控制回路和电机控制库提
20、供的完整的具体特征设置。参阅第2.1.4节,第2.3节和第2.1.5节。第2.1.4节讲解了适用于永磁同步电动机(IPMSM)的MTPA(最大转矩/安培)优化策略。第2.3节介绍了弱磁控制,第2.1.5说明了如何利用前馈电流调节。 这些功能都可以根据电机的使用和用户需要,通过选项进行设置(见4.1节)。 2.1.1 永磁电机结构 主要有两种不同的永磁电机结构可供选择: a) 如图6(a)所示,磁铁粘在转子表面,这就是为什么它被称为表贴式永磁同步电机(SM-PMSM) b) 如图6(b)和(C)所示,磁铁被嵌在转子结构。这种结构被称为嵌入式永磁同步电机(IPMSM) 图6 永磁电机的不同结构 表
21、贴式永磁同步电机(SM - PMSM)本身具有各向同性的结构,即直接和正交电感Ld为和Lq是相同的。通常情况下,其机械结构产生更广泛的气隙,这反过来又意味着弱磁能力更低。 另一方面,IPMSMs显示出各向异性结构(典型的,Ld Lq),图 b )称为嵌入式永磁电机各向异性稍弱,图c)称为埋入式或径向永磁电机,各向异性很强;这一特殊的磁场结构可以用来(如2.1.4节阐述的一样)产生更大的电磁转矩。它们都具有优良的机械结构,通常气隙很狭窄,从而弱磁能力更好。 这固件库适与表贴式永磁同步电机(SM- PMSM)和嵌入式永磁同步电机(IPMSM)连接已经优化。 2.1.2 永磁同步电机基本方程 图7
22、设定的永磁同步电动机的参考框架 参考图7,结合永磁同步电动机的电压和磁链的方程(SMPMSM或IPMSM),一般表示为: l rS为定子相绕组电阻 l LIS是定子相绕组自感 l Lms是定子三相绕组互感;就永磁同步电动机(IPMSM)本身而言,本身磁场与互感磁场都有二次谐波分量 L2s, 当 k=01 时,除了恒量 Lms 其它与)3/22cos( pq + kr 成比例。 mrrrabcmsIsmsmsmsmsIsmsmsmsmsIsabcabcabcsabc)32sin()32sin(siniLL2L2L2LLL2L2L2LLLdtdirvsssss+=+=l rq 是转子的电角度 l
23、mf 是永磁产生的磁通链 这些方程的复杂性是很明显的,因为三个定子磁链相互耦合,更甚者,因为他们都依赖于转子的位置,而转子的位置时时变化的,也是负载转矩和电磁的函数。 参照结构理论改变定子变量abc(即可以看作沿着间隔120的轴线)成为qd分量,直接沿着间隔90的轴,与转子同步旋转,反之亦然(更多详情参见5.5节),简化了永磁电机方程。在d“径直”轴与转子磁通对齐,而 q “正交”轴在位置滚动方向成90度方向。 电机的电压和磁通量方程简化为: +=+=+=mdsdsdsqsqsqsqsrdsdssdsdsrqsqssqsiLiLdtdirvdtdirv对于表贴式型永磁同步电机(SM-PMSM)
24、,在 d-和q-轴线的电感参数是相同的(参照 2.1.1节),那么就有: 23LLLLL msIsdsqss +=另一方面,嵌入内永磁同步电机(IPMSM)具有凸出磁场结构,所以它们的电感参数可写为: 2)L3(LLL2)L3(LLL2smsIsds2smsIsqs+=+= 2.1.3 SM-PMSM磁场定向控制(FOC) 下面的公式描述了一个SM-PMSM电磁转矩: )i(23T)iiLiii(L23)ii(23Tqsmedsqssqsmqsdssdsqsqsdse=+=最后一个方程表明,这个乘积分量 iqs与转矩呈线性关系,而电流分量 ids对转矩没有影响( 如上所述,这些方程是对SM P
25、MSMs适用)。 因此,如果Is是电动机的额定电流,那么它的最大扭矩是在iqs = Is和ids = 0(事实上 22 dsqsS iiI += )时产生的。在任何情况下使用SM-PMSM,都可以在ids = 0时得到最优化的转矩/电比,这一点是很明确的。因此,这种选择对应于各向同性电机的MTPA(最大扭矩电流比)控制。在4.1节可以找到如何设置库的配置和执行这一方法。 另一方面,磁通量可以通过调节直轴电流 ids进行削弱;这样扩大了速度变化范围,但会降低最大的交轴电流 iqs,并因而降低提供给负载的电磁转矩(有关弱磁策略的详情见2.3节)。 总之,通过调节电机电流分量iqs和ids,FOC方
26、法可以调节PMSM转矩和磁通;电流调节是靠通常所说的“同步帧的CR - PWM“的方式实现。 2.1.4 IPMSM的最大转矩电流比(MTPA)的控制 嵌入式永磁同步电动机(IPMSM)的电磁转矩公式为: )iiLL23i(23T)iiLiii(L23)ii(23Tdsqsqsdsqsmedsqsqsqsmqsdsdsdsqsqsdse+=+=在这个表达式的第一项是PM的励磁转矩。第二项是所谓的磁阻转矩,由于内在凸磁结构,它代表一个额外的组成部分。此外,由于通常 Ld Lq,仅当 i ds 0时磁阻转矩和励磁转矩有相同的方向。 考虑到转矩方程,它可以指出,电流iqs和ids都直接影响转矩的产生
27、。 该MTPA(最大扭矩电流比)控制的目的是计算参考电流(iqs , ids),极限与产值与电磁转矩和铜损失有关。(条件: ndsqsS IiiI += 22 ) 因此,给定一组电机参数(磁极对数,垂直和正交电感Ld为和 Lq,磁铁磁链,额定电流), MTPA轨迹可以看作电流 (iqs , ids)的轨迹,从而降低所需的力矩消耗的电流(见图8)。 图8 MTPA轨迹 4.1节介绍如何激活此功能。把电机参数输入到包含在固件库包的电子表格中(该文件的位置是STM32MCKITdesign tools PMSM_MTPA_FEEDFORWARD.xls),就可以预先计算的MTPA轨迹并将计算结果作为
28、8区间线性内插系数,插入到正确的参数头文件中去(详情见第4.6.4)。 图 9 显示了一个实际运行情况。该MTPA方法运行在速度控制回路中。在这种情况下,iq*(PI调节器输出)反馈给MTPA功能, id*则选择进入线性插补轨迹。 图9 MTPA控制 在任何情况下,通过作用直轴电流ids,磁通可以被削弱,扩大速度变化范围。进入此运行区域,MTPA轨迹变成左边(关于弱磁策略的详情见2.3节)。 总之,通过调节分量电流iqs和ids调节电机电流,FOC可以控制PMSM转矩和磁通。然后通过 “同步帧的CR-PWM“的方法就实现了电流调节。 2.1.5 前馈电流调节 前馈功能是由固件库提供的,旨在改进
29、电机驱动器CR-PWM部分的性能(脉冲宽度调制电流调节)。 基本上前馈功能预先计算定子电压Vq*和Vd*命令要求,参考电流iq*和id*,再送入电机中去。这样就会对标准PID电流调节有利(见图10)。 前馈功能工作同在同步参照系的同时,也需要很好的了解机器参数,如绕组的电感Ld和Lq(或使用SM-PMSM时 LS)以及电机恒定电压K。 前馈算法的设计是为了弥补依赖频率的反电动势和永磁电机的交流耦合压降。因此,q轴和d轴的PID电流控制回路成为线性的,就得到高性能的电流控制方法。 计算的定子电压vq* 和vd*是根据当时测量的直流电压进行补偿的,上述方法还对总线电压进行纹波补偿。 图10 前馈电
30、流调节 根据整个系统的一些参数,如直流电容大小,电频率,电机参数等,前馈功能对电机驱动器作用可能很大,或者很小。因此,建议用户仅当在测量有价值的结果时评估系统性能,启用前馈功能。 启动前馈功能见4.1节,4.6节说明了如何在恰当的头文件中插入所需参数(使用STM32MC-KITdesign tools提供的PMSM_MTPA_FEEDFORWARD.xls电子表格),5.4节描阐述了此功能及可用函数类型。 2.2 无传感器的转子位置/速度反馈简介 2.1节已经表明,在永磁同步电机磁场定向控制中转子位置/速度测量有着至关重要的作用。为了测量转子位置/速度,霍尔传感器或编码器广泛应用于控制链中。
31、人们普遍认为无位置传感器关于转子位置/速度反馈的算法非常有用,而且都有各种理由:降低应用总成本,通过冗余性提高可靠性等。 固件库基于状态观测理论,为无传感器检测转子位置/速度反馈提供了完整的解决方案。此算法可用于SM - PM和IPM同步电动机,如参考文献5解释的一样(附录A.9:参考文献)。运行的转子磁通观察器和经典第六评估程序6(附录A.9:参考文献)之间的理论与实践对比已经指出观察器的优势,明显减少对定子电阻的变化和参数变化整体稳固性的依赖。 在控制理论中一个状态观察器就是一个体系,一个提供了评估内部状态的实时系统,并测量其输入和输出值。 在本文例子中,电机的内部状态包括反电动势和相电流
32、,而输入由相电压供给,输出由相电流压供给(见图11)。 直流母线电压测量接收电压命令,并向电机施加相电压。 图11普通无传感器算法模块图 特别是,所观察到的状态通过相电流与实时系统一致性进行对比,其结果通过增益向量(K1,K2)来调整模块。 电机反电动势定义如下: t)sin(ppet)cos(pperrmrrm= 可以看出,其中包含转子电角度。接着,反电动势送到作为PLL的模块,这个模块能够重构转子电角度和速度。 图12是电机在定向控制运行时(顺时针转动)局部截图;黄色的和红色的波形(C1,C2)分别代表观察到的反电动势和,蓝方波(C3)是安装在a轴上的霍尔传感器电池传来的信号,绿色正弦波是
33、电流 ai (C4)。 图12 无传感器的状态观测算法检测的PMSM 反电动势 更多关于如何设置参数使固件适应用户电机的信息见4.5节。 2.3 弱磁控制简介 在很多应用场合下永磁电机负载要比额定负载低,这时弱磁功能使永磁电机运转速度超过额定速度,从而达到扩大运行速度范围的目的。在这里,额定转速是在电机可以提供最大扭矩情况下的最高速度。 控制直轴电流id可以削弱磁通;给定电机额定电流In,例如 22 dqn iiI += ,如果让id0,则最大可用正交电流iq就会降低。类似的在SM-PMSM例子中,最大可传递电磁转矩也下降了,如 2.1.3节展示的一样。另一方面,对于IPM电机来说,单独控制i
34、d会引起MTPA路径偏差(如2.1.4节说明一样)。 现在技术已经达到“闭环“弱磁控制,而且不需要知道电机参数具体值,这样就大大降低了对参数偏差的敏感性(见见附录A.9:参考文献中3-4)。这种方案对IPMSMs和SM-PMSMs都适用。 这种控制循环基于对定子电压进行监控(如图13所示)。 电流调节器输出Vs已经对照门槛值(“电压等级“参数)来进行校核。如果Vs超过限额,调节控制信号ifw*自动进入弱磁区域,ifw*累积起来就是ids*。这可以通过PI调节器(增益可以在实时系统中进行调节,见3.4节)的方式实现,也为了防止调节电流达到饱和值。很明显,设定的电压等级越高(通过保持电流规则),获
35、得的效率也就越高,能实现的最大速度也越大。 如果Vs比所选的门槛电压小,那么ifw就会减小到零,MTPA模块就会重新恢复控制。 弱磁控制器输出电流的ids*必须与ids进行核对比较,以避免电机的退磁。 图13 弱磁运行图 弱磁功能的应用见4.1节,在恰当的头文件中插入所需的参数见4.6节和功能描述及可用函数的类型见5.4节。 3 运行演示程序 3.1 转矩控制模式 图14,图15和图16显示了一些在转矩控制模式下的参数设置LCD菜单。红色突出显示的参数是可以设置的,其值也是可以可通过操纵杆键修改的。 按操作按键向上/向下选择控制模式(图14例子是转矩控制)。一旦电机启动命令已发出(按下JOY或
36、KEY键),这个参数就不能再修改了。当电机停止才能再次修改它。 图14 液晶屏幕上的转矩控制设置 从前面的屏幕上(图 14)可以看出,如果操纵杆移动到右侧,目标电流分量Iq就会突出显示(变成红色)。这时可以向上/下移动操纵杆修改参数。一旦电机启动命令已经发出,测量电流分量Iq可以在运行时改变,同时测得Iq电流分量在测量区域显示出来。 图15 液晶屏幕上的目标Iq设置 从前面的屏幕(图 15)可以看出,如果操纵杆移到右侧,目标电流分量 Id会突出显示(变成红色)。这个参数就可以通过上/下移动操纵杆进行修改。一旦电机启动命令已经发出,目标电流分量Id可以在运行时改变,同时测得Id电流分量在测量区域
37、显示出来。 图16 液晶屏幕上的目标Id设定 通过按下KEY按钮或者操纵杆,电机就会停止运行(电机的主要状态从运行状态切换到停止状态)。 根据速度/位置反馈所利用的结构不同,在转矩控制模式下就会使用不同的电机斜坡上升方法: l 在配置文件 stm32f10x_MCconf.h 中 取 消 了对 ENCODER 和VIEW_ENCODER_FEEDBACK的注释。在这种情况下,转子必须进行相位预置(也称为校准),以便通过正交编码器反馈相对位置信息。只有在测微控制器故障或复位之后首次启动才需进行校准。对此程序更深层次的描述参见4.3节。 转子预定位完成后,如果编码器还未被注释,变量包括目标值iq和
38、id定子电流分量(分别为 hTorque_Reference 和 hFlux_Reference)在MC_Control_Param.h 头 文件中用 PID_TORQUE_REFERENCE 和PID_FLUX_REFERENCE值进行初始化;主状态机从启动切换到运行状态。另一方面,如果取消了对VIEW_ENCODER_FEEDBACK的注释,与无传感器运行有关的斜坡式操作策略在定位结束后就开始运行。 l 在配置文件stm32f10x_MCconf.h中取消了对HALL_SENSORS的注释。在这种例子中不能进行转子预定位,hTorque_Reference 软件由头文件MC_Control
39、_Param.h中定义的PID_TORQUE_REFERENCE进行初始化。该软件中的变量包含转子电角度,转子电角度是根据三个霍尔传感器输出的数值进行的初始化,电机主状态从启动切换到运行状态。 l 在stm32f10x_MCconf.h中取消了对NO_SPEED_SENSORS的注释。就无传感器电机驱动而言,为了使转子运转起来,需要特定的斜坡上升,这样无传感器算法才收敛于转子实际位置。4.5节中会更详细的描述斜坡上升程序。 3.2 速度控制模式 图17和图18是两个LCD显示菜单,显示的是在速度控制模式下设置控制的参数。以红色显示的参数是可以通过操纵杆设置或修改其值的。 从图17所示的菜单屏幕
40、显示来看,在电机停止运转时,可以通过操纵杆上/下移动实现从转矩控制切换到速度控制(反之亦然)。 图 17 速度控制的主要设置 从图18所示菜单画面来看,移动操纵杆到右边,可以选择目标速度(以红色显示的参数)。一旦选定,就可以通过上/下移动操纵杆递增/递减参数。按下操纵杆就可以启动电机。当电机开始运行后,仍然可以修改目标速度。 图 18设定目标速度的液晶屏幕 和转矩控制模式一样,按下操纵杆或按键就可以启动或停止电机。 由于是在速度控制模式下,转矩和磁链参数(目标 Iq 和目标Id)是转矩和磁链控制器的输出,不能直接设置这些参数。但是,PID调节器却可以实时调节,下面将会详细阐述。 根据速度/位置
41、反馈利用的各种配置不同,电机速度控制模块使用了不同的斜坡上升方法: l 在配置文件 stm32f10x_MCconf.h 中未注释掉 ENCODER 或者VIEW_ENCODER_FEEDBACK。正如在前面所述一样,在这种情况下需要对转子进行位相预定(也称为校准)是必要的。详细描述参考4.3节。 转子预定位完成后,如果 ENCODER未被注释,包含目标电流分量Iq和Id(分别是hTorque_Reference和hFlux_Reference)的变量由转矩和磁通控制模块驱动,电机主要状态从启动切换到运行状态。另一方面,如果VIEW_ENCODER_FEEDBACK未被注释掉,与无传感器相关的
42、斜坡式方法相刚在预定位结束后就开始启动。 l 在配置文件stm32f10x_MCconf.h中取消对HALL_SENSORS的注释。那么从启动指令发出时,hTorque_Reference软件变量就由通链和转矩控制器模块驱动。同时包含转子电角度的软件变量也在三个霍尔传感器输出数值的基础上被初始化。最后,电机主状态从启动切换到运行状态。 l 在stm32f10x_MCconf.h中取消对NO_SPEED_SENSORS的注释。在无传感器电机驱动情况下,一个特定的斜坡上升是必要的,以便于转子启动,保证无传感器算法收敛到实际转子位置。关于斜坡上升程序详细描述见4.5节。 3.3 电流和速度调节器的调
43、整 正 如 在 2.1 节 揭露,在 stm32f10x_MCconf.h 中 取 消 对DIFFERENTIAL_TERM_ENABLED定义的注释,就可以屏蔽两个PID控制器的微分酌,调节这两个PID控制器就可以实现调节Iq和Id电流。下面两个图展示的是两个LCD菜单,菜单上允许实时的比例、积分调节,图中是正在进行微分增益调节。 图19显示的是选择转矩PID系数,同时图 20显示的是选择磁通量PID的系数。从两个屏幕上来看,通过向右/左移动操纵杆就可以选择P,I或D系数(当存在),选中了就以红色显示。然后,再上/下按动操纵杆就可以改变某个值(增加或减小)。 图 19LCD显示的转矩PID的
44、P项设置 图20 LCD显示的磁通量PID的P项设置 此外,为了实现在速度控制模块中的速度控制,在转矩和磁通控制模块还施行PI(D)控制。由专门的LCD菜单也可以实时调节相关增益: 图21 LCD显示的速度PID的P项设置 在上面的菜单中,左/右移动操纵杆就可以选择P,I和D(当可选时)系数,选中了就以红色显示。上/下操纵杆就可以改变(递增或递减)所需的值。 3.4 弱磁PI控制器的调节 如果弱磁功能已在stm32F10x_MCconf.h文件中激活,下面的菜单就是可用的(见2.3和4.1节)。 下面的菜单可以实时调节弱磁模块内部PI调节器的比例和积分增益。 无论是P系数,I系数还是定子目标电
45、压Vs都可以通过左/右移动操纵杆选择选中就以红色显示。上/下移动操纵杆就可以改变(递增或递减)所需的值。图22显示了调节界面。 图22 LCD显示的弱磁PI的P项设置 在屏幕下部显示的是目标电压和测量定子电压 22 ba nn +=SV 与最大可用相电压的百分比。 3.5 观测器和PLL增益调节 在固件库的默认配置中是禁止调节无传感器算法的。然而,当stm32F10x_MCconf.h配置头文件未注释OBSERVER_GAIN_TUNING定义时,下图展示在就是专门的LCD菜单。 图23 LCD显示的磁通PID的P设置 在图23所示的菜单中,可以向左/右移动操纵杆来浏览不同增益值。向上/下移动
46、下操纵杆可以递增/递减红色标示的增益。 此菜单可以实时改变观测器和PLL增益。当与DAC功能结合或者与霍尔效应传感器或编码器固件配置结合使用时,此功能会非常有用。在这种方式下,通过转子电角度的观察和测量和调整增益来取消两波形之间的误差就可以修改观测器和PLL增益。 3.6 DAC的功能 在stm32F10x_MCconf.h中启用DAC功能后,DAC就是一个功能强大的调试工具,它允许使用专用的菜单最多同时可以追踪多两个软件的实时变量。 图24 LCD显示的磁通PID的P设置 在图 24 所显示的菜单中,可以左/右移动操纵杆来选择所需的微控制器引脚。要更改软件变量输出,可以向上/下移动操纵杆(可
47、用变量列表取决于所选固件配置)。至于所有其他的菜单,按下操纵杆或Key按钮会启动/停止电机。 下面的代码可以将两个用户定义的变量添加到默认列表: . #include “stm32f10x_MClib.h“ . MCDAC_Update_Value(USER_1,variable_name1); MCDAC_Update_Value(USER_2,variable_name2); . 如果在显示屏上选择了“User1“或“User2“,就会输出显示这些变量。如果演示程序在开始/运行状态,就可以启动变量跟踪。FOC 算法采样频率可以修复更新频率(详情见4.2)。 使用四个TIM3输出比较通道中的
48、两个(PB0和PB1引脚),调节30kHzPWM循环信号,就能在目前的固件库中运行DAC功能。在没有启用波形延时情况下,为了恰当的过滤产生的信号,建议使用恰当的一阶低通滤波器(如10k的电阻和 22nF 的电容构成的滤波器)。此外,如果使用具有高密度的性能线(即一STM32F103xC,STM32F103xD或STM32F103xE衍生工具)的 MCU,用户可以适当修改stm32f10x_MCdac.c文件来开发内置2通道、12位D/A转换器。 3.7 电源反馈(Power stage feedbacks) 为了显示直流母线电压值和STM3210B-MCKIT电源板散热器温度,必须专门设计一个
49、显示菜单,如下图所示: 图25 电源状态 3.8 故障信息 本节主要介绍所在软件库和STM3210B- MCKIT同时使用时,可能检测到的故障信息。图26显示了一个会在LCD上显示的典型错误消息。 图26 欠压故障时会显示的错误信息 只有在故障源消除后,才会显示“按Key返回主菜单“信息。在这种情况下,按下Key键会使电机从故障状态切换到正常状态。 当固件库与STM3210B-MCKIT同时使用时,会有六种不同的故障: 3.8.1 过流 PWM 外设专用引脚(BKIN)可以检测到低电平。如果这时正在使用STM3210B-MCKIT,这意味着可能是硬件过热保护或硬件过流保护被触发了。详情参阅STM3210B-MCKIT用户手册。 3.8.2 过热 专用模拟通道可以检测过热。请在MC_Control_Param.h头文件中声明干预阈值(NTC_THRESHOLD_C)和相关滞后(NTC_HYSTERESIS_C)。详情参阅STM3210B- MCKIT用