1.概述
Simulink 的仿真设置(Model Settings)是确保仿真准确性的关键配置,主要包括仿真时间、步长、解法器选择等核心参数的设定。 可以通过快捷键Ctrl+E打开仿真设置界面
2.核心参数
2.1 求解器Solver配置
- 时间范围:设置仿真开始时间(通常为0)和结束时间(需根据系统动态响应特性调整,如阶跃响应超调时间+2倍调节时间)。
- 解法器类型:
- 变步长(Variable-step) :适用于非线性、时变系统,支持误差控制和过零检测。推荐解法器:
- ode45:默认选项,适用于大多数连续/离散混合系统(非刚性),基于四阶/五阶龙格库塔法。
- ode15s:处理刚性系统(特征值差异大),如热力学模型或电路仿真。
- ode23t:适用于适度刚性系统且需避免数值振荡的场景(如柔性机械系统)。
- 固定步长(Fixed-step) :用于实时系统或硬件在环(HIL)仿真,推荐解法器:
- ode5(对应ode45固定步长版):适用于非刚性系统。
- discrete:纯离散系统(如数字控制算法)。
- 变步长(Variable-step) :适用于非线性、时变系统,支持误差控制和过零检测。推荐解法器:
- 步长参数:
- 变步长:最大步长(Maximum step size)建议设为仿真时间/50(默认),长仿真时间(>15s)需加密采样(如每秒5-10点)。
- 固定步长:需与模块采样时间对齐,避免速率转换错误。
- 误差控制:
- 相对误差(Relative tolerance):默认1e-3(0.1%),高精度场景设为1e-4。
- 绝对误差(Absolute tolerance):默认auto(1e-6),零初始状态系统需手动调整
2.2 数据I/O(Workspace I/O)配置
- 输入/输出管理:
- 使用From Workspace导入MATLAB变量(需包含时间戳,格式如[t, u])。
- 通过To Workspace记录信号数据至结构体/时间序列(TimeSeries),支持后续MATLAB分析。
- 信号记录 :
- 激活"Log signals to workspace"选项,自动记录所有示波器(Scope)数据。
- 使用Signal Logging模块选择性记录关键信号。
2.3 诊断设置(Diagnostics)
- 速率转换检测:
- 多任务模式(Multitasking):检测模块间非法速率转换(如慢模块直接驱动快模块),强制插入Unit Delay或Zero-Order Hold。
- 单任务模式(Singletasking):适用于非实时系统,忽略速率转换错误。
- 代数环处理:
- 启用"Algebraic Loop"警告,优先通过引入中间状态变量消除环,或设置"Automatically solve algebraic loops using"为"Back-substitution"。
- 过零检测:
- 对含 discontinuous模块(如Relay)的系统,启用"Zero-crossing detection"提高仿真精度
3.优化
3.1 性能调优技巧
- 并行计算:启用"Enable parallel simulation"(需MATLAB Parallel Computing Toolbox),加速大规模模型仿真。
- 内存优化:关闭非必要信号记录,使用"Limit data points to last"限制存储数据量。
- 代码生成兼容性:固定步长模式下选择"ert.tlc"(Embedded Coder)模板,确保与生成的C代码时序一致。
3.2 特殊系统配置
- 混合系统:连续部分使用ode45,离散部分设置固定步长,通过"Multirate Solvers"协调执行。
- 分布式仿真:将模型拆分为子系统,通过"Model Reference"或"Subsystem"并行仿真。
4.典型应用场景
场景类型 | 推荐设置 | 典型模块示例 |
---|---|---|
连续控制系统 | ode45 + 变步长,相对误差1e-4,最大步长0.1*Td(Td为系统时间常数 | PID控制器、传递函数模块 |
电力电子系统 | ode23t + 变步长,过零检测启用,离散PWM模块固定步长1e-6s | SVPWM、IGBT模型 |
数字信号处理 | discrete固定步长,与FPGA时钟同步,启用"Signal Propagation"诊断 | FFT、FIR滤波器 |
刚性系统 | ode15s + 变步长,绝对误差1e-5,禁用过零检测(避免频繁步长调整) | 机器人逆运动学、化学反应器 |