只需采用直流环节电流反馈技术的定向控制(FOC)可最小化系统成本,对电器驱动器应用非常有吸引力。电机的正弦控制可产生平滑的扭矩输出,输出的声学噪声很低。因此,FOC适合用在风扇、水泵、洗衣机和干衣机等低噪声和高能效非常重要的设备中。
空调和洗衣干衣机等许多电器设备必须独立控制两个电机的速度,以优化它们的性能。这些系统所采用的传统方法是使用带串行通信链路的电机控制处理器来实现同步。但是,如果用一个器件控制两个电机,就可以大大简化硬件和系统设计。最近推出的电器控制平台可仅利用直流母线电流反馈技术同时控制两个PM交流电机,该芯片采用嵌入式FOC算法,可缩短开发时间,并推动电器制造商快速采纳这种技术。
无传感器电机控制算法的实现
FOC在工业驱动系统中很常见,它一般采用编码器或分解器测量转子的位置。闭环电流控制算法利用转子的角坐标校正电机电流和转子磁通,从而实现扭矩输出的最大化。电器控制系统中先进的转子位置估算算法无需使用高分辨率位置传感器(图1)。
估算算法根据采用绕组电压和电流的电机模型,获得PM的转子磁通位置。这种方法非常合适,因为转子上的磁体决定了转子磁通的位置。绕组电流测量数据是利用基于功率变换器的状态知识的正确的ADC采样时序,从直流环节电流中获得的。系统框图表明,绕组电流测量数据和绕组电压驱动值是计算转子角位置和角速度的转子磁通模型的输入。扭矩和磁通控制环路不仅能在较低速度范围内实现最大的扭矩输出,还可以实现弱磁下的高速操作。
在第一代FOC电机驱动系统中,这些功能是由模拟和数字器件的组合电路实现的。如今,这些电机驱动系统中的大部分已采用高速DSP或RISC处理器在单个器件上实现相关算法。软件实现不仅带来了灵活和硬件简单的优点,也给驱动系统开发人员带来重要的软件开发任务。生成控制算法的软件代码需要许多步骤。第一步,系统工程师将控制原理图转换成代表各种控制功能的微分方程组。第二步,软件工程师将这些微分方程转换成代表处理器执行指令的C代码。这个过程出错,从而延长开发时间,除非代码具有很好的结构和文档,并有长期软件维护小组。RISC处理器和DSP供应商可以提供一整套FOC软件实例来帮助电机驱动公司加快开发进程。这是很有可能的,因为FOC控制技术非常成熟,所以算法结构也可以定义得非常完善。然而,软件实现在目前是没有特别优势的,因为算法结构的灵活性不是必需的。
控制系统设计工程师可以利用数字ASIC或FPGA技术,以硬件方式实现FOC算法。开发过程的第一步与软件方法没太大区别,但在第二步中不再使用C代码,而是由硬件工程师将微分方程转换成代表逻辑门互连的Verilog代码。这种设计可以在控制寄存器中定义并存储控制参数,以提供灵活性,但在数字ASIC中实现算法结构的硬连线。这种方法在要求高速处理的电信系统中非常普遍,许多电机控制ASIC可以实现FOC和其它电机控制功能。这种方法的优点不仅在于执行速度,还在于它能显著缩短系统的开发时间。
运动控制引擎(MCE)则提供另一种方法,该方法兼有专用ASIC硬件的高速性能和可编程处理器的灵活性。这种方法特别有效,因为FOC算法使用了许多标准函数,比如误差放大器、比例积分(PI)补偿器,以及会多次出现在控制电路中的矢量旋转器。MCE由硬件电机控制函数库组成,通过将输入和输出存储器地址分配给相应的系统变量,可高效地实现运动控制定序器与这些函数的互连。
控制系统工程师不需要将控制原理图转换成微分方程组,因为在MCE库中具有经过充分优化的ASIC实现。相反,控制系统工程师采用原理图编辑工具,以图形化的方式通过互连运动控制库中的标准函数来确定控制原理图。图形化编译器将控制原理图转换成用于互连硬件控制函数的MCE定序器命令。编译器将MCE的共享RAM区中的各个地址,分配给控制节点定义的每个算法变量。MCE定序器命令定义每个控制函数块以及输入输出变量的存储器地址。因为MCE将这些命令存储在存储器中,所以具有与RISC处理器和DSP一样的灵活性。
PWM开关频率设置算法执行的时序、ADC采样率和输出电压的更新速率。MCE库元件代表空间矢量调制器和ADC输入,但它们在控制原理图中只出现一次,因为它们与物理的输入输出引脚相对应。另一方面,矢量旋转器或PI补偿器等MCE库控制函数可以多次出现在控制算法中,因为MCE将它们的输入输出存储在数据存储器中。库函数的每次实例化都会占用数据存储器空间来存储变量和MCE指令,因此存储器容量限制了算法的复杂性。每个库函数在每次执行时都会占用一定的系统时钟周期,因此控制环路总的时钟周期数必须小于PWM周期中的时钟周期数。
转子角度估算器和电流控制环路大约要消耗1,400个系统时钟周期,相当于128MHz最大系统时钟频率下的11μs时间。这样,在相当于20kHz开关频率的50μs PWM周期下,可以同时实现对两个电机的控制。当然,为控制两个电机,芯片需要两套空间矢量PWM调制器和用于电流采样的额外模拟输入端。图2是一个双电机控制IC的结构图,它包含嵌入式运动控制引擎和用于执行应用层代码的8位微控制器内核。这种方法的优势是它能将在微控制器上执行的慢速系统级功能与MCE执行的高速电机控制算法分隔开来。
MCE库函数
高速执行控制算法的关键是MCE库函数在ASIC中的实现效率。两个重要的反馈控制单元(PI控制补偿器和矢量旋转块)可以作为库函数的典型例子。ASIC实现需要优化硅片和时钟周期的使用,并同时不牺牲鲁棒性和可靠性。
众所周知的PI控制补偿器的ASIC实现(图3)基于连续时域转移函数:
将这个表达式转换到离散时间域就可以产生一组定义ASIC实现的微分方程:
为保持低输入电平时的精度,并将输出重新调节到16位变量,积分项的总和具有32位分辨率。抗饱和模块可以在输出达到系统的物理极限时,防止积分项饱和。
矢量旋转模块是一个二维矩阵函数,用来实现旋转和固定参考系之间的电压转换。前向旋转具有正弦和余弦项:
有多种三角恒等式可以将正弦和余弦项的运算简化为0到90?范围的正弦函数运算,但根据可用硬件的不同,该项的运算会有所变化。在一些微控制器实现中,快速乘法函数的缺乏将迫使软件开发人员依赖简单的查找表。在具有单周期乘法指令的DSP或RISC处理器中,可用泰勒展开式计算正弦函数。
针对基于一系列加法、减法和移位函数,仅在13个周期内就可实现12位精度的ASIC实现,开发被称为CORDIC算法的矢量旋转函数(图4)。这种运算要比在32位RISC处理器上使用泰勒展开式进行运算快10倍。
简化电机控制
尽管可能存在许多种配置,但图5所示的采用单个控制IC操作双电机平台的配置是最高效的。这种配置不仅能消除用来控制第二个电机的第二个IC(该IC导致了不必要的冗余设计),还使得两个电机的复杂接口设计成为可能。例如,当一个电机发生故障(比如短路或闭锁),第二个电机可以立即像反射动作一样被去激励,从而减少与主控制系统通讯相关的延迟。以空调应用为例,压缩机电机的速度和蒸发器风扇要求相互跟踪以优化工作效率,控制系统通过直接写入MCE寄存器设置电机速度,并避免多个IC之间的复杂通讯。
图5:通过单个平台提供的双电机控制可以消除冗余硬件和对两个分离控制器之间的复杂通讯链路的需求,并能实现两个电机之间的复杂接口。