Память хранилища данных

Задайте хранилище данных

  • Библиотека:
  • Simulink / Маршрутизация Сигнала

Описание

Блок памяти Хранилища данных задает и инициализирует именованное общее хранилище данных, которое является областью памяти, применимой блоками Записи Чтения и Хранилища данных Хранилища данных, которые задают то же имя хранилища данных.

Местоположение Блока памяти Хранилища данных, который задает хранилище данных, определяет, какое Чтение Хранилища данных и блоки Записи Хранилища данных могут получить доступ к хранилищу данных:

  • Если Блок памяти Хранилища данных находится в системе верхнего уровня, Чтение Хранилища данных и блоки Записи Хранилища данных где угодно в модели могут получить доступ к хранилищу данных.

  • Если Блок памяти Хранилища данных находится в подсистеме, Чтение Хранилища данных и блоки Записи Хранилища данных в той же подсистеме или в любой подсистеме ниже его в иерархии модели могут получить доступ к хранилищу данных.

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

Не включайте Блок памяти Хранилища данных в Для Каждой подсистемы.

Получение правильных результатов хранилищ данных требует обеспечения, чтобы чтения хранилища данных и записи произошли в ожидаемом порядке. Для получения дополнительной информации см.:

Можно использовать объекты Simulink.Signal в дополнение к, или вместо, Блоки памяти Хранилища данных, чтобы задать хранилища данных. Хранилище данных, заданное в базовом рабочем пространстве с объектом сигнала, является хранилищем глобальных данных. Хранилища глобальных данных доступны для каждой модели, включая все модели, на которые ссылаются. Смотрите Хранилища данных для получения дополнительной информации.

Параметры

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

Основной

Задайте имя для хранилища данных, которое вы задаете с этим блоком. Чтение Хранилища данных и блоки Записи Хранилища данных с тем же именем могут читать из и записать в, хранилище данных, инициализированное этим блоком. Имя может представлять Блок памяти Хранилища данных или объект знака, заданный, чтобы быть хранилищем данных.

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

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

Переименуйте это хранилище данных везде, блоки Записи Чтения и Хранилища данных Хранилища данных используют его в модели.

Ограничения

Вы не можете использовать, Переименовывают Все, чтобы переименовать хранилище данных если вы:

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

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

Необходимо вместо этого переименовать соответствующий объект Simulink.Signal из Образцового Проводника. Для примера смотрите, Переименовывают Хранилище данных, Заданное Объектом Сигнала.

Перечислите все блоки Записи Чтения и Хранилища данных Хранилища данных, которые имеют то же имя хранилища данных как текущий блок, и которые находятся в существующей системе или в любой подсистеме ниже его в иерархии модели. Нажатие на блок path отображает и подсвечивает что блок в вашей модели.

Атрибуты сигнала

Задайте начальное значение или значения хранилища данных. Минимальный параметр задает минимальное значение для этого параметра, и Максимальный параметр задает максимальное значение.

Если вы задаете нескалярное значение и устанавливаете Размерности на -1 (значение по умолчанию), хранилище данных имеет те же размерности как массив. Данные, которые вы пишете в хранилище данных (при помощи блоков Записи Хранилища данных) должны иметь эти размерности.

Если вы устанавливаете параметр Размерностей на значение кроме -1, размерности начального значения должны совпадать с размерностями, которые вы задаете, если начальное значение не является скаляром или структурой MATLAB®. Если вы задаете скаляр, каждый элемент хранилища данных использует скаляр в качестве начального значения. Используйте этот метод, чтобы применить то же начальное значение (скаляр, который вы задаете) к каждому элементу, вручную не совпадая с размерностями начального значения с размерностями хранилища данных.

Чтобы использовать этот блок, чтобы инициализировать невиртуальный сигнал шины, задайте начальное значение как структуру MATLAB и установите образцовый параметр конфигурации обнаружение инициализации Underspecified на Simplified. Для получения дополнительной информации об инициализации невиртуальных сигналов шины с помощью структур, смотрите, Задают Начальные условия для Сигналов Шины.

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

Блочный параметр: InitialValue
Ввод: символьный вектор
Значения: скаляр | вектор | матрица | массив N-D
Значение по умолчанию: '0'

