65.9K
CodeProject 正在变化。 阅读更多。
Home

通用科学与工程框架 - 第三部分:控制系统。信号处理。

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.97/5 (12投票s)

2006年7月24日

CPOL

11分钟阅读

viewsIcon

103873

downloadIcon

7902

一篇关于通用可扩展工程框架在自动控制和信号处理中的应用的论文。

更多信息,请访问以下网站

The main form of the framework

目录

引言

这个框架的通用性有一个缺点。由于它拥有大量的功能,因此很难学习。即使是该软件的作者也经常感到气馁。学习或使用该软件的最佳方法是处理大量的应用程序示例。本文包含有关自动控制和信号处理的示例。

背景

自动控制和信号处理,总的来说,是纯数学。原则上,可以使用MatCAD来进行。然而,该框架的目的不仅仅是计算。计算应该与其他软件功能互操作,例如3D图形。因此,我将展示自动控制和信号处理的应用示例。

最新消息 (2014)

该软件有许多改进。现在它与Visual Studio 2013兼容。它还支持Simulink实时。这些新功能在此简要介绍。我修复了相位检测器示例中的一个错误。

最新消息 (2007)

我现在正在做一个非常有趣的工作,所以没有多少时间来撰写该框架的深入描述。而且,我也找不到助手。一个能抓住问题本质的人通常有自己的出色工作。然而,该框架正在密集开发中,我希望开发人员了解其新更新。因此,我没有写深入的描述,而是简要地说明了框架的更改。

测试

现在框架可以测试一系列情况。测试代码属于TestCategory.csprojAstronomyGL_Test.csproj项目。用户可以将一组*.cfa文件放入目录或数据库中,框架可以测试所有这些文件。

用户界面

以前版本的属性编辑器只能在单独的窗口中打开。现在您可以在桌面上找到它们。

New layout

现在图表直接放置在桌面上。右键单击标题(例如,Chart)将在单独的窗口中显示旧布局。

Separate window

此外,新版本的软件包含Weifen Luo开发的DockManager。我发现打开文件操作是一项非常耗时的工作。因此,新版本允许我们将*.cfa文件拖到桌面上。结果与文件打开相同。

框架在其他情况下也使用拖放。例如,如果我们把系列Series component组件放在桌面上,然后将一个*.gra文件拖到它上面,那么文件中的任何系列内容都将被加载到该组件中。

Putting series

时间导数

公式编辑器的新版本包含一项新操作,Time derivation。让我们考虑一下这个操作的用法。例如,我们有以下图片

Time derivation usage

Init组件具有以下属性编辑器

Property editor of Init

Init有一个公式,并接受导数阶数3。这意味着Init的任何客户端都可以使用最高为3阶的公式导数。DerInit的一个客户端。其属性编辑器如下所示

Property editor of Der

我们有两个公式,只有一个输入变量x。这个变量实际上是Init公式1。变量由Init提供。因此,我们可以计算需要x导数的公式导数,其阶数不超过3。

其他功能简介

目前的框架版本包含许多新组件:磁场、3D场传感器、惯性导航系统等。虽然这些功能不属于纯自动控制理论,但它们与具体的自动控制系统相关。例如,磁场和场传感器组件可用于模拟航天器姿态控制系统。

现在有一个专门介绍该框架的网站。我和我的同事更多的是工程师和科学家,而不是软件开发人员或架构师。我的许多工作不符合CodeProject的标准。如果您想了解我的工作,可以访问框架网站。本文包含一个关于传递函数和狄拉克δ函数的新章节。

双通道跟踪系统

此示例包含雷达跟踪系统的仿真。请看上图。它有两个通道:方位通道和俯仰角通道。该系统的几何结构表示在下图中。

Geometry

在这种情况下,天线安装在一个具有两个自由度(方位角和俯仰角通道)的万向节悬挂上。让我们来构建这个场景。

Situation

我们有Ground坐标系。我们在其上安装了Azimuth坐标系,并在Azimuth坐标系上安装了Elevation坐标系。Azimuth坐标系绕Ground坐标系的y轴旋转,Elevation坐标系绕Azimuth坐标系的z轴旋转。结果,Elevation坐标系就是天线的坐标系。

我们还有一个Vehicle坐标系。它的运动由Motion组件定义。我们选择了这样的运动,使得以下图表看起来很漂亮。Measurements组件执行Vehicle坐标系相对于Elevation坐标系的测量参数。这些测量值将在下面用于构建控制系统。我们让天线对axisrving线进行角度测量。这些测量值由y/dz/d唯一确定,其中yzd分别是Vehicle在天线参考坐标系中表示的y坐标、z坐标和距离。我们将使用以下控制律

Control law

...其中Control lawControl law是万向节的角度,而abcfgh是常数。这个控制律实际上是控制理论的标准。常数通常根据该理论的稳定性和其他标准来选择。然后我们将构建控制律。

Control law

Delta计算y/dz/d

Delta

Delta的数据输入是Measurements的参数:

Delta

System组件求解控制律的微分方程。这两个二阶方程被分解成四个一阶常微分方程。看起来是这样的。

Delta

然后我们添加另一个组件来计算AzimuthElevation组件的方向四元数。我们还添加了指示组件。点击这里下载此场景。控制量的图形分析如下图所示。

Delta

