Real-Time Workshop®



Real-Time Workshop®( RTW ) 从Simulink模型生成优化的,可移植的和可定制的ANSI C代码。利用它可以针对某种目标机来创建整个系统或是部分子系统可下载执行的 C 代码,以开展硬件在回路仿真。 RTW 支持离散时间系统,连续时间系统和混合系统的代码生成。 Stateflow Coder 用来生成 Stateflow 所建立有限状态机模型的代码。生成代码的典型应用包括训练模拟器,实时模型验证和原型测试。
建立在 Simulink 和 RTW 基础之上的,基于模型的设计流程,支持工程开发过程从算法设计到最终实现的所有开发阶段。
特点

从 Simulink 模型生成优化的和可定制的代码
支持所有的 Simulink 功能特性 , 包括对 8 , 16 和 32 位整数 , 浮点数和自定义 ( 定点 ) 数据类型的支持
产生的代码能够准确表达模型,不依赖于处理器平台
支持单任务和多任务操作系统,以及“ bareboard ”(裸机,无操作系统)运行环境
支持添加用户自定义模块,包括信号处理算法和设备驱动程序
通过可复用子系统函数,使用自动模式匹配,缩减生成的代码尺寸
生成可超级链接到 Simulink 模型的 HTML 报告
可与 Stateflow Coder 生成完全集成的代码
通过向 Simulink 模型上传数据,实时对信号监测
使用 Simulink 模型作为前端进行参数实时调节
通过生成优化的模型可执行代码产生快速仿真程序
可生成独立于 MATLAB®和 Simulink® 运行的可执行程序
提供参考快速原型目标(例如 WindRiver®System 的 Tornado® )和用户可定制的全功能通用目标模板
使用 Real-Time Windows Target 和 xPC Target ( MathWorks 另外提供),将标准 PC 硬件作为快速运行环境使用
可扩展的设备驱动,支持多种第三方硬件和软件工具

强大的功能

为 Simulink 模型生成代码
RTW 生成的代码 , 准确的表达了对应的 Simulink 模型 , 并且不针对特定的处理器。代码的执行使用另外一个与具体目标有关的运行接口来进行。 RTW 支持所有的 Simulink 特性,包括 8 位, 16 位和 32 位整数,浮点和自定义 ( 定点 ) 数据类型。它在很大范围内允许定制生成的代码。
RTW 支持单任务,多任务操作系统以及“ bare board ”(裸机,无操作系统)的运行环境。它还能生成定制模块的内嵌式代码,包括对信号处理算法和设备驱动程序。

快速仿真
可以生成优化的模型可执行程序代码,提高仿真运算速度。这些代码能够独立于 MATLAB 和 Simulink 环 境运行。

Real-Time Workshop Target
RTW 可将 Simulink 模型“翻译”成 ANSI C 代码,为测试运行和调试提供了可执行程序代码。目标模板为生成运行于用户特定平台环境的应用程序提供了设置工具。 Real-Time Workshop 支持产品开发各个阶段所用的多种目标环境。其中有些直接设置后就可运行使用,有些是第三方的目标环境。目标也可以是定制的。

S-Function Target
S-Function Target 可把一个 Simulink 框图模型或是子系统转变成为一个 Simulink S-function (系统函数)。使用 S-Function Target 可以把模型变成为模块,并在以后工作中更大的系统中复用。这样做能够提高仿真运算的速度和代码复用性,并可在保证隐蔽源模型细节的前提下共享模型。一个模型中可以使用多个相同 S-function 的实例,每个实例采用各自独立的数据结构。

快速仿真
Rapid Simulation Target ( RSIM )在主机上以非实时方式运行模型代码。 RSIM 使用 RTW 生成模型独立的快速运算仿真程序。 RSIM 支持从 MATLAB 标准 MAT 文件中批量加载和调整输入信号数据,无需重新编译模型。程序可以使用定步长或是变步长算法,在本机或其它计算机上进行独立仿真运算。

Tornado
RTW 还提供了一系列 run-time interface 文件,以在 VxWorks 上, Wind River System 公司所开发的实时操作系统( RTOS )上,运行模型程序。 Tornado Target 支持单任务/多任务模式和离散时间/连续时间混合系统模型。在向其他目标实时操作系统环境移植时, Tornado run-time interface 和设备驱动文件可以作为新工作的起点。 Run-time interface 还提供了通过 Tornado 开发环境使用 RTW 调试功能的能力。

