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

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

Примечание

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

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

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

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

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

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

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

  • Используйте Редактор Данных модели (Представление> Редактор Данных модели). Используйте этот метод, чтобы сконфигурировать несколько сигналов и состояний с доступной для поиска, поддающейся сортировке таблицей. Чтобы инициализировать блочное состояние или хранилище данных, можно использовать соответствующую вкладку (Состояния или Хранилища данных). Чтобы инициализировать сигнал, состояние или хранилище данных, можно использовать вкладку Parameters и найти строку, которая соответствует соответствующему блочному параметру.

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

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

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

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

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

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

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

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

Чтобы задать начальное значение, используйте Образцовый Проводник или команды MATLAB®, чтобы сделать следующее:

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

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

    S1 = Simulink.Signal;

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

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

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

    S1.CoderInfo.StorageClass = 'ExportedGlobal';

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

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

    В Образцовой Диалоговой панели Проводника, установленном Начальном значении к 0.5. Также используйте эту команду в командной строке:

    S1.InitialValue = '0.5'

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

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

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

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

  • Блокируйте состояния

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Начальное значение также используется в качестве значения сброса, если состояния параметра блока Enable подсистемы при включении или параметр блока Outport Вывод, когда отключено установлены в reset.

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

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

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

Похожие темы

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