21 views

Uploaded by Robert Roig

- Pre-Algebra Multi Step
- 2019 Book ProceedingsOfThe10thInternational 2
- Process Dynamics and Control
- LabVIEW Control Implementation Tutorial
- LQR matlab_1.pdf
- next fig
- Representation and Change. a Metarepresentational Framework for the Foundations of Physical and Cognitive Science - Francis Heylighen - 1987(1999)
- Magnetic Torquer Attitude Control via Asymptotic Periodic LQR
- Does the School of the 21st Century Need Geometry
- December 2016 Tentative Exam Schedule 2
- Direct Torque Control with Feedback Linearization for IM drive.pdf
- class-11 c++
- Department of Mathematics
- math help
- elb10-0510
- ECX5231_TMA03_2016-2017
- 169007-434628-1-SM
- Some New Algorithms for Solving a System of General
- elk-18-1-3-0905-2
- ie0512901

You are on page 1of 8

ME 461

Professor Tilbury

Note: These tutorials have been completely revised and updated. See Control Tutorials for

Matlab for the latest version.

In this tutorial, we will use the example of the magnetically suspended ball. We derived the

equations in class (see your notes for March 24th for details):

M d^2h/ dt ^2 = M g - k i ^2/ h

V = L di / dt + i R

where h is the height of the ball, i is the current through the electromagnet, V is the voltage applied,

and M, g, L, R, and k are constants which reflect the physical properties of the system (mass, etc).

We chose values M =1, k =1, L =1, R =1, g =10, and determined that the system was at equilibria

whenever h =i^2/10 (at which point dh/dt =0). We then linearized the equations about the point h =

0.1, and got the state-space equations:

dx/ dt = A x + B u

y = C x

where x =[(delta h) d(delta h)/dt (delta i)]' is the state of the system (a 3- vector), u =V is the input,

and y =(delta h) is the output. Enter the system matrices into a m-file in your matlab directory (call

it magball.m)

A = [ 0 1 0

10 0 - 20

0 0 - 1] ;

B = [ 0

0

1] ;

C = [ 1 0 0] ;

and run the m-file by typing "magball" to the matlab prompt.

One of the first things you might want to do with the state equations is to find the poles of the

system; these are the values of s where det(sI - A) =0, and are exactly the eigenvalues of the A

matrix:

pol es = ei g( A)

Some of them are in the right-half plane, which means that the system is unstable in open-loop.

Check what happens to an unstable system with a nonzero initial condition. To your m-file, add the

lines

Pgina 1 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

t = 0: 0. 01: 2;

u = 0*t ;

x0 = [ 0. 1 0. 1 0. 1] ;

[ y, x] = l si m( A, B, C, 0, u, t , x0) ;

pl ot ( t , x)

and run the file again. It looks like the ball will fall down to minus infinity, but probably it hits the

table or the floor first (and also probably goes out of the range where our linearization is valid).

Matlab can also compute the transfer function of this system:

NUM( s) - 1

H( s) = - - - - - - - - = C( sI - A) B + D

DEN( s)

using the command

[ num, den] = ss2t f ( A, B, C, 0, 1)

Note that the denominator has some negative coefficients; this should tell you (from the

Routh criterion) that the system is unstable in open-loop, which we knew from its poles.

You could also find the poles of the system using

r oot s( den)

Check to see that this gives you the same answer as before.

Controller design

Let's build a controller for this system. The first thing to check is whether the system is controllable.

We do this by forming the controllability matrix:

Pgina 2 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

Cc = [ B ( AB) ( A^2 B) ]

and checking that it has full-rank (non-zero determinant). We can build up this matrix in matlab

(using a few transposes):

