exponenta event banner

Задать минимальное и максимальное значения для параметров блока

Можно защитить проект модели, не допуская использования параметров блоков за пределами диапазона. Например, если значение параметра, представляющего угол элерона самолета, не может превышать известную величину, можно задать расчетный максимум для параметра в модели.

Fixed-Point Designer™ позволяет Simulink ® использовать информацию о диапазонах для вычисления наиболее точного масштабирования с фиксированной точкой для:

  • Настраиваемые параметры.

  • Сигналы, принимая во внимание диапазон значений, которые предполагается назначить настраиваемым параметрам.

Основные сведения о параметрах блока см. в разделе Задание значений параметров блока.

Задать диапазоны значений параметров

Обычно при задании диапазона значений для параметра блока можно сохранить информацию в блоке (файле модели) или во внешней переменной или объекте параметра. Выберите метод, основанный на целях моделирования.

  • Используйте другие параметры того же блока, если они доступны. Например, можно управлять диапазоном значений параметра «Усиление» блока «Усиление» с помощью параметров «Минимальное значение параметра» и «Максимальное значение параметра» на вкладке «Атрибуты параметра» диалогового окна блока. Для других блоков, таких как n-D Lookup Table и PID Controller, используйте вкладку «Типы данных».

    Используйте этот метод для:

    • Сохраните информацию о диапазоне в файле модели.

    • Храните информацию о диапазоне при сохранении информации о типе данных с фиксированной точкой в блоке (например, установив для параметра Parameter data type блока Gain тип с фиксированной точкой, включая масштабирование с лучшей точностью). Этот метод более четко связывает информацию о диапазоне с информацией о типе данных.

  • Использовать объекты параметров (например, Simulink.Parameter) для установки значения параметра. Можно указать информацию о диапазоне в объекте вместо блока, используя Min и Max свойства объекта.

    Используйте этот метод для:

    • Укажите информацию о диапазоне для блоков, которые не могут хранить минимальную или максимальную информацию, например, множество блоков в библиотеке Continuous.

    • Укажите информацию о диапазоне для одного значения, совместно используемого несколькими параметрами блока (см. раздел Совместное использование и повторное использование значений параметров блока путем создания переменных). Вместо использования числовой переменной MATLAB ® используйте объект параметра, чтобы можно было указать Min и Max свойства.

    • Сохранять информацию о диапазоне при сохранении информации о типе данных с фиксированной точкой в объекте параметра (путем установки параметра DataType к типу с фиксированной точкой вместо auto). Этот метод более четко связывает информацию о диапазоне с информацией о типе данных.

    При указании информации о диапазоне в объекте параметра рекомендуется удалить информацию о диапазоне из блока. Например, на вкладке Атрибуты параметра (Parameter Attributes) диалогового окна Блок усиления (Gain block) установите значения Минимум параметра (Parameter minimum) и Максимум параметра (Parameter maximum []. Некоторые инструменты, например инструмент «Фиксированная точка» (Fixed-Point Tool), используют информацию о диапазоне, указанную в блоке, только если информация о диапазоне не указана в объекте параметра. При указании информации о диапазоне в объекте параметра инструменты игнорируют информацию о диапазоне, указанную в блоке.

    Основные сведения о создании и использовании объектов данных см. в разделе Объекты данных.

Указать допустимые сведения о диапазоне

Укажите минимум или максимум как выражение, которое вычисляется как скалярное вещественное число с помощью double тип данных. Например, можно задать минимальное значение параметра «Усиление» в блоке «Усиление», задав значение «Минимальное значение параметра»:

Чтобы оставить неопределенным минимум или максимум параметра блока или объекта параметра, используйте пустую матрицу [], которое является значением по умолчанию.

Указание информации о диапазоне для нескалярных параметров

Если значением параметра блока является вектор или матрица, то указанная информация о диапазоне применяется к каждому элементу вектора или матрицы. Если значение какого-либо из элементов находится за пределами указанного диапазона, модель генерирует ошибку.

Если значением параметра блока является структура или поле структуры, укажите информацию о диапазоне для полей структуры, создав Simulink.Parameter объект, типом данных которого является Simulink.Bus объект. Укажите информацию о диапазоне с помощью свойств сигнальных элементов в объекте шины. Дополнительные сведения см. в разделе Управление типами данных полей и характеристиками путем создания объекта параметра.

Указание информации о диапазоне для комплексных параметров

Если параметр блока имеет значение complex (i), то указанная информация диапазона применяется отдельно к действительной части и к мнимой части комплексного числа. Если значение любой части числа находится за пределами диапазона, то модель генерирует ошибку.

Задание диапазонов для нескольких параметров с помощью редактора данных модели

С помощью Редактора данных модели (на вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor)) можно задать диапазоны значений для нескольких параметров и переменных блока с возможностью поиска и сортировки. На вкладке Параметры (Parameters) установите в раскрывающемся списке Изменить представление (Change view) значение Design и укажите значения в столбцах Мин (Min) и Макс (Max).

