Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

为输入测试用例加载数据

对于大多数输入测试用例,应最大程度减少时间点数。您加载的信号数据包括具有斜坡和不连续点的样本。

有关导入测试用例的规范

通常,在导入测试用例数据时,应最大程度减少时间点数。测试数据集中在信号数据中的不连续点上。

  • 创建具有斜坡和阶跃的信号。换句话说,信号具有一个或多个不连续点。

  • 使用尽可能少的点创建信号。

  • 让 Simulink® 求解器在指定的不连续点执行。

要将此信号导入 Simulink,请使用 From WorkspaceFrom FileSignal Editor 模块,所有这些模块都支持过零检测。

您可以加载以下类型的数据:

  • Simulink.SimulationData.Dataset

  • 数组

  • Simulink.SimulationData.Signal

  • 结构体

  • 包含所有输入端口数据的结构体数组(Signal Editor 模块不支持)

  • 空矩阵 - 对要使用接地值的端口使用空矩阵,而不必创建数据值。

  • 时间表达式(Signal Editor 模块不支持)

指定时间向量和信号值,但仅指定输出形状跳变的点处的时间步。有关指定时间向量的详细信息,请参阅指定时间数据

可以使用输入数据的形式中介绍的任何输入数据格式,但 MATLAB® 时间表达式除外。

测试用例数据示例

下面是一个测试用例数据示例:

以下两个示例使用此测试用例数据。

在测试用例中使用 From Workspace 模块

  1. 打开模型 ex_data_import_test_case_from_workspace

  2. 启用过零检测。在 From Workspace 模块对话框中,选择 Enable zero-crossing detection。过零检测功能可以准确地捕获不连续点。

  3. 为测试用例创建一个信号结构体。在每个不连续点,在时间向量中输入一个重复条目,它会生成过零点,并强制可变步长求解器在此精确时间点执行一个时间步。有关详细信息,请参阅使用 From Workspace 模块加载数据

    定义代表测试用例的 var 结构体:

    var.time = [0 1 1 5 5 8 8 10];
    var.signals.values = [0 0 2 2 2 3 3 3]';
    var.signals.dimensions = 1;
  4. 要导入测试用例结构体,请在 From Workspace 模块对话框的 Data 参数中指定 var

  5. 对模型进行仿真。Scope 模块反映了测试用例数据。

对测试用例使用 Signal Editor 模块

除了使用 From Workspace 模块外,还可以使用 Signal Editor 模块:

  • 以交互方式创建信号

  • 从 MAT 文件中导入信号

  1. Signal EditorGainScope 模块创建模型。

  2. 创建一个结构体并将其保存在 MAT 文件中:

    scenario = Simulink.SimulationData.Dataset;
    time = [0 1 1 5 5 8 8 10];
    data = [0 0 2 2 2 3 3 3]';
    scenario{1} = timeseries(data,time);
    scenario{1}.Name = 'var';
    save var.mat scenario
    
  3. 双击 Signal Editor 模块打开 Signal Editor 对话框。

  4. 在 File name 参数中,输入 var.mat

  5. Active scenario 参数中,选择 “scenario”。点击 OK

    Scope 模块显示画面会反映 MAT 文件中的测试用例数据。

相关示例

详细信息