在《电子工程专辑》2001年7、8、9月三期,本刊介绍了适用于步进电机的无感运动控制方法,本文将介绍可以应用于既便宜又耐用的感应电机的解决方案。
首先,让我们回顾前几期的内容。步进电机不需要位置传感器。它的整个旋转过程分为多个磁极(及多个完整的电周期)。线圈通电后,转子从一个磁极到另一个磁极、从一个电周期到另一个电周期步进旋转。通过这一结构,就可以随时知道步进电机相对于起点的位置。
但是步进电机是一种专用电机,其扭矩、速度和加速度不一定能够满足所有应用的要求。于是我们使用三相无刷永磁电机作为替代方案。这一方案的原理是当电机的反向电磁力(EMF)达到零时,在电机换向之前插入一个与旋转速度成正比的延时。反向EMF是在电机轴的转动过程中,由转子磁场和定子线圈之间的相互作用产生的电压。但是,这种方案仅在电机转动时才奏效。因为如果电机不转动,就不会产生反向EMF,更加无从探测。
由此可见,以上两种方法所使用的电机应用范围较窄,而且比较昂贵。
面向场的控制
过去,我曾经介绍了“面向场的控制”的算法。通过这一方法可以从与转子(相对于定子)相联的静止结构的角度观察控制电机扭矩的电流,从而避免一些十分复杂的数学和控制问题。从这一静止结构的角度观察,有两个矢量:Id和Iq。Iq和Id分别代表转子和定子中的电流(磁场)。这两个矢量相互垂直,Iq矢量的幅值决定系统的扭矩。
永磁电机的磁场是固定的。所以仅需控制Iq就可以产生加速度和速度。在感应电机中,必须产生Id,因为转子是一个电磁铁,需要电流的驱动。
通过一些相对简单的数学运算,Id和Iq从静止的转子平面转换到不断移动的定子结构,这样就产生了变换周期以及驱动三相所需的电流。这是目前最常用的电机控制方法之一。
尽管面向场的控制法很简单,但它在很大程度上取决于编码器的反馈。如果不能得到反馈信息该怎么办呢?在有的应用中,某些传感器是不合需要或不实用的,而这在运动控制中,可能意味着无法可靠地为控制器提供数据,因为电机处在未知位置。而增加传感器是不实际的,因为成本可能非常高。
如果应用以下方法,就可以使这样一个系统在没有编码器的反馈的情况下仍可以继续工作。而且这种方法适用于我们曾讨论过的任何电机类型(以及很多其它应用)。它不仅可以在全速、全加速运动时适用,还适用于完全静止的状态。
用于拟合未知系统的观察器
假设有一个已知系统,但不知道对它进行控制所需的内部数据,这时,我们会直觉地问:如果不能直接测量这些数据,那是否可以计算出来呢?当然可以,只要它们是线性的,就可以计算。
我们可以参照真实系统建立一个感知系统(或称算法),两者接收相同的输入。根据我们对真实系统的工作方式的认识,可以让感知系统产生一个与真实系统相同的输出,再使用计算出的变量控制真实系统。这一感知系统就称为观察器(observer)。
在大多数系统中,有许多内部状态非常关键。如果某些内部状态变量不能直接测到,就必须算出来。
一组未知变量的可观察性取决于其数值是否可以由一组给定的约束条件唯一地确定。这些约束条件可以用包含未知变量的函数的公式表达。如果未知变量的数值可以由这些给定的约束条件唯一确定,则称其为可观察的。
观察器接收到的数据与真实系统相同,它根据系统的模型计算出内部状态值。真实系统的起始状态通常都是未知的,但是我们可以将计算值与测得的输出矢量比较,利用差异来校正系统。这种形式的观察器称为Luenberger观察器。
但是,Luenberger观察器有一个不适用于特定系统的重大缺陷:它很大程度上取决于设置参数和测量输出矢量的精确度。测量中出现的任何干扰(噪声)、参数差异或内部噪声都可能使观察器失效。下面介绍的卡尔曼滤波器可以解决这个问题。
卡尔曼滤波器
卡尔曼滤波器使用统计学原理根据输入以及包含噪声的数据来估算输出。它可以用于控制复杂动态系统,如连续生产过程、飞机、船只和太空船。它甚至还曾用于预测人力无法控制的动态系统,如洪水的流向、天体的运行轨迹或者贸易商品的价格。
卡尔曼滤波器可以从非直接(有噪声)的测量中推测出缺失的信息。可以发现任何其它关于输入和输出的线性函数都无法给出的较小的均方估算误差-尤其是对于噪声(随机变量)是高斯噪声的过程,可以用最小平方法获得噪声数据的最佳估算。
最小平方法
要拟合一个过程或系统,通常可以测量系统的几个分立的点。当然,如果不知道被分析系统的所有细节,是不可能做出高质量的拟合的。
在信号处理和工程学中,我们的假设通常建立在Weierstrass拟合法则的基础之上:假设f(x)为在闭合曲线[a,b]上连续的任一函数,则对于所有的e> 0,始终存在一个整数n = n(e),以及一个n级多项式Pn(x),使得对于[a,b]之间的所有x,都满足[f(x)-Pn(x)] 最简单的统计学拟合可能就是直线。假设有一个由测量值组成的数据集,测量点的间隔相等(均相对于零点)。我们的目的是生成一个多项式以拟合这些点,尽管结果不可能完全精确。因为,即使多项式可以扩展到任意高的级次,依然会存在某些差异,这些差异称为残差。
最小平方法定义的原则是,在所有级数的多项式中,我们应该选择残差的平方和最小的一个。
现在将数据集组织成一组点(tm, xm),其中tm表示采样间隔,而xm表示在这些间隔上取得的数据。图1表示这个数据集的实例。我们先将数据拟合成一条直线。直线的公式为:y=A+Bm
在下式中,我们得到直线拟合的结果和测得的数据的差的平方值的和: 如果直线模型很适合,差异将是最小的-尤其当我们忽略了可能发生在处理和测量中的一切噪声的时候。但是,除非数据集很特别,直线不足以逼近实际情况。也就是说,我们选择的模型不适合该数据集。
如何建立一个好的模型,是观察器的主要问题之一。
系统模型
为了控制动态系统,必须了解它的工作过程。如果了解并可以描述其工作过程,我们就可以为它建模了,通常是使用一个或多个微分方程描述实体系统。这些微分方程组成了系统的转移函数。 在许多情况下,这一模型可以逼真地描述真实系统。但在这种情况下,我们还希望使用这一模型进行估算、预测或平滑,所以建立一个可以重复使用的模型对我们很有帮助。
在上述例子中,我们用到了数据点。虽然可以积累无限多的数据点,但建立一个代表这些数据的方法更加合理,这样可以得到同样的数据,而花费最小。因此,我们要建立一个可以方便地使用回归结构的模型。这意味着什么呢?
可以用下式计算这些数据的平均值: 但是如果我们按照下式计算,也可以得到同样的数据: 我们用一个简单的模型看一下它的工作过程。以一个RC电路为例,图2表示了这样一个电路网络。
我们可以看到流经电容的电流等于: 因此,电容电流的积分值除以电容就可以得到电容两端的电压: 然后就可以用微分方程为这一电路建模。这样,我们可以模仿这一RC电路的特性。
本文总结
下期我们将对系统建模和回归处理进行讨论,并讨论观察器和建模是如何适用于其它形式的信号处理的。
[Embedded Systems Programming]