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