Skip to content

Commit 418c060

Browse files
committed
Hydraulic library updated to use macros
Only non-breaking changes were made. Changes include: - sources.jl - MassFlow - FixedPressure - Pressure - components.jl - Cap - Open - FlowDivider - VolumeBase - FixedVolume - Volume The following were NOT changed, as the changes would be breaking: - components.jl - TubeBase - Tube - ValveBase - Valve - DynamicVolume - SpoolValve - SpoolValve2Way - Actuator
1 parent 59432e6 commit 418c060

File tree

1 file changed

+64
-64
lines changed

1 file changed

+64
-64
lines changed

src/Hydraulic/IsothermalCompressible/components.jl

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -248,33 +248,33 @@ Reduces the flow from `port_a` to `port_b` by `n`. Useful for modeling parallel
248248
- `port_a`: full flow hydraulic port
249249
- `port_b`: part flow hydraulic port
250250
"""
251-
@component function FlowDivider(; n, name)
251+
@mtkmodel FlowDivider begin
252252

253253
#TODO: assert n >= 1
254254

255-
pars = @parameters begin
255+
@parameters begin
256256
n = n
257257
end
258258

259-
vars = @variables begin
259+
@variables begin
260260
dm_a(t), [guess = 0]
261261
dm_b(t), [guess = 0]
262262
end
263263

264-
systems = @named begin
264+
@components begin
265265
port_a = HydraulicPort()
266266
port_b = HydraulicPort()
267267
open = Open()
268268
end
269269

270-
eqs = [connect(port_a, port_b, open.port)
271-
dm_a ~ port_a.dm
272-
dm_b ~ dm_a / n
273-
open.dm ~ dm_a - dm_b # extra flow dumps into an open port
274-
# port_b.dm ~ dm_b # divided flow goes to port_b
275-
]
270+
@equations begin
271+
connect(port_a, port_b, open.port)
272+
dm_a ~ port_a.dm
273+
dm_b ~ dm_a / n
274+
open.dm ~ dm_a - dm_b # extra flow dumps into an open port
275+
# port_b.dm ~ dm_b # divided flow goes to port_b
276+
end
276277

277-
ODESystem(eqs, t, vars, pars; name, systems)
278278
end
279279

280280
@component function ValveBase(
@@ -367,36 +367,37 @@ Valve with `area` input and discharge coefficient `Cd` defined by https://en.wik
367367
ODESystem(eqs, t, vars, pars; name, systems)
368368
end
369369

370-
@component function VolumeBase(; area, dead_volume = 0, Χ1 = 1, Χ2 = 1,
371-
name)
372-
pars = @parameters begin
370+
@mtkmodel VolumeBase begin
371+
372+
@parameters begin
373373
area = area
374374
dead_volume = dead_volume
375+
x1 = 1
376+
x2 = 1
375377
end
376378

377-
systems = @named begin
378-
port = HydraulicPort()
379-
end
380-
381-
vars = @variables begin
379+
@variables begin
382380
x(t)
383381
dx(t), [guess = 0]
384382
rho(t), [guess = liquid_density(port)]
385383
drho(t), [guess = 0]
386384
vol(t)
387385
end
388386

389-
# let
390-
dm = port.dm
391-
p = port.p
387+
@components begin
388+
port = HydraulicPort()
389+
end
392390

393-
eqs = [vol ~ dead_volume + area * x
394-
D(x) ~ dx
395-
D(rho) ~ drho
396-
rho ~ full_density(port, p)
397-
dm ~ drho * vol * Χ1 + rho * area * dx * Χ2]
391+
@equations begin
392+
dm = port.dm
393+
p = port.p
394+
vol ~ dead_volume + area * x
395+
D(x) ~ dx
396+
D(rho) ~ drho
397+
rho ~ full_density(port, p)
398+
dm ~ drho * vol * Χ1 + rho * area * dx * Χ2
399+
end
398400

399-
ODESystem(eqs, t, vars, pars; name, systems)
400401
end
401402

402403
"""
@@ -410,29 +411,29 @@ Fixed fluid volume.
410411
# Connectors:
411412
- `port`: hydraulic port
412413
"""
413-
@component function FixedVolume(; vol, name)
414-
pars = @parameters begin
415-
vol = vol
416-
end
414+
@mtkmodel FixedVolume begin
417415

418-
systems = @named begin
419-
port = HydraulicPort(;)
416+
@parameters begin
417+
Volume
420418
end
421419

422-
vars = @variables begin
420+
@variables begin
423421
rho(t), [guess = liquid_density(port)]
424422
drho(t), [guess = 0]
425423
end
426424

427-
# let
428-
dm = port.dm
429-
p = port.p
425+
@components begin
426+
port = HydraulicPort()
427+
end
430428

431-
eqs = [D(rho) ~ drho
432-
rho ~ full_density(port, p)
433-
dm ~ drho * vol]
429+
@equations begin
430+
dm = port.dm
431+
p = port.p
432+
D(rho) ~ drho
433+
rho ~ full_density(port, p)
434+
dm ~ drho * vol
435+
end
434436

435-
ODESystem(eqs, t, vars, pars; name, systems)
436437
end
437438

438439
"""
@@ -473,16 +474,14 @@ dm ────► │ │ area
473474
474475
See also [`FixedVolume`](@ref), [`DynamicVolume`](@ref)
475476
"""
476-
@component function Volume(;
477+
@mtkmodel Volume begin
477478

478-
#parameters
479-
area,
480-
direction = +1, name)
481-
pars = @parameters begin
482-
area = area
479+
@parameters begin
480+
area
481+
direction = +1
483482
end
484483

485-
vars = @variables begin
484+
@variables begin
486485
x(t)
487486
dx(t)
488487
p(t)
@@ -492,28 +491,29 @@ See also [`FixedVolume`](@ref), [`DynamicVolume`](@ref)
492491
dm(t)
493492
end
494493

495-
systems = @named begin
494+
@components begin
496495
port = HydraulicPort()
497496
flange = MechanicalPort()
498497
end
499498

500-
eqs = [
501-
# connectors
502-
port.p ~ p
503-
port.dm ~ dm
504-
flange.v * direction ~ dx
505-
flange.f * direction ~ -f
499+
@equations begin
500+
# connectors
501+
port.p ~ p
502+
port.dm ~ dm
503+
flange.v * direction ~ dx
504+
flange.f * direction ~ -f
506505

507-
# differentials
508-
D(x) ~ dx
509-
D(rho) ~ drho
506+
# differentials
507+
D(x) ~ dx
508+
D(rho) ~ drho
509+
510+
# physics
511+
rho ~ liquid_density(port, p)
512+
f ~ p * area
513+
dm ~ drho * x * area + rho * dx * area
514+
end
510515

511-
# physics
512-
rho ~ liquid_density(port, p)
513-
f ~ p * area
514-
dm ~ drho * x * area + rho * dx * area]
515516

516-
ODESystem(eqs, t, vars, pars; name, systems, defaults = [rho => liquid_density(port)])
517517
end
518518

519519
"""

0 commit comments

Comments
 (0)