Много блоков Simulink® позволяют вам задавать область значений допустимых значений для их выходных сигналов. Simulink обеспечивает диагностику, которую можно включить, чтобы обнаружить, когда блоки генерируют сигналы, которые превышают их заданные области значений во время моделирования. Смотрите разделы, которые следуют для получения дополнительной информации.
Следующие блоки позволяют вам задавать области значений для своих выходных сигналов:
В целом используйте Выходной минимум и Выходные параметры максимума блока, чтобы задать область значений допустимых значений для блочного выходного сигнала. Исключения включают Память Хранилища данных, Inport, Выходной порт и блоки Спецификации Сигнала, для которых вы используете их Минимальные и Максимальные параметры, чтобы задать диапазон сигнала. Смотрите Блоки, Которые Позволяют Спецификацию Диапазона сигнала для списка применимых блоков.
Чтобы получить доступ к этим параметрам, используйте Инспектор свойств (Представление> Инспектор свойств), Редактор Данных модели (Представление> Редактор Данных модели), или блочное диалоговое окно. Чтобы использовать каждый метод эффективно, смотрите Setting Properties и Параметры.
Задайте минимум или максимум как выражение, которое оценивает к скаляру, вещественному числу с типом данных double
. Например, можно использовать:
Литеральный номер, такой как 98.884
. Неявно, типом данных является double
.
Числовая переменная рабочей области (см. Блочные Значения параметров Доли и Повторного использования путем Создания Переменных), чьим типом данных является double
. Используйте этот метод, чтобы совместно использовать минимальное или максимальное значение между несколькими элементами данных.
Однако вы не можете использовать переменные, чтобы установить свойства Min
или Max
объекта Simulink.Signal
.
Скалярное значение, которое вы задаете, применяется к каждому элементу составного сигнала (например, когда сигнал является нескалярным или шина). Для получения информации о скалярном расширении смотрите Скалярное Расширение Вводов и Параметров.
Чтобы оставить минимум или максимум сигнала незаданными, используйте пустой матричный []
, который является значением по умолчанию.
При использовании построения моделирования, такие как сигналы шины, хранилища данных и графики Stateflow®, можно использовать различные методы, чтобы задать информацию об области значений дизайна. Используйте информацию в таблице.
Описание целевого сигнала | Метод и больше информации |
---|---|
Численно комплексный сигнал | Когда вы задаете Выходной минимум или Выходной максимум для сигнала, который является численно комплексным, заданные минимальные и максимальные значения применяются отдельно к действительной части и к мнимой части комплексного числа. Если значение или части номера является меньше, чем минимум, или больше, чем максимум, комплексное число вне заданной области значений. Никакая проверка диапазона не происходит против никакой комбинации действительных и мнимых частей, таких как |
Элементы сигнала в шине | Если вы собираете шину при помощи блока Bus Creator, можно задать информацию об области значений о восходящих блоках, которые подают Создателя Шины. Независимо от метода вы используете, чтобы собрать шину, можно создать объект |
Сигнал в блоке MATLAB function | Используйте Порты и Менеджер данных, чтобы задать свойства Minimum и Maximum данных. Смотрите Setting General Properties. |
Сигнал в диаграмме Stateflow | Установите свойства Minimum и Maximum соответствующих данных Stateflow. Смотрите Limit Range Properties (Stateflow). |
Сигнализируйте, что вы сопоставляете с объектом сигнала (таким как | Установите свойства |
Хранилище данных (Блок памяти хранилища данных или объект | Для Блока памяти Хранилища данных, установленного параметры блока Minimum и Maximum. Для объекта сигнала, набор свойства |
Simulink обеспечивает диагностику под названием проверка диапазона Моделирования, которую можно включить, чтобы обнаружить, когда сигналы превышают свои заданные области значений во время моделирования. Когда включено, Simulink сравнивает значения сигналов что блок выходные параметры с обоими заданная область значений (см., Задают Области значений для Сигналов), и блочный тип данных. Таким образом, Simulink выполняет следующую проверку:
DataTypeMin ≤ MinValue ≤ VALUE ≤ MaxValue ≤ DataTypeMax
где
DataTypeMin
является минимальным значением, представимым блочным типом данных.
MinValue
является минимальным значением, которое блок должен вывести, заданный, e. g., Выходной минимум.
VALUE
является значением сигналов что блок выходные параметры.
MaxValue
является максимальным значением, которое блок должен вывести, заданный, e. g., Выходной максимум.
DataTypeMax
является максимальным значением, представимым блочным типом данных.
Возможно чрезмерно определить, как блок обрабатывает сигналы, которые превышают конкретные области значений. Например, можно задать значения (кроме значений по умолчанию) и для параметров диапазона сигнала и включить Насыщение на параметре целочисленного переполнения. В этом случае Simulink отображает предупреждающее сообщение, которое советует вам отключать Насыщение на параметре целочисленного переполнения.
Включить диагностику проверки диапазона Моделирования:
В вашем образцовом окне выберите Simulation> Model Configuration Parameters.
Simulink отображает диалоговое окно Configuration Parameters.
В Избранном дереве на левой стороне диалогового окна Configuration Parameters нажмите Diagnostics> категория Data Validity. На правой стороне под Сигналами, набор диагностика проверки диапазона Моделирования к error
или warning
.
Нажмите ОК, чтобы применить ваши изменения и закрыть диалоговое окно Configuration Parameters.
Смотрите проверку диапазона Моделирования для получения дополнительной информации.
Проверять на ошибки диапазона сигнала или предупреждения:
Включите диагностику проверки диапазона Моделирования для своей модели (см., Включают Проверку диапазона Моделирования).
В вашем образцовом окне выберите Simulation> Run, чтобы моделировать модель.
Simulink моделирует вашу модель и выполняет проверку диапазона сигнала. Если сигнал превышает свою заданную область значений, когда диагностика проверки диапазона Моделирования задает error
, Simulink останавливает моделирование и генерирует ошибку (например, в Диагностическом Средстве просмотра).
В противном случае, если сигнал превышает свою заданную область значений, когда диагностика проверки диапазона Моделирования задает warning
, Simulink генерирует предупреждающее сообщение в Командном окне MATLAB®. Каждое сообщение идентифицирует блок, выходной сигнал которого превышает свою заданную область значений и временной шаг, на котором происходит это нарушение.
Некоторые виртуальные блоки (см. Невиртуальные и Виртуальные Блоки) позволяют вам задавать области значений для своих выходных сигналов, например, блоков Inport и Outport. Когда диагностика проверки диапазона Моделирования включена для модели, которая содержит такие блоки, диапазон сигнала виртуального блока распространяет назад к первой инстанции невиртуального блока, выходной сигнал которого это получает. Если невиртуальный блок задает различные значения для своей собственной области значений, Simulink выполняет диапазон сигнала, сверяющийся с самой трудной возможной областью значений. Таким образом, Simulink Check сигнал с помощью большего минимального значения и меньшего максимального значения.
Например, рассмотрите следующую модель:
В этой модели блок Constant задает свой Выходной параметр максимума как 300, и тот из блока Inport установлен в 100. Предположим, что вы включаете диагностику проверки диапазона Моделирования и моделируете модель. Блок Inport назад распространяет свое максимальное значение к невиртуальному блоку, который предшествует ему, i. e., блок Constant. Simulink затем использует меньшие из этих двух максимальных значений, чтобы проверить сигнал что блок Constant выходные параметры. Поскольку блок Constant выводит сигнал, значение которого (200) превышает самую трудную область значений, Simulink генерирует ошибку.
double
Когда элемент данных (сигнал или параметр) использует тип данных кроме double
, прежде чем сравнение, Симулинк бросит элемент данных и каждый предел дизайна (минимальное или максимальное значение, которое вы задаете) к недвойному типу данных. Этот метод помогает предотвратить генерацию ненужных, вводящих в заблуждение ошибок и предупреждения.
Однако Simulink хранит пределы дизайна как double
перед сравнением. Если тип данных элемента данных имеет более высокую точность, чем double
(например, тип данных фиксированной точки с 128-битным размером слова и 126-битной дробной длиной) или большая область значений, чем double
, и double
не может точно представлять значение предела дизайна, Simulink может сгенерировать неожиданные предупреждения и ошибки.
Если недвойной тип имеет более высокую точность, рассмотрите округление предела дизайна следующему номеру дальше всего от нуля, который может представлять double
. Например, предположите, что сигнал генерирует ошибку после того, как вы устанавливаете максимальное значение к 98.8847692348509014
. В командной строке вычислите следующий номер дальше всего от нуля, который может представлять double
.
format long
98.8847692348509014 + eps(98.8847692348509014)
ans = 98.884769234850921
Используйте получившийся номер, 98.884769234850921
, чтобы заменить максимальное значение.
Если вы Встроили Coder®, Simulink Coder™ может оптимизировать код, который вы генерируете от модели путем принятия во внимание минимальных и максимальных значений, которые вы задаете для сигналов и параметров. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов моделирования, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Simulink Coder).