# Data Driven Control

While robust control theory can produce controllers that behave much better in the presence of model inaccuracies, they still often assume linear dynamics. Many systems of modern interest are so wildly nonlinear that this is a nonstarter. For example, self driving cars, modeling and controlling the weather, or pretty much anything else where turbulence is directly involved. Even worse, we often don’t have good models of these systems. So not too surprisingly, one of the most active research areas of modern control theory is the development of models and controllers based on data rather than a priori system models.

The problem of figuring out a model is called system identification. This section introduces a few modern system identification techniques. It touches on some data driven control methods, but these will be explored in more depth in the reinforcement learning chapter. Everything here is brief since I’m not an expert in these techniques.

## Linear System Identification

### Balanced Truncation (BT)

Balanced truncation is a model reduction technique. The idea is to develop an approximate surrogate model of a complex system that has far fewer state variables. Generally speaking, the approach is based on projecting into a lower dimensional space. The lower dimensional space is chosen to strike a balance between controllability and observability.

- video
- lecture notes from an old EECS course

### Balanced Proper Orthogonal Decomposition (BPOD)

BPOD is a more modern algorithm that’s similar to BT but works better for very high dimensional spaces (say millions or billions of parameters in the unreduced model). It is commonly used for producing reduced models for fluids – a particularly challenging problem due to the presence of turbulence.

### Dynamic Mode Decomposition

Dynamic mode decomposition finds the best linear operator for approximating time series data measured from dynamical system. It is intended for use with high dimensional systems (millions of parameters), so instead of computing the matrix of the linear operator directly (which would have to be millions of elements by millions of elements) it just estimates the leading eigenvalues and eigenvectors. This saves memory, but the eigenvalues are also interesting in their own right because they represent stable modes of the dynamic (and potentially chaotic) system.

## Nonlinear System Identification

There are a variety of nonlinear system identification techniques.

- NARMAX
- Volterra Series
- a book on nonlinear system identification