Задайте начальные условия для сигналов шины

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

Инициализация шины сигнала задает значения элемента шины, которые Simulink® использует для первого выполнения блока, который использует тот сигнал шины. По умолчанию начальное значение для элемента шины является наземным значением (представленный 0). Инициализация шины включает задающие ненулевые начальные условия (ICS).

Можно использовать функции инициализации сигнала шины к:

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

  • Примените различное начальное условие для каждого сигнала в шине.

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

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

Блоки, которые поддерживают инициализацию сигнала шины

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

  • Имеет начальное значение или начальный блочный параметр условия

  • Поддержки соединяют шиной сигналы

Эти блоки поддерживают инициализацию сигнала шины:

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

  • Memory

  • Слияние

  • Выходной порт (когда блок в условно выполняемом контексте),

  • Переход уровня

  • Единичная задержка

Например, блок Unit Delay является способным к шине блоком. Его диалоговое окно Block Parameters имеет параметр Начальных условий.

Вы не можете инициализировать шину, которая имеет:

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

  • Основанные на кадре сигналы

Установите диагностику поддерживать инициализацию шины

Чтобы включить шину сигнализируют об инициализации, прежде чем вы запустите моделирование, установите параметр конфигурации обнаружения инициализации Underspecified на simplified.

Создайте начальные структуры условия

Можно создать частичные или полные структуры начального условия (IC), чтобы представлять начальные значения для сигнала шины. Чтобы создать структуру IC, используйте один из этих подходов:

  • Задайте структуру MATLAB® в основе MATLAB или рабочем пространстве модели Simulink. Можно вручную задать структуру, или альтернативно для полных структур, можно использовать функцию Simulink.Bus.createMATLABstruct.

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

Для получения информации об определении структур MATLAB смотрите, Создают Массив структур (MATLAB).

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

  • Имя

  • Размерность

  • Сложность

Например, если вы задаете элемент шины, чтобы быть действительным [2x2], двойной массив, затем в структуре IC, задает значение, чтобы инициализировать тот элемент шины, чтобы быть действительным [2x2] двойной массив.

Явным образом задайте поля в структуре IC для каждого элемента шины, который имеет перечислимое (enum) тип данных.

Управляйте типами данных полей структуры

Если какой-либо из элементов сигнала целевой шины использует тип данных кроме double, можно использовать различные методы, чтобы управлять типами данных полей начальных структур условия. Метод, который вы выбираете, может влиять на эффективность и удобочитаемость сгенерированного кода. Смотрите Типы данных Управления Начальных Полей Структуры Условия.

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

Полная начальная структура условия обеспечивает начальное значение для каждого элемента сигнала шины. Структура IC зеркально отражает иерархию шины и отражает атрибуты элементов шины.

Определение полных структур во время генерации кода предлагает эти преимущества:

  • Генерирует больше читаемого кода

  • Поддерживает стиль моделирования, который явным образом инициализирует все сигналы

Используйте функцию Simulink.Bus.createMATLABStruct, чтобы оптимизировать создание полной структуры условия начальной буквы MATLAB с той же иерархией, именами и атрибутами данных как сигнал шины. Эта функция заполняет все элементы, которые вы не задаете с наземными значениями для тех элементов.

Можно использовать несколько различных видов входного параметра с функцией, включая:

  • Имя объекта шины

  • Массив указателей порта

Можно вызвать функцию из Редактора Шины. Выберите объект шины, для которого вы хотите создать полную структуру MATLAB, и затем выбрать File> пункт меню структуры Create a MATLAB.

Чтобы обнаружить, когда параметры структуры не сопоставимы в форме (иерархия и имена) со связанным сигналом шины в Редакторе Simulink, используют Анализ> Образцовый Советник> продуктом> использование параметра структуры Simulink Check с проверкой сигналов шины. Эта проверка идентифицирует частичные структуры IC.

После того, как вы создадите структуру, можно отредактировать ее в редакторе MATLAB.

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

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

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

Когда вы задаете частичную структуру IC:

  • Включайте только поля, которые находятся в шине.

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

  • Заставьте поле в структуре IC соответствовать уровню вложенности элемента шины.

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

Примечание

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