Cc = [ B' ; ( A*B) ' ; ( A*A*B) ' ] '

det ( Cc)

or matlab has a built-in function called CTRB which finds this matrix for any dimension of state.

Check that the determinant is non-zero:

det ( ct r b( A, B) )

If the system is controllable, then by using full-state feedback we can place the poles anywhere we

want. As we did in class, we could convert the system into control canonical form, choose the

control matrix K which would give the desired poles, and then convert back to the original

coordinates. Or we could use the matlab function PLACE.

Before attempting either method, we should decide where we want the closed-loop poles to be. If the

criteria for the controller were settling time <1 sec and overshoot <5%, then we might try to place

the two dominant poles at -5 +/- 5i (at zeta =0.7 or 45 degrees with sigma =5 >4.6). The third pole

we might place at -10 for starters, and see what the closed-loop behavior is:

p1 = - 5 + 5i ;

p2 = - 5 - 5i ;

p3 = - 10;

K = pl ace( A, B, [ p1 p2 p3] ) ;

l si m( A- B*K, B, C, 0, u, t , x0) ;

Pgina 3 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

If we wanted a faster response (with the same overshoot), we might place the poles further to the

left:

p1 = - 10 + 10i ;

p2 = - 10 - 10i ;

p3 = - 20;

Compare the control effort required (K) in both cases. In general, the farther you move the poles, the

more control effort it takes.

Now we will examine the method proposed in class. We will perform a state transformation from x

to z

x = Tc z

and in the z coordinates we want the system equations to be in control canonical form. From your

notes, recall the the transformation into control canonical form is found as:

Cc = ct r b( A, B) ;

t 3 = [ 0 0 1] *i nv( Cc) ;

t 2 = t 3*A;

t 1 = t 2*A;

Tci = [ t 1

t 2

t 3] ;

Tc = i nv( Tci ) ;

Ac = Tci *A*Tc

If you enter the lines as above and run your m-file, you should see the output of Ac (since there is no

semicolon after that line); as expected, it is in control canonical form. The coefficients of the

characteristic polynomial are the first row of Ac.

Pgina 4 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

The desired characteristic polynomial is given by the product of the three factors (s - pi) for the three

desired poles:

al pha = conv( conv( [ 1 - p1] , [ 1 - p2] ) , [ 1 - p3] )

and the desired gains can be easily computed as the first row of the control form A matrix plus the

last three elements of alpha, the desired characteristic polynomial.

Kc = Ac( 1, : ) + al pha( 2: 4)

K = Kc*Tci

Check that these are the same gains as those given by the PLACE command. Note that if you want to

place two or more poles at the same position, PLACE will not work. You can use the method

outlined above, or you can use a function called ACKER which works similarly to PLACE:

K = acker ( A, B, [ p1 p2 p3] )

Introducing the reference input

If we were to take the control system as defined above, and apply a step input,

t = 0: 0. 01: 2;

u = ones( si ze( t ) ) ;

l si m( A- B*K, B, C, 0, u, t )

the system does not track the step well at all; not only is the magnitude not one, but it is negative

instead of positive!

Following the notes from class (or the book section 7.3.2), we can introduce the reference input by

computing the N matrices:

Pgina 5 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

N = i nv( [ A B; C 0] ) *[ 0 0 0 1] ' ;

Nx = N( 1: 3) ;

Nu = N( 4) ;

Nbar = Nu + K*Nx

Now, if we want to find the response of the system under state feedback with this introduction of the

reference, we simply note the fact that the input is multiplied by this new factor Nbar:

l si m( A- B*K, B*Nbar , C, 0, u, t )

and now

indeed, a step can be tracked reasonably well. If you need a faster response, go back to the design of

K and move the poles farther to the left half plane.

Observer design

When we can't measure all the states x (as is commonly the case), we can build an observer to

estimate the states while only measuring the output y =C x. For the magnetic ball example, we will

add three new states to the system.

Before doing anything, we should probably check that the system is observable. As in the

controllability case, Matlab has a built-in function to compute the observability matrix:

det ( obsv( A, C) )

Check that this is nonzero.

Now we need to choose the observer gain L. If we want to use place, we need to put the three

observer poles in different places.

op1 = - 20;

op2 = - 21;

op3 = - 22;

Pgina 6 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

Because of the duality between controllability and observability, we can use the same technique, but

replace B by C and take transposes:

L = pl ace( A' , C' , [ op1 op2 op3] ) ' ;

The combined state equations are (from the book or your notes):

At = [ A - B*K zer os( si ze( A) )

L*C - B*K A - L*C] ;

Bt = [ B*Nbar

B*Nbar ] ;

Ct = [ C zer os( si ze( C) ) ] ;

and you can see the results for a nonzero initial condition using the command:

l si m( At , Bt , Ct , 0, zer os( si ze( t ) ) , t , [ x0 0 0 0] ) ;

If you wanted to see all the states, including the state of the observer,

[ y, x] = l si m( At , Bt , Ct , 0, zer os( si ze( t ) ) , t , [ x0 0 0 0] ) ;

pl ot ( t , x) ;

Pgina 7 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

Return to ME461 Homepage

Last modified: 10 april 1995 / tilbury@umich.edu

Please send any comments, clarifications, suggestions, or corrections to: tilbury@umich.edu.

Thanks! I hope you found this document helpful.

Pgina 8 de 8 Matlab tutorial - 5

19/11/2004 http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab5.html

- Pre-Algebra Multi StepUploaded byDiane Mendez
- 2019 Book ProceedingsOfThe10thInternational 2Uploaded byNom
- Process Dynamics and ControlUploaded byreza buildtradefoils
- LabVIEW Control Implementation TutorialUploaded byDániel Tengelits
- LQR matlab_1.pdfUploaded byLê Tuấn Minh
- next figUploaded byajjanani
- Representation and Change. a Metarepresentational Framework for the Foundations of Physical and Cognitive Science - Francis Heylighen - 1987(1999)Uploaded byunbeing
- Magnetic Torquer Attitude Control via Asymptotic Periodic LQRUploaded byKanu Govila
- Does the School of the 21st Century Need GeometryUploaded byRares Mihailescu
- December 2016 Tentative Exam Schedule 2Uploaded byscribd4735
- Direct Torque Control with Feedback Linearization for IM drive.pdfUploaded byali jafarian
- class-11 c++Uploaded bydeltaserrapapa
- Department of MathematicsUploaded byMuthu MK
- math helpUploaded bymanya
- elb10-0510Uploaded byJosé Mário Araújo
- ECX5231_TMA03_2016-2017Uploaded byThivanka Ravihara
- Some New Algorithms for Solving a System of GeneralUploaded byRafia Latif
- 169007-434628-1-SMUploaded byDharc Isaiah
- elk-18-1-3-0905-2Uploaded byKushtrim Mala
- ie0512901Uploaded byromuald ouabo
- ERRATA SG TextbookUploaded bymaddy79
- Sq.root of Expressions 2Uploaded byAKRISHNAMURTY,HEADMASTER,ZPHS(G),DOWLESWARAM
- thangUploaded byLê Xuân Thăng
- Mws Gen Fft Spe PptintroductionUploaded byYuris Mawan
- Some Problems of aiUploaded byShrangi Tandon
- Composite-Order and Optimized Composite-Order IcaUploaded byShafayat Abrar
- Fuzzy Idle Speed ControlUploaded byIkhwanul Khairi
- 1twgdgfddfgdfgdfgdfvfsUploaded byKelli Flores
- ReefmanReiss-IEEETCASUploaded byRamakrishnan Harihara Venkatasubramania
- d_009_01Uploaded byswapnilmani

- Probl Electrostatica 5Uploaded byRobert Roig
- matlab16Uploaded byRobert Roig
- matlab14Uploaded byRobert Roig
- matlab12Uploaded byRobert Roig
- matlab13Uploaded byRobert Roig
- matlab10Uploaded byRobert Roig
- matlab8Uploaded byRobert Roig
- Tensor Analysis for Students of Physics and Engineering. Read 02.24.2008Uploaded byScribd_rkc

- ASME-B30developments-webinar-0912Uploaded byAndres Alvarez
- Export Image to PDF Vb NetUploaded byBrian
- Artica Web DocumentationUploaded bysnake972
- Who's who in biotech.pdfUploaded bymagicianchemist
- GTU DOS syllabusUploaded byNirali Dutiya
- (Www.entrance Exam.net) (Www.entrance Exam.net) TcssUploaded byGuruprasad T V Bhat
- SHRM Challenges for TNCUploaded byVishwesh Koundilya
- lpi-coursewareUploaded byiria2006
- Wc 1 SolutionsUploaded byRodrigoCastellano
- ANNA UNIV APPLIED MATHEMATICSUploaded bymuralivelayutham
- Chap 5Uploaded bySivakumar Ramalingam
- Answers to Renaissance Study GuideUploaded byEamon Barkhordarian
- Critical Care Reviews Book 2017Uploaded byHerbert Baquerizo Vargas
- A Game-Based Method.pdfUploaded byvimalsairam
- Java Theory AnswersUploaded byGaurav Gaikwad
- ICMIE 2015 ProgramUploaded byCristian Carp
- Homework CutiUploaded byAkuChekgu Hafizuriah
- old dan tucker lessonUploaded byapi-316167738
- 97615_03Uploaded byphanisai
- Advanced Programming Lab 1Uploaded byMiranda Li
- TransformedUploaded byChristian Giordano
- Moments and Products of Inertia, Inertia TensorUploaded byAbhijit Kar Gupta
- tensile strength of mild steelUploaded byPavan Ps
- dynamic system modelingUploaded byDaniel Son
- PCN Rating and Load ContolUploaded bytannu
- Over All BenefitsUploaded byyared desta
- Simons-Voss Product Catalogue 2012 EnUploaded bySamir Shamma
- Omegadex_1.9Uploaded byThiago Russo Nantes
- 05875994Uploaded byUmasankar Chilumuri
- OMF SpecsUploaded byMatheus Mello