快速原型中Simulink模型的代码自动生成(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研究与设计
电 子测 量 技 术 ELECT RON IC MEASU REMENT T ECH N OLOGY
第 32 卷 第 2 期 2009 年 2 月
快速原型中 Simulink 模型的代码自动生成
李 强 王民钢 杨 尧
( 西北工业大学航天学院 西安 710072)
摘 要 : 快速原 型仿真是实时仿真的一种, 它处于产品研发的算法设 计阶段与具体实现阶段之间, 是产品研 制过程中 的一个重要环节 。本文介 绍了在快速原型系统中如何利用 Matlab/ Simulink 的代码 生成功能将 Simulink 模 型转换成 目标语言模型的 方法; 既避免了 Simulink 模型在 Matlab/ Simulink 环境下仿真速 度低下的 问题, 又 能大大降 低用目标 语言编 程建模的工 作强度。实际 应用表明, 通过使 用 Simulink 模型的 C 代码自 动生成, 可以方 便快捷地 将 Simulink 模型应 用于半实物仿真系统, 缩短研制周期, 并提高仿真系统的灵活性和可靠性。 关键词 : Simulink; 半实物仿真; 代码生成; RT W 中图分 类号: T P391. 9 文献标识码: A
设置好 Build 选项后, 通过点击 RTW 面板上的 Build 按钮, Matlab 会自动与 CCS 建立 连接, 启动系统目标 文 件, 将卡尔曼滤波框图模块转化为 T I C2000DSP 可执行代 码, 自动调用 CCS3. 1 软件并打开所生成的工程文件。主 要包括源文件( source 文件夹)、库文件( Library 文件夹)、 连接文件( cmd) 等。MAT LAB 的 Command 窗口会显 示 后台处理的详细过程, 在代码生成过程中, 可能要根据系 统的错误报告多次修改模型。
Abstr act: The hardware2in2the2loop simulation pla ys an important role in the research and design process for guided weapons. To satisfy the r eal2time design r equirement of certa in missile hardwa re2in2the2loop simulation system, The way t hat how to use the ca pability of Matlab/ Simulink in code generation to convert t he models constr ucted by Simulink to t arget language models is introduced, which not only avoids the problem of low simulation speed of the model in M atlab/ Simulink circumstance, but also makes it ver y easy in making progr ams to construct ta rget language models. T he actual applications have proved that the Simulink model can be applied to the hardwar e2in2the2loop simulation syst em conveniently and rapidly based on the auto2generation of code, the development per iod is shor ten, and the f lexibility and reliability of t he simulat ion system are enhanced. Keywords: simulink; har dware2in2the2loop simulation; auto2generat ion of code; R TW
2. 2 自动代码生成与底层硬件的无缝连接 在半实物仿真中, 需要接入硬件实物来验证仿真的有
效性。 2. 3 C 代码生成的实现
利用 RT W 快速原型工具自动生成准确并高度优化的 DSP 可执行代码, 大大缩短了系统的开发周期。
利用快速原型自动化 工具, 通过正确 地设置仿真 参 数, 不需要传统的代码编写过程, 即可自动生成 DSP 可执 行 代 码。 打 开 Simulink/ Simulat ion/ Configuration Paramet er 设置仿 真参 数, 关 键是 要正 确地 设置 解析 器 (Solver) 和实时生成器 RT W(Real2T ime Workshop) 选项。
0引 言
Mat lab/ Simulink 是 Mathworks 公司推出的一种科学 计算仿真软件。在传统的控制理论研究中可以利用其方 便地进行控制规律的设计与仿真, 但是 Simulink 仿真大多 为非实时仿真, 模型中的硬件环节由数学模型所代替。对 于一些仿真实时性要求较高的场合, 如存在数据采集、串 口通信等实时仿真任务时, 往往达不到预期的理想控制效 果。而且离线仿真不能对内存, 接口和通信等实时参量进 行评价, 从而设计者必须不断对自身的设计做出调整, 开 发周期相对过长。
# 29 #
第 32 卷
电子测量技术
图 2 Simulink 与底层硬件接口驱动开发
图 4、图 5 分别为某导弹闭合回路全数字仿真及半实 物仿真试验航迹倾角及导弹爬升高度变化曲线对比图, 由 图可知两者的结果几乎完全吻合, 完全达到了所要求的技 术指标, 也证明了该半实物仿真系统通信软件设计是满足 要求的。
Code generation of simulink models in the hardware2in2loop simulation
Li Qiang Wang Mingang Yang Yao ( School of Ast ronaut ics, Nort hwes tern Pol yt echn ical U niver sit y, Xipan 710072)
1 RTW 的主要功能及特点
RT W 是和 Matlab、Simulink 一起使用的一个工具, 它 可以直接从 Simulink 模型生成代码并且自动建立可以在 不同环境下运行的程序, 这些环境包括实时系统和单机仿 真。RT W 能够应用的场合十分广泛:
1) 实时控制: 可以使用 Matlab 和 Simulink 设计控制 系统, 并且从建立的图表模型生成代码, 编译并载入它们 到目标硬件;
¹ Ada 代码: 从 Simulink 模块生成 Ada 代码, 要求用 户安装 Real2Time Workshop Ada Coder。
º 实时程序: 将代码转换为适合硬件运行的实时程 序。对应代码被设置为和一个外部时钟。源相连接, 且以 用户设定的固定采样速率运行。
» 高性能单机仿真程序: 将生成的代码和普通实时系 统目标文件一起使用, 为单机仿真生成可以执行的程序。 RT W 用 户 界 面 可 通 过 Simulink 提 供 的 仿 真 参 数 框 / Simulink Parameters 0 选 项 打 开, 其 中 Real/ T ime W orkshop 页只对 Real/ Time Workshop 有效, 而其他页对 Simulink 仿真和 RealT ime Workshop 都有效。
图 3 代码生成的执行
3 仿真试验及结果分析
应用该半实物仿真系统成功地进行了某型导弹研制 的所有半实物仿真试验, 仿真结果表明该系统完全满足仿 真帧周期 1 ms 的指标要求, 在 1 ms 仿真周期内没有出现 数据错帧和丢帧现象。
# 30 #
图 4 全数字仿真与半实ቤተ መጻሕፍቲ ባይዱ仿真航迹 倾角变化曲线对比图
李 强 等: 快速原型中 Simulink 模型的代码自动生成
2) 实时信号处理: 可以使用 Matlab 和 Simulink 设计 信号处理算法, 同样可以从模型生成代码, 编译和载入它 们到目标硬件;
李 强 等: 快速原型中 Simulink 模型的代码自动生成
第2期
3) 生成可插入到其他仿真程序的便携 C 代码: 非缺省 情况下, 根据用户的设置可以生成如下代码:
本文对 RTW 的主要功能和特点进行了说明, 介绍了
# 28 #
RT W 代码自动生成的详细过程, 并结合工程实例对代码 自动生成结果的正确性进行了验证。应用表明通过使用 Simulink 模 型的 C 代 码 自动 生成, 可 以方 便 快捷 地 将 Simulink 模型应用于半实物仿真系统, 缩短研制周期, 为 导弹武器系统的研制提供了有利的条件。
或 DSP 板, 可以只生成源代码。然后使用特定的开发环境 对代码进行交叉编译并将其下载到目标硬件中。
2 代码自动生成
图 1 代码自动生成简图
2. 1 RTW 程序自动创建过程 RT W 程序自动创建过程能在不同主机环境下生成用
于实时应用的程序。该创建过程使用高级语言编译器中 的联编实用程序来控制所生成源代码的编译和链接过程。
为了解 决 这一 矛 盾, Mat hworks 公 司推 出 了 Real2 Time Workshop ( RTW ) 子集, 利用它能够实 现 Matlab/ Simulink 模型向其他语言模型转换, 这样可以满足实时仿 真速度的不同要求, 有助于缩短开发周期, 具有较大的经 济价值和时常前景。
RT W 使用一个高级的 M 文件命令控制程序创建过 程, 默 认命 令是 make2rt w。该创 建过 程 包含 如下 4 个 步骤:
1) 分析模型 RT W 的程序创建过程首先从对 Simulink 模块方框图 的分析开始, 包括如下过程: ¹计算仿真和模块参数; º递推信号宽度和采样时间; »确定模型中各模块的执行次序; ¼计算工作向量的大小。 在本阶段中, RTW 首先读取模型文件( model. mdl) 并 对其进行编译, 形成模型的中间描述文件 model. rtw。 2) 目标语言编译器(T LC) 生成代码: 在程序创建的第二阶段, 目标语言编译器将中间描述 文件( model. rtw) 转换为目标指定代码。 3) 生成自定义的联编文件( makefile) 建立过 程 的第 三 阶段 是 生 成自 定 义联 编 文 件, 即 model. mk 文件。所生成联编文件的作用在于: 指导联编 程序如何对从模型中生成的源代码、主程序、库文件或用 户提供的模块进行编译和链接。 4) 生成可执行程序 创建过程的最后一个阶段是生成可执行程序, 该阶段 是可选项。如果用户定制的目标系统是嵌入式微处理器
第2期
上, 还可以利用其开放的接口支持第三方硬件和工具, 实 现 Simuink 模型向更多其他目标语言代码的自动生成。
参 考文 献
图 5 全数字 仿真与半实物仿真导弹 爬升高度变化曲线对比图
4结 论
RT W 能够从 Simulink 模型直接 生成面向目 标的代 码, 减少了用户工作量。其用途不单体现在 C 代码生成
Solver 选项: / Stop time0设置为/ inf0; 解析器( Solver) 的步长类 型一 定要 设置 为固 定步 长( Fixed2st ep) , 因 为 RT W 只能从固定步长的模型生成代码; / Slover0设置 为 / Discrete0。
RT W 能够从 Simulink 模型中自动产生 C 代码, 必须 指定正确的系统目标文件( System t arget file) 和 Mak efile 模板文件( T emplat e makefile) , 设计中 分别为/ t i_c2000_ ert. tlc0、/ ti_c2000_ert. tmf0。
电 子测 量 技 术 ELECT RON IC MEASU REMENT T ECH N OLOGY
第 32 卷 第 2 期 2009 年 2 月
快速原型中 Simulink 模型的代码自动生成
李 强 王民钢 杨 尧
( 西北工业大学航天学院 西安 710072)
摘 要 : 快速原 型仿真是实时仿真的一种, 它处于产品研发的算法设 计阶段与具体实现阶段之间, 是产品研 制过程中 的一个重要环节 。本文介 绍了在快速原型系统中如何利用 Matlab/ Simulink 的代码 生成功能将 Simulink 模 型转换成 目标语言模型的 方法; 既避免了 Simulink 模型在 Matlab/ Simulink 环境下仿真速 度低下的 问题, 又 能大大降 低用目标 语言编 程建模的工 作强度。实际 应用表明, 通过使 用 Simulink 模型的 C 代码自 动生成, 可以方 便快捷地 将 Simulink 模型应 用于半实物仿真系统, 缩短研制周期, 并提高仿真系统的灵活性和可靠性。 关键词 : Simulink; 半实物仿真; 代码生成; RT W 中图分 类号: T P391. 9 文献标识码: A
设置好 Build 选项后, 通过点击 RTW 面板上的 Build 按钮, Matlab 会自动与 CCS 建立 连接, 启动系统目标 文 件, 将卡尔曼滤波框图模块转化为 T I C2000DSP 可执行代 码, 自动调用 CCS3. 1 软件并打开所生成的工程文件。主 要包括源文件( source 文件夹)、库文件( Library 文件夹)、 连接文件( cmd) 等。MAT LAB 的 Command 窗口会显 示 后台处理的详细过程, 在代码生成过程中, 可能要根据系 统的错误报告多次修改模型。
Abstr act: The hardware2in2the2loop simulation pla ys an important role in the research and design process for guided weapons. To satisfy the r eal2time design r equirement of certa in missile hardwa re2in2the2loop simulation system, The way t hat how to use the ca pability of Matlab/ Simulink in code generation to convert t he models constr ucted by Simulink to t arget language models is introduced, which not only avoids the problem of low simulation speed of the model in M atlab/ Simulink circumstance, but also makes it ver y easy in making progr ams to construct ta rget language models. T he actual applications have proved that the Simulink model can be applied to the hardwar e2in2the2loop simulation syst em conveniently and rapidly based on the auto2generation of code, the development per iod is shor ten, and the f lexibility and reliability of t he simulat ion system are enhanced. Keywords: simulink; har dware2in2the2loop simulation; auto2generat ion of code; R TW
2. 2 自动代码生成与底层硬件的无缝连接 在半实物仿真中, 需要接入硬件实物来验证仿真的有
效性。 2. 3 C 代码生成的实现
利用 RT W 快速原型工具自动生成准确并高度优化的 DSP 可执行代码, 大大缩短了系统的开发周期。
利用快速原型自动化 工具, 通过正确 地设置仿真 参 数, 不需要传统的代码编写过程, 即可自动生成 DSP 可执 行 代 码。 打 开 Simulink/ Simulat ion/ Configuration Paramet er 设置仿 真参 数, 关 键是 要正 确地 设置 解析 器 (Solver) 和实时生成器 RT W(Real2T ime Workshop) 选项。
0引 言
Mat lab/ Simulink 是 Mathworks 公司推出的一种科学 计算仿真软件。在传统的控制理论研究中可以利用其方 便地进行控制规律的设计与仿真, 但是 Simulink 仿真大多 为非实时仿真, 模型中的硬件环节由数学模型所代替。对 于一些仿真实时性要求较高的场合, 如存在数据采集、串 口通信等实时仿真任务时, 往往达不到预期的理想控制效 果。而且离线仿真不能对内存, 接口和通信等实时参量进 行评价, 从而设计者必须不断对自身的设计做出调整, 开 发周期相对过长。
# 29 #
第 32 卷
电子测量技术
图 2 Simulink 与底层硬件接口驱动开发
图 4、图 5 分别为某导弹闭合回路全数字仿真及半实 物仿真试验航迹倾角及导弹爬升高度变化曲线对比图, 由 图可知两者的结果几乎完全吻合, 完全达到了所要求的技 术指标, 也证明了该半实物仿真系统通信软件设计是满足 要求的。
Code generation of simulink models in the hardware2in2loop simulation
Li Qiang Wang Mingang Yang Yao ( School of Ast ronaut ics, Nort hwes tern Pol yt echn ical U niver sit y, Xipan 710072)
1 RTW 的主要功能及特点
RT W 是和 Matlab、Simulink 一起使用的一个工具, 它 可以直接从 Simulink 模型生成代码并且自动建立可以在 不同环境下运行的程序, 这些环境包括实时系统和单机仿 真。RT W 能够应用的场合十分广泛:
1) 实时控制: 可以使用 Matlab 和 Simulink 设计控制 系统, 并且从建立的图表模型生成代码, 编译并载入它们 到目标硬件;
¹ Ada 代码: 从 Simulink 模块生成 Ada 代码, 要求用 户安装 Real2Time Workshop Ada Coder。
º 实时程序: 将代码转换为适合硬件运行的实时程 序。对应代码被设置为和一个外部时钟。源相连接, 且以 用户设定的固定采样速率运行。
» 高性能单机仿真程序: 将生成的代码和普通实时系 统目标文件一起使用, 为单机仿真生成可以执行的程序。 RT W 用 户 界 面 可 通 过 Simulink 提 供 的 仿 真 参 数 框 / Simulink Parameters 0 选 项 打 开, 其 中 Real/ T ime W orkshop 页只对 Real/ Time Workshop 有效, 而其他页对 Simulink 仿真和 RealT ime Workshop 都有效。
图 3 代码生成的执行
3 仿真试验及结果分析
应用该半实物仿真系统成功地进行了某型导弹研制 的所有半实物仿真试验, 仿真结果表明该系统完全满足仿 真帧周期 1 ms 的指标要求, 在 1 ms 仿真周期内没有出现 数据错帧和丢帧现象。
# 30 #
图 4 全数字仿真与半实ቤተ መጻሕፍቲ ባይዱ仿真航迹 倾角变化曲线对比图
李 强 等: 快速原型中 Simulink 模型的代码自动生成
2) 实时信号处理: 可以使用 Matlab 和 Simulink 设计 信号处理算法, 同样可以从模型生成代码, 编译和载入它 们到目标硬件;
李 强 等: 快速原型中 Simulink 模型的代码自动生成
第2期
3) 生成可插入到其他仿真程序的便携 C 代码: 非缺省 情况下, 根据用户的设置可以生成如下代码:
本文对 RTW 的主要功能和特点进行了说明, 介绍了
# 28 #
RT W 代码自动生成的详细过程, 并结合工程实例对代码 自动生成结果的正确性进行了验证。应用表明通过使用 Simulink 模 型的 C 代 码 自动 生成, 可 以方 便 快捷 地 将 Simulink 模型应用于半实物仿真系统, 缩短研制周期, 为 导弹武器系统的研制提供了有利的条件。
或 DSP 板, 可以只生成源代码。然后使用特定的开发环境 对代码进行交叉编译并将其下载到目标硬件中。
2 代码自动生成
图 1 代码自动生成简图
2. 1 RTW 程序自动创建过程 RT W 程序自动创建过程能在不同主机环境下生成用
于实时应用的程序。该创建过程使用高级语言编译器中 的联编实用程序来控制所生成源代码的编译和链接过程。
为了解 决 这一 矛 盾, Mat hworks 公 司推 出 了 Real2 Time Workshop ( RTW ) 子集, 利用它能够实 现 Matlab/ Simulink 模型向其他语言模型转换, 这样可以满足实时仿 真速度的不同要求, 有助于缩短开发周期, 具有较大的经 济价值和时常前景。
RT W 使用一个高级的 M 文件命令控制程序创建过 程, 默 认命 令是 make2rt w。该创 建过 程 包含 如下 4 个 步骤:
1) 分析模型 RT W 的程序创建过程首先从对 Simulink 模块方框图 的分析开始, 包括如下过程: ¹计算仿真和模块参数; º递推信号宽度和采样时间; »确定模型中各模块的执行次序; ¼计算工作向量的大小。 在本阶段中, RTW 首先读取模型文件( model. mdl) 并 对其进行编译, 形成模型的中间描述文件 model. rtw。 2) 目标语言编译器(T LC) 生成代码: 在程序创建的第二阶段, 目标语言编译器将中间描述 文件( model. rtw) 转换为目标指定代码。 3) 生成自定义的联编文件( makefile) 建立过 程 的第 三 阶段 是 生 成自 定 义联 编 文 件, 即 model. mk 文件。所生成联编文件的作用在于: 指导联编 程序如何对从模型中生成的源代码、主程序、库文件或用 户提供的模块进行编译和链接。 4) 生成可执行程序 创建过程的最后一个阶段是生成可执行程序, 该阶段 是可选项。如果用户定制的目标系统是嵌入式微处理器
第2期
上, 还可以利用其开放的接口支持第三方硬件和工具, 实 现 Simuink 模型向更多其他目标语言代码的自动生成。
参 考文 献
图 5 全数字 仿真与半实物仿真导弹 爬升高度变化曲线对比图
4结 论
RT W 能够从 Simulink 模型直接 生成面向目 标的代 码, 减少了用户工作量。其用途不单体现在 C 代码生成
Solver 选项: / Stop time0设置为/ inf0; 解析器( Solver) 的步长类 型一 定要 设置 为固 定步 长( Fixed2st ep) , 因 为 RT W 只能从固定步长的模型生成代码; / Slover0设置 为 / Discrete0。
RT W 能够从 Simulink 模型中自动产生 C 代码, 必须 指定正确的系统目标文件( System t arget file) 和 Mak efile 模板文件( T emplat e makefile) , 设计中 分别为/ t i_c2000_ ert. tlc0、/ ti_c2000_ert. tmf0。