Дополнительные сведения о редакторе данных модели см. в разделе Настройка свойств данных с помощью редактора данных модели.

Ограничение допустимых значений для параметров блока

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

Позволяет ли блок задать диапазон значений для параметра, рассмотрите возможность использования объекта параметра (например, Simulink.Parameter) для установки значения целевого параметра. Используйте свойства объекта для указания информации о диапазоне. Этот метод позволяет задать информацию о диапазоне для переменной, используемой для задания нескольких значений параметров блока.

Указание информации о диапазоне для настраиваемых параметров с фиксированной точкой

При использовании в модели типов данных с фиксированной точкой можно разрешить Simulink выбирать наиболее точное масштабирование для параметров блоков и Simulink.Parameter объекты. Если предполагается настроить такой параметр путем изменения его значения во время моделирования или во время выполнения сгенерированного кода, масштаб с фиксированной точкой, выбранный Simulink, должен соответствовать диапазону значений, которые предполагается назначить параметру.

Кроме того, если предполагается изменить значение параметра, типы данных сигнала в модели должны соответствовать соответствующему расширенному диапазону возможных значений сигнала. При использовании инструмента Fixed-Point Tool для предложения и применения типов данных fixed-point для модели, чтобы позволить инструменту точно автоматически масштабировать сигналы, укажите информацию о диапазоне для настраиваемых параметров.

Сведения о диапазоне для настраиваемых параметров см. в разделе Расчет масштабирования с лучшей точностью и фиксированной точкой для параметров настраиваемого блока. Сведения о том, как инструмент Fixed-Point Tool автоматически масштабирует сигналы с учетом диапазонов значений настраиваемых параметров, см. в разделе Деривация диапазонов для объектов Simulink.Parameter.

Непредвиденные ошибки или предупреждения для данных с большей точностью или диапазоном, чем double

Когда элемент данных (сигнал или параметр) использует тип данных, отличный от doubleПеред сравнением Simulink помещает элемент данных и каждое заданное предельное значение (минимальное или максимальное значение) в тип данных, не содержащий двойных значений. Этот метод помогает предотвратить появление ненужных, вводящих в заблуждение ошибок и предупреждений.

Однако Simulink сохраняет проектные ограничения как double перед сравнением. Если тип данных элемента данных имеет более высокую точность, чем double (например, тип данных с фиксированной точкой с длиной слова 128 бит и длиной дроби 126 бит) или больший диапазон, чем double, и double не может точно представлять значение предела конструкции, Simulink может генерировать непредвиденные предупреждения и ошибки.

Если тип Nondouble имеет более высокую точность, рассмотрите возможность округления проектного предела до следующего числа, наиболее удаленного от нуля, которое double может представлять. Например, предположим, что сигнал генерирует ошибку после установки максимального значения в 98.8847692348509014. В командной строке вычислите следующее число, наиболее удаленное от нуля, double может представлять.

format long
98.8847692348509014 + eps(98.8847692348509014)
ans =

  98.884769234850921

Используйте результирующее число, 98.884769234850921, для замены максимального значения.

Оптимизация сгенерированного кода

Если используется Embedded Coder ®, Simulink Coder™ может оптимизировать код, генерируемый на основе модели, с учетом минимальных и максимальных значений, заданных для сигналов и параметров. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).

Связанные темы