Basics of Design CC Blog Research & Design Hub

Intro to Control Systems

Written by Joseph Corleto

Part 1: Meet Our Plant

In this article, we embark on a journey through control engineering experiments. This multi-part series aims to familiarize you with jargon and design techniques that are common practice in this engineering subdiscipline.

  • What is control systems engineering?
  • What are the basics of control systems engineering?
  • What is a plant in control systems?
  • Signswise 200mmx200mm 12V 220W
  • silicone rubber heating heater for 3D printer heated beds
  • ESP32-S3

Control systems are a wonderful and complex subject. They’re in our lives without many of us noticing or giving them much thought. Obvious examples include technologies like cruise control in our vehicles, or temperature control within our homes. But more subtle examples abound, such as how toilet tanks magically “know” to refill the bowl after every flush, or how human bodies regularly regulate blood glucose levels with the help of the pancreas. When I graduated with my BSEE degree over 10 years ago, I chose to specialize in this subdiscipline because it seemed like sorcery that I wanted to get my hands on. After witnessing inverted pendulums dance on the edge of instability, levitating magnets defy gravity, and auto-positioning dart boards making anyone look like a pro, I knew that I wanted to sink my teeth into control systems.

But alas, the complex theory I learned in school did not align so well with what I’ve been exposed to in the industry. I’m not knocking my alma mater—what I learned there is indeed used in the real world. But all my engineering positions to date haven’t required the same level of theory.

What’s the goal of this multi-part article? Well, the way I see it, there are concepts and techniques in control systems that make electrical and computer engineers more marketable for future jobs, and more effective at their current roles. I’d like to offer a crash course in practical control systems, without leaning on heavy math. At the end of this series, I want to define some common terminology in the field so that, should you be the lucky person tasked with solving a control systems problem, you can feel a little more informed and prepared. Along the way, we’ll use a real-life plant (as you’ll find out soon, this is not something that grows from the Earth), and figure out how to control its behavior with industry-common solutions. Often, control systems use microcontrollers (MCUs) to both measure and excite the actuating components that drive the system—I’ll be using an ESP32-S3 as the platform.


Control system engineering is a discipline in which you add components (called the actuator or controller) to a physical system so as to manipulate it to behave the way you want. Some physical systems may not need a whole lot of control engineering to get the desired behavior, while others need you to go to great lengths to achieve acceptable results. In general, there are two types of control systems: open-loop and closed-loop. What does that mean, you ask? Open-loop systems don’t have feedback or information on the current state or output of the system, while closed-loop systems do have a way to grab information (often through sensors) to better control the output. The physical system to be controlled is referred to as the “plant.” By that I don’t mean something like Audrey II from Little Shop of Horrors, but a factory or place where something is made—for example, a power plant.

An example of an open-loop system is a toaster oven. Bread goes in, gets heated for a certain amount of time, and the result is a toasted piece of bread. What if we took that same piece of toast and placed it into the oven again? Well, it would do the same thing again, and we will probably wind up with a burnt piece of bread. The goal of the system is to toast bread, with the assumption that each piece you place in it is at a consistent and known initial state. It never measures the current toastiness of the bread. To do that, it would need to be closed-loop. In other words, it would need to have sensors to measure the bread’s initial toastiness. In a closed-loop toaster oven, if a piece of bread was already toasted beyond a given toastiness setting chosen by the user, the toaster would turn off immediately. This same behavior is seen at gas stations when a gas pump clicks off when it detects that your car tank is full so that you don’t overfill your tank.

Another practical example of a closed-loop system is an air conditioner. When you set it to a certain temperature, it continues to blow cool air until the room reaches that temperature. Once it does, the AC turns off, and re-engages when the room becomes too warm again. If the AC were open-loop, it would cool the room constantly, at whatever level it was set at. That could mean it does an okay job, or that it over- or under-performs.

Open-loop control and closed-loop control both have their time and place. Usually, consistent, predictable initial conditions warrant the use of open-loop systems, especially if you want to save cost on extra components (like a toastiness sensor). They also lend themselves well to cases where the result doesn’t need to be too precise. If your bread’s initial state changes, you can offset it by changing the heating time/level settings—or just deal with a less toasty (or over-toasted) piece of bread. Other example of open-loop systems include washing machines, dryers, light bulbs, and addressable RGB LEDs.


Closed-loop systems come up often, as they’re used for precise control in many engineered systems. But we’ll also look at open-loop responses initially to help us better understand these systems. There are a ton of things to consider when figuring out how a plant should behave and how to control it. But before we get to those details, we need to understand the major parts of a control system. Whether open- or closed-loop, the terminology is the same.

The input in a control system is referred to as the “reference” or “setpoint.” It’s where you’d like the system to operate functionally. For example, the setpoint for a temperature control system is typically an operating temperature. The output of a control system is known as the “controlled variable” or “process variable.” It’s the current state of the plant, where it’s operating at a moment in time. In the same example, it would be the current temperature of the medium or device whose temperature is being controlled.

