Задайте значения ограничений для параметров в файлах кода MATLAB

Чтобы задать параметры как переменные для анализа, можно использовать Таблицу параметров или задать строения параметров в 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.