@@ -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