Чтобы задать параметры как переменные для анализа, можно использовать Таблицу параметров или задать строения параметров в MATLAB® файл кода. Можно также экспортировать файлы строения параметра из таблицы параметров. Для получения дополнительной информации см. «Сохранение ограничений параметров в файлах кода MATLAB».
В этом примере показано, как задать строения параметров в файле кода MATLAB. Для примера, который показывает, как задать эти строения параметров с помощью Таблицы параметров, смотрите Задать значения ограничений для параметров.
Simulink® Программное обеспечение Design Verifier™ предоставляет аннотированный шаблон, который можно использовать в качестве начальной точки:
matlabroot/toolbox/sldv/sldv/sldv_params_template.m
Чтобы создать файл строения параметра, сделайте копию шаблона и отредактируйте копию.Комментарии в шаблоне объясняют синтаксис для определения строений параметра.
Чтобы связать файл строения параметра с моделью перед анализом модели, в диалоговом окне Параметры конфигурации, на панели Design Verifier > Parameters, введите имя файла в поле Parameter configuration file.
Задайте строения параметров, используя структуру, поля которой имеют те же имена, что и параметры, которые вы обрабатываете как входные переменные.
Например, предположим, что вы хотите ограничить параметры Gain и Constant value, m
и b
, которые появляются в следующей модели:
The PreLoadFcn
функция обратного вызова определяет m
и b
в рабочем пространстве MATLAB, когда вы открываете модель:
m
устанавливается равным 5.
b
является Simulink.Parameter
объект типа int8
значение которого установлено равным 5.
В файле строения вашего параметра задайте ограничения для m
и b
:
params.b = int8([4 10]); params.m = {};
Этот файл задает:
b
- 8-битное целое число со знаком от 4 до 10. Тип ограничения должен совпадать с типом параметра b
в рабочем пространстве MATLAB, 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.