主要内容

使用参数配置文件设置参数

要将参数指定为分析变量,您可以使用参数表或在 MATLAB® 代码文件中定义参数配置。您也可以从参数表中导出参数配置文件。有关详细信息,请参阅导入和导出参数约束

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

参数配置模板文件

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

matlabroot/toolbox/sldv/sldv/sldv_params_template.m

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

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

参数配置文件中的语法

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

例如,假设您要约束增益常数值参数 mb,它们出现在以下模型中:

Simulink model with a Gain and a Constant block.

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

  • m 设置为 5。

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

Model properties window.

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

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

此文件指定了以下约束:

  • b 是 4 到 10 之间的 8 位有符号整数。约束类型必须与 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 = []。分析会将此参数视为自由输入。

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

以下示例将 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。