Control theory is an engineering discipline that is used with mathematics to control the behaviour of dynamic systems. Wait. What?
OK. So imagine my man here, James Watt rolling down town in his hectic steam ride. It has a single throttle-valve that he opens and closes to control the speed of his steam engine. The more he opens the valve, the faster his steam engine moves.
On this particular day, James is rolling through a flat part of town with the throttle-valve half open, the wind in his blond curls. Life is pretty good. He is thinking about what marvels the industrial age will bring, when he spots a cute girl, parasol and all walking down the side of the street. “Ah-ha”, James thinks, “She will think my steam engine is the most fantastic contraption!” Unfortunately for James, he hadn’t noticed that his steam engine had started to go up a hill. Completely distracted by the girl on the side of the street, James hadn’t adjusted the throttle-valve and his steam engine was slowing down to a standstill. The girl turns up her nose at the smelly, noisy and slow contraption. Suddenly, James realises his error and frantically opens up the throttle-valve on his steam engine to get more power to move up the hill. Woe is Mr Watt.
In this particular example, the throttle-valve is an open-loop controller, which is a controller that acts on a system without considering any subsequent feedback. The throttle-valve, once set, first generates the required speed, but then has no automated mechanism for measuring when the steam engine is slowing down. It can’t automatically open itself to add more power when going up a hill.
So our poor Mr Watt heads back home and sits down at his drawing board. He creates drawings for what becomes cruise control for steam engines, the centrifugal governor. He attached this governor to the throttle-valve of his steam engine, with the other end connected to a belt from the drive wheel of his steam engine to the governor.
So now, the faster his steam engine goes, the faster it spins the centrifugal governor. This, in turn, makes the ball weights move up, closing the throttle- valve by a proportional amount. Closing the throttle-valve slows the steam engine down and so the centrifugal governor slower…
The centrifugal governor is an example of a closed-loop controller, where the controller is continually gathering feedback from the impact of its actions, enabling more appropriate adjustments in the future. The centrifugal governor constantly measures the speed of the steam engine and automatically adjusts the throttle so that the desired speed is maintained, even when going up hills.
Open-loop and closed-loop controllers can be mathematically modelled with control theory to better manage the behaviour of dynamic systems. The software business is a dynamic system - technologies and user-requirements are constantly changing. Do you have to manually gather feedback from your users and appropriately set the ‘throttle-valve’ (tell developers what to do) when building your software product? Or can you set the desired user experience for your product, automatically measure user feedback and give your software development team the information that they need to create that experience?
Hi! Subconsciously you already know this, but let's make it obvious. Hopefully this article was helpful. You might also find yourself following a link to Amazon, Lego or eBay to learn more about parts or equipment. If you end up placing an order, I make a couple of dollarydoos. We aren't talking a rapper lifestyle of supercars and yachts, but it does help pay for the stuff you see here. So a massive shoutout to everyone that enables this place. Thanks!