Инициализация шины является специальной формой инициализации сигнала. Для получения общей информации об инициализации сигналов, смотрите, Инициализируют Сигналы и Дискретные состояния. Для получения дополнительной информации об инициализации массивов шин, смотрите, Инициализируют Массивы Шин.
Инициализация шины задает значения элемента шины что Simulink® использование для первого выполнения блока, который использует ту шину. По умолчанию начальное значение для элемента шины является наземным значением (представленный 0
). Инициализация шины включает задающие ненулевые начальные условия.
Можно использовать функции инициализации шины к:
Задайте начальные условия для сигналов, которые имеют различные типы данных.
Примените различное начальное условие для каждого элемента в шине.
Задайте начальные условия для подмножества элементов в шине, не задавая начальные условия для всех элементов.
Используйте те же начальные условия для нескольких блоков, сигналов или моделей.
Можно инициализировать значения шины, которые вводят с блоком, если тот блок удовлетворяет обоим из этих условий:
Имеет начальное значение или начальные параметры блоков условия
Шины поддержек
Эти блоки поддерживают инициализацию шины:
Data Store Memory
IC
Memory
Merge
Outport (когда блок в условно выполняемом контексте),
Receive
Rate Transition
Unit Delay
Например, блок Unit Delay является способным к шине блоком. Его диалоговое окно Block Parameters имеет параметр Initial conditions.
Вы не можете инициализировать шину, которая имеет:
Сигналы переменного размера
Основанные на системе координат сигналы
Чтобы включить инициализацию шины, прежде чем вы запустите симуляцию, устанавливают параметр конфигурации обнаружения инициализации Underspecified на simplified
.
Можно создать частичные или полные начальные структуры условия, чтобы представлять начальные значения для шины. Чтобы создать начальную структуру условия, используйте один из этих подходов:
Задайте MATLAB® структура в основе MATLAB или рабочем пространстве модели Simulink. Можно вручную задать структуру, или альтернативно для полных структур, можно использовать Simulink.Bus.createMATLABstruct
функция.
В диалоговом окне Block Parameters для блока, который поддерживает инициализацию шины для начального параметра условия, задают выражение, которое оценивает к структуре.
Для получения информации об определении структур MATLAB смотрите Массивы структур.
Поле, которое вы задаете в начальной структуре условия, должно совпадать с этими атрибутами данных элемента шины точно:
Имя
Размерность
Сложность
Например, если вы задаете элемент шины, чтобы быть действительным [2x2], двойной массив, затем в начальной структуре условия, задает значение, чтобы инициализировать тот элемент шины, чтобы быть действительным [2x2] двойной массив.
Явным образом задайте поля в начальной структуре условия для каждого элемента шины, который имеет перечислимое (enum
тип данных.
Если какой-либо из элементов целевой шины использует тип данных кроме double
, можно использовать различные методы, чтобы управлять типами данных полей начальных структур условия. Метод, который вы выбираете, может влиять на КПД и удобочитаемость сгенерированного кода. Смотрите Типы данных Управления Начальных Полей Структуры Условия.
Полная начальная структура условия вводит начальное значение для каждого элемента шины. Начальная структура условия зеркально отражает иерархию шины и отражает атрибуты элементов шины.
Определение полных структур во время генерации кода предлагает эти преимущества:
Генерирует больше читаемого кода
Поддерживает стиль моделирования, который явным образом инициализирует все сигналы
Используйте Simulink.Bus.createMATLABStruct
функционируйте, чтобы оптимизировать создание полной структуры условия начальной буквы MATLAB с той же иерархией, именами и атрибутами данных как шина. Эта функция заполняет все элементы, которые вы не указываете с наземными значениями для тех элементов.
Можно использовать несколько различных видов входа с функцией, включая:
Simulink.Bus
имя объекта
Массив указателей порта
Можно вызвать функцию из Редактора Шины. Выберите Bus
объект, для которого вы хотите создать полную структуру MATLAB, и затем выбрать пункт меню File> Create a MATLAB structure.
Чтобы обнаружить, когда параметры структуры не будут сопоставимы в форме (иерархия и имена) со связанной шиной, используйте Model Advisor.
На вкладке Modeling нажмите Model Advisor.
Нажмите OK.
Под By Task> Modeling Signals and Parameters using Buses, выберите использование параметра структуры Check с сигналами шины.
Нажмите кнопку Run This Check.
Model Advisor идентифицирует частичные начальные структуры условия.
После того, как вы создадите структуру, можно отредактировать ее в редакторе MATLAB.
Частичная начальная структура условия вводит начальные значения для подмножества элементов шины. Если вы используете частичную начальную структуру условия, в процессе моделирования, Simulink создает полную начальную структуру условия, чтобы представлять все элементы шины. Simulink присваивает соответствующее наземное значение каждому элементу, для которого частичная начальная структура условия явным образом не присваивает значение.
Определение частичных структур для значений параметров блоков может быть полезным во время итеративного процесса создания модели. Частичные структуры позволяют вам фокусироваться на подмножестве сигналов в шине. Когда вы используете частичные структуры, Simulink инициализирует незаданные сигналы неявно.
Когда вы задаете частичную начальную структуру условия:
Включайте только поля, которые находятся в шине.
Не используйте одно или несколько полей, которые находятся в шине.
Заставьте поле в начальной структуре условия соответствовать уровню вложенности элемента шины.
На том же уровне вложенности и в структуре и в шине, опционально задайте поля структуры в различном порядке, чем элементы шины.
Примечание
Значение начальной структуры условия должно лечь в минимуме проекта и максимальной области значений соответствующего элемента шины. 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
начальная структура условия, заданная для начального значения блока Unit Delay. Начальная структура условия соответствует 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
начальная структура условия, заданная для начального значения блока Unit Delay. Начальная структура условия соответствует Top
соедините шиной в ex_bus_initial_conditions
модель.
Эти три первоначальных технических требований условия не допустимы:
Недопустимый синтаксис | Обоснуйте, что синтаксис недопустим |
---|---|
K.A.A2 = 3 | Размерность значения и сложность не соответствуют. Элемент шины |
K.C.C2 = 3 | Вы не можете использовать скалярное значение, чтобы инициализировать начальные подструктуры условия. |
K = struct('B',3,'X',4) | Вы не можете задать поля, которые не находятся в шине ( |
Инициализируйте шину путем установки начального параметра условия для блока, который получает шину, как введено, и это поддерживает инициализацию шины (см. Блоки Что Инициализация Шины Поддержки).
Например, диалоговое окно Block Parameters для блока Unit Delay имеет параметр Initial conditions.
Для блока, который поддерживает инициализацию шины, можно заменить значение по умолчанию 0
использование одного из этих подходов:
Все три подхода требуют, чтобы вы задали начальную структуру условия (см., Создают Начальные Структуры Условия). Вы не можете задать ненулевое скалярное значение или любой другой тип значения кроме 0
, начальная структура условия или Simulink.Parameter
объект инициализировать шину.
При определении начальной структуры условия, когда переменная MATLAB, вместо того, чтобы задать начальную структуру условия непосредственно в диалоговом окне Block Parameters предлагает несколько преимуществ, включая:
Повторное использование начальной структуры условия для нескольких блоков
Используя начальную структуру условия как настраиваемый параметр в сгенерированном коде
Можно инициализировать шину с помощью структуры MATLAB, которая явным образом задает начальные условия для шины.
Например, в параметре Initial conditions блока Unit Delay, вы могли ввести в структуре.
Можно инициализировать шину с помощью переменной MATLAB, которую вы задаете как начальная структура условия с соответствующими значениями.
Например, вы могли задать следующую частичную структуру в базовом рабочем пространстве:
K = struct('A', struct('A1', 3), 'B', 4);
Можно затем задать K
структура как параметр Initial conditions блока Unit Delay:
Simulink.Parameter
Объект для инициализацииМожно инициализировать шину с помощью Simulink.Parameter
возразите, что использует начальную структуру условия для 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