MATLAB功能块输出为虚拟总线

时间:2016-09-23 07:58:11

标签: matlab data-structures virtual simulink bus

我尝试从MATLAB Function block输出数据作为总线信号。就像你现在一样,它可以是虚拟的,也可以是非虚拟的。

解决方法

我知道如何将其创建为非虚拟化:  1.在工作区创建Bus对象;

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

2。在Model Explorer中将我的功能块的输出属性定义为Bus: myBusenter image description here 3.在我的函数内部,我现在可以使用此变量D作为结构。 我得到非虚拟输出: enter image description here

问题: 如何让它虚拟? 我想使用虚拟,因为它不会创建数据副本,也不会创建结构(避免额外的内存分配),因此可以更快地为大项目工作。 我可以制作大量的输出,然后使用Bus Creator块,但如何在Function?

中以编程方式进行

1 个答案:

答案 0 :(得分:1)

MATLAB Function仅支持非虚拟总线。它将虚拟总线信号输入转换为非虚拟总线。请参阅

中的文档

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

当您需要在MATLAB功能块中将输入总线类型转换为MATLAB代码的结构时,它不能是具有非连续内存的虚拟。