Great! We now have enough to draw a block diagram of a typical closed-loop control system (Figure 1). Notice the “input transducer” block right after our setpoint. This is a physical system to help convert our setpoint command into something the control system will understand. For example, it could be a dial to change a voltage going to an MCU or some other sub-component. The other block is the sensor, which measures the current state of the controlled variable. This measurement is then sent back to a summing junction to generate an error or actuating signal for the controller to interpret. What type of output the controller produces is completely up to the designer to create. It’s where the brains are hidden in the control system.

Figure 1
A general block diagram of a closed-loop control system. (Source: Control Systems Engineering, 6th Edition, page 8)
Figure 1
A general block diagram of a closed-loop control system. (Source: Control Systems Engineering, 6th Edition, page 8)

The system in Figure 1 is classified as a single-input single-output (SISO) control system. Most people will come across SISOs. There are more complex structures, such as multiple-input multiple-output (MIMO) control systems. The design process for these is vastly more complicated, requiring the aid of sophisticated simulation tools and accurate plant models. Specifically, MIMO systems are typically designed with “state-space representation.” State-space representation, in a nutshell, is a mathematical model of the entire control system that details how a system evolves over time. It is said to be represented in the time domain, and the mathematics involve first-order differential equations written in matrix form. But don’t worry about that! This article series will only deal with SISO systems, as these are sufficient to give us a firm grasp of some core control engineering concepts.


As much as I’d like to use an eye-catching plant (like, say, a magnetic levitation system [1]), I think it would be too much of a distraction, and too costly to build for newcomers. Instead, the plant in our example will be a heated silicone mat used for 3D printer platforms. Specifically, the “Signswise 200mmx200mm 12V 220W silicone rubber heating heater for 3D printer heated beds” (Figure 2). Rolls right off the tongue! No, it’s not as sexy as a levitation control system. But temperature control systems pop up often, so it’s worth learning from one. Hey, I even used a toaster and heater example earlier in this article—maybe that was a bit of foreshadowing.

Figure 2
A silicone heater that is listed on Amazon. There is a nichrome wire inside that can be powered to warm the surface. There is also an embedded thermistor inside.
Figure 2
A silicone heater that is listed on Amazon. There is a nichrome wire inside that can be powered to warm the surface. There is also an embedded thermistor inside.

Let’s have a look at Figure 3. The silicone surrounds an internal heater, likely Nichrome wire, along with a thermistor, all shown in the figure. The silicone heater will be our plant, and the thermistor our sensor. The controller will be a good ol’ ESP32-S3, coupled with a CMX60D20 solid-state relay. Electrical specs that are important to note are the input voltage and load current. The minimum input voltage required is 3VDC. Since our I/O for the ESP32-S3 is 3.3VDC, we should be good to go. Our heater is specified to be rated at 12V, 220W. This means that it can handle 18A—yikes! The SSR I chose can handle 20A, but this is reaching its limit and will likely need something to cool it under operation, like a fan. Not only that, but I also don’t have a power supply that can source that much current, and pushing the silicone heater to its limit is not something I’m a…fan of doing. Instead, I have access to a power supply that sources almost 7A when I have the outputs internally wired up in parallel. It might be a little slow to heat up, but for demonstration’s stake, it’ll do.

Figure 3
Our example control system that we’ll be messing around with. Notice that all the elements of a closed-loop system are present.
Figure 3
Our example control system that we’ll be messing around with. Notice that all the elements of a closed-loop system are present.

I had no choice but to provide a lower-than-necessary current through the heater due to equipment limitations in my lab. But this isn’t unusual in our world, and sometimes underpowering the plant is a good thing—by not pushing our heater to its limit, we can preserve its integrity and operational lifetime. However, by doing this, we’re limiting our plant’s operating speed. That is, we’re slowing down its “rise time.” Rise time is defined as the time it takes to get from an initial operating state to another. For the initial state, rise time is typically counted as the time it takes to get from 10% of the setpoint to 90% of the setpoint. These sorts of requirements—where the system needs to last long in the field, not use as much power, and not stress components—are common in control system projects. But it’s important to understand that adhering to these requirements will most certainly increase the rise time. Figure 4 illustrates a rise time measurement scheme. As a side note: the lower current through our heater will not only affect the plant’s rise time, but also how hot the heater can potentially get as well.

Figure 4
Definition of rise time measurement (Source: University of Illinois Urbana-Champaign [2])
Figure 4
Definition of rise time measurement (Source: University of Illinois Urbana-Champaign [2])

There is another requirement that needs to be defined: how much overshoot is allowed. “Overshoot” is the maximum amount that the system exceeds its setpoint, divided by the setpoint, which makes it a percentage. This requirement greatly depends on your system. For our silicone heater, I am okay with some overshoot—let’s say 5%. For other systems, overshoot could be detrimental or flat-out annoying. Ever been on an elevator where it goes slightly past the floor it is supposed to stop on, only then to slowly even itself with the floor? I have, and it is incredibly irritating!

Finally, we have the “steady-state error.” It is defined as the difference between the reference and the setpoint. An example would be if we commanded our temperature controller to operate the silicone heater at 100°C, but instead it is at 99°C, resulting in a steady state error of 1°C. Again, this totally depends on the requirements in question. For me, I would like to have a steady state error of less than 0.5°C.


