# Take 1
<mark style="background: #ABF7F7A6;"><mark style="background: #FFF3A3A6;">Controllers</mark> in the real world <mark style="background: #FFF3A3A6;">control</mark> plants that are not perfectly represented by a mathematical model. For this reason, <mark style="background: #FF5582A6;">controllers</mark> that operate in high-assurance environments must be evaluated to be robust.</mark> 
<mark style="background: #FFB8EBA6;">Validation and verification of controller robustness is done today, but is a strenuous, manual task.</mark> 
<mark style="background: #FFB86CA6;">Examining the robustness of a <mark style="background: #FFF3A3A6;">controller</mark> requires additional mathematical formalism of a system, and analysis of perturbations to a nominal plant model.</mark>
<mark style="background: #FF5582A6;">Perturbations can be considered as two forms--structured and unstructured perturbation.</mark>
<mark style="background: #ADCCFFA6;">Unstructured perturbation in particular allows the perturbation to take on any transfer function (or transfer matrix), such that the gain of the transfer function remains less than one.</mark>
If a <mark style="background: #FFB86CA6;">controlled system</mark> remains stable for the ~~nominal plant and all possible perturbations~~ all possible perturbations within the set[^1], it is considered robust.
To <mark style="background: #FF5582A6;">actually</mark> validate this statement with <mark style="background: #FFB86CA6;">actual</mark> perturbations is a difficult problem.
Generating perturbations is not trivial <mark style="background: #FFB86CA6;">because there is so much possibility for the form of an unstructured perturbation.</mark>
<mark style="background: #FFB86CA6;">For an engineer to accomplish this task today one of two things happens: </mark>
1. An engineer can randomly generate transfer functions as a perturbation and evaluate if their gain is less than one, or 
2. An engineer creates a structured perturbation instead using some parameters (transfer function order, physical attributes, etc.)
[^2]
We suggest a different way of generating unstructured perturbations. 
Instead of an engineer creating the perturbations, we suggest using a diffusion generative model to create perturbed plants directly.
To do this, the diffusion generative model is trained to create Bode plots of transfer functions from noise.
(WORD LIMIT) This model is then given a warm-start on a slightly-noisy nominal plant with which it will create a perturbed plant as it attempts to remove noise from the nominal plant.
This generated plant can then be analyzed using analytical fitting of a transfer function to the bode plot, and evaluated whether or not it is within the set of allowed perturbations.
Due to the ability of diffusion generative models to create novel samples, we can perform this process numerous times to collect a large number of perturbed plants. 
We can then perform our validation using this subset of the unstructured perturbed set.

This method of perturbation generation can be very powerful for robust controller validation. Using a diffusion generative model, we can generate a limitless number of perturbed plants. We can also add some structure to this model if we like, specifying uncertainty with the amount of noise introduced to different sections of the Bode plot. 

**STATS: 407 words. 157 too many.**

[[QE Abstract Take 1 Edits]]

[^1]:Likely need to introduce what the fuck the set is 
[^2]: Honestly just rewrite this whole thing

# Take 2
## First thoughts
1. Introduce what a perturbation set is
2. Generating unstructured perturbations is hard, but maybe we can use diffusion to do it
3. Who gives a fuck about validation and verification. Why do we need to do actual samples?
## Attempt
Real world control systems do not operate on nominal plants, but instead control a physical plant that has similar but slightly different dynamics. This discrepancy of dynamics is called a perturbation, and can affect controller performance.  The amount of perturbation that a control system can tolerate without violating performance or safety requirements is a crucial property to understand for high assurance systems. The field of robust control and robustness analysis establishes bounds for the allowable amount of perturbation for a given controller and set of requirements. We can know the set of allowable plants that our controller can command, and we can make guarantees about plants within those sets using robust control.

What we cannot do is easily validate our guarantees on a real controller.  While we have been able to find the set of perturbed plants for decades, being able to create and test a controller with elements from that set is by no means trivial.  The most common way of accomplishing this task today is by using structured perturbations, where an engineer traces throughout the system where uncertainty comes from and then establishes probability density functions for each uncertainty, culminating in a probabilistic model that can be sampled to create elements of the set. This is an expensive way to create perturbations. The other way is by using unstructured perturbations.  For this method, some transfer function $\delta$ with a maximum gain is used to augment the nominal plant model. Creating $\delta$ however is an opaque challenge.

