The equation of motions of the system are:
The problem statement is to control a Theta-R Robot Manipulator. Since the model is non-linear, to control the robot using linear control methods and techniques we linearize the system about a equillibrium point. The equillibrium point for all the simulation is [pi/4 2 0 0]'.
After linearization we obtain the state matrices, the eigen values of theses matrices lie in the right half plane indicating that the open loop system is unstable. We use the place command in matlab to place poles of the clodes loop system in the left half plane. The control input is given by (U-Ue) = K*(X-Xe) because the equllibrium point is non zero. The linear controller is then implemented to control the non-linear system and an animation is generated.
We assume a scenario where we do not have sensors to measure all our states of the system, we implement a luenberger observer to estimate the states. Since our observer is linear, we again have to sybtract Ye and Ue before we feed the output and control input to the observer. We use pole placement to place the poles of (A-LC) in left half plane. As rule of thumb choose the observer poles 2-6 times faster than system poles. Since we havecomplete contrl over the observer we choose any initial condition. For comparison we select it as [0 0 0 0]' for all the codes.
We use the CVX solver for solving LMIs, one can also use the Robust Control Toolbox from MATLAB.
We use the lyapunov theory to form a matrix inequality and use congruence transformation to convert this into a Linear Matrix Inequality. This is then appended with a another linear term to ensure faster convergence.
We frame the Countinous Algebraic Ricatti Equation as an LMI and solve for feedback gain.
We use the lyapunov theory to form a matrix inequality and use congruence transformation to convert this into a Linear Matrix Inequality. This is then appended with a another linear term to ensure faster convergence. We make the convergence of the observer 4 times faster than the state feedback. We initialise the observer at [0 0 0 0]'