Beyond Control: Maths of a Control 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.

Continue reading “Beyond Control: Maths of a Control System”

Beyond Control: The Basics of Control Systems

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.

Continue reading “Beyond Control: The Basics of Control Systems”

Steering High Altitude Rockets With Cold Gas

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.

Thanks for the tip, [Nathan]!

Continue reading “Steering High Altitude Rockets With Cold Gas”

Quadrotor Control Systems And Kerbal Harriers

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.

Balancing A Ball With A Solar Cell

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.

Continue reading “Balancing A Ball With A Solar Cell”

PID Controlled Glue Gun

Internals of a glue gun controlled with a PID controller

Hot glue falls into the same category of duct tape and zip ties as a versatile material for fixing anything that needs to be stuck together. [Ed]’s Bosch glue gun served him well, but after a couple of years the temperature regulation stopped working. Rather than buying a new one, he decided to rip it apart.

With the old temperature regulation circuit cooked, [Ed] looked around for something better on eBay. He came across a cheap PID temperature controller, and the Frankengluegun was born.

A thermocouple, affixed with some kapton tape and thermal paste, was used to measure the temperature of the barrel. Power for the glue gun was routed through the PID controller, which uses PWM to accurately controller the temperature. All the wiring could even be routed through the original cord grips for a clean build.

Quality glue guns with accurate temperature control are quite pricey. This solution can be added on to a glue gun for less than $30, and the final product looks just as good.

Building a Ball-Balancing Robot

robotBallBalance

If you want a different kind of feedback systems challenge, ditch the Segway-style robots and build one that can balance on a ball. UFactory is a startup in Shenzhen, and this impressive little guy is a way of showing their skills applied to the classic inverted pendulum. At nearly 18 inches tall and weighing just over six pounds, the robot boasts a number of features beyond an accelerometer and gyroscope: it has both a WiFi module and a camera, and can be controlled via a homemade remote control or a Kinect.

The build uses plastic omni-directional wheels attached to 3 brushed dc motors, which attach to the base of the robot with custom-made aluminum brackets. The UFactory gang constructed the robot’s body out of three acrylic discs, which hold the electronics directly above the wheels. The brain seems to be an STM32 microcontroller that connects up to the motors and to the sensors.

You won’t find the code on their Instructable yet, but according to the comments they have plans to make the entire project open source. If you’re desperate for more details, the UFactory team seems willing to provide source code and other information via email. Make sure you see the video after the break, particularly the end where they demonstrate interference and carrying loads. This isn’t the first ball pendulum we’ve seen; take a trip down memory lane with the BallP ball balancing robot from 2010.

Continue reading “Building a Ball-Balancing Robot”