Skip to content

Commit 59d2372

Browse files
author
Brad Carman
committed
mechanical added
1 parent 1cba906 commit 59d2372

File tree

19 files changed

+1428
-253
lines changed

19 files changed

+1428
-253
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ Examples can be found in the "examples" folder.
77

88
### Hydraulic Example
99

10-
![example1](https://user-images.githubusercontent.com/40798837/228676202-c13b93c2-d023-4b00-bed8-c8440cb8ca57.png)
10+
![example2](examples/hydraulic.svg)
1111

12-
### RC Circuit Example
12+
### Electrical Example
1313

1414
![example2](examples/electrical.svg)
1515

16+
### Mechanical Example
17+
18+
![example3](examples/mechanical.svg)
1619

1720
# Tutorial
1821

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
connect(bv.flange, pt2.p2)
2+
connect(sv.flange_a, pt2.p1)
3+
connect(dv.flange_a, pt2.p3)
4+
connect(dv.flange_b, pt1.p3)
5+
connect(sv.flange_b, pt1.p1)
6+
connect(gv.flange, pt1.p2)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[bv]
2+
x = 0.09
3+
y = 0.15
4+
5+
[dv]
6+
flange_a = "W"
7+
x = 0.44
8+
y = 0.2
9+
10+
[gv]
11+
flange = "W"
12+
x = 0.82
13+
y = 0.15
14+
15+
[pt1]
16+
p1 = "S"
17+
p3 = "N"
18+
x = 0.65
19+
y = 0.15
20+
21+
[pt2]
22+
p1 = "S"
23+
p2 = "W"
24+
p3 = "N"
25+
x = 0.25
26+
y = 0.15
27+
28+
[sv]
29+
flange_a = "W"
30+
x = 0.44
31+
y = 0.1

examples/design/Main/System.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ y = -0.01
44

55
[res]
66
port_a = "W"
7-
x = 0.47
7+
x = 0.49
88
y = 0.09
99

1010
[src]
1111
input = "W"
12-
x = 0.3
12+
x = 0.28
1313
y = 0.09
1414

1515
[stp]
16-
x = 0.12
16+
x = 0.06
1717
y = 0.09
1818

1919
[vol]
2020
port = "W"
21-
x = 0.64
21+
x = 0.7
2222
y = 0.09

examples/electrical.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,4 @@ ModelingToolkitDesigner.view(design)
8181

8282
# CairoMakie.set_theme!(Theme(;fontsize=12))
8383
# fig = ModelingToolkitDesigner.view(design, false)
84-
# save(joinpath(@__DIR__, "electrical.svg"), fig; resolution=(400,400))
84+
# save(joinpath(@__DIR__, "electrical.svg"), fig; resolution=(300,300))

examples/electrical.svg

Lines changed: 192 additions & 246 deletions
Loading

examples/hydraulic.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,8 @@ end
3636
path = joinpath(@__DIR__, "design") # folder where visualization info is saved and retrieved
3737
design = ODESystemDesign(sys, path);
3838
ModelingToolkitDesigner.view(design)
39+
40+
# using CairoMakie
41+
# CairoMakie.set_theme!(Theme(;fontsize=12))
42+
# fig = ModelingToolkitDesigner.view(design, false)
43+
# save(joinpath(@__DIR__, "hydraulic.svg"), fig; resolution=(400,200))

examples/hydraulic.svg

Lines changed: 349 additions & 0 deletions
Loading

examples/mechanical.jl

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
using ModelingToolkit
2+
using ModelingToolkitDesigner
3+
4+
using ModelingToolkitStandardLibrary.Blocks
5+
import ModelingToolkitStandardLibrary.Mechanical.Translational as TV
6+
7+
@parameters t
8+
D = Differential(t)
9+
10+
@component function PassThru3(; name)
11+
@variables t
12+
13+
systems = @named begin
14+
p1 = TV.MechanicalPort()
15+
p2 = TV.MechanicalPort()
16+
p3 = TV.MechanicalPort()
17+
end
18+
19+
eqs = [connect(p1, p2, p3)]
20+
21+
return ODESystem(eqs, t, [], []; name, systems)
22+
end
23+
24+
@component function MassSpringDamper(; name)
25+
systems = @named begin
26+
dv = TV.Damper(d = 1, v_a_0 = 1)
27+
sv = TV.Spring(k = 1, v_a_0 = 1, delta_s_0 = 1)
28+
bv = TV.Mass(m = 1, v_0 = 1)
29+
gv = TV.Fixed()
30+
31+
pt1 = PassThru3()
32+
pt2 = PassThru3()
33+
end
34+
35+
eqs = [
36+
connect(bv.flange, pt2.p2)
37+
connect(sv.flange_a, pt2.p1)
38+
connect(dv.flange_a, pt2.p3)
39+
connect(dv.flange_b, pt1.p3)
40+
connect(sv.flange_b, pt1.p1)
41+
connect(gv.flange, pt1.p2)
42+
]
43+
44+
return ODESystem(eqs, t, [], []; name, systems)
45+
end
46+
47+
@named msd = MassSpringDamper()
48+
49+
path = joinpath(@__DIR__, "design")
50+
design = ODESystemDesign(msd, path)
51+
ModelingToolkitDesigner.view(design)
52+
53+
# using CairoMakie
54+
# CairoMakie.set_theme!(Theme(;fontsize=12))
55+
# fig = ModelingToolkitDesigner.view(design, false)
56+
# save(joinpath(@__DIR__, "mechanical.svg"), fig; resolution=(400,200))

examples/mechanical.svg

Lines changed: 360 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)