2013年11月22日 航空航天和国防

数码物理模拟(附短片)

由雅各布Engblom

6 a00d83451f5c369e20192ab627811970d-pi

嵌入式计算机系统很少是孤立的系统。虽然个人电脑和消费电子产品往往是与自己的一点用户交互愉快地运作,但大多数嵌入式系统都非常连接到周围世界。他们感知世界,在读取的值上运行控制算法,并使用执行器来控制世界的状态。他们是积极参与者,持续发展的网络体质现实。模拟这种系统不能停止在计算机系统的边界 - 物理世界也需要成为模拟的一部分。这这是我们在Youtube上发布的视频展示了如何完成的一个例子风河系统公司西米奇。也有几个美国宇航局发布的视频展示Simics如何用作真正的全系统模拟的一部分全球降水测量(流量)的使命。

Simics演示视频中使用的设置是这样的:

physics-1

我们有一个运行VxWorks的板和一个控制应用程序,然后我们有一个被控制的热水器。该控制通过执行器施加,该执行器根据温度计报告的当前水温改变加热元件施加的功率。温度计和加热器连接到计算机板上的模数转换器(ADC)和模数转换器(DAC)(有关Simics中设备建模的更多信息,请参阅我的博客帖子和Simics建模演示)。控制软件仅访问ADC和DAC设备,就像它在真实系统中一样。如下所示,使用Simics Python解释器和API,实际上,物理模拟器实际上在SIMICS内部实现。

physics-2

具有模型作为SIMICS的一部分使得可以逆转模拟,并使用SIMICS GUI检查和控制物理模型状态。视频中也没有显示视频是它让我们在模拟中打破事件的能力,例如水沸腾或热水器燃烧(对剧透抱歉)。但是,更常见的情况是在SIMICS之外运行现有的物理模拟器,然后从该模拟器到SIMICS构建自定义连接。物理模型使用SIMICS系统面板,以及控制计算机的显示面板和控制面板,可让我们注入系统中的故障。

physics-3

该模型的一些故障注入能力在视频中显示,但有更多可用。这physics model has been built in such a way that the thermometer (temperature sensor) can be made to be noisy and report randomly distorted readings and the thermometer can be frozen at a certain reading (i.e., it does not look at the physics model). The physics model can be changed to assume a different altitude (affecting the boiling point of water), and the heater can be stuck at its current power input. With such functions, the robustness of the software in presence of issues in the real world can be tested, without searching for extreme conditions or hacking the hardware.

NASA模拟器和模拟系统

根据我们的经验,最常见的情况是Simics用户已经建立了庞大的模拟系统来处理物理、力学和控制算法。这些系统通常非常大,运行在几十个不同的主机上,并使用自定义中间件系统进行集成。由于Simics Extension Builder API,可以在Simics和任何可以想象到的系统之间构建集成。

模拟器集成的一个例子是NASA公开的工作(见NASA IV&V成功故事在Youtube上)。在NASA的Go-Sim设置中(在G0-Sim上查看Youtube视频),您会发现一个simics模拟控制计算机和自定义物理和系统仿真的组合。有模拟的1553和Spacewire总线连接控制计算机到航天器中的各种传感器和执行器,在那里信息可以被拦截和修改,以测试软件的鲁棒性在出现故障时(看到另一个YouTube视频),与故障注入和物理注入的思想相同。

要了解Simics如何帮助您模拟系统的更多信息,请转到http://www.simics.com或者http://www.windriver.com/products/simics/。我们也有许多其他模拟动作视频和其他有趣的视频Youtube上的风河频道

以前的Simics器件建模(视频演示)
下一个嵌入式开发的转型时间-第2部分