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

Чтобы задать параметры как переменные для анализа, можно использовать Таблицу параметров или задать настройки параметра в файле кода MATLAB®. Можно также экспортировать конфигурационные файлы параметра от Таблицы параметров. Для получения дополнительной информации смотрите Ограничения Параметра Хранилища в Файлах кода MATLAB.

Этот пример показывает, как задать настройки параметра в файле кода MATLAB. Для примера, который показывает, как задать эти настройки параметра с помощью Таблицы параметров, смотрите, Задают Ограничительные Значения для Параметров.

Конфигурационный файл параметра шаблона

Программное обеспечение Simulink® Design Verifier™ обеспечивает аннотируемый шаблон, который можно использовать в качестве отправной точки:

matlabroot/toolbox/sldv/sldv/sldv_params_template.m

Чтобы создать конфигурационный файл параметра, сделайте копию шаблона и отредактируйте копию. Комментарии в шаблоне объясняют синтаксис для определения настроек параметра.

Чтобы сопоставить конфигурационный файл параметра с вашей моделью прежде, чем анализировать модель, в диалоговом окне Configuration Parameters, на Design Verifier> панель Parameters, вводят имя файла в поле Parameter configuration file.

Синтаксис в конфигурационных файлах параметра

Задайте настройки параметра с помощью структуры, поля которой совместно используют те же имена как параметры, которые вы обрабатываете как входные переменные.

Например, предположите, что вы хотите ограничить Gain и параметры Constant value, m и b, которые появляются в следующей модели:

Функция обратного вызова 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.