Задайте минимальное значение, которое должен вывести блок. Значением по умолчанию является (незаданный) []. Этот номер должен быть конечным действительным двойным скалярным значением.

Примечание

Если вы задаете объект шины как тип данных для этого блока, не устанавливайте минимальное значение для данных шины по блоку. Simulink игнорирует эту установку. Вместо этого установите минимальные значения для элементов шины объекта шины, заданного как тип данных. Для получения информации о свойстве Minimum элемента шины смотрите Simulink.BusElement.

Simulink® использует минимальное значение, чтобы выполнить:

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

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

Задайте максимальное значение, которое должен вывести блок. Значением по умолчанию является (незаданный) []. Этот номер должен быть конечным действительным двойным скалярным значением.

Примечание

Если вы задаете объект шины как тип данных для этого блока, не устанавливайте максимальное значение для данных шины по блоку. Simulink игнорирует эту установку. Вместо этого установите максимальные значения для элементов шины объекта шины, заданного как тип данных. Для получения информации о свойстве Maximum элемента шины смотрите Simulink.BusElement.

Симулинк использует максимальное значение, чтобы выполнить:

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

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

Задайте тип выходных данных. Можно установить его на:

  • Правило, которое наследовало тип данных (например, Inherit: auto 'auto'.

  • Имя встроенного типа данных (например, single).

  • Имя объекта типа данных (например, объекта Simulink.NumericType).

  • Выражение, которое оценивает к типу данных (например, fixdt(1,16,0)). Не задавайте объект шины как тип данных в выражении; используйте Bus: <object name>, чтобы задать тип данных шины.

Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

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

Блочный параметр: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: автоматический' | 'удваиваются' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'булевская переменная' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | 'Перечисление: <имя класса>'
Значение по умолчанию: 'Inherit: auto'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип Выходных данных, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).

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

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

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

При использовании значение кроме -1, задаете те же размерности как размерности параметра Начального значения, если вы не задаете начальное значение как скаляр (для скалярного расширения) или структура MATLAB. Если хранилище данных представляет массив шин, и если вы используете структуру MATLAB для начального значения, можно задать размерности, чтобы инициализировать массив шин с этой структурой.

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

Блочный параметр: Размерности
Ввод: символьный вектор
Значения: скаляр | вектор | матрица
Значение по умолчанию: '-1'

Укажите, что хранилище данных интерпретирует векторные начальные значения как одномерные.

По умолчанию MATLAB представляет векторные данные как матрицы, которые имеют две размерности. Например, MATLAB представляет векторный [1 2 3] как 1 3 матрица.

Когда вы выбираете этот параметр, хранилище данных представляет векторные данные при помощи только одной размерности вместо два. Например, если вы задаете начальное значение [1 2 3], хранилище данных хранит одномерный вектор тремя элементами.

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

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

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

Задайте числовой тип, действительный или комплексный, значений в хранилище данных.

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

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

В единственной иерархии модели - ссылки, когда вы используете блоки многоуровневой модели, чтобы относиться к модели, которая содержит Блок памяти Хранилища данных, по умолчанию, каждый экземпляр модели, на которую ссылаются (каждый Блок модели) чтения от и пишет в отдельную копию хранилища данных. Когда вы выбираете Share через образцовые экземпляры, вместо того, чтобы взаимодействовать с отдельной копией, всеми экземплярами, считанными из, и пишете в то же хранилище данных.

Когда вы устанавливаете образцовую упаковку интерфейса Code параметра конфигурации на Reusable function генерировать повторно используемый код от модели (Simulink Coder™), хранилище данных с Долей через образцовые выбранные экземпляры появляется в коде как глобальный символ что сгенерированный доступ к функциям точки входа непосредственно. Например, глобальный символ является глобальной переменной или полем глобальной переменной структуры. Поэтому каждый вызов, который ваш код выполняет к функциям точки входа (каждый экземпляр модели) совместно использует данные.

Для примера смотрите, Осуществляют обмен данными Хранилище Между Экземплярами Допускающего повторное использование Алгоритма. Для получения дополнительной информации смотрите, Осуществляют обмен данными Среди Образцовых Экземпляров, на которые Ссылаются.

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

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

