Memory

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

  • Библиотека:
  • Simulink / Дискретный

Описание

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

Вы указываете, что блок вывод впервые продвигается с помощью Начального параметра условия. Тщательный выбор этого параметра может минимизировать нежелательное выходное поведение. Однако вы не можете задать частоту дискретизации. Частота дискретизации этого блока зависит от типа решателя, используемого, или можно задать, чтобы наследовать его. Наследовать параметр частоты дискретизации определяет, наследована ли частота дискретизации или на основе решателя.

Совет

Избегайте использования Блока памяти, когда оба этих условия будут верны:

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

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

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

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

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

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

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

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

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

Соедините шиной поддержку

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

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

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

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

Для получения информации об определении начальной структуры условия смотрите, Задают Начальные условия для Сигналов Шины.

Все сигналы в невиртуальном входном параметре шины к Блоку памяти должны иметь ту же частоту дискретизации, даже если элементы связанного объекта шины задают наследованные частоты дискретизации. Можно использовать блок Rate Transition, чтобы изменить частоту дискретизации отдельного сигнала, или всех сигналов в шине. Смотрите Задают Частоты дискретизации Сигнала Шины и Способные к шине Блоки для получения дополнительной информации.

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

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

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

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

Для получения дополнительной информации об определении и использовании массива шин, смотрите Шины Объединения в Массив Шин.

Порты

Входной параметр

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

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный | шина

Вывод

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

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный | шина

Параметры

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

Основной

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

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

Блочный параметр: 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, когда вы нажимаете Apply.

Для получения дополнительной информации смотрите, Применяют Классы памяти к Отдельному Сигналу, состоянию и Элементам данных Параметра (Simulink Coder).

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

Блочный параметр: StateName
Ввод: символьный вектор
Значения: уникальное имя
Значение по умолчанию: ''

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

Зависимости

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

Установка этого флажка отключает класс памяти Генерации кода.

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

Блочный параметр: StateMustResolveToSignalObject
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

Если класс, который вы хотите, не появляется в списке, выберите Customize class lists. Для инструкций смотрите, что Целевой Класс Не Появляется в Списке Классов объектов Сигнала (Embedded Coder).

Для получения информации о классах памяти смотрите, Применяют Классы памяти к Отдельному Сигналу, состоянию и Элементам данных Параметра (Simulink Coder). Для получения информации о пользовательских классах памяти смотрите, Применяют Пользовательские Классы памяти к Отдельному Сигналу, состоянию и Элементам данных Параметра (Embedded Coder).

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

Блочный параметр: StateSignalObject
Ввод: символьный вектор
Значения: 'Simulink. Сигнал' |' <StorageClass. PackageName>'
Значение по умолчанию: 'Simulink.Signal'

Выберите класс памяти состояния для генерации кода.

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

Зависимости

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

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

Блочный параметр: StateStorageClass
Ввод: символьный вектор
Значения: 'Auto' | 'SimulinkGlobal' | 'ExportedGlobal' | 'ImportedExtern' | 'ImportedExternPointer' | 'Пользовательский' |...
Значение по умолчанию: 'auto'

Задайте спецификатор типа хранения, такой как const или volatile.

Примечание

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

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

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

  • Min и значения Max объекта сигнала

Для получения дополнительной информации смотрите Объекты данных.

Зависимости

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

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

Блочный параметр: RTWStateStorageTypeQualifier
Ввод: символьный вектор
Значения: '' | 'const' | 'энергозависимый' |...
Значение по умолчанию: ''

Блокируйте характеристики

Типы данных

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

Прямое сквозное соединение

No

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

Yes

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

No

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

No

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Генерация кода PLC
Сгенерируйте код Структурированного текста с помощью Simulink® PLC Coder™.

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

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

Была ли эта тема полезной?