ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Matlab(Simulink)使用详解

Matlab(Simulink)使用详解 Matlab函数名和文件名要一致定点数Fixed-point number是一种“小数点位置固定”的数值表示法定点数 “把小数当整数存、用整数算、最后再缩回去” 的技巧 它牺牲了自动范围调整来换取硬件简单、功耗低、误差可预测在成本敏感或确定性要求高的场合是浮点无法替代的选择Matlab中时间单位都是秒(s)在 MATLAB/Simulink 里做「嵌入式软件」代码生成时solver求解器的选择只有一条铁律——必须让模型在“固定步长 离散”框架下跑否则 Embedded Coder 无法把算法翻译成周期可调、内存可测、无浮点异常的 C 代码总结嵌入式 Solver 只认「Fixed-step discrete/ode4」步长中断周期Hardware 页选对 MCU生成后再看栈和 FPU 报告——照做就能一次编译通过车辆系统里两种步长都会用但分工非常明确——“离线做算法研发”用变步长“上车/进 ECU”一律改定步长特性模型变体 (Model Variants)子系统变体 (Subsystem Variants)作用范围整个模型子系统内部定义位置在模型级别定义在子系统内部定义主要用途管理整个模型的多种配置管理子系统内部的多种配置实现方式使用Variant Subsystem模块使用Variant Subsystem模块参数设置在模型参数对话框中设置在子系统参数对话框中设置代码生成为整个模型生成不同配置的代码为子系统生成不同配置的代码应用场景不同的测试场景、硬件平台、操作模式子系统内部的不同控制策略、硬件配置示例不同的控制器选择如 PID、模糊控制器子系统内部的不同控制器选择如 PID、模糊控制器灵活性高适用于整个模型的多种配置高适用于子系统内部的多种配置维护成本低减少模型冗余低减少子系统冗余多平台支持支持为不同硬件平台定义配置支持为子系统内部的不同硬件平台定义配置测试和验证支持快速切换不同测试场景支持快速切换子系统内部的不同测试场景slblocks用于管理和操作Simulink库中的模块。通过slblocks可以轻松地列出库中的模块、获取模块的属性、添加或删除模块、检查模块的依赖关系以及生成模块的文档。特性模块工作空间Module Workspace基础工作空间Base Workspace作用范围局部仅在模块内部有效全局整个模型有效主要用途局部参数管理封装和重用全局参数管理数据共享变量访问只能被该模块访问可以被模型中的任何模块访问独立性每个模块独立互不干扰全局统一所有模块共享适用场景模块内部的参数和变量模型中共享的参数和变量存储位置模块的参数对话框或模块工作空间MATLAB 工作空间或模型设置中的基础工作空间数据字典提供了更集中、更安全、更易于管理的数据管理方式。通过使用数据字典可以集中管理模型中的所有数据减少数据冗余和冲突。确保数据的隔离和独立性避免数据冲突。使用版本控制系统管理数据字典文件确保数据的可追溯性和可恢复性。便于团队协作确保所有成员使用的是最新的数据定义。确保代码生成的一致性和准确性。因此数据字典通常被认为比基础工作空间更安全、更高效的数据管理工具。Simulink Project是一个项目管理工具用于帮助你更好地组织和管理Simulink模型项目。它就像是一个“项目管家”帮你把所有相关的文件模型、脚本、数据字典、文档等放在一起方便管理和使用。主要功能文件管理把所有项目文件集中管理文件夹分类清晰。版本控制集成 Git 等工具方便跟踪文件变更和协作。依赖管理自动分析文件依赖确保文件完整性和一致性。团队协作支持多人协作共享项目文件避免冲突。文档管理集成文档方便查阅和更新。逻辑相关的用StateFlow矩阵相关的用Matlab Function数据流用SimulinkStateflow是MATLAB/Simulink环境下用于事件驱动系统建模与仿真的图形化编程工具其核心思想是状态机理论。它通过状态图State Diagram的形式将复杂的控制逻辑、状态转换、事件响应等行为可视化inf无穷大[]表示条件{}表示逻辑在 Stateflow 里每个状态都可以写 “动作标签”常用的有关键字全称触发时机典型用法en/entryentry刚进入状态仅一次初始化变量、开中断、点灯du/duringduring停留在本状态的每个激活步持续控制、累加计数ex/exitexit将要离开状态仅一次清标志、关中断、保存现场on event_nameon本状态内收到给定事件事件驱动动作如on SWITCHon after(n, sec)after进入状态 n 秒之后仍未退出超时保护、看门狗on before(n, sec)before进入状态未满 n 秒就离开防误触、短按过滤on at(n, sec)at进入状态恰好第 n 秒精确定时触发on every(n, sec)every每隔 n 秒触发一次周期采样、闪烁bindbind把变量/事件绑定到状态保证只有本状态能修改它模型验证嵌入式代码生成
返回列表