Инициализируйте сигналы и дискретные состояния

Об инициализации

Примечание

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

Simulink® позволяет вам задавать начальные значения сигналов и дискретных состояний, т.е. значений сигналов и дискретных состояний в Start time симуляции. Можно использовать объекты сигнала, чтобы задать начальные значения любого или дискретного состояния сигнала в модели. Кроме того, для некоторых блоков, например, Выходной порт, Память Хранилища данных или Память, можно использовать или объект сигнала или параметры блоков или обоих, чтобы задать начальное значение состояния блока или вывести. В таких случаях, Simulink Check, чтобы гарантировать, что значения, заданные объектом сигнала и параметром, сопоставимы.

Когда вы задаете объект сигнала для инициализации или дискретного состояния сигнала или переменную как значение параметров блоков, Simulink разрешает имя, которое вы задаете к соответствующему объекту или переменной, как описано в Разрешении Символа.

Данный сигнал может быть сопоставлен с самое большее одним объектом сигнала при любых обстоятельствах. Сигнал может относиться к объекту несколько раз, но каждая ссылка должна решить к точно тому же объекту. Различный объект сигнала, который имеет точно те же свойства, не удовлетворит требование для уникальности. Ошибка времени компиляции происходит, если модель сопоставляет больше чем один объект сигнала с каким-либо сигналом. Для получения дополнительной информации смотрите Simulink.Signal и блок Merge.

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

Для блоков, которые имеют начальное значение или начальный параметр условия, можно использовать тот параметр, чтобы инициализировать сигнал. Например, следующее диалоговое окно Block Parameters инициализирует сигнал для блока Unit Delay с начальным условием 0.

Чтобы получить доступ к этим параметрам блоков, выберите один из этих методов:

  • Используйте Model Data Editor (View> Model Data Editor). Используйте этот метод, чтобы сконфигурировать несколько сигналов и состояний с доступной для поиска, поддающейся сортировке таблицей. Чтобы инициализировать состояние блока или хранилище данных, можно использовать соответствующую вкладку (States или Data Stores). Чтобы инициализировать сигнал, состояние или хранилище данных, можно использовать вкладку Parameters и найти строку, которая соответствует соответствующим параметрам блоков.

    Для получения дополнительной информации о Model Data Editor, смотрите Configure Data Properties при помощи Model Data Editor.

  • Используйте Property Inspector (View> Property Inspector). Используйте этот метод, чтобы сконфигурировать один сигнал или утвердить за один раз. Выберите блок, который поддерживает целевое состояние или генерирует целевой сигнал, и найдите соответствующие параметры блоков.

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

Для получения дополнительной информации о методах, чтобы получить доступ к параметрам блоков (включая параметры, что управляющий сигнал и инициализация состояния), смотрите Setting Properties и Параметры.

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

Можно использовать объекты сигнала, которые имеют класс памяти кроме 'auto' или, когда вы устанавливаете класс памяти по умолчанию соответствующей категории данных к Default (настройка по умолчанию) в Коде, Сопоставляющем Редактор, 'Model default' инициализировать:

  • Дискретные состояния с начальным параметром условия

  • Сигналы в модели кроме сигналов шины и блоков, которые выводят постоянное значение

Чтобы задать начальное значение, используйте Model Explorer или команды MATLAB®, чтобы сделать следующее:

  1. Создайте объект сигнала.

    На панели инструментов Model Explorer выберите Add> Simulink Signal. Объект сигнала появляется в базовом рабочем пространстве с именем по умолчанию. Переименуйте объект как S1. Также используйте эту команду в командной строке:

    S1 = Simulink.Signal;

    Имя объекта сигнала должно совпасть с именем сигнала, что объект инициализирует. Несмотря на то, что не требуемый, рассмотрите установку опции Signal name must resolve to Simulink signal object в диалоговом окне Signal Properties. Эта установка делает объекты сигнала в рабочем пространстве MATLAB сопоставимыми с сигналами, которые появляются в вашей модели.

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

  2. Установите класс памяти объекта сигнала на значение кроме Auto или Model default. В панели Contents Model Explorer выберите объект сигнала. В Диалоговой панели, набор Storage class к ExportedGlobal. Также используйте эту команду в командной строке:

    S1.CoderInfo.StorageClass = 'ExportedGlobal';

  3. Установите начальное значение. Можно задать выражение MATLAB, включая имя переменной рабочей области, которая оценивает к значению числового скаляра или массиву.

    Механизм Simulink преобразовывает начальное значение так тип, сложность, и размерность сопоставима с соответствующим значением параметров блоков. Если вы задаете недопустимое значение или выражение, сообщение об ошибке появляется, когда вы обновляете модель.

    В Диалоговой панели Model Explorer, набор Initial value к 0.5. Также используйте эту команду в командной строке:

    S1.InitialValue = '0.5'

    Если можно также использовать параметры блоков, чтобы установить начальное значение сигнала или состояния, необходимо установить параметр или на пустой ([]) или на то же значение как начальное значение объекта сигнала. Если вы устанавливаете значение параметров пустеть, Simulink использует значение, заданное объектом сигнала инициализировать сигнал или состояние. Если вы устанавливаете параметр на значение, Simulink сравнивает значение параметров с объектным значением сигнала и отображает ошибку, если они отличаются.

