How to transfer arrays in bus? Error is, destination block requires a bus signal with different structure than the signal connected to it

10 次查看(过去 30 天)

回答(1 个)

Githin George
Githin George 2023-12-15
Hi Sumeet,
It is my understanding that you are using the legacy tool to integrate C function whose arguments are pointers to structures, and you are facing issues related to signal propagation.
You can make the following changes in your MATLAB script and Simulink model to resolve the issue:
  • Change line 13 in the script Test_Integ.m to
ad2.OutputFcnSpec = ['void myFcn(sigStructType u1[1], sigStructType y1[1])'];
% as the syntax `[1]` denotes that the argument is a pointer.
  • Delete the block “Bus Creator2” as the output of “Constant” block is already a 2x1 double vector.
  • Change the output data type of the block “Bus Creator1” to “Bus: sigStructType” in the block parameters and match the name of the 2 input signals to the corresponding names in “sigStructType” struct.
  • On simulation, you can see the outputs in the display block.
I hope the above steps help in resolving your issue.

类别

Help CenterFile Exchange 中查找有关 Simulink Functions 的更多信息

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by