We suggest using new technologies to create unstructured perturbations. The diffusion generative model has shown great promise in creating novel and realistic samples from training data, and there is potential to apply this technology to robust control. A diffusion generative model we be trained as a lossy denoiser on Bode plots of various training plants. Then, the model can be used in concert with a noise-induced plant Bode plot to generate new plants with slightly different Bode plots. The key here is the loss of the original plant in the denoising: this creates the unstructured perturbation. From here, we can numerically create transfer functions of the generated plant to determine if it is an element of the allowable set.

**STATS: 367 words, 117 too many.**
## Edits
Real world control systems do not operate on nominal plants, but instead control a physical plant that has similar but slightly different dynamics. This discrepancy of dynamics is called a perturbation, and can affect controller performance.  The amount of perturbation that a control system can tolerate without violating performance or safety requirements is a crucial property to understand for high assurance systems. The field of robust control and robustness analysis establishes bounds for the allowable amount of perturbation for a given controller and set of requirements. We can know the set of allowable plants that our controller can command, and we can make guarantees about plants within those sets using robust control.

What we cannot do is <mark style="background: #FFB86CA6;">easily</mark> validate our guarantees on a real controller.  [^3]<mark style="background: #FF5582A6;">While we have been able to find the set of perturbed plants for decades,</mark> <mark style="background: #FFB86CA6;">being able to create and test a controller with elements from that set is by no means trivial.</mark>  The most common way of accomplishing this task today is by using structured perturbations, where an engineer traces throughout the system where uncertainty comes from and then establishes probability density functions for each uncertainty, culminating in a probabilistic model that can be sampled to create elements of the set[^4]. <mark style="background: #CACFD9A6;">This is an expensive way to create perturbations.[^5] The other way is by using unstructured perturbations.</mark>  For this method, some transfer function $\delta$ <mark style="background: #FF5582A6;">with a maximum gain</mark> <mark style="background: #FFB86CA6;">is used to augment the nominal plant model</mark[^6]>. <mark style="background: #CACFD9A6;">Creating $\delta$ however is an opaque challenge.</mark>

We suggest using new technologies to create unstructured perturbations. The diffusion generative model has shown great promise in creating novel and realistic samples from training data, <mark style="background: #FFB86CA6;">and there is potential to apply this technology to robust control.</mark> <mark style="background: #FFB86CA6;">A diffusion generative model we be trained as a lossy denoiser on Bode plots of various training plants. Then, the model can be used in concert with a noise-induced plant Bode plot to generate new plants with slightly different Bode plots. The key here is the loss of the original plant in the denoising: this creates the unstructured perturbation. From here, we can numerically create transfer functions of the generated plant to determine if it is an element of the allowable set.</mark>

[^3]: This is confusing. I bring up a 'real controller' but it doesn't really make sense what that is? Maybe talk specifically about how the set of controllable plants is fine for an abstract controller, but when one is actually built, you can't test that real controller with a set. It needs experiments with actual plants.
[^4]: This sentence MUST be written shorter. It does the job of being long and yes that's good symbolism, but it's too much. It loses the reader so they never get the point in the first place.
[^5]:Why? 
[^6]: Passive voice

# Take 3
## Attempt
Real world control systems do not operate on nominal plants, but instead control a physical plant that has slightly different dynamics. This discrepancy is called a perturbation, and can affect controller performance. The field of robust control creates a way to establish set of allowable perturbations for a given plant, controller, and design requirements. As a result, we can make guarantees about the ability of a controller to meet performance or safety criterion when our model of the plant is not correct.

While a model of a controller can be proven to control a set of plants, a real controller can only be tested controlling one plant at a time. Validating this real controller requires extracted elements of the perturbed set, which can be deceptively difficult to create. Perturbed plants commonly are generated by using structured uncertainty, where an engineer attributes probability distributions to system parameters. These distributions are sampled, and then are used to create a perturbed plant. This is an expertise intense process.

We suggest using a new technology to more efficiently generate perturbed plants. The diffusion generative model has shown great promise in creating novel and realistic samples from training data. We suggest training a generative model to create Bode plots of transfer functions. This trained model will then be given a warm start with the nominal plant as an input, with which it will then be able to generate a limitless number of perturbed plants. This model can remove the laborious effort of creating perturbed plants.

