exponenta event banner

Память

Выходные данные предыдущего шага времени

  • Библиотека:
  • Симулинк/дискретный

    Кодер HDL/дискретный

  • Memory block

Описание

Блок памяти удерживает и задерживает ввод на один основной шаг времени интеграции. При помещении в подсистему итератора он удерживает и задерживает ввод на одну итерацию. Этот блок принимает непрерывные и дискретные сигналы. Блок принимает один вход и генерирует один выход. Каждый сигнал может быть скалярным, векторным, матричным или N-D массивом. Если вход не является скалярным, блок удерживает и задерживает все элементы входа на один и тот же шаг времени.

Вывод блока на первом шаге времени задается с помощью параметра «Начальное условие». Тщательный выбор этого параметра может минимизировать нежелательное поведение вывода. Однако время выборки указать нельзя. Время выборки этого блока зависит от типа используемого решателя или может быть задано для его наследования. Параметр Inherit sample time определяет, наследуется ли время выборки или основано на решателе.

Совет

Избегайте использования блока «Память» при выполнении обоих условий:

  • Модель использует решатель с переменным шагом ode15s или ode113.

  • Входные данные блока изменяются во время моделирования.

Когда блок памяти наследует время дискретной выборки, блок аналогичен блоку единичной задержки. Однако блок памяти не поддерживает ведение журнала состояния. Если необходимо зарегистрировать конечное состояние, используйте вместо этого блок единичной задержки.

Сравнение с подобными блоками

Блоки памяти, задержки блока и удержания нулевого порядка обеспечивают аналогичную функциональность, но имеют различные возможности. Кроме того, назначение каждого блока различно.

В этой таблице показано рекомендуемое использование для каждого блока.

БлокНазначение блокаСсылочные примеры
Единичная задержкаРеализуйте задержку, используя указанное время дискретной выборки. Блок принимает и выводит сигналы с дискретным временем выборки.
ПамятьРеализация задержки на один крупный шаг времени интеграции. В идеале блок принимает непрерывные (или фиксированные во второстепенном временном шаге) сигналы и выдает сигнал, фиксированный во второстепенном временном шаге.
Удержание нулевого заказаПреобразование входного сигнала с непрерывным временем выборки в выходной сигнал с дискретным временем выборки.

Каждый блок имеет следующие возможности.

СпособностьПамятьЕдиничная задержкаУдержание нулевого заказа
Спецификация исходного состоянияДаДаНет, так как блочный выход в момент времени t = 0 должен соответствовать входному значению.
Спецификация времени выборкиНет, поскольку блок может наследовать время выборки только от управляющего блока или решателя, используемого для всей модели.ДаДа
Поддержка сигналов на основе кадровНет ДаДа
Поддержка регистрации состоянияНетДаНет

Поддержка шины

Блок памяти является блоком с поддержкой шины. Входной сигнал может быть виртуальным или невиртуальным сигналом шины с учетом следующих ограничений:

  • Начальное условие должно быть равно нулю, ненулевому скаляру или конечной числовой структуре.

  • Если начальное условие равно нулю или структуре и указано имя состояния, ввод не может быть виртуальной шиной.

  • Если условие Initial является ненулевым скаляром, нельзя указать имя состояния.

Сведения об указании структуры начального условия см. в разделе Указание начальных условий для элементов шины.

Все сигналы на входе невиртуальной шины в блок памяти должны иметь одинаковое время выборки, даже если элементы связанного объекта шины задают наследуемые времена выборки. Для изменения времени выборки отдельного сигнала или всех сигналов на шине можно использовать блок Rate Transition. Дополнительные сведения см. в разделе Изменение времени выборки для невиртуальных шин и блоков с поддержкой шины.

В качестве входного сигнала блока памяти можно использовать массив шин. Параметр Начальное условие можно задать следующим образом:

  • Стоимость 0. В этом случае все отдельные сигналы в массиве шин используют начальное значение 0.

  • Массив структур, который задает начальное условие для каждого из отдельных сигналов в массиве шин.

  • Одиночная скалярная структура, задающая начальное условие для каждого элемента, определяемого типом шины. Этот метод используется для задания одинаковых начальных условий для каждой шины в массиве.

Дополнительные сведения об определении и использовании массива шин см. в разделе Группирование невиртуальных шин в массивах шин.

Порты

Вход

развернуть все

Входной сигнал, заданный как скаляр, вектор, матрица или N-D массив. Входные данные могут быть непрерывными или дискретными, содержать вещественные или комплексные значения любого типа данных, поддерживаемого Simulink ®.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Продукция

развернуть все

Выходные данные представляют собой входные данные предыдущего временного шага.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Параметры

развернуть все

Главный

Укажите выходные данные на начальном шаге интеграции. Это значение должно быть равно 0, если не используется встроенный тип входных данных.

Программное использование

Параметр блока: InitialCondition
Текст: символьный вектор
Значения: скаляр | вектор
По умолчанию: '0'

Выберите для наследования времени выборки из управляющего блока:

  • Если управляющий блок имеет дискретное время выборки, то блок наследует время выборки.

  • Если управляющий блок имеет непрерывное время выборки, установка этого флажка не влияет. Время выборки зависит от типа решателя, используемого для моделирования модели.

Если флажок снят, время выборки блока зависит от типа решателя, используемого для моделирования модели:

  • Если решатель является решателем с переменным шагом, время выборки блока является непрерывным, но фиксированным на вспомогательном шаге времени: [0, 1].

  • Если решатель является решателем с фиксированным шагом, [0, 1] время выборки преобразуется в размер шага решателя после распространения времени выборки.

