How do you add physical signal lines programmatically?

5 views (last 30 days)
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

Accepted Answer

Isaac Friedman
Isaac Friedman on 30 Jan 2020
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.

More Answers (2)

J Chen
J Chen on 30 Jan 2020
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
Maximilian Bleicher on 29 Mar 2020
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 Comment
Maximilian Bleicher
Maximilian Bleicher on 29 Mar 2020
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);

Sign in to comment.

Categories

Find more on Physical Units in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!