Open mforets opened 6 years ago
I think in general it is hard to say if a constraint is on states or on inputs.
What to do with the constraint x < u
(admittedly, I never saw this)?
How do you discriminate outputs from inputs?
i think we can say that: if the parameter appears in an invariant, but there is no flow equation for it, then this is an output.
What to do with the constraint x < u (admittedly, I never saw this)?
i think that one could be rewritten as a state constraint, if we know that u
is inside some bounds.
i think we can say that: if the parameter appears in an invariant, but there is no flow equation for it, then this is an output.
And what is the difference to an input? :wink:
good point! maybe add an extra check, i.e. the output should be a function of the states while the input is not.
What about this: An input is as described above, and additionally it is used on the r.h.s. of a flow equation.
It makes sense! Indeed, this is another way to differentiate inputs/outputs.
However, I think it might be better suited for linear systems. An input may not appear at all in the flow, e.g. we may have an input only in a reset.
On the other hand, the condition with output may be more suitable (as the outputs always appear on the invariant).
In a model such as ISS,
y1
is defined asSince it is not controlled, it is currently interpreted as an "input" variable which is not really the case. Actually, it is defined in the invariant as a linear combination of state variables,
hence it is really an "output". There is no flow equation for
y1
.Since this invariants contains a combination of input variables and state variables, the current code breaks (does it belong to the
X
or to theU
fields of theConstrainedLinearControlContinuousSystem
? i think none of them..):My proposal is to wait for systems with output to add this information properly to the underlying system type.
Otherwise, extra information can always be added in the
ext
field of the hybrid automaton.