Main Content

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

使用参数配置文件

要将参数指定为分析的变量,您可以使用参数表或在 MATLAB® 代码文件中定义参数配置。您还可以从参数表中导出参数配置文件。有关更多信息,请参阅 将参数约束存储在 MATLAB 代码文件中

此示例显示如何在 MATLAB 代码文件中定义参数配置。有关如何使用参数表定义这些参数配置的示例,请参阅 使用参数表

模板参数配置文件

Simulink® Design Verifier™ 软件提供了一个带注释的模板,您可以将其用作起点:

matlabroot/toolbox/sldv/sldv/sldv_params_template.m

要创建参数配置文件,请复制模板并编辑该副本。模板中的注释解释了定义参数配置的语法。

要在分析模型之前将参数配置文件与模型关联,请在配置参数对话框的Design Verifier > 参数和变体窗格中,在参数配置文件字段中输入文件名。

参数配置文件中的语法

使用结构体来指定参数配置,该结构体的字段与您视为输入变量的参数共享相同的名称。

例如,假设您想要约束以下模型中出现的 增益常量值 参数、mb

打开模型时,PreLoadFcn回调函数在MATLAB工作区中定义mb

  • m 设置为 5。

  • bint8 类型的 Simulink.Parameter 对象,其值设置为 5。

在您的参数配置文件中,指定mb的约束:

params.b = int8([4 10]);
params.m = {};

该文件指定:

  • b 是一个 8 位有符号整数,范围是 4 到 10。约束类型必须与 MATLAB 工作区中的参数 b(本例中为 int8)的类型匹配。

  • m 不受任何值的限制。

使用 Sldv.Point 构造函数指定点,该构造函数接受单个值作为其参量。使用 Sldv.Interval 构造函数指定间隔,它需要两个输入参量,即区间的下限和上限。或者,您可以提供以下值之一作为第三个输入参量,指定包含或排除区间端点:

  • '()' — 定义一个开区间。

  • '[]' — 定义一个闭区间。

  • '(]' — 定义左开区间。

  • '[)' — 定义右开区间。

注意

默认情况下,如果省略此参量,Simulink Design Verifier 会认为区间是封闭的。

下面的示例将 m 限制为 3,并将 b 限制为闭区间[0, 10] 内的任意值:

params.m = Sldv.Point(3);
params.b = Sldv.Interval(0, 10);

如果参数是标量,则可以省略构造函数,而指定单个值或双元素向量。例如,您也可以将前面的示例指定为:

params.m = 3;
params.b = [0 10];

注意

要指示输入参数没有约束,请指定 params.m = {}params.m = [] 。分析将该参数视为自由输入。

您可以使用元胞数组为单个参数指定多个约束。在这种情况下,分析使用逻辑“或”运算来组合约束。

下面的示例将 m 限制为 3 或 5,并将 b 限制为闭区间[0, 10] 内的任意值:

params.m = {3, 5};
params.b = [0 10];

您可以通过扩展结构体的大小来指定多组参数。例如,以下示例使用 1×2结构体来定义两组参数:

params(1).m = {3, 5};
params(1).b = [0 10];

params(2).m = {12, 15, Sldv.Interval(50, 60, '()')};
params(2).b = 5;

第一个参数集将 m 限制为 3 或 5,并将 b 限制为闭区间[0, 10] 内的任意值。第二个参数集将 m 限制为 12、15 或开区间(50, 60) 内的任意值,并将 b 限制为 5。