资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
2008年第 1期 福 建 电 脑基于 Simulink/Stateflow 模型的嵌入式软件开发研究任书明 , 揭金良 , 石开强(成都理工大学 信息工程学院 四川 成都 610054【 摘 要 】 :当前在控制领域内使用 Simulink/Stateflow 建模并以 RTW 生成指定代码的方式代替传统嵌入式软件开发方 法已形成趋势 。 这是由于基于 Simulink 模型的嵌入式软件开发大大节省了软件开发的人力 、 物力和时间成本 。 本文针对在 Matlab 环境下如何使用 Simulink/Stateflow 建立模型 , 实现嵌入式软件开发的过程进行了详细介绍 。【 关键词 】 :Simulink , Stateflow , RTW , 模型1. 引言1.1模型开发的意义鉴于软件工程化思想的引入和盛行 , 软件业发展潮流逐渐 趋于工程化 , 流水化 。 Matlab 环境下集成的 Simulink/Stateflow 模 型设计和使用 RTW 生成目标代码的软件设计方案便是这一大 背景的产物 。Matlab 集成了一组完整的 、 紧密集成的工具 , 形成了支持整 个工程设计流程的 、 无缝集成的嵌入式控制系统设计解决方案 。 这一解决方案可以使用户方便的穿梭于建模 、 仿真 、 验证与实施 之间而无须重写代码或改变软件环境 。 用户花费在编程与代码 调试方面的时间显著减少 , 而留出更多的时间探索新思想 、 开发 先进的技术 、 降低应用成本并提高产品质量 。本文所描述的解决方案基于 Matlab 环境 。 这一环境集成了 世界上最广泛应用的动态系统仿真软件 Simulink 。 它 与 State-flow 、 RTW (Real-Time Workshop 及面向特殊应用领域的相关产 品一起 , 提供了不同于传统的 、 综合的 、 灵活的 、 高效的 、 基于模 型的设计方法 。1.2工具介绍1.2.1Simulink/Stateflow 介绍 :Simulink 是基于 MATLAB 的框图设计环境 , 可以用来对各 种动态系统进行建模 、 分析和仿真 , 它的建模范围广泛 , 可以针 对任何能够用数学来描述的系统进行建模 , 例如航空航天动力 学系统 、 卫星控制制导系统 、 通讯系统 、 船舶及汽车等等 , 其中了 包括连续 、 离散 , 条件执行 , 事件驱动 , 单速率 、 多速率和混杂系 统 等 等 。 Simulink 提 供 了 利 用 鼠 标 拖 放 的 方 法 建 立 系 统 框 图 模型的图形界面 , 而且 Simulink 还提供了丰富的功能块以及不 同的专业模块集合 , 利用 Simulink 几乎可以做到不书写一行代 码完成整个动态系统的建模工作 。Stateflow 是一个交互式的设计工具 , 它基于有限状态机的 理 论 , 可 以 用 来 对 复 杂 的 事 件 驱 动 系 统 进 行 建 模 和 仿 真 。 Stateflow 与 Simulink 和 MATLAB 紧 密 集 成 , 可 以 将 Stateflow 创建的复杂控制逻辑有效地结合到 Simulink 的模型中 。 1.2.2RTW 介绍 :由于基 于 模 型 的 Matlab 开 发 流 程 总 是 欠 缺 和 工 程 实 现 的 有效连接 , 系统级的设计产物无法和硬件产品直接挂钩 , 所以工 程师无法直接应用 Simulink 模型的宝贵资源 。 为了改善设计流 程中的这一缺陷 , MATLAB 产品体系中加入了连接工程实现的 桥梁 -实时代码生成工具 Real-Time Workshop (RTW 。 RTW 使用户可以直接将 Simulink 框图模型转化为实时标准 C 代码 , 进而为快速原型系统 、 半物理仿真系统或者产品提供设计输入 , 使仿真与实际应用紧密结合 。2. 建立 Simulink/Stateflow 模型本节主要介绍在 Matlab 下用 Simulink/Stateflow 工具建立模 型 , 模型中包含了 Simulink 模块 , 并使用了 Stateflow 状态图控制 各状态间的转移 。 下面建立一个简单的仿真模型 Testmodel.mdl , 实现的功能如下 :(模型如图 11 系统初始输入 1, 系统的输入值在 1和 -1之间变换2 用 scope 显示输入的值图 1搭建的 Simulink 模型图图 2Chart 状态机图Testmodel.mdl 中用 Target1和 Target2模块持续产生常量 1和 -1;Switch 模 块 用 于 选 择 输 入 到 Stateflow 状 态 图 (Chart 中 的 值 。 Chart 中有两个状态 , 一个状态为 :onStateOne , 另一状态为 offStateOne , 转换条件如上图所示 。3. 定制并生成代码3.1TLC 文件介绍鉴于嵌入式软件开发主要是以应用为导向的 , 所以就不同 的嵌入式平台生成的代码规范等也不尽相同 。 那如何在模型设 计并验证通过后生成针对具体平台下的嵌入式代码呢 ? 这就引 入了与具体平台 (如操作系统和编译器等 进行结合的工作 。 如 :在 Matlab 环境下生成支持 VxWorks 等系统的代码 。生 成 特 定 平 台 下 定 制 代 码 的 工 作 主 要 是 由 一 个 被 称 之 为 TLC (Target Language Compiler 的文件完成的 。 在其中设定了生 成代码的模板 , 格式 , 编译器等内容 。 由于篇幅问题 , 在此不作具 体介绍 (详见 Matlab 下的 TLC 文档 。我们在此以生成普通 ERT 代码指代特定操作系统 , 如需要 生 成 指 定 操 作 系 统 代 码 只 需 要 更 换 为 具 体 平 台 相 关 联 的 TLC 文件即可 。 TLC 的选择如 (图 3、 4 所示 :3.2模型普通 ERT 代码生成在生成 ERT 代码时可以通过替换 TLC 文件的方式实现有 针对性地生成用于不同平台代码的工作 。 而这大大方便了不同 平台下的软件开发差异性带来的问题 。 如上内容介绍 , 生成代码 的工作主要是由 RTW 实现 , 下图描述了具体代码生成的步骤 :第一步 :选择图 3中的 Solver 中的 Solver Options 为 Fixed Step第二步 :如图 4所示选择 ert.tlc 文件 ;第三步 :点击图 3中的 Build 按钮生成并编译代码 ; (普通 ert.tlc 使用 lcc 编译器 , 如果只生代码可以选中前面的 Generate code only 选项 通过以上三步可以生成 ert.tlc 所定制的代码 。 生成代码中 792008年第 1期 福 建 电 脑(上接第 73页 !5. 实例应用为了验证本文提出的新的改建算法的有效搜索能力 , 分别 用本文中改进的遗传算法和普通的遗传算法进行了仿真结果比 较 , 并做了进一步的探讨 。选取一定量的配送目的地 , 本文中选取 6个 , 运送车辆选为 2台 , 根据数学求最优解的方法 , 可以得出问题的 最 优 解 是 67. 5。遗传算法的参数分别选为 :对于双种群 , 主种群和次种群规 模均选为 30, 主种群的选择算子采用期望值法 , 交叉率 P c=0.6、变异率 Pm=0.01; 次种群的选择算子采用赌轮法 , 交叉率 P c =0.8、变异率 Pm=0.05; 种群间个体迁移率为 P t =0.382; 世代之间交换率 P g =2(即采用隔代人口迁移法 ; 对于普通遗传算法种群规模选为 60, 交叉率 Pc=0.8、 变异率 P m =0.05。 设定两组的运算 , 均迭代 50次 。运算结果如下表所示 , 从响应曲线可以看出 , 双种群的平均 值 73.25, 普通遗传算法的平均值是 68.565, 由此可以的出结论 , 在参数 (种群规模 , 交叉 , 变异概率 大致相同的情况下 , 应用本 文提出的算法可以更好接近最优化解 。 6. 结论本 文 提 出 的 算 法 实 行 的 是 一 种 动 态 次 种 群 中 迁 入 新 的 个 体 , 参与到主种群中进行竞争 , 运用黄金分割点来进行优化 , 克 服了传统遗传算法算法由于受到种群规模的限制而导致的早熟 或易陷入局部最优的问题 , 它增加了迭代过程中模式的多样性 , 有效地增强了算法的寻优能力和搜索速度 。 通过比较 , 结果表 明 , 优化后的遗传算法在解决货物配送问题上的有效性是很明 显的 。 根据同样的道理 , 本文提出的方法也可以运用到其他的最 优解的问题上 , 例如在用于分析非线性系统的稳定性时 , 也是可 行的 。参考文献 :1. 张 铃 , 张钹 . 遗传算法机理的研究 J. 软件学报 .2000.11(72. 宋巨龙 , 钱富才 . 平面上的黄金分割法 J。 系统工程与实践 .3. 熊伟清 , 魏 平 . 遗传算法的早熟现象研究 J. 计算机应用研究 .2001.94. 王 复 兴 . 黄 金 分 割 在 自 动 系 统 故 障 判 断 中 的 作 用 J. 自 动 化 仪 表 . 2001. (225. 姜大立 , 杨四龙 , 杜文 . 车辆问题的遗传算法研究 J. 系统工程理论与 实践 。 1999.19(66. 郭宇春等 . 遗传算法及其应用 . 系统工程与电子工程 J.1998.77. 扬智民 , 王旭 , 庄显义 . 遗传算法在自动控制领域中的应用综述 J. 信息 与控制 . 2000. 29(48. 邓正龙 , 何小荣 , 蒋兆贵等 化工中的优化方法 M北京 :化学工业出 版社 。 19929. 席裕庚 , 柴天佑等 . 遗传算法综述 J. 信息与控制 .1996.13(6实现了模型的所有功能 。图 3RTW 选项图 4TLC 的选择4. 模型代码运行下图介绍了如 生 成 代 码 如 何 通 过 TLC 被 编 译 并 下 放 到 目 标环境运行的原理 :图 5编译目标代码过程模型代码生成并编译为指定平台可执行文件后 , 只要目标 环境平台配置得当 , 就可以将生成的可执行文件下放到目标环 境运行了 。在实验中我们使用了普通 ERT 方式生成代码 , 其编译器默 认使用是 Matlab 自带的 Lcc 。 使用此编译器编译模型生成的代 码 文 件 testmodel.c 可 实 现 EXE 文 件 的 生 成 (生 成 代 码 中 有 make 文件可用 , 工具可选择直接生成可执行文件 。 并可用于本 地环境运行 (因为普通 ert.tlc 不是针对具体目标环境生成的 , 而 仅仅是提供 ERT 代码的格式样板 , 不含与特定操作系统和编译 器有关内容 , 所以编译生成后可直接本地运行 。5. 总结由本文可鉴 , 通过模型设计的方式开发嵌入式软件可以大 大节省项目在开发时间和人力上的投入 , 工程师可以将注意力 集中在模型的设计和验证上 , 而屏蔽了各种应用中的实现细节 (这些都由 tlc 文件来完成 。 大量事实表明 , RTW 生成的代码在 效率和代码可读性等方面足以与优秀的手写代码媲美 。 以模型 方式进行嵌入式软件的开发 , 在动辄上万行的系统中优势尤为 明显 。参考文献 :1. The MathWorks Inc. R eal-Time Workshop for Users With Simu
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号