Нулевой порядок содержит
![]()
Блок Zero-Order Hold содержит свой вход в течение демонстрационного периода, который вы задаете. Если вход является вектором, блок содержит все элементы вектора в течение того же демонстрационного периода.
Вы задаете время между выборками с параметром Sample time. Установка -1 означает, что блок наследовал Sample time.
Совет
Не используйте блок Zero-Order Hold, чтобы создать быстрый-к-медленному переход между блоками, действующими на уровне различных частот дискретизации. Вместо этого используйте блок Rate Transition .
Соедините шиной поддержку
Блок Zero-Order Hold является способным к шине блоком. Вход может быть виртуальным или невиртуальным сигналом шины. Никакие специфичные для блока ограничения не существуют. Все сигналы в невиртуальном входе шины к блоку Zero-Order Hold должны иметь тот же шаг расчета, даже если элементы связанного объекта шины задают наследованные шаги расчета. Можно использовать блок Rate Transition , чтобы изменить шаг расчета отдельного сигнала, или всех сигналов в шине. Смотрите Задают Шаги расчета Сигнала Шины и Способные к шине Блоки для получения дополнительной информации.
Можно использовать массив шин как входной сигнал к блоку Zero-Order Hold. Для получения дополнительной информации об определении и использовании массива шин, смотрите Шины Объединения в Массив Шин.
Сравнение с подобными блоками
Память , Единичная задержка и Нулевой Порядок Содержит блоки, обеспечивают схожую функциональность, но имеют различные возможности. Кроме того, цель каждого блока отличается.
Эта таблица показывает рекомендуемое использование для каждого блока.
- sldemo_enginewc (Подсистема сжатия)
- sldemo_bounce
- sldemo_clutch (Режим трения подсистема FSM Logic/Lockup)
- sldemo_radar_eml
- aero_dap3dof
Каждый блок имеет следующие возможности.
| Возможность | Memory | Единичная задержка | Нулевой порядок содержит |
|---|---|---|---|
| Спецификация начального условия | Да | Да | Нет, потому что блок вывод во время t = 0 должен совпадать с входным значением. |
| Спецификация шага расчета | Нет, потому что блок может только наследовать шаг расчета от ведущего блока или решателя, используемого для целой модели. | Да | Да |
| Поддержка основанных на кадре сигналов | Нет | Да | Да |
| Поддержка журналирования состояния | Нет | Да | Нет |
Zero-Order Hold
The Zero-Order Hold block holds its input for the sample period you specify. If the input is a vector, the block holds all elements of the vector for the same sample period.
You specify the time between samples with the Sample time parameter. A setting of -1 means the block inherits the Sample time.
Tip
Do not use the Zero-Order Hold block to create a fast-to-slow transition between blocks operating at different sample rates. Instead, use the Rate Transition block.
Bus Support
The Zero-Order Hold block is a bus-capable block. The input can be a virtual or nonvirtual bus signal. No block-specific restrictions exist. All signals in a nonvirtual bus input to a Zero-Order Hold block must have the same sample time, even if the elements of the associated bus object specify inherited sample times. You can use a Rate Transition block to change the sample time of an individual signal, or of all signals in a bus. See Modify Sample Times for Nonvirtual Buses and Bus-Capable Blocks for more information.
You can use an array of buses as an input signal to a Zero-Order Hold block. For details about defining and using an array of buses, see Group Nonvirtual Buses in Arrays of Buses.
Comparison with Similar Blocks
The Memory , Unit Delay , and Zero-Order Hold blocks provide similar functionality but have different capabilities. Also, the purpose of each block is different.
This table shows recommended usage for each block.
- Engine Timing Model with Closed Loop Control (Compression subsystem)
- Building a Clutch Lock-Up Model (Friction Mode Logic/Lockup FSM subsystem)
- Capture the Velocity of a Bouncing Ball with the Memory Block
- Developing the Apollo Lunar Module Digital Autopilot
- Radar Tracking Using MATLAB Function Block
Each block has the following capabilities.
| Capability | Memory | Unit Delay | Zero-Order Hold |
|---|---|---|---|
| Specification of initial condition | Yes | Yes | No, because the block output at time t = 0 must match the input value. |
| Specification of sample time | No, because the block can only inherit sample time from the driving block or the solver used for the entire model. | Yes | Yes |
| Support for frame-based signals | No | Yes | Yes |
| Support for state logging | No | Yes | No |
Examples
![]()
Radar Tracking Using MATLAB Function Block
Use an extended Kalman filter with the MATLAB® Function block in Simulink® to estimate an aircraft’s position from radar measurements. The filter implementation is found in the MATLAB Function block, the contents of which are stored in the Simulink model itself.

