Можно использовать В блоках Элемента Шины, чтобы загрузить внешние входные данные для шины. Используя В блоках Элемента Шины позволяет гибкость в разработке и реализации внешних интерфейсов для шин. Можно использовать блок In Bus Element, чтобы загрузить данные для элемента шины или загрузить данные для целой шины. Можно также использовать несколько В блоках Элемента Шины, чтобы выбрать тот же элемент шины.
То В этом примере показано, как использовать В Элементе Шины, блокируется, чтобы загрузить входные данные для элементов шины. Чтобы загрузить данные для целой шины с помощью блока In Bus Element, необходимо задать тип данных для блока In Bus Element с помощью Simulink.Bus
объект.
Откройте 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
, который сопоставляет с портом согласно Номеру порта, заданному в В диалоговом окне блока Элемента Шины.
Порты, которые загружают данные о шине, принимают структуры, состоявшие из отдельного timeseries
расписание
, и 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
, в то время как структура все еще содержит данные для того элемента.
Симулируйте модель и наблюдайте сигналы относительно блоков Осциллографа Инструментальной панели.