---
title: State of the Art
allDay: true
date: 2024-10-03
endDate: 2024-10-10
completed: 
type: single
---
1.25 Pages
**TARGET: ~700 words**

# Outline
1. [[Robust Control]]
2. [[How is robust control validation done?]]
3. [[How do people generate unstructured perturbations?]]

# Take 1
## Attempt
Robust control as a field determines how resilient a control system is to a difference in plant dynamics for a given characteristic. In a real system, there will always be some inaccuracy in the model of plant dynamics, disturbances, or other noise. These unmodeled features will affect plant behavior if they are not anticipated. Robust control gives us tools to design for these perturbations proactively. We can design characteristics such as performance and stability to guarantee as 'robust'. 

 Robustness is dependent on two features: the characteristic to be guaranteed, and the set of reasonably possible perturbed plants $\mathcal{P}$. Usually the characteristic we're interested in is internal stability or performance. The possible set of plants, however, is less straightforward. The set $\mathcal{P}$ can be structured or unstructured. A structured set in this instance can be a discrete number of possible perturbed plants, or possibly a parametric study with a finite number of parameters @doyleFeedbackControlTheory2009 . Let's consider an example. 

Suppose a plant representing a spring-mass-damper system is described as follows @controltutorialsformatlab&simulinkInvertedPendulumSystem :
$$ P = \frac{X(s)}{F(s)} = \frac{1}{ms^2 + bs +k}$$
A structured perturbation might take each of these physical parameters $m$, $b$, and $k$ and attribute a likely range or tolerance to their value:
$$ \mathcal{P} = \left\{ \frac{1}{(m+e_m)s^2 + (b+e_b)s + (k + e_k)} \right\} \text{ : }
\matrix{m_{min} \leq m+e_m \leq m_{max} \\
b_{min} \leq b +e_b \leq b_{max} \\
k_{min} \leq k +e_k \leq k_{max}} $$
where $e_m$ is the difference between the nominal mass and the actual as-built mass. $e_b$ and $e_k$ follow similar logic. Structured perturbations are easy to use to create perturbed plants: simply pick values for $e_m$, $e_b$, and $e_k$ that are within the allowable bounds and plug them in to create a new, perturbed transfer function. 

	Structured perturbations also require a lot of leg work to create

**Limitation:** *Structured perturbations limit the form of perturbation possible to sample.* Because structured perturbations either are chosen a priori or through a parametric study, the form of possible perturbed plants is limited. Structured perturbations do not allow for unmodelled dynamics to be included as a possible perturbation.

The other type of uncertainty considered is unstructured uncertainty. This type of uncertainty does not assume a form and thus is able to capture unmodelled behavior in its robustness analysis. Unstructured sets are advantageous compared to structured sets for this reason. Robustness with respect to unstructured sets provides a guarantee of resilience to adverse conditions that are unanticipated, or difficult to model. One popular way of implementing unstructured uncertainty is the disk multiplicative perturbation. The disk multiplicative perturbation is defined as follows:

$$ \tilde P = (1+\Delta W_2) P $$
Where $\Delta$ is a variable stable transfer function with $||\Delta||_\infty < 1$, and $W_2$ is the uncertainty profile.  

The 'disk' part of the multiplicative disk uncertainty comes from analysis in the complex domain, specifically looking at the Nyquist Stability Criterion. Stability according to this criterion is determined when the loop gain $L$ of a system does not pass through the point -1 during a sweep of all frequencies on the imaginary access. For robust stability, we examine if a system is still stable when calculating the Nyquist plot of $W_2 L$. If it is, then all perturbed plants $\tilde P = (1+\Delta W_2)P$ are also stable. 

This is useful for us. If we can find an uncertainty transfer function $W_2$ that we are satisfied with, and pair it with a design of a controller that maintains the Nyquist criterion, then we know our system is robust to any perturbations captured by $||\Delta||_\infty <1$. Robust performance can be achieved using a similar process @doyleGuaranteed2009. 

$\Delta$ is almost always considered a free variable transfer function. Since $||\Delta||_\infty < 1 \text{ } \forall \omega$, $\Delta$ will not decrease the minimum robustness margin. This is fine for developing a controller, but when it comes to actually verifying robustness of a controller implementation, $\Delta$ cannot be a variable. To create a plant to simulate a perturbed plant, $\Delta$ must have an expression. 

**Limitation**: *There is no current method for creating random examples of $\Delta$.* Because of this, it is not currently possible to test implementations of controllers against unstructured perturbations. 

# Take 2 
I got ChatGPT to help me with some stuff following the first version: Here was an idea of an outline to use:
## ChatGPT Analysis
### **Robust Control Theory and Perturbation Challenges**
**1.1 Robust Control Principles**: Briefly introduce robust control, emphasizing its focus on stability and performance despite uncertainties. Clarify that robust control aims to ensure reliability under a range of conditions.
	- Where did robust control come from?
**1.2 Types of Uncertainty in Control Systems**: Explain structured vs. unstructured uncertainties and why unstructured uncertainties, though useful for capturing unmodeled dynamics, are challenging to generate.
	- Talk about structured first. Structured makes sense bc it's tractable and is intuitive
	- Then why unstructured. Need to make room for unmodeled dynamics.
**1.3 Limitations of Current Perturbation Methods**: Discuss the current methods for structured perturbation generation and the lack of effective techniques for generating random, unstructured perturbations, especially for validating controller implementations.
**1.4 Modern Efforts such as reachability and formal methods**
### **Generative Models and Their Potential in Engineering**
**2.1 Evolution of Generative Modeling**: Provide a brief history of generative models, covering GANs, VAEs, and diffusion models, highlighting their application in creating realistic samples.
**2.2 Limitations of Existing Models for Control**: Explain why traditional generative models are impractical for control applications, especially where controllable, unstructured perturbations are required.
### **Diffusion Models: Mechanism and Promise**
**3.1 Overview of Diffusion Models**: Detail how diffusion models work, focusing on the forward process (adding noise) and reverse process (learning to remove noise), allowing for controlled perturbation creation.
**3.2 Suitability of Diffusion Models for Unstructured Perturbations**: Highlight that diffusion models’ ability to generate realistic outputs with tunable noise levels makes them ideal for generating unstructured perturbations.
**3.3 Positioning Diffusion Models for Robust Control Applications**: Summarize how this approach leverages diffusion models to meet a specific need in robust control: creating a set of realistic, unstructured perturbations for robust validation.
### Transition to Research Approach
End the **State of the Art** by introducing diffusion models as a potential solution to bridge the gap between theoretical robustness and practical implementation verification. Emphasize the research’s aim to develop and test this idea for generating unstructured perturbations, with promising applications in controller validation and system resilience.

I'm going to write in LaTeX for this part from now on. Will put notes here.


