Выход входных данных из предыдущего временного шага
Simulink/Дискретный
HDL-кодер/дискретный
Блок Memory удерживает и задерживает свой вход на один большой временной шаг интегрирования. Когда он помещается в подсистему итератора, он удерживает и задерживает его вход на одну итерацию. Этот блок принимает непрерывные и дискретные сигналы. Блок принимает один вход и генерирует один выход. Каждый сигнал может быть скалярным, векторным, матричным или N-D массивом. Если вход не нескаляром, блок удерживает и задерживает все элементы входа на один временной шаг.
Вы задаете выход блока для первого временного шага, используя параметр Initial condition. Тщательный выбор этого параметра может минимизировать нежелательное выходное поведение. Однако вы не можете задать шаг расчета. Шаг расчета этого блока зависит от типа используемого решателя, или можно задать, чтобы наследовать его. Параметр Inherit sample time определяет, наследуется ли шаг расчета или основывается на решателе.
Совет
Избегайте использования блока Memory, когда оба эти условия верны:
Ваша модель использует решатель с переменной степенью ode15s
или ode113
.
Вход в блок изменяется во время симуляции.
Когда блок Memory наследует дискретный шаг расчета, блок аналогичен блоку Unit Delay. Однако блок Memory не поддерживает логгирование состояния. Если логгирование окончательного состояния необходимо, используйте вместо этого блок Unit Delay.
Блоки Memory, Unit Delay и Zero-Order Hold обеспечивают сходную функциональность, но имеют различные возможности. Кроме того, назначение каждого блока отличается.
В этой таблице показано рекомендуемое использование для каждого блока.
Блок | Назначение блока | Справочные примеры |
---|---|---|
Unit Delay | Реализуйте задержку с помощью дискретного шага расчета, который вы задаете. Блок принимает и выводит сигналы с дискретным шагом расчета. |
|
Память | Реализуйте задержку на один большой временной шаг интегрирования. В идеале блок принимает непрерывные (или фиксированные в незначительном временном шаге) сигналы и выводит сигнал, который фиксируется в незначительном временном шаге. |
|
Zero-Order Hold | Преобразуйте входной сигнал с непрерывного шага расчета в выход сигнал с дискретного шага расчета. |
Каждый блок имеет следующие возможности.
Способность | Память | Unit Delay | Удержание нулевого порядка |
---|---|---|---|
Спецификация начального условия | Да | Да | Нет, потому что выход в момент t = 0, должен совпадать с входным значением. |
Спецификация шага расчета | Нет, потому что блок может наследовать только шаг расчета от ведущего блока или решателя, используемого для всей модели. | Да | Да |
Поддержка основанных на кадрах сигналов | Нет | Да | Да |
Поддержка логгирования состояний | Нет | Да | Нет |
Блок Memory является блоком с поддержкой шины. Входной вход может быть виртуальным или невиртуальным шинным сигналом, удовлетворяющим следующим ограничениям:
Initial condition должны быть нулем, ненулевым скаляром или конечной числовой структурой.
Если Initial condition меньше нуля или структуры, и вы задаете State name, вход не может быть виртуальной шиной.
Если Initial condition является ненулевым скаляром, вы не можете задать State name.
Для получения информации об указании структуры начальных условий см. раздел «Определение начальных условий для элементов шины».
Все сигналы в невиртуальной шине, вводимой в блок Memory, должны иметь одинаковый шаг расчета, даже если элементы связанного объекта шины задают унаследованные шаги расчета. Можно использовать блок Rate Transition, чтобы изменить шаг расчета отдельного сигнала или всех сигналов в шине. Смотрите Modify Sample Times для Невиртуальных Шин и Блоков с поддержкой Шины для получения дополнительной информации.
Можно использовать массив шин в качестве входного сигнала к блоку Memory. Можно задать параметр Initial condition с:
Значение 0
. В этом случае все отдельные сигналы в массиве шин используют начальное значение 0
.
Массив структур, который задает начальное условие для каждого из отдельных сигналов в массиве шин.
Одна скалярная структура, которая задает начальное условие для каждого из элементов, заданных типом шины. Используйте этот метод, чтобы задать те же начальные условия для каждой из шин в массиве.
Для получения дополнительной информации об определении и использовании массива шин смотрите Group Nonvirtual Buses in Arrays of Buses.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|