@@ -5,19 +5,22 @@ using OrdinaryDiffEq
55using ModelingToolkit: t_nounits as t, D_nounits as D, renamespace,
66 NAMESPACE_SEPARATOR as NS
77
8- @mtkmodel TwoComponent begin
9- @parameters begin
10- V = 1.0
8+ @mtkmodel SignalInterface begin
9+ @components begin
10+ output = RealOutput ()
1111 end
12+ end
13+
14+ @mtkmodel TwoComponent begin
1215 @components begin
1316 component1 = OnePort ()
1417 component2 = OnePort ()
1518 source = Voltage ()
16- constant = Constant (k = V )
19+ signal = SignalInterface ( )
1720 ground = Ground ()
1821 end
1922 @equations begin
20- connect (constant . output, source. V)
23+ connect (signal . output. u , source. V. u )
2124 connect (source. p, component1. p)
2225 connect (component1. n, component2. p)
2326 connect (component2. n, source. n, ground. g)
4952 @named templated = TwoComponent ()
5053 @named component1 = Resistor (R = 1.0 )
5154 @named component2 = Capacitor (C = 1.0 , v = 0.0 )
55+ @named signal = Constant (k = 1.0 )
5256 rsys = substitute_component (templated, templated. component1 => component1)
5357 rcsys = substitute_component (rsys, rsys. component2 => component2)
58+ rcsys = substitute_component (rcsys, rcsys. signal => signal)
5459
5560 @named reference = RC ()
5661
5762 sys1 = structural_simplify (rcsys)
5863 sys2 = structural_simplify (reference)
5964 @test isequal (unknowns (sys1), unknowns (sys2))
60- @test isequal (observed (sys1), observed (sys2))
6165 @test isequal (equations (sys1), equations (sys2))
6266
6367 prob1 = ODEProblem (sys1, [], (0.0 , 10.0 ))
0 commit comments