Предположим, что у вас есть шина, Top, состоявший из трех элементов: A, B и C, с этими характеристиками:

  • A является вложенной шиной с двумя элементами сигнала.

  • B является единственным сигналом.

  • C является вложенной шиной, которая включает, соединяют шиной A как вложенную шину.

Модель ex_busic включает вложенную шину Top. Это - то, как модель появляется после того, как она была обновлена. Open the model.

Вот сводные данные иерархии шины Top и типа данных, размерности и сложности элементов шины.

Top
   A (sub1)
      A1 (double)
      A2 (int8, 5x1, complex)
   B (double)
   C (sub2)
      C1 (int16)
      C2 (sub1)  
         A1 (double)
         A2 (int8, 5x1, complex)

В этих примерах K является структурой IC, заданной для начального значения блока Unit Delay. Структура IC соответствует шине Top в модели ex_busic. Вот некоторые допустимые начальные спецификации условия.

Допустимый синтаксисОписание
K. A. A1 = 3

Инициализируйте элемент шины Top.A.A1 с помощью значения 3.

K = struct('C',struct('C1',int16(4)))

Элементом шины Top.C.C1 является int16. Соответствующее поле структуры явным образом задает int16(4). Также вы могли задать значение поля как 4, не задавая явный тип данных.

K = struct('B',3,'A',struct('A1',4))

Соедините шиной элементы, которые Top.B и Top.A на том же уровне вложенности в шине. Для элементов шины на том же уровне вложенности не имеет значения порядок соответствующих полей структуры.

Недопустимые частичные структуры IC

В следующих примерах K является структурой IC, заданной для начального значения блока Unit Delay. Структура IC соответствует шине Top в модели ex_busic.

Эти три начальных спецификации условия не допустимы:

Недопустимый синтаксисОбоснуйте, что синтаксис недопустим
K. A. A2 = 3

Размерность значения и сложность не соответствуют. Top.A.A2 элемента шины является 5x1, но K.A.A2 является 1x1; Top.A.A2 является комплексным, но K.A.A2 действителен.

K. C. C2 = 3

Вы не можете использовать скалярное значение, чтобы инициализировать подструктуры IC.

K = struct('B',3,'X',4)

Вы не можете задать поля, которые не находятся в шине (X не существует в шине).

Инициализируйте сигналы шины Используя блочные параметры

Инициализируйте сигнал шины путем установки начального параметра условия для блока, который получает сигнал шины, как введено, и это поддерживает инициализацию шины (см. Блоки Что Инициализация Сигнала Шины Поддержки).

Например, диалоговое окно Block Parameters для блока Unit Delay имеет параметр Начальных условий.

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

Все три подхода требуют, чтобы вы задали структуру IC (см., Создают Начальные Структуры Условия). Вы не можете задать ненулевое скалярное значение или любой другой тип значения кроме 0, структуры IC или объекта Simulink.Parameter инициализировать сигнал шины.

При определении структуры IC, когда переменная MATLAB, вместо того, чтобы задать структуру IC непосредственно в диалоговом окне Block Parameters предлагает несколько преимуществ, включая:

  • Повторное использование структуры IC для нескольких блоков

  • Используя структуру IC как настраиваемый параметр в сгенерированном коде

Структура MATLAB для инициализации

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

Например, в параметре Начальных условий блока Unit Delay, вы могли ввести в структуре.

Переменная MATLAB для инициализации

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

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

K = struct('A', struct('A1', 3), 'B', 4);

Можно затем задать структуру K как параметр Начальных условий блока Unit Delay:

Simulink.Parameter для инициализации

Можно инициализировать сигнал шины использование объекта Simulink.Parameter, который использует структуру IC для свойства Value.

Например, вы могли задать частичную структуру P в базовом рабочем пространстве (отражающий модель ex_busic, обсужденную в предыдущем разделе):

P = Simulink.Parameter;
P.DataType = 'Bus: Top';
P.Value = Simulink.Bus.createMATLABStruct('Top');
P.Value.A.A1 = 3;
P.Value.B = 5; 

Можно затем задать структуру P как параметр Начальных условий блока Unit Delay:

Смотрите также

Блоки

Функции

Классы

Похожие темы

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