A control law is an algorithm contained within the controller. It holds the method of what to do at a certain point in time over the operation of the system. This translates to how much actuation should be directed toward the plant given the error signal dynamics. There are a ton of control laws out there. To name just a few controllers: on/off (also known as bang-bang), proportional-integral-derivative (PID), feedforward, pole placement, linear-quadratic, and fuzzy logic.

As a side note, I have used almost all of these in an academic setting when I was a student in controls classes, but I have only seen two in my engineering career: on/off and PID control. Please note that I have never been a full-fledged controls engineer in the industry, so just because I haven’t used most of what I learned in school does not mean these are never used industry.


As I said, the first control law I see regularly in the industry is the on/off control, or bang-bang control. It’s simple to understand. The actuation to the plant is only one of two states: on or off. That is to say that if we have not reached our setpoint yet, fully actuate the plant. Once we are at or past the setpoint, stop all actuation to the plant. To spare our components from intense wear and tear—for example, a relay—we can introduce a bit of hysteresis. This means that depending on the state of the system, we can introduce a bit of actuation lag once the setpoint is met. For example, if we need a heater to be at a nominal temperature of 100°C, instead of turning off the power to it right when it reaches this setpoint, we can have our controller cut the power at some amount above this—maybe 102°C. Once this occurs and power is turned off, we can do the same thing in the other direction: At 98°C, we can turn the power back on. Essentially, it’s like having two setpoints based on the situation at hand.

This simplicity comes at a cost, however. Even though we can generally control a plant within a certain range, we can almost never get to precisely operate it where we want it to be. The output behavior tends to be oscillatory as a result. Meanwhile, if our plant does not need hysteresis because it can respond fast to actuation—essentially getting rid of the oscillation—there is usually some downside. For electro-mechanical relays, their contacts wear out quickly. Electrically controllable valves may overheat and get damaged. In high-power systems with solid-state components, there are too many high voltage and current transients degrading the system’s lifetime. As a result, on/off control is reserved for only the simplest control systems that have loose requirements. Figure 5 shows the stability response of a typical on/off controlled system.

Figure 5
On/off controller response behavior. Notice that oscillations are present, causing something marginally stable. (Source:
Figure 5
On/off controller response behavior. Notice that oscillations are present, causing something marginally stable. (Source:

The second control law I see frequently in the industry is PID control. It’s not at all like the on/off controller. Instead of having two states for actuation, we actuate (mostly) anywhere from fully off to fully on. For example, instead of applying 0V or 12V to a heater, we can apply 2V or 6.5V, or whatever our PID controller deems necessary as the actuation to the plant. And in general, this is how most control laws that offer precise control need to be. To better understand the PID control scheme, check out Figure 6.

Figure 6
Block diagram of a PID controller. (Source:
Figure 6
Block diagram of a PID controller. (Source:

When you look at this the first time around, it can be intimidating—thanks in no small part to the calculus notation. For now, just think of PID control as three separate operational control laws: present, past, and future. The proportional block applies control over what is occurring now in the system. The integral block applies control based on what happened in the past. The derivative block applies control based on how things might look in the future.

And this is where I am going to ask for some patience on your side for a future article, as I want to give this type of control the proper treatment. If I start intermingling PID control without looking at some open-loop response and basic on/off controls, it would get confusing. So, without further ado, let’s introduce our plant.


I know: the fun is over already? Yes, it’s closing time, go home (or turn the page and read Mike Lynes’s technical poetry). But I hope that this article has piqued your interest in control systems. In the next piece, we’re going to take a look at some open-loop responses of our plant to get a feel for how it behaves. And then we’ll try to apply the on/off control law and see how we can get it to behave as we wish. Will it be good enough? Will PID control have to come in and save the day? I guess we’ll have to wait and see. Thank you for reading! 

[1] ECE 486 Control Systems, Lecture 6:
[2] Magnetic levitation system demonstration:

Espressif Systems |


Keep up-to-date with our FREE Weekly Newsletter!

Don't miss out on upcoming issues of Circuit Cellar.

Note: We’ve made the Dec 2022 issue of Circuit Cellar available as a free sample issue. In it, you’ll find a rich variety of the kinds of articles and information that exemplify a typical issue of the current magazine.

Would you like to write for Circuit Cellar? We are always accepting articles/posts from the technical community. Get in touch with us and let's discuss your ideas.

Sponsor this Article
+ posts

Joseph Corleto holds a Master’s Degree in Electrical Engineering. Aside from working as a full-time Electrical Engineer, he has a small business (Bit Bang Gaming LLC), which creates video game electronics hardware, and is actively pursuing the creation of a project-based video course using the ESP32. He describes himself as an Electrical Engineering handyman since he has skills in firmware, R&D, PCB design, PCB assembly, and automated testing. You may reach him anytime via his email:

Supporting Companies

Upcoming Events

Copyright © KCK Media Corp.
All Rights Reserved

Copyright © 2024 KCK Media Corp.

Intro to Control Systems

by Joseph Corleto time to read: 12 min