电机控制中可编程 SoC 与专用 MCU 之间的权衡

时间:2023-03-20

控制系统在当今的嵌入式和工业应用中非常重要,从小型手持设备到笨重的机械设备。大多数自动控制系统使用负反馈来控制物理参数,例如位置、速度、扭矩、电压、电流、强度等。

要控制的参数由传感器感测并反馈到输入以与参考值进行比较。从参考输入信号中减去采样输出信号称为负反馈。差异信号(称为“误差”)然后被放大以驱动系统(称为“驱动”),使输出接近参考值。

换句话说,该系统旨在化误差信号,因此是一个闭环控制系统。机电系统构成了传统控制系统中广泛的领域,其中电机控制是一种常用的应用。

通常,电机控制系统分为速度、位置或方向控制等子系统。让我们从一个简单的速度控制系统开始,我们在其中向电机施加恒定电压 (V)。默认情况下,任何电机在特定电源电压 (V) 下都以特定速度 (x) 旋转。如果以相同的电压 (V) 向电机施加负载,则电机可能会减速至速度 (y)。因此,我们无法控制电机的速度或使电机在不受任何外部因素影响的情况下以恒定速度旋转。这是一个开环系统。因此,我们需要一种反馈机制来感应电机的速度并补偿这些因素。



点击图片可放大。


图 1:控制电机速度的闭环系统 

图 1 显示了一个闭环电机控制系统。在这里,运动控制器将从反馈系统获得的信号与给定的实际输入进行比较,以获得误差信号,然后将其放大并应用于电机。在这个系统中,运动控制器和放大器块将校正因子馈送到电机可以通过混合信号控制器实现,光学旋转编码器可以用作传感器,因为来自该组件的输出信号可以通过控制器轻松解码. 下面提供了对这些系统块中的每一个的进一步解释。

直流和步进电机 
电动机将电能转换为机械能。用于各个行业的一些常见电机包括:

直流电机: 简单的直流电机在轴上使用线圈绕组,带有固定的永磁体(图 2)。当电压 (V) 施加到线圈时,电流 (i) 流过它。由于存在磁场 (B),力 (F) 作用在线圈上(根据弗莱明斯右手定则),使其旋转。一旦线圈到达永磁体的一个磁极,它就会受到排斥力并向另一个磁极移动。这涉及连续旋转,其速度由施加的直流电压决定。


图 2:直流电机的工作 

步进电机: 永磁步进电机由永磁转子、线圈绕组和导磁定子组成。
给线圈绕组通电会产生一个具有北极和南极的电磁场。定子携带磁场。可以通过顺序激励或“步进”定子线圈来改变磁场,这会产生旋转运动。

两相电机的工作如图 2所示。在步骤 1 中,两相定子的 A 相通电。这会将转子磁力锁定在所示位置,因为异极相吸。在步骤2中,A相关闭,B相开启,使转子顺时针旋转90°。在第 3 步中,B 相开启,但极性与第 1 步相反,导致另一个 90° 旋转。在步骤4中,A相关闭,B相打开,极性与步骤2相反。重复此顺序会使转子以 90° 的步长顺时针旋转。

在步进电机中,电机旋转的速度由执行步骤 1 至 4 的速度决定。


图 3:步进电机的工作

旋转编码器 
电机控制系统的下一部分是反馈传感器,它可以检测电机的状态并将其反馈给控制器。旋转编码器是一种简单的机电设备,可以为其轴上的每一步旋转产生合适的脉冲。它可以分为两种类型:编码器和增量编码器。

编码器:  编码器为电机轴的每个位置提供固定输出。例如,如果编码器可以在 0°(固定)、45°、90°、135°、180°、225°、270°、315°(总共 8 个位置 - 45° 分辨率)的角度检测轴的位置,一个 3 位的值被分配给每个位置,比如从 000 到 111。

