矢量控制(FOC)是空间矢量脉宽调制最重要的应用之一。矢量控制,又名磁场定向控制,其特点是通过坐标变换技术把交流电机定子电流分解为转矩和磁通分量,从而实现像直流电机一样的控制电机的输出转矩和磁通。矢量控制广泛应用于永磁同步电动机(PMSM)的控制。
目前市场上较为常用的FOC方案会采用DSP、ASIC或通用MCU进行控制。DSP运算能力高,实时性强,常用于FOC控制,但存在着成本较高的缺点。ASIC将FOC固化在芯片内部,无需编程,但会带来算法无法修改、不够灵活的缺点。通用MCU种类较多,平台复杂。常用的几种方案一般至少还需要2个外部运放完成电流采样。
另外还有一种基于PSoC4的方案,该方案利用PSoC4内部丰富的数字及模拟资源及独有的可编程特性可实现高度集成化、低成本的矢量控制。图1显示了PSoC4矢量控制(无传感器)硬件控制框图。PSoC4内部集成四个独立的可支持中央对齐、互补的可编程死区及同步ADC操作的TCPWM模块,可用于SVPWM输出;一个支持零开销通道切换功能的12位1Msps ADC,用于电流采样;两个支持比较器模式及SAR ADC输入缓冲功能的运算放大器,可省掉两个外部运放。丰富的片内资源可将矢量控制主控电路所需芯片集成到一片芯片中,实现高度集成化。
<ignore_js_op>
图1:PSoC4 无传感器FOC硬件控制框图。
相对于其他解决方案,基于PSoC4的无传感器FOC解决方案具有以下特点优势:
1. 采用高性价比的Cortex-M0内核。Cortex-M0是市场上现有的最小、最节能的ARM处理器,代码占用空间小,能以8位处理器的价格获得32位处理器的性能,可明显节约系统成本。
2. 内部集成两个支持比较器模式及SAR ADC输入缓冲功能的运算放大器。目前市场大部分解决方案均需外部运放完成电流采样,采用PSoC4可从系统BOM表中移除外部运放,减少系统成本。
3. 内部集成两个低功耗比较器,可用于硬件保护或错误信号处理。市场常用解决方案大部分采用外部比较器完成此功能。采用PSoC4可进一步减少BOM,降低成本。
4. 减少PCB空间及BOM成本。
5. 固件IP保护。PSoC提供了极强的软件/硬件IP保护能力,这对电机应用尤其重要。
6. 灵活的通讯接口。PSoC特殊的可编程架构提供了极为灵活的通讯接口,可满足各种应用的需求。
空间矢量脉宽调制原理
SVPWM是近年发展的一种比较新颖的调制方法,是由三相功率逆变器的六个功率开关元件组成的特定开关模式产生的脉宽调制波,能够使输出电流波形尽可能接近于理想的正弦波形。与电压正弦PWM不同, SVPWM法是从电机的角度出发的,着眼于如何使电机获得幅值恒定的圆形旋转磁场,即正弦磁通, 模型构造简单,便于数字化实现。与传统电压正弦PWM相比,该控制方法具有使得电机转矩脉动降低、电流波形畸变减小、直流电压利用率提高的优点。
图2是一种典型的三相逆变器的结构, Va, Vb,Vc是逆变器的电压输出,Q1到Q6是6个功率晶体管,它们分别被a,a’,b,b’,c,c’这6个控制信号所控制。当逆变桥上半部分的功率管与下半部分的功率管为互补关系,即当a为1时,a’为0。
<ignore_js_op>
图2:三相逆变器结构图。
从图3可以看出,开关变量矢量[a,b,c]有8个不同的组合值,即逆变桥上半部分的3个功率晶体管的开关状态有8种不同的组合,故其输出的相电压和线电压有8种对应的组合。开关变量矢量[a、b、c]与输出的线电压和相电压的对应关系见表1。
<ignore_js_op>
图3:基本电压空间矢量。
在(α,β)坐标系中,输出的三相线电压可以用下面等式表示:
<ignore_js_op>
公式1
<ignore_js_op>
公式2
由表1可知,功率晶体管的开关状态的组合一共只有8个,则在(α,β)坐标系中的Vsα、Vsβ也有8种组合。Vsα、Vsβ是空间矢量分解得到的子轴分量,它们的对应关系如表2所列。由此可得到8个基本电压空间矢量,分别为 U0, U60,U120,U180, U240, U300, 0000和0111。其中0000和0111为零矢量。这六个非零基本电压空间矢量将(α,β) 坐标平面分为六个扇区,如图3所示。
由8个基本电压空间矢量可以合成任意定子电压矢量。如图4所示,以U0, U60扇区为例,若在一个PWM周期T内,同时输出T1时间U0矢量和T2时间的U60矢量,则由矢量(T1/T)U0,(T2/T)U60可以合成给定的参考电压矢量Uout。
<ignore_js_op>
图4:由基本电压空间矢量合成的子电压矢量。
由图4可得:
<ignore_js_op>
公式3
<ignore_js_op>
公式4
因此,
<ignore_js_op>
公式5
<ignore_js_op>
公式6
可得 T1 ,T2
<ignore_js_op>
公式7
<ignore_js_op>
公式8
<ignore_js_op>
公式9
<ignore_js_op>
公式10
由此可知SVPWM实现步骤:先通过Uout判断出电压矢量所在扇区,再根据相邻的电压矢量及Uout计算出两个基本矢量作用时间;最后根据两个基本矢量作用时间计算出PWM开关时间及占空比。
基于PSoC4的设计实例
我们使用TCPWM模块来实现SVPWM。TCPWM模块提供了电机控制常用的中央对齐、边沿对齐PWM,并可实现严格的同步功能。支持灵活的死区控制,并可与ADC同步。TCPWM包括四个16位的周期长度用户可编程的计数器,这些计数器之间可以进行功能同步。每个模块包含一个捕获寄存器、一个周期寄存器以及一些比较寄存器。每个模块都支持互补的可编程的死区,还支持一个关断输入信号来强迫输出信号进入预先设定的状态。
如图5所示,从PSoC Creator中拖放三个TCPWM模块,配置TCPWM的工作模式为中央对齐,带死区的双路互补输出模式。三对PWM输出可分别作为U、V和W相桥臂驱动信号(如PWM_U_Upper, PWM_U_Lower)。同时在任一TCPWM模块的UN事件输出(下溢信号,用来指示计数器向下计数达到“0”)触发PWM中断(PWM_MainLoop_ISR),用于进行FOC计算并更新占空比。
<ignore_js_op>
图5:三相PWM原理图。
“PWM_UPDATE”信号可在UN事件时触发TCPWM的Switch事件,周期和比较寄存器上的值会自动与缓存周期和比较器寄存器的值更换。利用此特性,我们可以在TC事件之前更新缓存寄存器,然后用同一信号触发不同PWM的Switch事件,由此保证各路PWM更新的严格实时同步。
图中的控制寄存器(PWM_Ctrl_Reg)还可以同时使能或禁止六路PWM输出。PSoC灵活的可编程特性可轻松实现了三对严格同步的互补对称PWM及其更新逻辑,这样可以使工程师将更多的时间专注于算法层面,提供产品的竞争力。
主控程序首先会初始化和配置PSoC4的内部资源,然后进入主循环。主循环主要检测用户的起停命令,决定电机的运动状态;并完成一定的调试输出功能。FOC主算法全部在PWM中断中完成,主要完成坐标变换,SVPWM输出及更新占空比等操作。中断程序会人工生成一个周期性变化的角度,用于电机开环运行。图6显示了主控程序流程图。
<ignore_js_op>
图6:程序流程图。
实验结果
在PSoC Creator环境下编译工程,并连接PSoC4开发板,三相全桥驱动板与PMSM电机,通电后电机可正常运行,图7电机相电流波形。从测试结果可以看出,电流波形平滑,正弦度很好。
<ignore_js_op>
图7相电流波形图。
小结
上述实例介绍了如何在PSoC4 平台上实现空间矢量脉宽调制。PSoC4针对电机控制做出了富有特色的优化。凭借片内丰富的资源及高度的灵活性,用户可以轻松设计出高度集成化、低成本、性能优越的PMSM矢量控制系统,提高产品的核心竞争力。