Инициализация шины сигнала является специальной формой инициализации сигнала. Для получения общей информации об инициализации сигналов, смотрите, Инициализируют Сигналы и Дискретные состояния. Для получения дополнительной информации об инициализации массива сигналов шин, смотрите, Инициализируют Массивы Шин.
Инициализация шины сигнала задает значения элемента шины, которые Simulink® использует для первого выполнения блока, который использует тот сигнал шины. По умолчанию начальное значение для элемента шины является наземным значением (представленный 0
). Инициализация шины включает задающие ненулевые начальные условия.
Можно использовать функции инициализации сигнала шины к:
Задайте начальные условия для сигналов, которые имеют различные типы данных.
Примените различное начальное условие для каждого сигнала в шине.
Задайте начальные условия для подмножества сигналов в шине, не задавая начальные условия для всех сигналов.
Используйте те же начальные условия для нескольких блоков, сигналов или моделей.
Можно инициализировать значения сигналов шины, которые вводят к блоку, если тот блок удовлетворяет обоим из этих условий:
Имеет начальное значение или начальные параметры блоков условия
Поддержки соединяют шиной сигналы
Эти блоки поддерживают инициализацию сигнала шины:
Память хранилища данных
Memory
Слияние
Выходной порт (когда блок в условно выполняемом контексте),
Переход уровня
Единичная задержка
Например, блок Unit Delay является способным к шине блоком. Его диалоговое окно Block Parameters имеет параметр Initial conditions.
Вы не можете инициализировать шину, которая имеет:
Сигналы переменного размера
Основанные на кадре сигналы
Чтобы включить шину сигнализируют об инициализации, прежде чем вы запустите симуляцию, установите параметр конфигурации обнаружения инициализации 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 structure.
Чтобы обнаружить, когда параметры структуры не сопоставимы в форме (иерархия и имена) со связанным сигналом шины в Редакторе Simulink, используют Analysis> Model Advisor> By Product> использование параметра структуры Проверки Simulink с проверкой сигналов шины. Эта проверка идентифицирует частичные структуры IC.
После того, как вы создадите структуру, можно отредактировать ее в редакторе MATLAB.
Частичная структура IC обеспечивает начальные значения для подмножества элементов сигнала шины. Если вы используете частичную структуру IC, во время симуляции, Simulink создает полную структуру IC, чтобы представлять все элементы сигнала шины. Simulink присваивает соответствующее наземное значение каждому элементу, для которого частичная структура IC явным образом не присваивает значение.
Определение частичных структур для значений параметров блоков может быть полезным во время итеративного процесса создания модели. Частичные структуры позволяют вам фокусироваться на подмножестве сигналов в шине. Когда вы используете частичные структуры, Simulink инициализирует незаданные сигналы неявно.
Когда вы задаете частичную структуру IC:
Включайте только поля, которые находятся в шине.
Не используйте одно или несколько полей, которые находятся в шине.
Заставьте поле в структуре IC соответствовать уровню вложенности элемента шины.
На том же уровне вложенности и в структуре и в шине, опционально задайте поля структуры в различном порядке, чем элементы шины.
Значение структуры IC должно лечь в минимуме проекта и максимальной области значений соответствующего элемента шины. Simulink выполняет эту проверку диапазона, когда вы делаете схему обновления или моделируете модель.
Предположим, что у вас есть шина, Top
, состоявший из трех элементов: A
, B
и C
, с этими характеристиками:
A
является вложенной шиной с двумя элементами сигнала.
B
является одним сигналом.
C
является вложенной шиной, которая включает, соединяют шиной A
как вложенную шину.
Модель ex_bus_initial_conditions
включает вложенную шину Top
. Это - то, как модель появляется после того, как она была обновлена.
Вот сводные данные иерархии шины 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_bus_initial_conditions
. Вот некоторые допустимые начальные спецификации условия.
Допустимый синтаксис | Описание |
---|---|
K.A.A1 = 3 |
Инициализируйте элемент шины |
K = struct('C',struct('C1',int16(4))) |
Элементом шины |
K = struct('B',3,'A',struct('A1',4)) |
Соедините шиной элементы |
В следующих примерах K
является структурой IC, заданной для начального значения блока Unit Delay. Структура IC соответствует шине Top
в модели ex_bus_initial_conditions
.
Эти три начальных спецификации условия не допустимы:
Недопустимый синтаксис | Обоснуйте, что синтаксис недопустим |
---|---|
K.A.A2 = 3 |
Размерность значения и сложность не соответствуют. |
K.C.C2 = 3 |
Вы не можете использовать скалярное значение, чтобы инициализировать подструктуры IC. |
K = struct('B',3,'X',4) |
Вы не можете задать поля, которые не находятся в шине ( |
Инициализируйте сигнал шины путем установки начального параметра условия для блока, который получает сигнал шины, как введено, и это поддерживает инициализацию шины (см. Блоки Что Инициализация Сигнала Шины Поддержки).
Например, диалоговое окно Block Parameters для блока Unit Delay имеет параметр Initial conditions.
Для блока, который поддерживает инициализацию сигнала шины, можно заменить значение по умолчанию 0
с помощью одного из этих подходов:
Все три подхода требуют, чтобы вы задали структуру IC (см., Создают Начальные Структуры Условия). Вы не можете задать ненулевое скалярное значение или любой другой тип значения кроме 0
, структуры IC или объекта Simulink.Parameter
инициализировать сигнал шины.
При определении структуры IC, когда переменная MATLAB, вместо того, чтобы задать структуру IC непосредственно в диалоговом окне Block Parameters предлагает несколько преимуществ, включая:
Повторное использование структуры IC для нескольких блоков
Используя структуру IC как настраиваемый параметр в сгенерированном коде
Можно инициализировать сигнал шины использование структуры MATLAB, которая явным образом задает начальные условия для сигнала шины.
Например, в параметре Initial conditions блока Unit Delay, вы могли ввести в структуре.
Можно инициализировать сигнал шины использование переменной MATLAB, которую вы задаете как структура IC с соответствующими значениями.
Например, вы могли задать следующую частичную структуру в базовом рабочем пространстве:
K = struct('A', struct('A1', 3), 'B', 4);
Можно затем задать структуру K
как параметр Initial conditions блока Unit Delay:
Simulink.Parameter
для инициализацииМожно инициализировать сигнал шины использование объекта Simulink.Parameter
, который использует структуру IC для свойства Value
.
Например, вы могли задать частичную структуру P
в базовом рабочем пространстве (отражающий модель ex_bus_initial_conditions
, обсужденную в предыдущем разделе):
P = Simulink.Parameter; P.DataType = 'Bus: Top'; P.Value = Simulink.Bus.createMATLABStruct('Top'); P.Value.A.A1 = 3; P.Value.B = 5;
Можно затем задать структуру P
как параметр Initial conditions блока Unit Delay:
Simulink.BlockDiagram.addBusToVector
| Simulink.Bus.cellToObject
| Simulink.Bus.createMATLABStruct
| Simulink.Bus.createObject
| Simulink.Bus.objectToCell
| Simulink.Bus.save