增量编码器: 使用增量编码器,只能确定电机的相对位置(即,只能确定相对于先前位置的旋转方向和角度)。增量编码器发出两个信号,A 和 B,当没有旋转时,这两个信号都有一个默认值,比如逻辑 0 或逻辑 1。当轴上有一个小角度旋转时,信号 A 和 B 都转换为其他逻辑持续时间很短,然后返回到默认值。对于每次这样的旋转,A 和 B 信号都会发生转换。根据旋转方向,A 中的过渡会导致 B 中的过渡,反之亦然。图 4 显示了顺时针和逆时针旋转的 A 和 B 信号。


图 4:信号 A 和 B 的转换 

旋转编码器还可以根据所使用的工作原理进一步分类。他们是:

机械编码器:  信号 A 和 B 的转换在它们与金属接地(逻辑 0)接触时发生,一个接一个。

磁性编码器: 转子随轴转动,并在其圆周周围包含交替且均匀分布的北极和南极。传感器根据磁力线的方向检测位置和旋转方向的这些微小变化。

光学编码器: 来自发光二极管的光线穿过一个圆盘,该圆盘的轴附有透明和不透明部分。射线由两个光电探测器(传感器 A 和 B)检测,然后产生四相脉冲 A 和 B。

图 5 显示了一个示例机械编码器。

图 5:机械旋转编码器 

第 2 页,共 2 页

速度测量设备: 转速表广泛用于测量电机的转速。电机的轴连接到类似于直流发电机的转速表(即,它从机械能中产生电能),输出与电机旋转速度成比例的直流电压(图 6)。转速计产生的电压用于进一步处理。

如今,许多设计人员正在转向旋转编码器,因为它们会为每一圈旋转生成数字输出。它们也不会像转速表那样因磨损而退化。将旋转编码器的输出馈送到微控制器提供了一种直接的方法来监视和控制以旋转编码器作为传感器的电机的速度。


图 6:连接旋转编码器与直流电机

运动控制器块:  需要运动控制器将参考速度与实际速度进行比较,并将误差信号反馈给电机。由于上面讨论的旋转编码器返回两个正交相位信号 A 和 B,我们需要实现逻辑来解码这些信号并感测电机的当前速度。通过计算感测速度与实际速度之间的差异,我们可以为电机提供一个校正因子,使其达到所需的速度。由于控制电机的电源可以控制其转速,因此要提供的校正因子涉及对给定电源电压进行适当的电压校正。

使用可编程 SoC 进行电机控制 
以下部分详细描述了此速度控制应用,其中赛普拉斯 PSoC 3/5 用作运动控制器。尽管可以使用许多控制器来执行此操作,但 PSoC 包含灵活的可视化嵌入式设计方法,其中包括预配置、用户定义的外设和分层原理图条目。它还包括高精度可编程模拟模块,包括 12 至 20 位 delta-sigma ADC、数字逻辑库、电源管理和对电机控制应用有用的连接资源。

如果我们打算解码来自旋转编码器的信号并进行进一步处理,我们通常必须在普通微控制器中使用中断例程,这会阻止在为该中断例程提供服务时执行其他功能。

对于可编程 SoC 设备,微控制器具有单独的数字块/硬件块,可以解码这些四相信号(A 和 B)并存储当前计数值(即自动递增和递减)。

在反馈回路中,如果我们通过电机适配器将电机轴(其速度要测量)与旋转编码器的轴连接(这可能会给电机加载),编码器的轴将以与电机相同的速度旋转。这些编码器的输出可以馈送到 PSoC 3/5 中可用的正交解码器模块,以进行进一步处理以完整实现典型的电机控制系统。

电机控制应用示例 
电机相关应用的常见要求之一是“速度测量”。如前所述,当前计数值可以存储在解码器模块中。使用这个,我们可以通过测量每分钟的计数值来测量电机的速度,因为电机的速度通常以每分钟转数来测量。

例如,每分钟后我们可以重置计数值,或者我们可以使用计数的差异进行计算。无需等待一分钟,甚至可以每秒测量计数值,然后乘以 60,尽管这可能无法提供与每分钟测量所获得的值一样的值。因此,电机的转速可以计算为


