模拟数据数字化

了解如何为控制系统应用创建模拟系统的数字表示。

通过Peter Way, VentiMar 2010年3月1日
链接
www.ventimar.com
在www.globalelove.com/archive上阅读Vance VanDoren的相关文章:
继电器方法自动PID循环整定,2009年9月
时间比例控制:更多来自开关,2009年5月
梳理PID控制器差异,2009年2月
数值滤波基础,2008年10月。
过程控制器预测未来,2008年3月。

编者注:去年11月,我们发表了一篇文章,设计自己的控制系统,这提供了一个关于工业控制系统设计概念的更详细工作的链接。我们警告说,它解决了一些问题,可能会让你重温工程学院的数学课本。文章的全文版本被大量下载,这表明你们读者并不害怕挑战。

本月我们将提供另一个相同的内容,讨论如何将从过程和离散现场设备和传感器获取的模拟数据转换为用于控制系统的数字表示。本文展示了如何从模拟(或连续)模型创建数字控制器,这在使用处理器控制模拟系统时特别有用。虽然有许多方法可用于模拟和数字系统之间的转换,作者集中在Tustin的方法而且持有等价这两种效果特别好。对这些特殊的方法进行评估,以显示它们如何与模拟系统进行比较,以及如何将它们用作该主题的介绍或应用于高级系统。

控制系统应用模拟系统的数字表示法是一个浓缩的(12页)教程,应该有助于扩展您对大多数过程和离散控制系统基础上的关键概念的理解。

本文作者Peter Way是VentiMar, LLC的总裁,该公司是一家帮助企业开发和销售高科技产品的咨询集团。他还为控制系统项目提供咨询。联络他的地址是peterw@ventimar.com.以下内容摘自本教程。

离散表示将采样和输出重构函数考虑在内。

引言节选:

本教程展示如何从模拟(或连续)模型创建数字控制器。这在处理器用来控制模拟系统时尤其有用。注意,这个过程同样适用于将滤波器或补偿器从模拟形式转换为数字形式。

有许多方法可以在模拟系统和数字系统之间进行转换。我已经尝试了其他几种方法,并选择了两种很好的模拟系统建模方法:Tustin的方法而且持有等价.对这些系统进行评估以显示它们与模拟系统的比较情况。这些方法在过去实现起来很繁琐,现在可以通过符号代数或矩阵形式求解方程的工具轻松管理。这使得工作更容易和更准确。

只是提供了少量的理论来帮助理解这些方法。如果你想了解公式的全部细节和推导,请查阅数字控制教科书。本应用说明是介绍性的,但这些技术也可以应用于高级解决方案。

处理器采样模拟(连续)系统信号,并将值转换为它们可以使用的数字。通常,模数转换器(ADC)在每个时间T(采样时间)读取信号。处理器中保存了一系列这样的值。

另一种常见的输入设备是旋转或线性编码器。在这种情况下,编码器移动时计算脉冲。在每一次T,根据旋转方向,增加/减少当前计数以得到一个新的位置。速度与在每次时间t中接收到的计数数成正比。一旦处理器完成了所需的计算,这些数字就会被重构成信号,供系统的其余部分使用。

如果需要模拟输出,最简单的解决方案是通过数模转换器(DAC)输出当前值,并保持它直到新的输出。这意味着零阶保持器(ZOH),是最常见的重构器。另一种常用的重建信号的方法是通过脉冲宽度调制器(PWM)。该调制器产生恒频方波并改变脉冲宽度。PWM的好处是它可以有效地驱动功率晶体管来移动电机或执行器。许多处理器都有内置的PWM和DAC输出和ADC转换器。本文的所有模型都是用SimApp4仿真程序制作的。

设计数字控制器主要有两种选择:

方法1首先设计一个模拟控制器。然后将其转换为数字形式,包括对模拟工厂进行采样并在DAC上保持输出的效果。这种方法对于设计人员来说是最直观的,因为您正在熟悉的s域(拉普拉斯域)中工作。关键是要制作一个真正能很好地代表模拟控制器的数字等效控制器。

方法2:首先将植物、DAC/ZOH和ADC转换为有效的数字形式。然后设计一个数字控制器,使该系统达到预期的性能。当设备包含延迟元件时,这种方法可能有一些优点,因为这是自然地以数字形式建模的。这个模型不是很直观,因为系统的动态规范需要在离散域(z域)中定义。这通常从s域规范开始,然后将解决方案的极点/零映射到z域。

在本应用笔记中,我们将假设方法1。你可能做过补偿器设计,无论是PID还是更复杂的。由于补偿器本质上是滤波器,讨论将展示如何将一个示例模拟滤波器转换为数字滤波器。然后可以对整个系统进行模拟,以确保获得正确的结果。

离散等价——Z变换比看起来要简单

处理器的工作是在每个采样时间T读入输入(在ADC上):u0u1...un-1un,然后随着时间的推移将其转换为输出(到DAC):y0y1...yn-1yn.下标n表示当前时间和n1,n-2,等等,其他发生在时间间隔t之前。处理器只保留计算输出所需的最后几个值。

在处理器中,我们可能想用a从输入中得到一个输出差分方程就像这样一个而且b值为常量:

yn一个1yn-1+一个2yn-2+一个3.yn3…+b0un+b1un-1+b2un-2...

这是具有单一输入/输出的数字滤波器的一般形式。它是一个方程的形式,可以很容易地在处理器中实现。注意,如果我们使一个取值为0,和bnbn-1bn-2= 1/3,结果是三个值的移动平均值(一个非常简单的数字滤波器)。

执行的两个要点:

1.差分方程假设在计时器结束时立即计算un是测量。输出yn立即交给DAC计算自然要花些时间。您可以预先计算在上次采样期间依赖于过去值的项目,然后只添加新信息b0un一旦计时器中断发生。如果计算延迟Td在测量和输出之间是重要的,你可以建模一个额外的小延迟e- - - - - -性病延迟到被控制的模拟装置的模型中。

2.数字控制中涉及的许多计算都应该用浮点数来完成。虽然可以进行整数或字节级数学运算,但要实现数值精度的方程可能需要花费大量精力。如果可能,为什么不使用更快的处理器呢?

理解Z变换

如果你还记得拉普拉斯变换(频域)的基本知识,时间T的延迟是由与的乘法表示的e- - - - - -.如果您有兴趣了解这是如何工作的,请查看控制系统文本。因此,处理上述输入和输出并提供它们之间正确关系的一种方法是若干固定时间T延迟。请注意,u0T早于u1等等,到更高的下标。一般的说法是:un- - - - - -kkT早于un,.如果当前时间为un在频域中,之前时间的延迟写为:esk电讯.这与(e-k.现在为了简化这个符号,我们将使用:z1 =e-.(谁想一直写指数呢?)esk电讯就等于z- k.你还会看到ze在书中,因为这在数学上是正确的(但需要你有时间机器去未来)。所以方程总是要重新排列以便在执行之前指数为负或0。

浏览本文,请访问//www.globalelove.com/file/10409-Digital_Representation_of_Analog_Systems.pdf