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

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

Примечание

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

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

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

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

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

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

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

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

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

  • Используйте Property Inspector (на вкладке Modeling, под Design, click 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. Можно затем настроить начальное значение путем изменения значения соответствующей переменной рабочей области во время симуляции.

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

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

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

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

  • Блоки Data Store Write перезаписывают значение.

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

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

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

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

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

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

Похожие темы