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