From d07d0639b816b41715145611b53a51ebc1ab0db9 Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 17 Aug 2021 11:26:21 -0400 Subject: [PATCH 1/4] Adding inputs and outputs functions --- src/systems/abstractsystem.jl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/systems/abstractsystem.jl b/src/systems/abstractsystem.jl index 87a77436af..d77289985c 100644 --- a/src/systems/abstractsystem.jl +++ b/src/systems/abstractsystem.jl @@ -392,6 +392,14 @@ function states(sys::AbstractSystem) [sts; reduce(vcat,namespace_variables.(systems))]) end +function inputs(sys::AbstractSystem) + [st for st in states(sys) if isinput(st)] +end + +function outputs(sys::AbstractSystem) + [st for st in states(sys) if isoutput(st)] +end + function parameters(sys::AbstractSystem) ps = get_ps(sys) systems = get_systems(sys) From b6ed591acdba7956cf945234d70233a3bf23ee4c Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 17 Aug 2021 11:47:39 -0400 Subject: [PATCH 2/4] export functions --- src/ModelingToolkit.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ModelingToolkit.jl b/src/ModelingToolkit.jl index 0a785aca2e..b3b6fc3370 100644 --- a/src/ModelingToolkit.jl +++ b/src/ModelingToolkit.jl @@ -173,7 +173,7 @@ export Differential, expand_derivatives, @derivatives export Equation, ConstrainedEquation export Term, Sym export SymScope, LocalScope, ParentScope, GlobalScope -export independent_variables, independent_variable, states, parameters, equations, controls, observed, structure +export independent_variables, independent_variable, states, parameters, equations, controls, observed, structure, inputs, outputs export structural_simplify export DiscreteSystem, DiscreteProblem From 8b9df930b5b2a5e92bbbf0fce2bc4ffc7af36deb Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 17 Aug 2021 12:04:22 -0400 Subject: [PATCH 3/4] Adding documentation --- src/ModelingToolkit.jl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ModelingToolkit.jl b/src/ModelingToolkit.jl index b3b6fc3370..766d9d7b2e 100644 --- a/src/ModelingToolkit.jl +++ b/src/ModelingToolkit.jl @@ -102,6 +102,20 @@ function states end """ $(TYPEDSIGNATURES) +Get the set of states decorated as inputs for the given system. +""" +function inputs end + +""" +$(TYPEDSIGNATURES) + +Get the set of states decorated as outputs for the given system. +""" +function outputs end + +""" +$(TYPEDSIGNATURES) + Get the set of parameters variables for the given system. """ function parameters end From 83be3dedace84aeb21c7f081b3994ae47c7434da Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 17 Aug 2021 15:40:21 -0400 Subject: [PATCH 4/4] Add observed to outputs --- src/systems/abstractsystem.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/systems/abstractsystem.jl b/src/systems/abstractsystem.jl index d77289985c..1b5c68bf19 100644 --- a/src/systems/abstractsystem.jl +++ b/src/systems/abstractsystem.jl @@ -397,7 +397,8 @@ function inputs(sys::AbstractSystem) end function outputs(sys::AbstractSystem) - [st for st in states(sys) if isoutput(st)] + sts = vcat(states(sys), map(x->x.lhs, observed(sys))) + [st for st in sts if isoutput(st)] end function parameters(sys::AbstractSystem)