How do you add physical signal lines programmatically?

16 次查看(过去 30 天)
I just need to connect a Simulink-PS Converter to a Connector port in a subsystem, but the usual add_line function doesn't work. It returns an error, saying the object doesn't exist.
add_line('mymodel/mySubsystem','C_1','Conn_1', 'autorouting', 'on');
This is the specific error:
Invalid Simulink object name: C_1/1

采纳的回答

Isaac Friedman
Isaac Friedman 2020-1-30
Figured it out. Simscape blocks use "/RConn1", "/LConn1", etc. to denote ports, while Simulink blocks use "/1", "/2", etc. The converter blocks use both depending on which side you're referencing.

更多回答(2 个)

J Chen
J Chen 2020-1-30
use h1 = get_param('mymodel/mySubsystem/C_1','PortHandles'); to get the port handles. Use add_line to draw line between the handles. Refer to Connect Blocks Using Port Handles section at https://www.mathworks.com/help/simulink/slref/add_line.html?searchHighlight=add_line&s_tid=doc_srchtitle

Maximilian Bleicher
Hi,
i'm facing the same issue. But neither of these variants work:
'PS-Simulink Converter1/1' or 'PS-Simulink Converter1/LConn1'
Is there a simple way to display all ports? What does the following information tell me?
get_param('model/PS-Simulink Converter1','PortHandles')
Inport: []
Outport: 91.0541
Enable: []
Trigger: []
State: []
LConn: 92.0541
RConn: []
Ifaction: []
Reset: []
Thank you in advance
  1 个评论
Maximilian Bleicher
I just figured it out. As long as the connection rules are fulfilled you just have to find the right connectors.
In this case, the following solution works:
port1 = 'Voltage Sensor/RConn1';
port2 = 'PS-Simulink Converter1/LConn1';
add_line(sys,port1,port2);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Electromagnetic Models 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by