王朝百科
分享
 
 
 

Real-time workshop

王朝百科·作者佚名  2010-05-25  
宽屏版  字体: |||超大  

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 数据对象同样可以扩展,把用户定义的属性包括进去。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有