Много блоков Simulink® позволяют вам задавать область значений допустимых значений для их выходных сигналов. Simulink обеспечивает диагностику, которую можно включить, чтобы обнаружить, когда блоки генерируют сигналы, которые превышают их заданные области значений во время симуляции. Смотрите разделы, которые следуют для получения дополнительной информации.
Следующие блоки позволяют вам задавать области значений для своих выходных сигналов:
В целом используйте Output minimum и параметры Output maximum блока, чтобы задать область значений допустимых значений для выходного сигнала блока. Исключения включают Память Хранилища данных, Inport, Выходной порт и блоки Спецификации Сигнала, для которых вы используете их Minimum и параметры Maximum, чтобы задать диапазон сигнала. Смотрите Блоки, Которые Позволяют Спецификацию Диапазона сигнала для списка применимых блоков.
Чтобы получить доступ к этим параметрам, используйте Property Inspector (View> Property Inspector), Model Data Editor (View> Model Data Editor), или диалоговое окно блока. Чтобы использовать каждый метод эффективно, смотрите Setting Properties и Параметры.
Задайте минимум или максимум как выражение, которое оценивает к скаляру, вещественному числу с типом данных double
. Например, можно использовать:
Литеральный номер, такой как 98.884
. Неявно, типом данных является double
.
Числовая переменная рабочей области (см. Значения Параметров блоков Доли и Повторного использования путем Создания Переменных), чьим типом данных является double
. Используйте этот метод, чтобы совместно использовать минимальное или максимальное значение между несколькими элементами данных.
Однако вы не можете использовать переменные, чтобы установить свойства Min
или Max
объекта Simulink.Signal
.
Скалярное значение, которое вы задаете, применяется к каждому элементу составного сигнала (например, когда сигнал является нескалярным или шина). Для получения информации о скалярном расширении смотрите Скалярное Расширение Входных параметров и Параметров.
Чтобы оставить минимум или максимум сигнала незаданными, используйте пустой матричный []
, который является значением по умолчанию.
Если вы используете построения моделирования, такие как сигналы шины, хранилища данных и графики Stateflow®, можно использовать различные методы, чтобы указать информацию области значений проекта. Используйте информацию в таблице.
Описание целевого сигнала | Метод и больше информации |
---|---|
Численно комплексный сигнал | Когда вы задаете Output minimum или Output maximum для сигнала, который является численно комплексным, заданные минимальные и максимальные значения применяются отдельно к действительной части и к мнимой части комплексного числа. Если значение или части номера является меньше, чем минимум, или больше, чем максимум, комплексное число вне заданной области значений. Никакая проверка диапазона не происходит против никакой комбинации действительных и мнимых частей, таких как |
Элементы сигнала в шине | Если вы собираете шину при помощи блока Bus Creator, можно указать информацию области значений на восходящих блоках, которые питают Создателя Шины. Независимо от метода вы используете, чтобы собрать шину, можно создать объект |
Сигнал в блоке MATLAB function | Используйте Порты и Менеджер данных, чтобы задать свойства Minimum и Maximum данных. Смотрите Устанавливающие Общие Свойства. |
Сигнал в диаграмме Stateflow | Установите свойства Minimum и Maximum соответствующих данных Stateflow. Смотрите Предельные Свойства Области значений (Stateflow). |
Сигнализируйте, что вы сопоставляете с объектом сигнала (таким как | Установите свойства |
Хранилище данных (Блок памяти хранилища данных или объект | Для Блока памяти Хранилища данных, набор Minimum и параметры блоков Maximum. Для объекта сигнала, набор свойства |
Simulink обеспечивает диагностику под названием Simulation range checking, который можно включить, чтобы обнаружить, когда сигналы превышают свои заданные области значений во время симуляции. Когда включено, Simulink сравнивает значения сигналов что блок выходные параметры с обоими заданная область значений (см., Задают Области значений для Сигналов), и тип данных блока. Таким образом, Simulink выполняет следующую проверку:
DataTypeMin ≤ MinValue ≤ VALUE ≤ MaxValue ≤ DataTypeMax
где
DataTypeMin
является минимальным значением, представимым типом данных блока.
MinValue
является минимальным значением, которое блок должен вывести, заданный, например, Output minimum.
VALUE
является значением сигналов что блок выходные параметры.
MaxValue
является максимальным значением, которое блок должен вывести, заданный, например, Output maximum.
DataTypeMax
является максимальным значением, представимым типом данных блока.
Возможно чрезмерно определить, как блок обрабатывает сигналы, которые превышают конкретные области значений. Например, можно задать значения (кроме значений по умолчанию) и для параметров диапазона сигнала и включить параметр Saturate on integer overflow. В этом случае Simulink отображает предупреждающее сообщение, которое советует вам отключать параметр Saturate on integer overflow.
Включить диагностику Simulation range checking:
В вашем окне модели выберите Simulation> Model Configuration Parameters.
Simulink отображает диалоговое окно Configuration Parameters.
В дереве Select на левой стороне диалогового окна Configuration Parameters нажмите Diagnostics> категория Data Validity. На правой стороне под Signals, набор диагностика Simulation range checking к error
или warning
.
Нажмите OK, чтобы применить ваши изменения и закрыть диалоговое окно Configuration Parameters.
Смотрите проверку диапазона Симуляции для получения дополнительной информации.
Проверять на ошибки диапазона сигнала или предупреждения:
Включите диагностику Simulation range checking для своей модели (см., Включают Проверку диапазона Симуляции).
В вашем окне модели выберите Simulation> Run, чтобы моделировать модель.
Simulink моделирует вашу модель и выполняет проверку диапазона сигнала. Если сигнал превышает свою заданную область значений, когда диагностика Simulation range checking задает error
, Simulink останавливает симуляцию и генерирует ошибку (например, в Диагностическом Средстве просмотра).
В противном случае, если сигнал превышает свою заданную область значений, когда диагностика Simulation range checking задает warning
, Simulink генерирует предупреждающее сообщение в Командном окне MATLAB®. Каждое сообщение идентифицирует блок, выходной сигнал которого превышает свою заданную область значений и временной шаг, на котором происходит это нарушение.
Некоторые виртуальные блоки (см. Невиртуальные и Виртуальные Блоки) позволяют вам задавать области значений для своих выходных сигналов, например, блоков Inport и Outport. Когда диагностика Simulation range checking включена для модели, которая содержит такие блоки, диапазон сигнала виртуального блока распространяет назад к первой инстанции невиртуального блока, выходной сигнал которого это получает. Если невиртуальный блок задает различные значения для своей собственной области значений, Simulink выполняет диапазон сигнала, сверяющийся с возможной областью значений tightest. Таким образом, Simulink Check сигнал с помощью большего минимального значения и меньшего максимального значения.
Например, рассмотрите следующую модель:
В этой модели блок Constant задает свой параметр Output maximum как 300, и тот из блока Inport установлен в 100. Предположим, что вы включаете диагностику Simulation range checking и моделируете модель. Блок Inport назад распространяет свое максимальное значение к невиртуальному блоку, который предшествует ему, т.е. блок Constant. Simulink затем использует меньшие из этих двух максимальных значений, чтобы проверять сигнал что блок Constant выходные параметры. Поскольку блок Constant выводит сигнал, значение которого (200) превышает самую трудную область значений, Simulink генерирует ошибку.
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).