Можно защитить образцовый проект, препятствуя тому, чтобы параметры блоков использовали значения за пределами области значений. Например, если значение параметра, который представляет угол элерона самолета, не может осуществимо превысить известное значение, можно задать максимум проекта для параметра в модели.
Fixed-Point Designer™ позволяет Simulink® использовать вашу информацию об области значений, чтобы вычислить фиксированную точку лучшей точности, масштабирующуюся для:
Настраиваемые параметры.
Сигналы, путем учета области значений значений, которые вы намереваетесь присвоить настраиваемым параметрам.
Для основной информации о параметрах блоков смотрите Установленные Значения Параметров блоков.
Когда вы задаете диапазон значений для параметров блоков, обычно, можно принять решение хранить информацию в блоке (образцовый файл) или во внешней переменной или объекте параметра. Выберите метод на основе своих целей моделирования.
Используйте другие параметры того же блока при наличии. Например, можно управлять диапазоном значений параметра Gain блока Gain при помощи Parameter minimum и параметров Parameter maximum во вкладке Parameter Attributes в диалоговом окне блока. Для других блоков, таких как Интерполяционная таблица n-D и ПИД-регулятор, используют вкладку 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 (View> 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. Объекты параметра (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. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Simulink Coder).