An open-loop controller, also called a non-feedback controller, is a type of controller which computes its input into a system using only the current state and its model of the system.

A characteristic of the open-loop controller is that it does not use feedback to determine if its input has achieved the desired goal. This means that the system does not observe the output of the processes that it is controlling. Consequently, a true open-loop system can not engage in machine learning and also cannot correct any errors that it could make. It also may not compensate for disturbances in the system.

For example, an irrigation sprinkler system, programmed to turn on at set times could be an example of an open-loop system if it does not measure soil moisture as a form of feedback. Even if rain is pouring down on the lawn, the sprinkler system would activate on schedule, wasting water.

Open-loop control is useful for well-defined systems where the relationship between input and the resultant state can be modeled by a mathematical formula. For example determining the voltage to be fed to an electric motor that drives a constant load, in order to achieve a desired speed would be a good application of open-loop control. If the load were not predictable, on the other hand, the motor's speed might vary as a function of the load as well as of the voltage, and an open-loop controller would therefore not be sufficient to ensure repeatable control of the velocity.

An example of this is a conveyor system that is required to travel at a constant speed. For a constant voltage, the conveyor will move at a different speed depending on the load on the motor (represented here by the weight of objects on the conveyor). In order for the conveyor to run at a constant speed, the voltage of the motor must be adjusted depending on the load. In this case, a closed-loop control system would be necessary.

An open-loop controller is often used in simple processes because of its simplicity and low-cost, especially in systems where feedback is not critical. A typical example would be a conventional washing machine, for which the length of machine wash time is entirely dependent on the judgment and estimation of the human operator. Generally, to obtain a more accurate or more adaptive control, it is necessary to feed the output of the system back to the inputs of the controller. This type of system is called a closed-loop system.