**STATS: 250 words!**
## Edits
<mark style="background: #ABF7F7A6;">Real world control systems do not operate on nominal plants, but instead control a physical plant that has slightly different dynamics.</mark> This discrepancy is called a perturbation, and can affect controller performance. The field of robust control creates a way to establish set of allowable perturbations for a given plant, controller, and design requirements. <mark style="background: #FFB8EBA6;">As a result, we can make guarantees about the ability of a controller to meet performance or safety criterion when our model of the plant is not correct. </mark> [^7] 

<mark style="background: #ABF7F7A6;">While a model of a controller can be proven to control a set of plants, a real controller can only be tested controlling one plant at a time. Validating this real controller requires extracted elements of the perturbed set,</mark><mark style="background: #ABF7F7A6;"> which can be deceptively difficult to create</mark>. Perturbed plants <mark style="background: #FFF3A3A6;">commonly are</mark>[^8] generated by using structured uncertainty, where an engineer <mark style="background: #FFF3A3A6;">attributes probability distributions to system parameters</mark>[^9]. These distributions are sampled, and then are used to create a perturbed plant. <mark style="background: #FFB8EBA6;">This is an expertise intense process.</mark>

<mark style="background: #ABF7F7A6;">We suggest using a new technology to more efficiently generate perturbed plants. The diffusion generative model has shown great promise in creating novel and realistic samples from training data.</mark> <mark style="background: #FFB8EBA6;">This model can remove the laborious effort of creating perturbed plants.</mark> We suggest training a generative model to create Bode plots of transfer functions. This trained model will then be given a warm start with the nominal plant as an input, with which it will then be able to generate a limitless number of perturbed plants. ~~This model can remove the laborious effort of creating perturbed plants.~~
[^7]: Weak ass point.
[^8]:Switch order 
[^9]: Maybe reverse? ' creates system parameters as probability distributions?' I like that better. Better stress position usage.

# Take 4
## Attempt
Real world control systems do not operate on nominal plants, but instead control a physical plant that has slightly different dynamics. This discrepancy is called a perturbation, and can affect controller performance. The field of robust control creates a way to establish set of allowable perturbations for a given plant, controller, and design requirements. We can make guarantees that a controller meets performance or safety criterion when the real plant does not perfectly match the nominal model.

While a model of a controller can be proven to control a set of plants, a real controller can only be tested controlling one plant at a time. Validating this real controller requires extracted elements of the perturbed set, which can be deceptively difficult to create. Perturbed plants are commonly generated by using a structured uncertainty, where an engineer creates distributed ranges for system parameters. These distributions are sampled and then are used to create a   perturbed plant. This is an expertise intense process.

We suggest using a recent technology to more efficiently generate perturbed plants. The diffusion generative model has shown great promise in creating novel and realistic samples from training data. This model can remove the laborious effort of creating perturbed plants. We suggest training a generative model to create Bode plots of transfer functions. This trained model will then be given a warm start with the nominal plant as an input, with which it will then be able to generate a limitless number of unique perturbed plants for controller validation. 

**STATS: 250 / 250 words**
[[QE Abstract For Dan]]

# Take 5
## Attempt
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 amount of uncertainty
3. Approximate a set of controllable plants by generating a large number of perturbed examples

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.

**STATS: 247 / 250 words**

## Edits
Dan's biggest comments were that it needed to be:
1. <mark style="background: #FF5582A6;">Goal of the research ...</mark>
2. <mark style="background: #FFF3A3A6;">outcomes</mark>
3. <mark style="background: #ABF7F7A6;">approach</mark>
4. <mark style="background: #FFB8EBA6;">impact</mark>

<mark style="background: #FF5582A6;">The goal of this research is to use a generative diffusion model to create unstructured perturbations of a nominal plant.</mark> If this research is successful, this diffusion model will accomplish three main tasks:

<mark style="background: #FFF3A3A6;">

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
</mark>

<mark style="background: #ABF7F7A6;">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 given controller. This process will be repeated several times to generate enough plants to approximate the set of controllable plants.[^10]</mark>

<mark style="background: #FFB8EBA6;">These extracted elements can be used to verify robustness of controller implementations.</mark> 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. <mark style="background: #FFB8EBA6;">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.</mark>
[^10]: How?