神州普惠

基于AppSIM实时仿真测试系统的模型开发流程

  实时仿真测试系统(即半实物仿真)不仅弥补了纯数字仿真中的许多不足,提高了整个模型的置信度,而且还可以大大减轻编程的工作量。这种仿真的另一个优势在于它实现了仿真模型和实际系统间的数据实时交互,仿真结果的验证过程非常直观。

  AppSIM实时半实物仿真平台,集成了MATLAB/Simulink软件,支持多种CPU、DSP以及FPGA等硬件的快速原型开发系统,为用户提供了一个从算法仿真到硬件实现的系统级开发方案,并提供模型级调试、软硬件协同仿真、工程成果在线验收与共享等多种开发功能和管理机制。图1所示为AppSIM环境下系统的仿真实现流程。

  1

  图1 AppSIM系统仿真流程

  1.分布式模型的构建

  系统模型分布计算成功的关键取决于各个子系统的运行是否同步进行,即是否满足分布式要求。为了满足分布式要求,对模型进行划分,即若干的计算任务相对平衡的计算子系统(sm_和ss_)和一个监控子系统(sc_)。为了使实时通信和分布式并行处理达到最优化,即使节点优先对计算子系统中的的输出变量进行解算,需要对网络节点间的输出变量进行优化设计,将输出变量转化为状态变量。在AppSIM环境下,可采用引入延迟环节或积分环节的方式实现输出变量向状态变量的转换。

  2. 代码生成

  对于每一个计算子系统 (sm_和ss_),通过调用RTW (Real-Time Workshop)来生成C代码。当按下“Compile”键的时候开始编译。AppSIM会自动调用模版将指定文件中的模块转换为生成码,即sm_model.c、ss_model.c和sc_model.c模型C语言源程序。而make_rtw文件会调用模块make文件,生成sm_model.mk,ss_model.mk等可执行程序的联编文件。这是一个自动化过程,所以无需用户介入,同时显示代码生成过程信息…

  3. 节点分配

  AppSIM将多个子系统分配到一个或多个物理节点上,加载会在处理器多核中自动分配(也可以手动配置),从而构成满足仿真要求的分布式实时仿真系统。对系统模型进行节点分配实际上是确定一种模型解算任务,并将任务分配给相应的CPU执行的机制。在进程之间平衡了包括模型解算、输入、输出以及数据访问和通信在内的负载,减少进程之间的通信量,保证模型的实时运行。

  4. 模型加载

  通过FTP协议,将最新生成的C文件传递到其中一个计算节点。

  5. 模型编译

  对于每一个计算子系统(sm_和ss_),我们调用gcc编译器为AppSIM将C代码链接成实时可执行文件。在实时仿真测试(半实物仿真)系统中,命令工作站与实时仿真机之间相当于上位机和下位机之间的关系,二者之间的通信以命令帧和响应帧的方式来进行。

  6. 模型运行