From 2c4ca44ccfc6159237d6b973b602b08b5506eef9 Mon Sep 17 00:00:00 2001 From: Fredrik Bagge Carlson <cont-frb@ulund.org> Date: Wed, 23 Aug 2017 08:57:05 +0200 Subject: [PATCH] Add docs for nonlinear simulator --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 60b2f22..b06c105 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). -- GitLab