Real-Time Target
用 Real-Time Target 生成代码的模型中,可使用交互式的 Simulink 模块,调节、记录和显示模型实时运行时的结果。创建定制的快速原型目标或在自己的工作站上验证生成的代码时,这些 Real-Time Target 可以作为工作的起点。

Real-Time Malloc
它与 real-time target 相似。主要差别在于存储区的访问类型声明。使用这种代码格式,在一个可执行程序中可以包含同一模型的多个实例或是多个模型的代码。

代码生成
Real-Time Workshop 生成的代码带有详尽的注释,包括 Simulink 模型中模块的名称和信号标签。它将模型模块与代码对应了起来,便于跟踪调试。

单任务和多任务运行环境
RTW 同时支持单任务和多任务运行环境。在单任务环境中,通过中断服务例程调用的任务,必须在一个采样周期内完成所有处于激活状态,采样率不同的所有模型计算。
多任务环境具有多种采样速率,对应每个任务有各自的优先级,它决定了在给定的时间间隔里,模型的哪一部分需要执行计算。

代码优化
RTW 提供多种代码优化方式供选择,用来缩减代码的长度和存储空间占用。代码优化包括:
代码重用 ( Code reuse )
表达式折叠 ( Expression folding )
块功能合并 ( Block reduction )
信号存储区重用 ( Signal storage reuse )
条件输入分支执行( Conditional input branch execution )

可定制的代码生成过程
Target Language Compiler ( TLC 目标语言编译器 ) 允许定制由 RTW 生成的代码。 TLC 文件是直接控制 Real-Time Workshop 代码生成方式的 ASCII 码文件。通过编辑 TLC 文件,可以改变某个模块的代码生成方式,也可用于将手写代码合并到模型代码中。 TLC 具有如下特性:
每个 Simulink 和可选模块集 ( 如 DSP Blockset 和 Fixed-Point Blockset ) 中的模块都有一组对应的 TLC 文件
TLC 文件中说明了头文件和参数信息
目标环境通过系统目标 TLC 文件选择指明
分析代码生成中 TLC 阶段的调试工具

加入用户的代码
Simulink 中用户可以创建定制的模块,把已有的代码加入进来。 TLC 可以通过代码内嵌的方法,优化从自定义模块产生的代码。专用算法和设备驱动程序同样可以被合并到模型代码中。使用 Sfunction Builder 模块可以自动生成用于集成用户自定义代码的 TLC 文件。

对中断的支持
使用 中断模块可以创建具有处理异步和同步事件能力的模型,包括中断服务例程( ISR ),硬件产生的中断和异步的读/写操作。这些模块主要是为 Tornado 的目标编写的,修改后也可用于用户自己的目标环境。

基于模型的调试
使用 外部模式直接在 Simulink 与实时目标之间进行的通讯将加快设计循环的步骤。一些特定的目标,如 Tornado 和 Real-Time Windows Target ,提供对 Simulink 外部模式的支持。当代码在实时目标上运行时,在 Simulink 模型中可以对算法的代码进行调试。在外部模式下,新的模块参数可以下载到生成的目标程序中,实时程序的输出信号也可以上传到 Simulink 模型的 Scope, Display , Workspace , Signal Viewing 子系统, XY Graph , S-Function 和 Dials & Gauges Blockset 的模块中。

嵌入式监测和参数调节
RTW 提供的一些机制可以监测和调节模型信号和模块参数。这些机制包括:
测试点( Test-points ) — 将模型中的信号标志为测试点,并可指定如何分配信号变量的存储空间
C 和 TLC 的 API — 为访问模块存储在 Real-Time Workshop 所生成的全局数据结构中的输出和参数提供了额外的手段。

参数类
Simulink 和 RTW 支持两种参数类 : MATLAB 变量和 Simulink 数据对象。在 Model Parameter Configuration 菜单中可以选择模型中的 MATLAB 变量 , 并将它们声明在生成代码中为可调参数。被声明为可调的参数和信号在代码中可被其它代码直接访问。这个菜单还可以用来指明可调参数在代码中存储空间的分配方式。
Simulink 数据对象为模型中的信号和参数提供了更多的控制功能。这些 Simulink 专属的数据类型将 Simulink 专属的信息封装了起来,不会被一般用途的数值类型捕捉到。这些信息直接控制信号和参数在生成的代码中的表达。 Simulink 数据对象同样可以扩展,把用户定义的属性包括进去。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章