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






4.97/5 (12投票s)
一篇关于通用可扩展工程框架在自动控制和信号处理中的应用的论文。
- 下载代码 - 4.155 MB
- 下载文档 - 1,993.4 KB
- 下载双通道跟踪系统示例 - 5.8 KB
- 下载开关控制元件示例 - 13.6 KB
- 下载连续滤波器示例 - 146.6 KB
- 下载数字巴特沃斯滤波器示例 - 148.0 KB
- 下载频率差检测器示例 - 292.3 KB
- 下载相位鉴频器示例 - 463.4 KB
- 下载传递函数示例 - 2.2 KB
- 下载狄拉克δ函数示例 - 7.9 KB
- 下载Simulink示例 6.9 KB
- 下载实时示例 4.3 KB
更多信息,请访问以下网站
目录
- 引言
- 背景
- 最新消息 (2014)
- 最新消息 (2007)
- 双通道跟踪系统
- 开关控制元件
- 连续滤波器
- 数字滤波器
- 频率差检测器
- 相位鉴频器
- 传递函数
- 狄拉克δ函数
- 与Simulink的兼容性
- 实时
- 结论
- 历史
引言
这个框架的通用性有一个缺点。由于它拥有大量的功能,因此很难学习。即使是该软件的作者也经常感到气馁。学习或使用该软件的最佳方法是处理大量的应用程序示例。本文包含有关自动控制和信号处理的示例。
背景
自动控制和信号处理,总的来说,是纯数学。原则上,可以使用MatCAD来进行。然而,该框架的目的不仅仅是计算。计算应该与其他软件功能互操作,例如3D图形。因此,我将展示自动控制和信号处理的应用示例。
最新消息 (2014)
该软件有许多改进。现在它与Visual Studio 2013兼容。它还支持Simulink和实时。这些新功能在此简要介绍。我修复了相位检测器示例中的一个错误。
最新消息 (2007)
我现在正在做一个非常有趣的工作,所以没有多少时间来撰写该框架的深入描述。而且,我也找不到助手。一个能抓住问题本质的人通常有自己的出色工作。然而,该框架正在密集开发中,我希望开发人员了解其新更新。因此,我没有写深入的描述,而是简要地说明了框架的更改。
测试
现在框架可以测试一系列情况。测试代码属于TestCategory.csproj和AstronomyGL_Test.csproj项目。用户可以将一组*.cfa文件放入目录或数据库中,框架可以测试所有这些文件。
用户界面
以前版本的属性编辑器只能在单独的窗口中打开。现在您可以在桌面上找到它们。
现在图表直接放置在桌面上。右键单击标题(例如,Chart
)将在单独的窗口中显示旧布局。
此外,新版本的软件包含Weifen Luo开发的DockManager。我发现打开文件操作是一项非常耗时的工作。因此,新版本允许我们将*.cfa文件拖到桌面上。结果与文件打开相同。
框架在其他情况下也使用拖放。例如,如果我们把系列组件放在桌面上,然后将一个*.gra文件拖到它上面,那么文件中的任何系列内容都将被加载到该组件中。
时间导数
公式编辑器的新版本包含一项新操作,。让我们考虑一下这个操作的用法。例如,我们有以下图片
Init
组件具有以下属性编辑器
Init
有一个公式,并接受导数阶数3。这意味着Init
的任何客户端都可以使用最高为3阶的公式导数。Der
是Init
的一个客户端。其属性编辑器如下所示
我们有两个公式,只有一个输入变量x
。这个变量实际上是Init
的公式1。变量由Init
提供。因此,我们可以计算需要x
导数的公式导数,其阶数不超过3。
其他功能简介
目前的框架版本包含许多新组件:磁场、3D场传感器、惯性导航系统等。虽然这些功能不属于纯自动控制理论,但它们与具体的自动控制系统相关。例如,磁场和场传感器组件可用于模拟航天器姿态控制系统。
现在有一个专门介绍该框架的网站。我和我的同事更多的是工程师和科学家,而不是软件开发人员或架构师。我的许多工作不符合CodeProject的标准。如果您想了解我的工作,可以访问框架网站。本文包含一个关于传递函数和狄拉克δ函数的新章节。
双通道跟踪系统
此示例包含雷达跟踪系统的仿真。请看上图。它有两个通道:方位通道和俯仰角通道。该系统的几何结构表示在下图中。
在这种情况下,天线安装在一个具有两个自由度(方位角和俯仰角通道)的万向节悬挂上。让我们来构建这个场景。
我们有Ground
坐标系。我们在其上安装了Azimuth
坐标系,并在Azimuth
坐标系上安装了Elevation
坐标系。Azimuth
坐标系绕Ground
坐标系的y轴旋转,Elevation
坐标系绕Azimuth
坐标系的z轴旋转。结果,Elevation
坐标系就是天线的坐标系。
我们还有一个Vehicle
坐标系。它的运动由Motion
组件定义。我们选择了这样的运动,使得以下图表看起来很漂亮。Measurements
组件执行Vehicle
坐标系相对于Elevation
坐标系的测量参数。这些测量值将在下面用于构建控制系统。我们让天线对axisrving
线进行角度测量。这些测量值由y/d
和z/d
唯一确定,其中y
、z
和d
分别是Vehicle
在天线参考坐标系中表示的y坐标、z坐标和距离。我们将使用以下控制律
...其中和
是万向节的角度,而
a
、b
、c
、f
、g
和h
是常数。这个控制律实际上是控制理论的标准。常数通常根据该理论的稳定性和其他标准来选择。然后我们将构建控制律。
Delta
计算y/d
和z/d
。
Delta
的数据输入是Measurements
的参数:
System
组件求解控制律的微分方程。这两个二阶方程被分解成四个一阶常微分方程。看起来是这样的。
然后我们添加另一个组件来计算Azimuth
和Elevation
组件的方向四元数。我们还添加了指示组件。点击这里下载此场景。控制量的图形分析如下图所示。
浅红色和深红色曲线分别对应于Vehicle
的方位角和天线方向。同样,浅蓝色和深蓝色曲线对应于俯仰角通道。这样,就构建了一个控制系统。此外,我们可以在天线上安装一个虚拟摄像头(Elevation
),并观察Vehicle
运动的3D视频。在第7部分中,我在Ground
或Vehicle
上安装了摄像头。虚拟摄像头在该软件描述的第2部分中使用。稍后,我们可以安装一个虚拟无线电发射器/接收器在天线上,以及虚拟电子设备等。点击这里下载此示例。
开关控制元件
许多控制系统使用开关控制元件,该元件具有以下输入-输出函数。
该函数有以下数学描述。
如果我们有多组3D物体的照片,我们可以得到它的6D位置。在本例中,问题解决了如下。从照片和虚拟摄像头,我们得到物体轮廓,如下图所示。
...其中是第n个时间点的输入和输出。我们将使用一个递归元件来模拟这个元件。该元件的一个简单使用场景如下所示。
Recursive
组件包含开关控制元件的递归方程。这些方程看起来是这样的。
结果,我们得到以下图表。
红色曲线是输入,绿色曲线是输出。点击这里下载此示例。
连续滤波器
通常,连续滤波器由常微分方程组描述。由于我们上面已经讨论了常微分方程组,因此我们的描述将非常简短。您应该点击这里下载一个连续滤波器的示例。滤波结果如下图所示。
红色曲线是滤波器的输入,绿色曲线是输出。输出看起来更平滑。它有相位偏移。您可以处理获得的逆时域信号通过此滤波器来避免相位偏移。
数字滤波器
一个数字滤波器是任何电子滤波器,它通过对信号的中间形式执行数字数学运算来工作。我们将考虑一个三阶巴特沃斯滤波器的数字版本。该滤波器的Z变换如下所示。
...其中...
这个是截止角频率。我构造了这个滤波器作为传递函数为
的递归元件的级联。与连续滤波一样,它也执行平滑处理。点击这里下载此数字滤波器示例。
频率差检测器
在本例中,我使用了标准频率解调的数字版本,用于FM信号。该方法如下所示。
Diff
组件执行数值微分。Abs
组件是数字整流器。Integral
组件是数字低通滤波器。输入信号是一个chirp信号。解调结果如下所示。
解调误差是由于滤波器的增益频率特性是非线性的。 点击这里下载此示例。
相位鉴频器
本例致力于确定两个信号相位差的余弦。我使用了以下相关方案。
p1
和p2
包含两个谐波信号,x(t)和y(t),频率几乎相等。Multiplication
计算这些信号的平方和乘积。Integration
执行以下积分的数字计算。
Integration
还执行具有以下传递函数的数字滤波。
Post
根据以下表达式计算余弦。
正如预期的那样,这个鉴频器显示了以下相位差余弦的确定图。
传递函数
一个传递函数是在拉普拉斯域中系统输出与系统输入之比,并假定其初始条件为零。如果我们有一个输入函数X(s)和一个输出函数Y(s),我们定义传递函数H(s)为。
读过电路理论书籍的读者会认出传递函数是电路脉冲响应的拉普拉斯变换。该框架的新版本包含了一个新组件。其属性编辑器如下所示。
使用公式编辑器,我们可以输入传递函数。该编辑器还显示了瞬态响应。
它还使用线性和...
...对数刻度表示频率特性。
下面展示了它的一个使用示例。
Input
生成一个谐波输入信号。Transform
对其进行变换。红色曲线是输入,蓝色曲线是变换结果。点击这里下载此示例。
狄拉克δ函数
如上所述,此任务需要狄拉克δ函数。公式编辑器支持它。在常微分方程的右侧存在δ函数表明所得函数不是连续的。其在下图所示。
框架可以处理狄拉克δ函数。例如,下面的公式...
...是允许的。您可以将这些公式用作传递函数的输入,如下图所示。
此外,狄拉克δ函数也可以用在常微分方程中。点击这里下载狄拉克δ函数示例。
与Simulink的兼容性
Simulink是一个强大的软件,用于数字信号处理。我软件的当前版本支持与Simulink的兼容性。下图包含使用Simulink组件进行数字信号处理。
上图包含一个Simulink PID控制器。
实时
现在我的软件支持实时,因此它支持实时控制和信号处理。下面的电影展示了数字滤波的实时示例。
更多关于实时细节可以在我的文章中找到。
结论
“通用框架”这个名字听起来像纯粹的广告。然而,如果我说这个软件使我能够处理各种类型的吸收层,那么这会让我谈话的对方感到震惊。当我展示我如何处理各种类型时,对方会回答:“是的,你的软件确实能让你处理各种类型。”
历史
- 2006年7月24日 -- 发布原始版本
- 2007年9月13日 -- 更新文章和下载
- 2014年8月14日 -- 文章和下载更新并扩展