So in my example, if x was a (largish) time constant integer (f(x,u,t) = 0) and the observation function was
h(x,u,t) = sha256sum(x,u)
What could a control theorist tell about that (nonlinear) system?
So in my example, if x was a (largish) time constant integer (f(x,u,t) = 0) and the observation function was
h(x,u,t) = sha256sum(x,u)
What could a control theorist tell about that (nonlinear) system?
The problem of constructing a model of a system's dynamics is system identification [0].
A state observer [1] tries to determine the internal state of the system given measurements of a system's inputs outputs and a model of its dynamics. The system is observable [2] if the state observer can fully reconstruct the internal state. One motivation for checking whether a system is observable is to determine whether a given combination of sensors (corresponding to a particular set of outputs) is sufficient to for the internal state to be determined, or whether more should be added.
The state observer of a process is another dynamical system whose inputs are the process input and process output, and whose output is an estimate of the process' internal state; if the system is observable, then this estimate converges to the true state over time. This whole formalism doesn't really apply to something like your example, which has no dynamics.
If you have the code for the hash function in your example, then determining the values that its internal variables take for an arbitrary input is trivial; if you don't then it is very difficult. In either case, your problem is different to the problem of observabilty in control theory.
[0]: https://en.wikipedia.org/wiki/System_identification
While identiability typically is just a person running an experiment and saying "hey look these state values are unable to be recovered / estimated when I ran the algorithm". This is why I never understood why this analysis was very helpful as it isn't very useful outside of the specific experiment / motion / inputs used.
For example from [1] has these reasonably straightforward definitions.
Observability is a structural property of a control system dened as the possibility to deduce the state of the system from observing its input-output behaviour
Identiability is the possibility to identify the parameters of a control system from its input-output behaviour.
Parameter identiability is a special case of the observability problem.
[1] http://www.math.chalmers.se/Math/Research/Preprints/Doctoral...> This is why I never understood why this analysis was very helpful
If a system is not identifiable/observable, there may be multiple values for the parameters/state (respectively) that are consistent with observations; if you try to infer these without checking for identifiability/observability, you may obtain values that are consistent with observations but very different to the true values, which can result in serious errors when you try to do something using them.
> it isn't very useful outside of the specific experiment / motion / inputs used
There are cases where some parameters cannot be identified regardless of what inputs are provided to the system. For example, when you write down the differential equations governing the system in a particular way, you might see that two parameters (k1 and k2) always appear together as a product (k1 * k2), never independently - so their individual values are not identifiable, though (k1 * k2) is; this could be fixed by re-parametrising, by replacing k1 * k2 by k3.
Also, some parameters have very little effect on the behaviour of a system, so are weakly constrained by observations ("sloppiness"), whilst others are more tightly constrained - it can useful to know which are which.
Usually there are light restrictions on these functions to avoid what you are trying to do. Lyapunov bounded, C2 continuous, ...
Control engineers could use a piecewise approximation of an observer or controller, or use non-linear methods (like reinforcement learning, model predictive control, LQR, ...)
I'm so perplexed by your question... you seem already quite familiar with ordinary differential equations and state-space models... which are concerned with the observability of continuous-time models, right? And yet you pose a counterexample using a cryptographic hash function, which is a (very!) discrete function, and one that is specifically designed to be unobservable? Isn't that even more jarring than asking physicists to predict human life expectancy from the Standard Model? What makes you think the answer might be anything other than "no prediction"...?
I worked across domains for a while (CS, simulation, mathematics) and one thing that was really problematic was that people from one domain used a lot of implicit constraints that the other partners weren't aware of. This then led to incorrect software and weird simulation results.
I had just the same question as the commenter. I just don’t know much about this topic, and think that this question and its answers really helped my understanding.