Укажите, что программное обеспечение Simulink, при компиляции модели, ищет рабочее пространство модели и базовое рабочее пространство для объекта Simulink.Signal, имеющего то же имя, как описано в Разрешении Символа. Если Simulink не находит такой объект, остановки компиляции с ошибкой. В противном случае Simulink сравнивает атрибуты объекта сигнала к соответствующим атрибутам Блока памяти Хранилища данных. Если блок и атрибуты объектов противоречивы, остановы Simulink образцовая компиляция, и отображает ошибку.

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

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

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

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

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

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

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

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

Чтобы программно установить этот параметр, используйте StateStorageClass или StateSignalObject. Смотрите Применяют Классы памяти к Отдельному Сигналу, состоянию и Элементам данных Параметра (Simulink Coder).

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

Блочный параметр: StateStorageClass
Ввод: символьный вектор
Значения: 'Auto' | 'Образцовое значение по умолчанию' | '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' | 'энергозависимый' |...
Значение по умолчанию: ''

Диагностика

Выберите диагностическое действие, чтобы взять, если модель пытается считать данные от хранилища данных, до которого это не записало данные в этом временном шаге. См. также Обнаружить чтение перед диагностикой записи в разделе Блока памяти Хранилища данных Образцовых Параметров конфигурации> Диагностика> панель Законности Данных.

  • 'none' Не произведите ответ.

  • Предупреждение Отобразите предупреждение и продолжите моделирование.

  • Ошибка Отключите моделирование и отобразите ошибку.

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

Блочный параметр: ReadBeforeWriteMsg
Ввод: символьный вектор
Значения: 'ни один' | 'предупреждение' | 'ошибка'
Значение по умолчанию: Предупреждение

Выберите диагностическое действие, чтобы взять, если модель пытается записать данные к хранилищу данных после предыдущего чтения данных из него на шаге текущего времени. См. также Обнаружить запись после диагностики чтения в разделе Блока памяти Хранилища данных Образцовых Параметров конфигурации> Диагностика> панель Законности Данных.

  • 'none' Не произведите ответ.

  • Предупреждение Отобразите предупреждение и продолжите моделирование.

  • Ошибка Отключите моделирование и отобразите ошибку.

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

Блочный параметр: WriteAfterReadMsg
Ввод: символьный вектор
Значения: 'ни один' | 'предупреждение' | 'ошибка'
Значение по умолчанию: Предупреждение

Выберите диагностическое действие, чтобы взять, если модель пытается записать данные к хранилищу данных дважды по очереди на шаге текущего времени. См. также Обнаружить запись после диагностики записи в разделе Блока памяти Хранилища данных Образцовых Параметров конфигурации> Диагностика> панель Законности Данных.

  • 'none' Не произведите ответ.

  • Предупреждение Отобразите предупреждение и продолжите моделирование.

  • Ошибка Отключите моделирование и отобразите ошибку.

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

Блочный параметр: WriteAfterWriteMsg
Ввод: символьный вектор
Значения: 'ни один' | 'предупреждение' | 'ошибка'
Значение по умолчанию: Предупреждение

Журналирование

Выберите эту опцию, чтобы сохранить значения этого сигнала к MATLAB workspace во время моделирования. Смотрите Сигнал Регистрировать для деталей.

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

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

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

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

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

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

Примечание

Если вы устанавливаете DataLoggingNameMode на Custom, необходимо задать имя, сопоставленное с регистрируемыми данными сигнала с помощью параметра DataLoggingName.

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

Отбросьте все кроме последних точек данных N, где N является номером, который вы вводите в смежном поле редактирования. Для получения дополнительной информации смотрите Хранилища Данных логов.

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

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

Регистрируйте каждый N th точка данных, где N является номером, который вы вводите в смежном поле редактирования. Например, предположите, что ваша модель использует решатель фиксированного шага с размером шага 0.1 s. Если вы выбираете эту опцию и принимаете значение десятикратного уменьшения по умолчанию (2), Simulink записывает точки данных для этого сигнала во времена 0.0, 0.2, 0.4, и так далее. Для получения дополнительной информации смотрите Хранилища Данных логов.

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

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

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

Типы данных

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

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

Yes

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

Yes

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

No

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

No

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

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

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

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

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