diff --git a/README.md b/README.md index 60b2f22570029dffd84cd53586b98105c641f76f..b06c1059fdeb6eb5c9a42902efd0cb528ecabe3e 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ end ``` hence, it just performs one iteration of ```math -x' = Ax + Bu +x' = Ax + Bu\\ y = Cx + Du ``` @@ -134,3 +134,13 @@ the system state by calling `init_sysfilter`. The variable `beam_system` is alre defined outside the type specification. One of the constructors provides a default value for the sample time, in case the user is unsure about a reasonable value. + +## Non-linear process +Your first option is to linearize the process and proceed like above. +Other options include +1. Make `control` perform forward Euler, i.e., `x' = f(x,u)*h` for a general +system model ``x' = f(x,u); y = g(x,u)`` and sample time ``h``. +2. Integrate the system model using some fancy method like Runge-Kutta. See +[DifferentialEquations.jl](http://docs.juliadiffeq.org/stable/types/discrete_types.html) +for discrete-time solving of ODEs (don't be discuraged, this is almost as simple as +forward Euler above).