---
title: Goals and Outcomes
allDay: true
date: 2024-09-26
completed: 
type: single
endDate: 2024-10-03
---
1 Page
**TARGET: 500-600 words**
# Outline
1. What is the purpose of this research?
	1. Use diffusion generative diffusion models to create examples of perturbed plants
	2. You can evaluate robustness of an abstract controller, but actually testing it on real plants is more difficult.
2. What are the outcomes?
	1. Train a diffusion generative model to generate Bode plots of dynamic systems.
	2. Use that generative model to generate perturbations of a given input plant
	3. Modulate the amount of perturbation by modulating the amount of noise used in the diffusion model	

The goal of this research is to use a generative diffusion model to create unstructured perturbations of a nominal plant. If this research is successful, this diffusion model will accomplish three main tasks:
1. Generate Bode plots based on training data of example dynamic systems
2. Perturb a nominal plant in an unstructured manner with a controllable difference between perturbed and nominal plants
3. Approximate a set of controllable plants by generating a large number of perturbed examples
	1. (USE LOCATIONS OF POLES AND ZEROS TO MEASURE DISTANCE)

# Version 1
## Attempt
The goal of this research is to use a generative diffusion model to create unstructured perturbations of a nominal plant. In the real world, there is always a perturbation between the dynamics of the physical process and the mathematical model. Stability and performance of the controller suffer when this difference is large, but knowing that it is never zero, understanding how much performance is affected by the perturbation is important to know. Robust control answers this problem for mathematical models of plants. We can know precisely how much a model of a controller will be affected by a perturbation, and we can define a set of allowable perturbations that fit within our engineering specifications. 

A problem arises when we try to verify the robustness on an actual modern controller. In the actual implementation of control laws, there are several intermediate layers between the hardware, firmware, and software that can introduce mistakes. Unlike the model controller, we cannot easily verify that this controller has the same performance over the set of perturbed plants. The modern controller can only be tested with single elements from the set of plants. Because of this, we suggest using a diffusion generative model to generate elements from this set to validate implementations of controllers to be robust.

If this research is successful, this diffusion model will accomplish three main tasks:
1. It will approximate a set of controllable plants by generating a large number of perturbed examples
2. Perturb a nominal plant in an unstructured manner with a controllable amount of uncertainty
3. Generate time and frequency domain responses based on training data of example systems. 

The diffusion generative model has shown great promise in creating novel and realistic samples from training data. This research will train a generative model to create Bode plots of transfer functions. This model will be given a nominal plant as an input and then generate a perturbed plant. Once created, this perturbed plant can be evaluated if it belongs to the set of controllable plants for a desired controller. This process will be repeated several times to generate enough plants to approximate the set of controllable plants. 

These generated plants can be used to verify robustness of controller implementations. A model of a controller can use robust control theory to establish the set of controllable plants, but an actual implementation of a controller can not be verified as robust in the same way. Instead, it must be verified experimentally using elements of the set. Extracting elements of the set is not a trivial task, but if this research is successful, a generative model can reduce the effort required to create perturbed plants.
## Edits
<mark style="background: #FFF3A3A6;">The goal of this research is to use a generative diffusion model to create unstructured perturbations of a nominal plant.</mark> <mark style="background: #FFB86CA6;">In the real world</mark>, there is always a perturbation between the dynamics of the physical process and the mathematical model. Stability and performance of the controller suffer when this difference is large, <mark style="background: #FFB8EBA6;"><mark style="background: #FFB86CA6;">but knowing that it is never zero, understanding how much performance is affected by the perturbation is important to know</mark></mark>. <mark style="background: #FFB86CA6;">Robust control answers this problem for mathematical models of plants.</mark> <mark style="background: #FFB86CA6;">We can know precisely how much a model of a controller will be affected by a perturbation, and we can define a set of allowable perturbations that fit within our engineering specifications. 
</mark>

<mark style="background: #ABF7F7A6;">A problem arises when we try to verify the robustness on an actual modern controller.</mark> In the actual implementation of control laws, there are several intermediate layers between the hardware, firmware, and software that can introduce mistakes. <mark style="background: #FFB8EBA6;">Unlike the model controller, we cannot easily verify that this controller has the same performance over the set of perturbed plants.</mark> <mark style="background: #FFB86CA6;">The modern controller</mark> can only be tested with single elements from the set of plants. Because of this, we suggest using a diffusion generative model to generate elements from this set to validate implementations of controllers to be robust.

If this research is successful, this diffusion model will accomplish three main tasks:
1. It will approximate a set of controllable plants by generating a large number of perturbed examples
2. Perturb a nominal plant in an unstructured manner with a controllable amount of uncertainty
3. Generate time and frequency domain responses based on training data of example systems. 

<mark style="background: #ABF7F7A6;">The diffusion generative model has shown <mark style="background: #FFB86CA6;">great</mark> promise in creating novel and realistic samples from training data.</mark> This research will train a generative model to create Bode plots of transfer functions. This model will be given a nominal plant as an input and then generate a perturbed plant. Once created, this perturbed plant can be evaluated if it belongs to the set of controllable plants for a desired controller. This process will be repeated several times to generate enough plants to approximate the set of controllable plants[^1]. 

