Discrete-Time Integrator
Выполните интегрирование или накопление сигнала в дискретном времени
Описание
Используйте блок Discrete-Time Integrator вместо блока Integrator, чтобы создать чисто дискретную модель. С блоком Discrete-Time Integrator вы можете:
Задайте начальные условия на диалоговом окне блока или, как введено с блоком
Задайте входное усиление (K) значение
Выведите состояние блока
Задайте верхний и нижние пределы на интеграле
Сбросьте состояние с дополнительным входом сброса
Выведите уравнения
С первым временным шагом, состояние блока n = 0
, с любым начальным выходом y(0) = IC
или начальное состояние x(0) = IC
, В зависимости от значения параметров Initial condition setting.
Для данного шага n > 0
со временем симуляции t(n)
, Simulink® обновляет выход y(n)
можно следующим образом:
Прямой Метод Эйлера:
y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n-1)
Обратный Метод Эйлера:
y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n)
Трапециевидный метод:
y(n) = y(n-1) + K*[t(n)-t(n-1)]*[u(n)+u(n-1)]/2
Simulink автоматически выбирает реализацию пространства состояний этих выходных уравнений в зависимости от шага расчета блока, который может быть явным или инициирован. При использовании явного шага расчета, t(n)-t(n-1)
уменьшает до шага расчета T
для всего n > 0
.
Интегрирование и методы накопления
Этот блок может интегрировать или накопить сигнал с помощью прямого Эйлера, обратного Эйлера, или трапециевидного метода. Примите тот u
вход, y
выход и x
состояние. Для данного шага n
, Simulink обновляет y(n)
и x(n+1)
. В режиме интеграции, T
шаг расчета блока (дельта T
в случае инициированного шага расчета). В режиме накопления, T = 1
. Шаг расчета блока определяет, когда выход вычисляется, но не выходное значение. K
значение усиления. Значения отсекают согласно верхнему или нижним пределам.
Передайте метод ЭйлераПередайте Метод Эйлера (значение по умолчанию), также известное как прямое прямоугольное, или левое приближение
Программное обеспечение аппроксимирует 1/s
как T/(z-1)
. Выражения для выхода блока на шаге n
:
x(n+1) = x(n) + K*T*u(n)
y(n) = x(n)
Блок использует эти шаги, чтобы вычислить выход:
Step 0: y(0) = IC (clip if necessary)
x(1) = y(0) + K*T*u(0)
Step 1: y(1) = x(1)
x(2) = x(1) + K*T*u(1)
Step n: y(n) = x(n)
x(n+1) = x(n) + K*T*u(n) (clip if necessary)
Используя этот метод, входной порт 1 не имеет прямого сквозного соединения.
Обратный метод ЭйлераОбратный Метод Эйлера, также известный как обратное прямоугольное или правое приближение
Программное обеспечение аппроксимирует 1/s
как T*z/(z-1)
. Получившееся выражение для выхода блока на шаге n
y(n) = y(n-1) + K*T*u(n).
Позвольте x(n) = y((n)-1)
. Блок использует эти шаги, чтобы вычислить выход.
Если параметр Initial condition setting устанавливается на Output
или Auto
для инициированного и подсистем вызова функций:
Step 0: y(0) = IC (clipped if necessary)
x(1) = y(0)
Если параметр Initial condition setting устанавливается на Auto
для нетриггируемых подсистем:
Step 0: x(0) = IC (clipped if necessary)
x(1) = y(0) = x(0) + K*T*u(0)
Step 1: y(1) = x(1) + K*T*u(1)
x(2) = y(1)
Step n: y(n) = x(n) + K*T*u(n)
x(n+1) = y(n)
Используя этот метод, входной порт 1 имеет прямое сквозное соединение.
Трапециевидный методДля этого метода программное обеспечение аппроксимирует 1/s
как T/2*(z+1)/(z-1)
.
Когда T
фиксируется (равный периоду выборки), выражения, чтобы вычислить выход:
x(n) = y(n-1) + K*T/2*u(n-1)
y(n) = x(n) + K*T/2*u(n)
Если параметр Initial condition setting устанавливается на Output
или Auto
для инициированного и подсистем вызова функций:
Step 0: y(0) = IC (clipped if necessary)
x(1) = y(0) + K*T/2*u(0)
Если параметр Initial condition setting устанавливается на Auto
для нетриггируемых подсистем:
Step 0: x(0) = IC (clipped if necessary)
y(0) = x(0) + K*T/2*u(0)
x(1) = y(0) + K*T/2*u(0)
Step 1: y(1) = x(1) + K*T/2*u(1)
x(2) = y(1) + K*T/2*u(1)
Step n: y(n) = x(n) + K*T/2*u(n)
x(n+1) = y(n) + K*T/2*u(n)
Здесь, x(n+1)
наилучшая оценка следующего выхода. Это различное как состояние в том x(n)
не равно y(n)
.
Используя этот метод, входной порт 1 имеет прямое сквозное соединение.
Когда T является ПеременнаяWhenT
переменная (например, полученный со времен инициирования), блок использует эти шаги, чтобы вычислить выход.
Если параметр Initial condition setting устанавливается на Output
или Auto
для инициированного и подсистем вызова функций:
Step 0: y(0) = IC (clipped if necessary)
x(1) = y(0)
Если параметр Initial condition setting устанавливается на Auto
для нетриггируемых подсистем:
Step 0: x(0) = IC (clipped if necessary)
x(1) = y(0) = x(0) + K*T/2*u(0)
Step 1: y(1) = x(1) + T/2*(u(1) + u(0))
x(2) = y(1)
Step n: y(n) = x(n) + T/2*(u(n) + u(n-1))
x(n+1) = y(n)
Задайте начальные условия
Можно задать начальные условия в качестве параметра на диалоговом окне блока или ввести их от внешнего сигнала:
Чтобы задать начальные условия как параметры блоков, установите параметр Initial condition source на internal
и введите значение в текстовое поле Initial condition.
Чтобы обеспечить начальные условия из внешнего источника, установите параметр Initial condition source на external
. Дополнительный входной порт появляется на блоке.
Когда использовать порт состояния
Используйте порт состояния вместо выходного порта:
Когда выход блока возвращен в блок через порт сброса или начальный порт условия, вызвав алгебраический цикл. Для примера смотрите sldemo_bounce_two_integrators
модель.
Когда это необходимо, чтобы передать состояние от одной условно выполняемой подсистемы до другого, который может вызвать проблемы синхронизации. Для примера смотрите sldemo_clutch
модель.
Можно работать вокруг этих проблем путем передачи состояния через порт состояния, а не выходной порт. Simulink генерирует состояние в немного отличающееся время от выхода, который защищает вашу модель от этих проблем. Чтобы вывести состояние блока, установите флажок Show state port. Порт состояния появляется на верхней части блока.
Ограничьте интеграл
Чтобы сохранить выход в определенных уровнях, установите флажок Limit output и введите пределы в соответствующее текстовое поле. Выполнение так заставляет блок функционировать как ограниченный интегратор. Когда выход достигает пределов, интегральное действие выключает, чтобы предотвратить интегральное завершение. Во время симуляции можно изменить пределы, но вы не можете измениться, ограничивается ли выход. Таблица показывает, как блок определяет выход.
Интеграл | Вывод |
---|
Меньше чем или равный Lower saturation limit и входу отрицательно | Сохраненный в Lower saturation limit
|
Между Lower saturation limit и Upper saturation limit
| Интеграл |
Больше, чем или равный Upper saturation limit и входу положительно | Сохраненный в Upper saturation limit
|
Чтобы сгенерировать сигнал, который указывает, когда состояние ограничивается, установите флажок Show saturation port. Новый порт насыщения появляется ниже выходного порта блока.
Сигнал насыщения имеет одно из трех значений:
1 указывает, что верхний предел применяется.
0 указывает, что интеграл не ограничивается.
- 1 указывает, что нижний предел применяется.
Сбросьте состояние
Блок сбрасывает свое состояние к заданному начальному условию, на основе внешнего сигнала. Чтобы заставить блок сбрасывать свое состояние, выберите одну из опций параметра External reset. Порт сброса появляется, который указывает на триггерный тип сброса.
Порт сброса имеет прямое сквозное соединение. Если блок выход возвращается в этот порт, или непосредственно или через серию блоков с прямым сквозным соединением, алгебраический цикл заканчивается. Чтобы разрешить этот цикл, питайте выход порта состояния блока в порт сброса вместо этого. Чтобы получить доступ к состоянию блока, установите флажок Show state port.
Сбросьте триггерные типы
Параметр External reset позволяет вам решить, что атрибут сброса сигнализирует, что инициировал сброс. Триггерные опции включают:
rising
– Сбрасывает состояние, когда сигнал сброса имеет возрастающее ребро. Например, этот рисунок показывает эффект, что триггер сброса повышения имеет на обратном Эйлеровом интегрировании.
falling
— Сбрасывает состояние, когда сигнал сброса имеет падающее ребро. Например, этот рисунок показывает эффект, что триггер сброса падения имеет на обратном Эйлеровом интегрировании.
either
— Сбрасывает состояние, когда сброс сигнализирует о повышениях или падениях. Например, следующий рисунок показывает эффект, что любой триггер сброса имеет на обратном Эйлеровом интегрировании.
level
— Сброс и содержит выход к начальному условию, в то время как сигнал сброса является ненулевым. Например, этот рисунок показывает эффект, что триггер сброса уровня имеет на обратном Эйлеровом интегрировании.
sampled level
— Сбрасывает выход к начальному условию, когда сигнал сброса является ненулевым. Например, этот рисунок показывает эффект, что произведенный триггер сброса уровня имеет на обратном Эйлеровом интегрировании.
sampled level
опция сброса требует меньшего количества расчетов, делая его более эффективным, чем level
сбросьте опцию.
Примечание
Для блока Discrete-Time Integrator все триггерные обнаружения основаны на сигналах с положительными значениями. Например, сигнал, изменяющийся от-1 до 0, не рассматривается возрастающим ребром, но сигнал, изменяющийся от 0 до 1.
Поведение в упрощенном режиме инициализации
Упрощенный режим инициализации включен, когда вы устанавливаете Underspecified initialization detection на Simplified
в диалоговом окне Configuration Parameters. Если вы используете упрощенный режим инициализации, поведение блока Discrete-Time Integrator отличается от классического режима инициализации. Новое поведение инициализации более устойчиво и обеспечивает более сопоставимое поведение в этих случаях:
Упрощенный режим инициализации включает более легкое преобразование от блоков Continuous-Time Integrator до блоков Discrete-Time Integrator, потому что начальные условия имеют то же значение для обоих блоков.
Для получения дополнительной информации о классических и упрощенных режимах инициализации смотрите обнаружение инициализации Underspecified.
Включите и Отключите Поведение с Начальным набором Установки Условия, чтобы ВывестиКогда вы используете упрощенный режим инициализации с набором Initial condition setting к Output
для инициированного и подсистем вызова функций, разрешения и отключают поведение блока, упрощен можно следующим образом.
В отключают время td
:
Во включают времени te
:
Если родительскому порту управления подсистемы установили States when enabling на reset
:
Если родительскому порту управления подсистемы установили States when enabling на held
:
Следующий рисунок показывает это условие.
Подсистемы итератораПри использовании упрощенного режима инициализации вы не можете поместить блок Discrete-Time Integrator в блок подсистемы итератора.
В упрощенном режиме инициализации подсистемы Итератора не обеспечивают прошедшее время. Таким образом, если a Discrete-Time Integrator блокируются, которому требуется прошедшее время, помещается в блоке подсистемы итератора, Simulink сообщает об ошибке.
Поведение в Enabled подсистеме в подсистеме вызова функций
Предположим, что у вас есть подсистема вызова функций, которая включает активированную подсистему, которая содержит блок Discrete-Time Integrator. Следующее поведение применяется.
Метод интегратора | Тип шага расчета триггерного порта вызова функции | Значение delta T Когда подсистема вызова функций выполняется впервые после Enabled | Причина поведения |
---|
Передайте Эйлеру | Инициированный | t — tstart
| Когда подсистема вызова функций выполняется впервые, алгоритм интегратора использует tstart как предыдущее время симуляции. |
Обратный Эйлер и трапециевидный | Инициированный | t — tprevious
| Когда подсистема вызова функций выполняется впервые, алгоритм интегратора использует tprevious как предыдущее время симуляции. |
Передайте Эйлеру, обратному Эйлеру, и трапециевидный | Периодический | Шаг расчета генератора вызова функции | В периодическом режиме блок Discrete-Time Integrator использует шаг расчета генератора вызова функции для delta T . |
Порты
Входной параметр
развернуть все
Port_1
— Входной сигнал
скаляр | вектор | матрица
Входной сигнал в виде скаляра, вектора или матрицы
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
IC
— Начальные условия состояний
скаляр | вектор | матрица
Начальные условия состояний в виде конечного скаляра, вектора или матрицы.
Зависимости
Чтобы включить этот порт, установите Initial condition source на external
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Вывод
развернуть все
Port_1
— Интегрирование дискретного времени или накопление входа
скаляр | вектор | матрица
Интегрирование дискретного времени или накопление входного сигнала в виде скаляра, вектора или матрицы.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Port_2
— Saturation выход
скаляр | вектор | матрица
Сигнал, указывающий, когда состояние ограничивается в виде скаляра, вектора или матрицы. Сигнал имеет одно из трех значений:
1
указывает, что верхний предел применяется.
0
указывает, что интеграл не ограничивается.
-1
указывает, что нижний предел применяется.
Зависимости
Чтобы включить этот порт, установите флажок Show saturation port.
Типы данных: single
| double
| int8
Port_3
— Выход состояния
скаляр | вектор | матрица
Состояния блока, выход как скаляр, вектор или матрица. По умолчанию блок добавляет этот порт в верхнюю часть значка блока. Используйте порт состояния когда:
Выход блока возвращен в блок через порт сброса или начальный порт условия, вызвав алгебраический цикл. Для примера смотрите sldemo_bounce_two_integrators
модель.
Вы хотите передать состояние от одной условно выполняемой подсистемы до другого, который может вызвать проблемы синхронизации. Для примера смотрите sldemo_clutch
модель.
Для получения дополнительной информации смотрите, Когда Использовать Порт состояния.
Зависимости
Чтобы включить этот порт, установите флажок Show state port.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Параметры
развернуть все
Основной
Integrator method
— Метод накопления
Integration: Forward Euler
(значение по умолчанию) | Integration: Backward Euler
| Integration: Trapezoidal
| Accumulation: Forward Euler
| Accumulation: Backward Euler
| Accumulation: Trapezoidal
Задайте метод интегрирования или накопления. Смотрите Выходные уравнения и Методы Интегрирования и Накопления для получения дополнительной информации.
Программируемое использование
Параметры блоков:
IntegratorMethod
|
Ввод: символьный вектор |
Значения:
'Integration: Forward Euler' | 'Integration: Backward Euler' | 'Integration: Trapezoidal' | 'Accumulation: Forward Euler' | 'Accumulation: Backward Euler' | 'Accumulation: Trapezoidal'
|
Значение по умолчанию:
'Integration: Forward Euler'
|
Gain value
— Значение, чтобы умножиться с входом интегратора
1.0
(значение по умолчанию) | скаляр | вектор
Задайте скаляр, вектор или матрицу, на которую можно умножить вход интегратора. Каждым элементом усиления должно быть положительное вещественное число.
Определение значения кроме 1,0 (значение по умолчанию) семантически эквивалентно соединению блока Gain к входу интегратора.
Действительные доступы включают:
double(1.0)
single(1.0)
[1.1 2.2 3.3 4.4]
[1.1 2.2; 3.3 4.4]
Совет
Используя этот параметр, чтобы задать входное усиление устраняет операцию умножения в сгенерированном коде. Однако этот параметр должен быть ненастраиваемым, чтобы понять это преимущество. Если вы хотите настроить входное усиление, установите этот параметр на 1,0 и используйте внешний блок Gain, чтобы задать входное усиление.
Программируемое использование
Параметры блоков:
gainval
|
Ввод: символьный вектор |
Значения: скаляр | вектор |
Значение по умолчанию:
'1.0'
|
External reset
— Выберите, когда сбросить состояния к начальным условиям
none
(значение по умолчанию) | rising
| falling
| either
| level
| sampled level
Выберите тип триггерного события, которое сбрасывает состояния к их начальным условиям:
none
— Не сбрасывайте состояние к начальным условиям.
rising
— Сбросьте состояние, когда сигнал сброса будет иметь возрастающее ребро.
falling
— Сбросьте состояние, когда сигнал сброса будет иметь падающее ребро.
either
— Сбросьте состояние, когда сброс будет сигнализировать о повышениях или падениях.
level
— Сбросьте и содержите выход к начальному условию, в то время как сигнал сброса является ненулевым.
sampled level
— Сбросьте выход к начальному условию, когда сигнал сброса будет ненулевым.
Для получения дополнительной информации смотрите Сброс состояние и Триггерные Типы Сброса.
Программируемое использование
Параметры блоков:
ExternalReset
|
Ввод: символьный вектор |
Значения:
'none' | 'rising' | 'falling' | 'either' | 'level' | 'sampled level'
|
Значение по умолчанию:
'none'
|
Initial condition source
— Выберите источник начального условия
internal
(значение по умолчанию) | external
Выберите источник начального условия:
Зависимости
Выбор internal
включает параметр Initial condition.
Выбор external
отключает параметр Initial condition и включает входной порт IC.
Программируемое использование
Параметры блоков: InitialConditionSource |
Ввод: вектор символов, строка |
Значения:
'internal' | 'external' |
Значение по умолчанию:
'internal' |
Initial condition
— Начальное условие состояний
0
(значение по умолчанию) | скаляр | вектор | матрица
Задайте начальное условие состояний блока. Минимальные и максимальные значения связаны параметрами блоков Output maximum и Output minimum.
Совет
Программное обеспечение Simulink не позволяет начальному условию этого блока быть inf
или NaN
.
Зависимости
Чтобы включить этот параметр, установите Initial condition source на internal
.
Программируемое использование
Параметры блоков: InitialCondition |
Ввод: вектор символов, строка |
Значения: скаляр | вектор | матрица |
Значение по умолчанию: '0' |
Initial condition setting
— Выберите, где применить начальное условие
Auto
(значение по умолчанию) | Output
| Compatibility
Выберите, применить ли значение параметра Initial condition к состоянию блока или блоку выход. Начальным условием является также значение сброса.
Auto
— Блок выбирает, где применить параметр Initial condition.
Если блок находится в нетриггируемой подсистеме, и Integrator method установлен в метод интегрирования, установите начальные условия:
x(0) = IC
В сбросе:
x(n) = IC
Если блок находится в инициированном или подсистеме вызова функций, и Integrator method установлен в метод интегрирования, установите начальные условия как будто output
был выбран.
Output
— Используйте эту опцию, когда блок находится в инициированном или подсистеме вызова функций, и Integrator method установлен в метод интегрирования.
Установленные начальные условия:
y(0) = IC
В сбросе:
y(n) = IC
Compatibility
— Эта опция присутствует, чтобы обеспечить обратную совместимость. Вы не можете выбрать эту опцию для блоков Discrete-Time Integrator в моделях Simulink, но можно выбрать ее для блоков Discrete-Time Integrator в библиотеке. Используйте эту опцию, чтобы обеспечить совместимость с моделями Simulink, созданными перед R2014a.
До R2014a, опция Auto
был известен как State only (most efficient)
. Опция Output
был известен как State and output
. Поведение блока с опцией Compatibility
следующие.
Если Underspecified initialization detection установлен в Classic
, параметр Initial condition setting ведет себя как Auto
.
Если Underspecified initialization detection установлен в Simplified
, параметр Initial condition setting ведет себя как Output
.
Примечание
Этот параметр назвали Use initial condition as initial and reset value for в Simulink перед R2014a.
Программируемое использование
Параметры блоков:
InitialConditionSetting
|
Ввод: символьный вектор |
Значение:
'Auto' | 'Output' | 'Compatibility'
|
Значение по умолчанию:
'Auto'
|
Sample time (-1 for inherited)
— Интервал между выборками
-1
(значение по умолчанию) | скаляр | вектор
Введите интервал дискретного времени между шагами.
По умолчанию блок использует дискретный шаг расчета 1
. Чтобы установить различный шаг расчета, введите другое дискретное значение, такой как 0,1.
См. Настройку времени выборки для получения дополнительной информации.
Советы
Не задавайте шаг расчета 0. Это значение задает время непрерывной выборки, которое не поддерживает блок Discrete-Time Integrator.
Не задавайте шаг расчета inf
или NaN
потому что эти значения не дискретны.
Если вы задаете-1, чтобы наследовать шаг расчета от восходящего блока, проверить, что восходящий блок использует дискретный шаг расчета. Например, блок Discrete-Time Integrator не может наследовать шаг расчета 0.
Программируемое использование
Параметры блоков:
SampleTime
|
Ввод: символьный вектор |
Значения: скаляр | вектор |
Значение по умолчанию:
'-1'
|
Limit output
— Ограничьте выходные значения блока заданной областью
off
(значение по умолчанию) | on
Ограничьте выход блока значением между Более низким пределом насыщения и Верхними предельными параметрами насыщения.
Зависимости
Выбор этого параметра включает параметры Upper saturation limit и Lower saturation limit.
Программируемое использование
Параметры блоков: LimitOutput |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Upper saturation limit
— Верхний предел для интеграла
inf
(значение по умолчанию) | скаляр | вектор | матрица
Задайте верхний предел для интеграла как скаляр, вектор или матрица. Необходимо задать значение между значениями параметров Output maximum и Output minimum.
Зависимости
Чтобы включить этот параметр, установите флажок Limit output.
Программируемое использование
Параметры блоков: UpperSaturationLimit |
Ввод: вектор символов, строка |
Значения: скаляр | вектор | матрица |
Значение по умолчанию: 'inf' |
Lower saturation limit
— Нижний предел для интеграла
-inf
(значение по умолчанию) | скаляр | вектор | матрица
Задайте нижний предел для интеграла как скаляр, вектор или матрица. Необходимо задать значение между значениями параметров Output maximum и Output minimum.
Зависимости
Чтобы включить этот параметр, установите флажок Limit output.
Программируемое использование
Параметры блоков: LowerSaturationLimit |
Ввод: вектор символов, строка |
Значения: скаляр | вектор | матрица |
Значение по умолчанию: '-inf' |
Show saturation port
— Включите выходной порт насыщения
off
(значение по умолчанию) | on
Установите этот флажок, чтобы добавить выходной порт насыщения в блок. Когда вы снимаете этот флажок, блок не имеет выходного порта насыщения.
Зависимости
Выбор этого параметра включает выходной порт насыщения.
Программируемое использование
Параметры блоков: ShowSaturationPort |
Ввод: вектор символов, строка |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Show state port
— Включите выходной порт состояния
off
(значение по умолчанию) | on
Установите этот флажок, чтобы добавить выходной порт состояния в блок. Когда вы снимаете этот флажок, блок не имеет выходного порта состояния.
Зависимости
Выбор этого параметра включает выходной порт состояния.
Программируемое использование
Параметры блоков: ShowStatePort |
Ввод: вектор символов, строка |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Ignore limit and reset when linearizing
— Обработайте блок как не восстановленный
off
(значение по умолчанию) | on
Установите этот флажок, чтобы иметь команды линеаризации Simulink, обрабатывают этот блок как не восстановленный и как имеющий пределы на его выходе, независимо от настроек сброса блока и выводят опции ограничения.
Совет
Игнорирование предела и сброса позволяет вам линеаризовать модель вокруг рабочей точки. Эта точка может заставить интегратор сбрасывать или насыщать.
Программируемое использование
Параметры блоков: IgnoreLimit |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Атрибуты сигнала
Output minimum
— Минимальное выходное значение для проверки диапазона
[]
(значение по умолчанию) | скаляр
Нижнее значение выходной области значений это Simulink Check.
Simulink использует минимум, чтобы выполнить:
Примечание
Output minimum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Программируемое использование
Параметры блоков: OutMin |
Ввод: символьный вектор |
Значения: '[ ]' | скаляр |
Значение по умолчанию: '[ ]' |
Output maximum
— Максимальное выходное значение для проверки диапазона
[]
(значение по умолчанию) | скаляр
Верхнее значение выходной области значений это Simulink Check.
Simulink использует максимальное значение, чтобы выполнить:
Примечание
Output maximum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Программируемое использование
Параметры блоков: OutMax |
Ввод: символьный вектор |
Значения: '[ ]' | скаляр |
Значение по умолчанию: '[ ]' |
Data type
— Тип выходных данных
Inherit: Inherit via internal rule
(значение по умолчанию) | Inherit: Inherit via back propagation
| double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Выберите тип данных для выхода. Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType
. Для получения дополнительной информации смотрите Типы данных Управляющего сигнала.
Когда вы выбираете наследованную опцию, блок ведет себя можно следующим образом:
Inherit: Inherit via internal rule
— Simulink выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, при принятии во внимание свойств оборудования целевого процессора. Если вы изменяете настройки целевого процессора, тип данных, выбранный внутренним правилом, может измениться. Например, если блок умножает вход типа int8
усилением int16
и ASIC/FPGA
задан как целенаправленный тип оборудования, типом выходных данных является sfix24
. Если Unspecified (assume 32-bit Generic)
, т.е. типовой 32-битный микропроцессор, задан как целевой компьютер, типом выходных данных является int32
. Если ни один из размеров слова, обеспеченных целевым микропроцессором, не может вместить выходную область значений, программное обеспечение Simulink отображает ошибку в Диагностическом Средстве просмотра.
Для программного обеспечения не всегда возможно оптимизировать КПД кода и числовую точность одновременно. Если внутреннее правило не удовлетворяет ваши определенные потребности для числовой точности или эффективности, используйте одну из следующих опций:
Задайте тип выходных данных явным образом.
Используйте простой выбор Inherit: Same as input
.
Явным образом задайте тип данных по умолчанию, такой как fixdt(1,32,16)
и затем используйте Fixed-Point Tool, чтобы предложить типы данных для вашей модели. Для получения дополнительной информации смотрите fxptdlg
(Fixed-Point Designer).
Чтобы задать ваше собственное правило наследования, используйте Inherit: Inherit via back propagation
и затем используйте блок Data Type Propagation. Примеры того, как использовать этот блок, доступны в библиотеке Signal Attributes блок Data Type Propagation Examples.
Inherit: Inherit via back propagation
— Используйте тип данных ведущего блока.
Программируемое использование
Параметры блоков: OutDataTypeStr |
Ввод: символьный вектор |
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
Значение по умолчанию: 'Inherit: Inherit via internal rule' |
Lock output data type setting against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили тип Выходных данных
off
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип данных Output, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).
Программируемое использование
Параметры блоков:
LockScale |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Integer rounding mode
— Задайте округляющийся режим для операций фиксированной точки
Floor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Выберите один из этих режимов округления.
Ceiling
Раунды и положительные и отрицательные числа к положительной бесконечности. Эквивалентный MATLAB®
ceil
функция.
Convergent
Номер раундов к самому близкому представимому значению. Если связь происходит, раунды к самому близкому даже целое число. Эквивалентный Fixed-Point Designer™ convergent
функция.
Floor
Раунды и положительные и отрицательные числа к отрицательной бесконечности. Эквивалентный MATLAB floor
функция.
Nearest
Номер раундов к самому близкому представимому значению. Если связь происходит, раунды к положительной бесконечности. Эквивалентный Fixed-Point Designer nearest
функция.
Round
Номер раундов к самому близкому представимому значению. Если связь происходит, округляет положительные числа к положительной бесконечности и округляет отрицательные числа к отрицательной бесконечности. Эквивалентный Fixed-Point Designer round
функция.
Simplest
Автоматически выбирает между раундом к полу и вокруг к нулю, чтобы сгенерировать округление кода, который максимально эффективен.
Zero
Номер раундов к нулю. Эквивалентный MATLAB fix
функция.
Программируемое использование
Параметры блоков: RndMeth |
Ввод: символьный вектор |
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
Значение по умолчанию: 'Floor' |
Смотрите также
Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).
Saturate on integer overflow
— Метод действия переполнения
off
(значение по умолчанию) | on
Задайте, насыщает ли переполнение или переносится.
off
— Переполнение переносится к соответствующему значению, которое может представлять тип данных.
Например, номер 130 не помещается в 8-битное целое число со знаком и переносится к-126.
on
— Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных.
Например, переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщать к-128 или 127.
Совет
Рассмотрите установку этого флажка, когда ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде.
Полагайте, что снятие этого флажка, когда это необходимо, оптимизирует КПД вашего сгенерированного кода.
Снятие этого флажка также помогает вам постараться не чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Ошибки Диапазона сигнала Поиска и устранения неисправностей.
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выходу или результату.
В общем случае процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.
Программируемое использование
Параметры блоков: SaturateOnIntegerOverflow |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Атрибуты состояния
State name
— Уникальное имя для состояния блока
''
(значение по умолчанию) | алфавитно-цифровая строка
Используйте этот параметр, чтобы присвоить уникальное имя состоянию блока. Значением по умолчанию является ' '
. Когда это поле является пробелом, никакое имя не присвоено. При использовании этого параметра помните эти факторы:
Допустимый идентификатор запускается с буквенного символа или символа подчеркивания, сопровождаемого алфавитно-цифровыми символами или символами подчеркивания.
Имя состояния применяется только к выбранному блоку.
Для получения дополнительной информации смотрите Настройку генерации кода C для Элементов Интерфейса модели (Simulink Coder).
Зависимости
Когда вы задаете значение для State name и нажимаете Apply, вы включаете параметр State name must resolve to Simulink signal object.
Программируемое использование
Параметр: StateName |
Ввод: символьный вектор |
Значения: уникальное имя |
Значение по умолчанию: '' |
State name must resolve to Simulink signal object
— Потребуйте, чтобы имена состояния разрешили сигнализировать об объекте
Off
(значение по умолчанию) | булевская переменная
Задайте при требовании, чтобы имя состояния решило к объектам Сигнала Simulink или нет. Если выбрано, программное обеспечение генерирует ошибку во время выполнения, если вы задаете имя состояния, которое не совпадает с именем объекта Сигнала Simulink.
Зависимость
Enabled, когда вы даете параметру State name значение и устанавливаете параметр конфигурации модели Signal resolution на значение кроме None
.
Установка этого флажка отключает Code generation storage class.
Программируемое использование
Параметры блоков: StateMustResolveToSignalObject |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Signal object class
— Пользовательское имя пакета класса памяти
Simulink.Signal
(значение по умолчанию)
Выберите пользовательский пакет класса памяти путем выбора класса объекта сигнала, который задает целевой пакет. Например, чтобы применить пользовательские классы памяти от встроенного пакета mpt
, выберите mpt.Signal
. Если вы не используете основанную на ERT цель генерации кода с Embedded Coder®, пользовательские классы памяти не влияют на сгенерированный код.
Чтобы использовать пакет класса памяти кроме пакета Simulink, необходимо загрузить пакет в Словарь Embedded Coder модели. Смотрите Пакеты Класса памяти Загрузки в Словарь Embedded Coder (Embedded Coder).
Для получения информации о конфигурировании данных модели при помощи классов памяти смотрите Настройку генерации кода C для Элементов Интерфейса модели (Embedded Coder). Для получения информации о пользовательских классах памяти смотрите, Организуют Данные в Структуры в Сгенерированном коде (Embedded Coder).
Программируемое использование
Параметры блоков:
StateSignalObject |
Ввод: символьный вектор |
Значения:
'Simulink.Signal' | '<StorageClass.PackageName>' |
Значение по умолчанию:
'Simulink.Signal' |
Code generation storage class
— Класс памяти для генерации кода
Auto
(значение по умолчанию) | Model default
| ExportedGlobal
| ImportedExtern
| ImportedExternPointer
| Bitfield (Custom)
| Volatile (Custom)
| ExportToFile (Custom)
| ImportFromFile (Custom)
| FileScope (Custom)
| Struct (Custom)
| GetSet (Custom)
| Reusable (Custom)
Выберите класс памяти состояния для генерации кода. Если вы не должны взаимодействовать через интерфейс к внешнему коду, выберите Auto
.
Для получения дополнительной информации смотрите Настройку генерации кода C для Элементов Интерфейса модели (Simulink Coder) и Организуйте Данные о Параметре в Структуру при помощи Класса памяти Struct (Embedded Coder).
Программируемое использование
Параметры блоков:
StateStorageClass |
Ввод: символьный вектор |
Значения:
'Auto' | 'Model default' | 'ExportedGlobal' '| 'ImportedExtern' | 'ImportedExternPointer' | 'Custom' |
Значение по умолчанию:
'Auto' |
TypeQualifier
— Спецификатор типа хранения
''
(значение по умолчанию) | const
| volatile
| ...
Задайте спецификатор типа хранения, такой как const
или volatile
.
Примечание
TypeQualifier будет удален в будущем релизе. Чтобы применить спецификаторы типа хранения к данным, используйте разделы custom storage classes и memory. Если вы не используете основанную на ERT цель генерации кода с Embedded Coder, разделы custom storage classes и memory не влияют на сгенерированный код.
Зависимости
Чтобы включить этот параметр, установите Code generation storage class на ExportedGlobal
, ImportedExtern
, ImportedExternPointer
, или Model default
. Этот параметр скрыт, если вы ранее не устанавливаете его значение.
Программируемое использование
Параметры блоков: RTWStateStorageTypeQualifier |
Ввод: символьный вектор |
Values:'' | 'const' | 'volatile' | ... |
Значение по умолчанию: '' |
Характеристики блока
Типы данных | double | fixed point | integer | single
|
Прямое сквозное соединение | yes
|
Многомерные сигналы | no
|
Сигналы переменного размера | no
|
Обнаружение пересечения нулем | no
|
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.
Зависит от абсолютного времени, когда используется в иерархии триггируемой подсистемы.
Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Архитектура HDLЭтот блок имеет одну, архитектуру HDL по умолчанию.
Свойства блока HDLОбщий |
---|
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. Значением по умолчанию является 0 . Для получения дополнительной информации смотрите ConstrainedOutputPipeline (HDL Coder).
|
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значением по умолчанию является 0 . Для получения дополнительной информации смотрите InputPipeline (HDL Coder).
|
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значением по умолчанию является 0 . Для получения дополнительной информации смотрите OutputPipeline (HDL Coder).
|
Нативная плавающая точка |
---|
HandleDenormals | Задайте, хотите ли вы, чтобы HDL Coder вставил дополнительную логику, чтобы обработать нестандартные числа в вашем проекте. Нестандартные числа являются числами, которые имеют величины меньше, чем самое маленькое число с плавающей запятой, которое может быть представлено без начальных нулей в мантиссе. Значением по умолчанию является inherit . См. также HandleDenormals (HDL Coder). |
LatencyStrategy | Задайте, сопоставить ли блоки в вашем проекте к inherit Max min , или Zero для оператора с плавающей точкой. Значением по умолчанию является inherit . См. также LatencyStrategy (HDL Coder). |
MantissaMultiplyStrategy | Задайте, как реализовать операцию умножения мантиссы во время генерации кода. При помощи различных настроек можно управлять использованием DSP на целевом устройстве FPGA. Значением по умолчанию является inherit . См. также MantissaMultiplyStrategy (HDL Coder). |
ОграниченияПорты состояния не поддерживаются для генерации HDL-кода. Очистите опцию Show state port.
Внешние начальные условия не поддерживаются для генерации HDL-кода. Установите Initial condition source на Internal
.
External Reset должен быть установлен в none
, rising
, или falling
.
Ширина сигналов ввода и вывода не должна превышать 32 бита.
Время непрерывной выборки не поддерживается. Используйте дискретный шаг расчета для блока.
Генерация кода PLC
Сгенерируйте код Структурированного текста с помощью Simulink® PLC Coder™.
Преобразование фиксированной точки
Спроектируйте и симулируйте системы фиксированной точки с помощью Fixed-Point Designer™.
Представлено до R2006a