公式 1 

例如,假设我们需要将步进电机的速度保持在 6000 rpm。考虑到一个开环系统,我们只需要一个控制器向步进电机输出方波信号,使其以 6000 rpm 的速度沿一个方向旋转。然而,当我们给电机增加负载时,电机的速度会降低到它应该运行的实际值以下。因此,我们无法达到所需的速度,也无法调整它。
为了使速度保持在一个特定值而不考虑电机负载的变化,我们需要遵循闭环系统的原理。如前所述,我们使用旋转编码器来感测和反馈当前转速。我们对编码器的选择取决于旋转速度和所需的速度精度。来自旋转编码器的信号使用 PSoC Creator 工具提供的四路解码器模块进行解码。

合适的时钟频率被路由到四路解码器模块,具体取决于电机每分钟的旋转数。例如,如果转速为 9000 rpm,则转换为每秒 150 转。如果编码器每转一圈给出4个脉冲(编码器特性),那么解码模块需要的时钟频率为150*4*10=6kHz(是A、B信号的10倍)。

由于我们需要每秒跟踪计数值,我们可以每 1 秒产生一个中断。在中断服务例程中,我们可以捕获计数寄存器值,然后将其清零(即,用于测量下一秒的速度),并使用等式 1 可以确定电机的速度。

两个研究:PSoC 与 MCU 实施 
以下两个列出了直流电机的可能电源以及控制它的逻辑。

情况 1:使用相同的 PSoC 3/5 通过电流缓冲器驱动直流电机。例如,如果直流电机的规格是在空载条件下使用 5 V 电源消耗 88 mA,我们可以连接 PSoC 的输出3/5用直流电机通过一个电流驱动电路,如所示:


图 7:通过 PSoC 驱动的直流电机 

虽然给出了恒定的 5V 直流电源,但电机按照此处的示例以全速(即 9000 rpm)旋转。光学旋转编码器与电机一起以相同的速度旋转,并且使用 PSoC 3/5 中的解码器测量编码器的输出。现在微控制器检测到速度为 9000 rpm,并将其与所需值(即 6000 rpm 或实际速度的 2/3 倍)进行比较。校正响应为 -3000 rpm(即,-1/3 倍于当前提供给电机的电压)。

这种电压变化可以使用 PWM 来实现。通过改变 PWM 的占空比,可以改变平均电压。PSoC Creator 中有一个拖放式 PWM 模块。提供给 PWM 模块的时钟频率取决于应用所需的速度分辨率。

这里所需的占空比为 2/3。因此,PWM 模块每个周期的平均输出电压为 5*2/3 = 3.33 V。PWM 模块的输出提供给连接到直流电机的电流驱动电路。直流电机现在以所需的 6000rpm 速度旋转。旋转编码器再次感应速度,检测到 6000 rpm,并将其反馈给控制器。现在误差系数为 0。PWM 保持其先前的状态,电机保持其速度。

假设向电机添加负载,虽然占空比保持在 2/3,但电机的速度下降到 5000 rpm。现在旋转编码器检测速度并将其馈送到 PSoC 3/5。现在,误差因子为 +1000 rpm(即)原始/自由运行速度的 1/9。因此,PWM 的占空比增加了 1/9 倍(当前占空比 = 2/3+1/ 9 = 7/9)。该因数通过固件写入 PWMDigital 块。

2: 直流电机通过 MCU 供电。如果直流电机通过另一个控制器供电,则 PSoC 控制器可用于通过 I2C 等接口将电机的当前状态反馈给另一个控制器。如果直流电机通过外部电池供电,则可以通过图 8 中所示的逻辑轻松控制其速度。PSoC 的 PWM 输出可以馈送到开关,该开关将打开并以特定占空比切换电机电源使其符合与以前相同的标准。

上一篇:Excelpoint - IO-Link——直至最后一米的连续通信
下一篇:监控外部输入时降低 MCU 能耗

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料