Skip to content

Commit 4381715

Browse files
committed
Update electrical_components
1 parent ea46142 commit 4381715

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

examples/electrical_components.jl

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ using ModelingToolkit, OrdinaryDiffEq
44
# Basic electric components
55
@parameters t
66
@connector function Pin(;name)
7-
@variables v(t) i(t)
8-
ODESystem(Equation[], t, [v, i], [], name=name, defaults=[v=>1.0, i=>1.0])
7+
sts = @variables v(t)=1.0 i(t)=1.0
8+
ODESystem(Equation[], t, sts, [], name=name)
99
end
1010

1111
@namespace function ModelingToolkit.connect(::Type{Pin}, ps...)
@@ -27,58 +27,54 @@ end
2727
end
2828

2929
@namespace function ConstantVoltage(;name, V = 1.0)
30-
val = V
3130
@named p = Pin()
3231
@named n = Pin()
33-
@parameters V
32+
ps = @parameters V=V
3433
eqs = [
3534
V ~ p.v - n.v
3635
0 ~ p.i + n.i
3736
]
38-
ODESystem(eqs, t, [], [V], systems=[p, n], defaults=Dict(V => val), name=name)
37+
ODESystem(eqs, t, [], ps, systems=[p, n], name=name)
3938
end
4039

4140
@namespace function Resistor(;name, R = 1.0)
42-
val = R
4341
@named p = Pin()
4442
@named n = Pin()
45-
@variables v(t)
46-
@parameters R
43+
sts = @variables v(t)
44+
ps = @parameters R=R
4745
eqs = [
4846
v ~ p.v - n.v
4947
0 ~ p.i + n.i
5048
v ~ p.i * R
5149
]
52-
ODESystem(eqs, t, [v], [R], systems=[p, n], defaults=Dict(R => val), name=name)
50+
ODESystem(eqs, t, sts, ps, systems=[p, n], name=name)
5351
end
5452

5553
@namespace function Capacitor(;name, C = 1.0)
56-
val = C
5754
@named p = Pin()
5855
@named n = Pin()
59-
@variables v(t)
60-
@parameters C
56+
sts = @variables v(t)
57+
ps = @parameters C=C
6158
D = Differential(t)
6259
eqs = [
6360
v ~ p.v - n.v
6461
0 ~ p.i + n.i
6562
D(v) ~ p.i / C
6663
]
67-
ODESystem(eqs, t, [v], [C], systems=[p, n], defaults=Dict(C => val), name=name)
64+
ODESystem(eqs, t, sts, ps, systems=[p, n], name=name)
6865
end
6966

7067
@namespace function Inductor(; name, L = 1.0)
71-
val = L
7268
@named p = Pin()
7369
@named n = Pin()
74-
@variables v(t) i(t)
75-
@parameters L
70+
sts = @variables v(t) i(t)
71+
ps = @parameters L=L
7672
D = Differential(t)
7773
eqs = [
7874
v ~ p.v - n.v
7975
0 ~ p.i + n.i
8076
i ~ p.i
8177
D(i) ~ v / L
8278
]
83-
ODESystem(eqs, t, [v, i], [L], systems=[p, n], defaults=Dict(L => val), name=name)
79+
ODESystem(eqs, t, sts, ps, systems=[p, n], name=name)
8480
end

0 commit comments

Comments
 (0)