Загрузка входных данных для шины, используя блоки элемента шины

Можно использовать блоки In Bus Element для загрузки внешних входных данных для шины. Использование блоков In Bus Element позволяет гибко проектировать и реализация внешние интерфейсы для шин. Можно использовать блок In Bus Element для загрузки данных для элемента массива шины или для загрузки данных для всей шины. Можно также использовать несколько блоков In Bus Element для выбора того же элемента шины.

В этом примере показано, как использовать блоки In Bus Element для загрузки входных данных для элементов шины. Чтобы загрузить данные для всей шины с помощью блока In Bus Element, необходимо задать тип данных для блока In Bus Element с помощью Simulink.Bus объект.

Откройте и осмотрите модель

Откройте ex_load_inbuselement модель.

open_system('ex_load_inbuselement.slx')

Один или несколько блоков In Bus Element могут задать порт в модели. The ex_load_inbuselement модель имеет один порт, InBus, заданный тремя блоками In Bus Element. Метка для каждого блока In Bus Element указывает элемент шины, выбранный блоком. The InBus порт соответствует шине, содержащей вложенную шину, a, с сигналами x и yи индивидуальный сигнал, b.

Используйте параметр Input на панели Data Import/Export, чтобы задать данные рабочей области для загрузки в качестве входов симуляции для порта в модели. Параметр Input для ex_load_inbuselement модель загружает переменную struct1, который сопоставляется с портом в соответствии с номером порта, заданным в Элемент In Bus диалогового окна блока.

Создание входных данных

Порты, которые загружают данные шины, принимают структуры, состоящие из отдельных timeseries, timetable, и matlab.io.datastore.SimulationDatastore объекты. Иерархия структуры должна совпадать с иерархией шины. Порты, которые используют блоки In Bus Element для выбора элементов шины, допускают частичную спецификацию и сверхспецификацию данных.

Этот пример создает структуру с помощью трех 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 в модели. Симулируйте модель и наблюдайте сигналы на блоках Dashboard Scope.

Частично задайте входные данные

Когда вы используете блоки In Bus Element для выбора элементов шины, можно частично задать данные с помощью структуры, которая не включает один или несколько выбранных элементов. Элементы без данных, определенных в структуре, используют наземные значения сигналов для симуляции.

Например, отредактируйте метку для блока In Bus Element, который выбирает элемент InBus.a.y так, что блок In Bus Element выбирает InBus.a.z. Структура, которая преобразуется в InBus порт не содержит поле для z во вложенной структуре, a. Когда вы моделируете модель, не изменяя структуру, Возможности панели мониторинга показывают заземление для InBus.a.z.

Измените блок порта In Bus Element, который выбирает InBus.a.z назад, чтобы выбрать InBus.a.y.

Переопределение входных данных

Когда вы используете блоки In Bus Element для выбора элементов шины, можно переопределить данные для порта. Переопределенные входные данные содержат сигналы, которые не выбираются ни одним из блоков In Bus Element в модели.

Например, измените метку для блока In Bus Element, который выбирает InBus.a.y для выбора InBus.b. Теперь ни один из блоков In Bus Element не выбирает InBus.a.y, в то время как структура все еще содержит данные для этого элемента.

Симулируйте модель и наблюдайте сигналы на блоках Dashboard Scope.

См. также

Блоки

Объекты

Функции

Похожие темы