Types of open loop control system
There are two basic types of control systems:
Open-loop control systems are those in which your controller tells your system to do something, but doesn’t use the results of that action to verify the results or modify the commands to see that the job is done properly.
Closed-loop control continuously monitors the performance of your system and changes the commands as necessary to stay on track.
OPEN LOOP CONTROL
Examples of open-loop control might be sending a PWM signal to your robot's drive motor which you know will normally cause your robot to go forward at 6 inches per second, but not measuring the actual speed and therefore not knowing that the robot is climbing a slope or ran into a shag rug, and isn’t really managing to go 6 inches per second. So you tell the robot to go forward for 10 seconds then turn right, expecting it to go 60 inches and enter a doorway. But it doesn’t make it to 60 inches and turns right and crashes into the wall. Another example would be telling the robot to go straight forward for a distance by setting the steering position to center, and the robot slowly veers off to the side and crashes into the wall again because the zero setting of the steering was not EXACTLY right.
The above block diagram shows the components of an open-loop control system. The "input reference" is the signal sent to the controller saying, perhaps, proceed forward at 6 inches per second. The "controller" block represents the calculations done to control some servo or motor or something else on the robot. "Plant" is a control systems term that means everything that is affected by the controller. This may include a servo motor, the steering system of the robot, the motion of the robot in response to the steering and even the resulting position of the robot in its world. The "controlled variable" is whatever part of the plant your input reference is trying to control to. It can be the servo position, a motor speed, the steering angles or the position in the world. On a robot, the input reference, the controller function and parts of the plant (e.g. a built in PWM generator) may all be done by your microcontroller. From the earlier example, the input reference might be a command to go 6 inches/second, and the controlled variable would be the actual speed achieved which may, or may not be, 6 inches/second.
Open-loop control is what dead reckoning is all about. Unfortunately, no matter how carefully we calibrate our motor and steering and other actuation devices of the robot such that the input reference should provide the desired result, there will always be errors which will cause the result to be different than what was planned. And since errors are often cumulative over time, the longer you run in dead reckoning mode, the farther you will be from what you planned.
But, if open loop operations are short enough (and nothing keeps the robot from operating normally, open loop control may provide adequate performance for many tasks. An example might be a wall following robot who uses sensors to control its distance from the wall when following it, but performs an open loop turn when the end of the wall is reached knowing that when it resumes wall following after the turn, any errors incurred during the turn will be corrected.
CLOSED LOOP CONTROL
Closed-loop control starts out like open-loop in that you send an input reference to the system, but then feedback is used to monitor the performance resulting from the command; and if the performance is different than desired, changes are made to the command to get back on track. This is done by comparing the input reference to the feedback signal and computing an error from the reference. The controller then has equations which adjust the commands to the plant to reduce the error. PID equations are the usual method to make these corrections.