怎样才能把多个 CPU 内核、硬件加速器块以及 10G 以太网接口结合起来控制一个电机呢?对于采用 1 美元微控制器 (MCU) 来运行电机的设计人员而言,这一问题太荒谬了。答案可能来自令人感兴趣的控制系统设计案例,实时系统体系结构的发展等。
起点
让我们介绍一种在我们应用场景中处于中心位置的永磁同步电机,即 PMSM。PMSM 有很多种外形和体积,适合很多种应用,从开关门到机器人手术工具关节等。在这一领域中,它得到了广泛的应用,这是因为其固有的可靠性、低成本,在我们的应用中,经过适当的控制,可以实现高精度和高效率。实际上,应用的要求越来越高,PMSM 支持您降低机电设计的复杂性,在软件中实现复杂的功能。
PMSM 机械和电气特性非常简单 (图 1) 。转子正如其名称所示,是永磁体。通常有三个定子绕组,在电机中均匀的 120 度角分布。真正的诀窍在于绕组的不同:转动密度是围绕定子呈正弦分布,因此,绕组实际上在边缘上相互重叠。在绕组合适的相位上应用正弦电流,您能够建立与转子场角度垂直的旋转磁场,从而在转子上高效的产生扭矩。
控制 PMSM 并不是高科技。一个简单的 MCU 使用查找表和插值来生成所需的驱动电流时变正弦信号,为绕组提供电流。如果算法正确,绕组会产生电机旋转磁场,转子随之转动。虽然起步有些复杂,但毕竟完成任务了,对吧?不完全是这样。
图 1. PMSM 截面
现场定位控制
开环控制的问题总是很复杂。启动电机,特别是有负载的情况,会比较难,效率也不高。开环控制器的响应并不能很好的适应负载扭矩或者速度命令的变化,无法抑制振动。出于通常的考虑,反馈控制系统工作起来会更好一些。
问题是要控制什么。很明显,我希望控制转动角度 — 在某些应用中,旋转速度。我们必须通过控制产生旋转磁场的三个绕组电流来完成这一工作。对此最好的方法是,在业界已经应用的多路步进,即,线程定位控制 (FOC) (图 2) 。
图 2. 驱动结构图
第一,我们采集来自转轴编码器的转子位置采样,以及三个绕组中两个绕组的电流采样。由于一些很好的数学算法,我们并不需要所有三个绕组电流。这些采样告诉我们转子以及定子旋转磁场的瞬时位置和滞后速度。我们的工作是控制转子的速度和位置,这通过控制定子绕组的电流大小来实现,同时还要让旋转磁场比转子磁场超前 90 度。
通过两个简单的变换,我们很容易完成这一工作。Clarke 变换将两个定子绕组的电流采样 — 它们分开 120 度,映射到一对正交矢量上。矢量的方向相对于定子是固定的,当然,其矢量和是旋转磁场矢量。Clarke 变换只需要将电流值乘以常数,加上乘积 — 简单的乘累加运算。
第二种变换是 Park 变换,将这两个正交矢量映射到转子参考的旋转帧中。一个矢量与转子磁场对齐,另一个 — 正交矢量,角度与其垂直。Park 变换比较难处理。在进行矢量乘法把矢量变换成转子参考帧之前,它使用瞬时转轴位置来计算 sin(θ) 和 cos(θ) 系数。
现在,我们可以控制信号。我们把与转子对齐的矢量保持为 0,表示定子磁通量没有对转子产生扭矩。我们使用正交分量来控制转子位置和速度,定子磁通量实际上产生了扭矩。
例如,控制器会处理所需位置的输入,将其与传统分立时间比例积分 (PI) 控制电流的实际转轴角度相对比,产生误差信号,输出至 FOC 模块。FOC 模块然后会把这一误差信号送入正交扭矩信号中,使转子旋转。模块会应用 Park 反变换,把扭矩映射回定子参考的固定帧,然后,通过 Clarke反 变换,把扭矩信号映射到电流中,送入三个绕组。这样就改变了定子绕组所需位置和所需速度输入激励信号,旋转定子磁场,使转子处于所需的角度上。
计算负载并没有那么复杂:FOC 模块每一采样间隔可能是两次三角运算,10 次乘法,7 次加法,以及一些其他运算来实现 PI 控制器。所有这些算法都可以在定点中实现,需要仔细一些。采用目前的典型 16 kHz 采样和脉冲宽度调制速率,我们并没有降低现代 32 位 MCU 的整体性能。但是,不止于此。
无传感控制
让我们从那个转轴编码器开始。FOC 算法必须有精确的转轴角度反馈。传统上,这一数据来自转轴编码器 — 与电机转轴连接的光机电设备。但是,编码器提高了系统中每一电机的成本、体积、重量,增加了新的失效模式。它需要控制器工业标准接口。
原理上,有足够的定子绕组电压和电流信息来确定转子位置。这样,可以实现无传感工作 — 至少可以不采用转轴编码器,采用更多的电流传感器和三个电压传感器来替代它,所有这些信号都需要精确的模数转换。这样,很多复杂的机械功能可以在软件中实现。
就是这种想法。绕组负载上的电压有两个主要分量:绕组串联电阻导致的 IR 压降,来自绕组电感的后向 EMF。但是,后向 EMF 本身有两个来源:绕组自身的电感,以及转子通过绕组磁力线导致的漏磁通量。如果您能够隔离电压变化的最后部分,基本上就能够计算出转子角度。实际上,这样做涉及到一些计算,包括 Park 变换,积分评估,以及每一采样间隔期间的反三角函数运算。
然而,除了实验室环境,您不太可能获得电机特性的精确数据,例如,绕组阻抗和电感等。不同的电机有不同的这类指标,而且这些指标还对温度和老化等其他参数非常敏感。
由此,开发人员建议了各种方案从状态变量矩阵中提取出转子角度。这些想法包括锁定由转子导致的电压波纹的锁相环,计算转子位置的状态估算器,将其结果与以前的数据进行对比,还有最终的估算器,Kalman 滤波器。与直接计算相比,这些方法至少让计算负载增加了一倍,每一周期至少需要 30 次算术运算。
振动控制
FOC 的优点之一是能够控制振动及其伴随噪声。这类测量提高了能效和机械可靠性,有可能不需要太多的机械设计。在消费类市场上,这能够把 600 美元的洗衣机抬高到售价 800 美元的豪华型。
原理还是那么简单。如果振动的原因是控制环不稳定造成的,那么您可以改变 PI 控制器的增益,使其更接近临界阻尼。如果振动是由电机、驱动转轴或者负载机械共振造成的,您可以通过吸收扭矩信号共振频率功率来消除振动。比较方便的是,FOC 方法使您能够在扭矩信号变成三路时变正弦信号之前访问它,因此,增加陷波滤波器吸收共振频率功率就可以了。
不论哪一操作 — 增加增益环还是滤除错误信号,都会对系统动态速度和位置误差产生不利影响。但是在很多应用中,对于平滑安静的操作,转轴速度的瞬时误差并不重要。
振动控制需要三种主要的处理模块:快速傅里叶变换 (FFT),从转轴位置或者绕组电流数据中提取出频谱,探测和响应模块,找到频谱最大值,确定怎样处理它们,还有一个或者更多的可编程陷波滤波器,去掉扭矩信号中的杂波频率 (图 3) 。
图 3.扭矩控制器和 Park 反变换之间的可编程陷波滤波器能够改进系统的共振。
这些模块都适合应用。在某些系统中,共振是固定的,或者慢变的,FFT 会是启动或者后台任务。在共振变化很快的系统中,FFT 需要连续运行。响应模块与应用有很大的关系,确定对 PI 环路增益的调整,增加滤波器,选择滤波器参数等,在很大程度上取决于整个电机系统的特性。因此,在没有详细了解系统的情况下,不太可能估算振动控制所需要的计算负载。
工作堆叠
目前为止我们已经进行了很多工作,每一16 kHz周期可能有几百项算术指令 — 还有 FFT 计算。我们所面临的是,任务的增长已经超出了低成本MCU的简单中断服务。但还有更多。
最明显的是增加了很多电机。很多控制任务本质上都是多轴的:例如,粉碎机的工具位置,或者全关节机器人手等。在集成级,在轴上需要共享实时数据等,就能够体现多通道控制器的优点。但是由于轴之间有很少的冗余计算,因此,更多的通道只是增加了工作负载。
还有采样率。目前的采样率从以前的搜索RMS位置或者速度误差的 16 kHz 标准,增长到 100 kHz。自然的,提高采样间隔会减少完成实时计算的时间,必须在采样间隔期间完成实时计算。
工厂之外的变化也对控制器体系结构带来了压力:子系统联网了。一个主要的转换点是设计中增加了工业网络接口。逐渐的,系统设计人员希望通过网络发送命令,检查状态,读取日志数据。网络接口不仅增加了必要的物理层和介质访问硬件,而且还有异步执行的协议栈,与控制环的同步采样活动是异步的。现在,我们不仅有简单的中断触发实时任务,还有时间限制的两项任务,一个实时的,一个面向网络的。在这一点,很难不采用 RTOS。
网络访问随之而来的是容易受到攻击。对联网控制系统进行攻击,不论是否直接连接互联网,都有可能受到黑客的攻击。没有绝对的安全。相应的,即使是看起来不太重要的电机控制器的子系统今后也要受到保护。这意味着,它们必须有本地认证消息,以及加密和解密数据。这通常表明需要加密加速器。
因此,这就回答了我们最初的问题。我们看到 PMSM 控制器在增加,更多的特性在软件中实现,从低成本 MCU 的简单任务到某些任务所需要的硬件加速的大量计算。我们注意到需要 FFT、有限冲击响应 (IIR) 滤波器、网络接口,以及随之而来的安全功能。非对称多处理逐渐成为提供足够计算能力并保持实时和后台任务相互隔离最好的方法。
计算环境已经从中断驱动的裸金属代码扩展到复杂环境工作负载,这具有很多难以处理的实时任务,以及某些通信相关的背景任务,其中的一些会有工业网络时限要求。这么复杂的需求需要采用 RTOS。我们看到安全要求内核可信。不论是在 FPGA 中实现还是采用基于单元的技术实现,我们的小电机控制器都是一种很好的异构多核 SoC。
怎样才能把多个 CPU 内核、硬件加速器块以及 10G 以太网接口结合起来控制一个电机呢?对于采用 1 美元微控制器 (MCU) 来运行电机的设计人员而言,这一问题太荒谬了。答案可能来自令人感兴趣的控制系统设计案例,实时系统体系结构的发展等。
起点
让我们介绍一种在我们应用场景中处于中心位置的永磁同步电机,即 PMSM。PMSM 有很多种外形和体积,适合很多种应用,从开关门到机器人手术工具关节等。在这一领域中,它得到了广泛的应用,这是因为其固有的可靠性、低成本,在我们的应用中,经过适当的控制,可以实现高精度和高效率。实际上,应用的要求越来越高,PMSM 支持您降低机电设计的复杂性,在软件中实现复杂的功能。
PMSM 机械和电气特性非常简单 (图 1) 。转子正如其名称所示,是永磁体。通常有三个定子绕组,在电机中均匀的 120 度角分布。真正的诀窍在于绕组的不同:转动密度是围绕定子呈正弦分布,因此,绕组实际上在边缘上相互重叠。在绕组合适的相位上应用正弦电流,您能够建立与转子场角度垂直的旋转磁场,从而在转子上高效的产生扭矩。
控制 PMSM 并不是高科技。一个简单的 MCU 使用查找表和插值来生成所需的驱动电流时变正弦信号,为绕组提供电流。如果算法正确,绕组会产生电机旋转磁场,转子随之转动。虽然起步有些复杂,但毕竟完成任务了,对吧?不完全是这样。
图 1. PMSM 截面
现场定位控制
开环控制的问题总是很复杂。启动电机,特别是有负载的情况,会比较难,效率也不高。开环控制器的响应并不能很好的适应负载扭矩或者速度命令的变化,无法抑制振动。出于通常的考虑,反馈控制系统工作起来会更好一些。
问题是要控制什么。很明显,我希望控制转动角度 — 在某些应用中,旋转速度。我们必须通过控制产生旋转磁场的三个绕组电流来完成这一工作。对此最好的方法是,在业界已经应用的多路步进,即,线程定位控制 (FOC) (图 2) 。
图 2. 驱动结构图
第一,我们采集来自转轴编码器的转子位置采样,以及三个绕组中两个绕组的电流采样。由于一些很好的数学算法,我们并不需要所有三个绕组电流。这些采样告诉我们转子以及定子旋转磁场的瞬时位置和滞后速度。我们的工作是控制转子的速度和位置,这通过控制定子绕组的电流大小来实现,同时还要让旋转磁场比转子磁场超前 90 度。
通过两个简单的变换,我们很容易完成这一工作。Clarke 变换将两个定子绕组的电流采样 — 它们分开 120 度,映射到一对正交矢量上。矢量的方向相对于定子是固定的,当然,其矢量和是旋转磁场矢量。Clarke 变换只需要将电流值乘以常数,加上乘积 — 简单的乘累加运算。
第二种变换是 Park 变换,将这两个正交矢量映射到转子参考的旋转帧中。一个矢量与转子磁场对齐,另一个 — 正交矢量,角度与其垂直。Park 变换比较难处理。在进行矢量乘法把矢量变换成转子参考帧之前,它使用瞬时转轴位置来计算 sin(θ) 和 cos(θ) 系数。
现在,我们可以控制信号。我们把与转子对齐的矢量保持为 0,表示定子磁通量没有对转子产生扭矩。我们使用正交分量来控制转子位置和速度,定子磁通量实际上产生了扭矩。
例如,控制器会处理所需位置的输入,将其与传统分立时间比例积分 (PI) 控制电流的实际转轴角度相对比,产生误差信号,输出至 FOC 模块。FOC 模块然后会把这一误差信号送入正交扭矩信号中,使转子旋转。模块会应用 Park 反变换,把扭矩映射回定子参考的固定帧,然后,通过 Clarke反 变换,把扭矩信号映射到电流中,送入三个绕组。这样就改变了定子绕组所需位置和所需速度输入激励信号,旋转定子磁场,使转子处于所需的角度上。
计算负载并没有那么复杂:FOC 模块每一采样间隔可能是两次三角运算,10 次乘法,7 次加法,以及一些其他运算来实现 PI 控制器。所有这些算法都可以在定点中实现,需要仔细一些。采用目前的典型 16 kHz 采样和脉冲宽度调制速率,我们并没有降低现代 32 位 MCU 的整体性能。但是,不止于此。
无传感控制
让我们从那个转轴编码器开始。FOC 算法必须有精确的转轴角度反馈。传统上,这一数据来自转轴编码器 — 与电机转轴连接的光机电设备。但是,编码器提高了系统中每一电机的成本、体积、重量,增加了新的失效模式。它需要控制器工业标准接口。
原理上,有足够的定子绕组电压和电流信息来确定转子位置。这样,可以实现无传感工作 — 至少可以不采用转轴编码器,采用更多的电流传感器和三个电压传感器来替代它,所有这些信号都需要精确的模数转换。这样,很多复杂的机械功能可以在软件中实现。
就是这种想法。绕组负载上的电压有两个主要分量:绕组串联电阻导致的 IR 压降,来自绕组电感的后向 EMF。但是,后向 EMF 本身有两个来源:绕组自身的电感,以及转子通过绕组磁力线导致的漏磁通量。如果您能够隔离电压变化的最后部分,基本上就能够计算出转子角度。实际上,这样做涉及到一些计算,包括 Park 变换,积分评估,以及每一采样间隔期间的反三角函数运算。
然而,除了实验室环境,您不太可能获得电机特性的精确数据,例如,绕组阻抗和电感等。不同的电机有不同的这类指标,而且这些指标还对温度和老化等其他参数非常敏感。
由此,开发人员建议了各种方案从状态变量矩阵中提取出转子角度。这些想法包括锁定由转子导致的电压波纹的锁相环,计算转子位置的状态估算器,将其结果与以前的数据进行对比,还有最终的估算器,Kalman 滤波器。与直接计算相比,这些方法至少让计算负载增加了一倍,每一周期至少需要 30 次算术运算。
振动控制
FOC 的优点之一是能够控制振动及其伴随噪声。这类测量提高了能效和机械可靠性,有可能不需要太多的机械设计。在消费类市场上,这能够把 600 美元的洗衣机抬高到售价 800 美元的豪华型。
原理还是那么简单。如果振动的原因是控制环不稳定造成的,那么您可以改变 PI 控制器的增益,使其更接近临界阻尼。如果振动是由电机、驱动转轴或者负载机械共振造成的,您可以通过吸收扭矩信号共振频率功率来消除振动。比较方便的是,FOC 方法使您能够在扭矩信号变成三路时变正弦信号之前访问它,因此,增加陷波滤波器吸收共振频率功率就可以了。
不论哪一操作 — 增加增益环还是滤除错误信号,都会对系统动态速度和位置误差产生不利影响。但是在很多应用中,对于平滑安静的操作,转轴速度的瞬时误差并不重要。
振动控制需要三种主要的处理模块:快速傅里叶变换 (FFT),从转轴位置或者绕组电流数据中提取出频谱,探测和响应模块,找到频谱最大值,确定怎样处理它们,还有一个或者更多的可编程陷波滤波器,去掉扭矩信号中的杂波频率 (图 3) 。
图 3.扭矩控制器和 Park 反变换之间的可编程陷波滤波器能够改进系统的共振。
这些模块都适合应用。在某些系统中,共振是固定的,或者慢变的,FFT 会是启动或者后台任务。在共振变化很快的系统中,FFT 需要连续运行。响应模块与应用有很大的关系,确定对 PI 环路增益的调整,增加滤波器,选择滤波器参数等,在很大程度上取决于整个电机系统的特性。因此,在没有详细了解系统的情况下,不太可能估算振动控制所需要的计算负载。
工作堆叠
目前为止我们已经进行了很多工作,每一16 kHz周期可能有几百项算术指令 — 还有 FFT 计算。我们所面临的是,任务的增长已经超出了低成本MCU的简单中断服务。但还有更多。
最明显的是增加了很多电机。很多控制任务本质上都是多轴的:例如,粉碎机的工具位置,或者全关节机器人手等。在集成级,在轴上需要共享实时数据等,就能够体现多通道控制器的优点。但是由于轴之间有很少的冗余计算,因此,更多的通道只是增加了工作负载。
还有采样率。目前的采样率从以前的搜索RMS位置或者速度误差的 16 kHz 标准,增长到 100 kHz。自然的,提高采样间隔会减少完成实时计算的时间,必须在采样间隔期间完成实时计算。
工厂之外的变化也对控制器体系结构带来了压力:子系统联网了。一个主要的转换点是设计中增加了工业网络接口。逐渐的,系统设计人员希望通过网络发送命令,检查状态,读取日志数据。网络接口不仅增加了必要的物理层和介质访问硬件,而且还有异步执行的协议栈,与控制环的同步采样活动是异步的。现在,我们不仅有简单的中断触发实时任务,还有时间限制的两项任务,一个实时的,一个面向网络的。在这一点,很难不采用 RTOS。
网络访问随之而来的是容易受到攻击。对联网控制系统进行攻击,不论是否直接连接互联网,都有可能受到黑客的攻击。没有绝对的安全。相应的,即使是看起来不太重要的电机控制器的子系统今后也要受到保护。这意味着,它们必须有本地认证消息,以及加密和解密数据。这通常表明需要加密加速器。
因此,这就回答了我们最初的问题。我们看到 PMSM 控制器在增加,更多的特性在软件中实现,从低成本 MCU 的简单任务到某些任务所需要的硬件加速的大量计算。我们注意到需要 FFT、有限冲击响应 (IIR) 滤波器、网络接口,以及随之而来的安全功能。非对称多处理逐渐成为提供足够计算能力并保持实时和后台任务相互隔离最好的方法。
计算环境已经从中断驱动的裸金属代码扩展到复杂环境工作负载,这具有很多难以处理的实时任务,以及某些通信相关的背景任务,其中的一些会有工业网络时限要求。这么复杂的需求需要采用 RTOS。我们看到安全要求内核可信。不论是在 FPGA 中实现还是采用基于单元的技术实现,我们的小电机控制器都是一种很好的异构多核 SoC。
举报