Этот пример показывает, как использовать В блоках Элемента Шины, чтобы загрузить входные данные для шины. Используя В блоках Элемента Шины позволяет гибкость в разработке и реализации внешних интерфейсов для шин. Можно использовать блок In Bus Element, чтобы загрузить данные для элемента шины и загрузить данные для целой шины. Можно также использовать несколько В блоках Элемента Шины, чтобы выбрать тот же элемент шины.
Откройте модель ex_load_inbuselement
.
open_system('ex_load_inbuselement.slx')
Один или несколько В блоках Элемента Шины может задать порт в модели. Модель ex_load_inbuselement
имеет один порт, InBus
, заданный три В блоках Элемента Шины. Метка для каждого блока In Bus Element указывает на элемент шины, который выбирает блок. Порт InBus
соответствует шине, содержащей вложенную шину, a
, с сигналами x
и y
, и отдельный сигнал, b
.
Используйте Входной параметр на панели Импорта/Экспорта Данных, чтобы задать данные о рабочей области, чтобы загрузить как вход симуляции для порта в модели. Входной параметр для модели ex_load_inbuselement
загружает переменную struct1
, которая сопоставляет с портом согласно Номеру порта, заданному в диалоговом окне блока In Bus Element.
Порты, которые загружают данные о шине, принимают структуры, состоявшие из отдельного timeseries
, timetable
и объектов matlab.io.datastore.SimulationDatastore
. Иерархия структуры должна совпадать с иерархией шины. Порты, которые используют В блоках Элемента Шины, чтобы выбрать элементы шины, позволяют частичную спецификацию и сверхспецификацию данных.
Этот пример создает структуру с помощью трех сигналов timeseries
, которые соответствуют синусоиде, строке и константе.
time = linspace(0,10,11); sineData = sin(time); constData = 3*ones(11,1); lineData = linspace(0,10,11); tsSine = timeseries(sineData,time); tsConst = timeseries(constData,time); tsLine = timeseries(lineData,time);
Создайте структуру, struct1
, чтобы обеспечить входные данные для порта в модели. Имена полей структуры должны совпадать с именами элементов шины.
struct1.a.x = tsConst; struct1.a.y = tsLine; struct1.b = tsSine;
Данные, созданные в предыдущем разделе полностью, задают данные для сигналов, выбранных В блоках Элемента Шины в модели. Моделируйте модель и наблюдайте сигналы относительно блоков Осциллографа Инструментальной панели.
Когда вы используете В блоках Элемента Шины, чтобы выбрать элементы шины, можно частично задать данные с помощью структуры, которая не включает один или несколько выбранных элементов. Элементы без данных, заданных в структуре, используют наземные значения сигналов для симуляции.
Например, отредактируйте метку для блока In Bus Element, который выбирает элемент InBus.a.y
так, чтобы блок In Bus Element выбрал InBus.a.z
. Структура, которая сопоставляет с портом InBus
, не содержит поле для z
во вложенной структуре, a
. Когда вы моделируете модель, не изменяя структуру, Осциллограф Инструментальной панели показывает основание для InBus.a.z
.
Изменитесь В блокировке порта Элемента Шины, которая выбирает InBus.a.z
назад, чтобы выбрать InBus.a.y
.
Когда вы используете В блоках Элемента Шины, чтобы выбрать элементы шины, можно чрезмерно определить данные для порта. Чрезмерно определенные входные данные содержат сигналы, которые не выбраны ни одним из В блоках Элемента Шины в модели.
Например, измените метку для блока In Bus Element, который выбирает InBus.a.y
, чтобы выбрать InBus.b
. Теперь, ни один из В блоках Элемента Шины не выбирает InBus.a.y
, в то время как структура все еще содержит данные для того элемента.
Моделируйте модель и наблюдайте сигналы относительно блоков Осциллографа Инструментальной панели.