Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
processes
LabProcesses.jl
Commits
9b59712d
Commit
9b59712d
authored
Dec 07, 2018
by
Fredrik Bagge Carlson
Browse files
Updates to julia1
parent
af0cb1b5
Pipeline
#671
failed with stage
in 4 minutes and 42 seconds
Changes
3
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
src/LabProcesses.jl
View file @
9b59712d
...
...
@@ -9,7 +9,7 @@ end
module
LabProcesses
using
ControlSystems
,
LabConnections
.
Computer
,
Parameters
,
DSP
using
ControlSystems
,
LabConnections
.
Computer
,
Parameters
,
DSP
,
LinearAlgebra
include
(
"utilities.jl"
)
...
...
src/controllers.jl
View file @
9b59712d
...
...
@@ -27,16 +27,16 @@ function run_control_2DOF(P::AbstractProcess,sysFB, sysFF=nothing; duration = 10
rf
=
sysFF
==
nothing
?
r
[
:
,
i
]
:
Gff
(
r
[
:
,
i
])
e
=
rf
-
y
[
:
,
i
]
ui
=
Gfb
(
e
)
ui
+
bias
(
P
)
ui
.
+
bias
(
P
)
end
simulation
=
isa
(
P
,
SimulatedProcess
)
initialize
(
P
)
for
(
i
,
t
)
=
enumerate
(
0
:
h
:
duration
)
@periodically
h
simulation
begin
y
[
:
,
i
]
=
measure
(
P
)
r
[
:
,
i
]
=
reference
(
t
)
u
[
:
,
i
]
=
calc_control
(
i
)
# y,r must be updated before u
y
[
:
,
i
]
.
=
measure
(
P
)
r
[
:
,
i
]
.
=
reference
(
t
)
u
[
:
,
i
]
.
=
calc_control
(
i
)
# y,r must be updated before u
control
(
P
,
[
clamp
.
(
u
[
j
,
i
],
inputrange
(
P
)[
j
]
...
)
for
j
=
1
:
nu
])
end
end
...
...
src/interface_implementations/ballandbeam.jl
View file @
9b59712d
...
...
@@ -48,7 +48,7 @@ const beam_system, nice_beam_controller = define_beam_system()
struct
BeamSimulator
<:
SimulatedProcess
h
::
Float64
s
::
SysFilter
BeamSimulator
(;
h
::
Real
=
0.01
)
=
new
(
Float64
(
h
),
SysFilter
(
beam_system
,
h
))
BeamSimulator
(;
h
::
Real
=
0.01
,
bias
=
0
)
=
new
(
Float64
(
h
),
SysFilter
(
beam_system
,
h
))
end
struct
BallAndBeam
<:
PhysicalProcess
...
...
@@ -96,7 +96,7 @@ bias(p::BallAndBeamSimulator) = 0
function
control
(
p
::
AbstractBeamOrBallAndBeam
,
u
::
AbstractArray
)
length
(
u
)
==
1
||
error
(
"Process
$
(typeof(p)) only accepts one control signal, tried to send u=
$
u."
)
send
(
p
.
control
,
u
[
1
])
control
(
p
,
u
[
1
])
end
control
(
p
::
AbstractBeamOrBallAndBeam
,
u
::
Number
)
=
send
(
p
.
control
,
u
)
control
(
p
::
BeamSimulator
,
u
::
Number
)
=
p
.
s
(
u
)
...
...
@@ -104,7 +104,7 @@ control(p::BallAndBeamSimulator, u::Number) = error("Not yet implemented")
measure
(
p
::
Beam
)
=
read
(
p
.
measure
)
measure
(
p
::
BallAndBeam
)
=
[
read
(
p
.
measure1
),
read
(
p
.
measure2
)]
measure
(
p
::
BeamSimulator
)
=
vec
dot
(
p
.
s
.
sys
.
C
,
p
.
s
.
state
)
measure
(
p
::
BeamSimulator
)
=
dot
(
p
.
s
.
sys
.
C
,
p
.
s
.
state
)
measure
(
p
::
BallAndBeamSimulator
)
=
error
(
"Not yet implemented"
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment