@@ -5,19 +5,22 @@ using OrdinaryDiffEq
5
5
using ModelingToolkit: t_nounits as t, D_nounits as D, renamespace,
6
6
NAMESPACE_SEPARATOR as NS
7
7
8
- @mtkmodel TwoComponent begin
9
- @parameters begin
10
- V = 1.0
8
+ @mtkmodel SignalInterface begin
9
+ @components begin
10
+ output = RealOutput ()
11
11
end
12
+ end
13
+
14
+ @mtkmodel TwoComponent begin
12
15
@components begin
13
16
component1 = OnePort ()
14
17
component2 = OnePort ()
15
18
source = Voltage ()
16
- constant = Constant (k = V )
19
+ signal = SignalInterface ( )
17
20
ground = Ground ()
18
21
end
19
22
@equations begin
20
- connect (constant . output, source. V)
23
+ connect (signal . output. u , source. V. u )
21
24
connect (source. p, component1. p)
22
25
connect (component1. n, component2. p)
23
26
connect (component2. n, source. n, ground. g)
49
52
@named templated = TwoComponent ()
50
53
@named component1 = Resistor (R = 1.0 )
51
54
@named component2 = Capacitor (C = 1.0 , v = 0.0 )
55
+ @named signal = Constant (k = 1.0 )
52
56
rsys = substitute_component (templated, templated. component1 => component1)
53
57
rcsys = substitute_component (rsys, rsys. component2 => component2)
58
+ rcsys = substitute_component (rcsys, rcsys. signal => signal)
54
59
55
60
@named reference = RC ()
56
61
57
62
sys1 = structural_simplify (rcsys)
58
63
sys2 = structural_simplify (reference)
59
64
@test isequal (unknowns (sys1), unknowns (sys2))
60
- @test isequal (observed (sys1), observed (sys2))
61
65
@test isequal (equations (sys1), equations (sys2))
62
66
63
67
prob1 = ODEProblem (sys1, [], (0.0 , 10.0 ))
0 commit comments