<mark style="background: #ABF7F7A6;">These generated plants can be used to verify robustness of controller implementations. A model of a controller can use robust control theory to establish the set of controllable plants, but an actual implementation of a controller can not be verified as robust in the same way[^2]. Instead, it must be verified experimentally using elements of the set.</mark> Extracting elements of the set is not a trivial task, but if this research is successful, <mark style="background: #FFB8EBA6;">a generative model can reduce the effort required to create perturbed plants[^3].
</mark>
[^1]: No point?
[^2]: This is a super long topic.
[^3]: This can be two sentences. How should it get split up?

# Version 2
## Point Topic Analysis
**First Paragraph: Introduction paragraph**
*Topic*: The goal of this research is to use a generative diffusion model to create unstructured perturbations of a nominal plant. 
*Point*: ???

If this research is successful, this diffusion model will accomplish three main tasks:
**Outcome 1: Approximate a set of controllable plants by generating a large number of perturbed examples**

**Outcome 2: Perturb a nominal plant in an unstructured manner with a controllable amount of uncertainty**

**Outcome 3: Generate time and frequency domain responses based on training data of example systems. **

**Third Paragraph: State of the Art**
Topic: Robust control can find a set of plants with which a given controller will remain performant. 
Point: But when verifying robustness of a controller implementation, the set of allowable plants is useless. (then talk about why)

**Fourth Paragraph: Research Approach**
Topic: Generating perturbations requires a lot of effort. 
Point: We look to generative models to accelerate perturbed plant generation. 

**Fifth Paragraph: Broader Impact**

## Attempt
The goal of this research is to use a generative diffusion model to create unstructured perturbations of a nominal plant. Robust control uses perturbations to verify to what distrubances a controller is able to withstand. These perturbations are not easy to generate, and often require significant effort to create. This increases verification costs, and therein makes high assurance difficult to attain. This research suggests using a relatively new technology, the generative diffusion model, to generate perturbations. With this new technology, we aim to reduce perturbation generation effort, and reduce verification costs.

If this research is successful, this diffusion model will accomplish three main tasks:
**Outcome 1:** Approximate a set of controllable plants by generating a large number of perturbed examples. This research will use the lossy nature of the diffusion model to create the perturbation. Inference of these models is relatively cheap, while maintaining the ability to create novel samples. 

**Outcomes 2:** Perturb a nominal plant in an unstructured manner with a controllable amount of uncertainty. The diffusion model uses Gaussian noise as a mechanic to introduce perturbation from training data. This noise is not predicated on any understanding of the physical properties of a system, but instead is a mathematical process. For this reason, we call the perturbation 'unstructured'. The amount of noise can also be tuned: if less perturbation is desired, less noise is introduced. If greater perturbation is required, more noise is introduced.

**Outcome 3:** Generate time and frequency domain responses based on training data of example systems. The diffusion model is like any other machine learning model: it requires training data. For this diffusion model, we will create training data of physically realizable plants dynamics. This training data will teach the diffusion model to create realistic time and frequency responses as novel samples. 

Perturbing a nominal plant to establish robustness is not a new technique. Robust control can find the set of plants with which a controller remains performant. Finding this set is a well understood problem, and can be straightforward. An engineer can use this set of plants to guarantee how robust a nominal controller is to perturbation. But, engineer cannot use this set to make guarantees about a implemented controller. Implementation of control laws requires lowering the abstraction level from the model of a controller to a computer program. Robustness of this controller implementation can be suggested by analysis of the model, but can be verified through experimentation. 

Experimentally verifying robustness for implementations of controllers requires elements to be extracted from the set. There are two main ways this has been done: structured and unstructured perturbations. Structured perturbations are created manually: an engineer attributes probability distributions to certain system parameters to include a margin of error. These distributions are sampled to create the perturbation. Unstructured perturbations are trickier to generate, because the perturbation form is not defined. It can be difficult to find perturbations that are 'random' while remaining within the allowable set.

This research will utilize a diffusion model to make generation of unstructured perturbations easier. The generative diffusion model is great at creating new samples with a controlled amount of distortion compared to training data. We will use this feature of the diffusion model to generate unstructured perturbations. The diffusion model consists of two processes: a forward process that degrades inputs with noise, and a reverse process that the learned model attempts to denoise the input. This reverse process will be trained using time and frequency response data of a variety of dynamic systems, so that noise removal creates samples that look like dynamic systems. Finally, we will control the amount of perturbation by controlling how much we destruct the input of a nominal plant with noise. By introducing less noise we create smaller perturbations, while to create large perturbations we do the opposite.

Verifying implementations of controllers has been an onerous task. Perturbations take a significant effort to generate due to the manual nature of current techniques. Generative models have the potential to accelerate this perturbation generation. If successful, having cheaper access to numerous valid perturbations will make robustness verification of control system implementations more accessible. This is a big deal for systems where high assurance is necessary. New infrastructure projects utilize modern digital controllers that suffer from this robustness verification predicament. This research has to potential to reduce the cost of verification of these systems, and in turn, reduce the cost of new infrastructure projects while maximizing system resilience.