2016-09-23 12 views
1

Я попытался вывести данные из MATLAB Function block в качестве сигнала шины. Поскольку теперь вы можете быть виртуальными и не виртуальными.MATLAB Выход функционального блока как виртуальный Шина

Обход

Я знаю, как создать его как невиртуальными: 1. Создать объект Bus в рабочей области;

bussignal(1) = Simulink.BusElement; 
bussignal(1).Name = 'Q'; 
MyBus = Simulink.Bus; 
MyBus.Elements = bussignal; 

2. Определение свойств вывода моего функционального блока как Bus: myBus в Model Explorer: enter image description here 3. Внутри моей функции я могу теперь использовать эту переменную D как структура. И я получаю невиртуальный выход: enter image description here

Вопрос: Как сделать его виртуальным? Я хочу использовать виртуальный, потому что он не создает копии данных и не создает структуры (исключая дополнительное выделение памяти), поэтому может работать быстрее для больших проектов. Я могу сделать много выходов, а затем использовать блок Bus Creator, но как это сделать программно внутри функции?

ответ

1

Функция MATLAB поддерживает только не виртуальные шины. Он преобразует входные сигналы виртуальной шины в не виртуальные шины. Смотрите документацию на

http://www.mathworks.com/help/simulink/ug/how-structure-inputs-and-outputs-interface-with-bus-signals.html

Если вам необходимо преобразовать тип входной шины на структуру для MATLAB кода в функциональном блоке MATLAB он не может быть виртуальным, что может иметь несмежную память.