image thumbnail

Simple Inverted Pendulum with LQR,PID SimMechanics

version 1.2.0.0 (320 KB) by Leonardo Araujo
This sample this sample show the simple Inverted Pendulum control with lqr

8.2K Downloads

Updated 26 Aug 2009

View License

Hi guys this is my Simple Pendulum model and control using SimMechanics and Control toolbox, later I will include also the SolidWorks files to show how to use SolidWorks link.

Anyone who finds that I should do things in another way please fell free to post any comment and help me :)

This sample was modelled with SimMechanics and control was made with lqr command.

First I've imported the pendulum from solidworks with
mech_import;

>> mgrPend = MECH_STATEVECTORMGR;
>> mgrPend.StateNames

ans =

'InvertedPendulumModel/Pendulo_Invertido/Revolute:R1:Position'
'InvertedPendulumModel/Pendulo_Invertido/Prismatic:P1:Position'
'InvertedPendulumModel/Pendulo_Invertido/Revolute:R1:Velocity'
'InvertedPendulumModel/Pendulo_Invertido/Prismatic:P1:Velocity'

>> [A,B,C,D] = linmod('InvertedPendulumModel');

>> eig(A)

ans =

0
0
2.3132
-2.3132

>> open_plant = ss(A,B,C,D);
>> impulse(open_plant);

>> Q = diag([ 0 100 0 100]);
>> K = lqr(A,B,Q,R)

K =

284.3487 -10.0000 126.1560 -23.6582

>> Ac = [(A-B*K)];
>> Bc = [B];
>> Cc = [C];
>> Dc = [D];
>> sys_cl=ss(Ac,Bc,Cc,Dc);
>> T=0:0.01:50;
>> U=0.2*ones(size(T));
>> [Y,T,X]=lsim(sys_cl,U,T);
>> plot(T,Y)

Cite As

Leonardo Araujo (2021). Simple Inverted Pendulum with LQR,PID SimMechanics (https://www.mathworks.com/matlabcentral/fileexchange/25139-simple-inverted-pendulum-with-lqr-pid-simmechanics), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Communities

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!