Некоторые настройки начального значения могут зависеть от режима инициализации. Для получения дополнительной информации смотрите обнаружение инициализации Underspecified.

Classic initialization mode: В этом режиме, настройках начального значения для объектов сигнала, которые представляют следующие сигналы и состояния, заменяет соответствующие начальные значения параметров блоков, если неопределенный (задал как []):

  • Выходные сигналы условно выполняемых подсистем и блоков Слияния

  • Состояния блока

Simplified initialization mode: В этом режиме, начальных значениях объектов сигнала, сопоставленных с выводом следующих блоков, проигнорирован. Начальные значения соответствующих блоков используются вместо этого.

  • Выходные сигналы условно выполняемых подсистем

  • Объедините блоки

Использование объектов сигнала, чтобы настроить начальные значения

Simulink позволяет вам использовать объекты сигнала как альтернативу объектам параметра (см. Simulink.Parameter) настроить начальные значения блока выходные параметры и состояния, которые могут быть заданы через настраиваемый параметр. Чтобы использовать объект сигнала, чтобы настроить начальное значение, создайте объект сигнала с тем же именем как сигнал или состояние и установите начальное значение объекта сигнала к выражению, которое включает переменную, заданную в рабочее пространство MATLAB. Можно затем настроить начальное значение путем изменения значения соответствующей переменной рабочей области во время симуляции.

Например, предположите, что вы хотите настроить начальное значение состояния Блока памяти, названного M1. Для этого вы можете создать объект сигнала под названием M1, установить его класс памяти на 'ExportedGlobal', установить его начальное значение к K (M1.InitialValue='K'), где K является переменной рабочей области в рабочем пространстве MATLAB и установил соответствующий начальный параметр условия Блока памяти к [], чтобы избежать ошибок непротиворечивости. Вы могли затем изменить начальное значение состояния Блока памяти любое время во время симуляции путем изменения значения K в командной строке MATLAB и обновления блок-схемы (например, путем ввода Ctrl+D).

Пример: использование объекта сигнала, чтобы инициализировать подсистему Вывод

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

s сигнала инициализируется к 4,5. Чтобы избежать ошибки непротиворечивости, начальным значением блока Outport активированной подсистемы должен быть [] или 4.5.

Если вам нужны объект сигнала и его установка начального значения, чтобы сохраниться через сеансы Simulink, смотрите, Создают Персистентные Объекты данных.

Сводные данные поведения инициализации для объектов сигнала

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

Или дискретное состояние сигналаОписаниеПоведение
S1 Корневой импорт
  • Инициализированный к S1.InitialValue.

  • Если вы используете панель Data Import/Export диалогового окна Параметров конфигурации, чтобы задать значения для корневых входных параметров, начальное значение перезаписывается и может отличаться на каждом временном шаге. В противном случае значение остается постоянным.

X1 Блок Unit Delay — Блок с дискретным состоянием, которое имеет начальное условие
  • Инициализированный к X1.InitialValue.

  • Simulink Check, совпадает ли X1.InitialValue с начальным условием, заданным для блока, и отображает ошибку, если несоответствие происходит.

  • В первой записи вывод равняется X1.InitialValue, и состояние равняется S1.

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

  • Если блок в активированной подсистеме, можно использовать начальное значение в качестве значения сброса, если подсистема Включает параметры блоков, States when enabling установлен в reset.

X2 Блок памяти Хранилища данных
  • Тип данных работает вектор (DWork), инициализированный к X2.InitialValue. Для получения информации о векторах работы см. Векторные Основы DWork.

  • Simulink Check, совпадает ли X2.InitialValue с начальным условием, заданным для блока, и отображает ошибку, если несоответствие происходит.

  • Блоки Записи Хранилища данных перезаписывают значение.

S2 Вывод активированной подсистемы
  • Инициализированный к S2.InitialValue или значению блока Outport. Если несколько начальных значений заданы для того же сигнала, все начальные значения должны быть тем же самым.

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

  • Начальное значение также используется в качестве значения сброса, если подсистема Включает параметрам блоков States when enabling или параметры блоков Выходного порта, Output when disabled установлен в reset.

S3Персистентные сигналы
  • Инициализированный к S3.InitialValue.

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

  • Влияет на генерацию кода только. Для симуляции, устанавливая начальное значение для S3 не важно, потому что значения перезаписываются во время начала симуляции модели.

Похожие темы