基于MCU的闭环控制系统的设计与相关技术介绍
控制回路是许多基于MCU的设计执行的最基本任务之一。这些设计通常无法充分利用现代MCU中可用的关键特性和外围设备来最有效地实现闭环控制系统。定时器和中断控制器通常用于这些系统,但在实现控制系统时,其他一些功能,如DMA,高级模数转换器和专用数学函数,往往被忽略了很多次。 本文将快速回顾有效的基于MCU的闭环控制系统的一些关键要求。将使用一些示例MCU来说明用于提高效率的常用技术。一旦您了解了一些提高效率的常用技术,您就可以更好地寻找能够最佳地关闭下一个控制回路设计的实现。
控制回路基础知识 控制回路是用于控制动态系统的关键元素。动态系统可以是在输入和输出之间具有关系(通常建模为线性关系)的任何机械或电气系统。通常需要控制输出以使其保持在期望的操作“频带”内。例如,汽车中的自动巡航控制是这样一种系统,其中汽车的速度被设定在期望的水平,并且即使汽车遇到山坡,控制器也保持速度恒定。控制速度的算法利用控制回路,该控制回路应用输入(加速器上的压力),测量结果(速度)并根据需要调整输入以将速度保持在期望的水平。带有控制回路的简单单输入和单输出控制系统的框图如下图1所示。
图1:块一个简单的动态控制系统控制回路图。 在上面的框图中,动态系统的输入产生一个输出。输出由反馈传感器测量,测量的输出与参考(所需)输入进行比较。如果存在差异,系统控制器将使用结果错误修改系统输入,以使系统输出更接近参考输入。系统控制器需要足够智能,以避免因错误管理的控制系统而导致的振荡和其他问题。假设动态系统是线性的(输出与输入成比例)并不像您想象的那样具有限制性,因为许多机械和电气系统确实以线性方式运行,或者可以很容易地“偏向”以在更复杂的传递函数的线性区域。
使用MCU实现控制回路 很容易理解为什么MCU是实现控制系统的主力。由于能够以非常高的性能速率(特别是相对于电机等机械系统的高性能速率)感测,计算和控制各种输入和输出,因此MCU是一种自然的控制元件。除了CPU的功能外,MCU中的许多智能外设还可以简化和高效地关闭控制回路。 控制回路通常在动态系统的每次调整之间具有时序关系。这个“循环时间”决定了调整的速度。如果循环时间与系统动力学(受控系统的时变性质)相关太长,则有效控制系统输出即使不是不可能也是困难的。振荡和“失控”错误可能会累积,使系统面临失败的危险,可能是非常戏剧性的。通常,MCU关闭环路的速度越快(处理输出传感器,确定任何参考误差,并调整系统输入),效果越好。 因此,高效的定时和计数是最佳关闭控制回路所需的关键功能,具有高级定时外设的MCU可以最佳地实现控制回路。例如,Silicon Labs EFM32LG360F64G-E-CSP81 MCU具有定时器/计数器外设,具有在控制环实现中有用的几个功能。除了闭环控制器的主循环定时器之外,通常还需要定时和计数功能。让我们更详细地看一下EFM32LG计数器/定时器外设的框图(图2),看看它如何帮助实现图1所示的控制回路系统中的其他常用功能。
图2:Silicon Labs EFM32LG MCU定时器/计数器框图 Timer/的一个有用功能计数器是通过图左侧的TIMn_CCn引脚计算来自外部源的转换的能力。当观察基于动态系统的测量输出产生转变的传感器时,这些输入可能是有用的。例如,基于位置测量的旋转测量通常在每次旋转时产生过渡。另请注意,图中上部有一个正交解码器模块,可用于类似的测量。当记录到达存储在Timern_TOP中的终端值时,记录的计数可用于触发中断以立即采取行动,或者可以存储以供将来处理。 定时器/计数器输出,图中右侧的TIMn_CCn引脚,可以使用通用的脉冲宽度调制(PWM)方案来控制动态系统的输入。在这些系统中,信号有效的时间与用于控制的所需电压或电流水平有关。精确控制信号周期,信号高电平时间和边沿转换点都很关键,可以在定时器/计数器的PWM功能内有效控制。具有三个独立的PWM输出也便于常见的电机控制应用,其中三个独立的绕组用于改变与旋转电机相关的磁场。
智能外设控制 实现快速有效的环路反馈时间通常需要使用智能外设来卸载高功率CPU和程序存储器模块的处理。如果外设可以独立于CPU运行,则可以允许CPU执行其他更复杂的处理任务,甚至可以在低功耗状态下等待,直到需要处理为止。一些高级MCU具有特殊的外围控制系统,可通过将外围设备连接在一起来配置自主操作,因此无需CPU干预。例如,瑞萨R5F52108CDFM MCU是RX210 MCU组的成员,它具有一个事件链路控制器(ELC),用于连接和控制外围输出到外设输入,以实现自主操作。 ELC的框图如下图3所示。
图3:瑞萨RX210群MCU事件链路控制器框图 图中左侧的内部外围总线用于互连外围设备,如图所示。图的右侧。所有外设,包括DMA控制器,数据传输控制器(DTC)和中断控制器单元(ICU)都可以与专用控制器连接,以根据中断,定时器比较结果或引脚转换自动激活外设。多达59种类型的事件信号可以链接到外设,以启动转换,启动定时器,并开始DMA或DTC传输或任何其他所需的外设。当发生已设置为触发的事件时,将启动为所选模块设置的操作。 可以启动多个操作链,这样就可以在没有CPU干预的情况下完成复杂的操作。例如,计时器可以启动模数转换,并将转换后的值存储在存储器中。计数器可以跟踪转换次数,当计数表明可以处理完整数据集时,CPU可能会被中断。在CPU处理期间,时钟振荡器也可以自动切换到更快的模式。通过充分利用ELC,可以非常快速有效地完成常见控制回路中所需的许多传感功能,从而可以轻松实现快速回路时间,同时将功率降至最低。
高效计算 正如我们所看到的,使用智能和自主计数器/定时器和外设可以缩短循环时间并降低功耗 - 这两者都是控制系统设计的重要方面。通常,在每个主控制系统块中需要计算以处理在感测,比较,控制和操作受控系统时所需的数据。实际上,随着控制系统效率,精度和长使用寿命成为重要的系统要求,计算要求急剧增加。用于实现控制回路的高级算法现在使用比例积分微分算法,其中通常需要浮点计算以提高精度。如果硬件不支持高级计算,则很难实现所需频率的控制环闭合。 MCU制造商了解对高级处理能力的需求,并且即使在低端MCU上也包含了数字处理功能,可以加速复杂闭环控制设计所需的计算速度。高端MCU通常包括专用硬件,以加速最精确控制应用所需的浮点计算。飞思卡尔Kinetis K60 MK61FN1M0VMD15 MK61FN1M0VM类MCU使用带有DSP指令的32位ARM Cortex-M CPU和单精度浮点单元来加速最复杂控制算法所需的高级计算。 DSP指令包括用于快速处理高精度信号的扩展单周期多累加(MAC)指令,以及用于更快处理低分辨率信号的单指令多数据(SIMD)指令。硬件分频块仅在2到12个周期内工作,从而加速了常见的缩放操作。 为了获得更高的性能,可以使用双核CPU,以便可以并行完成处理任务。例如,德州仪器协奏曲微控制器,如F28M35H52,具有ARM Cortex-M3 32位CPU和具有浮点功能的Texas Instruments TMS320C28x 32位CPU。该双核MCU的框图如下图4所示。
图4:德州仪器F28M35x协同MCU单片机框图 基于ARM的MCU位于图的上半部分,可用于管理外设,而Concerto CPU可用于处理数据和管理受控系统。请注意,PWM定时器与Concerto子系统紧密相关,可以轻松生成受控系统输入所需的复杂波形。当您的应用程序具有易于分离的算法时,双核CPU之间的这种专业化非常重要。如果您只需要单个算法需要更多处理能力,或者需要双CPU以锁步方式运行以获得更高的可靠性,那么具有相同处理子系统的同类双CPU(如德州仪器Hercules RM4 ARM Cortex-R4 MCU)可能更适合。用于高可靠性应用的闭环控制系统可以使用异构双CPU实现的内置冗余来实现更高效和稳健的设计。
结论 关闭控制在基于MCU的设计中有效地循环不需要充分利用反复试验方法来寻找最佳实现。更加系统化的方法可以正确使用现代MCU的所有高级功能,可以帮助您创建更高效,更快速,更低功耗和更具成本效益的控制系统解决方案。
|