Simulink add a line between ports programatically
8 次查看(过去 30 天)
显示 更早的评论
Hi,
I want to add a line between two ports in Simulink (Simscape blocks). I am using add_line to achieve that. The issue I have is that in some cases I get an error "The second port already has a line connection". I have tried using the syntax with position as well as with ports. This somehow makes sense, what I want to achieve is to be able to detect scenarios where the line already exists and still make a connection between the lines connected to the ports. I have not found a way to do that. Normally when I use the add_line with the positions of the ports, I do not see this exception, nonetheless the new line is not added (rather you see it in red). Do you have any ideas?
0 个评论
回答(1 个)
Fangjun Jiang
2020-4-20
A line has a source port and a destination port. At the source port, the port can have multiple lines. But at the destination port, you can't have multiple lines. (A signal can go to multiple destinations but a signal can only have one source). So to make your script robust, you have to check first whether the destination port already has a line handle. If it does, delete that line first and then do add_line().
9 个评论
Fangjun Jiang
2020-4-30
I dropped a Battery, Resistor, Resistor1 to a model and ran below. I don't see the problem even if I put a red line there first manually.
add_line(model,'Battery/LConn1','Resistor/LConn1')
add_line(model,'Battery/RConn1','Resistor/RConn1')
add_line(model,'Resistor1/RConn1','Resistor/RConn1')
add_line(model,'Resistor1/LConn1','Resistor/LConn1')
add_line(model,'Resistor1/LConn1','Resistor/RConn1')
Sergey Kasyanov
2021-3-3
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Nonlinear Operators 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!