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

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

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

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

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

Для основной информации о параметрах блоков смотрите Установленные Значения Параметров блоков.

Укажите диапазоны значения параметров

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

  • Используйте другие параметры того же блока при наличии. Например, можно управлять диапазоном значений параметра Gain блока Gain при помощи Parameter minimum и параметров Parameter maximum во вкладке Parameter Attributes в диалоговом окне блока. Для других блоков, таких как n-D Lookup Table и PID Controller, используют вкладку Data Types.

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

    • Храните информацию области значений в файле модели.

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

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

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

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

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

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

    Если вы указываете информацию области значений в объекте параметра, рассматриваете удаление информации о диапазоне от блока. Например, на вкладке Parameter Attributes диалогового окна блока Gain, устанавливает Parameter minimum и Parameter maximum к []. Некоторые инструменты, такие как Fixed-Point Tool, используют информацию области значений, которую вы указываете в блоке, только если вы не указываете информацию области значений в объекте параметра. Если вы указываете информацию области значений в объекте параметра, инструменты игнорируют информацию области значений, которую вы указываете в блоке.

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

Укажите допустимую информацию области значений

Задайте минимум или максимум как выражение, которое оценивает к скаляру, вещественному числу с double тип данных. Например, можно задать минимальное значение для параметра Gain в блоке Gain установкой Parameter minimum:

  • Литеральный номер, такой как 98.884. Неявно, типом данных является double.

  • Числовая переменная рабочей области (см. Значения Параметров блоков Доли и Повторного использования путем Создания Переменных), чьим типом данных является double. Используйте этот метод, чтобы совместно использовать минимальное или максимальное значение между несколькими элементами данных.

    Однако вы не можете использовать переменные, чтобы установить Min или Max свойства объекта параметра.

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

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

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

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

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

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

Укажите диапазоны для нескольких параметров при помощи Model Data Editor

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

Для получения дополнительной информации смотрите Model Data Editor.

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

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

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

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

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

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

Чтобы указать информацию области значений для настраиваемых параметров, смотрите, Вычисляют Фиксированную точку Лучшей Точности, Масштабирующуюся для Настраиваемых Параметров блоков. Чтобы учиться как сигналы автошкал Fixed-Point Tool путем принятия во внимание диапазонов значений настраиваемых параметров, смотрите, Выводят Области значений для Объектов Simulink.Parameter (Fixed-Point Designer).

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

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

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

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

format long
98.8847692348509014 + eps(98.8847692348509014)
ans =

  98.884769234850921

Используйте получившийся номер, 98.884769234850921, заменять максимальное значение.

Оптимизируйте сгенерированный код

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

Похожие темы