simulink mil 仿真(1)

simulink mil 仿真(1)

1 年前 · 来自专栏 新能源商用车控制谈天说地

运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。

slover:求解器

选择仿真开始和结束的时间;

选择解法器,并设定它的参数;

选择输出项;

仿真步长模式:

变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。

固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。

Mode(固定步长模式选择)
Multitasking:选择这种模式时,当simulink检测到模块间非法的采样速率转换,它会给出错误提示。所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接。在实时多任务系统中,如果任务之间存在非法采样速率转换,那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况。通过检查这种转换,Multitasking将有助于用户建立一个符合现实的多任务系统的有效模型。

使用速率转换模块可以减少模型中的非法速率转换。Simulink提供了两个这样的模块:unit delay模块和zero-order hold模块。

对于从慢速率到快速率的非法转换,可以在慢输出端口和快输入端口插入一个单位延时unit delay模块。而对于快速率到慢速率的转换,则可以插入一个零阶采样保持器zero-order hold。

输出选项
Refine output:这个选项可以理解成精细输出,其意义是在仿真输出太稀松时,simulink会产生额外的精细输出,这一点就像插值处理一样。用户可以在refine factor设置仿真时间步间插入的输出点数。产生更光滑的输出曲线,改变精细因子比减小仿真步长更有效。

精细输出只能在变步长模式中才能使用,并且在ode45效果最好。

Produce additional output:它允许用户直接指定产生输出的时间点。一旦选择了该项,则在它的右边出现一个output times编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。

Produce specified output only:它的意思是让simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。


coverage 覆盖率

Step 1 of 4 in Use Simulink Coverage to Analyze Your Mode

Before you analyze coverage results for your model, you need to enable coverage and decide which coverage metrics you want to see.

在分析模型的覆盖率结果之前,需要启用覆盖率,并决定要查看哪些覆盖率指标。

Choose Your Coverage Metrics选择你的覆盖指标

On the Apps tab, select Coverage Analyzer.

在应用程序选项卡上,选择覆盖率分析器。

Then, on the Coverage tab, click Settings to open the Configuration Parameters window.

然后,在覆盖率选项卡上,单击设置以打开配置参数窗口。

In the left pane, click Coverage.

在左侧窗格中,单击覆盖率。

Select Enable coverage analysis.

选择启用覆盖率分析。

By default, the scope of the coverage analysis is set to Entire system.

默认情况下,覆盖率分析的范围设置为“整个系统”。

If you want to collect coverage data for a specific referenced model or subsystem, select the appropriate coverage scope and click Select Models or Select Subsystem.

如果要收集特定参考模型或子系统的覆盖率数据,请选择适当的覆盖范围,然后单击“选择模型”或“选择子系统”。

The Structural coverage level parameter has four settings:“结构覆盖率级别”参数有四个设置:

Block Execution 块执行

Whether each block is executed during simulation.是否在模拟期间执行每个块。

Decision 决定

Analyzes decision points in your model. A decision is a place in your model where one or more input signals decide the output signal of a block. Selecting Decision coverage also collects Block Execution coverage.分析模型中的决策点。决策是模型中的一个位置,其中一个或多个输入信号决定块的输出信号。选择决策覆盖率也会收集块执行覆盖率。

Condition Decision 条件决定

Analyzes blocks that output the logical combination of their input. A condition is a Boolean expression that contains no Boolean operators. Selecting Condition Decision coverage also collects Block Execution coverage.分析输出其输入的逻辑组合的块。条件是不包含布尔运算符的布尔表达式。选择条件决策覆盖率也会收集块执行覆盖率。

Modified Condition Decision Coverage (MCDC) 修正条件决策覆盖率(MCDC)

MCDC is condition decision coverage, except each condition must independently affect the decision outcome. Selecting Modified Condition Decision Coverage (MCDC) also collects Condition Decision and Block Execution coverage. MCDC是条件决策覆盖范围,但每个条件必须独立影响决策结果。 选择修改的条件决策覆盖率(MCDC)也会收集条件决策和块执行覆盖率。

Command-Line Information 命令行信息

You can also perform the steps in this example programmatically.

您还可以通过编程方式执行本例中的步骤。

Use sim with a Simulink.

将sim与Simulink一起使用。

SimulationInput object to set the coverage model parameters for a simulation.

SimulationInput对象为模拟设置覆盖模型参数。

open_system(modelName)
simIn = Simulink.SimulationInput(modelName);
simIn = setModelParameter(simIn,'CovEnable','on');