How to formulate linear control problem for Stochastic Differential Equation solvers

2 views (last 30 days)
I have the following linear control problem:
x'(t) = A*x(t) + B*u(t)
y(t) = C*x(t) + D*u(t)
where
x(t0) = x0 ... initial condition
and
y(t) .... is system output signal
A,B,C and D .... are real square matrices with constant coefficients (in my case are matrices small ... 2 x 2)
u(t) ... is discrete (measured!!!) vector signal contaminated by noise and errors
My questions are:
  • How to properly formulate this problem as Stochastic Differential Equation (SDE) task? Because of signal u(t) stochastic behavior the standard ODE solvers are not adequate tools.
  • How to estimate proper noise (error) model of signal u(t)?
  • what TMW toolboxes or FEX packages are available to solve this problem?

Answers (1)

Naren
Naren on 17 Jan 2024
Hello Michal,
To formulate your control problem as a Stochastic Differential Equation (SDE), you will need to incorporate the stochastic nature of the input signal (u(t)) into the equation. Typically, this is done by modeling the noise or uncertainty in the input signal as a stochastic process, often a Wiener process (also known as Brownian motion), which is denoted by (W(t)) and has the property that its increments are independent and normally distributed.
Your original deterministic system is:
x'(t) = A*x(t) + B*u(t)
y(t) = C*x(t) + D*u(t)
To convert this into an SDE, you can replace u(t) with a control term v(t) and a noise term that is a function of W(t):
dx(t) = (A * x(t) + B * v(t)) dt + B * sigma(t) dW(t)
y(t) = C * x(t) + D * v(t) + D * sigma(t) dW(t)
Here:
  • B * sigma(t) dW(t) represents the noise in the control input, where sigma(t) is a function that models the intensity of the noise and B scales it appropriately.
  • dW(t) represents the incremental Wiener process, capturing the stochastic nature of the noise.
The term sigma(t) needs to be chosen or estimated based on the characteristics of the noise in your measurements of u(t). The choice of sigma(t) will depend on the statistical properties of the noise that you are trying to model.
To estimate the proper noise error model of the signal u(t), you should perform statistical analysis on the measured data of u(t). This can include 'Statistical Characterization', 'Noise Identification' and 'Parameter Estimation'.
For solving SDEs and performing noise estimation in MATLAB, you can use toolboxes and packages such as 'Statistics and Machine Learning Toolbox' and 'System Identification Toolbox'.
You will need to write custom MATLAB scripts that use these toolboxes to model the noise, formulate the SDE, and then solve it using numerical methods such as Euler-Maruyama or Milstein's method for SDE integration.
Regards,
Naren

Categories

Find more on Robust Control Toolbox in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!