Можно защитить проект модели, предотвратив использование параметрами блоков значений за пределами области значений. Для примера, если значение параметра, который представляет угол элерона самолета, не может существенно превысить известную величину, можно задать проект максимум для параметра в модели.
Fixed-Point Designer™ включает Simulink® чтобы использовать информацию о области значений для вычисления оптимальной точности масштабирования с фиксированной точностью для:
Настраиваемые параметры.
Сигналы, принимая во внимание область значений значений, которые вы намереваетесь назначить настраиваемым параметрам.
Для получения основной информации о параметрах блоков смотрите Set Block Parameter Values.
Когда вы задаете область значений значений для параметров блоков, обычно можно принять решение хранить информацию в блоке (файле модели) или во внешней переменной или объекте параметра. Выберите метод на основе ваших целей моделирования.
При наличии используйте другие параметры того же блока. Для примера можно управлять область значений значений параметра 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
и задайте значения в Min и Max столбцах.
Дополнительные сведения о Model Data Editor см. в разделе Настройка свойств данных при помощи Model Data Editor.
Чтобы защитить свой проект, предотвратив использование параметрами блоков значений вне области значений, можно задать минимальную и максимальную информацию при помощи других параметров того же блока. Если вы или ваши пользователи задаете значение целевого параметра вне заданной области значений, модель генерирует ошибку.
Позволяет ли блок вам задать область значений значений для параметра, рассмотрите использование объекта параметра (для примера, Simulink.Parameter
), чтобы задать значение целевого параметра. Используйте свойства объекта, чтобы задать информацию о области значений. Этот метод помогает вам задать информацию о области значений для переменной, которую вы используете, чтобы задать несколько значений параметров блоков.
Когда вы используете типы данных с фиксированной точкой в модели, можно включить Simulink, чтобы выбрать наиболее точное масштабирование для параметров блоков и Simulink.Parameter
объекты. Если вы намерены настроить такой параметр путем изменения его значения во время симуляции или во время выполнения сгенерированного кода, масштабирование с фиксированной точкой, выбранное Simulink, должно включать область значений значений, которые вы ожидаете присвоить параметру.
Кроме того, если вы ожидаете изменить значение параметра, типы данных сигнала в модели должны включать соответствующую расширенную область значений возможных значений сигналов. Если вы используете Fixed-Point Tool, чтобы предложить и применить типы данных с фиксированной точкой для модели, чтобы позволить инструменту точно автоматически масштабировать сигналы, задайте информацию о области значений для настраиваемых параметров.
Чтобы задать информацию о области значений для настраиваемых параметров, смотрите Вычисление оптимальной точности Масштабирования Фиксированной Точки для Настраиваемых Параметров блоков. Чтобы узнать, как Fixed-Point Tool сигналы автошкал с учетом областей значений значений настраиваемых параметров, смотрите Derive Областей значений для объектов Simulink .Parameter (Fixed-Point Designer).
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 или режим external mode. Для получения дополнительной информации смотрите Оптимизировать используя указанные минимальное и максимальное значения (Embedded Coder).