While rockets launched from silos are generally weapons of war, [Joe Barnard] of [BPS.Space] thought model rocketry could still do with a little more thoomp. So he built a functional tube launched model rocket.
Like [Joe]’s other rockets, it features a servo-actuated thrust vectoring system instead of fins for stabilization. The launcher consists of a 98 mm cardboard tube, with a pneumatic piston inside to eject the rocket out of the tube before it ignites its engine in mid-air. When everything works right, the rocket can be seen hanging motionlessly in the air for a split second before the motor kicks in.
The launcher also features a servo controlled hatch, which opens before the rocket is ejected and then closes as soon as the rocket is clear to protect the tube. The rocket itself is recovered using a parachute, and for giggles he added a tiny Tesla Roadster with its own parachute.
Projects as complex as this rarely work on the first attempt, and Thoomp was no exception. Getting the Signal flight computer to ignite the rocket motors at the correct instant proved challenging, and required some tuning on how the accelerometer inputs were used to recognize a launch event. The flight computer is also a very capable data logger, so every launch attempt, failed or successful, became a learning opportunity. Check out the second video after the break for a fascinating look at how all this data was analyzed.
[Joe]’s willingness to fail quickly and repeatedly as part of the learning process is a true display of the hacker spirit. We’ll definitely be keeping a close eye on his work.
Today on Hackaday Dictionary, we’re going to talk about the two basic types of control systems: open-loop and closed-loop. We’ll describe the differences between them and explore the various advantages and disadvantages of each. And finally, we’ll talk about what happens when you try to draw a line between the two.
Control systems are literally all around us. They’re illuminating our rooms, laundering our unmentionables, and conspiring to make us late for work. Most of us probably use or interact with at least five control systems before we’re even out the door in the morning. Odds are you’re using a control system to read this article.
When we say ‘control system’, we’re speaking broadly. A control system is defined as any system that exhibits control over a function. It doesn’t matter how big or small the function is. A standard light switch is a simple type of control system. Flip it back and forth and the light is either on or off with no in between. Too bright? Too bad. There is no way to account for light intensity preference, use duration, energy output, or anything else.
Another common example in discussing control system theory is the clothing dryer. Set the timer on the dryer and it will run until time expires. Will it run long enough to dry everything without shrinking anything? The only way to know is to open the door and check.
Both the light switch and the clothes dryer are open-loop systems. The process is a straight line from start to finish, and they operate without concern for their output. Once the light switch is flipped to the on position, current will flow until the switch is reversed. The switch doesn’t know if the bulb is burned out or even screwed into the socket to begin with. And the clothes dryer doesn’t care if your clothes are damp or dry or totally shrunken when time runs out.
Stay in the Loop
In a closed-loop system, the process begins the same way it does in an open-loop system. But a closed-loop system has one or more feedback loops in place that can adjust the process. Sometimes the feedback will simply cause the process to repeat until the desired result is achieved.
Both of our open-loop control system examples above could easily be converted to closed-loop systems. A more advanced light switch might take input from a photo cell, or it could poll a motion detector and turn the lights off after a period of no detectable activity in the room. The clothes dryer could be improved with the addition of a moisture sensor. Since the humidity level in the dryer will change during the cycle, why not poll a DHT22 and re-run the process until a predetermined humidity level is reached? Then the dryer becomes a closed-loop system. No more reaching in and fondling the towels and shirt collars to make sure everything is dry. Well, at least in theory.
Some control systems exist in both forms. Traffic lights are a good example of this phenomenon. Some lights are open-loop and simply run on a schedule. Many more of them are closed-loop and will cycle differently depending on traffic flow or information received from other traffic lights. The really smart ones have Emergency Vehicle Preemption (EVP) receivers. This is the system that allows fire trucks and some other emergency vehicles to change the lights in their favor. A device in the vehicle strobes a specific pattern at the receiver module on the light post, and the light changes as soon as possible.
Advantages and Disadvantages
The main advantage of closed-loop systems is fairly obvious: using feedback means more and better control. But there are trade-offs. It’s almost impossible to deal with all the what-ifs in creating any system, and this generates unforeseen issues. They aren’t all bad, though. Maybe you’re sitting peacefully in the corner engrossed in a book, and the motion detector-driven lights shut off because you aren’t moving around enough. That isn’t ideal, but it’s easy enough to turn the lights back on and keep reading.
The unforeseen issues can be so much worse than sudden darkness. Case in point: robotic vacuum cleaners. Here you have a complexly closed-loop system to take care of one of life’s drudgeries. Should be awesome, right? Yes, but because it is blind to everything but its pre-programmed boundaries, it doesn’t know not to spread messes around.
A lot of closed-loop control systems look great on paper, but their imperfections become clear in execution. Take cruise control for example. Here is a system that’s better at its job than humans are. It will maintain the set speed until you hit the brakes or run out of gas. It will perform as intended whether there is a headwind or a tailwind or you’re towing a boat or transporting rowdy children. But cruise control isn’t aware of cliffs or guard rails or deer darting out in front of the car. Cruise control keeps its head down and does its job until it can’t go on.
Open-loop systems may not be as smart as closed-loop systems, but they often shine in their simplicity. For the most part, they do what you expect them to do. Light goes on, light goes off. And they are arguably more dependable since there are fewer things that can go wrong. Of course, a “simple” open-loop control system can mean a steeper learning curve. It’s not easy to learn to drive a manual transmission. But if you don’t know how to drive one, you’re missing out on some nice advantages, like the ability to push start the thing if you have to, and the option to downshift instead of pumping the brakes in icy conditions. So the question is this: is an open-loop system more valuable than a closed-loop system if it means having more control over the process? Does it depend entirely on the process in question?
Open-Loop vs. Closed-Loop
So where exactly does open-loop end and closed-loop begin? The line seems clear for some systems, but muddy for others. How much feedback is enough to qualify? Add just about anything to a light switch and it seems safe to say that you took it from open- to closed-loop.
More often than not, the line between the two is blurry. Think of a motorized garage door. You push the button and the door either opens or closes. Push it again and the door moves in the opposite direction. Most modern garage doors have a fail-safe in place to stop the garage door in the event of an emergency. If the door encounters any resistance, it will stop and reverse direction.
The break beam detector is supposed to keep people and their tricycles from being crushed if they happen to be in the way while the door is closing. But it only works if the person or thing breaks the IR beam. There’s only one beam, and it sits about six inches off the floor. The motorized garage door system is actually quite limited because it has no positional awareness. It doesn’t know where it is on the track, it’s just going up and down blindly, waiting for input or resistance.
Not all doors can be counted on to stop if they feel resistance—I tested mine and it kept on going. So if I don’t pull far enough into the garage and then put the door back down, it might hit the protruding rear end of my hatchback. It’s in the way of the door closing, but it sits way too high to break the beam. So is the garage door really, truly a closed-loop system?
Control systems are all around us, and understanding them is going to make you much better at hardware design. In the last article — Beyond Control: The Basics of Control Systems — we looked at an overview of what a control systems are in general with the example: “everything in between water and time is a control system”. We also observed control systems in nature, where I described my keen ability to fill a glass of water without catastrophic results. That discussion involved the basic concept of a block diagram (without maths) and we expanded that a bit to see what our satellite dish example would look like (still without maths).
I promised some big ugly maths in this article, and we’ll get to that in a bit, never you fear. First let’s have a look at how some basic elements: resistors, inductors, and capacitors are defined in the time domain. Don’t let these first few definitions turn you off. No matter how you feel about calculus, you don’t necessarily need to fully understand each equation. What’s more important is how the equations themselves combine to solve the circuit. Also important is that I will do everything possible to get out of doing difficult math. So stick with me through the article and you’ll learn that agony-saving trick for yourself!
A quick recap on transfer functions before we get going might be beneficial. A control system is used to define electromechanical behavior. For example: our satellite dish (from the previous article) at some point will need to be moved from one position to another position and as control engineers it is our job to determine just how this action will take place. I’m not talking about setting the mood for the big emotional robotic rotation, more like: not damaging the equipment or any people that might be nearby when moving the dish. For many reasons the dish would need to be moved with extreme care and in a very precise manner. The control system is the mathematical definition of that movement. Often the maths of the definition are nasty differential equations, (remember I’m avoiding any math that can be avoided, right?) so, instead of using differential equations to define the system, the transfer function will define the system with algebra, relating the output of the system to the input.
Control systems are exactly what you think they are: systems designed to control something. Perhaps a better way to put it is systems design control the behavior of something. The term “control systems” does an excellent job of being vague and most of us (originally) don’t think too much about it until its brought to our attention or we crash a robotic armature into itself and investigate how that horrifying event was allowed to happened. Usually during this investigation our internal dialog has a loop running that goes something like: “why the hell will the system allow me to manipulate it in a self-destructive way!?!”
What I found was my own ignorance, I hadn’t implemented a proper control system. One could make a case claiming that I hadn’t taken ANY control system into account whatsoever. I jumped in too deep, too fast (sound familiar?) and paid the price of crashing a rotating arm into another part of the system. Luckily, a friend stepped in and repaired the arm for me and metaphorically pointed to a large neon sign on the wall and said “you can’t ignore this”. He walked over to pull the chain dangling beneath the sign, the high voltage energized the gas in the tubes blinding me with the now unavoidably obvious words: Control Systems.
Amateur rocketry has been popular for ages, with designs ranging from small toy-scale model rockets to large-scale liquid fuel designs with steerable fins. A team out of Portland State works on some large-scale amateur rockets that can fly to very high altitudes. Since the atmosphere is thin the further the rocket flies, steering fins aren’t incredibly effective once the rockets reach high altitude. A team of students tackled this problem by designing a cold-gas reaction module to steer high-altitude rockets.
The team chose nitrogen as their cold-gas propellant, which is stored in a carbon fiber tank. After passing through a regulator, the gas is routed to several gas solenoids and then to a custom 3d-printed de Laval nozzle. An Intel Edison is used to drive the system, which calculates the rocket’s orientation with a MPU-6050. Control loops use the orientation information and fire gas through any of several nozzle ports to steer the rocket.
The system does have some limits: the solenoids are either on or off, not variable, and they aren’t incredibly fast. Even with these limitations, the team is confident that their module will work great when it embarks on its maiden flight in a brand-new custom rocket next year. The team was also awesome enough to make all of their design files open-source so you can build your own (although they warn that it’s a bit complicated and dangerous). Check out the video after the break to see a test-run of the cold-gas reaction system.
Kerbal Space Program, the game that teaches engineers at JPL and SpaceX the basics of rocket design and orbital mechanics, recently had a giant update. There are now science contracts that require you to fly Kerbals all over their tiny globe, collect data, and transmit it back to the Kerbal Space Center. As would be expected, this is a grind for XP, and the contracts sometimes don’t make sense – you need to collect data from cliff faces and mountain tops. Landing a Kerbal jet at these places is hard.
[Matt Thiffault] wanted to do these science contracts more efficiently. The best way to get to a remote location without a landing strip would be a helicopter, but a harrier jump jet would do just as well. This isn’t supported in the stock game, so [Matt] wrote a complete control system for four engines to control a hovering Kerbal jet.
[Matt]’s work is built on kOS, a scriptable autopilot mod for Kerbal that was originally intended to be something like the Apollo Guidance Computer. People have been using it to make computerized skycranes and automated rendezvous and docking programs, but these are actually relatively simple examples; there’s far more math involved in flying a quadcopter than there is getting into orbit.
To build his automated hovering harrier, [Matt] needed an aircraft. His Kerrier has parts from the Kerbal Aircraft Expansion, B9, and Infernal Robotics mods for KSP, but this is only half the problem. Anyone can put four tilt jets on an airplane, and it takes a real wizard to force a control system to hover. Hover control of the Kerbal harrier is accomplished with a complete control system for a four-engined aircraft, with proper PID control loops and code updating at 20Hz.
With kOS, the proper plane, and the right software running on this emulated guidance computer, [Matt] is able to park his plane in mid-air, have a Kerbal descend the ladder, perform some science, and return to base. It’s an impressive amount of work for a video game. A good thing, too: [Matt] is looking to get into controls engineering professionally. Whether this will go on his resume is another question entirely.
Go to any control systems class, and you’ll see a final project that demonstrates loops, integration, and everything else that can be learned in a semester or two of control theory. This project is not from one of those classes. It is, however, very cool: it balances a 40mm steel ball on the rim of a lasercut wood wheel using nothing more than a solar cell as a sensor.
[Manuel] was inspired to build this ball-balancing device after seeing a similar project at CCC about six years ago. He doesn’t remember who made it, and eschewed the PC/Matlab architecture of the original, but this build retains one interesting feature of its muse. The input to the control system is just a high intensity light bulb and a solar cell. The 40mm steel ball blocks the light reaching the solar cell most of the time. Slight variations in voltage go through the control system to keep this ball balanced on top of the wheel.
The only hardware for this build is a motor, a motor driver, and an ATMega644P. The first revision of the hardware was just a few breakout boards stuffed into a rat’s nest of wiring in the base of the build, but this has been fixed in version two with a new PCB. Video below.