Можно защитить проект модели, препятствуя тому, чтобы параметры блоков использовали значения за пределами области значений. Например, если значение параметра, который представляет угол элерона самолета, не может осуществимо превысить известную величину, можно задать максимум проекта для параметра в модели.
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 (на вкладке Modeling, нажмите Model Data Editor), можно задать диапазоны значений для нескольких параметров блоков и переменных с доступной для поиска, поддающейся сортировке таблицей. На вкладке Parameters, набор Change view выпадающий список к Design
и задайте значения в столбцах Max и Min.
Для получения дополнительной информации о Model Data Editor, смотрите Configure Data Properties при помощи 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).