From 4be1b69fd61895fdacf45132fdc68d56a3f5538e Mon Sep 17 00:00:00 2001 From: Dane Sabo Date: Tue, 10 Sep 2024 12:18:25 -0400 Subject: [PATCH] vault backup: 2024-09-10 12:18:25 --- .obsidian/workspace.json | 23 +++++++++----- .../2. Writing/0. QE Abstract.md | 30 +++++++++++++++--- .../2. Writing/1. QE Goals and Outcomes.md | 8 ++++- .../2. Writing/QE Abstract For Dan.md | 11 ++++--- ...For Dan.pdf => QE Abstract For Dan_v1.pdf} | Bin .../99. Exports/QE Abstract For Dan_v2.pdf | Bin 0 -> 23371 bytes 6 files changed, 55 insertions(+), 17 deletions(-) rename 4. Qualifying Exam/99. Exports/{QE Abstract For Dan.pdf => QE Abstract For Dan_v1.pdf} (100%) create mode 100644 4. Qualifying Exam/99. Exports/QE Abstract For Dan_v2.pdf diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 01b6fb4f0..34eb2a6f6 100755 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -19,9 +19,11 @@ "id": "ab8f2254d8e0d443", "type": "leaf", "state": { - "type": "pdf", + "type": "markdown", "state": { - "file": "4. Qualifying Exam/98. With Revisions/QE Abstract For Dan_COMMENTS.pdf" + "file": "4. Qualifying Exam/2. Writing/QE Abstract For Dan.md", + "mode": "source", + "source": false } } }, @@ -38,7 +40,7 @@ } } ], - "currentTab": 2 + "currentTab": 1 }, { "id": "3a1d09a7117f754c", @@ -164,6 +166,7 @@ "state": { "type": "backlink", "state": { + "file": "4. Qualifying Exam/2. Writing/QE Abstract For Dan.md", "collapseAll": true, "extraContext": false, "sortOrder": "alphabetical", @@ -180,6 +183,7 @@ "state": { "type": "outgoing-link", "state": { + "file": "4. Qualifying Exam/2. Writing/QE Abstract For Dan.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -201,7 +205,9 @@ "type": "leaf", "state": { "type": "outline", - "state": {} + "state": { + "file": "4. Qualifying Exam/2. Writing/QE Abstract For Dan.md" + } } } ], @@ -238,14 +244,16 @@ "obsidian-full-calendar:Open Full Calendar": false } }, - "active": "9951000f41fb2302", + "active": "ab8f2254d8e0d443", "lastOpenFiles": [ + "4. Qualifying Exam/99. Exports/QE Abstract For Dan_v2.pdf", "4. Qualifying Exam/2. Writing/0. QE Abstract.md", - "4. Qualifying Exam/2. Writing/1. QE Goals and Outcomes.md", + "4. Qualifying Exam/2. Writing/QE Abstract For Dan.md", + "4. Qualifying Exam/99. Exports/QE Abstract For Dan_v1.pdf", "4. Qualifying Exam/98. With Revisions/QE Abstract For Dan_COMMENTS.pdf", + "4. Qualifying Exam/2. Writing/1. QE Goals and Outcomes.md", "1. Daily Notes/2024/9. September/2024-09-10.md", "4. Qualifying Exam/98. With Revisions", - "4. Qualifying Exam/2. Writing/QE Abstract For Dan.md", "4. Qualifying Exam/0. Overview/ME_PhD_Qualifying_Exam_Guideline_Fall2024.pdf", "300s School/302. NUCE 2100 - Fundamentals of Nuclear Engineering/2024-09-10 NUCE 2100 Class 2.md", "900s Calendars/2. Research/2024-09-10 Nuclear Engineering Steering Committee - Conf Room A UClub.md", @@ -274,7 +282,6 @@ "300s School/301. ME 2016 - Nonlinear Dynamical Systems 1/venv/share", "300s School/301. ME 2016 - Nonlinear Dynamical Systems 1/venv/pyvenv.cfg", "300s School/301. ME 2016 - Nonlinear Dynamical Systems 1/venv/lib/python3.12/site-packages/six.py", - "300s School/301. ME 2016 - Nonlinear Dynamical Systems 1/venv/lib/python3.12/site-packages/six-1.16.0.dist-info/top_level.txt", "300s School/301. ME 2016 - Nonlinear Dynamical Systems 1/venv/lib/python3.12/site-packages/scipy/ndimage/tests/dots.png", "300s School/301. ME 2016 - Nonlinear Dynamical Systems 1/venv/lib/python3.12/site-packages/matplotlib/mpl-data/sample_data/logo2.png", "300s School/301. ME 2016 - Nonlinear Dynamical Systems 1/venv/lib/python3.12/site-packages/matplotlib/mpl-data/sample_data/grace_hopper.jpg", diff --git a/4. Qualifying Exam/2. Writing/0. QE Abstract.md b/4. Qualifying Exam/2. Writing/0. QE Abstract.md index 2f6abf4f7..5be253598 100644 --- a/4. Qualifying Exam/2. Writing/0. QE Abstract.md +++ b/4. Qualifying Exam/2. Writing/0. QE Abstract.md @@ -84,13 +84,35 @@ We suggest using a recent technology to more efficiently generate perturbed plan [[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. Goal of the research ... +2. outcomes +3. approach +4. impact + +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 + -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 trained model will then be given a warm start of nominal plant as an input, and then generate a limitless number of unique perturbed plants for controller validation. Once created, these perturbed plants can be evaluated if the belong in the set of controllable plants. We create several perturbed plants +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] -For a given controller, an engineer can use robust control theory to find the set of allowable perturbations. This theory gives confidence that a model of a controller is robust, but verifying robustness on an implementation of a controller requires perturbed plants to be extracted from the set. - -This model can reduce the effort required of creating perturbed plants. \ No newline at end of file +These extracted elements 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. +[^10]: How? \ No newline at end of file diff --git a/4. Qualifying Exam/2. Writing/1. QE Goals and Outcomes.md b/4. Qualifying Exam/2. Writing/1. QE Goals and Outcomes.md index 5f64500fa..cceb66262 100644 --- a/4. Qualifying Exam/2. Writing/1. QE Goals and Outcomes.md +++ b/4. Qualifying Exam/2. Writing/1. QE Goals and Outcomes.md @@ -7,4 +7,10 @@ 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 \ No newline at end of file + 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) \ No newline at end of file diff --git a/4. Qualifying Exam/2. Writing/QE Abstract For Dan.md b/4. Qualifying Exam/2. Writing/QE Abstract For Dan.md index ce6d8a2bb..69e07a571 100644 --- a/4. Qualifying Exam/2. Writing/QE Abstract For Dan.md +++ b/4. Qualifying Exam/2. Writing/QE Abstract For Dan.md @@ -1,9 +1,12 @@ **Diffusion Generative Models For Unstructured Uncertainty Perturbations** -Real world control systems operate on physical plants that can have different dynamics than a nominal model. This discrepancy is called a perturbation, and can affect controller performance. The field of robust control creates a way to establish a 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. +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 -A model controller can be proven to control a set of plants, but a real controller can only control one plant at a time. Validating robustness for a 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 then sampled and used to create a perturbed plant. This is an knowledge intensive and time consuming process. +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. -We suggest using generative artificial intelligence to efficiently create perturbed plants. The diffusion generative model has shown great promise in creating novel and realistic samples from training data. This model can be used to 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. +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: 249 / 250 words** \ No newline at end of file +**STATS: 247 / 250 words** \ No newline at end of file diff --git a/4. Qualifying Exam/99. Exports/QE Abstract For Dan.pdf b/4. Qualifying Exam/99. Exports/QE Abstract For Dan_v1.pdf similarity index 100% rename from 4. Qualifying Exam/99. Exports/QE Abstract For Dan.pdf rename to 4. Qualifying Exam/99. Exports/QE Abstract For Dan_v1.pdf diff --git a/4. Qualifying Exam/99. Exports/QE Abstract For Dan_v2.pdf b/4. Qualifying Exam/99. Exports/QE Abstract For Dan_v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..42f80f192efc2b7bd395f1d557d7cfa0d7cb03c1 GIT binary patch literal 23371 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 IK~s_9pKFR&oB#j- literal 0 HcmV?d00001