浅红色和深红色曲线分别对应于Vehicle的方位角和天线方向。同样,浅蓝色和深蓝色曲线对应于俯仰角通道。这样,就构建了一个控制系统。此外,我们可以在天线上安装一个虚拟摄像头(Elevation),并观察Vehicle运动的3D视频。在第7部分中,我在GroundVehicle上安装了摄像头。虚拟摄像头在该软件描述的第2部分中使用。稍后,我们可以安装一个虚拟无线电发射器/接收器在天线上,以及虚拟电子设备等。点击这里下载此示例

开关控制元件

许多控制系统使用开关控制元件,该元件具有以下输入-输出函数。

Delta

该函数有以下数学描述。

如果我们有多组3D物体的照片,我们可以得到它的6D位置。在本例中,问题解决了如下。从照片和虚拟摄像头,我们得到物体轮廓,如下图所示。

Delta

...其中Delta是第n个时间点的输入和输出。我们将使用一个递归元件来模拟这个元件。该元件的一个简单使用场景如下所示。

Delta

Recursive组件包含开关控制元件的递归方程。这些方程看起来是这样的。

Delta

结果,我们得到以下图表。

Delta

红色曲线是输入,绿色曲线是输出。点击这里下载此示例

连续滤波器

通常,连续滤波器由常微分方程组描述。由于我们上面已经讨论了常微分方程组,因此我们的描述将非常简短。您应该点击这里下载一个连续滤波器的示例。滤波结果如下图所示。

Delta

红色曲线是滤波器的输入,绿色曲线是输出。输出看起来更平滑。它有相位偏移。您可以处理获得的逆时域信号通过此滤波器来避免相位偏移。

数字滤波器

一个数字滤波器是任何电子滤波器,它通过对信号的中间形式执行数字数学运算来工作。我们将考虑一个三阶巴特沃斯滤波器的数字版本。该滤波器的Z变换如下所示。

Delta

...其中...

Delta

这个Delta是截止角频率。我构造了这个滤波器作为传递函数为Delta的递归元件的级联。与连续滤波一样,它也执行平滑处理。点击这里下载此数字滤波器示例

频率差检测器

在本例中,我使用了标准频率解调的数字版本,用于FM信号。该方法如下所示。

Delta

Diff组件执行数值微分。Abs组件是数字整流器Integral组件是数字低通滤波器。输入信号是一个chirp信号。解调结果如下所示。

Delta

解调误差是由于滤波器的增益频率特性是非线性的。 点击这里下载此示例

相位鉴频器

本例致力于确定两个信号相位差的余弦。我使用了以下相关方案。

Delta

p1p2包含两个谐波信号,x(t)和y(t),频率几乎相等。Multiplication计算这些信号的平方和乘积。Integration执行以下积分的数字计算。

Delta

Integration还执行具有以下传递函数的数字滤波。

Delta

Post根据以下表达式计算余弦。

Delta

正如预期的那样,这个鉴频器显示了以下相位差余弦的确定图。

Delta

点击这里下载此示例.

传递函数

一个传递函数是在拉普拉斯域中系统输出与系统输入之比,并假定其初始条件为零。如果我们有一个输入函数X(s)和一个输出函数Y(s),我们定义传递函数H(s)为。

H(s) = {Y(s) \over X(s)}

读过电路理论书籍的读者会认出传递函数是电路脉冲响应的拉普拉斯变换。该框架的新版本包含了一个新组件Transfer function component。其属性编辑器如下所示。

Transfer function editor

使用公式编辑器,我们可以输入传递函数。该编辑器还显示了瞬态响应。

Transient

它还使用线性和...

Linear frequency char

...对数刻度表示频率特性。

Logarithmic frequency char

下面展示了它的一个使用示例。

Transformation function sample

Input生成一个谐波输入信号。Transform对其进行变换。红色曲线是输入,蓝色曲线是变换结果。点击这里下载此示例

狄拉克δ函数

如上所述,此任务需要狄拉克δ函数。公式编辑器支持它。在常微分方程的右侧存在δ函数表明所得函数不是连续的。其在下图所示。

Delta function result

框架可以处理狄拉克δ函数。例如,下面的公式...

Delta function formula

...是允许的。您可以将这些公式用作传递函数的输入,如下图所示。

Usage of Delta function

此外,狄拉克δ函数也可以用在常微分方程中。点击这里下载狄拉克δ函数示例

与Simulink的兼容性

Simulink是一个强大的软件,用于数字信号处理。我软件的当前版本支持与Simulink的兼容性。下图包含使用Simulink组件进行数字信号处理。

上图包含一个Simulink PID控制器。

下载这些示例 4.37 KB

实时

现在我的软件支持实时,因此它支持实时控制和信号处理。下面的电影展示了数字滤波的实时示例。

下载此示例 4.37 KB

更多关于实时细节可以在我的文章中找到。

结论

“通用框架”这个名字听起来像纯粹的广告。然而,如果我说这个软件使我能够处理各种类型的吸收层,那么这会让我谈话的对方感到震惊。当我展示我如何处理各种类型时,对方会回答:“是的,你的软件确实能让你处理各种类型。”

历史

  • 2006年7月24日 -- 发布原始版本
  • 2007年9月13日 -- 更新文章和下载
  • 2014年8月14日 -- 文章和下载更新并扩展
© . All rights reserved.