Программное использование

Параметр блока: InheritSampleTime
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Выберите для вывода входных данных во время линеаризации и обрезки. Этот параметр задает режим блока для прямого прохождения.

Установка этого флажка может привести к изменению порядка состояний в модели при использовании функций linmod, dlinmod, или trim. Для извлечения нового порядка состояний используйте следующие команды.

Сначала скомпилируйте модель с помощью следующей команды, где model - имя модели Simulink.

    [sizes, x0, x_str] = model([],[],[],'lincompile'); 

Затем завершите компиляцию с помощью этой команды.

  model([],[],[],'term'); 

Выходной аргумент, x_str, который является массивом ячеек состояний в модели Simulink, содержит новый порядок состояний. При передаче вектора состояний в качестве входных данных для linmod, dlinmod, или trim функции, вектор состояния должен использовать этот новый порядок состояний.

Программное использование

Параметр блока: LinearizeMemory
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Выберите для линеаризации блока памяти к единичной задержке, когда блок памяти управляется сигналом с дискретным временем выборки.

Программное использование

Параметр блока: LinearizeAsDelay
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Атрибуты состояния

Этот параметр используется для назначения уникального имени состоянию блока. Значение по умолчанию: ' '. Если это поле пустое, имя не назначается. При использовании этого параметра следует учитывать следующие соображения:

  • Допустимый идентификатор начинается с буквы или символа подчеркивания, за которым следуют буквенно-цифровые символы или символы подчеркивания.

  • Имя состояния применяется только к выбранному блоку.

Этот параметр включает параметр Имя состояния должно разрешаться в сигнальный объект Simulink при нажатии кнопки Применить.

Дополнительные сведения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели (Simulink Coder).

Программное использование

Параметр блока: StateName
Текст: символьный вектор
Значения: уникальное имя
По умолчанию: ''

Установите этот флажок, чтобы имя состояния разрешалось в объект сигнала Simulink.

Зависимости

Чтобы включить этот параметр, укажите значение для имени состояния. Этот параметр появляется только в том случае, если для параметра конфигурации модели Разрешение сигнала (Signal resolution) задано значение, отличное от None.

Установка этого флажка отключает класс хранения «» Создание кода «».

Программное использование

Параметр блока: StateMustResolveToSignalObject
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Выберите пользовательский пакет класса хранения, выбрав класс сигнального объекта, определяемый целевым пакетом. Например, для применения пользовательских классов хранения из встроенного пакета mpt, выберите mpt.Signal. Если вы не используете цель создания кода на основе ERT с Embedded Coder ®, пользовательские классы хранения не влияют на созданный код.

Чтобы использовать пакет класса хранения, отличный от пакета Simulink, необходимо загрузить пакет в словарь Embedded Coder модели. См. раздел Загрузка пакетов классов хранения в словарь встроенного кодера (Embedded Coder).

Сведения о настройке данных модели с помощью классов хранения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели (встроенный кодер). Сведения о пользовательских классах хранения см. в разделе Организация данных в структуры в сгенерированном коде (встроенный кодер).

Программное использование

Параметр блока: StateSignalObject
Текст: символьный вектор
Значения: 'Simulink.Signal' | '<StorageClass.PackageName>'
По умолчанию: 'Simulink.Signal'

Выберите класс хранения состояния для создания кода.

Используйте класс объекта Signal для выбора пользовательских классов хранения из пакета, отличного от Simulink.

Зависимости

Чтобы включить этот параметр, укажите значение для имени состояния.

Программное использование

Параметр блока: StateStorageClass
Текст: символьный вектор
Значения: 'Auto' | 'Model default' | 'ExportedGlobal' | 'ImportedExtern' | 'ImportedExternPointer' | 'Custom' | ...
По умолчанию: 'Auto'

Укажите квалификатор типа склада, например const или volatile.

Примечание

TypeQualifier будет удален в следующем выпуске. Чтобы применить квалификаторы типов хранения к данным, используйте пользовательские классы хранения и разделы памяти. Если вы не используете целевой объект создания кода на основе ERT с Embedded Coder, пользовательские классы хранения и разделы памяти не влияют на созданный код.

Во время моделирования блок использует следующие значения:

  • Начальное значение сигнального объекта, которому разрешено имя состояния

  • Минимальное и максимальное значения сигнального объекта

Дополнительные сведения см. в разделе Объекты данных.

Зависимости

Чтобы включить этот параметр, задайте для класса хранения генерации кода значение ExportedGlobal, ImportedExtern, ImportedExternPointer, или Model default. Этот параметр скрыт, если ранее не было задано его значение.

Программное использование

Параметр блока: RTWStateStorageTypeQualifier
Текст: символьный вектор
Значения: '' | 'const' | 'volatile' | ...
По умолчанию: ''

Характеристики блока

Типы данных

Boolean | bus | double | enumerated | fixed point | integer | single

Прямой проход

yes

Многомерные сигналы

yes

Сигналы переменного размера

no

Обнаружение пересечения нулей

no

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

Создание кода ПЛК
Создание структурированного текстового кода с помощью Coder™ Simulink ® PLC

.

Преобразование с фиксированной точкой
Проектирование и моделирование систем с фиксированной точкой с помощью Designer™ с фиксированной точкой.

Представлен до R2006a