6. Full Order Observer - JoshSilver8/ENGR454_Buck_Converter GitHub Wiki
Generally, we need all state variables available for feedback. However, in real-time systems, we often cannot measure all of our state variables. If the system is observable, then we will be able to estimate those state variables that we cannot directly measure. In fact, in some scenarios, the estimated state variable from the observer is preferable over the measured variable because noise and disturbances can be minimized in the estimated state variable. This type of system where the state variables are the estimates of the state variables of another system is called an observer. Two types of observers and a kalman filter (similar to the full order observer) are attempted to be applied to a buck converter. The full order observer, as the name implies, is where all state variables are estimated. The block diagram for such a system is shown below:
The equations derived from the block diagram are discretized through the following calculations:
This discrete form of the observed state variables is programmed into the Arduino nano for controlling the duty cycle.
The output from the Arduino indicates that the feedback control is not working. The output voltage from the buck converter linearly follows that of the input voltage from the signal generator. We can visualize the ramp response of the system by plugging and unplugging the USB. The result is shown in the picture following. The blue line is the input voltage and the yellow line is the output voltage.
It is anticipated that a more accurate model and more realistic Matlab simulation will result in better results from the full order observer. This more accurate model of the buck converter is a 3rd order system. This model was started by Dr. Frohne and can be found here. An initial Matlab simulation of this model was started and can be found with the other project files in the link below. The output resistor from the signal generator was found by referencing the HP 6236B Triple Output Power Supply data sheet/user manual, then the curve was matched to that seen by the dip in the power supply as seen in the screenshot of the oscilloscope above.
Matlab files and Arduino code can be found here.