Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

指定结构或总线参数的参数配置

关于此示例模型

此示例描述了如何生成约束模型中的结构和总线信号值的测试。假设您的模型包含一个名为 kpGainsStructure 的变量,它是 MATLAB® 工作区中的一个结构体。该模型使用Bus Selector模块将结构体字段分离为单独的总线信号。您可以约束结构体的值或总线信号的值,以确保它们在仿真期间保持在指定的范围内。

本示例介绍如何创建和分析一个简单的 Simulink®模型,然后使用 Simulink Design Verifier™ 为该模型生成测试用例。该模型包含一个输入信号In1,其值设置在-1到1之间。kpGainsStructure是一个包含三个字段Kp1Kp2Kp3的结构体,并将它们输出到将字段分离为单独总线信号的Bus Selector模块。名为 Mode 的模块具有一个常量值参数,该参数设置为 mode,确定三个总线信号作为 kpGain模块的输入。

In1的值乘以d,然后乘以选定的总线信号。结果传递到 Saturation模块,其限制定义在 -0.5 到 0.5 之间。

根据 mode 的值,Simulink 选择三个 kpGainsStructure 字段之一并指定约束。Saturation模块的输入信号必须低于下限或高于上限才能满足 Saturation模块的决策目标。Simulink Design Verifier 然后调整这些参数以达到此限制。以下工作流程将指导您完成此示例的过程。

预加载结构参数的工作区变量

预加载 MATLAB 工作区变量 kpGainsStructure 的值。该结构体包含字段 Kp1Kp2Kp3

  1. 建模 选项卡上,选择 模型设置 > 模型属性

  2. 单击“回调”选项卡。

  3. 点击PreLoadFcn,然后加载myStructKp1Kp2Kp3字段:

    load('struct_param.mat');
    myStruct.Kp1 = 15;
    myStruct.Kp2 = -5;
    myStruct.Kp3 = -5;
    gainsParam = Simulink.Parameter(myStruct);
    mode = 1;
    d = Simulink.Parameter(0.012);

  4. 单击“OK”关闭“模型属性”对话框并保存模型。

因为结构体参数是由Constant模块调用的,所以需要将Constant模块的输出定义为总线。按着这些次序:

  1. 双击 Gains模块以打开模块参数对话框。

  2. 信号属性 下,选择 输出数据类型 作为 Bus:BusO

  3. 点击确定

定义参数约束值

在配置参数窗口中,有两种方法可以约束结构体或总线信号的值:使用参数表或参数配置文件。

  • 参数表

  • 参数配置文件

使用参数表定义参数约束值

在可能的情况下,参数表会根据参数的数据类型和模型中的位置自动为每个参数生成约束值。有关更多信息,请参阅 使用参数表

按照以下步骤生成每个参数的约束值:

  1. App 选项卡上的 模型验证、确认和测试 下,点击Design Verifier

  2. Design Verifier 选项卡上,点击Test Generation Settings

  3. 在配置参数对话框中,选择 Design Verifier > 参数和变体

  4. 选择 使用参数表

  5. 点击 查找参数

  6. 参数表填充了您的模型中的参数。

  7. 在参数表中的约束列中,

    • {1,2,3} 替换 mode

    • [-0.01 0.15] 替换 d

  8. 点击确定

使用参数配置文件定义约束值

这是一种替代方法,您可以使用它来定义约束的值,而不是使用参数表。Simulink Design Verifier软件提供了一个模板,您可以复制并编辑它。有关详细信息,请参阅 使用参数配置文件 中的 模板参数配置文件。默认的参数配置文件路径为:

matlabroot/toolbox/sldv/sldv_params_template.m

要在分析模型之前将参数配置文件与您的模型关联,请在配置参数对话框的Design Verifier > 参数和变体窗格中,确保清除使用参数表,然后在参数配置文件字段中输入配置文件的文件名。

按照以下步骤在参数配置文件中定义约束值:

  1. sldv_params_template.m 中输入:

    function params = params_config
    params.mode = {1, 2, 3};
    params.d = [-.001 0.15];
    params.gainsParam.Kp1 = Sldv.Interval(0, 50);
    params.gainsParam.Kp2 = Sldv.Interval(-10, 10);
    params.gainsParam.Kp3 =  [-5, 5];
    

  2. 使用名称 params_config.m 保存文件。

  3. 打开模型DemoModel

  4. App窗格中的 模型验证、确认和测试 下,点击Design Verifier

  5. Design Verifier 选项卡上,点击Test Generation Settings

  6. 在配置参数对话框中,选择 Design Verifier > 参数和变体

  7. 点击浏览,然后选择步骤2中创建保存的params_config.m参数配置文件。

分析示例模型

对启用参数约束的模型进行分析,并生成分析报告:

  1. Design Verifier 选项卡的 模式 部分中,选择 测试生成 。点击 生成测试

    Simulink Design Verifier分析您的模型以生成测试用例。

  2. 当软件完成分析后,在Simulink Design Verifier结果摘要窗口的详细分析报告旁边,选择 HTML。

    该软件显示一个名为 DemoModel.html 的 HTML 报告。

  3. Simulink Design Verifier 报告的目录中,点击测试用例

  4. 单击“Test Case 1”即可显示该测试用例的子部分。

    测试用例1 显示 Simulink Design Verifier 调整了所有参数,使得来自 In1 输入信号、Gain模块和模式变量的所有输入要么低于 -0.5,要么高于 0.5。在生成测试用例时,所有约束都满足目标。

类似地,测试用例2 和测试用例3 的参数也经过调整并满足目标。

另请参阅