Developing the Apollo Lunar Module Digital Autopilot
«Working on the design of the Lunar Module digital autopilot was the highlight of my career as an engineer. When Neil Armstrong stepped off the LM (Lunar Module) onto the moon’s surface, every engineer who contributed to the Apollo program felt a sense of pride and accomplishment. We had succeeded in our goal. We had developed technology that never existed before, and through hard work and meticulous attention to detail, we had created a system that worked flawlessly.» -Richard J. Gran, The Apollo 11 Moon Landing: Spacecraft Design Then and Now.
First Order Hold
Блок First Order Hold выводит непрерывную кусочную линейную аппроксимацию своего входного сигнала. Используйте блок First Order Hold , чтобы преобразовать произведенный дискретный сигнал в непрерывный сигнал, не инициировав сброс решателя.
Можно также использовать блок First Order Hold , чтобы повредить алгебраические циклы в модели.
Порты
Входной параметр
Port 1 — Входной сигнал
скаляр | вектор | матрица
Входной сигнал в виде скаляра с действительным знаком, вектора или матрицы.
Типы данных: double
Вывод
Port 1 — Линейно аппроксимированный выходной сигнал
скаляр | вектор | матрица
Кусочная линейная аппроксимация входного сигнала.
Типы данных: double
Параметры
Initial output — Начальный выход
0 (значение по умолчанию) | скаляр | вектор
Задайте выход, который генерирует блок, пока время симуляции не превышает в первый демонстрационный раз хита дискретного входа.
Зависимости
- Начальным выходом этого блока не может быть inf или NaN .
- Run-to-run tunable parameter не может быть изменен в процессе моделирования время выполнения. Однако изменяя его, прежде чем симуляция начинается, не заставляет Акселератор или Быстрый Акселератор регенерировать код.
Программируемое использование
| Параметры блоков: InitialOutput |
| Ввод: вектор символов, строка |
| Значения: скаляр | вектор |
| Значение по умолчанию: ‘0’ |
Output algorithm — Метод приближенных вычислений для выходного сигнала
Slow (Avoid Overshoot) (значение по умолчанию) | Fast (Minimize Error)
Задайте метод приближенных вычислений, чтобы использовать, чтобы сглаживать входной сигнал. Медленные, или низко передают цели алгоритма избежать перерегулирований при сглаживании входного сигнала. Быстрые, или высоко передают алгоритм, минимизирует ошибку путем попытки предсказать следующий вход во время метода обновления блока. Это ошибочное сокращение предсказанного выхода блока обменяно против тенденции промахнуться по ссылке или входному сигналу.
Программируемое использование
| Параметры блоков: OutputAlgorithm |
| Ввод: вектор символов, строка |
| Значения: Slow (Avoid Overshoot) | Fast (Minimize Error) |
| Значение по умолчанию: ‘Slow (Avoid Overshoot)’ |
Reset if relative extrapolation error exceeds — Ошибочный допуск к решателю сбрасывается
inf (значение по умолчанию) | неотрицательный действительный скаляр
Задайте уровень терпимости для ошибки экстраполяции Выходного Алгоритма. Ошибка экстраполяции, больше, чем это значение, вызовет Simulink ® сбрасывать решатель для модели.
Совет
Включение параметра Allow continuous input, когда этот параметр устанавливается на inf может привести к числовым погрешностям в симуляции.
Программируемое использование
| Параметры блоков: ErrorTolerance |
| Ввод: вектор символов, строка |
| Значения: скаляр |
| Значение по умолчанию: ‘inf’ |
Allow continuous input — Применяйтесь держатся непрерывные сигналы
off (значение по умолчанию) | on
Выберите этот параметр, чтобы позволить блоку принять непрерывные сигналы как вход. Включение этого параметра создает задержку между вводом и выводом непрерывные сигналы.
Примечание
Позвольте этому параметру при использовании этого блока повредить алгебраический цикл.
Программируемое использование
| Параметры блоков: AllowContinuousInput |
| Ввод: вектор символов, строка |
| Значения: ‘off’ | ‘on’ |
| Значение по умолчанию: ‘off’ |
Характеристики блока
Типы данных
Прямое сквозное соединение
Многомерные сигналы
Сигналы переменного размера
Обнаружение пересечения нулем
Алгоритмы
Медленный (Избегают перерегулирования),
Линейная экстраполяция, выполняемая медленным или низким алгоритмом передачи, может быть описана как:
y ( t ) = M k ( t − T k ) + C k ∀ T k ≤ t < t k + 1
- Tk является временем в k th существенный шаг.
- Uk является входом в k th существенный шаг.
- Ck и Mk являются линейными коэффициентами экстраполяции.
- yk является непрерывный выход во время Tk .
Коэффициенты, или наклонный Mk и y — прерывают Ck , вычисляются можно следующим образом
H k = T k − T k − 1 M k + 1 = U k − U k − 1 H k C k = y k
Быстро (минимизируют ошибку),
Линейная экстраполяция, выполняемая быстрой, или высокой передачей, алгоритм может быть описан как:
y ( t ) = N k ( t − T k ) + C k ∀ T k ≤ t < T k + 1
- Tk является временем в k th существенный шаг.
- Uk является входом в k th существенный шаг.
- U ^ ожидаемое значение входа в (k +1) th существенный шаг.
- (Ck и Nk являются линейными коэффициентами экстраполяции.
- yk является непрерывный выход во время Tk .
Коэффициенты, или наклонный Nk и y — прерывают Ck , вычисляются можно следующим образом
H k = T k − T k − 1 M k + 1 = U k − U k − 1 H k U ^ = U k + M k + 1 ( H K ) N k + 1 = U ^ − y k H K C k = y k
Алгоритм FAST минимизирует ошибку путем попытки предсказать следующий вход во время метода обновления блока. Это ошибочное сокращение предсказанного выхода блока обменяно против тенденции промахнуться по входному сигналу.
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.
Не рекомендуемый для генерации производственного кода.
Рассмотрите дискретизацию вашей модели.
Смотрите также
Введенный в R2019b
Документация Simulink
- Примеры
- Блоки и другая ссылка
- Информация о релизах
- PDF-документация
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Zero order hold simulink что это
И.В.Черных. «Simulink: Инструмент моделирования динамических систем»
9. Библиотека блоков Simulink
9.4. Discrete – дискретные блоки
9.4.1. Блок единичной дискретной задержки Unit Delay
Выполняет задержку входного сигнала на один шаг модельного времени.
Входной сигнал блока может быть как скалярным, так и векторным. При векторном входном сигнале задержка выполняется для каждого элемента вектора. Блок поддерживает работу с комплексными и действительными сигналами.
На рис. 9.4.1 показан пример использования блока для задержки дискретного сигнала на один временной шаг, равный 0.1с.
Рис. 9.4.1. Пример использования блока Unit Delay
9.4.2. Блок экстраполятора нулевого порядка Zero-Order Hold
Блок выполняет дискретизацию входного сигнала по времени.
Sample time – Величина шага дискретизации по времени.
Блок фиксирует значение входного сигнала в начале интервала квантования и поддерживает на выходе это значение до окончания интервала квантования. Затем выходной сигнал изменяется скачком до величины входного сигнала на следующем шаге квантования.
На рис. 9.4.2 показан пример использования блока Zero-Order Hold для формирования дискретного сигнала.
Рис. 9.4.2. Пример формирования дискретного сигнала с помощью блока Zero-Order Hold
Блок экстраполятора нулевого порядка может использоваться также для согласования работы дискретных блоков имеющих разные интервалы квантования. На рис. 9.4.3 показан пример такого использования блока Zero-Order Hold. В примере блок Discrete Transfer Fcn имеет параметр Sample time = 0.4 , а для блока Discrete Filter этот же параметр установлен равным 0.8.
Рис. 9.4.3. Использование блока Zero-Order Hold для согласования работы дискретных блоков.
9.4.3. Блок экстраполятора первого порядка First-Order Hold
Блок задает линейное изменение выходного сигнала на каждом такте дискретизации, в соответствии с крутизной входного сигнала на предыдущем интервале дискретизации.
Sample time – Величина шага дискретизации по времени.
Пример экстраполяции синусоидального сигнала этим блоком показан на рис. 9.4.4.
Рис. 9.4.4. Использование блока First-Order Hold
9.4.4. Блок дискретного интегратора Discrete-Time Integrator
Блок используется для выполнения операции интегрирования в дискретных системах.
Forward Euler — Прямой метод Эйлера.
Метод использует аппроксимацию T/(z-1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k–1),
y – выходной сигнал интегратора,
u – входной сигнал интегратора,
T – шаг дискретизации,
k – номер шага моделирования.
Метод использует аппроксимацию T*z/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k).
Метод использует аппроксимацию T/2*(z+1)/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
x(k) = y(k–1) + T/2 * u(k–1).
Остальные параметры дискретного интегратора те же, что и у блока аналогового интегратора Integrator (библиотека Continuous).
На рис. 9.4.5 показан пример демонстрирующий все три способа численного интегрирования блока Discrete-Time Integrator. Как видно из рисунка изображение блока меняется в зависимости от выбранного метода интегрирования.
Рис. 9.4.5. Выполнение интегрирования блоками Discrete-Time Integrator, реализующими разные численные методы.
9.4.5. Дискретная передаточная функция Discrete Transfer Fсn
Блок Discrete Transfer Fcn задает дискретную передаточную функцию в виде отношения полиномов:
m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
num – вектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.
Порядок числителя не должен превышать порядок знаменателя.
Входной сигнал блока должен быть скалярным. В том случае, если коэффициенты числителя заданы вектором, то выходной сигнал блока будет скалярным (также как и входной сигнал). На рис. 9.4.6 показан пример использования блока Discrete Transfer Fcn. В примере рассчитывается реакция на единичное ступенчатое воздействие дискретного аналога колебательного звена: .
Шаг дискретизации выбран равным 0.5 с.
Рис. 9.4.6. Использование блока Discrete Transfer Fcn
9.4.6. Блок дискретной передаточной функции Discrete Zero-Pole
Блок Discrete Zero-Pole определяет дискретную передаточную функцию с заданными полюсами и нулями:
Z – вектор или матрица нулей передаточной функции,
P – вектор полюсов передаточной функции,
K – коэффициент передаточной функции, или вектор коэффициентов, если нули передаточной функции заданы матрицей. При этом размерность вектора K определяется числом строк матрицы нулей.
Количество нулей не должно превышать число полюсов передаточной функции.
В том случае, если нули передаточной функции заданы матрицей, то блок Discrete Zero-Pole моделирует векторную передаточную функцию.
Нули или полюса могут быть заданы комплексными числами. В этом случае нули или полюса должны быть заданы комплексно-сопряженными парами полюсов или нулей, соответственно.
Начальные условия при использовании блока Discrete Zero-Pole полагаются нулевыми.
На рис. 9.4.7 показан пример использования блока Discrete Zero-Pole. С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции
Шаг дискретизации выбран равным 0.5 с.
Рис. 9.4.7. Использование блока Discrete Zero-Pole.
9.4.7. Блок дискретного фильтра Discrete Filter
Блок дискретного фильтра Discrete Filter задает дискретную передаточную функцию от обратного аргумента (1/z):
m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
num – вектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.
На рис. 9.4.8 показан пример использования блока Discrete Filter. С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции:
Шаг дискретизации выбран равным 0.5 с.
Рис. 9.4.8. Использование блока Discrete Filter.
9.4.8. Блок модели динамического объекта Discrete State-Space
Блок создает динамический объект, описываемый уравнениями в пространстве состояний:
x – вектор состояния,
u – вектор входных воздействий,
y – вектор выходных сигналов,
A, B, C, D — матрицы: системы, входа, выхода и обхода, соответственно,
n – номер шага моделирования.
Размерность матриц показана на рис. 9.4.9 (n – количество переменных состояния, m – число входных сигналов, r – число выходных сигналов).
Рис. 9.4.9. Размерность матриц блока Discrete State-Space
- A –Матрица системы.
- B – Матрица входа.
- C – Матрица выхода
- D – Матрица обхода
- Initial condition – Вектор начальных условий.
- Sample time — Шаг дискретизации по времени.
На рис. 9.4.10 показан пример моделирования динамического объекта с помощью блока Discrete State-Space. Матрицы блока имеют следующие значения:
Рис. 9.4.10. Пример использования блока Discrete State-Space.