2.tornado(vxworks)实时目标运行时结构 开发vxworks实时应用系统的典型配置,如图1所示:
图1 vxworks实时应用开发的经典配置
实时代码在主机上,用tornado提供的交叉编译器编译。通过rtw的tornado实时目标生成目标文件(vxmodel.lo),可通过tornado集成开发环境的windsh下载到vxworks目标机。实时程序在vxworks目标机上执行,通过io设备和外部硬件交换数据,并保持和主机之间的相互通信。 实时程序运行在vxworks目标机上,而simulink运行在主机上。simulink需要vxworks目标机上运行的任务来处理通信过程。tornado(vxworks)real-time tartget生成如下vxworks任务:一个用于和simulink通信,其他用于完成模型功能[2]。
3.tornado(vxworks)实时目标的实现过程3.1 实验环境 我的实验环境如下表:
3.2 实时目标的具体实现步骤 为了通过real-time workshop实现和运行一个基于vxworks的实时程序,用户可按如下的步骤进行: (1) 在matlab/simulink下建立一个模型,这里以一个经典的pid模型为例:图2 实验所采用的经典pid模型 模型采用外部工作模式(external mode),并设置simulink parameters对话框中的参数:图3 仿真参数solver设置图4 仿真参数real-time workshop设置图5 仿真参数code generation options设置
(2) 配置模板联编连文件tornado.tmf,该文件位于%matlabroot%/rtw/c/tornado目录下,要对这个文件作如下修改:#------------ macros read by make_rtw -------------makecmd = c:\tornado2.2\host\x86-win32\bin\makehost = pc#-------------tool locations-----------------------------wind_base= c:\tornado2.2wind_registry=$(computername)wind_host_type=x86-win32#------------vxworks configuration------------------vx_target_type = pentiumcpu_type = pentium2#-------------macros for downloading to target-----target=targettgtsvr_host=hostvx_core_loc = $(wind_base)/target/config⁄pcpentium3/vxworks
(3) 程序的生成、编译、连接 设置完参数,保存后,开始创建程序,单击上图中的build按钮,开始编译程序,成功后可在当前的目录中产生了一个vxmodel_tornado_rtw的文件夹和一个目标文件vxmodel.lo。
(4) 手动下载和运行可执行文件 现在可以将实时程序下载到目标机中,具体的方法是在tornado集成开发环境中启动windsh,在windsh窗口执行如下命令:ld
(5) 建立连接 在external target interface对话框中的mex-file arguments指定目标机的ip、冗长度和tcp端口号,如图6所示,就可以建立连接了。图6 external target interface对话框设置 打开external mode control panel,如图7所示。点击connect按钮,执行start real-time code,可以看到scope上的图形输出。此时,可以改变模型的参数(如增益的数值),参数下载后scope的曲线将随之改变。仿真时间结束以后,可以看到产生了一个external.mat文件,由目标机会传到主机,放在tornado的安装根目录下。图7 external mode control panel对话框
4.结论 针对matlab的仿真特性和vxworks操作系统的实时特点,本文介绍了rtw面向tornado(vxworks)实时目标的运行结构,并且较为详细的阐述了tornado(vxworks)实时目标的具体实现流程,实现了simulink在tornado(vxworks)实时目标下的仿真。 在结合相关文档的同时,笔者加入了亲身实验的经验,增补了一些必要的内容,完善了实验的具体步骤,降低了为读者今后实验的调试难度。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』