@@ -30,6 +30,9 @@ struct DiscreteSystem <: AbstractSystem
30
30
states:: Vector
31
31
""" Parameter variables. Must not contain the independent variable."""
32
32
ps:: Vector
33
+ """ Control parameters (some subset of `ps`)."""
34
+ ctrls:: Vector
35
+ """ Observed states."""
33
36
observed:: Vector{Equation}
34
37
"""
35
38
Name: the name of the system
@@ -63,6 +66,7 @@ Constructs a DiscreteSystem.
63
66
"""
64
67
function DiscreteSystem (
65
68
discreteEqs:: AbstractVector{<:Equation} , iv, dvs, ps;
69
+ controls = Num[],
66
70
observed = Num[],
67
71
systems = DiscreteSystem[],
68
72
name= gensym (:DiscreteSystem ),
@@ -72,6 +76,7 @@ function DiscreteSystem(
72
76
iv′ = value (iv)
73
77
dvs′ = value .(dvs)
74
78
ps′ = value .(ps)
79
+ ctrl′ = value .(controls)
75
80
76
81
default_u0 isa Dict || (default_u0 = Dict (default_u0))
77
82
default_p isa Dict || (default_p = Dict (default_p))
@@ -82,7 +87,7 @@ function DiscreteSystem(
82
87
if length (unique (sysnames)) != length (sysnames)
83
88
throw (ArgumentError (" System names must be unique." ))
84
89
end
85
- DiscreteSystem (discreteEqs, iv′, dvs′, ps′, observed, name, systems, default_u0, default_p)
90
+ DiscreteSystem (discreteEqs, iv′, dvs′, ps′, ctrl′, observed, name, systems, default_u0, default_p)
86
91
end
87
92
88
93
"""
0 commit comments