使用参数配置文件设置参数
要将参数指定为分析变量,您可以使用参数表或在 MATLAB® 代码文件中定义参数配置。您也可以从参数表中导出参数配置文件。有关详细信息,请参阅导入和导出参数约束。
此示例说明如何在 MATLAB 代码文件中定义参数配置。有关说明如何使用参数表定义这些参数配置的示例,请参阅使用参数表查找约束。
参数配置模板文件
Simulink® Design Verifier™ 软件提供了一个带注解的模板,您可以将其用作起点:
matlabroot/toolbox/sldv/sldv/sldv_params_template.m
要创建参数配置文件,请复制该模板并进行编辑。模板中的注释解释了定义参数配置的语法。
要在分析模型之前将参数配置文件与模型关联,请在“配置参数”对话框的 Design Verifier > 参数和变体窗格中,在参数配置文件字段中输入文件名。
参数配置文件中的语法
使用结构体来指定参数配置,该结构体的字段名称与您视为输入变量的参数名称相同。
例如,假设您要约束增益和常数值参数 m
和 b
,它们出现在以下模型中:
当您打开模型时,PreLoadFcn
回调函数会在 MATLAB 工作区中定义 m
和 b
:
m
设置为 5。b
是int8
类型的Simulink.Parameter
对象,其值设置为 5。
在参数配置文件中,指定 m
和 b
的约束:
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。