within the course of Nonlinear Control
, I was intended to simulate the result of this paper, “Velocity and Position Control of a Wheeled Inverted Pendulum by Partial Feedback Linearization”, via MATLAB. Considering the inverted pendulum is an underactuated system, it is demanding to control such a nonlinear underactuated system, because there are less controllabe states than total states of the system.
As we know that Feedback Linearization is a technique for transforming the main system to a simpler form, in this case, first we derive the dynamic equations of the system, next we partially feedback linearize the system, Finally apply the controller.
Dynamic Model
Eliminate Lagrange multipliers \(\lambda\) with \(S^T\):
Then the input-affine form of equations:
And the new feedback law is:
Now let’s feedback linearize the system. Considering, it has maximum relative degree, the change of coordinates is given by:
Finally the equations of the system become:
Design and Implementation of Controllers
Velocity Controller
In order to control desired parameters of the system, we need two controllers; a lower level controller with fast dynamics to track \(\theta_d\) and \(\alpha_r\), and a higher level controller with slow dynamics to make sure \(\lambda_r \in A_s\):
Simulation of equation (11):
Now the outputs for step and stop commands:
Position and Stabilization Control
Here we want to design a controller to stabilize the robot in a desired coordination against the world frame. For this, it is better to deploy polar coordination for for configuration space of the robot:
The simulation:
Same as befor we need two types of controller, higher level and lower level controllers, for higher level controller, we consider the following potential function:
We propose the following control signal:
Finally, by substituting \(\alpha_r\) in the following equation, stability would be satisfied.
And the lower level controller is:
References
[1] Velocity and Position Control of a Wheeled Inverted Pendulum by Partial Feedback Linearization
To get more details, please refer to the papaer and keep in touch with me. :)