From 2f0f6892b86dfd9a0f0bc121aeb41ad8eeb401f2 Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 11:10:58 -0800 Subject: [PATCH 1/8] Initial draft of bang-bang control --- SUMMARY.md | 2 + contents/PID/PID.md | 36 ++++++++++++++ contents/bang-bang/bang-bang.md | 46 ++++++++++++++++++ .../res/bang_bang_control_history.png | Bin 0 -> 13504 bytes .../bang-bang/res/bang_bang_temp_history.png | Bin 0 -> 35573 bytes contents/bang-bang/res/bang_control_fast.png | Bin 0 -> 16936 bytes contents/bang-bang/res/bang_temp_fast.png | Bin 0 -> 35589 bytes 7 files changed, 84 insertions(+) create mode 100644 contents/PID/PID.md create mode 100644 contents/bang-bang/bang-bang.md create mode 100644 contents/bang-bang/res/bang_bang_control_history.png create mode 100644 contents/bang-bang/res/bang_bang_temp_history.png create mode 100644 contents/bang-bang/res/bang_control_fast.png create mode 100644 contents/bang-bang/res/bang_temp_fast.png diff --git a/SUMMARY.md b/SUMMARY.md index 4d4597b1c..739a03077 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -44,3 +44,5 @@ * [Quantum Information](contents/quantum_information/quantum_information.md) * [Computus](contents/computus/computus.md) * [Approximate Counting Algorithm](contents/approximate_counting/approximate_counting.md) +* [Bang-Bang Control](contents/bang-bang/bang-bang.md) +* [PID Control](contents/PID/PID.md) diff --git a/contents/PID/PID.md b/contents/PID/PID.md new file mode 100644 index 000000000..71d365859 --- /dev/null +++ b/contents/PID/PID.md @@ -0,0 +1,36 @@ +# PID Control + +People learn differently, there's no doubt about that. I for one, have never been able to follow a lecture. No matter how interesting the subject might be, the teacher or professor either moves too slowly or too quickly, and in both cases I lose the motivation to study and learn outside of class. Looking back at all my past lectures, this is a bit of a shame. I genuinely love learning! In fact, nowadays there's nothing I enjoy more than poring through the [ArXiv](https://arxiv.org/), looking for the latest and greatest algorithms in physics and computer science. Sure, I cannot *understand* them all, but sometimes it's nice to be completely overwhelmed and chip away at problems one piece at a time. In the end, modern research is a conglomeration of fun little (or big) puzzles to solve; however, I find that many papers are too harsh for most people to tackle without a significant background in computer science or physics. For this reason, they are ignored by the public. We live in an era where nearly the entire sum of human knowledge is available at our fingertips, and yet people are blissfully unaware of the unique ideas and challenges that are pushing our understanding forward. + +I guess that is the point of this work. Throughout the past few years, I have been collecting small morsels of knowledge that are hard to express in any meaningful way through blog posts, YouTube, or twitch streaming. YouTube, for example, is a great place to introduce the general idea of an algorithm; however, I personally find it a poor choice to show a worked example. Twitch is great to show everything, but spending 5 hours programming up an algorithm for the first time is generally not everyone's idea of fun. Blog posts work well for this type of material; however, they lack a comprehensive nature that I tend to enjoy. So what's left? Well, I suppose that would be a book, which is an incredibly exciting prospect! + +See, when I was younger, maybe around Jr. High School age, I really wanted to become an author. I spent as much free time as I could manage writing fantastical stories about heroes and villains creating their own worlds and redefining reality. It was (and still is) an enjoyable hobby of mine. In many ways, my love of storytelling is echoed in my love of science and mathematics. In my mind, every discovery is its own story -- an adventure just waiting to be understood! It seems incredible to me that I now have the chance to combine my two favorite hobbies: writing and learning. + +Now, to be clear, I am not a master computer scientist. In fact, my degree is in physics and at the time of writing, I am in a PhD program studying quantum systems; however, I really, really love learning algorithms. About a year or two ago, I started a Twitch stream focused on computational physics. Almost every day, I would get up at 5:00AM and livecode something I had never coded before. It was incredibly fun and through working with the community, we learned a lot. In addition, I found my programming abilities improving significantly, and I learned to see the power in a community of hobby programmers. + +This text is a natural extension of that idea -- a community effort to learn as much as possible about as many algorithms as we can. Because of this, I feel like I should be as honest as possible about the nature of this book. As mentioned, I am not classically trained in computer science, so for the most part, I will be learning right along with you, the reader. My hope is to advance my own understanding of computer science while also providing a comprehensive guide for those wishing to improve their own understanding as well. + +For this reason, I hesitate to call this a work a "textbook" and would prefer to think of it as a lab notebook of sorts. It will be an archive filled with cool ideas in computer science and physics that I hope will be interesting in their own right. My hope is that this book perfectly straddles the line between comprehensiveness and pleasure and will be an enjoyable read for anyone at any stage on their hobby programming journey. + +Keeping with the community theme, this book is freely available on [GitHub](https://github.com/algorithm-archivists/algorithm-archive) and [GitHub pages](https://www.algorithm-archive.org). Please feel free to read / browse the content available there. If you have any questions / comments / concerns, please let me know. This book is a community project and will only work if there is a community that works on it! + +As a final note before beginning the bulk text, I would like for this book to be "language agnostic." This basically means that I would like to use pseudocode in the main text, but provide source code in any language you could want in the appendix. Though this may seem a little counter-intuitive, I think it offers the greatest flexibility for myself as the author and for the community to develop their own code in any way they please. In fact, if you feel inclined, please feel free to implement your own version of any algorithm mentioned in this text. If you submit it and it passes all my *ahem* rigorous tests, then I can throw it at the end of each chapter with attribution to you! + +So I guess that's all for now. Because this book is freely available online, I may be heavily modifying the content as we delve deeper into the archive of arcane algorithms. + +## License + +##### Code Examples + +The code examples are licensed under the MIT license (found in [LICENSE.md](https://github.com/algorithm-archivists/algorithm-archive/blob/main/LICENSE.md)). + +##### Text + +The text of this chapter was written by [James Schloss](https://github.com/leios) and is licensed under the [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/legalcode). + +[

](https://creativecommons.org/licenses/by-sa/4.0/) + +##### Pull Requests + +After initial licensing ([#560](https://github.com/algorithm-archivists/algorithm-archive/pull/560)), the following pull requests have modified the text or graphics of this chapter: +- none diff --git a/contents/bang-bang/bang-bang.md b/contents/bang-bang/bang-bang.md new file mode 100644 index 000000000..2864967d5 --- /dev/null +++ b/contents/bang-bang/bang-bang.md @@ -0,0 +1,46 @@ +# Bang-Bang Control + +A bang-bang controller is one of the simplest forms of feedback controller, meant for systems in which a simple on/off switch is used to regulate some aspect of a system to stay within a desired range. The controller will usually specify acceptable limits for the system (temperature limits, for example), and will toggle the input between on/off states as needed to keep the system within the specified range. Common everyday examples include water heaters and air conditioning controllers. + +##### Simple Example: Water Heater Control +Imagine a water heater that needs to regulate temperature, keeping within an allowable range of 45 to 50°C. The heater only has binary on/off control, with no in-between states. In order to regulate the system temperature, the heater must cycle between on/off states to keep the temperature in spec. A basic bang-bang controller would implement the following logic: + +| System State | Action | +| -------------- | ------------- | +| Temperature is below desired range (<45°C) | Turn heater ON | +| Temperature exceeds desired range (>50°C) | Turn heater OFF | + +Implementing just these two rules will keep the system temperature within the desired range, with a side effect that the system oscillates between the two limits as the heater turns on and off: +

+ +

+

+ +

+ +An important factor to consider when designing a bang-bang controller is the frequency at which a given controller will toggle the system state. In the example above, with a wide allowable temperature band of 45-50°C, the heater would be powered every ~18 minutes to maintain the overall system. If tighter control over the output were desired (for example, keeping temperature within a narrow range of 45 - 45.2°C), a bang-bang controller could still be used to regulate the system, but the heater would have to toggle on/off much more frequently to keep temperature in the narrower allowable range. Depending on the system being controlled, this rapid on/off cycling may be undesirable: + +

+ +

+

+ +

+ +##### Pros: +1. Very simple to implement. +2. Can be used to control a system that has only binary on/off states. + + +##### Cons: +1. The system is not controlled to a *specific* target value; it instead oscillates between specified upper and lower limits. +2. Requiring tight min/max limits on the system output may require the controller to toggle on/off very frequently to maintain the correct output. This may be undesirable depending on the system being controlled. + +##### More Reading: +Bang-bang controllers are only meant for systems controlled with binary on/off inputs. For systems with a continously variable input signal (for example, cruise control in a car), try [PID Control](https://www.algorithm-archive.org/contents/PID/PID.html). + + +## License +The text of this chapter was written by [wca747](https://github.com/wca747) and is licensed under the [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/legalcode). + +[

](https://creativecommons.org/licenses/by-sa/4.0/) \ No newline at end of file diff --git a/contents/bang-bang/res/bang_bang_control_history.png b/contents/bang-bang/res/bang_bang_control_history.png new file mode 100644 index 0000000000000000000000000000000000000000..28cd439f208a198dde2e506032a8ab8565a1b05d GIT binary patch literal 13504 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

V=&lrid1s- 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 literal 0 HcmV?d00001 diff --git a/contents/bang-bang/res/bang_temp_fast.png b/contents/bang-bang/res/bang_temp_fast.png new file mode 100644 index 0000000000000000000000000000000000000000..9aab1a411944b42c9a98e88ef6a125130d6cecc0 GIT binary patch literal 35589 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 literal 0 HcmV?d00001 From c7bc7a3fca9d7a30634a7791b1dbb3c7b90d1d27 Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 13:50:59 -0800 Subject: [PATCH 2/8] Update bang-bang.md --- contents/bang-bang/bang-bang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/bang-bang/bang-bang.md b/contents/bang-bang/bang-bang.md index 2864967d5..236fe6ad0 100644 --- a/contents/bang-bang/bang-bang.md +++ b/contents/bang-bang/bang-bang.md @@ -1,6 +1,6 @@ # Bang-Bang Control -A bang-bang controller is one of the simplest forms of feedback controller, meant for systems in which a simple on/off switch is used to regulate some aspect of a system to stay within a desired range. The controller will usually specify acceptable limits for the system (temperature limits, for example), and will toggle the input between on/off states as needed to keep the system within the specified range. Common everyday examples include water heaters and air conditioning controllers. +A bang-bang controller is one of the simplest forms of feedback controller, used in systems where a simple on/off control signal is used to regulate some aspect of the system (temperature, for example). The controller compares the measured system state with user-defined min/max limits, and toggles the input between on/off states as needed to keep the system within the specified range. Common everyday examples include water heaters and air conditioning controllers. ##### Simple Example: Water Heater Control Imagine a water heater that needs to regulate temperature, keeping within an allowable range of 45 to 50°C. The heater only has binary on/off control, with no in-between states. In order to regulate the system temperature, the heater must cycle between on/off states to keep the temperature in spec. A basic bang-bang controller would implement the following logic: From 50f5806f48089c0384e1a5f16253125ed01dc722 Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 13:54:28 -0800 Subject: [PATCH 3/8] Update bang-bang.md --- contents/bang-bang/bang-bang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/bang-bang/bang-bang.md b/contents/bang-bang/bang-bang.md index 236fe6ad0..82473e821 100644 --- a/contents/bang-bang/bang-bang.md +++ b/contents/bang-bang/bang-bang.md @@ -18,7 +18,7 @@ Implementing just these two rules will keep the system temperature within the de

-An important factor to consider when designing a bang-bang controller is the frequency at which a given controller will toggle the system state. In the example above, with a wide allowable temperature band of 45-50°C, the heater would be powered every ~18 minutes to maintain the overall system. If tighter control over the output were desired (for example, keeping temperature within a narrow range of 45 - 45.2°C), a bang-bang controller could still be used to regulate the system, but the heater would have to toggle on/off much more frequently to keep temperature in the narrower allowable range. Depending on the system being controlled, this rapid on/off cycling may be undesirable: +An important factor to consider when designing a bang-bang controller is the frequency at which a given controller will toggle the system state. In the example above, with a wide allowable temperature band of 45-50°C, the heater would be powered every ~18 minutes to maintain the overall system. If tighter control over the output were desired (for example, limiting temperature to a narrow range of 45 - 45.2°C), a bang-bang controller can still be used to regulate the system, but the heater would have to toggle on/off much more frequently to keep the temperature in the specified range. Depending on the system being controlled, this rapid on/off cycling may be undesirable:

From a0297e2bc2fd724c1551b4f6da2d54fc62ffb59e Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 16:14:07 -0800 Subject: [PATCH 4/8] Update bang-bang.md --- contents/bang-bang/bang-bang.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contents/bang-bang/bang-bang.md b/contents/bang-bang/bang-bang.md index 82473e821..0b17039b1 100644 --- a/contents/bang-bang/bang-bang.md +++ b/contents/bang-bang/bang-bang.md @@ -1,16 +1,16 @@ # Bang-Bang Control -A bang-bang controller is one of the simplest forms of feedback controller, used in systems where a simple on/off control signal is used to regulate some aspect of the system (temperature, for example). The controller compares the measured system state with user-defined min/max limits, and toggles the input between on/off states as needed to keep the system within the specified range. Common everyday examples include water heaters and air conditioning controllers. +A bang-bang controller is one of the simplest forms of feedback controller, used in systems where a simple on/off control signal is used to regulate some aspect of the system (temperature, for example). The controller compares the measured system state with user-defined min/max limits and toggles the input between on/off states as needed to keep the system within the specified range. Common everyday examples include water heaters and air conditioning controllers. ##### Simple Example: Water Heater Control -Imagine a water heater that needs to regulate temperature, keeping within an allowable range of 45 to 50°C. The heater only has binary on/off control, with no in-between states. In order to regulate the system temperature, the heater must cycle between on/off states to keep the temperature in spec. A basic bang-bang controller would implement the following logic: +Imagine a water heater that needs to regulate temperature, keeping within an allowable range of 45 to 50°C. The heater only has binary on/off control with no in-between states. In order to regulate the system temperature, the heater must cycle between on/off states to keep the temperature within the specified range. A basic bang-bang controller would implement the following logic: | System State | Action | | -------------- | ------------- | | Temperature is below desired range (<45°C) | Turn heater ON | | Temperature exceeds desired range (>50°C) | Turn heater OFF | -Implementing just these two rules will keep the system temperature within the desired range, with a side effect that the system oscillates between the two limits as the heater turns on and off: +Implementing just these two rules will keep the system temperature within the desired range. The overall system will oscillate between the two limits as the heater turns on and off:

@@ -34,7 +34,7 @@ An important factor to consider when designing a bang-bang controller is the fre ##### Cons: 1. The system is not controlled to a *specific* target value; it instead oscillates between specified upper and lower limits. -2. Requiring tight min/max limits on the system output may require the controller to toggle on/off very frequently to maintain the correct output. This may be undesirable depending on the system being controlled. +2. Setting tight min/max limits on the system output may require the controller to toggle on/off very frequently to maintain the correct output. This may be undesirable depending on the system being controlled (for example, excess wear and tear caused by rapidly turning a pump on and off.) ##### More Reading: Bang-bang controllers are only meant for systems controlled with binary on/off inputs. For systems with a continously variable input signal (for example, cruise control in a car), try [PID Control](https://www.algorithm-archive.org/contents/PID/PID.html). From b29de3b2c5df7da1bb91e4265900cbc3171e38a2 Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 16:14:51 -0800 Subject: [PATCH 5/8] Update bang-bang.md --- contents/bang-bang/bang-bang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/bang-bang/bang-bang.md b/contents/bang-bang/bang-bang.md index 0b17039b1..49b311c8f 100644 --- a/contents/bang-bang/bang-bang.md +++ b/contents/bang-bang/bang-bang.md @@ -37,7 +37,7 @@ An important factor to consider when designing a bang-bang controller is the fre 2. Setting tight min/max limits on the system output may require the controller to toggle on/off very frequently to maintain the correct output. This may be undesirable depending on the system being controlled (for example, excess wear and tear caused by rapidly turning a pump on and off.) ##### More Reading: -Bang-bang controllers are only meant for systems controlled with binary on/off inputs. For systems with a continously variable input signal (for example, cruise control in a car), try [PID Control](https://www.algorithm-archive.org/contents/PID/PID.html). +Bang-bang controllers are only meant for systems controlled with binary on/off inputs. For systems with a continously variable input signal (for example, cruise control in a car), try [PID Control(coming soon...)](https://www.algorithm-archive.org/contents/PID/PID.html). ## License From 739dc2f2a96ede29bb19fa5f3307c9c75af12227 Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 16:16:57 -0800 Subject: [PATCH 6/8] placeholder for PID control --- contents/PID/PID.md | 18 +----------------- contents/bang-bang/bang-bang.md | 2 +- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/contents/PID/PID.md b/contents/PID/PID.md index 71d365859..5c649e468 100644 --- a/contents/PID/PID.md +++ b/contents/PID/PID.md @@ -1,22 +1,6 @@ # PID Control -People learn differently, there's no doubt about that. I for one, have never been able to follow a lecture. No matter how interesting the subject might be, the teacher or professor either moves too slowly or too quickly, and in both cases I lose the motivation to study and learn outside of class. Looking back at all my past lectures, this is a bit of a shame. I genuinely love learning! In fact, nowadays there's nothing I enjoy more than poring through the [ArXiv](https://arxiv.org/), looking for the latest and greatest algorithms in physics and computer science. Sure, I cannot *understand* them all, but sometimes it's nice to be completely overwhelmed and chip away at problems one piece at a time. In the end, modern research is a conglomeration of fun little (or big) puzzles to solve; however, I find that many papers are too harsh for most people to tackle without a significant background in computer science or physics. For this reason, they are ignored by the public. We live in an era where nearly the entire sum of human knowledge is available at our fingertips, and yet people are blissfully unaware of the unique ideas and challenges that are pushing our understanding forward. - -I guess that is the point of this work. Throughout the past few years, I have been collecting small morsels of knowledge that are hard to express in any meaningful way through blog posts, YouTube, or twitch streaming. YouTube, for example, is a great place to introduce the general idea of an algorithm; however, I personally find it a poor choice to show a worked example. Twitch is great to show everything, but spending 5 hours programming up an algorithm for the first time is generally not everyone's idea of fun. Blog posts work well for this type of material; however, they lack a comprehensive nature that I tend to enjoy. So what's left? Well, I suppose that would be a book, which is an incredibly exciting prospect! - -See, when I was younger, maybe around Jr. High School age, I really wanted to become an author. I spent as much free time as I could manage writing fantastical stories about heroes and villains creating their own worlds and redefining reality. It was (and still is) an enjoyable hobby of mine. In many ways, my love of storytelling is echoed in my love of science and mathematics. In my mind, every discovery is its own story -- an adventure just waiting to be understood! It seems incredible to me that I now have the chance to combine my two favorite hobbies: writing and learning. - -Now, to be clear, I am not a master computer scientist. In fact, my degree is in physics and at the time of writing, I am in a PhD program studying quantum systems; however, I really, really love learning algorithms. About a year or two ago, I started a Twitch stream focused on computational physics. Almost every day, I would get up at 5:00AM and livecode something I had never coded before. It was incredibly fun and through working with the community, we learned a lot. In addition, I found my programming abilities improving significantly, and I learned to see the power in a community of hobby programmers. - -This text is a natural extension of that idea -- a community effort to learn as much as possible about as many algorithms as we can. Because of this, I feel like I should be as honest as possible about the nature of this book. As mentioned, I am not classically trained in computer science, so for the most part, I will be learning right along with you, the reader. My hope is to advance my own understanding of computer science while also providing a comprehensive guide for those wishing to improve their own understanding as well. - -For this reason, I hesitate to call this a work a "textbook" and would prefer to think of it as a lab notebook of sorts. It will be an archive filled with cool ideas in computer science and physics that I hope will be interesting in their own right. My hope is that this book perfectly straddles the line between comprehensiveness and pleasure and will be an enjoyable read for anyone at any stage on their hobby programming journey. - -Keeping with the community theme, this book is freely available on [GitHub](https://github.com/algorithm-archivists/algorithm-archive) and [GitHub pages](https://www.algorithm-archive.org). Please feel free to read / browse the content available there. If you have any questions / comments / concerns, please let me know. This book is a community project and will only work if there is a community that works on it! - -As a final note before beginning the bulk text, I would like for this book to be "language agnostic." This basically means that I would like to use pseudocode in the main text, but provide source code in any language you could want in the appendix. Though this may seem a little counter-intuitive, I think it offers the greatest flexibility for myself as the author and for the community to develop their own code in any way they please. In fact, if you feel inclined, please feel free to implement your own version of any algorithm mentioned in this text. If you submit it and it passes all my *ahem* rigorous tests, then I can throw it at the end of each chapter with attribution to you! - -So I guess that's all for now. Because this book is freely available online, I may be heavily modifying the content as we delve deeper into the archive of arcane algorithms. +temp placeholder... ## License diff --git a/contents/bang-bang/bang-bang.md b/contents/bang-bang/bang-bang.md index 49b311c8f..5850a44fb 100644 --- a/contents/bang-bang/bang-bang.md +++ b/contents/bang-bang/bang-bang.md @@ -37,7 +37,7 @@ An important factor to consider when designing a bang-bang controller is the fre 2. Setting tight min/max limits on the system output may require the controller to toggle on/off very frequently to maintain the correct output. This may be undesirable depending on the system being controlled (for example, excess wear and tear caused by rapidly turning a pump on and off.) ##### More Reading: -Bang-bang controllers are only meant for systems controlled with binary on/off inputs. For systems with a continously variable input signal (for example, cruise control in a car), try [PID Control(coming soon...)](https://www.algorithm-archive.org/contents/PID/PID.html). +Bang-bang controllers are only meant for systems controlled with binary on/off inputs. For systems with a continously variable input signal (for example, cruise control in a car), try PID Control. ## License From 1c3c0bd914ec43e0820417d5535cd753b754a142 Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 16:19:44 -0800 Subject: [PATCH 7/8] removed PID placeholder --- SUMMARY.md | 2 +- contents/PID/PID.md | 20 -------------------- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 contents/PID/PID.md diff --git a/SUMMARY.md b/SUMMARY.md index 739a03077..66c8273de 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -45,4 +45,4 @@ * [Computus](contents/computus/computus.md) * [Approximate Counting Algorithm](contents/approximate_counting/approximate_counting.md) * [Bang-Bang Control](contents/bang-bang/bang-bang.md) -* [PID Control](contents/PID/PID.md) + diff --git a/contents/PID/PID.md b/contents/PID/PID.md deleted file mode 100644 index 5c649e468..000000000 --- a/contents/PID/PID.md +++ /dev/null @@ -1,20 +0,0 @@ -# PID Control - -temp placeholder... - -## License - -##### Code Examples - -The code examples are licensed under the MIT license (found in [LICENSE.md](https://github.com/algorithm-archivists/algorithm-archive/blob/main/LICENSE.md)). - -##### Text - -The text of this chapter was written by [James Schloss](https://github.com/leios) and is licensed under the [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/legalcode). - -[

](https://creativecommons.org/licenses/by-sa/4.0/) - -##### Pull Requests - -After initial licensing ([#560](https://github.com/algorithm-archivists/algorithm-archive/pull/560)), the following pull requests have modified the text or graphics of this chapter: -- none From d6a49de5d031f95f40ee95501cc80f4e9e15fb31 Mon Sep 17 00:00:00 2001 From: wca747 Date: Sat, 4 Dec 2021 19:55:26 -0800 Subject: [PATCH 8/8] Update bang-bang.md Split each sentence into it's own line per suggestion from ntindle. --- contents/bang-bang/bang-bang.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/contents/bang-bang/bang-bang.md b/contents/bang-bang/bang-bang.md index 5850a44fb..a56fdf68c 100644 --- a/contents/bang-bang/bang-bang.md +++ b/contents/bang-bang/bang-bang.md @@ -1,16 +1,22 @@ # Bang-Bang Control -A bang-bang controller is one of the simplest forms of feedback controller, used in systems where a simple on/off control signal is used to regulate some aspect of the system (temperature, for example). The controller compares the measured system state with user-defined min/max limits and toggles the input between on/off states as needed to keep the system within the specified range. Common everyday examples include water heaters and air conditioning controllers. +A bang-bang controller is one of the simplest forms of feedback controller, used in systems where a simple on/off control signal is used to regulate some aspect of the system (temperature, for example). +The controller compares the measured system state with user-defined min/max limits and toggles the input between on/off states as needed to keep the system within the specified range. +Common everyday examples include water heaters and air conditioning controllers. ##### Simple Example: Water Heater Control -Imagine a water heater that needs to regulate temperature, keeping within an allowable range of 45 to 50°C. The heater only has binary on/off control with no in-between states. In order to regulate the system temperature, the heater must cycle between on/off states to keep the temperature within the specified range. A basic bang-bang controller would implement the following logic: +Imagine a water heater that needs to regulate temperature, keeping within an allowable range of 45 to 50°C. +The heater only has binary on/off control with no in-between states. +In order to regulate the system temperature, the heater must cycle between on/off states to keep the temperature within the specified range. +A basic bang-bang controller would implement the following logic: | System State | Action | | -------------- | ------------- | | Temperature is below desired range (<45°C) | Turn heater ON | | Temperature exceeds desired range (>50°C) | Turn heater OFF | -Implementing just these two rules will keep the system temperature within the desired range. The overall system will oscillate between the two limits as the heater turns on and off: +Implementing just these two rules will keep the system temperature within the desired range. +The overall system will oscillate between the two limits as the heater turns on and off:

@@ -18,7 +24,10 @@ Implementing just these two rules will keep the system temperature within the de

-An important factor to consider when designing a bang-bang controller is the frequency at which a given controller will toggle the system state. In the example above, with a wide allowable temperature band of 45-50°C, the heater would be powered every ~18 minutes to maintain the overall system. If tighter control over the output were desired (for example, limiting temperature to a narrow range of 45 - 45.2°C), a bang-bang controller can still be used to regulate the system, but the heater would have to toggle on/off much more frequently to keep the temperature in the specified range. Depending on the system being controlled, this rapid on/off cycling may be undesirable: +An important factor to consider when designing a bang-bang controller is the frequency at which a given controller will toggle the system state. +In the example above, with a wide allowable temperature band of 45-50°C, the heater would be powered every ~18 minutes to maintain the overall system. +If tighter control over the output is desired (for example, limiting temperature to a narrow range of 45 - 45.2°C), a bang-bang controller can still be used to regulate the system, but the heater would have to toggle on/off much more frequently to keep the temperature in the specified range. +Depending on the system being controlled, this rapid on/off cycling may be undesirable:

@@ -34,10 +43,12 @@ An important factor to consider when designing a bang-bang controller is the fre ##### Cons: 1. The system is not controlled to a *specific* target value; it instead oscillates between specified upper and lower limits. -2. Setting tight min/max limits on the system output may require the controller to toggle on/off very frequently to maintain the correct output. This may be undesirable depending on the system being controlled (for example, excess wear and tear caused by rapidly turning a pump on and off.) +2. Setting tight min/max limits on the system output may require the controller to toggle on/off very frequently to maintain the correct output. +This may be undesirable depending on the system being controlled (for example, excess wear and tear caused by rapidly turning a pump on and off.) ##### More Reading: -Bang-bang controllers are only meant for systems controlled with binary on/off inputs. For systems with a continously variable input signal (for example, cruise control in a car), try PID Control. +Bang-bang controllers are only meant for systems controlled with binary on/off inputs. +For systems with a continously variable input signal (for example, cruise control in a car), try PID Control. ## License