This action might not be possible to undo. Are you sure you want to continue?

®

Computation

Visualization

Programming

Control System

Toolbox

User’s Guide

Version 4.2

How to Contact The MathWorks:

508-647-7000 Phone

508-647-7001 Fax

The Mat hWor ks, Inc. Mail

24 Pr ime Par k Way

Nat ick, MA 01760-1500

http://www.mathworks.com Web

ftp.mathworks.com Anonymous FTP ser ver

comp.soft-sys.matlab Newsgr oup

support@mathworks.com Technical suppor t

suggest@mathworks.com Pr oduct enhancement suggest ions

bugs@mathworks.com Bug r epor t s

doc@mathworks.com Document at ion er r or r epor t s

subscribe@mathworks.com Subscr ibing user r egist r at ion

service@mathworks.com Or der st at us, license r enewals, passcodes

info@mathworks.com Sales, pr icing, and gener al infor mat ion

Control S ystem Toolbox User’s Guide

© COPYRIGHT 1992 - 1999 by The Mat hWor ks, Inc.

The soft war e descr ibed in t his document is fur nished under a license agr eement . The soft war e may be used

or copied only under t he t er ms of t he license agr eement . No par t of t his manual may be phot ocopied or r epr o-

duced in any for m wit hout pr ior wr it t en consent fr om The Mat hWor ks, Inc.

U.S. GOVERNMENT: If Licensee is acquir ing t he Pr ogr ams on behalf of any unit or agency of t he U.S.

Gover nment , t he following shall apply: (a) For unit s of t he Depar t ment of Defense: t he Gover nment shall

have only t he r ight s specified in t he license under which t he commer cial comput er soft war e or commer cial

soft war e document at ion was obt ained, as set for t h in subpar agr aph (a) of t he Right s in Commer cial

Comput er Soft war e or Commer cial Soft war e Document at ion Clause at DFARS 227.7202-3, t her efor e t he

r ight s set for t h her ein shall apply; and (b) For any ot her unit or agency: NOTICE: Not wit hst anding any

ot her lease or license agr eement t hat may per t ain t o, or accompany t he deliver y of, t he comput er soft war e

and accompanying document at ion, t he r ight s of t he Gover nment r egar ding it s use, r epr oduct ion, and disclo-

sur e ar e as set for t h in Clause 52.227-19 (c)(2) of t he FAR.

MATLAB, Simulink, St at eflow, Handle Gr aphics, and Real-Time Wor kshop ar e r egist er ed t r ademar ks and

Tar get Language Compiler ar e t r ademar ks of The Mat hWor ks, Inc.

Ot her pr oduct or br and names ar e t r ademar ks or r egist er ed t r ademar ks of t heir r espect ive holder s.

Pr int ing Hist or y: J uly 1992 Fir st pr int ing

December 1996 Second pr int ing Revised for MATLAB 5

J anuar y 1998 Thir d pr int ing Revised for MATLAB 5.2

J anuar y 1999 Four t h pr int ing Revised for Ver sion 4.2 (Release 11)

¤

PHONE

FAX

u

MAIL

INTERNET

@

i

Contents

Preface

Installati on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Ge tt i ng Starte d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Typographi c Conve nti ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1

Qui ck Start

LTI Mode ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

MIMO Syst ems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4

Model Conver sion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5

LTI Ar r ays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6

LTI Properti es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7

Mode l Charact eris t ics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10

Operati ons on LTI Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11

Cont i nuous/Di screte Conversi ons . . . . . . . . . . . . . . . . . . . . . 1-13

Ti me and Frequency Response . . . . . . . . . . . . . . . . . . . . . . . . 1-14

The LTI Vi ewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17

i i Contents

System Int erconnecti ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19

Control De si gn Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20

The Root Locus Desi gn GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23

2

LTI Models

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

LTI Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

Using LTI Models in t he Cont r ol Syst em Toolbox . . . . . . . . . . . 2-3

Ot her Uses of FRD Models . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3

LTI Object s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3

Cr eat ing an LTI Object : An Example . . . . . . . . . . . . . . . . . . . 2-4

LTI Pr oper t ies and Met hods . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4

Pr ecedence Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5

Viewing LTI Syst ems As Mat r ices . . . . . . . . . . . . . . . . . . . . . . . 2-5

Command Summar y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6

Creat i ng LTI Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8

Tr ansfer Funct ion Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8

SISO Tr ansfer Funct ion Models . . . . . . . . . . . . . . . . . . . . . . . 2-8

MIMO Tr ansfer Funct ion Models . . . . . . . . . . . . . . . . . . . . . 2-10

Pur e Gains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11

Zer o-Pole-Gain Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12

SISO Zer o-Pole-Gain Models . . . . . . . . . . . . . . . . . . . . . . . . . 2-12

MIMO Zer o-Pole-Gain Models . . . . . . . . . . . . . . . . . . . . . . . 2-13

St at e-Space Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14

Descr ipt or St at e-Space Models . . . . . . . . . . . . . . . . . . . . . . . . . 2-16

Fr equency Response Dat a (FRD) Models . . . . . . . . . . . . . . . . . 2-17

Discr et e-Time Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20

Discr et e-Time TF and ZPK Models . . . . . . . . . . . . . . . . . . . 2-21

Discr et e Tr ansfer Funct ions in DSP For mat . . . . . . . . . . . . 2-22

Dat a Ret r ieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24

i i i

LTI Properti es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-26

Gener ic Pr oper t ies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-26

Model-Specific Pr oper t ies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-28

Set t ing LTI Pr oper t ies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30

Accessing Pr oper t y Values Using get . . . . . . . . . . . . . . . . . . . . 2-31

Dir ect Pr oper t y Refer encing . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-33

Addit ional Insight int o LTI Pr oper t ies . . . . . . . . . . . . . . . . . . . 2-34

Sample Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-34

Input Names and Out put Names . . . . . . . . . . . . . . . . . . . . . 2-36

Input Gr oups and Out put Gr oups . . . . . . . . . . . . . . . . . . . . 2-37

Model Conve rsi on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-42

Explicit Conver sion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-42

Aut omat ic Conver sion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-43

Caut ion About Model Conver sions . . . . . . . . . . . . . . . . . . . . . . 2-43

Time De lays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-45

Suppor t ed Funct ionalit y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-45

Specifying Input /Out put Delays . . . . . . . . . . . . . . . . . . . . . . . . 2-46

Dist illat ion Column Example . . . . . . . . . . . . . . . . . . . . . . . . 2-47

Specifying Delays on t he Input s or Out put s . . . . . . . . . . . . . . . 2-50

Input Delay and Out put Delay Pr oper t ies . . . . . . . . . . . . . . . 2-51

Specifying Delays in Discr et e-Time Models . . . . . . . . . . . . . . . 2-52

Mapping Discr et e-Time Delays t o Poles at t he Or igin . . . . 2-53

Ret r ieving Infor mat ion About Delays . . . . . . . . . . . . . . . . . . . . 2-54

Conver sion of Models wit h Delays t o St at e Space . . . . . . . . . . 2-54

Padé Appr oximat ion of Time Delays . . . . . . . . . . . . . . . . . . . . . 2-55

Si muli nk Block for LTI Syst ems . . . . . . . . . . . . . . . . . . . . . . . 2-57

Re ference s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-59

i v Contents

3

Operati ons on LTI Models

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

Precedence and Property Inheri tance . . . . . . . . . . . . . . . . . . 3-3

Extracti ng and Modi fyi ng Subsyste ms . . . . . . . . . . . . . . . . . . 3-5

Refer encing FRD Models Thr ough Fr equencies . . . . . . . . . . . . . 3-7

Refer encing Channels by Name . . . . . . . . . . . . . . . . . . . . . . . . . 3-8

Resizing LTI Syst ems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9

Ari thmet i c Operati ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11

Addit ion and Subt r act ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11

Mult iplicat ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13

Inver sion and Relat ed Oper at ions . . . . . . . . . . . . . . . . . . . . . . 3-13

Tr ansposit ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14

Per t r ansposit ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14

Oper at ions on St at e-Space Models wit h Delays . . . . . . . . . . . . 3-15

Model Interconnecti on Funct i ons . . . . . . . . . . . . . . . . . . . . . 3-16

Concat enat ion of LTI Models . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17

Feedback and Ot her Int er connect ion Funct ions . . . . . . . . . . . 3-18

Cont i nuous/Di screte Conve rsi ons of LTI Mode ls . . . . . . . . 3-20

Zer o-Or der Hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20

Fir st -Or der Hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22

Tust in Appr oximat ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22

Tust in wit h Fr equency Pr ewar ping . . . . . . . . . . . . . . . . . . . . . 3-23

Mat ched Poles and Zer os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23

Discr et izat ion of Syst ems wit h Delays . . . . . . . . . . . . . . . . . . . 3-24

Delays and Cont inuous/Discr et e Model Conver sions . . . . . . . 3-25

v

Re sampli ng of Di scre te -Ti me Mode ls . . . . . . . . . . . . . . . . . . . 3-27

Re ference s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28

4

Arrays of LTI Models

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2

When t o Collect a Set of Models in an LTI Ar r ay . . . . . . . . . . . 4-2

Rest r ict ions for LTI Models Collect ed in an Ar r ay . . . . . . . . . . 4-2

Wher e t o Find Infor mat ion on LTI Ar r ays . . . . . . . . . . . . . . . . . 4-3

The Concept of an LTI Array . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4

Higher Dimensional Ar r ays of LTI Models . . . . . . . . . . . . . . . . 4-6

Di mensi ons, Si ze, and Shape of an LTI Array . . . . . . . . . . . . 4-7

size and ndims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9

r eshape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11

Bui ldi ng LTI Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12

Gener at ing LTI Ar r ays Using r ss . . . . . . . . . . . . . . . . . . . . . . . 4-12

Building LTI Ar r ays Using for Loops . . . . . . . . . . . . . . . . . . . . 4-12

Building LTI Ar r ays Using t he st ack Funct ion . . . . . . . . . . . . 4-15

Building LTI Ar r ays Using t f, zpk, ss, and fr d . . . . . . . . . . . . . 4-17

Specifying Ar r ays of TF models t f . . . . . . . . . . . . . . . . . . . . . 4-17

The Size of LTI Ar r ay Dat a for SS Models . . . . . . . . . . . . . . 4-18

Inde xi ng Int o LTI Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20

Accessing Par t icular Models in an LTI Ar r ay . . . . . . . . . . . . . 4-20

Single Index Refer encing of Ar r ay Dimensions . . . . . . . . . . 4-21

Ext r act ing LTI Ar r ays of Subsyst ems . . . . . . . . . . . . . . . . . . . 4-21

Reassigning Par t s of an LTI Ar r ay . . . . . . . . . . . . . . . . . . . . . . 4-22

LTI Ar r ays of SS Models wit h Differ ing Number s of St at es 4-23

Delet ing Par t s of an LTI Ar r ay . . . . . . . . . . . . . . . . . . . . . . . . . 4-23

Operati ons on LTI Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25

Example: Addit ion of Two LTI Ar r ays . . . . . . . . . . . . . . . . . . . 4-26

vi Contents

Dimension Requir ement s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27

Special Cases for Oper at ions on LTI Ar r ays . . . . . . . . . . . . . . 4-27

Examples of Oper at ions on LTI Ar r ays wit h

Single LTI Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28

Examples: Ar it hmet ic Oper at ions on LTI Ar r ays

and SISO Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29

Ot her Oper at ions on LTI Ar r ays . . . . . . . . . . . . . . . . . . . . . . . . 4-30

5

Model Analysi s Tools

General Model Characteri st i cs . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Model Dynami cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4

St at e -Space Re ali zati ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7

Time and Frequency Response . . . . . . . . . . . . . . . . . . . . . . . . . 5-9

Time Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9

Fr equency Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11

Plot t ing and Compar ing Mult iple Syst ems . . . . . . . . . . . . . . . 5-13

Cust omizing t he Plot Display . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17

Model Orde r Reduct i on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20

6

The LTI Vi ewer

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

Funct ionalit y of t he LTI Viewer . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

Ge tt ing Started Usi ng the LTI Viewer: An Example . . . . . . 6-4

Init ializing t he LTI Viewer wit h Mult iple Plot s . . . . . . . . . . . . 6-5

Right -Click Menus: Set t ing Response Char act er ist ics . . . . . . . 6-7

vi i

Displaying Response Char act er ist ics on a Plot . . . . . . . . . . . . . 6-9

Impor t ing Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11

Zooming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12

The LTI Vi ewer Me nus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15

The File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15

Impor t ing a New Model int o t he LTI Viewer Wor kspace . . 6-15

Opening a New LTI Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16

Refr eshing Syst ems in t he LTI Viewer Wor kspace . . . . . . . 6-16

Pr int ing Response Plot s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16

Get t ing Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16

St at ic Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16

Int er act ive Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17

The Ri ght-Cli ck Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18

The Right -Click Menu for SISO Models . . . . . . . . . . . . . . . . . . 6-18

Select ing a Menu It em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20

The Right -Click Menu for MIMO Models . . . . . . . . . . . . . . . . . 6-21

The Axes Gr ouping Submenu . . . . . . . . . . . . . . . . . . . . . . . . 6-23

The Select I/Os Menu It em . . . . . . . . . . . . . . . . . . . . . . . . . . 6-26

The Right -Click Menu for LTI Ar r ays . . . . . . . . . . . . . . . . . . . 6-28

The Model Select or for LTI Ar r ays . . . . . . . . . . . . . . . . . . . . . . 6-31

Indexing int o t he Ar r ay Dimensions of an LTI Ar r ay . . . . . 6-32

Indexing int o t he LTI Ar r ay Using Design

Specificat ion Cr it er ia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-35

The LTI Vi ewer Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-39

Viewer Configur at ion Window . . . . . . . . . . . . . . . . . . . . . . . . . 6-39

Response Pr efer ences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-40

Set t ing Response Time Dur at ions and Fr equency Ranges . 6-41

Cust omizing St ep Response Specificat ions . . . . . . . . . . . . . 6-43

Changing t he Fr equency Domain Plot Unit s . . . . . . . . . . . . 6-44

Linest yle Pr efer ences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-44

Changing t he Response Cur ve Linest yle Pr oper t ies . . . . . . 6-46

The Or der in which Line Pr oper t ies ar e Assigned . . . . . . . . 6-47

Si muli nk LTI Vi ewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-48

Using t he Simulink LTI Viewer . . . . . . . . . . . . . . . . . . . . . . . . 6-48

A Sample Analysis Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-49

Opening t he Simulink LTI Viewer . . . . . . . . . . . . . . . . . . . . . . 6-50

vi i i Contents

Specifying t he Simulink Model Por t ion for Analysis . . . . . . . . 6-53

Adding Input Point or Out put Point Blocks t o t he Diagr am 6-53

Removing Input Point s and Out put Point s . . . . . . . . . . . . . 6-56

Specifying Open- Ver sus Closed-Loop Analysis Models . . . 6-56

Set t ing t he Oper at ing Condit ions . . . . . . . . . . . . . . . . . . . . . . . 6-57

Modifying t he Block Par amet er s . . . . . . . . . . . . . . . . . . . . . . . . 6-61

Per for ming Linear Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-61

Impor t ing a Linear ized Analysis Model t o t he LTI Viewer . 6-62

Analyzing t he Bode Plot of t he Linear ized Analysis Model 6-63

Specifying Anot her Analysis Model . . . . . . . . . . . . . . . . . . . 6-63

Compar ing t he Bode Plot s of t he Two

Linear ized Analysis Models . . . . . . . . . . . . . . . . . . . . . . . . 6-63

Saving Analysis Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-65

7

Control Desi gn Tools

Root Locus Desi gn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3

Pole Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5

St at e-Feedback Gain Select ion . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5

St at e Est imat or Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5

Pole Placement Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6

LQG Des i gn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8

Opt imal St at e-Feedback Gain . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9

Kalman St at e Est imat or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9

LQG Regulat or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10

LQG Design Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10

i x

8

The Root Locus Desi gn GUI

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2

A Servomechani sm Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4

Controlle r Desi gn Usi ng the Root Locus Desi gn GUI . . . . . 8-6

Opening t he Root Locus Design GUI . . . . . . . . . . . . . . . . . . . . . 8-6

Impor t ing Models int o t he Root Locus Design GUI . . . . . . . . . . 8-7

Opening t he Impor t LTI Design Model Window . . . . . . . . . . 8-9

Choosing a Feedback St r uct ur e . . . . . . . . . . . . . . . . . . . . . . 8-10

Specifying t he Design Model . . . . . . . . . . . . . . . . . . . . . . . . . 8-11

Changing t he Gain Set Point and Zooming . . . . . . . . . . . . . . . 8-13

Dr agging Closed-loop Poles t o Change t he Gain Set Point . 8-14

Zooming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15

St or ing and Ret r ieving Axes Limit s . . . . . . . . . . . . . . . . . . . 8-19

Displaying Syst em Responses . . . . . . . . . . . . . . . . . . . . . . . . . . 8-20

Designing a Compensat or t o Meet Specificat ions . . . . . . . . . . 8-22

Specifying Design Region Boundar ies on t he Root Locus . . 8-24

Placing Compensat or Poles and Zer os:

Gener al Infor mat ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-26

Placing Compensat or Poles and Zer os

Using t he Root Locus Toolbar . . . . . . . . . . . . . . . . . . . . . . 8-27

Edit ing Compensat or Pole and Zer o Locat ions . . . . . . . . . . 8-31

Saving t he Compensat or and Models . . . . . . . . . . . . . . . . . . . . 8-36

Addi ti onal Root Locus Desi gn GUI Features . . . . . . . . . . . . 8-38

Specifying Design Models: Gener al Concept s . . . . . . . . . . . . . . 8-38

Cr eat ing Models Manually Wit hin t he GUI . . . . . . . . . . . . . 8-38

Designat ing t he Model Sour ce . . . . . . . . . . . . . . . . . . . . . . . 8-39

Get t ing Help wit h t he Root Locus Design GUI . . . . . . . . . . . . 8-39

Using t he Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40

Using t he St at us Bar for Help . . . . . . . . . . . . . . . . . . . . . . . 8-40

Toolt ips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40

Er asing Compensat or Poles and Zer os . . . . . . . . . . . . . . . . . . . 8-41

List ing Poles and Zer os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-41

Pr int ing t he Root Locus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-44

Dr awing a Simulink Diagr am . . . . . . . . . . . . . . . . . . . . . . . . . . 8-44

Conver t ing Bet ween Cont inuous and Discr et e Models . . . . . . 8-45

x Contents

Clear ing Dat a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-46

Re ference s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-48

9

Desi gn Case Studi es

Yaw Damper for a 747 J et Transport . . . . . . . . . . . . . . . . . . . . 9-3

Open-Loop Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6

Root Locus Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9

Washout Filt er Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-14

Hard-Di sk Read/Wri te He ad Controller . . . . . . . . . . . . . . . . 9-20

LQG Regulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-31

Pr ocess and Dist ur bance Models . . . . . . . . . . . . . . . . . . . . . . . . 9-31

Model Dat a for t he x-Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-34

Model Dat a for t he y-Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-34

LQG Design for t he x-Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-34

LQG Design for t he y-Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-42

Cr oss-Coupling Bet ween Axes . . . . . . . . . . . . . . . . . . . . . . . . . . 9-43

MIMO LQG Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-47

Kalman Fi lteri ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-50

Discr et e Kalman Filt er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-50

St eady-St at e Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-51

Time-Var ying Kalman Filt er . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-57

Time-Var ying Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-58

Refer ences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-63

xi

10

Reli able Computati ons

Condi ti oni ng and Numerical St abi li ty . . . . . . . . . . . . . . . . . 10-4

Condit ioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4

Numer ical St abilit y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6

Choi ce of LTI Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8

St at e Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8

Tr ansfer Funct ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8

Zer o-Pole-Gain Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-14

Scali ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-15

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-17

Re ference s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-18

11

Reference

Category Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3

Modal For m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-27

Companion For m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-27

Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-30

Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-31

Cont inuous Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-57

Discr et e Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-57

H

2

Nor m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-152

Infinit y Nor m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-152

Cr eat ion of St at e-Space Models . . . . . . . . . . . . . . . . . . . . 11-211

Conver sion t o St at e Space . . . . . . . . . . . . . . . . . . . . . . . . . 11-212

Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-213

Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-213

Cr eat ion of Tr ansfer Funct ions . . . . . . . . . . . . . . . . . . . . . 11-224

Tr ansfer Funct ions as Rat ional Expr essions in s or z . . . 11-225

xi i Contents

Conver sion t o Tr ansfer Funct ion . . . . . . . . . . . . . . . . . . . 11-226

Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-226

Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-227

Example 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-227

Example 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-228

Cr eat ion of Zer o-Pole-Gain Models . . . . . . . . . . . . . . . . . . 11-238

Zer o-Pole-Gain Models as Rat ional Expr essions in s or z 11-240

Conver sion t o Zer o-Pole-Gain For m . . . . . . . . . . . . . . . . . 11-240

Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-241

Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-241

Example 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-242

Pr eface

Installati on . . . . . . . . . . . . . . . . . . . . . 3

Ge tt i ng Starte d . . . . . . . . . . . . . . . . . . . 4

Typographi c Conve nti ons . . . . . . . . . . . . . . . 5

Preface

2

MATLAB

®

has a r ich collect ion of funct ions immediat ely useful t o t he cont r ol

engineer or syst em t heor ist . Complex ar it hmet ic, eigenvalues, r oot -finding,

mat r ix inver sion, and FFTs ar e just a few examples of MATLAB’s impor t ant

numer ical t ools. Mor e gener ally, MATLAB’s linear algebr a, mat r ix

comput at ion, and numer ical analysis capabilit ies pr ovide a r eliable foundat ion

for cont r ol syst em engineer ing as well as many ot her disciplines.

The Cont r ol Syst em Toolbox uses MATLAB mat r ix st r uct ur es and builds upon

t he foundat ions of MATLAB t o pr ovide funct ions specialized t o cont r ol

engineer ing. The Cont r ol Syst em Toolbox is a collect ion of algor it hms,

expr essed most ly in M-files, which implement s common cont r ol syst em design,

analysis, and modeling t echniques.

Cont r ol syst ems can be modeled as t r ansfer funct ions or in zer o-pole-gain or

st at e-space for m, allowing you t o use bot h classical and moder n t echniques.

You can manipulat e bot h cont inuous-t ime and discr et e-t ime syst ems.

Conver sions bet ween var ious model r epr esent at ions ar e pr ovided. Time

r esponses, fr equency r esponses, and r oot loci can be comput ed and gr aphed.

Ot her funct ions allow pole placement , opt imal cont r ol, and est imat ion. Finally,

and most impor t ant ly, t ools t hat ar e not found in t he t oolbox can be cr eat ed by

wr it ing new M-files.

Installation

3

Installation

Inst r uct ions for inst alling t he Cont r ol Syst em Toolbox can be found in t he

MATLAB Installation Guide for your plat for m. We r ecommend t hat you st or e

t he files fr om t his t oolbox in a dir ect or y named control off t he main matlab

dir ect or y. To det er mine if t he Cont r ol Syst em Toolbox is alr eady inst alled on

your syst em, check for a subdir ect or y named control wit hin t he main t oolbox

dir ect or y or folder .

Five demonst r at ion files ar e available. The demonst r at ion M-file called

ctrldemo.m r uns t hr ough some basic cont r ol design and analysis funct ions and

t he demonst r at ion files jetdemo.m, diskdemo.m, milldemo.m, and kalmdemo.m

go t hr ough t he design case st udies descr ibed in Chapt er 9. To st ar t a demo,

t ype ctrldemo, for example, at t he MATLAB pr ompt .

Preface

4

Getting Started

If you are a ne w use r, begin wit h Chapt er s 2 t hr ough 5 t o lear n:

•How t o specify and manipulat e linear t ime-invar iant models

•How t o analyze such models and plot t heir t ime and fr equency r esponse

If you are an e xperi enced toolbox use r, see:

•The New Features Guide for det ails on t he lat est r elease

•Chapt er 1 for an over view of some pr oduct feat ur es

•Chapt er 4 t o lear n about LTI ar r ays

•Chapt er 6 for an int r oduct ion t o t he LTI Viewer GUI

•Chapt er 8 for an int r oduct ion t o t he Root Locus Design GUI

All toolbox use rs should use Chapt er 11 for r efer ence infor mat ion on funct ions

and t ools. For funct ions, r efer ence descr ipt ions include a synopsis of t he

funct ion’s synt ax, as well as a complet e explanat ion of opt ions and oper at ion.

Many r efer ence descr ipt ions also include helpful examples, a descr ipt ion of t he

funct ion’s algor it hm, and r efer ences t o addit ional r eading mat er ial. For

GUI-based t ools, t he descr ipt ions include opt ions for invoking t he t ool.

Typographic Conventions

5

Typographic Conventions

To Indicate This Guide Uses Example

Example code Monospace type To assign t he value 5 t o A,

ent er

A = 5

Funct ion

names

Monospace type The cos funct ion finds t he

cosine of each ar r ay

element .

Funct ion

synt ax

Monospace type for t ext

t hat must appear as

shown.

Monospace italics for

component s you can

r eplace wit h any var iable.

The magic funct ion uses

t he synt ax

M = magic(n)

Keys Boldface Pr ess t he Re turn key.

Mat hemat ical

expr essions

Var iables in italics.

Funct ions, oper at or s, and

const ant s in st andar d

t ype.

This vect or r epr esent s t he

polynomial

p = x

2

+ 2x + 3

MATLAB

out put

Monospace type MATLAB r esponds wit h

A =

5

Menu names,

menu it ems,

and cont r ols

Boldface Choose t he File menu.

New t er ms italics An array is an or der ed

collect ion of infor mat ion.

Preface

6

1

Quick St ar t

LTI Mode ls . . . . . . . . . . . . . . . . . . . . . 1-3

MIMO Syst ems . . . . . . . . . . . . . . . . . . . 1-4

Model Conver sion . . . . . . . . . . . . . . . . . . 1-5

LTI Ar r ays . . . . . . . . . . . . . . . . . . . . . 1-6

LTI Properti es . . . . . . . . . . . . . . . . . . . 1-7

Mode l Charact eri s ti cs . . . . . . . . . . . . . . . 1-10

Operati ons on LTI Mode ls . . . . . . . . . . . . . . 1-11

Cont i nuous/Di screte Conversi ons . . . . . . . . . . 1-13

Ti me and Frequency Response . . . . . . . . . . . 1-14

The LTI Vi ewer . . . . . . . . . . . . . . . . . . 1-17

System Int erconnect ions . . . . . . . . . . . . . . 1-19

Control Des i gn Tools . . . . . . . . . . . . . . . . 1-20

The Root Locus Desi gn GUI . . . . . . . . . . . . . 1-23

1 Quick Start

1-2

This chapt er pr ovides a quick over view of some feat ur es of t he Cont r ol Syst ems

Toolbox.

LTI Models

1-3

LTI Models

You can specify linear t ime-invar iant (LTI) syst ems as t r ansfer funct ion (TF)

models, zer o/pole/gain (ZPK) models, st at e-space (SS) models, or frequency

response data (FRD) model. You can const r uct t he cor r esponding models using

t he const r uct or funct ions.

sys = tf(num,den) % transfer function

sys = zpk(z,p,k) % zero/pole/gain

sys = ss(a,b,c,d) % state space

sys = frd(response,frequencies) % frequency response data

To find out infor mat ion about LTI models, t ype

ltimodels

See also “Cr eat ing LTI Models” on page 2-8.

The out put sys is a model-specific dat a st r uct ur e called a TF, ZPK, SS, or FRD

object , r espect ively. These object s st or e t he model dat a and enable you t o

manipulat e t he LTI model as a single ent it y; see “LTI Object s” on page 2-3 for

mor e infor mat ion. For example, t ype

h = tf(1,[1 1]) % creates transfer function 1/(s+1)

and MATLAB r esponds wit h

Transfer function:

1

-----

s + 1

Type

1+h

MATLAB r esponds wit h

Transfer function:

s + 2

-----

s + 1

1 Quick Start

1-4

To cr eat e discr et e-t ime models, append t he sample t ime Ts t o t he pr evious

calling sequences.

sys = tf(num,den,Ts)

sys = zpk(z,p,k,Ts)

sys = ss(a,b,c,d,Ts)

sys = frd(response,frequency,Ts)

For mor e infor mat ion, see “Discr et e-Time Models” on page 2-20.

For example, t ype

sys = zpk(0.5,[–0.1 0.3],1,0.05)

and MATLAB r esponds wit h

Zero/pole/gain:

(z–0.5)

---------------

(z+0.1) (z–0.3)

Sampling time: 0.05

You can r et r ieve t he model dat a st or ed in t he LTI object sys wit h t he following

commands (see “Dat a Ret r ieval” on page 2-24 for mor e infor mat ion).

[num,den,Ts] = tfdata(sys)

[z,p,k,Ts] = zpkdata(sys)

[a,b,c,d,Ts] = ssdata(sys)

[response,frequency,Ts] = frdata(sys)

Alt er nat ely, you can access t his dat a by dir ect st r uct ur e-like r efer encing (see

“Dir ect Pr oper t y Refer encing” on page 2-33 for mor e infor mat ion), as in t his

example.

sys.num

sys.a

sys.Ts

MIMO Systems

You can also cr eat e mult i-input /mult i-out put (MIMO) models, including

ar bit r ar y MIMO t r ansfer funct ions and zer o/pole/gain models. MIMO t r ansfer

funct ions ar e ar r ays of single-input /single-out put (SISO) t r ansfer funct ions

LTI Models

1-5

wher e each SISO ent r y is char act er ized by it s numer at or and denominat or .

Cell ar r ays pr ovide an ideal means t o specify t he r esult ing ar r ays of

numer at or s and denominat or s; see, “MIMO Tr ansfer Funct ion Models” on page

2-10 for mor e infor mat ion. For example,

num = {0.5,[1 1]} % 1-by-2 cell array of numerators

den = {[1 0],[1 2]} % 1-by-2 cell array of denominators

H = tf(num,den)

cr eat es t he one-out put /t wo-input t r ansfer funct ion

Alt er nat ively, you can cr eat e t he same t r ansfer funct ion by mat r ix-like

concat enat ion of it s SISO ent r ies

h11 = tf(0.5,[1 0]) % 0.5/s

h12 = tf([1 1],[1 2]) % (s+1)/(s+2)

H = [h11,h12]

MIMO zer o/pole/gain syst ems ar e defined in a similar fashion. For example,

t he following commands specify above as a zer o/pole/gain model

Zeros = {[],–1} % Note: use [] when no zero

Poles = {0 ,–2}

Gains = [0.5,1] % Note: use regular matrix for gains

H = zpk(Zeros,Poles,Gains)

Model Conversion

The funct ions tf, zpk, frd, and ss also per for m model conver sion; see “Model

Conver sion” on page 2-42 for mor e infor mat ion. For example,

sys_ss = ss(sys)

conver t s some tf or zpk model sys t o st at e space. Similar ly, if you t ype

h = tf(1,[1 2 1]) % transfer function 1/(s^2+2s+1)

zpk(h)

H s ( )

0.5

s

--------

s 1 +

s 2 +

------------

=

H s ( )

1 Quick Start

1-6

MATLAB der ives t he zer o/pole/gain r epr esent at ion of t he t r ansfer funct ion h

Zero/pole/gain:

1

-------

(s+1)^2

LTI Arrays

You can now cr eat e mult idimensional ar r ays of LTI models and manipulat e

t hem as a single ent it y. LTI ar r ays ar e useful t o per for m bat ch analysis on an

ent ir e set of models. For mor e infor mat ion, see Chapt er 4, “Ar r ays of LTI

Models.”

LTI Properties

1-7

LTI Properties

In addit ion t o t he model dat a, t he TF, ZPK, FRD, and SS object s can st or e ext r a

infor mat ion, such as t he syst em sample t ime, t ime delays, and input or out put

names. The var ious pieces of infor mat ion t hat can be at t ached t o an LTI object

ar e called t he LTI properties. For infor mat ion on LTI pr oper t ies, t ype

ltiprops

See also “LTI Pr oper t ies” on page 2-26 and “Time Delays” on page 2-45.

Use set t o list all LTI pr oper t ies and t heir assignable values, and get t o

display t he cur r ent pr oper t ies of t he syst em. For example, t ype

sys = ss(–1,1,1,0,0.5) ;% 1/(z+1), sample time = 0.5 sec

set(sys)

a: Nx-by-Nx matrix (Nx = no. of states)

b: Nx-by-Nu matrix (Nu = no. of inputs)

c: Ny-by-Nx matrix (Ny = no. of outputs)

d: Ny-by-Nu matrix

e: Nx-by-Nx matrix (or empty)

StateName: Nx-by-1 cell array of strings

Ts: scalar

InputDelay: Nu-by-1 vector

OutputDelay: Ny-by-1 vector

ioDelayMatrix: Ny-by-Nu array (I/O delays)

InputName: Nu-by-1 cell array of strings

OutputName: Ny-by-1 cell array of strings

InputGroup: M-by-2 cell array if M input groups

OutputGroup: P-by-2 cell array if P output groups

Notes: array or cell array of strings

UserData: arbitrary

1 Quick Start

1-8

Type:

get(sys)

a: -1

b: 1

c: 1

d: 0

e: []

StateName: {''}

Ts: 0.5

InputDelay: 0

OutputDelay: 0

ioDelayMatrix: 0

InputName: {''}

OutputName: {''}

InputGroup: {0x2 cell}

OutputGroup: {0x2 cell}

Notes: {}

UserData: []

You can also use set and get t o access/modify LTI pr oper t ies in a Handle

Gr aphics

®

fashion; see “Set t ing LTI Pr oper t ies” on page 2-30 for mor e

infor mat ion. For example, give names t o t he input and out put of t he SISO

st at e-space model sys. Type

set(sys,'inputname','thrust','outputname','velocity')

get(sys,'inputn')

MATLAB r esponds wit h

ans =

'thrust'

Finally, you can also use a st r uct ur e-like synt ax for accessing or modifying a

single pr oper t y. For example, t ype

sys.Ts = 0.3; % Set sample time to 0.3 sec.

sys.Ts% Get sample time value

LTI Properties

1-9

MATLAB r et ur ns

ans =

3.0000e–01

1 Quick Start

1-10

Model Characteristics

The Cont r ol Syst em Toolbox cont ains commands t o quer y such model

char act er ist ics as t he I/O dimensions, poles, zer os, and DC gain. See “Gener al

Model Char act er ist ics” on page 5-2 for mor e infor mat ion. These commands

apply t o bot h cont inuous- and discr et e-t ime model. Their LTI-based synt ax is

summar ized below (wit h sys denot ing an ar bit r ar y LTI model).

size(sys) % number of inputs, outputs, and array dimensions

ndims(sys) % number of dimensions

isct(sys) % returns 1 for continuous systems

isdt(sys) % returns 1 for discrete systems

hasdelay(sys) % true if system has delays

pole(sys) % system poles

zero(sys) % system (transmission) zeros

dcgain(sys) % DC gain

norm(sys) % system norms (H2 and Linfinity)

covar(sys,W) % covariance of response to white noise

pade(sys) % Pade approximation of input delays

Operations on LTI Models

1-11

Operations on LTI Models

You can per for m simple mat r ix oper at ions, such as addit ion, mult iplicat ion, or

concat enat ion on LTI models. See Chapt er 3, “Oper at ions on LTI Models” for

mor e infor mat ion. Thanks t o MATLAB object -or ient ed pr ogr amming

capabilit ies, t hese oper at ions assume appr opr iat e funct ionalit ies when applied

t o LTI models. For example, addit ion per for ms a par allel int er connect ion. Type

tf(1,[1 0]) + tf([1 1],[1 2])% 1/s + (s+1)/(s+2)

and MATLAB r esponds:

Transfer function

s^2 + 2 s + 2

-------------

s^2 + 2 s

Mult iplicat ion per for ms a ser ies int er connect ion. Type

2 * tf(1,[1 0])*tf([1 1],[1 2])% 2*1/s*(s+1)/(s+2)

and MATLAB r esponds

Transfer function:

2 s + 2

---------

s^2 + 2 s

If t he oper ands ar e models of differ ent t ypes, t he r esult ing model t ype is

det er mined by pr ecedence r ules; see “Pr ecedence Rules” on page 2-5 for mor e

infor mat ion. St at e-space models have highest pr ecedence while t r ansfer

funct ions have lowest pr ecedence. Hence t he sum of a t r ansfer funct ion and a

st at e-space model is always a st at e-space model.

Ot her available oper at ions include syst em inver sion, t r ansposit ion, and

per t r ansposit ion; see “Inver sion and Relat ed Oper at ions” on page 3-13.

Mat r ix-like indexing for ext r act ing subsyst ems is also suppor t ed; see

“Ext r act ing and Modifying Subsyst ems” on page 3-5 for mor e infor mat ion. For

inst ance, if sys is a MIMO syst em wit h t wo input s and t hr ee out put s,

sys(3,1)

1 Quick Start

1-12

ext r act s t he subsyst em mapping t he fir st input t o t he t hir d out put . Not e t hat

r ow indices select t he out put s while column indices select t he input s. Similar ly,

sys(3,1) = tf(1,[1 0])

r edefines t he r elat ion bet ween t he fir st input and t hir d out put as an int egr at or .

Continuous/Discrete Conversions

1-13

Continuous/Discrete Conversions

The commands c2d, d2c, and d2d per for m cont inuous t o discr et e, discr et e t o

cont inuous, and discr et e t o discr et e (r esampling) conver sions, r espect ively.

sysd = c2d(sysc,Ts) % discretization w/ sample period Ts

sysc = d2c(sysd) % equivalent continuous-time model

sysd1= d2d(sysd,Ts) % resampling at the period Ts

See “Cont inuous/Discr et e Conver sions of LTI Models” on page 3-20 for mor e

infor mat ion.

Var ious discr et izat ion/int er polat ion met hods ar e available, including

zer o-or der hold (default ), fir st -or der hold, Tust in appr oximat ion wit h or

wit hout pr ewar ping, and mat ched zer o-pole. For example,

sysd = c2d(sysc,Ts,'foh')% uses first-order hold

sysc = d2c(sysd,'tustin')% uses Tustin approx.

1 Quick Start

1-14

Time and Frequency Response

The following commands pr oduce var ious t ime and fr equency r esponse plot s for

LTI models (see “Time and Fr equency Response” on page 5-9 for mor e

infor mat ion).

step(sys) % step response

impulse(sys) % impulse response

initial(sys,x0) % undriven response to initial condition

lsim(sys,u,t,x0) % response to input u

bode(sys) % Bode plot

nyquist(sys) % Nyquist plot

nichols(sys) % Nichols plot

sigma(sys) % singular value plot

freqresp(sys,w) % complex frequency response

These commands wor k for bot h cont inuous- and discr et e-t ime LTI models sys

wit hout r est r ict ion on t he number of input s or out put s. For MIMO syst ems,

t hey pr oduce an ar r ay of plot s wit h one plot per I/O channel. For example,

sys = [tf(1,[1 1]) 1 ; tf([1 5],[1 1 10]) tf(–1,[1 0])];

bode(sys)

Time and Frequency Response

1-15

pr oduces t he Bode plot shown below.

To super impose and compar e t he r esponses of sever al LTI syst ems, use t he

synt ax

bode(sys1,sys2,sys3,...)

You can also cont r ol t he plot st yle by specifying a color /linest yle/mar ker for

each syst em, much as wit h t he plot command; see “Plot t ing and Compar ing

Mult iple Syst ems” on page 5-13 for mor e infor mat ion. For example,

bode(sys1,'r',sys2,'b--')

dr aws t he r esponse of sys1 wit h a r ed solid line and t he r esponse of sys2 wit h

a dashed blue line.

1 Quick Start

1-16

These commands aut omat ically det er mine an appr opr iat e simulat ion hor izon

or fr equency r ange based on t he syst em dynamics. To over r ide t he default

r ange, t ype

step(sys,tfinal) % final time = tfinal

bode(sys,{wmin,wmax}) % freq. range = [wmin,wmax]

The LTI Viewer

1-17

The LTI Viewer

You can also analyze t ime and fr equency domain r esponses using t he LTI

Viewer ; see “The LTI Viewer ” on page 6-1 for mor e infor mat ion. The LTI

Viewer is an int er act ive user int er face t hat assist s you wit h t he analysis of LTI

model r esponses by facilit at ing such funct ions as:

•Toggling bet ween t ypes of r esponse plot s

•Plot t ing r esponses of sever al LTI models

•Zooming int o r egions of t he r esponse plot s

•Calculat ing r esponse char act er ist ics, such as set t ling t ime

•Displaying differ ent I/O channels

•Changing t he plot st yles of t he r esponse plot s

To init ialize an LTI Viewer , t ype

ltiview

ltiview can also be called wit h addit ional input ar gument s t hat allow you t o

specify t he t ype of LTI model r esponse displayed when t he window is fir st

opened. The gener ic synt ax is

ltiview(plottype,sys1,...,sysn)

wher e sys1,...,sysn ar e names of LTI models in t he MATLAB wor kspace and

plottype is eit her a st r ing for one of t he following plot t ypes, or a cell ar r ay,

cont aining up t o six of t he following st r ings

'step'

'impulse'

'initial'

'lsim'

'pzmap'

'bode'

'nyquist'

'nichols'

'sigma'

For example, you can init ialize an LTI Viewer showing t he st ep r esponse of t he

LTI model sys by

ltiview('step',sys)

1 Quick Start

1-18

For mor e det ail on t he use of t he LTI Viewer and how it can be int egr at ed int o

a Simulink diagr am, see Chapt er 6, “The LTI Viewer .”

System Interconnections

1-19

System Interconnections

You can der ive LTI models for var ious syst em int er connect ions r anging fr om

simple ser ies connect ions t o mor e complex block diagr ams; see “Model

Int er connect ion Funct ions” on page 3-16 for mor e infor mat ion. Relat ed

commands include

append(sys1,sys2,...) % appends systems inputs and outputs

parallel(sys1,sys2) % general parallel connection

series(sys1,sys2) % general series connection

feedback(sys1,sys2) % feedback loop

lft(sys1,sys2) % LFT interconnection (star product)

connect(sys,q) % state-space model of block diagram

Not e t hat simple par allel and ser ies int er connect ions can be per for med by

dir ect addit ion and mult iplicat ion, r espect ively.

When combining LTI models of differ ent t ypes (for example, st at e-space sys1

and t r ansfer funct ion sys2), t he t ype of t he r esult ant model is det er mined by

t he same pr ecedence r ules as for ar it hmet ic oper at ions. See “Pr ecedence Rules”

on page 2-5 for mor e infor mat ion. Specifically, t he r anking of t he differ ent

t ypes of LTI models fr om highest t o lowest pr ecedence is FRD, SS, ZPK, and

TF.

1 Quick Start

1-20

Control Design Tools

The Cont r ol Syst em Toolbox suppor t s t hr ee mainst r eam cont r ol design

met hodologies: gain select ion fr om r oot locus, pole placement , and

linear -quadr at ic-Gaussian (LQG) r egulat ion. The fir st t wo t echniques ar e

cover ed by t he rlocus and place commands. The LQG design t ools include

commands t o comput e t he LQ-opt imal st at e-feedback gain (lqr, dlqr, and

lqry), t o design t he Kalman filt er (kalman), and t o for m t he r esult ing LQG

r egulat or (lqgreg). See “LQG Design” on page 7-8 for mor e infor mat ion.

As an example of LQG design, consider t he r egulat ion pr oblem illust r at ed by

Figur e 1-1. The goal is t o r egulat e t he plant out put ar ound zer o. The syst em

is dr iven by t he whit e noise dist ur bance , t her e is some measur ement noise

, and t he noise int ensit ies ar e given by

The cost funct ion

is used t o specify t he t r ade-off bet ween r egulat ion per for mance and cost of

cont r ol. Not e t hat an open-loop st at e-space model is

wher e is a st at e-space r ealizat ion of .

y

d

n

E d

2

( ) 1, = E n

2

( ) 0.01 =

J u ( ) 10y

2

u

2

+ ( ) t d

0

∞

∫

=

x

·

Ax Bu Bd + + = (st at e equat ions)

y

n

Cx n + = (measur ement s)

A B C , , ( ) 100 s

2

s 100 + + ( ) ⁄

Control Design Tools

1-21

Figure 1-1: Simple Regulation Loop

The following commands design t he opt imal LQG r egulat or for t his

pr oblem.

sys = ss(tf(100,[1 1 100]))% state-space plant model

% Design LQ-optimal gain K

K = lqry(sys,10,1) % u = –Kx minimizes J(u)

% Separate control input u and disturbance input d

P = sys(:,[^ ^]);

% input [u;d], output y

% Design Kalman state estimator KEST

Kest = kalman(P,1,0.01)

% Form LQG regulator = LQ gain + Kalman filter

F = lqgreg(Kest,K)

The last command r et ur ns a st at e-space model F of t he LQG r egulat or .

Not e t hat lqry, kalman, and lqgreg per for m discr et e-t ime LQG design when

applied t o discr et e plant s.

100

s

2

s 100 + +

-------------------------------

LQG r egulat or

+

+

+

+

F s ( ) n

y d

u

u d +

Plant

y

n

F s ( )

F s ( )

1 Quick Start

1-22

To validat e t he design, close t he loop wit h feedback and compar e t he open- and

closed-loop impulse r esponses wit h impulse.

% Close loop

clsys = feedback(sys,F,+1) % Note positive feedback

% Open- vs. closed-loop impulse responses

impulse(sys,'r--',clsys,'b-')

Time (sec.)

A

m

p

l

i

t

u

d

e

Impulse Response

0 2 4 6 8 10 12

−8

−6

−4

−2

0

2

4

6

8

10

The Root Locus Design GUI

1-23

The Root Locus Design GUI

You can also design a compensat or using t he Root Locus Design Gr aphical

User Int er face (GUI). See Chapt er 8, “The Root Locus Design GUI” for mor e

infor mat ion. The Root Locus Design GUI is an int er act ive gr aphical user

int er face t hat assist s you in designing a compensat or by pr oviding t he

following feat ur es:

•Tuning t he value of t he feedback or compensat or gain

•Adding/r emoving compensat or poles and zer os dir ect ly on t he r oot locus plot

•Dr agging compensat or poles and zer os ar ound in t he r oot locus plane

•Examining changes in t he closed-loop r esponse whenever t he compensat or is

changed

•Dr awing boundar ies on t he r oot locus plane for par amet er s such as

minimum damping r at io, et c.

•Zooming in t o r egions of t he r oot locus

To init ialize t he Root Locus Design GUI, simply t ype

rltool

rltool can also be called wit h addit ional input ar gument s t hat allow you t o

init ialize t he plant and compensat or used in t he Root Locus Design GUI. For

example,

rltool(sys)

init ializes a Root Locus Design GUI wit h t he linear t ime invar iant (LTI) object

sys as t he plant . Adding a second input ar gument , as in

rltool(sys,comp)

also init ializes t he LTI object comp as t he r oot locus compensat or .

When one or t wo input ar gument s ar e pr ovided, t he r oot locus of t he closed-loop

poles and t heir locat ions for t he cur r ent compensat or gain ar e dr awn. The

closed-loop model is gener at ed by placing t he compensat or and design model in

t he for war d pat h of a negat ive unit y feedback syst em.

1 Quick Start

1-24

2

LTI Models

Introduct i on . . . . . . . . . . . . . . . . . . . . 2-2

Cre ati ng LTI Mode ls . . . . . . . . . . . . . . . . 2-8

LTI Properti es . . . . . . . . . . . . . . . . . . . 2-26

Mode l Conve rsi on . . . . . . . . . . . . . . . . . 2-42

Ti me Delays . . . . . . . . . . . . . . . . . . . . 2-45

Si mulink Block for LTI Syst ems . . . . . . . . . . . 2-57

Refe re nce s . . . . . . . . . . . . . . . . . . . . . 2-59

2 LTI Models

2-2

Introduction

The Cont r ol Syst em Toolbox offer s ext ensive t ools t o manipulat e and analyze

linear t ime-invar iant (LTI) models. It suppor t s bot h cont inuous- and

discr et e-t ime syst ems. Syst ems can be single-input /single-out put (SISO) or

mult iple-input /mult iple-out put (MIMO). In addit ion, you can st or e sever al LTI

models in an ar r ay under a single var iable name. See Chapt er 4, “Ar r ays of LTI

Models” for infor mat ion on LTI ar r ays.

This sect ion int r oduces key concept s about t he MATLAB r epr esent at ion of LTI

models, including LTI object s, pr ecedence r ules for oper at ions, and an analogy

bet ween LTI syst ems and mat r ices. In addit ion, it summar izes t he basic

commands you can use on LTI object s.

LTI Models

You can specify LTI models as:

•Tr ansfer funct ions (TF), for example,

•Zer o-pole-gain models (ZPK), for example,

•St at e-space models (SS), for example,

wher e A, B, C, and D ar e mat r ices of appr opr iat e dimensions, x is t he st at e

vect or , and u and y ar e t he input and out put vect or s.

•Fr equency r esponse dat a (FRD) models

FRD models consist of sampled measur ement s of a syst em’s fr equency

r esponse. For example, you can st or e exper iment ally collect ed fr equency

r esponse dat a in an FRD.

P s ( )

s 2 +

s

2

s 10 + +

--------------------------- =

H z ( )

2 z 0.5 – ( )

z z 0.1 + ( )

-------------------------

z

2

z 1 + + ( )

z 0.2 + ( ) z 0.1 + ( )

-------------------------------------------- -

=

x d

t d

------ Ax Bu + =

y Cx Du + =

Introduction

2-3

Using LTI Models in the Control System Toolbox

You can manipulat e TF, SS, and ZPK models using t he ar it hmet ic and model

int er connect ion oper at ions descr ibed in Chapt er 3, “Oper at ions on LTI

Models,” and analyze t hem using t he model analysis funct ions, such as bode

and step, descr ibed in Chapt er 5, “Model Analysis Tools.” FRD models can be

manipulat ed and analyzed in much t he same way you analyze t he ot her model

t ypes, but analysis is r est r ict ed t o fr equency-domain met hods.

Using a var iet y of design t echniques, you can design compensat or s for syst ems

specified wit h TF, ZPK, SS, and FRD models. These t echniques include r oot

locus analysis, pole placement , LQG opt imal cont r ol, and fr equency domain

loop-shaping. For FRD models, you can eit her :

•Obt ain an ident ified TF, SS, or ZPK model using syst em ident ificat ion

t echniques.

•Use fr equency-domain analysis t echniques.

Other Uses of FRD Models

FRD models ar e unique model t ypes available in t he Cont r ol Syst em Toolbox

collect ion of LTI model t ypes, in t hat t hey don’t have a par amet r ic

r epr esent at ion. In addit ion t o t he st andar d oper at ions you may per for m on

FRD models, you can also use t hem t o:

•Per for m fr equency-domain analysis on syst ems wit h nonlinear it ies using

descr ibing funct ions.

•Validat e ident ified models against exper iment al fr equency r esponse dat a.

LTI Objects

Depending on t he t ype of model you use, t he dat a for your model may consist

of a simple numer at or /denominat or pair for SISO t r ansfer funct ions, four

mat r ices for st at e-space models, and mult iple set s of zer os and poles for MIMO

zer o-pole-gain models or fr equency and r esponse vect or s for FRD models. For

convenience, t he Cont r ol Syst em Toolbox pr ovides cust omized dat a st r uct ur es

(LTI objects) for each t ype of model. These ar e called t he TF, ZPK, SS, and FRD

object s. These four LTI object s encapsulat e t he model dat a and enable you t o

manipulat e LTI syst ems as single ent it ies r at her t han collect ions of dat a

vect or s or mat r ices.

2 LTI Models

2-4

Creating an LTI Object: An Example

An LTI object of t he t ype TF, ZPK, SS, or FRD is cr eat ed whenever you invoke

t he cor r esponding const r uct or funct ion, tf, zpk, ss, or frd. For example,

P = tf([1 2],[1 1 10])

cr eat es a TF object , P, t hat st or es t he numer at or and denominat or coefficient s

of t he t r ansfer funct ion

See “Cr eat ing LTI Models” on page 2-8 for met hods for cr eat ing all of t he LTI

object t ypes.

LTI Properties and Methods

The LTI object implement at ion r elies on MATLAB object -or ient ed

pr ogr amming capabilit ies. Object s ar e MATLAB st r uct ur es wit h an addit ional

flag indicat ing t heir class (TF, ZPK, SS, or FRD for LTI object s) and have

pr e-defined fields called object properties. For LTI object s, t hese pr oper t ies

include t he model dat a, sample t ime, delay t imes, input or out put names, and

input or out put gr oups (see “LTI Pr oper t ies” on page 2-26 for det ails). The

funct ions t hat oper at e on a par t icular object ar e called t he object methods.

These may include cust omized ver sions of simple oper at ions such as addit ion

or mult iplicat ion. For example,

P = tf([1 2],[1 1 10])

Q = 2 + P

per for ms t r ansfer funct ion addit ion.

The object -specific ver sions of such st andar d oper at ions ar e called overloaded

oper at ions. For mor e det ails on object s, met hods, and object -or ient ed

pr ogr amming, see Chapt er 14, “Classes and Object s” in Using MATLAB. For

det ails on oper at ions on LTI object s, see Chapt er 3, “Oper at ions on LTI

Models.”

P s ( )

s 2 +

s

2

s 10 + +

--------------------------- =

Q s ( ) 2 P s ( ) +

2s

2

3s 22 + +

s

2

s 10 + +

----------------------------------- = =

Introduction

2-5

Precedence Rules

Oper at ions like addit ion and commands like feedback oper at e on mor e t han

one LTI model at a t ime. If t hese LTI models ar e r epr esent ed as LTI object s of

differ ent t ypes (for example, t he fir st oper and is TF and t he second oper and is

SS), it is not obvious what t ype (for example, TF or SS) t he r esult ing model

should be. Such t ype conflict s ar e r esolved by precedence rules. Specifically, TF,

ZPK, SS, and FRD object s ar e r anked accor ding t o t he pr ecedence hier ar chy.

Thus ZPK t akes pr ecedence over TF, SS t akes pr ecedence over bot h TF and

ZPK, and FRD t akes pr ecedence over all t hr ee. In ot her wor ds, any oper at ion

involving t wo or mor e LTI models pr oduces:

•An FRD object if at least one oper and is an FRD object

•An SS object if no oper and is an FRD object and at least one oper and is an

SS object

•A ZPK object if no oper and is an FRD or SS object and at least one is an ZPK

object

•A TF object only if all oper ands ar e TF object s

Oper at ions on syst ems of differ ent t ypes wor k as follows: t he r esult ing t ype is

det er mined by t he pr ecedence r ules, and all oper ands ar e fir st conver t ed t o t his

t ype befor e per for ming t he oper at ion.

Viewing LTI Systems As Matrices

In t he fr equency domain, an LTI syst em is r epr esent ed by t he linear input /

out put map

This map is char act er ized by it s t r ansfer mat r ix H, a funct ion of eit her t he

Laplace or Z-t r ansfor m var iable. The t r ansfer mat r ix H maps input s t o

out put s, so t her e ar e as many columns as input s and as many r ows as out put s.

If you t hink of LTI syst ems in t er ms of (t r ansfer ) mat r ices, cer t ain basic

oper at ions on LTI syst ems ar e nat ur ally expr essed wit h a mat r ix-like synt ax.

FRD > SS > ZPK > TF

y Hu =

2 LTI Models

2-6

For example, t he par allel connect ion of t wo LTI syst ems sys1 and sys2 can be

expr essed as

sys = sys1 + sys2

because par allel connect ion amount s t o adding t he t r ansfer mat r ices.

Similar ly, subsyst ems of a given LTI model sys can be ext r act ed using

mat r ix-like subscr ipt ing. For inst ance,

sys(3,1:2)

pr ovides t he I/O r elat ion bet ween t he fir st t wo input s (column indices) and t he

t hir d out put (r ow index), which is consist ent wit h

for .

Command Summary

The next t wo t ables give an over view of t he main commands you can apply t o

LTI models.

Table 2-1: Creating LTI Models or Getting Data From Them

Command Description

drss Gener at e r andom discr et e st at e-space model.

dss Cr eat e descr ipt or st at e-space model.

filt Cr eat e discr et e filt er wit h DSP convent ion.

frd Cr eat e an FRD model.

frdata Ret r ieve FRD model dat a.

get Quer y LTI model pr oper t ies.

rss Gener at e r andom cont inuous st at e-space model.

y

1

y

2

y

3

H 1 1 , ( ) H 2 1 , ( )

H 2 1 , ( ) H 2 2 , ( )

H 3 1 , ( ) H 3 2 , ( )

u

1

u

2

=

y Hu =

Introduction

2-7

set Set LTI model pr oper t ies.

size Get out put /input /ar r ay dimensions or model or der.

ss Cr eat e a st at e-space model.

ssdata, dssdata Ret r ieve st at e-space dat a (r espect ively, descr ipt or

st at e-space dat a) or conver t it t o cell ar r ay for mat .

tf Cr eat e a t r ansfer funct ion.

tfdata Ret r ieve t r ansfer funct ion dat a.

zpk Cr eat e a zer o-pole-gain model.

zpkdata Ret r ieve zer o-pole-gain dat a.

Table 2-2: Converting LTI Models

Command Description

c2d Cont inuous- t o discr et e-t ime conver sion.

d2c Discr et e- t o cont inuous-t ime conver sion.

d2d Resampling of discr et e-t ime models.

frd Conver sion t o an FRD model.

pade Padé appr oximat ion of input delays.

ss Conver sion t o st at e space.

tf Conver sion t o t r ansfer funct ion.

zpk Conver sion t o zer o-pole-gain.

Table 2-1: Creating LTI Models or Getting Data From Them (Continued)

Command Description

2 LTI Models

2-8

Creating LTI Models

The funct ions tf, zpk, ss, and frd cr eat e t r ansfer funct ion models,

zer o-pole-gain models, st at e-space models, and fr equency r esponse dat a

models, r espect ively. These funct ions t ake t he model dat a as input and pr oduce

TF, ZPK, SS, or FRD object s t hat st or e t his dat a in a single MATLAB var iable.

This sect ion shows how t o cr eat e cont inuous or discr et e, SISO or MIMO LTI

models wit h tf, zpk, ss, and frd.

Note: You can only specify TF, ZPK, and SS models for syst ems whose

t r ansfer mat r ices have r eal-valued coefficient s.

Transfer Function Models

This sect ion explains how t o specify cont inuous-t ime SISO and MIMO t r ansfer

funct ion models. The specificat ion of discr et e-t ime t r ansfer funct ion models is

a simple ext ension of t he cont inuous-t ime case (see “Discr et e-Time Models” on

page 2-20). In t his sect ion you can also r ead about how t o specify t r ansfer

funct ions consist ing of pur e gains.

SISO Transfer Function Models

A cont inuous-t ime SISO t r ansfer funct ion

is char act er ized by it s numer at or and denominat or , bot h

polynomials of t he Laplace var iable s.

Ther e ar e t wo ways t o specify SISO t r ansfer funct ions:

•Using t he tf command

•As r at ional expr essions in t he Laplace var iable s

To specify a SISO t r ansfer funct ion model using t he tf

command, t ype

h = tf(num,den)

h s ( )

n s ( )

d s ( )

----------- =

n s ( ) d s ( )

h s ( ) n s ( ) d s ( ) ⁄ =

Creating LTI Models

2-9

wher e num and den ar e r ow vect or s list ing t he coefficient s of t he polynomials

and , r espect ively, when t hese polynomials ar e or der ed in descending

power s of s. The r esult ing var iable h is a TF object cont aining t he numer at or

and denominat or dat a.

For example, you can cr eat e t he t r ansfer funct ion by

t yping

h = tf([1 0],[1 2 10])

MATLAB r esponds wit h

Transfer function:

s

--------------

s^2 + 2 s + 10

Not e t he cust omized display used for TF object s.

You can also specify t r ansfer funct ions as r at ional expr essions in t he Laplace

var iable s by:

1 Defining t he var iable s as a special TF model

s = tf('s');

2 Ent er ing your t r ansfer funct ion as a r at ional expr ession in s

For example, once s is defined wit h tf as in 1,

H = s/(s^2 + 2*s +10);

pr oduces t he same t r ansfer funct ion as

h = tf([1 0],[1 2 10]);

Note: You need only define t he var iable s as a TF model once. All of t he

subsequent models you cr eat e using r at ional expr essions of s ar e specified as

TF object s, unless you conver t t he var iable s t o ZPK. See “Model Conver sion”

on page 2-42 for mor e infor mat ion.

n s ( ) d s ( )

h s ( ) s s

2

2s 10 + + ( ) ⁄ =

2 LTI Models

2-10

MIMO Transfer Function Models

MIMO t r ansfer funct ions ar e t wo-dimensional ar r ays of element ar y SISO

t r ansfer funct ions. Ther e ar e sever al ways t o specify MIMO t r ansfer funct ion

models, including:

•Concat enat ion of SISO t r ansfer funct ion models

•Using tf wit h cell ar r ay ar gument s

Consider t he r at ional t r ansfer mat r ix

.

You can specify by concat enat ion of it s SISO ent r ies. For inst ance,

h11 = tf([1 –1],[1 1]);

h21 = tf([1 2],[1 4 5]);

or , equivalent ly,

s = tf('s')

h11 = (s–1)/(s+1);

h21 = (s+2)/(s^2+4*s+5);

can be concat enat ed t o for m .

H = [h11; h21]

This synt ax mimics st andar d mat r ix concat enat ion and t ends t o be easier and

mor e r eadable for MIMO syst ems wit h many input s and/or out put s. See “Model

Int er connect ion Funct ions” on page 3-16 for mor e det ails on concat enat ion

oper at ions for LTI syst ems.

Alt er nat ively, t o define MIMO t r ansfer funct ions using tf, you need t wo cell

ar r ays (say, N and D) t o r epr esent t he set s of numer at or and denominat or

polynomials, r espect ively. See Chapt er 13, “St r uct ur es and Cell Ar r ays” in

Using MATLAB for mor e det ails on cell ar r ays.

H s ( )

s 1 –

s 1 +

------------

s 2 +

s

2

4s 5 + +

----------------------------

=

H s ( )

H s ( )

Creating LTI Models

2-11

For example, for t he r at ional t r ansfer mat r ix , t he t wo cell ar r ays N and D

should cont ain t he r ow-vect or r epr esent at ions of t he polynomial ent r ies of

You can specify t his MIMO t r ansfer mat r ix by t yping

N = {[1 –1];[1 2]}; % cell array for N(s)

D = {[1 1];[1 4 5]}; % cell array for D(s)

H = tf(N,D)

MATLAB r esponds wit h

Transfer function from input to output...

s – 1

#1: -----

s + 1

s + 2

#2: -------------

s^2 + 4 s + 5

Not ice t hat bot h N and D have t he same dimensions as H. For a gener al MIMO

t r ansfer mat r ix , t he cell ar r ay ent r ies N{i,j} and D{i,j} should be

r ow-vect or r epr esent at ions of t he numer at or and denominat or of , t he

ent r y of t he t r ansfer mat r ix .

Pure Gains

You can use tf wit h only one ar gument t o specify simple gains or gain mat r ices

as TF object s. For example,

G = tf([1 0;2 1])

pr oduces t he gain mat r ix

H s ( )

N s ( )

s 1 –

s 2 +

= D s ( )

s 1 +

s

2

4s 5 + +

=

H s ( )

H s ( )

H

i j

s ( )

i j t h H s ( )

G

1 0

2 1

=

2 LTI Models

2-12

while

E = tf

cr eat es an empt y t r ansfer funct ion.

Zero-Pole-Gain Models

This sect ion explains how t o specify cont inuous-t ime SISO and MIMO

zer o-pole-gain models. The specificat ion for discr et e-t ime zer o-pole-gain

models is a simple ext ension of t he cont inuous-t ime case. See “Discr et e-Time

Models” on page 2-20.

SISO Zero-Pole-Gain Models

Cont inuous-t ime SISO zer o-pole-gain models ar e of t he for m

wher e is a r eal-valued scalar (t he gain), and ,..., and ,..., ar e t he

r eal or complex conjugat e pair s of zer os and poles of t he t r ansfer funct ion .

This model is closely r elat ed t o t he t r ansfer funct ion r epr esent at ion: t he zer os

ar e simply t he numer at or r oot s, and t he poles, t he denominat or r oot s.

Ther e ar e t wo ways t o specify SISO zer o-pole-gain models:

•Using t he zpk command

•As r at ional expr essions in t he Laplace var iable s

The synt ax t o specify ZPK models dir ect ly using zpk is

h = zpk(z,p,k)

wher e z and p ar e t he vect or s of zer os and poles, and k is t he gain. This

pr oduces a ZPK object h t hat encapsulat es t he z, p, and k dat a. For example,

t yping

h = zpk(0, [1–i 1+i 2], –2)

h s ( ) k

s z

1

– ( ) ... s z

m

– ( )

s p

1

– ( ) ... s p

n

– ( )

------------------------------------------------ - =

k z

1

z

m

p

1

p

n

h s ( )

Creating LTI Models

2-13

pr oduces

Zero/pole/gain:

–2 s

--------------------

(s–2) (s^2 – 2s + 2)

You can also specify zer o-pole-gain models as r at ional expr essions in t he

Laplace var iable s by:

1 Defining t he var iable s as a ZPK model

s = zpk('s')

2 Ent er ing t he t r ansfer funct ion as a r at ional expr ession in s.

For example, once s is defined wit h zpk,

H = –2s/((s – 2)*(s^2 + 2*s + 2));

r et ur ns t he same ZPK model as

h = zpk([0], [2 –1–i –1+i ], –2);

Note: You need only define t he ZPK var iable s once. All subsequent r at ional

expr essions of s will be ZPK models, unless you conver t t he var iable s t o TF.

See “Model Conver sion” on page 2-42 for mor e infor mat ion on conver sion t o

ot her model t ypes.

MIMO Zero-Pole-Gain Models

J ust as wit h TF models, you can also specify a MIMO ZPK model by

concat enat ion of it s SISO ent r ies (see “Model Int er connect ion Funct ions” on

page 3-16).

You can also use t he command zpk t o specify MIMO ZPK models. The synt ax

t o cr eat e a p-by-m MIMO zer o-pole-gain model using zpk is

H = zpk(Z,P,K)

2 LTI Models

2-14

wher e

•Z is t he p-by-m cell ar r ay of zer os (Z{i,j} = zer os of )

•P is t he p-by-m cell ar r ay of poles (P{i,j} = poles of )

•K is t he p-by-m mat r ix of gains (K(i,j) = gain of )

For example, t yping

Z = {[],–5;[1–i 1+i] []};

P = {0,[–1 –1];[1 2 3],[]};

K = [–1 3;2 0];

H = zpk(Z,P,K)

cr eat es t he t wo-input /t wo-out put zer o-pole-gain model

Not ice t hat you use [] as a place-holder in Z (or P) when t he cor r esponding

ent r y of has no zer os (or poles).

State-Space Models

St at e-space models r ely on linear differ ent ial or differ ence equat ions t o

descr ibe t he syst em dynamics. Cont inuous-t ime models ar e of t he for m

wher e x is t he st at e vect or and u and y ar e t he input and out put vect or s. Such

models may ar ise fr om t he equat ions of physics, fr om st at e-space

ident ificat ion, or by st at e-space r ealizat ion of t he syst em t r ansfer funct ion.

H

i j

s ( )

H

i j

s ( )

H

i j

s ( )

H s ( )

1 –

s

------

3 s 5 + ( )

s 1 + ( )

2

--------------------

2 s

2

2s – 2 + ( )

s 1 – ( ) s 2 – ( ) s 3 – ( )

--------------------------------------------------- 0

=

H s ( )

x d

t d

------ Ax Bu + =

y Cx Du + =

Creating LTI Models

2-15

Use t he command ss t o cr eat e st at e-space models

sys = ss(A,B,C,D)

For a model wit h Nx st at es, Ny out put s, and Nu input s

•A is an Nx-by-Nx r eal-valued mat r ix.

•B is an Nx-by-Nu r eal-valued mat r ix.

•C is an Ny-by-Nx r eal-valued mat r ix.

•D is an Ny-by-Nu r eal-valued mat r ix.

This pr oduces an SS object sys t hat st or es t he st at e-space mat r ices

. For models wit h a zer o D mat r ix, you can use D = 0 (zer o) as a

shor t hand for a zer o mat r ix of t he appr opr iat e dimensions.

As an illust r at ion, consider t he following simple model of an elect r ic mot or .

wher e is t he angular displacement of t he r ot or and t he dr iving cur r ent .

The r elat ion bet ween t he input cur r ent and t he angular velocit y

is descr ibed by t he st at e-space equat ions

wher e

This model is specified by t yping

sys = ss([0 1;–5 –2],[0;3],[0 1],0)

A B C and D , , ,

d

2

θ

t

2

d

---------- 2

θ d

t d

------ 5θ + + 3I =

θ I

u I =

y d θ d t ⁄ =

x d

t d

------ Ax B u + =

y Cx =

x

θ

θ d

t d

------

= A

0 1

5 – 2 –

= B

0

3

= C

0 1

=

2 LTI Models

2-16

t o which MATLAB r esponds

a =

x1 x2

x1 0 1.00000

x2 –5.00000 –2.00000

b =

u1

x1 0

x2 3.00000

c =

x1 x2

y1 0 1.00000

d =

u1

y1 0

In addit ion t o t he A, B, C, and D mat r ices, t he display of st at e-space models

includes st at e names, input names, and out put names. Default names (her e,

x1, x2, u1, and y1) ar e displayed whenever you leave t hese unspecified. See

“LTI Pr oper t ies” on page 2-26 for mor e infor mat ion on how t o specify st at e,

input , or out put names.

Descriptor State-Space Models

Descr ipt or st at e-space (DSS) models ar e a gener alizat ion of t he st andar d

st at e-space models discussed above. They ar e of t he for m

The Cont r ol Syst em Toolbox suppor t s only descr ipt or syst ems wit h a

nonsingular mat r ix. While such models have an equivalent explicit for m

E

x d

t d

------ Ax Bu + =

y Cx Du + =

E

x d

t d

------ E

1 –

A ( )x E

1 –

B ( )u + =

y Cx Du + =

Creating LTI Models

2-17

it is oft en desir able t o wor k wit h t he descr ipt or for m when t he mat r ix is

poor ly condit ioned wit h r espect t o inver sion.

The funct ion dss is t he count er par t of ss for descr ipt or st at e-space models.

Specifically,

sys = dss(A,B,C,D,E)

cr eat es a cont inuous-t ime DSS model wit h mat r ix dat a A,B,C,D,E. For

example, consider t he dynamical model

wit h vect or of angular velocit ies. If t he iner t ia mat r ix is poor ly condit ioned

wit h r espect t o inver sion, you can specify t his syst em as a descr ipt or model by

sys = dss(–F,eye(n),eye(n),0,J) % n = length of vector

Frequency Response Data (FRD) Models

In some inst ances, you may only have sampled fr equency r esponse dat a, r at her

t han a t r ansfer funct ion or st at e-space model for t he syst em you want t o

analyze or cont r ol. For infor mat ion on fr equency r esponse analysis of linear

syst ems, see Chapt er 8 of [1].

For example, suppose t he fr equency r esponse funct ion for t he SISO syst em you

want t o model is G(w). Suppose, in addit ion, t hat you per for m an exper iment

t o evaluat e G(w) at a fixed set of fr equencies, . You can do t his by

dr iving t he syst em wit h a sequence of sinusoids at each of t hese fr equencies, as

depict ed below.

E

J

d ω

d t

-------- Fω + T =

y ω =

ω J

ω

w

1

w

2

… w

n

, , ,

w

i

t sin

G(w) =

y

i

t ( )

2 LTI Models

2-18

Her e is t he input fr equency of each sinusoid, i = 1 ... n, and G(w) =

. The st eady st at e out put r esponse of t his syst em sat isfies

A frequency response data (FRD) object is a model for m you can use t o st or e

fr equency r esponse dat a (complex fr equency r esponse, along wit h a

cor r esponding vect or of fr equency point s) t hat you obt ain eit her t hr ough

simulat ions or exper iment ally. In t his example, t he fr equency r esponse dat a is

obt ained fr om t he set of r esponse pair s: .

Once you st or e your dat a in an FRD model, you can t r eat it as an LTI model,

and manipulat e an FRD model in most of t he same ways you manipulat e TF,

SS, and ZPK models.

The basic synt ax for cr eat ing a SISO FRD model is

sys = frd(response,frequencies,units)

wher e

•frequencies is a r eal vect or of lengt h Nf.

•response is a vect or of lengt h Nf of complex fr equency r esponse values for

t hese fr equencies.

•units is an opt ional st r ing for t he unit s of fr equency: eit her 'rad/s' (default )

or 'Hz'

w

i

G w ( ) j G w ( ) ∠ ( ) exp

y

i

t ( ) G w

i

( ) w

i

t G w

i

( ) ∠ + ( ) i ; sin 1…n = =

G w

i

( ) w

i

( , ) { } i , 1…n =

Creating LTI Models

2-19

For example, t he MAT-file LTIexamples.mat cont ains a fr equency vect or freq,

and a cor r esponding complex fr equency r esponse dat a vect or respG. To load

t his fr equency-domain dat a and const r uct an FRD model, t ype

load LTIexamples

sys = frd(respG,freq)

Continuous-time frequency response with 1 output and 1 input

at 5 frequency points.

From input 1 to:

Frequency(rad/s) output 1

---------------- --------

1 –0.812505 –0.000312i

2 –0.092593 –0.462963i

4 –0.075781 –0.001625i

5 –0.043735 –0.000390i

The synt ax for cr eat ing a MIMO FRD model is t he same as for t he SISO case,

except t hat response is a p-by-m-by-N

f

mult idimensional ar r ay, wher e p is t he

number of out put s, m is t he number of input s, and N

f

is t he number of

fr equency dat a point s (t he lengt h of frequency).

The following t able summar izes t he complex-valued r esponse dat a for mat for

FRD models.

Table 2-3: Data Format for the Argument response in FRD Models

Model Form Response Data Format

SISO model Vect or of lengt h Nf for which response(i) is t he

fr equency r esponse at t he fr equency frequency(i)

MIMO model

wit h Ny out put s

and Nu input s

Ny-by-Nu-by-Nf mult idimensional ar r ay for which

response(i,j,k) specifies t he fr equency r esponse

fr om input j t o out put i at fr equency frequency(k)

S1-by-...-by-Sn

ar r ay of models

wit h Ny out put s

and Nu input s

Ny-by-Nu-by-S1-by-...-by-Sn mult idimensional ar r ay,

for which response(i,j,k,:) specifies t he ar r ay of

fr equency r esponse dat a fr om input j t o out put i at

fr equency frequency(k)

2 LTI Models

2-20

Discrete-Time Models

Cr eat ing discr et e-t ime models is ver y much like cr eat ing cont inuous-t ime

models, except t hat you must also specify a sampling per iod or sample time for

discr et e-t ime models. The sample t ime value should be scalar and expr essed in

seconds. You can also use t he value –1 t o leave t he sample t ime unspecified.

To specify discr et e-t ime LTI models using tf, zpk, ss, or frd, simply append

t he desir ed sample t ime value Ts t o t he list of input s.

sys1 = tf(num,den,Ts)

sys2 = zpk(z,p,k,Ts)

sys3 = ss(a,b,c,d,Ts)

sys4 = frd(response,frequency,Ts)

For example,

h = tf([1 –1],[1 –0.5],0.1)

cr eat es t he discr et e-t ime t r ansfer funct ion wit h

sample t ime 0.1 seconds, and

sys = ss(A,B,C,D,0.5)

specifies t he discr et e-t ime st at e-space model

wit h sampling per iod 0.5 second. The vect or s denot e t he

values of t he st at e, input , and out put vect or s at t he nt h sample.

By convent ion, t he sample t ime of cont inuous-t ime models is Ts = 0. Set t ing

Ts = –1 leaves t he sample t ime of a discr et e-t ime model unspecified. For

example,

h = tf([1 –0.2],[1 0.3],–1)

h z ( ) z 1 – ( ) z 0.5 – ( ) ⁄ =

x n 1 + [ ] Ax n [ ] Bu n [ ] + =

y n [ ] Cx n [ ] Du n [ ] + =

x n [ ] u n [ ] y n [ ] , ,

Creating LTI Models

2-21

pr oduces

Transfer function:

z – 0.2

-------

z + 0.3

Sampling time: unspecified

Note: Do not simply omit Ts in t his case. This would make h a

cont inuous-t ime t r ansfer funct ion.

If you for get t o specify t he sample t ime when cr eat ing your model, you can st ill

set it t o t he cor r ect value by r eassigning t he LTI pr oper t y Ts. See “Sample

Time” on page 2-34 for mor e infor mat ion on set t ing t his pr oper t y.

Discrete-Time TF and ZPK Models

You can specify discr et e-t ime TF and ZPK models using tf and zpk as indicat ed

above. Alt er nat ively, it is oft en convenient t o specify such models by:

1 Defining t he var iable z as a par t icular discr et e-t ime TF or ZPK model wit h

t he appr opr iat e sample t ime

2 Ent er ing your TF or ZPK model dir ect ly as a r at ional expr ession in z.

This appr oach par allels t he pr ocedur e for specifying cont inuous-t ime TF or

ZPK models using r at ional expr essions. This pr ocedur e is descr ibed in “SISO

Tr ansfer Funct ion Models” on page 2-8 and “SISO Zer o-Pole-Gain Models” on

page 2-12.

For example,

z = tf('z', 0.1);

H = (z+2)/(z^2 + 0.6*z + 0.9);

cr eat es t he same TF model as

H = tf([1 2], [1 0.6 0.9], 0.1);

2 LTI Models

2-22

Similar ly,

z = zpk('z', 0.1);

H = [z/(z+0.1)/(z+0.2) ; (z^2+0.2*z+0.1)/(z^2+0.2*z+0.01)]

pr oduces t he single-input , t wo-out put ZPK model

Zero/pole/gain from input to output...

z

#1: ---------------

(z+0.1) (z+0.2)

(z^2 + 0.2z + 0.1)

#2: ------------------

(z+0.1)^2

Sampling time: 0.1

Not e t hat :

•The synt ax z = tf('z') is equivalent t o z = tf('z',–1) and leaves t he

sample t ime unspecified. The same applies t o z = zpk('z').

•Once you have defined z as indicat ed above, any r at ional expr essions in z

cr eat es a discr et e-t ime model of t he same t ype and wit h t he same sample

t ime as z.

Discrete Transfer Functions in DSP Format

In digit al signal pr ocessing (DSP), it is cust omar y t o wr it e discr et e t r ansfer

funct ions as r at ional expr essions in and t o or der t he numer at or and

denominat or coefficient s in ascending powers of . For example, t he

numer at or and denominat or of

would be specified as t he r ow vect or s [1 0.5] and [1 2 3], r espect ively. When

t he numer at or and denominat or have differ ent degr ees, t his convent ion

clashes wit h t he “descending powers of ” convent ion assumed by tf (see

“Tr ansfer Funct ion Models” on page 2-8, or tf on page 11-224). For example,

h = tf([1 0.5],[1 2 3])

z

1 –

z

1 –

H z

1 –

( )

1 0.5z

1 –

+

1 2z

1 –

3z

2 –

+ +

---------------------------------------- =

z

Creating LTI Models

2-23

pr oduces t he t r ansfer funct ion

which differ s fr om by a fact or .

To avoid such convent ion clashes, t he Cont r ol Syst em Toolbox offer s a separ at e

funct ion filt dedicat ed t o t he DSP-like specificat ion of t r ansfer funct ions. It s

synt ax is

h = filt(num,den)

for discr et e t r ansfer funct ions wit h unspecified sample t ime, and

h = filt(num,den,Ts)

t o fur t her specify t he sample t ime Ts. This funct ion cr eat es TF object s just like

tf, but expect s num and den t o list t he numer at or and denominat or coefficient s

in ascending powers of . For example, t yping

h = filt([1 0.5],[1 2 3])

pr oduces

Transfer function:

1 + 0.5 z^–1

-------------------

1 + 2 z^–1 + 3 z^–2

Sampling time: unspecified

You can also use filt t o specify MIMO t r ansfer funct ions in . J ust as for tf,

t he input ar gument s num and den ar e t hen cell ar r ays of r ow vect or s of

appr opr iat e dimensions (see “Tr ansfer Funct ion Models” on page 2-8 for

det ails). Not e t hat each r ow vect or should comply wit h t he “ascending power s

of ”convent ion.

z 0.5 +

z

2

2z 3 + +

----------------------------

H z

1 –

( ) z

z

1 –

z

1 –

z

1 –

2 LTI Models

2-24

Data Retrieval

The funct ions tf, zpk, ss, and frd pack t he model dat a and sample t ime in a

single LTI object . Conver sely, t he following commands pr ovide convenient dat a

r et r ieval for any t ype of TF, SS, or ZPK model sys, or FRD model sysfr.

[num,den,Ts] = tfdata(sys) % Ts = sample time

[z,p,k,Ts] = zpkdata(sys)

[a,b,c,d,Ts] = ssdata(sys)

[a,b,c,d,e,Ts] = dssdata(sys)

[response,frequency,Ts] = frdata(sysfr)

Not e t hat :

•sys can be any t ype of LTI object , except an FRD model

•sysfr, t he input ar gument t o frdata, can only be an FRD model

You can use any var iable names you want in t he out put ar gument list of any of

t hese funct ions. The ones list ed her e cor r espond t o t he model pr oper t y names

descr ibed in Tables 2-2 – 2.5.

The out put ar gument s num and den assigned t o tfdata, and z and p assigned

t o zpkdata, ar e cell ar r ays, even in t he SISO case. These cell ar r ays have as

many r ows as out put s, as many columns as input s, and t heir ijt h ent r y

specifies t he t r ansfer funct ion fr om t he jt h input t o t he it h out put . For example,

H = [tf([1 –1],[1 2 10]) , tf(1,[1 0])]

cr eat es t he one-out put /t wo-input t r ansfer funct ion

Typing

[num,den] = tfdata(H);

num{1,1}, den{1,1}

H s ( )

s 1 –

s

2

2s 10 + +

-------------------------------

1

s

---

=

Creating LTI Models

2-25

displays t he coefficient s of t he numer at or and denominat or of t he fir st input

channel.

ans =

0 1 –1

ans =

1 2 10

Not e t hat t he same r esult is obt ained using

H.num{1,1}, H.den{1,1}

See “Dir ect Pr oper t y Refer encing” on page 2-33 for mor e infor mat ion about t his

synt ax.

To obt ain t he numer at or and denominat or of SISO syst ems dir ect ly as r ow

vect or s, use t he synt ax

[num,den,Ts] = tfdata(sys,'v')

For example, t yping

sys = tf([1 3],[1 2 5]);

[num,den] = tfdata(sys,'v')

pr oduces

num =

0 1 3

den =

1 2 5

Similar ly,

[z,p,k,Ts] = zpkdata(sys,'v')

r et ur ns t he zer os, z, and t he poles, p, as vectors for SISO syst ems.

2 LTI Models

2-26

LTI Properties

The pr evious sect ion shows how t o cr eat e LTI object s t hat encapsulat e t he

model dat a and sample t ime. You also have t he opt ion t o at t r ibut e addit ional

infor mat ion, such as t he input names or not es on t he model hist or y, t o LTI

object s. This sect ion gives a complet e over view of t he LTI properties, i.e., t he

var ious pieces of infor mat ion t hat can be at t ached t o t he TF, ZPK, SS, and FRD

object s. Type help ltiprops for online help on available LTI pr oper t ies.

Fr om a dat a st r uct ur e st andpoint , t he LTI pr oper t ies ar e t he var ious fields in

t he TF, ZPK, SS, and FRD object s. These fields have names (t he property

names) and ar e assigned values (t he property values). We dist inguish bet ween

generic properties, common t o all four t ypes of LTI object s, and model-specific

properties t hat per t ain only t o one par t icular t ype of model.

Generic Properties

The gener ic pr oper t ies ar e t hose shar ed by all four t ypes of LTI models (TF,

ZPK, SS, and FRD object s). They ar e list ed in t he t able below.

Table 2-4: Generic LTI Properties

Property Name Description Property Value

IoDelayMatrix I/O delay(s) Mat r ix

InputDelay Input delay(s) Vect or

InputGroup Input channel gr oups Cell ar r ay

InputName Input channel names Cell vect or of st r ings

Notes Not es on t he model hist or y Text

OutputDelay Out put delay(s) Vect or

OutputGroup Out put channel gr oups Cell ar r ay

OutputName Out put channel names Cell vect or of st r ings

Ts Sample t ime Scalar

Userdata Addit ional dat a Ar bit r ar y

LTI Properties

2-27

The sample t ime pr oper t y Ts keeps t r ack of t he sample t ime (in seconds) of

discr et e-t ime syst ems. By convent ion, Ts is 0 (zer o) for cont inuous-t ime

syst ems, and Ts is –1 for discr et e-t ime syst ems wit h unspecified sample t ime.

Ts is always a scalar , even for MIMO syst ems.

The InputDelay, OutputDelay, and ioDelayMatrix pr oper t ies allow you t o

specify t ime delays in t he input or out put channels, or for each input /out put

pair . Their default value is zer o (no delay). See “Time Delays” on page 2-45 for

det ails on modeling delays.

The InputName and OutputName pr oper t ies enable you t o give names t o t he

individual input and out put channels. The value of each of t hese pr oper t ies is

a cell vect or of st r ings wit h as many cells as input s or out put s. For example,

t he OutputName pr oper t y is set t o

{ 'temperature' ; 'pressure' }

for a syst em wit h t wo out put s labeled temperature and pressure. The default

value is a cell of empt y st r ings.

Using t he InputGroup and OutputGroup pr oper t ies of LTI object s, you can

cr eat e differ ent gr oups of input or out put channels, and assign names t o t he

gr oups. For example, you may want t o designat e t he fir st four input s of a

five-input model as controls, and t he last input as noise. See “Input Gr oups

and Out put Gr oups” on page 2-37 for mor e infor mat ion.

Finally, Notes and Userdata ar e available t o st or e addit ional infor mat ion on

t he model. The Notes pr oper t y is dedicat ed t o any t ext you want t o supply wit h

your model, while t he Userdata pr oper t y can accommodat e ar bit r ar y

user -supplied dat a. They ar e bot h empt y by default .

For mor e det ailed infor mat ion on how t o use LTI pr oper t ies, see “Addit ional

Insight int o LTI Pr oper t ies” on page 2-34.

2 LTI Models

2-28

Model-Specific Properties

The r emaining LTI pr oper t ies ar e specific t o one of t he four model t ypes (TF,

ZPK, SS, or FRD). For single LTI models, t hese ar e summar ized in t he

following four t ables. The pr oper t y values differ for LTI ar r ays. See set on page

11-193 for mor e infor mat ion on t hese values.

Table 2-5: TF-Specific Properties

Property Name Description Property Value

den Denominat or (s) Real cell ar r ay of r ow vect or s

num Numer at or (s) Real cell ar r ay of r ow vect or s

Variable Tr ansfer funct ion

var iable

St r ing 's', 'p', 'z', 'q', or

'z^–1'

Table 2-6: ZPK-Specific Properties

Property Name Description Property Value

k Gains Two-dimensional r eal mat r ix

p Poles Cell ar r ay of column vect or s

Variable Tr ansfer funct ion

var iable

St r ing 's', 'p', 'z', 'q', or

'z^–1'

z Zer os Cell ar r ay of column vect or s

Table 2-7: SS-Specific Properties

Property Name Description Property Value

a St at e mat r ix 2-D r eal mat r ix

b Input -t o-st at e mat r ix 2-D r eal mat r ix

c St at e-t o-out put mat r ix 2-D r eal mat r ix

d Feedt hr ough mat r ix 2-D r eal mat r ix

A

B

C

D

LTI Properties

2-29

Most of t hese pr oper t ies ar e dedicat ed t o st or ing t he model dat a. Not e t hat t he

mat r ix is set t o [] (t he empt y mat r ix) for st andar d st at e-space models, a

st or age-efficient shor t hand for t he t r ue value .

The Variable pr oper t y is only an at t r ibut e of TF and ZPK object s. This

pr oper t y defines t he fr equency var iable of t r ansfer funct ions. The default

values ar e 's' (Laplace var iable ) in cont inuous t ime and 'z' (Z-t r ansfor m

var iable ) in discr et e t ime. Alt er nat ive choices include 'p' (equivalent t o )

and 'q' or 'z^–1' for t he r ecipr ocal of t he var iable. The influence of

t he var iable choice is most ly limit ed t o t he display of TF or ZPK models. One

except ion is t he specificat ion of discr et e-t ime t r ansfer funct ions wit h tf (see tf

on page 11-224 for det ails).

Not e t hat tf pr oduces t he same r esult as filt when t he Variable pr oper t y is

set t o 'z^–1' or 'q'.

Finally, t he StateName pr oper t y is analogous t o t he InputName and OutputName

pr oper t ies and keeps t r ack of t he st at e names in st at e-space models.

e Descr ipt or mat r ix 2-D r eal mat r ix

StateName St at e names Cell vect or of st r ings

Table 2-8: FRD-Specific Properties

Property Name Description Property Value

Frequency Fr equency dat a point s Real-valued vect or

ResponseData Fr equency r esponse Complex-valued

mult idimensional ar r ay

Units Unit s for fr equency St r ing 'rad/s' or 'Hz'

Table 2-7: SS-Specific Properties (Continued)

Property Name Description Property Value

E

E

E I =

s

z s

q z

1 –

= z

2 LTI Models

2-30

Setting LTI Properties

Ther e ar e t hr ee ways t o specify LTI pr oper t y values:

•You can set pr oper t ies when cr eat ing LTI models wit h tf, zpk, ss, or frd.

•You can set or modify t he pr oper t ies of an exist ing LTI model wit h set.

•You can also set pr oper t y values using st r uct ur e-like assignment s.

This sect ion discusses t he fir st t wo opt ions. See “Dir ect Pr oper t y Refer encing”

on page 2-33 for det ails on t he t hir d opt ion.

The funct ion set for LTI object s follows t he same synt ax as it s Handle

Gr aphics count er par t . Specifically, each pr oper t y is updat ed by a pair of

ar gument s

PropertyName,PropertyValue

wher e

•PropertyName is a st r ing specifying t he pr oper t y name. You can t ype t he

pr oper t y name wit hout r egar d for t he case (upper or lower ) of t he let t er s in

t he name. Act ually, you need only t ype any abbr eviat ion of t he pr oper t y

name t hat uniquely ident ifies t he pr oper t y. For example, 'user' is sufficient

t o r efer t o t he Userdata pr oper t y.

•PropertyValue is t he value t o assign t o t he pr oper t y (see set on page 11-193

for det ails on admissible pr oper t y values).

As an illust r at ion, consider t he following simple SISO model for a heat ing

syst em wit h an input delay of 0.3 seconds, an input called “ener gy,” and an

out put called “t emper at ur e.”

Figure 2-1: A Simple Heater Model

You can use a TF object t o r epr esent t his delay syst em, and specify t he t ime

delay, t he input and out put names, and t he model hist or y by set t ing t he

cor r esponding LTI pr oper t ies. You can eit her set t hese pr oper t ies dir ect ly

when you cr eat e t he LTI model wit h tf, or by using t he set command.

1

s 1 +

------------

e

0.3s –

delay

energy

temperature

LTI Properties

2-31

For example, you can specify t he delay dir ect ly when you cr eat e t he model, and

t hen use t he set command t o assign InputName, OutputName, and Notes t o

sys.

sys = tf(1,[1 1],'Inputdelay',0.3);

set(sys,'inputname','energy','outputname','temperature',...

'notes','A simple heater model')

Finally, you can also use t he set command t o obt ain a list ing of all set t able

pr oper t ies for a given LTI model t ype, along wit h valid values for t hese

pr oper t ies. For t he t r ansfer funct ion sys cr eat ed above

set(sys)

pr oduces

num: Ny-by-Nu cell of row vectors (Nu = no. of inputs)

den: Ny-by-Nu cell of row vectors (Ny = no. of outputs)

Variable: [ 's' | 'p' | 'z' | 'z^-1' | 'q' ]

Ts: scalar

InputDelay: Nu-by-1 vector

OutputDelay: Ny-by-1 vector

ioDelayMatrix: Ny-by-Nu array (I/O delays)

InputName: Nu-by-1 cell array of strings

OutputName: Ny-by-1 cell array of strings

InputGroup: M-by-2 cell array if M input groups

OutputGroup: P-by-2 cell array if P output groups

Notes: array or cell array of strings

UserData: arbitrary

Accessing Property Values Using get

You access t he pr oper t y values of an LTI model sys wit h get. The synt ax is

PropertyValue = get(sys,PropertyName)

2 LTI Models

2-32

wher e t he st r ing PropertyName is eit her t he full pr oper t y name, or any

abbr eviat ion wit h enough char act er s t o ident ify t he pr oper t y uniquely. For

example, t yping

h = tf(100,[1 5 100],'inputname','voltage',...

'outputn','current',...

'notes','A simple circuit')

get(h,'notes')

pr oduces

ans =

'A simple circuit'

To display all of t he pr oper t ies of an LTI model sys (and t heir values), use t he

synt ax get(sys). In t his example,

get(h)

pr oduces

num: {[0 0 100]}

den: {[1 5 100]}

Variable: 's'

Ts: 0

InputDelay: 0

OutputDelay: 0

ioDelayMatrix: 0

InputName: {'voltage'}

OutputName: {'current'}

InputGroup: {0x2 cell}

OutputGroup: {0x2 cell}

Notes: {'A simple circuit'}

UserData: []

Not ice t hat default (out put ) values have been assigned t o any LTI pr oper t ies in

t his list t hat you have not specified.

Finally, you can also access pr oper t y values using dir ect st r uct ur e-like

r efer encing. This t opic is explained in t he next sect ion.

LTI Properties

2-33

Direct Property Referencing

An alt er nat ive way t o quer y/modify pr oper t y values is by st r uct ur e-like

r efer encing. Recall t hat LTI object s ar e basic MATLAB st r uct ur es except for

t he addit ional flag t hat mar ks t hem as TF, ZPK, SS, or FRD object s (see page

2-3). The field names for LTI object s ar e t he pr oper t y names, so you can

r et r ieve or modify pr oper t y values wit h t he st r uct ur e-like synt ax.

PropertyValue = sys.PropertyName% gets property value

sys.PropertyName = PropertyValue% sets property value

These commands ar e r espect ively equivalent t o

PropertyValue = get(sys,'PropertyName')

set(sys,'PropertyName',PropertyValue)

For example, t ype

sys = ss(1,2,3,4,'InputName','u');

sys.a

and you get t he value of t he pr oper t y “a” for t he st at e-space model sys.

ans =

1

Similar ly,

sys.a = –1;

r eset s t he st at e t r ansit ion mat r ix for sys t o –1. See “LTI Ar r ays of SS Models

wit h Differ ing Number s of St at es” on page 4-23 for infor mat ion on set t ing t he

pr oper t ies of LTI ar r ays of st at e-space models wit h differ ent number s of st at es

in each model.

Unlike st andar d MATLAB st r uct ur es, you do not need t o t ype t he ent ir e field

name or use upper -case char act er s. You only need t o t ype t he minimum

number of char act er s sufficient t o ident ify t he pr oper t y name uniquely. Thus

eit her of t he commands

sys.InputName

sys.inputn

2 LTI Models

2-34

pr oduces

ans =

'u'

Any valid synt ax for st r uct ur es ext ends t o LTI object s. For example, given t he

TF model

h = tf(1,[1,0],'variable','p');

you can r eset t he numer at or t o by t yping

h.num{1} = [1 2];

or equivalent ly, wit h

h.num{1}(2) = 2;

Additional Insight into LTI Properties

By r eading t his sect ion, you can lear n mor e about using t he Ts, InputName,

OutputName, InputGroup, and OutputGroup LTI pr oper t ies t hr ough a set of

examples. For basic infor mat ion on Notes and Userdata, see “Gener ic

Pr oper t ies” on page 2-26. For det ailed infor mat ion on t he use of InputDelay,

OutputDelay, and ioDelayMatrix, see “Time Delays” on page 2-45.

Sample Time

The sample t ime pr oper t y Ts is used t o specify t he sampling per iod (in seconds)

for eit her discr et e-t ime or discr et ized cont inuous-t ime LTI models. Suppose

you want t o specify

as a discr et e-t ime t r ansfer funct ion model wit h a sampling per iod of 0.5

seconds. To do t his, t ype

h = tf([1 0],[2 1 1],0.5);

h p ( ) 1 p ⁄ =

p 2 +

H z ( )

z

2z

2

z 1 + +

---------------------------- =

LTI Properties

2-35

This set s t he Ts pr oper t y t o t he value 0.5, as is confir med by

h.Ts

ans =

0.5000

For cont inuous-t ime models, t he sample t ime pr oper t y Ts is 0 by convent ion.

For example, t ype

h = tf(1,[1 0]);

get(h,'Ts')

ans =

0

To leave t he sample t ime of a discr et e-t ime LTI model unspecified, set Ts t o .

For example,

h = tf(1,[1 –1],–1)

pr oduces

Transfer function:

1

-----

z – 1

Sampling time: unspecified

The same r esult is obt ained by using t he Variable pr oper t y.

h = tf(1,[1 –1],'var','z')

In oper at ions t hat combine sever al discr et e-t ime models, all specified sample

t imes must be ident ical, and t he r esult ing discr et e-t ime model inher it s t his

common sample t ime. The sample t ime of t he r esult ant model is unspecified if

all oper ands have unspecified sample t imes. Wit h t his inher it ance r ule for Ts,

t he following t wo models ar e equivalent .

tf(0.1,[1 –1],0.1) + tf(1,[1 0.5],–1)

and

tf(0.1,[1 –1],0.1) + tf(1,[1 0.5],0.1)

1 –

2 LTI Models

2-36

Not e t hat

tf(0.1,[1 –1],0.1) + tf(1,[1 0.5],0.5)

r et ur ns an er r or message.

??? Error using ==> lti/plus

In SYS1+SYS2, both models must have the same sample time.

Caution: Reset t ing t he sample t ime of a cont inuous-t ime LTI model sys fr om

zer o t o a nonzer o value does not discr et ize t he or iginal model sys. The

command

set(sys,'Ts',0.1)

only affect s t he Ts pr oper t y and does not alt er t he r emaining model dat a. Use

c2d and d2c t o per for m cont inuous-t o-discr et e and discr et e-t o-cont inuous

conver sions. For example, use

sysd = c2d(sys,0.1)

t o discr et ize a cont inuous syst em sys at a 10Hz sampling r at e.

Use d2d t o change t he sample t ime of a discr et e-t ime syst em and r esample it .

Input Names and Output Names

You can use t he InputName and OutputName pr oper t ies (in shor t , I/O names) t o

assign names t o any or all of t he input and out put channels in your LTI model.

For example, you can cr eat e a SISO model wit h input thrust, out put

velocity, and t r ansfer funct ion by t yping

h = tf(1,[1 10]);

set(h,'inputname','thrust','outputname','velocity',...

'variable','p')

Equivalent ly, you can set t hese pr oper t ies dir ect ly by t yping

h = tf(1,[1 10],'inputname','thrust',...

'outputname','velocity',...

'variable','p')

H p ( ) 1 p 10 + ( ) ⁄ =

LTI Properties

2-37

This pr oduces

Transfer function from input "thrust" to output "velocity":

1

------

p + 10

Not e how t he display r eflect s t he input and out put names and t he var iable

select ion.

In t he MIMO case, use cell vect or s of st r ings t o specify input or out put channel

names. For example, t ype

num = {3 , [1 2]};

den = {[1 10] , [1 0]};

H = tf(num,den); % H(s) has one output and two inputs

set(H,'inputname',{'temperature' ; 'pressure'})

The specified input names appear in t he display of H.

Transfer function from input "temperature" to output:

3

------

s + 10

Transfer function from input "pressure" to output:

s + 2

-----

s

To leave cer t ain names undefined, use t he empt y st r ing '' as in

H = tf(num,den,'inputname',{ 'temperature' ; '' })

Input Groups and Output Groups

In many applicat ions, you may want t o cr eat e sever al (dist inct or int er sect ing)

gr oups of input or out put channels and name t hese gr oups. For example, you

may want t o label one set of input channels as noise and anot her set as

controls.

2 LTI Models

2-38

To see how input and out put gr oups (I/O gr oups) wor k:

1 Cr eat e a r andom st at e-space model wit h one st at e, t hr ee input s, and t hr ee

out put s.

2 Assign t he fir st t wo input s t o a gr oup named controls, t he fir st out put t o a

gr oup named temperature, and t he last t wo out put s t o a gr oup named

measurements.

LTI Properties

2-39

To do t his, t ype

h = rss(1,3,3);

set(h, 'InputGroup',{[1 2] 'controls'})

set(h, 'OutputGroup', {[1] 'temperature'; [2 3] 'measurements'})

h

and MATLAB r et ur ns a st at e-space model of t he following for m.

a =

x1

x1 –0.64884

b =

u1 u2 u3

x1 0.12533 0 0

c =

x1

y1 1.1909

y2 1.1892

y3 0

d =

u1 u2 u3

y1 0.32729 0 –0.1364

y2 0 0 0

y3 0 2.1832 0

I/O Groups:

Group Name I/O Channel(s)

controls I 1,2

temperature O 1

measurements O 2,3

Continuous-time model.

2 LTI Models

2-40

Not ice t hat t he middle column of t he I/O gr oup list ing indicat es whet her t he

gr oup is an input gr oup (I) or an out put gr oup (O).

In gener al, t o specify M input gr oups (or out put gr oups), you need an M-by-2

cell ar r ay or ganized as follows.

Figure 2-2: Two Column Cell Array

When you specify t he cell ar r ay for input (or out put ) gr oups, keep in mind:

•Each r ow of t his cell ar r ay designat es a differ ent input (out put ) gr oup.

•You can add input (or out put ) gr oups by appending r ows t o t he cell ar r ay.

•You can choose not t o assign any of t he gr oup names when you assign t he

gr oups, and leave off t he second column of t his ar r ay. In t hat case,

- Empt y st r ings ar e assigned t o t he gr oup names by default .

- If you append r ows t o a cell ar r ay wit h no gr oup names assigned, you have

t o assign empt y st r ings ('') t o t he gr oup names.

For example,

h.InputGroup = [h.InputGroup; {[3] 'disturbance'}];

adds anot her input gr oup called disturbance t o h.

Vect or s of Channel Indices Gr oup Names

{ Channels for Gr oup 1 , Name for Gr oup 1;

Channels for Gr oup 2 , Name for Gr oup 2;

Channels for Gr oup M , Name for Gr oup M }

LTI Properties

2-41

You can use r egular cell ar r ay synt ax for accessing or modifying I/O gr oup

component s. For example, t o delet e t he fir st out put gr oup, temperature, t ype

h.OutputGroup(1,:) = []

ans =

[1x2 double] 'measurements'

Similar ly, you can add or delet e channels fr om an exist ing input or out put

gr oup. Recalling t hat input gr oup channels ar e st or ed in t he fir st column of t he

cor r esponding cell ar r ay, t o add channel t hr ee t o t he input gr oup controls,

t ype

h.inputgroup{1,1} = [h.inputgroup{1,1} 3]

or , equivalent ly,

h.inputgroup{1,1} = [1 2 3]

2 LTI Models

2-42

Model Conversion

Ther e ar e four LTI model t ypes you can use wit h t he Cont r ol Syst em Toolbox:

TF, ZPK, SS, and FRD. This sect ion shows how t o conver t models fr om one t ype

t o t he ot her .

Explicit Conversion

Model conver sions ar e per for med by tf, ss, zpk, and frd. Given any TF, SS, or

ZPK model sys, t he synt ax for conver sion t o anot her model t ype is

Not ice t hat FRD models can’t be conver t ed t o t he ot her model t ypes. In

addit ion, you must also include a vect or of fr equencies (frequency) as an input

ar gument when conver t ing t o an FRD model.

For example, you can conver t t he st at e-space model

sys = ss(–2,1,1,3)

t o a zer o-pole-gain model by t yping

zpk(sys)

t o which MATLAB r esponds

Zero/pole/gain:

3 (s+2.333)

-----------

(s+2)

Not e t hat t he t r ansfer funct ion of a st at e-space model wit h dat a is

sys = tf(sys) % Conversion to TF

sys = zpk(sys) % Conversion to ZPK

sys = ss(sys) % Conversion to SS

sys = frd(sys,frequency) % Conversion to FRD

A B C D , , , ( )

H s ( ) D C s I A – ( )

1 –

B + =

Model Conversion

2-43

for cont inuous-t ime models, and

for discr et e-t ime models.

Automatic Conversion

Some algor it hms oper at e only on one t ype of LTI model. For example, t he

algor it hm for zer o-or der -hold discr et izat ion wit h c2d can only be per for med on

st at e-space models. Similar ly, commands like tfdata expect one par t icular

t ype of LTI models (TF). For convenience, such commands aut omat ically

conver t LTI models t o t he appr opr iat e or r equir ed model t ype. For example, in

sys = ss(0,1,1,0)

[num,den] = tfdata(sys)

tfdata fir st conver t s t he st at e-space model sys t o an equivalent t r ansfer

funct ion in or der t o r et ur n numer at or and denominat or dat a.

Not e t hat conver sions t o st at e-space models ar e not uniquely defined. For t his

r eason, aut omat ic conver sions t o st at e space ar e disabled when t he r esult

depends on t he choice of st at e coor dinat es, for example, in commands like

initial or kalman.

Caution About Model Conversions

When manipulat ing or conver t ing LTI models, keep in mind t hat :

•The t hr ee LTI model t ypes TF, ZPK, and SS, ar e not equally well-suit ed for

numer ical comput at ions. In par t icular , t he accur acy of comput at ions using

high-or der t r ansfer funct ions is oft en poor . Ther efor e, it is oft en pr efer able t o

wor k wit h t he st at e-space r epr esent at ion. In addit ion, it is oft en beneficial t o

balance and scale st at e-space models using ssbal. You get t his t ype of

H z ( ) D C z I A – ( )

1 –

B + =

2 LTI Models

2-44

balancing aut omat ically when you conver t any TF or ZPK model t o st at e

space using ss.

•Conver sions t o t he t r ansfer funct ion r epr esent at ion using tf may incur a

loss of accur acy. As a r esult , t he t r ansfer funct ion poles may not iceably differ

fr om t he poles of t he or iginal zer o-pole-gain or st at e-space model.

•Conver sions t o st at e space ar e not uniquely defined in t he SISO case, nor ar e

t hey guar ant eed t o pr oduce a minimal r ealizat ion in t he MIMO case. For a

given st at e-space model sys,

ss(tf(sys))

may r et ur n a model wit h differ ent st at e-space mat r ices, or even a differ ent

number of st at es in t he MIMO case. Ther efor e, if possible, it is best t o avoid

conver t ing back and for t h bet ween st at e-space and ot her model t ypes.

Time Delays

2-45

Time Delays

Using t he ioDelayMatrix, InputDelay, and OutputDelay pr oper t ies of LTI

object s, you can specify delays in bot h cont inuous- and discr et e-t ime LTI

models. Wit h t hese pr oper t ies, you can, for example, r epr esent :

•LTI models wit h independent delays for each input /out put pair . For

example, t he cont inuous-t ime model wit h t r ansfer funct ion

•St at e-space models wit h delayed input s and/or delayed out put s. For

example,

wher e is t he t ime delay bet ween t he input and t he st at e vect or ,

and is t he t ime delay bet ween and t he out put .

You can assign t he delay pr oper t ies ioDelayMatrix, InputDelay, and

OutputDelay eit her when fir st cr eat ing your model wit h t he tf, zpk, ss, or frd

const r uct or s, or lat er wit h t he set command (see “LTI Pr oper t ies and Met hods”

on page 2-4 for det ails).

Supported Functionality

Most analysis commands suppor t t ime delays, including:

•All t ime and fr equency r esponse commands

•Conver sions bet ween model t ypes

•Cont inuous-t o-discr et e conver sions (c2d)

•Hor izont al and ver t ical concat enat ion

•Ser ies, par allel, and feedback int er connect ions of discr et e-t ime models wit h

delays

H s ( )

e

0.1s – 2

s

--- e

0.3s – s 1 +

s 10 +

---------------

10 e

0.2s – s 1 –

s 5 +

------------

=

x

·

t ( ) Ax t ( ) Bu t τ – ( ) + =

y t ( ) Cx t θ – ( ) Du t θ τ + ( ) – ( ) + =

τ u t ( ) x t ( )

θ x t ( ) y t ( )

2 LTI Models

2-46

•Int er connect ions of cont inuous-t ime delay syst ems as long as t he r esult ing

t r ansfer funct ion fr om input t o out put is of t he for m

wher e is a r at ional funct ion of

•Padé appr oximat ion of t ime delays (pade)

Specifying Input/Output Delays

Using t he ioDelayMatrix pr oper t y, you can specify fr equency-domain models

wit h independent delays in each ent r y of t he t r ansfer funct ion. In cont inuous

t ime, such models have a t r ansfer funct ion of t he for m

wher e t he ’s ar e r at ional funct ions of , and is t he t ime delay bet ween

input and out put . See “Specifying Delays in Discr et e-Time Models” on page

2-52 for det ails on t he discr et e-t ime count er par t . We collect ively r efer t o t he

scalar s as t he I/ O delays.

The synt ax t o cr eat e above is

H = tf(num,den,'iodelaymatrix',Tau)

or

H = zpk(z,p,k,'iodelaymatrix',Tau)

wher e

•num, den (r espect ively, z, p, k) specify t he r at ional par t of t he t r ansfer

funct ion

•Tau is t he mat r ix of t ime delays for each I/O pair . That is, Tau(i,j) specifies

t he I/O delay in seconds. Not e t hat Tau and should have t he same

r ow and column dimensions.

You can also use t he ioDelayMatrix pr oper t y in conjunct ion wit h st at e-space

models, as in

sys = ss(A,B,C,D,'iodelaymatrix',Tau)

j i s τ

i j

– ( ) h

i j

s ( ) exp

h

i j

s ( ) s

H s ( )

e

s τ

11

–

h

11

s ( ) ... e

s τ

1 m

–

h

1m

s ( )

: :

e

s τ

p 1

–

h

p 1

s ( ) ... e

s τ

p m

–

h

p m

s ( )

s τ

i j

– ( ) h

i j

s ( ) exp [ ] = =

h

i j

s τ

i j

j i

τ

i j

H s ( )

h

i j

s ( ) [ ]

H s ( )

τ

i j

H s ( )

Time Delays

2-47

This cr eat es t he LTI model wit h t he following t r ansfer funct ion.

Her e is t he ent r y of

Note: St at e-space models wit h I/O delays have only a fr equency-domain

int er pr et at ion. They cannot , in gener al, be descr ibed by st at e-space equat ions

wit h delayed input s and out put s.

Distillation Column Example

This example is adapt ed fr om [2] and illust r at es t he use of I/O delays in pr ocess

modeling. The pr ocess of int er est is t he dist illat ion column depict ed by t he

figur e below. This column is used t o separ at e a mix of met hanol and wat er (t he

feed) int o bottom products (most ly wat er ) and a met hanol-sat ur at ed distillate.

H s ( ) s τ

i j

– ( ) r

i j

s ( ) exp =

r

i j

s ( ) i j , ( )

R s ( ) D C s I A – ( )

1 –

B + =

2 LTI Models

2-48

Figure 2-3: Distillation Column

Schemat ically, t he dist illat ion pr ocess funct ions as follows:

•St eam flows int o t he r eboiler and vapor izes t he bot t om liquid. This vapor is

r einject ed int o t he column and mixes wit h t he feed

•Met hanol, being mor e volat ile t han wat er , t ends t o concent r at e in t he vapor

moving upwar d. Meanwhile, wat er t ends t o flow downwar d and accumulat e

as t he bot t om liquid

•The vapor exit ing at t he t op of t he column is condensed by a flow of cooling

wat er . Par t of t his condensed vapor is ext r act ed as t he dist illat e, and t he r est

of t he condensat e (t he reflux) is sent back t o t he column.

•Par t of t he bot t om liquid is collect ed fr om t he r eboiler as bot t om pr oduct s

(wast e).

Feed

Enr iched vapor

Cooling wat er

Condensat e

Reflux

Di st illate

Vapor

St eam flow

Reboiler

Bot t om liquid

Bottom products

Time Delays

2-49

The r egulat ed out put var iables ar e:

•Per cent age of met hanol in t he dist illat e

•Per cent age of met hanol in t he bot t om pr oduct s.

The goal is t o maximize by adjust ing t he r eflux flow r at e and t he st eam

flow r at e in t he r eboiler .

To obt ain a linear ized model ar ound t he st eady-st at e oper at ing condit ions, t he

t r ansient r esponses t o pulses in st eam and r eflux flow ar e fit t ed by fir st -or der

plus delay models. The r esult ing t r ansfer funct ion model is

Not e t he differ ent t ime delays for each input /out put pair .

You can specify t his MIMO t r ansfer funct ion by t yping

H = tf({12.8 –18.9;6.6 –19.4},...

{[16.7 1] [21 1];[10.9 1] [14.4 1]},...

'iodelay',[1 3;7 3],...

'inputname',{'R' , 'S'},...

'outputname',{'Xd' , 'Xb'})

X

D

X

B

X

D

R

S

X

D

s ( )

X

B

s ( )

12.8e

1s –

16.7e 1 +

------------------------

18.9e

3s –

–

21.0s 1 +

-------------------------

6.6e

7s –

10.9s 1 +

------------------------

19.4e

3s –

–

14.4s 1 +

-------------------------

R s ( )

S s ( )

=

2 LTI Models

2-50

The r esult ing TF model is displayed as

Transfer function from input "R" to output...

12.8

Xd: exp(–1*s) * ----------

16.7 s + 1

6.6

Xb: exp(–7*s) * ----------

10.9 s + 1

Transfer function from input "S" to output...

–18.9

Xd: exp(–3*s) * --------

21 s + 1

–19.4

Xb: exp(–3*s) * ----------

14.4 s + 1

Specifying Delays on the Inputs or Outputs

While ideal for fr equency-domain models wit h I/O delays, t he ioDelayMatrix

pr oper t y is inadequat e t o capt ur e delayed input s or out put s in st at e-space

models. For example, t he t wo models

shar e t he same t r ansfer funct ion

As a r esult , t hey cannot be dist inguished using t he ioDelayMatrix pr oper t y

(t he I/O delay value is 0.1 seconds in bot h cases). Yet , t hese t wo models have

differ ent st at e t r aject or ies since and ar e r elat ed by

M

1

( )

x

·

t ( ) x – t ( ) u t 0.1 – ( ) + =

y t ( ) x t ( ) = ¸

¸

M

2

( )

z

·

t ( ) z – t ( ) u t ( ) + =

y t ( ) z t 0.1 – ( ) = ¸

¸

h s ( )

e

0.1s –

s 1 +

---------------- =

x t ( ) z t ( )

z t ( ) x t 0.1 – ( ) =

Time Delays

2-51

Not e t hat t he 0.1 second delay is on t he input in t he fir st model, and on t he

output in t he second model.

InputDelay and OutputDelay Properties

When t he st at e t r aject or y is of int er est , you should use t he InputDelay and

OutputDelay pr oper t ies t o dist inguish bet ween delays on t he input s and

delays on t he out put s in st at e-space models. For example, you can accur at ely

specify t he t wo models above by

M1 = ss(–1,1,1,0,'inputdelay',0.1)

M2 = ss(–1,1,1,0,'outputdelay',0.1)

In t he MIMO case, you can specify a differ ent delay for each input (or out put )

channel by assigning a vect or value t o InputDelay (or OutputDelay). For

example,

sys = ss(A,[B1 B2],[C1;C2],[D11 D12;D21 D22])

sys.inputdelay = [0.1 0]

sys.outputdelay = [0.2 0.3]

cr eat es t he t wo-input , t wo-out put model

You can also use t he InputDelay and OutputDelay pr oper t ies t o convenient ly

specify input or out put delays in TF, ZPK, or FRD models. For example, you

can cr eat e t he t r ansfer funct ion

by t yping

s = tf('s');

H = [1/s ; 2/(s+1)]; % rational part

H.inputdelay = 0.1

x

·

t ( ) Ax t ( ) B

1

u

1

t 0.1 – ( ) + B

2

u

2

t ( ) + =

y

1

t 0.2 + ( ) C

1

x t ( ) D

11

u

1

t 0.1 – ( ) D

12

u

2

t ( ) + + =

y

2

t 0.3 + ( ) C

2

x t ( ) D

21

u

1

t 0.1 – ( ) D

22

u

2

t ( ) + + =

H s ( )

1

s

---

2

s 1 +

------------

= e

0.1s –

2 LTI Models

2-52

The r esult ing model is displayed as

Transfer function from input to output...

1

#1: exp(–0.1*s) * -

s

2

#2: exp(–0.1*s) * -----

s + 1

By compar ison, t o pr oduce an equivalent t r ansfer funct ion using t he

ioDelayMatrix pr oper t y, you would need t o t ype

H = [1/s ; 2/(s+1)];

H.iodelay = [0.1 ; 0.1];

Not ice t hat t he 0.1 second delay is r epeat ed t wice in t he I/O delay mat r ix. Mor e

gener ally, for a TF, ZPK, or FRD model wit h input delays and

out put delays , t he equivalent I/O delay mat r ix is

Specifying Delays in Discrete-Time Models

You can also use t he ioDelayMatrix, InputDelay, and OutputDelay pr oper t ies

t o specify delays in discr et e-t ime LTI models. You specify t ime delays in

discr et e-t ime models wit h int eger mult iples of t he sampling per iod. The int eger

k you supply for t he t ime delay of a discr et e-t ime model specifies a t ime delay

of k sampling per iods. Such a delay cont r ibut es a fact or t o t he t r ansfer

funct ion.

For example,

h = tf(1,[1 0.5 0.2],0.1,'inputdelay',3)

α

1

... α

m

, , [ ]

β

1

... β

p

, , [ ]

α

1

β

1

+ α

2

β

1

+ ... α

m

β

1

+

α

1

β

2

+ α

2

β

2

+ α

m

β

2

+

: : :

α

1

β

p

+ α

2

β

p

+ ... α

m

β

p

+

z

k –

Time Delays

2-53

pr oduces t he discr et e-t ime t r ansfer funct ion

Transfer function:

1

z^(–3) * -----------------

z^2 + 0.5 z + 0.2

Sampling time: 0.1

Not ice t he z^(–3) fact or r eflect ing t he t hr ee-sampling-per iod delay on t he

input .

Mapping Discrete-Time Delays to Poles at the Origin

Since discr et e-t ime delays ar e equivalent t o addit ional poles at , t hey can

be easily absor bed int o t he t r ansfer funct ion denominat or or t he st at e-space

equat ions. For example, t he t r ansfer funct ion of t he delayed int egr at or

is

You can specify t his model eit her as t he fir st -or der t r ansfer funct ion

wit h a delay of t wo sampling per iods on t he input

Ts = 1; % sampling period

H1 = tf(1,[1 –1],Ts,'inputdelay',2)

or dir ect ly as a t hir d-or der t r ansfer funct ion:

H2 = tf(1,[1 –1 0 0],Ts) % 1/(z^3–z^2)

While t hese t wo models ar e mat hemat ically equivalent , H1 is a mor e efficient

r epr esent at ion bot h in t er ms of st or age and subsequent comput at ions.

When necessar y, you can map all discr et e-t ime delays t o poles at t he or igin

using t he command delay2z. For example,

H2 = delay2z(H1)

z 0 =

y k 1 + [ ] y k [ ] u k 2 – [ ] + =

H z ( )

z

2 –

z 1 –

------------ =

1 z 1 – ( ) ⁄

2 LTI Models

2-54

absor bs t he input delay in H1 int o t he t r ansfer funct ion denominat or t o pr oduce

t he t hir d-or der t r ansfer funct ion

Transfer function:

1

---------

z^3 – z^2

Sampling time: 1

Not e t hat

H2.inputdelay

now r et ur ns 0 (zer o).

Retrieving Information About Delays

Ther e ar e sever al ways t o r et r ieve t ime delay infor mat ion fr om a given LTI

model sys:

•Use pr oper t y display commands t o inspect t he values of t he ioDelayMatrix,

InputDelay, and OutputDelay pr oper t ies. For example,

sys.iodelay

get(sys,'inputdelay')

•Use t he helper funct ion hasdelay t o det er mine if sys has any delay at all.

The synt ax is

hasdelay(sys)

which r et ur ns 1 (t r ue) if sys has any delay, and 0 (false) ot her wise

•Use t he funct ion totaldelay t o det er mine t he t ot al delay bet ween each input

and each out put (cumulat ive cont r ibut ion of t he ioDelayMatrix,

InputDelay, and OutputDelay pr oper t ies). Type help totaldelay or see t he

Refer ence pages for det ails.

Conversion of Models with Delays to State Space

When you use ss t o conver t TF or ZPK models t o st at e-space for m, t he delays

in t he r esult ing st at e-space model ar e r edist r ibut ed when it is possible t o

r educe t he over all number of I/O delays, input channel delays, and out put

Time Delays

2-55

channel delays. The r esult ing model has a minimum number of delays. When

t his minimizat ion t akes place:

•All or par t of t he I/O delay mat r ix is absor bed int o t he input and out put delay

vect or s. This minimizes t he t ot al number of I/O delays.

•The input delays ar e t r ansfer r ed t o out put delays (or vice-ver sa), so as t o

minimize t he over all number of input and out put channel delays.

Padé Approximation of Time Delays

The funct ion pade comput es r at ional appr oximat ions of t ime delays in

cont inuous-t ime LTI models. The synt ax is

sysx = pade(sys,n)

wher e sys is a cont inuous-t ime model wit h delays, and t he int eger n specifies

t he Padé appr oximat ion or der . The r esult ing LTI model sysx is of t he same

t ype as sys, but is delay fr ee.

For models wit h mult iple delays or a mix of input , out put , and I/O delays, you

can use t he synt ax

sysx = pade(sys,ni,no,nio)

wher e t he vect or s ni and no, and t he mat r ix nio specify independent

appr oximat ion or der s for each input , out put , and I/O delay, r espect ively. Set

ni=[] if t her e ar e no input delays, and similar ly for no and nio.

For example, consider t he “Dist illat ion Column Example” on page 2-47. The

t wo-input , t wo-out put t r ansfer funct ion in t his example is

To comput e a Padé appr oximat ion of H(s) using:

•A fir st -or der appr oximat ion for t he 1 second and 3 second delays

•A second-or der appr oximat ion for t he 7 second delay,

H s ( )

12.8e

1s –

16.7e 1 +

------------------------

18.9e

3 s –

–

21.0s 1 +

-------------------------

6.6e

7s –

10.9s 1 +

------------------------

19.4e

3 s –

–

14.4s 1 +

-------------------------

=

2 LTI Models

2-56

t ype

pade(H,[],[],[1 1;2 1])

wher e H is t he TF r epr esent at ion of defined in t he “Dist illat ion Column

Example” on page 2-47. This command pr oduces a r at ional t r ansfer funct ion.

Transfer function from input "R" to output...

–12.8 s + 25.6

Xd: ---------------------

16.7 s^2 + 34.4 s + 2

6.6 s^2 – 5.657 s + 1.616

Xb: ---------------------------------------

10.9 s^3 + 10.34 s^2 + 3.527 s + 0.2449

Transfer function from input "S" to output...

18.9 s – 12.6

Xd: ----------------------

21 s^2 + 15 s + 0.6667

19.4 s – 12.93

Xb: --------------------------

14.4 s^2 + 10.6 s + 0.6667

H s ( )

Simulink Block for LTI Systems

2-57

Simulink Block for LTI Systems

You can incor por at e LTI object s int o Simulink diagr ams using t he LTI Syst em

block shown below.

The LTI Syst em block can be accessed eit her by t yping

ltiblock

at t he MATLAB pr ompt or by select ing Control Sys tem Toolbox fr om t he

Blocks ets and Toolboxes sect ion of t he main Simulink libr ar y.

The LTI Syst em block consist s of t he dialog box shown on t he r ight in t he figur e

above. In t he edit able t ext box labeled LTI s ys te m vari able, ent er eit her t he

var iable name of an LTI object locat ed in t he MATLAB wor kspace (for

example, sys) or a MATLAB expr ession t hat evaluat es t o an LTI object (for

example, tf(1,[1 1])). The LTI Syst em block accept s bot h cont inuous and

discr et e LTI object s in eit her t r ansfer funct ion, zer o-pole-gain, or st at e-space

for m. Simulink conver t s t he model t o it s st at e-space equivalent pr ior t o

init ializing t he simulat ion.

Use t he edit able t ext box labeled Ini ti al s tate s t o ent er an init ial st at e vect or

for st at e-space models. The concept of “init ial st at e” is not well-defined for

Double-click on the block in your

Simulink diagram to display or

modify model information.

This mask is linked to an LTI

block in a Simulink diagram.

2 LTI Models

2-58

t r ansfer funct ions or zer o-pole-gain models, as it depends on t he choice of st at e

coor dinat es used by t he r ealizat ion algor it hm. As a r esult , you cannot ent er

nonzer o init ial st at es when you supply TF or ZPK models t o LTI blocks in a

Simulink diagr am.

Note:

•For MIMO syst ems, t he input delays st or ed in t he LTI object must be eit her

all posit ive or all zer o.

•LTI blocks in a Simulink diagr am cannot be used for FRD models or LTI

ar r ays.

References

2-59

References

[1] Dor f, R.C. and R.H. Bishop, Modern Control S ystems, Addison-Wesley,

Menlo Par k, CA, 1998.

[2] Wood, R.K. and M.W. Ber r y, “Ter minal Composit ion Cont r ol of a Binar y

Dist illat ion Column,” Chemical Engineering S cience, 28 (1973), pp. 1707-1717.

2 LTI Models

2-60

3

Oper at ions on LTI Models

Introduct i on . . . . . . . . . . . . . . . . . . . . 3-2

Precedence and Prope rty Inheri t ance . . . . . . . . 3-3

Extracti ng and Modi fying Subsyste ms . . . . . . . . 3-5

Refer encing FRD Models Thr ough Fr equencies . . . . . . 3-7

Refer encing Channels by Name . . . . . . . . . . . . . 3-8

Resizing LTI Syst ems . . . . . . . . . . . . . . . . . 3-9

Ari thmet i c Operati ons . . . . . . . . . . . . . . . 3-11

Addit ion and Subt r act ion . . . . . . . . . . . . . . . 3-11

Mult iplicat ion . . . . . . . . . . . . . . . . . . . . 3-13

Inver sion and Relat ed Oper at ions . . . . . . . . . . . . 3-13

Tr ansposit ion . . . . . . . . . . . . . . . . . . . . 3-14

Per t r ansposit ion . . . . . . . . . . . . . . . . . . . 3-14

Delays and Model Oper at ions . . . . . . . . . . . . . 3-15

Mode l Interconnecti on Functi ons . . . . . . . . . . 3-16

Concat enat ion of LTI Models . . . . . . . . . . . . . . 3-17

Feedback and Ot her Int er connect ion Funct ions . . . . . . 3-18

Cont i nuous/Di screte Conversi ons of LTI Mode ls . . . 3-20

Zer o-Or der Hold . . . . . . . . . . . . . . . . . . . 3-20

Fir st -Or der Hold . . . . . . . . . . . . . . . . . . . 3-22

Tust in Appr oximat ion . . . . . . . . . . . . . . . . . 3-22

Tust in wit h Fr equency Pr ewar ping . . . . . . . . . . . 3-23

Mat ched Poles and Zer os . . . . . . . . . . . . . . . 3-23

Discr et izat ion of Syst ems wit h Delays . . . . . . . . . . 3-24

Delays and Cont inuous/Discr et e Model Conver sions . . . . 3-25

Resampli ng of Di scre te-Ti me Mode ls . . . . . . . . . 3-27

Refe re nce s . . . . . . . . . . . . . . . . . . . . . 3-28

3 Operations on LTI Models

3-2

Introduction

You can per for m basic mat r ix oper at ions such as addit ion, mult iplicat ion, or

concat enat ion on LTI models. Such oper at ions ar e “over loaded,” which means

t hat t hey use t he same synt ax as t hey do for mat r ices, but ar e adapt ed so as t o

apply t o t he LTI model cont ext . These over loaded oper at ions and t heir

int er pr et at ion in t his cont ext ar e discussed in t his chapt er . You can r ead about

discr et izat ion met hods in t his chapt er as well. The following t opics and

oper at ions on LTI models ar e cover ed in t his chapt er :

•Pr ecedence and Pr oper t y Inher it ance

•Ext r act ing and Modifying Subsyst ems

•Ar it hmet ic Oper at ions

•Model Int er connect ion Funct ions

•Cont inuous/Discr et e-Time Conver sions of LTI Models

•Resampling of Discr et e-Time Models

These oper at ions can be applied t o LTI models of differ ent t ypes. As a r esult ,

befor e discussing oper at ions on LTI models, we discuss model t ype pr ecedence

and how LTI model pr oper t ies ar e inher it ed when models ar e combined using

t hese oper at ions. To r ead about how you can apply t hese oper at ions t o ar r ays

of LTI models, see “Oper at ions on LTI Ar r ays” on page 4-25. To r ead about t he

available funct ions wit h which you can analyze LTI models, see Chapt er 5,

“Model Analysis Tools,”

Precedence and Property Inheritance

3-3

Precedence and Property Inheritance

You can apply oper at ions t o LTI models of differ ent t ypes. The r esult ing t ype

is t hen det er mined by t he r ules discussed in “Pr ecedence Rules” on page 2-5.

For example, if sys1 is a t r ansfer funct ion and sys2 is a st at e-space model,

t hen t he r esult of t heir addit ion

sys = sys1 + sys2

is a st at e-space model, since st at e-space models have pr ecedence over t r ansfer

funct ion models.

To super sede t he pr ecedence r ules and for ce t he r esult of an oper at ion t o be a

given t ype, for example, a t r ansfer funct ion (TF), you can eit her :

•Conver t all oper ands t o TF before per for ming t he oper at ion

•Conver t t he r esult t o TF after per for ming t he oper at ion

Suppose, in t he above example, you want t o comput e t he t r ansfer funct ion of

sys. You can eit her use a priori conver sion of t he second oper and

sys = sys1 + tf(sys2);

or a posteriori conver sion of t he r esult

sys = tf(sys1 + sys2)

Note: These alt er nat ives ar e not equivalent numer ically; comput at ions ar e

car r ied out on t r ansfer funct ions in t he fir st case, and on st at e-space models in

t he second case.

Anot her issue is pr oper t y inher it ance, t hat is, how t he oper and pr oper t y values

ar e passed on t o t he r esult of t he oper at ion. While inher it ance is par t ly

oper at ion-dependent , some gener al r ules ar e summar ized below:

•In oper at ions combining discr et e-t ime LTI models, all models must have

ident ical or unspecified (sys.Ts = –1) sample t imes. Models r esult ing fr om

such oper at ions inher it t he specified sample t ime, if t her e is one.

•Most oper at ions ignor e t he Notes and Userdata pr oper t ies.

3 Operations on LTI Models

3-4

•In gener al, when t wo LTI models sys1 and sys2 ar e combined using

oper at ions such as +, *, [,], [;], append, and feedback, t he r esult ing model

inher it s it s I/O names and I/O gr oups fr om sys1 and sys2. However ,

conflict ing I/O names or I/O gr oups ar e not inher it ed. For example, t he

InputName pr oper t y for sys1 + sys2 is left unspecified if sys1 and sys2 have

differ ent InputName pr oper t y values.

•A model r esult ing fr om oper at ions on TF or ZPK models inher it s it s

Variable pr oper t y value fr om t he oper ands. Conflict s ar e r esolved accor ding

t he following r ules:

- For cont inuous-t ime models, 'p' has pr ecedence over 's'.

- For discr et e-t ime models, 'z^–1' has pr ecedence over 'q' and 'z', while

'q' has pr ecedence over 'z'.

Extracting and Modifying Subsystems

3-5

Extracting and Modifying Subsystems

Subsyst ems r elat e subset s of t he input s and out put s of a syst em. The t r ansfer

mat r ix of a subsyst em is a submat r ix of t he syst em t r ansfer mat r ix. For

example, if sys is a syst em wit h t wo input s, t hr ee out put s, and I/O r elat ion

t hen gives t he r elat ion bet ween t he fir st input and t hir d out put .

Accor dingly, we use mat r ix-like subindexing t o ext r act t his subsyst em.

SubSys = sys(3,1)

The r esult ing subsyst em SubSys is an LTI model of t he same t ype as sys, wit h

it s sample t ime, t ime delay, I/O name, and I/O gr oup pr oper t y values inher it ed

fr om sys.

For example, if sys has an input gr oup named controls consist ing of channels

one, t wo, and t hr ee, t hen SubSys also has an input gr oup named controls wit h

t he fir st channel of SubSys assigned t o it .

If sys is a st at e-space model wit h mat r ices a, b, c, d, t he subsyst em sys(3,1)

is a st at e-space model wit h dat a a, b(:,1), c(3,:), d(3,1).

Note:

•In t he expr ession sys(3,1), t he fir st index select s t he out put channel while

t he second index select s t he input channel.

•When ext r act ing a subsyst em fr om a given st at e-space model, t he r esult ing

st at e-space model may not be minimal. Use t he command sminreal t o

eliminat e unnecessar y st at es in t he subsyst em.

You can use similar synt ax t o modify t he LTI model sys. For example,

sys(3,1) = NewSubSys

r edefines t he I/O r elat ion bet ween t he fir st input and t hir d out put , pr ovided

NewSubSys is a SISO LTI model.

y Hu =

H 3 1 , ( )

y

3

H 3,1 ( ) u

1

=

3 Operations on LTI Models

3-6

Note:

•sys, t he LTI model t hat has had a por t ion r eassigned, r et ains it s or iginal

model t ype (TF, ZPK, SS, or FRD) r egar dless of t he model t ype of NewSubSys.

•If NewSubSys is an FRD model, t hen sys must also be an FRD model.

Fur t her mor e, t heir fr equencies must mat ch.

•Subsyst em assignment does not r eassign any I/O names or I/O gr oup names

of NewSubSys t hat ar e alr eady assigned t o NewSubSys.

•Reassigning par t s of a MIMO st at e-space model gener ally incr eases it s

or der .

Ot her st andar d mat r ix subindexing ext ends t o LTI object s as well. For

example,

sys(3,1:2)

ext r act s t he subsyst em mapping t he fir st t wo input s t o t he t hir d out put .

sys(:,1)

select s t he fir st input and all out put s, and

sys([1 3],:)

ext r act s a subsyst em wit h t he same input s, but only t he fir st and t hir d out put s.

For example, consider t he t wo-input /t wo-out put t r ansfer funct ion

. T s ( )

1

s 0.1 +

----------------- 0

s 1 –

s

2

2s 2 + +

----------------------------

1

s

---

=

Extracting and Modifying Subsystems

3-7

To ext r act t he t r ansfer funct ion fr om t he fir st input t o t he fir st out put ,

t ype

T(1,1)

Transfer function:

1

-------

s + 0.1

Next r eassign t o and modify t he second input channel of T

by t yping

T(1,1) = tf(1,[1 0.5]);

T(:,2) = [ 1 ; tf(0.4,[1 0]) ]

Transfer function from input 1 to output...

1

#1: -------

s + 0.5

s – 1

#2: -------------

s^2 + 2 s + 2

Transfer function from input 2 to output...

#1: 1

0.4

#2: ---

s

Referencing FRD Models Through Frequencies

You can ext r act subsyst ems fr om FRD models, as you do wit h ot her LTI model

t ypes, by indexing int o input and out put (I/O) dimensions. You can also ext r act

subsyst ems by indexing int o t he fr equencies of an FRD model.

To index int o t he fr equencies of an FRD model, use t he st r ing 'Frequency' (or

any abbr eviat ion, such as, 'freq', as long as it does not conflict wit h exist ing

T

11

s ( )

T

11

s ( ) 1 s 0.5 + ( ) ⁄

3 Operations on LTI Models

3-8

I/O channel or gr oup names) as a keywor d. Ther e ar e t wo ways you can specify

FRD models using fr equencies:

•Using int eger s t o index int o t he fr equency vect or of t he FRD model

•Using a Boolean (logical) expr ession t o specify desir ed fr equency point s in an

FRD model

For example, if sys is an FRD model wit h five fr equencies, (e.g.,

sys.Frequency=[1 1.1 1.2 1.3 1.4]), t hen you can cr eat e a new FRD model

sys2 by indexing int o t he fr equencies of sys as follows.

sys2 = sys('frequency', 2:3);

sys2.Frequency

ans =

1.1000

1.2000

displays t he second and t hir d ent r ies in t he fr equency vect or .

Similar ly, you can use logical indexing int o t he fr equencies.

sys2 = sys('frequency',sys.Frequency >1.0 & sys.Frequency <1.15);

sys2.freq

ans =

1.1000

You can also combine model ext r act ion t hr ough fr equencies wit h indexing int o

t he I/O dimensions. For example, if sys is an FRD model wit h t wo input s, t wo

out put s, and fr equency vect or [2.1 4.2 5.3], wit h sys.Units specified in

r ad/s, t hen

sys2 = sys(1,2,'freq',1)

specifies sys2 as a SISO FRD model, wit h one fr equency dat a point , 2.1 r ad/s.

Referencing Channels by Name

You can also ext r act subsyst ems using I/O gr oup or channel names. For

example, if sys has an input gr oup named noise, consist ing of channels t wo,

four , and five, t hen

sys(1,'noise')

Extracting and Modifying Subsystems

3-9

is equivalent t o

sys(1,[2 4 5]

Similar ly, if pressure is t he name assigned t o an out put channel of t he LTI

model sys, t hen

sys('pressure',1) = tf(1, [1 1])

r eassigns t he subsyst em fr om t he fir st input of sys t o t he out put labeled

pressure.

You can r efer ence a set of channels by input or out put name by using a cell

ar r ay of st r ings for t he names. For example, if sys has one out put channel

named pressure and one named temperature, t hen t hese t wo out put channels

can be r efer enced using

sys({'pressure','temperature'})

Resizing LTI Systems

Resizing a syst em consist s of adding or delet ing input s and/or out put s. To

delet e t he fir st t wo input s, simply t ype

sys(:,1:2) = []

In delet ions, at least one of t he r ow/column indexes should be t he colon (:)

select or .

To per for m input /out put augment at ion, you can pr oceed by concat enat ion or

subassignment . Given a syst em sys wit h a single input , you can add a second

input using

sys = [sys,h];

or , equivalent ly, using

sys(:,2) = h;

wher e h is any LTI model wit h one input , and t he same number of out put s as

sys. Ther e is an impor t ant differ ence bet ween t hese t wo opt ions: while

concat enat ion obeys t he pr ecedence r ules (see page 2-5), subsyst em assignment

does not alt er t he model t ype. So, if sys and h ar e TF and SS object s,

r espect ively, t he fir st st at ement pr oduces a st at e-space model, and t he second

st at ement pr oduces a t r ansfer funct ion.

3 Operations on LTI Models

3-10

For st at e-space models, bot h concat enat ion and subsyst em assignment

incr ease t he model or der because t hey assume t hat sys and h have

independent st at es. If you int end t o keep t he same st at e mat r ix and mer ely

updat e t he input -t o-st at e or st at e-t o-out put r elat ions, use set inst ead and

modify t he cor r esponding st at e-space dat a dir ect ly. For example,

sys = ss(a,b1,c,d1)

set(sys,'b',[b1 b2],'d',[d1 d2])

adds a second input t o t he st at e-space model sys by appending t he B and D

mat r ices. You should simultaneously modify bot h mat r ices wit h a single set

command. Indeed, t he st at ement s

sys.b = [b1 b2]

and

set(sys,'b',[b1 b2])

cause an er r or because t hey cr eat e invalid int er mediat e models in which t he B

and D mat r ices have inconsist ent column dimensions.

Arithmetic Operations

3-11

Arithmetic Operations

You can apply almost all ar it hmet ic oper at ions t o LTI models, including t hose

shown below.

To under st and how t hese oper at ions wor k on LTI models, it ’s useful t o keep in

mind t he mat r ix analogy for syst ems discussed in “Viewing LTI Syst ems As

Mat r ices” on page 2-5.

Addition and Subtraction

As ment ioned in “Viewing LTI Syst ems As Mat r ices” on page 2-5, adding LTI

models is equivalent t o connect ing t hem in par allel. Specifically, t he LTI model

sys = sys1 + sys2

Operation Description

+ Addit ion

– Subt r act ion

* Mult iplicat ion

/ Right mat r ix divide

\ Left mat r ix divide

inv Mat r ix inver sion

' Per t r ansposit ion

.' Tr ansposit ion

^ Power s of an LTI model (as in s^2)

3 Operations on LTI Models

3-12

r epr esent s t he par allel int er connect ion shown below.

If sys1 and sys2 ar e t wo st at e-space models wit h dat a and

, t he st at e-space dat a associat ed wit h sys1 + sys2 is

Scalar addit ion is also suppor t ed and behaves as follows: if sys1 is MIMO and

sys2 is SISO, sys1 + sys2 pr oduces a syst em wit h t he same dimensions as

sys1 whose ijt h ent r y is sys1(i,j) + sys2.

Similar ly, t he subt r act ion of t wo LTI models

sys = sys1 – sys2

is depict ed by t he following block diagr am.

sys1

sys2

u

+

+

sys

y

1

y

2

y

A

1

B

1

C

1

D

1

, , ,

A

2

B

2

C

2

D

2

, , ,

A

1

0

0 A

2

,

B

1

B

2

, C

1

C

2

, D

1

D

2

+

sys1

sys2

u

y

+

–

sys

y

1

y

2

Arithmetic Operations

3-13

Multiplication

Mult iplicat ion of t wo LTI models connect s t hem in ser ies. Specifically,

sys = sys1 * sys2

r et ur ns an LTI model sys for t he ser ies int er connect ion shown below.

Not ice t he r ever se or der s of sys1 and sys2 in t he mult iplicat ion and block

diagr am. This is consist ent wit h t he way t r ansfer mat r ices ar e combined in a

ser ies connect ion: if sys1 and sys2 have t r ansfer mat r ices and , t hen

For st at e-space models sys1 and sys2 wit h dat a and

, t he st at e-space dat a associat ed wit h sys1*sys2 is

Finally, if sys1 is MIMO and sys2 is SISO, t hen sys1*sys2 or sys2*sys1 is

int er pr et ed as an ent r y-by-ent r y scalar mult iplicat ion and pr oduces a syst em

wit h t he same dimensions as sys1, whose ijt h ent r y is sys1(i,j)*sys2.

Inversion and Related Operations

Inver sion of LTI models amount s t o inver t ing t he following input /out put

r elat ionship.

This oper at ion is defined only for squar e syst ems (t hat is, syst ems wit h as

many input s as out put s) and is per for med using

inv(sys)

u y

v

sys2 sys1

H

1

H

2

y H

1

v H

1

H

2

u ( ) H

1

H

2

× ( ) u = = =

A

1

B

1

C

1

D

1

, , ,

A

2

B

2

C

2

D

2

, , ,

A

1

B

1

C

2

0 A

2

,

B

1

D

2

B

2

, C

1

D

1

C

2

, D

1

D

2

y H u = → u H

1 –

y =

3 Operations on LTI Models

3-14

The r esult ing inver se model is of t he same t ype as sys. Relat ed oper at ions

include:

•Left division sys1\sys2, which is equivalent t o inv(sys1)*sys2

•Right division sys1/sys2, which is equivalent t o sys1*inv(sys2)

For a st at e-space model sys wit h dat a , inv(sys) is defined only

when is a squar e inver t ible mat r ix, in which case it s st at e-space dat a is

Transposition

You can t r anspose an LTI model sys using

sys.'

This is a lit er al oper at ion wit h t he following effect :

•For TF models (wit h input ar gument s, num and den), t he cell ar r ays num and

den ar e t r ansposed.

•For ZPK models (wit h input ar gument s, z, p, and k), t he cell ar r ays, z and p,

and t he mat r ix k ar e t r ansposed.

•For SS models (wit h model dat a ), t r ansposit ion pr oduces t he

st at e-space model A

T

, C

T

, B

T

, D

T

.

•For FRD models (wit h complex fr equency r esponse mat r ix Response), t he

mat r ix of fr equency r esponse dat a at each fr equency is t r ansposed.

Pertransposition

For a cont inuous-t ime syst em wit h t r ansfer funct ion , t he pertransposed

syst em has t he t r ansfer funct ion

The discr et e-t ime count er par t is

Per t r ansposit ion of an LTI model sys is per for med using

sys'

A B C D , , ,

D

A BD

1 –

C , – BD

1 –

, D –

1 –

C , D

1 –

A B C D , , ,

H s ( )

G s ( ) H s – ( ) [ ]

T

=

G z ( ) H z

1 –

( ) [ ]

T

=

Arithmetic Operations

3-15

You can use per t r ansposit ion t o obt ain t he Her mit ian (conjugat e) t r anspose of

t he fr equency r esponse of a given syst em. The fr equency r esponse of t he

per t r anspose of , , is t he Her mit ian t r anspose of t he

fr equency r esponse of : .

To obt ain t he Her mit ian t r anspose of t he fr equency r esponse of a syst em sys

over a fr equency r ange specified by t he vect or w, t ype

freqresp(sys', w);

Operations on State-Space Models with Delays

When you apply oper at ions such as +,*,\,/,[], t o st at e-space models, all or

par t of t he I/O delay mat r ix of t he r esult ing model is absor bed int o t he input

and out put delay vect or s when it is possible t o r educe t he t ot al number of I/O

delays. The r esult ing model has a minimum number of such delays.

H s ( ) G s ( ) H s – ( ) [ ]

T

=

H s ( ) G j w ( ) H j w ( )

H

=

3 Operations on LTI Models

3-16

Model Interconnection Functions

The Cont r ol Syst em Toolbox pr ovides a number of funct ions t o help wit h t he

model building pr ocess. These include model int er connect ion funct ions t o

per for m I/O concat enat ion ([,], [;], and append), gener al par allel and ser ies

connect ions (parallel and series), and feedback connect ions (feedback and

lft). These funct ions ar e useful t o model open- and closed-loop syst ems.

Interconnection Operator Description

[,] Concat enat es hor izont ally

[;] Concat enat es ver t ically

append Appends models in a block diagonal

configur at ion

augstate Augment s t he out put by appending st at es

connect For ms an SS model fr om a block diagonal

LTI object for an ar bit r ar y int er connect ion

mat r ix

feedback For ms t he feedback int er connect ion of t wo

models

lft Pr oduces t he LFT int er connect ion

(Redheffer St ar pr oduct ) of t wo models

parallel For ms t he gener alized par allel connect ion

of t wo models

series For ms t he gener alized ser ies connect ion of

t wo models

Model Interconnection Functions

3-17

Concatenation of LTI Models

LTI model concat enat ion is done in a manner similar t o t he way you

concat enat e mat r ices in MATLAB, using

sys = [sys1 , sys2] % horizontal concatenation

sys = [sys1 ; sys2] % vertical concatenation

sys = append(sys1,sys2)% block diagonal appending

In I/O t er ms, hor izont al and ver t ical concat enat ion have t he following

block-diagr am int er pr et at ions (wit h and denot ing t he t r ansfer

mat r ices of sys1 and sys2).

You can use concat enat ion as an easy way t o cr eat e MIMO t r ansfer funct ions

or zer o-pole-gain models. For example,

H = [ tf(1,[1 0]) 1 ; 0 tf([1 –1],[1 1]) ]

specifies

H

1

H

2

H

2

y

+

+

H

1

u

1

u

2

y H

1

, H

2

u

1

u

2

=

Horizontal Concatenation

H

2

H

1

u

y

1

y

2

y

1

y

2

H

1

H

2

u =

Vertical Concatenation

H s ( )

1

s

--- 1

0

s 1 –

s 1 +

------------

=

3 Operations on LTI Models

3-18

Use

append(sys1,sys2)

t o specify t he block-decoupled LTI model int er connect ion.

See append on page 11-12 for mor e infor mat ion on t his command.

Feedback and Other Interconnection Functions

The following LTI model int er connect ion funct ions ar e useful for specifying

closed- and open-loop model configur at ions:

•feedback put s t wo LTI models wit h compat ible dimensions in a feedback

configur at ion.

•series connect s t wo LTI models in ser ies.

•parallel connect s t wo LTI models in par allel.

•lft per for ms t he Redheffer st ar pr oduct on t wo LTI models.

•connect wor ks wit h append t o apply an ar bit r ar y int er connect ion scheme t o

a set of LTI models.

sys1

sys2

Appended Models

u

1

u

2

y

1

y

2

s ys 1 0

0 s ys 2

Transfer Function

Model Interconnection Functions

3-19

For example, if sys1 has m input s and p out put s, while sys2 has p input s and

m out put s, t hen t he negat ive feedback configur at ion of t hese t wo LTI models

is r ealized wit h

feedback(sys1,sys2)

This specifies t he LTI model wit h m input s and p out put s whose I/O map is

See Chapt er 11, “Refer ence,” for mor e infor mat ion on feedback, series,

parallel, lft, and connect.

sys1

sys2

–

+

u y

I s ys 1 s ys 2 ⋅ + ( )

1 –

s ys1

3 Operations on LTI Models

3-20

Continuous/Discrete Conversions of LTI Models

The funct ion c2d discr et izes cont inuous-t ime TF, SS, or ZPK models.

Conver sely, d2c conver t s discr et e-t ime TF, SS, or ZPK models t o cont inuous

t ime. Sever al discr et izat ion/int er polat ion met hods ar e suppor t ed, including

zer o-or der hold (ZOH), fir st -or der hold (FOH), Tust in appr oximat ion wit h or

wit hout fr equency pr ewar ping, and mat ched poles and zer os.

The synt ax

sysd = c2d(sysc,Ts); % Ts = sampling period in seconds

sysc = d2c(sysd);

per for ms ZOH conver sions by default . To use alt er nat ive conver sion schemes,

specify t he desir ed met hod as an ext r a st r ing input :

sysd = c2d(sysc,Ts,'foh'); % use first-order hold

sysc = d2c(sysd,'tustin'); % use Tustin approximation

The conver sion met hods and t heir limit at ions ar e discussed next .

Zero-Order Hold

Zer o-or der hold (ZOH) devices conver t sampled signals t o cont inuous-t ime

signals for analyzing sampled cont inuous-t ime syst ems. The zer o-or der -hold

discr et izat ion of a cont inuous-t ime LTI model is depict ed in t he

following block diagr am.

The ZOH device gener at es a cont inuous input signal u(t) by holding each

sample value u[k] const ant over one sample per iod.

H

d

z ( ) H s ( )

H s ( ) u k [ ] y k [ ]

u t ( ) y t ( )

ZOH

T

s

H

d

z ( )

Continuous/Discrete Conversions of LTI Models

3-21

The signal is t hen fed t o t he cont inuous syst em , and t he r esult ing

out put is sampled ever y seconds t o pr oduce .

Conver sely, given a discr et e syst em , t he d2c conver sion pr oduces a

cont inuous syst em whose ZOH discr et izat ion coincides wit h . This

inver se oper at ion has t he following limit at ions:

•d2c cannot oper at e on LTI models wit h poles at when t he ZOH is used.

•Negat ive r eal poles in t he domain ar e mapped t o pairs of complex poles in

t he domain. As a r esult , t he d2c conver sion of a discr et e syst em wit h

negat ive r eal poles pr oduces a cont inuous syst em wit h higher or der .

The next example illust r at es t he behavior of d2c wit h r eal negat ive poles.

Consider t he following discr et e-t ime ZPK model.

hd = zpk([],–0.5,1,0.1)

Zero/pole/gain:

1

-------

(z+0.5)

Sampling time: 0.1

Use d2c t o conver t t his model t o cont inuous-t ime

hc = d2c(hd)

and you get a second-or der model.

Zero/pole/gain:

4.621 (s+149.3)

---------------------

(s^2 + 13.86s + 1035)

Discr et ize t he model again

c2d(hc,0.1)

u t ( ) u k [ ] , = k T

s

t k 1 + ( )T

s

≤ ≤

u t ( ) H s ( )

y t ( ) T

s

y k [ ]

H

d

z ( )

H s ( ) H

d

z ( )

z 0 =

z

s

3 Operations on LTI Models

3-22

and you get back t he or iginal discr et e-t ime syst em (up t o canceling t he

pole/zer o pair at z=–0.5):

Zero/pole/gain:

(z+0.5)

---------

(z+0.5)^2

Sampling time: 0.1

First-Order Hold

Fir st -or der hold (FOH) differ s fr om ZOH by t he under lying hold mechanism.

To t ur n t he input samples int o a cont inuous input , FOH uses linear

int er polat ion bet ween samples.

This met hod is gener ally mor e accur at e t han ZOH for syst ems dr iven by

smoot h input s. Due t o causalit y const r aint s, t his opt ion is only available for

c2d conver sions, and not d2c conver sions.

Note: This FOH met hod differ s fr om st andar d causal FOH and is mor e

appr opr iat ely called triangle approximation (see [2], p. 151). It is also known

as ramp-invariant appr oximat ion because it is dist or t ion-fr ee for r amp input s.

Tustin Approximation

The Tust in or bilinear appr oximat ion uses t he appr oximat ion

t o r elat e s-domain and z-domain t r ansfer funct ions. In c2d conver sions, t he

discr et izat ion of a cont inuous t r ansfer funct ion is der ived by

u k [ ] u t ( )

u t ( ) u k [ ]

t k T

s

–

T

s

------------------ u k 1 + [ ] u k [ ] – ( ) , + = k T

s

t k 1 + ( )T

s

≤ ≤

z e

s T

s

1 s T

s

2 ⁄ +

1 s T

s

2 ⁄ –

-------------------------- ≈ =

H

d

z ( ) H s ( )

Continuous/Discrete Conversions of LTI Models

3-23

Similar ly, t he d2c conver sion r elies on t he inver se cor r espondence

Tustin with Frequency Prewarping

This var iat ion of t he Tust in appr oximat ion uses t he cor r espondence

This change of var iable ensur es t he mat ching of t he cont inuous- and

discr et e-t ime fr equency r esponses at t he fr equency .

Matched Poles and Zeros

The mat ched pole-zer o met hod applies only t o SISO syst ems. The cont inuous

and discr et ized syst ems have mat ching DC gains and t heir poles and zer os

cor r espond in t he t r ansfor mat ion

See [2], p. 147 for mor e det ails.

H

d

z ( ) H s' ( ) , wher e = s'

2

T

s

------

z 1 –

z 1 +

------------ =

H s ( ) H

d

z' ( ), wher e = z'

1 s T

s

2 ⁄ +

1 s T

s

2 ⁄ –

-------------------------- =

H

d

z ( ) H s' ( ) , = s'

ω

ωT

s

2 ⁄ ( ) t an

---------------------------------

z 1 –

z 1 +

------------ =

ω

H j ω ( ) H

d

e

j ωT

s

( ) =

z e

s T

s

=

3 Operations on LTI Models

3-24

Discretization of Systems with Delays

You can also use c2d t o discr et ize SISO or MIMO cont inuous-t ime models wit h

t ime delays. If Ts is t he sampling per iod used for discr et izat ion:

•A delay of tau seconds in t he cont inuous-t ime model is mapped t o a delay of

k sampling per iods in t he discr et ized model, wher e k = fix(tau/Ts).

•The r esidual fractional delay tau – k*Ts is absor bed int o t he coefficient s of

t he discr et ized model (for t he zer o-or der -hold and fir st -or der -hold met hods

only).

For example, t o discr et ize t he t r ansfer funct ion

using zer o-or der hold on t he input , and a 10 Hz sampling r at e, t ype

h = tf(10,[1 3 10],'inputdelay',0.25);

hd = c2d(h,0.1)

This pr oduces t he discr et e-t ime t r ansfer funct ion

Transfer function:

0.01187 z^2 + 0.06408 z + 0.009721

z^(–2) * ----------------------------------

z^3 – 1.655 z^2 + 0.7408 z

Sampling time: 0.1

Her e t he input delay in amount s t o 2.5 t imes t he sampling per iod of 0.1

seconds. Accor dingly, t he discr et ized model hd inher it s an input delay of t wo

sampling per iods, as confir med by t he value of hd.inputdelay. The r esidual

half-per iod delay is fact or ed int o t he coefficient s of hd by t he discr et izat ion

algor it hm.

H s ( ) e

0.25s – 10

s

2

3s 10 + +

------------------------------- =

H s ( )

Continuous/Discrete Conversions of LTI Models

3-25

The st ep r esponses of t he cont inuous and discr et ized models ar e compar ed in

t he figur e below. This plot was pr oduced by t he command

step(h,'--',hd,'-')

Note: The Tust in and mat ched pole/zer o met hods ar e accur at e only for

delays t hat ar e int eger mult iples of t he sampling per iod. It is t her efor e

pr efer able t o use t he zoh and foh discr et izat ion met hods for models wit h

delays.

Delays and Continuous/Discrete Model Conversions

When you apply c2d and d2c t o st at e-space models, all or par t of t he I/O delay

mat r ix of t he r esult ing model is absor bed int o t he input and out put delay

3 Operations on LTI Models

3-26

vect or s when it is possible t o r educe t he t ot al number of I/O delays. The

r esult ing model has a minimum number of such delays.

Resampling of Discrete-Time Models

3-27

Resampling of Discrete-Time Models

You can r esample a discr et e-t ime TF, SS, or ZPK model sys1 by t yping

sys2 = d2d(sys1,Ts)

The new sampling per iod Ts does not have t o be an int eger mult iple of t he

or iginal sampling per iod. For example, t yping

h1 = tf([1 0.4],[1 –0.7],0.1);

h2 = d2d(h1,0.25);

r esamples h1 at t he sampling per iod of 0.25 seconds, r at her t han 0.1 seconds.

You can compar e t he st ep r esponses of h1 and h2 by t yping

step(h1,'--',h2,'-')

The r esult ing plot is shown on t he figur e below (h1 is t he dashed line).

3 Operations on LTI Models

3-28

References

[1] Åst r öm, K.J . and B. Wit t enmar k, Computer-Controlled S ystems: Theory

and Design, Pr ent ice-Hall, 1990, pp. 48–52.

[2] Fr anklin, G.F., J .D. Powell, and M.L. Wor kman, Digital Control of Dynamic

S ystems, Second Edit ion, Addison-Wesley, 1990.

4

Ar r ays of LTI Models

Introduct i on . . . . . . . . . . . . . . . . . . . . 4-2

When t o Collect a Set of Models in an LTI Ar r ay . . . . . . 4-2

Rest r ict ions for LTI Models Collect ed in an Ar r ay . . . . . 4-2

Wher e t o Find Infor mat ion on LTI Ar r ays . . . . . . . . 4-3

The Concept of an LTI Array . . . . . . . . . . . . 4-4

Higher Dimensional Ar r ays of LTI Models . . . . . . . . 4-6

Di mensions, Size, and Shape of an LTI Array . . . . . 4-7

size and ndims . . . . . . . . . . . . . . . . . . . . 4-9

r eshape . . . . . . . . . . . . . . . . . . . . . . 4-11

Bui ldi ng LTI Arrays . . . . . . . . . . . . . . . . 4-12

Gener at ing LTI Ar r ays Using r ss . . . . . . . . . . . . 4-12

Building LTI Ar r ays Using for Loops . . . . . . . . . . 4-12

Building LTI Ar r ays Using t he st ack Funct ion . . . . . . . 4-15

Building LTI Ar r ays Using t f, zpk, ss, and fr d . . . . . . . 4-17

Indexi ng Into LTI Arrays . . . . . . . . . . . . . . 4-20

Accessing Par t icular Models in an LTI Ar r ay . . . . . . . 4-20

Ext r act ing LTI Ar r ays of Subsyst ems . . . . . . . . . . 4-21

Reassigning Par t s of an LTI Ar r ay . . . . . . . . . . . 4-22

Delet ing Par t s of an LTI Ar r ay . . . . . . . . . . . . . 4-23

Operati ons on LTI Arrays . . . . . . . . . . . . . . 4-25

Example: Addit ion of Two LTI Ar r ays . . . . . . . . . . 4-26

Dimension Requir ement s . . . . . . . . . . . . . . . 4-27

Special Cases for Oper at ions on LTI Ar r ays . . . . . . . . 4-27

Ot her Oper at ions on LTI Ar r ays . . . . . . . . . . . . 4-30

4 Arrays of LTI Models

4-2

Introduction

You can use LTI ar r ays t o collect a set of LTI models int o a single MATLAB

var iable. You t hen use t his var iable t o manipulat e or analyze t he ent ir e

collect ion of models in a vect or ized fashion. You access t he individual models

in t he collect ion t hr ough indexing r at her t han by individual model names.

LTI ar r ays ext end t he concept of single LTI models in a similar way t o how

mult idimensional ar r ays ext end t wo-dimensional mat r ices in MATLAB (see

Chapt er 12, “Mult idimensional Ar r ays” in Using MATLAB). Addit ionally,

when you t hink about LTI ar r ays, it is useful t o keep in mind t he mat r ix

int er pr et at ion of LTI models developed in “Viewing LTI Syst ems As Mat r ices”

on page 2-5.

When to Collect a Set of Models in an LTI Array

You can use LTI ar r ays t o r epr esent :

•A set of LTI models ar ising fr om t he linear izat ion of a nonlinear syst em at

sever al oper at ing point s

•A collect ion of t r ansfer funct ions t hat depend on one or mor e par amet er s

•A set of LTI models ar ising fr om sever al syst em ident ificat ion exper iment s

applied t o one plant

•A set of gain-scheduled LTI cont r oller s

•A list of LTI models you want t o collect t oget her under t he same name

Restrictions for LTI Models Collected in an Array

For each model in an LTI ar r ay, t he following pr oper t ies must be t he same:

•The number of input s and out put s

•The sample t ime, for discr et e-t ime models

•The I/O names and I/O gr oups

Note: You cannot specify Simulink LTI blocks wit h LTI ar r ays.

Introduction

4-3

Where to Find Information on LTI Arrays

The next t wo sect ions give examples t hat illust r at e t he concept of an LTI ar r ay,

it s dimensions, and size. To r ead about how t o build an LTI ar r ay, go t o

“Building LTI Ar r ays” on page 4-12. The r emainder of t he chapt er is devot ed t o

indexing and oper at ions on LTI Ar r ays. You can also apply t he analysis

funct ions in t he Cont r ol Syst em Toolbox t o LTI ar r ays. See Chapt er 5, “Model

Analysis Tools,” for mor e infor mat ion on t hese funct ions. You can also view

r esponse plot s of LTI ar r ays wit h t he LTI Viewer . For infor mat ion, see Chapt er

6, “The LTI Viewer .”

4 Arrays of LTI Models

4-4

The Concept of an LTI Array

To visualize t he concept of an LTI ar r ay, consider t he set of five t r ansfer

funct ion models shown below. In t his example, each model has t wo input s and

t wo out put s. They differ by par amet er var iat ions in t he individual model

component s.

Figure 4-1: Five LTI Models to be Collected in an LTI Array

Figure 4-2: An LTI Array Containing These Five Models

1.1

s 1 +

------------ 0

0

1

s 5 +

------------

1.3

s 1.1 +

----------------- 0

0

1

s 5.2 +

-----------------

1.11

s 1.2 +

----------------- 0

0

1

s 5.4 +

-----------------

1.15

s 1.3 +

----------------- 0

0

1

s 5.6 +

-----------------

1.09

s 1.4 +

----------------- 0

0

1

s 5.8 +

-----------------

1.09

s 1.4 +

----------------- 0

0

1

s 5.8 +

-----------------

1.15

s 1.3 +

----------------- 0

0

1

s 5.6 +

-----------------

1.11

s 1.2 +

----------------- 0

0

1

s 5.4 +

-----------------

1.3

s 1.1 +

----------------- 0

0

1

s 5.2 +

-----------------

1.1

s 1 +

------------ 0

0

1

s 5 +

------------

Each element of the

LTI array is a model.

This LTI array embodies a

1-by-5 list of models.

The Concept of an LTI Array

4-5

J ust as you might collect a set of t wo-by-t wo mat r ices in a mult idimensional

ar r ay, you can collect t his set of five t r ansfer funct ion models as a list in an LTI

ar r ay under one var iable name, say, sys. Each element of t he LTI ar r ay is an

LTI model.

Individual models in t he LTI ar r ay sys ar e accessed via indexing. The gener al

for m for t he synt ax you use t o access dat a in an LTI ar r ay is

For example, you can access t he t hir d model in sys wit h sys(:,:,3). The

following illust r at es how you can use indexing t o select models or t heir

component s fr om sys.

Figure 4-3: Using Indices to Select Models and Their Components

See “Indexing Int o LTI Ar r ays” on page 4-20 for mor e infor mat ion on indexing.

sys(Outputs,Inputs,Models)

The first index

selects the output

channels.

The second in-

dex selects the

input channels.

The remaining indices select

particular models in the LTI

array by their array coordi-

nates.

1.11

s 1.2 +

----------------- 0

0

1

s 5.4 +

-----------------

sys(:,:,3) selects the third model in the array.

sys(2,2,3) selects

the (2,2) entry of the

third model in the array.

1.09

s 1.4 +

----------------- 0

0

1

s 5.8 +

-----------------

1.15

s 1.3 +

----------------- 0

0

1

s 5.6 +

-----------------

1.11

s 1.2 +

----------------- 0

0

1

s 5.4 +

-----------------

1.3

s 1.1 +

----------------- 0

0

1

s 5.2 +

-----------------

1.1

s 1 +

------------ 0

0

1

s 5 +

------------

4 Arrays of LTI Models

4-6

Higher Dimensional Arrays of LTI Models

You can also collect a set of models in a t wo-dimensional ar r ay. The following

diagr am illust r at es a 2-by-3 ar r ay of six, t wo-out put , one-input models called

m2d.

Figure 4-4: m2d: A 2-by-3 Array of Two-Output, One-Input Models

Mor e gener ally, you can or ganize models int o a 3-D or higher -dimensional

ar r ay, in much t he same way you ar r ange numer ical dat a int o

mult idimensional ar r ays (see Chapt er 12, “Mult idimensional Ar r ays” in Using

MATLAB).

m2d(:,:,1,3) extracts the

model in the (1,3) position

of the array.

Each entry in this 2-by-3 array of

models is a two-output, one-input

transfer function.

3.36

s 2.9 +

-----------------

7.23

3.4

s 2.86 +

--------------------

7.27

3.45

s 2.81 +

--------------------

7.32

m2d(:,:,1,1) m2d(:,:,1,2) m2d(:,:,1,3)

m2d(:,:,2,1) m2d(:,:,2,2) m2d(:,:,2,3)

3.42

s 2.84 +

--------------------

7.29

m2d(:,:,1,3)

Dimensions, Size, and Shape of an LTI Array

4-7

Dimensions, Size, and Shape of an LTI Array

The dimensions and size of a single LTI model ar e det er mined by t he out put

and input channels. An ar r ay of LTI models has addit ional quant it ies t hat

det er mine it s dimensions, size, and shape.

Ther e ar e t wo set s of dimensions associat ed wit h LTI ar r ays:

•The I/ O dimensions—t he out put dimension and input dimension common t o

all models in t he LTI ar r ay

•The array dimensions—t he dimensions of t he ar r ay of models it self

The size of t he LTI ar r ay is det er mined by:

•The lengt hs of t he I/O dimensions—t he number of out put s (or input s)

common t o all models in t he LTI ar r ay

•The lengt h of each ar r ay dimension—t he number of models along t hat ar r ay

dimension

4 Arrays of LTI Models

4-8

The next figur e illust r at es t he concept s of dimension and size for t he LTI ar r ay

m2d, a 2-by-3 ar r ay of one-input , t wo-out put t r ansfer funct ion models.

Figure 4-5: Dimensions and Size of m2d, an LTI Array

You can load t his sample LTI ar r ay int o your wor kspace by t yping

load LTIexamples

size(m2d)

2x3 array of continuous-time transfer functions

Each transfer function has 2 outputs and 1 input.

Accor ding t o t he mat r ix analogy in “Viewing LTI Syst ems As Mat r ices” on page

2-5, t he I/O dimensions cor r espond t o t he r ow and column dimensions of t he

t r ansfer mat r ix. The t wo I/O dimensions ar e bot h of lengt h 1 for SISO models.

For MIMO models t he lengt hs of t hese dimensions ar e given by t he number of

out put s and input s of t he model.

T

h

e

l

e

n

g

t

h

o

f

t

h

e

f

i

r

s

t

a

r

r

a

y

d

i

m

e

n

s

i

o

n

i

s

2

.

The length of the second array dimension is 3.

Input dimension (length 1)

O

u

t

p

u

t

d

i

m

e

n

s

i

o

n

(

l

e

n

g

t

h

2

)

3.36

s 2.9 +

-----------------

7.23

3.4

s 2.86 +

--------------------

7.27

3.45

s 2.81 +

--------------------

7.32

m2d(:,:,1,1) m2d(:,:,1,2) m2d(:,:,1,3)

m2d(:,:,2,1) m2d(:,:,2,2) m2d(:,:,2,3)

3.45

s 2.81 +

--------------------

7.32

m2d(:,:,2,3)

Dimensions, Size, and Shape of an LTI Array

4-9

Five r elat ed quant it ies ar e per t inent t o under st anding t he ar r ay dimensions:

•N, t he number of models in t he LTI ar r ay

•K, t he number of ar r ay dimensions

• , t he list of lengt hs of t he ar r ay dimensions

- is t he number of models along t he dimension.

• , t he configur at ion of t he models in t he ar r ay

- The configur at ion det er mines t he shape of t he ar r ay.

- The pr oduct of t hese int eger s is N.

In t he example model m2d,:

•The lengt h of t he out put dimension, t he fir st I/O dimension, is 2, since t her e

ar e t wo out put channels in each model.

•The lengt h of t he input dimension, t he second I/O dimension, is 1, since t her e

is only one input channel in each model.

•N, t he number of models in t he LTI ar r ay, is 6.

•K, t he number of ar r ay dimensions, is 2.

•The ar r ay dimension lengt hs ar e [2 3].

•The ar r ay configur at ion is 2-by-3.

size and ndims

You can access t he dimensions and shape of an LTI ar r ay using:

•size t o det er mine t he lengt hs of each of t he dimensions associat ed wit h an

LTI ar r ay

•ndims t o det er mine t he t ot al number of dimensions in an LTI ar r ay

When applied t o an LTI ar r ay, size r et ur ns

[Ny Nu S1 S2 ... Sk]

wher e

•Ny is t he number of out put s common t o all models in t he LTI ar r ay.

•Nu is t he number of input s common t o all models in t he LTI ar r ay.

•S1 S2 ... Sk ar e t he lengt hs of t he ar r ay dimensions of a k-dimensional

ar r ay of models. Si is t he number of models along t he it h ar r ay dimension.

S

1

S

2

…S

K

S

i

i

t h

S

1

by S – –

2

by … by S

K

– – – –

S

1

S

2

× … S

K

× ×

4 Arrays of LTI Models

4-10

Note:

•By convent ion, a single LTI model is t r eat ed as a 1-by-1 ar r ay of models.

For single LTI models, size r et ur ns only t he I/O dimensions [Ny Nu].

•For LTI ar r ays, size always r et ur ns at least t wo ar r ay dimensions.

For example, t he size of a 2-by-1 LTI ar r ay in [Ny Nu 2 1]

•size ignor es t r ailing singlet on dimensions beyond t he second ar r ay

dimension.

For example, size r et ur ns [Ny Nu 2 3] for a 2-by-3-by-1-by-1 LTI ar r ay of

models wit h Ny out put s and Nu input s.

•You can use t he synt ax size(sys,'order') t o det er mine t he number of

st at es in an LTI ar r ay, sys. A mult idimensional ar r ay is r et ur ned if sys is an

SS model such t hat t he number s of st at es in each model in sys ar e not t he

same.

The funct ion ndims r et ur ns t he t ot al number of dimensions in an LTI ar r ay:

•2, for single LTI models

•2 + p, for LTI ar r ays, wher e p (gr eat er t han 2) is t he number of ar r ay

dimensions

Not e t hat

ndims (sys) = length(size(sys))

To see how t hese wor k on t he sample 2-by-3 LTI ar r ay m2d of t wo-out put ,

one-input models, t ype

load LTIexamples

s = size(m2d)

s =

2 1 2 3

Dimensions, Size, and Shape of an LTI Array

4-11

Not ice t hat size r et ur ns a vect or whose ent r ies cor r espond t o t he lengt h of

each of t he four dimensions of m2d: t wo out put s and one input in a 2-by-3 ar r ay

of models. Type

ndims(m2d)

ans =

4

t o see t hat t her e ar e indeed four dimensions at t r ibut ed t o t his LTI ar r ay.

reshape

Use reshape t o r eor ganize t he ar r angement (ar r ay configur at ion) of t he models

of an exist ing LTI ar r ay.

For example, t o ar r ange t he models in an LTI Ar r ay sys as a

ar r ay, t ype

reshape(sys,w1,...,wp)

wher e w1,...,wp ar e any set of int eger s whose pr oduct is N, t he number of

models in sys.

You can r eshape t he LTI ar r ay m2d int o a 3-by-2, a 6-by-1, or a 1-by-6 ar r ay

using reshape. For example, t ype

load LTIexamples

sys = reshape(m2d,6,1);

size(sys)

6x1 array of continuous-time transfer functions

Each transfer function has 2 outputs and 1 inputs.

s = size(sys)

s =

2 1 6 1

w

1

… × w

p

×

4 Arrays of LTI Models

4-12

Building LTI Arrays

Ther e ar e sever al ways t o build LTI ar r ays:

•Using a for loop t o assign each model in t he ar r ay

•Using stack t o concat enat e LTI models int o an LTI ar r ay

•Using tf, zpk, ss, or frd

In addit ion, you can use t he command rss t o gener at e LTI ar r ays of r andom

st at e-space models.

Generating LTI Arrays Using rss

A convenient way t o gener at e ar r ays of st at e-space models wit h t he same

number of st at es in each model is t o use rss. The synt ax is

rss(N,P,M,sdim1,...,sdimk)

wher e

•N is t he number of st at es of each model in t he LTI ar r ay.

•P is t he number of out put s of each model in t he LTI ar r ay.

•M is t he number of input s of each model in t he LTI ar r ay.

•sdim1,...,sdimk ar e t he lengt hs of t he ar r ay dimensions.

For example, t o cr eat e a 4-by-2 ar r ay of r andom st at e-space models wit h t hr ee

st at es, one out put , and one input , t ype

sys = rss(3,2,1,4,2);

size(sys)

4x2 array of continuous-time state-space models

Each model has 2 outputs, 1 input, and 3 states.

Building LTI Arrays Using for Loops

Consider t he following second-or der SISO t r ansfer funct ion t hat depends on

t wo par amet er s, and

.

ζ ω

H s ( )

ω

2

s

2

2ζωs ω

2

+ +

--------------------------------------- =

Building LTI Arrays

4-13

Suppose, based on measur ed input and out put dat a, you est imat e confidence

int er vals , and for each of t he par amet er s, and . All of t he

possible combinat ions of t he confidence limit s for t hese model par amet er

values give r ise t o a set of four SISO models.

Figure 4-6: Four LTI Models Depending on Two Parameters

You can ar r ange t hese four models in a 2-by-2 ar r ay of SISO t r ansfer funct ions

called H.

Figure 4-7: The LTI Array H

Her e, for , r epr esent s t he t r ansfer funct ion

cor r esponding t o t he par amet er values and .

ω

1

ω

2

[ , ] ζ

1

ζ

2

[ , ] ω ζ

H

11

s ( )

ω

1

2

s

2

2ζ

1

ω

1

s ω

1

2

+ +

--------------------------------------------- =

H

21

s ( )

ω

2

2

s

2

2ζ

1

ω

2

s ω

2

2

+ +

--------------------------------------------- = H

22

s ( )

ω

2

2

s

2

2ζ

2

ω

2

s ω

2

2

+ +

--------------------------------------------- =

H

12

s ( )

ω

1

2

s

2

2ζ

2

ω

1

s ω

1

2

+ +

--------------------------------------------- =

ω

1

ω

2

ζ

1

ζ

2

H(:,:,1,1) H(:,:,1,2)

H(:,:,2,1)

H(:,:,2,2)

ω

1

ω

2

ζ

2

ζ

1

Each entry of this 2-by-2 array is

a SISO transfer function model.

i , j 1 2 , { } ∈ H(:,:,i,j)

ω

j

2

s

2

2ζ

i

ω

j

s ω

j

2

+ +

-------------------------------------------------

ζ ζ

i

= ω ω

j

=

4 Arrays of LTI Models

4-14

The fir st t wo colon indices ( ) select all I/O channels fr om t he I/O dimensions

of H. The t hir d index of H r efer s t o t he fir st ar r ay dimension ( ), while t he four t h

index is for t he second ar r ay dimension ( ).

Suppose t he limit s of t he r anges of values for and ar e [0.66,0.76] and

[1.2,1.5], r espect ively. Ent er t hese at t he command line.

zeta = [0.66,0.75];

w = [1.2,1.5];

Since t he four models have t he same par amet r ic st r uct ur e, it ’s convenient t o

use t wo nest ed for loops t o const r uct t he LTI ar r ay.

for i = 1:2

for j = 1:2

H(:,:,i,j) = tf(w(j)^2,[1 2*zeta(i)*w(j) w(j)^2]);

end

end

H now cont ains t he four models in a 2-by-2 ar r ay. For example, t o display t he

t r ansfer funct ion in t he (1,2) posit ion of t he ar r ay, t ype

H(:,:,1,2)

Transfer function:

2.25

-------------------

s^2 + 1.98 s + 2.25

:

ζ

ω

ζ ω

Building LTI Arrays

4-15

For t he pur poses of efficient comput at ion, you can init ialize an LTI ar r ay t o

zer o, and t hen r eassign t he ent ir e ar r ay t o t he values you want t o specify. The

gener al synt ax for zer o assignment of LTI ar r ays is

To init ialize H in t he above example t o zer o, t ype

H = tf(zeros(1,1,2,2));

befor e you implement t he nest ed for loops.

Building LTI Arrays Using the stack Function

Anot her way t o build LTI ar r ays is using t he funct ion stack. This funct ion

oper at es on single LTI models as well as LTI ar r ays. It concat enat es a list of

LTI ar r ays or single LTI models only along t he ar r ay dimension. The gener al

synt ax for stack is

stack(Arraydim,sys1,sys2...)

wher e

•Arraydim is t he ar r ay dimension along which t o concat enat e t he LTI models

or ar r ays.

•sys1, sys2, ... ar e t he LTI models or LTI ar r ays t o be concat enat ed.

Lengths of the array dimensions Lengths of the output/input dimensions

The maximum number of states in any model in the LTI array

sys = tf(zeros(Ny,Nu,S1,...,SK))

sys = zpk(zeros(Ny,Nu,S1,...,SK))

sys = ss(zeros(Ny,Nu,S1,...,SK,Nx))

sys = frd(zeros(Ny,Nu,Nf,S1,...,SK))

The number of frequency vectors in the FRD

4 Arrays of LTI Models

4-16

When you concat enat e sever al models or LTI ar r ays along t he jt h ar r ay

dimension, such as in

stack(j,sys1,sys2,...,sysn)

•The lengt hs of t he I/O dimensions of sys1,...,sysn must all mat ch.

•The lengt hs of all but t he jt h ar r ay dimension of sys1,...,sysn must mat ch.

For example, if t wo TF models sys1 and sys2 have t he same number of input s

and out put s,

sys = stack(1,sys1,sys2)

concat enat es t hem int o a 2-by-1 ar r ay of models.

Note:

•stack only concat enat es along an ar r ay dimension, not an I/O dimension.

•To concat enat e LTI models or LTI ar r ays along an input or out put

dimension, use t he br acket not at ion ([,] [;]). See “Model Int er connect ion

Funct ions” on page 3-16 for mor e infor mat ion on t he use of br acket not at ion

t o concat enat e models. See also “Special Cases for Oper at ions on LTI Ar r ays”

on page 4-27 for some examples of t his t ype of concat enat ion of LTI ar r ays.

Her e’s an example of how t o build t he LTI ar r ay H using t he funct ion stack.

% Set up the parameter vectors.

zeta = [0.66,0.75];

w = [1.2,1.5];

% Specify the four individual models with those parameters.

%

H11 = tf(w(1)^2,[1 2*zeta(1)*w(1) w(1)^2]);

H12 = tf(w(2)^2,[1 2*zeta(1)*w(2) w(2)^2]);

H21 = tf(w(1)^2,[1 2*zeta(2)*w(1) w(1)^2]);

H22 = tf(w(2)^2,[1 2*zeta(2)*w(2) w(2)^2]);

Building LTI Arrays

4-17

% Set up the LTI array using stack.

COL1 = stack(1,H11,H21); % The first column of the 2-by-2 array

COL2 = stack(1,H12,H22); % The second column of the 2-by-2 array

H = stack(2, COL1, COL2); % Concatenate the two columns of models.

Not ice t hat t his r esult is ver y differ ent fr om t he single MIMO LTI model

r et ur ned by

H = [H11,H12;H21,H22];

Building LTI Arrays Using tf, zpk, ss, and frd

You can also build LTI ar r ays using t he tf, zpk, ss, and frd const r uct or s. You

do t his by using mult idimensional ar r ays in t he input ar gument s for t hese

funct ions.

Specifying Arrays of TF models tf

For TF models, use

sys = tf(num,den)

wher e

•Bot h num and den ar e mult idimensional cell ar r ays t he same size as sys (see

“size and ndims” on page 4-9).

•sys(i,j,n1,...,nK) is t he (i, j) ent r y of t he t r ansfer mat r ix for t he model

locat ed in t he posit ion of t he ar r ay.

•num(i,j,n1,...,nK) is a r ow vect or r epr esent ing t he numer at or polynomial

of sys(i,j,n1,...,nK).

•den(i,j,n1,...,nK) is a r ow vect or r epr esent ing denominat or polynomial

of sys(i,j,n1,...,nK).

See “MIMO Tr ansfer Funct ion Models” on page 2-10 for r elat ed infor mat ion on

t he specificat ion of single TF models.

Specifying Arrays of ZPK Models Using zpk

For ZPK models, use

sys = zpk(zeros,poles,gains)

n

1

… n

K

, , ( )

4 Arrays of LTI Models

4-18

wher e

•Bot h zeros and poles ar e mult idimensional cell ar r ays whose cell ent r ies

cont ain t he vect or s of zer os and poles for each I/O pair of each model in t he

LTI ar r ay.

•gains is a mult idimensional ar r ay cont aining t he scalar gains for each I/O

pair of each model in t he ar r ay.

•The dimensions (and t heir lengt hs) of zeros, poles, and gains, det er mine

t hose of t he LTI ar r ay, sys.

Specifying Arrays of SS Models Using ss

To specify ar r ays of SS models, use

sys = ss(a,b,c,d)

wher e a, b, c, and d ar e r eal-valued mult idimensional ar r ays of appr opr iat e

dimensions. All models in t he r esult ing ar r ay of SS models have t he same

number of st at es, out put s, and input s.

Note: You cannot use t he ss const r uct or t o build an ar r ay of st at e-space

models wit h differ ent number s of st at es. Use stack t o build such LTI ar r ays.

The Size of LTI Array Data for SS Models

The size of t he model dat a for ar r ays of st at e-space models is summar ized in

t he following t able.

Data Size (Data)

a

b

c

d

N

s

N

s

S

1

S

2

…S

K

N

s

N

u

S

1

S

2

…S

K

N

y

N

s

S

1

S

2

…S

K

N

y

N

u

S

1

S

2

…S

K

Building LTI Arrays

4-19

wher e

• is t he maximum of t he number of st at es in each model in t he ar r ay.

• is t he number of input s in each model.

• is t he number of out put s in each model.

• ar e t he lengt hs of t he ar r ay dimensions.

Specifying Arrays of FRD Models Using frd

To specify a K-dimensional ar r ay of p-out put , m-input FRD models for which

ar e t he lengt hs of t he ar r ay dimensions, use

sys = frd(response,frequency,units)

wher e

•frequency is a r eal vect or of n fr equency dat a point s common t o all FRD

models in t he LTI ar r ay.

•response is a p-by-m-by-n-by- -by- -by- complex-valued

mult idimensional ar r ay.

•units is t he opt ional st r ing specifying 'rad/s' or 'Hz'.

Not e t hat for specifying an LTI ar r ay of SISO FRD models, response can also

be a mult idimensional ar r ay of 1-by-n mat r ices whose r emaining dimensions

det er mine t he ar r ay dimensions of t he FRD.

N

s

N

u

N

y

S

1

S

2

… S

K

, , ,

S

1

S

2

… S

K

, , ,

S

1

… S

K

4 Arrays of LTI Models

4-20

Indexing Into LTI Arrays

You can index int o LTI ar r ays in much t he same way as you would for

mult idimensional ar r ays t o:

•Access models

•Ext r act subsyst ems

•Reassign par t s of an LTI ar r ay

•Delet e par t s of an LTI ar r ay

When you index int o an LTI ar r ay sys, t he indices should be or ganized

accor ding t o t he following for mat

wher e

•Outputs ar e indices t hat select out put channels.

•Inputs ar e indices t hat select input channels.

• ar e indices int o t he ar r ay dimensions t hat select one model or a

subset of models in t he LTI ar r ay.

Note on Indexing into LTI Arrays of FRD models: For FRD models, t he

ar r ay indices can be followed by t he keywor d 'frequency' and some

expr ession select ing a subset of t he fr equency point s as in

sys (outputs, inputs, n1,...,nk, 'frequency', SelectedFreqs)

See “Refer encing FRD Models Thr ough Fr equencies” on page 3-7 for det ails on

fr equency point select ion in FRD models.

Accessing Particular Models in an LTI Array

To access any given model in an LTI ar r ay:

•Use colon ar gument s (:,:) for t he fir st t wo indices t o select all I/O channels.

•The r emaining indices specify t he model coor dinat es wit hin t he ar r ay.

sys(Outputs, Inputs, ) n

1

… n

K

, ,

n

1

… n

K

, ,

Indexing Into LTI Arrays

4-21

For example, if sys is a 5-by-2 ar r ay of st at e-space models defined by

sys = rss(4,3,2,5,2);

you can access (and display) t he model locat ed in t he (3,2) posit ion of t he ar r ay

sys by t yping

sys(:,:,3,2)

If sys is a 5-by-2 ar r ay of 3-out put , 2-input FRD models, wit h fr equency vect or

[1,2,3,4,5], t hen you can access t he r esponse dat a cor r esponding t o t he

middle fr equency (3 r ad/s), of t he model in t he (3,1) posit ion by t yping

sys(:,:,3,1,'frequency',3.0)

To access all fr equencies of t his model in t he ar r ay, you can simply t ype

sys(:,:,3,1)

Single Index Referencing of Array Dimensions

You can also access models using single index r efer encing of t he ar r ay

dimensions.

For example, in t he 5-by-2 LTI ar r ay sys above, you can also access t he model

locat ed in t he (3,2) posit ion by t yping

sys(:,:,8)

since t his model is in t he eight h posit ion if you wer e t o list t he 10 models in t he

ar r ay by successively scanning t hr ough it s ent r ies along each of it s columns.

For mor e infor mat ion on single index r efer encing, see t he “Advanced Indexing”

sect ion of Chapt er 10, “M-File Pr ogr amming” in Using MATLAB.

Extracting LTI Arrays of Subsystems

To select a par t icular subset of I/O channels fr om all t he models in an LTI

ar r ay, use t he synt ax descr ibed in “Ext r act ing and Modifying Subsyst ems” on

page 3-5. For example,

sys = rss(4,3,2,5,2);

A = sys(1, [1 2])

or equivalent ly,

A = sys(1,[1 2],:,:)

4 Arrays of LTI Models

4-22

select s t he fir st t wo input channels, and t he fir st out put channel in each model

of t he LTI ar r ay A, and r et ur ns t he r esult ing 5-by-2 ar r ay of one-out put ,

t wo-input subsyst ems.

You can also combine model select ion wit h I/O select ion wit hin an LTI ar r ay.

For example, t o access bot h:

•The st at e-space model in t he (3,2) ar r ay posit ion

•Only t he por t ion of t hat model r elat ing t he second input t o t he fir st out put

t ype

sys(1,2,3,2)

To access t he subsyst em fr om all input s t o t he fir st t wo out put channels of t his

same ar r ay ent r y, t ype

sys(1:2,:,3,2)

Reassigning Parts of an LTI Array

You can r eassign ent ir e models or por t ions of models in an LTI ar r ay. For

example,

sys = rss(4,3,2,5,2); % 5X2 array of state-space models

H = rss(4,1,1,5,2); % 5X2 array of SISO models

sys(1,2) = H

r eassigns t he subsyst em fr om input t wo t o out put one, for all models in t he LTI

ar r ay sys. This SISO subsyst em of each model in t he LTI ar r ay is r eplaced

wit h t he LTI ar r ay H of SISO models. This one-line assignment command is

equivalent t o t he following 10-st ep nest ed for loop.

for k = 1:5

for j = 1:2

sys(1,2,k,j) = H(:,:,k,j);

end

end

Not ice t hat you don’t have t o use t he ar r ay dimensions wit h t his assignment .

This is because I/O select ion applies t o all models in t he ar r ay when t he ar r ay

indices ar e omit t ed.

Indexing Into LTI Arrays

4-23

Similar ly, t he commands

sys(:,:,3,2) = sys(:,:,4,1);

sys(1,2,3,2) = 0;

r eassign t he ent ir e model in t he (3,2) posit ion of t he LTI ar r ay sys and t he (1,2)

subsyst em of t his model, r espect ively.

LTI Arrays of SS Models with Differing Numbers of States

You must use an ent ir e LTI model for r eassignment if you have an LTI ar r ay

sys of st at e-space models for which:

•The number s of st at es in each model in sys is not const ant .

•You want t o change t he dimensions of t he a, b, and c mat r ices in one model

as you r eassign it s a, b, and c pr oper t ies.

For example, if

sys = ss(stack(1,tf(1,[1 2 1]),tf(1,[1 1])));

t hen t he model sys(:,:,1) is of or der 2, while sys(:,:,2) is of or der 1. To

r eassign t he a, b, and c pr oper t ies of sys(:,:,1) so t hat t he st at e dimension of

t he new model is not 2, you must make t he ent ir e model assignment at once.

You can do t his as follows.

sys(:,:,1) = sys2

wher e sys2 r epr esent s an LTI model for which size(sys2,'order') is not 2.

Deleting Parts of an LTI Array

You can use indexing t o delet e any par t of an LTI ar r ay by r eassigning it t o be

empt y ([]). For inst ance,

sys = rss(4,3,2,5,2);

sys(1,:) = [];

size(sys)

5x2 array of continuous-time state-space models

Each model has 2 outputs, 2 inputs, and 4 states.

delet es t he fir st out put channel fr om ever y model of t his LTI ar r ay.

4 Arrays of LTI Models

4-24

Similar ly,

sys(:,:,[3 4],:) = []

delet es t he t hir d and four t h r ows of t his t wo-dimensional ar r ay of models.

Operations on LTI Arrays

4-25

Operations on LTI Arrays

Using LTI ar r ays, you can apply almost all of t he basic model oper at ions t hat

wor k on single LTI models t o ent ir e set s of models at once. These basic

oper at ions, discussed in Chapt er 3, “Oper at ions on LTI Models,” include:

•The ar it hmet ic oper at ions: +, –, *, /,\,',.'

•The model int er connect ion funct ions: concat enat ion along I/O dimensions

([,], [;]), feedback, append, series, parallel, and lft

When you apply any of t hese oper at ions t o t wo (or mor e) LTI ar r ays (for

example, sys1 and sys2), t he oper at ion is implement ed on a model-by-model

basis. Ther efor e, t he kt h model of t he r esult ing LTI ar r ay is der ived fr om t he

applicat ion of t he given oper at ion t o t he kt h model of sys1 and t he kt h model

of sys2.

For example, if sys1 and sys2 ar e t wo LTI ar r ays and

sys = op(sys1,sys2)

t hen t he kt h model in t he r esult ing LTI ar r ay sys is obt ained by adding t he kt h

models in sys1 t o t he kt h model in sys2

sys(:,:,k) = sys1(:,:,k) + sys2(:,:,k)

You can also apply any of t he r esponse plot t ing funct ions such as step, bode,

and nyquist descr ibed in Chapt er 5, “Model Analysis Tools,” t o LTI ar r ays.

These plot t ing funct ions ar e also applied on a model by model basis. See “The

Right -Click Menu for LTI Ar r ays” on page 6-28 for infor mat ion on using t he

model select or for LTI ar r ays on r esponse plot s.

4 Arrays of LTI Models

4-26

Example: Addition of Two LTI Arrays

The following diagr am illust r at es t he addit ion of t wo 3-by-1 LTI ar r ays

sys1+sys2.

Figure 4-8: The Addition of Two LTI Arrays

The summat ion of t hese LTI ar r ays

sys = sys1+sys2

is equivalent t o t he following model-by-model summat ion.

for k = 1:3

sys(:,:,k)=sys1(:,:,k) + sys2(:,:,k)

end

2s 6.5 +

s

2

6.5s 9 + +

---------------------------------

1

s 4.5 +

-----------------

1

s 2.5 +

-----------------

sys2

sys1

+ =

sys

sys1(:,:,3)

sys1(:,:,2)

sys2(:,:,3) sys(:,:,3)

sys(:,:,2)

2. 1

s 4 +

------------

sys2(:,:,2)

2.5s 8.25 +

s

2

6.8s 11.31 + +

--------------------------------------------

sys(:,:,1)

=

=

1.5

s 3.9 +

-----------------

sys2(:,:,1)

+

+

+

1

s 2.9 +

-----------------

sys1(:,:,1)

1

s 2 +

------------

3.15 9.25 +

s

2

6.5s 10 + +

------------------------------------

=

Operations on LTI Arrays

4-27

Not e t hat :

•Each model in sys1 and sys2 must have t he same number of input s and

out put s. This is r equir ed for t he addit ion of t wo LTI ar r ays.

•The lengt hs of t he ar r ay dimensions of sys1 and sys2 must mat ch.

Dimension Requirements

In gener al, when you apply any of t hese basic oper at ions t o t wo or mor e LTI

ar r ays:

•The I/O dimensions of each of t he LTI ar r ays must be compat ible wit h t he

r equir ement s of t he oper at ion.

•The lengt hs of ar r ay dimensions must mat ch.

The I/O dimensions of each model in t he r esult ing LTI ar r ay ar e det er mined by

t he oper at ion being per for med. See Chapt er 3, “Oper at ions on LTI Models,” for

r equir ement s on t he I/O dimensions for t he var ious oper at ions.

For example, if sys1 and sys2 ar e bot h 1-by-3 ar r ays of LTI models wit h t wo

input s and t wo out put s, and sys3 is a 1-by-3 ar r ay of LTI models wit h t wo

out put s and 1 input , t hen

sys1 + sys2

is an LTI ar r ay wit h t he same dimensions as sys1 and sys2.

sys1 * sys3

is a 1-by-3 ar r ay of LTI models wit h t wo out put s and one input , and

[sys1,sys3]

is a 1-by-3 ar r ay of LTI models wit h t wo out put s and t hr ee input s.

Special Cases for Operations on LTI Arrays

Ther e ar e some special cases in applying oper at ions t o LTI ar r ays.

Consider applying any binar y oper at ion called op (such as +, –, or *) t o an LTI

ar r ay sys1

sys = op(sys1,sys2)

4 Arrays of LTI Models

4-28

wher e sys, t he r esult of t he oper at ion, is an LTI ar r ay wit h t he same ar r ay

dimensions as sys1. You can use shor t cut s for coding sys = op(sys1,sys2) in

t he following cases:

•For oper at ions t hat apply t o LTI ar r ays, sys2 does not have t o be an ar r ay.

It can be a single LTI model (or a gain mat r ix) whose I/O dimensions sat isfy

t he compat ibilit y r equir ement s for op (wit h t hose of each of t he models in

sys1). In t his case, op applies sys2 t o each model in sys1, and t he kt h model

in sys sat isfies

sys(:,:,k) = op(sys1(:,:,k),sys2)

•For ar it hmet ic oper at ions, such as +, *, /, and \, sys2 can be eit her a single

SISO model, or an LTI ar r ay of SISO models, even when sys1 is an LTI ar r ay

of MIMO models. This special case r elies on MATLAB’s scalar expansion

capabilit ies for ar it hmet ic oper at ions.

- When sys2 is a single SISO LTI model (or a scalar gain), op applies sys2

t o sys1 on an ent r y-by-ent r y basis. The ijt h ent r y in t he kt h model in sys

sat isfies

sys(i,j,k) = op(sys1(i,j,k),sys2)

- When sys2 is an LTI ar r ay of SISO models (or a mult idimensional ar r ay

of scalar gains), op applies sys2 t o sys1 on an ent r y-by-ent r y basis for each

model in sys.

sys(i,j,k) = op(sys1(i,j,k),sys2(:,:,k))

Examples of Operations on LTI Arrays with Single LTI Models

Suppose you want t o cr eat e an LTI ar r ay cont aining t hr ee models, wher e, for

in t he set , each model has t he for m τ 1.1 1.2 1.3 , , { } H

τ

s ( )

H

τ

s ( )

1

s τ +

----------- 0

1 –

1

s

---

=

Operations on LTI Arrays

4-29

You can do t his efficient ly by fir st set t ing up an LTI ar r ay h cont aining t he

SISO models and t hen using concat enat ion t o for m t he LTI ar r ay H of

MIMO LTI models , . To do t his, t ype

tau = [1.1 1.2 1.3];

for i=1:3 % Form LTI array h of SISO models.

h(:,:,i)=tf(1,[1 tau]);

end

H = [h 0; –1 tf(1,[1 0])]; %Concatenation: array h & single models

size(H)

3x1 array of continuous-time transfer functions

Each transfer function has 2 output(s) and 2 input(s).

Similar ly, you can use append t o per for m t he diagonal appending of each model

in t he SISO LTI ar r ay h wit h a fixed single (SISO or MIMO) LTI model.

S = append(h,tf(1,[1 3])); % Append a single model to h.

specifies an LTI ar r ay S in which each model has t he for m

You can also combine an LTI ar r ay of MIMO models and a single MIMO LTI

model using ar it hmet ic oper at ions. For example, if h is t he LTI ar r ay of t hr ee

SISO models defined above,

[h,h] + [tf(1,[1 0]);tf(1,[1 5])]

adds t he single one-out put , t wo-input LTI model [1/s 1/(s + 5)] t o ever y

model in t he 3-by-1 LTI ar r ay of one-out put , t wo-input models [h,h]. The

r esult is a new 3-by-2 ar r ay of models.

Examples: Arithmetic Operations on LTI Arrays and SISO Models

Using t he LTI ar r ay of one-out put , t wo-input st at e-space models [h,h],

defined in t he pr evious example,

tf(1,[1 3]) + [h,h]

1 s τ + ( ) ⁄

H

τ

s ( ) τ 1.1 1.2 1.3 , , { } ∈

S

τ

s ( )

1

s τ +

----------- 0

0

1

s 3 +

------------

=

4 Arrays of LTI Models

4-30

adds a single SISO t r ansfer funct ion model t o each ent r y in each model of t he

LTI ar r ay of MIMO models [h,h].

Finally,

G = rand(1,1,3,1);

sys = G + [h,h]

adds t he ar r ay of scalar s t o each ent r y of each MIMO model in t he LTI ar r ay

[h,h] on a model-by-model basis. This last command is equivalent t o t he

following for loop.

hh = [h,h];

for k = 1:3

sys(:,:,k) = G(1,1,k) + hh(:,:,k);

end

Other Operations on LTI Arrays

You can also apply t he analysis funct ions, such as bode, nyquist, and step, t o

LTI ar r ays. See Chapt er 5, “Model Analysis Tools,” for mor e infor mat ion on

t hese funct ions.

5

Model Analysis Tools

General Model Characteri st i cs . . . . . . . . . . . 5-2

Model Dynami cs . . . . . . . . . . . . . . . . . . 5-4

St ate -Space Realizati ons . . . . . . . . . . . . . . 5-7

Ti me and Frequency Response . . . . . . . . . . . 5-9

Time Responses . . . . . . . . . . . . . . . . . . . 5-9

Fr equency Response . . . . . . . . . . . . . . . . . 5-11

Plot t ing and Compar ing Mult iple Syst ems . . . . . . . . 5-13

Cust omizing t he Plot Display . . . . . . . . . . . . . . 5-17

Mode l Orde r Re ducti on . . . . . . . . . . . . . . . 5-20

5 Model Analysis Tools

5-2

General Model Characteristics

Gener al model char act er ist ics include t he model t ype, I/O dimensions, and

cont inuous or discr et e nat ur e. Relat ed commands ar e list ed in t he t able below.

These commands oper at e on cont inuous- or discr et e-t ime LTI models or ar r ays

of LTI models of any t ype.

General Model Characteristics Commands

class Display model t ype ('tf', 'zpk', 'ss', or 'frd').

hasdelay Test t r ue if LTI model has any t ype of delay.

isa Test t r ue if LTI model is of specified class.

isct Test t r ue for cont inuous-t ime models.

isdt Test t r ue for discr et e-t ime models.

isempty Test t r ue for empt y LTI models.

isproper Test t r ue for pr oper LTI models.

issiso Test t r ue for SISO models.

ndims Display t he number of model/ar r ay dimensions.

reshape Change t he shape of an LTI ar r ay.

size Out put /input /ar r ay dimensions. Used wit h special

synt ax, size also r et ur ns t he number of st at e

dimensions for st at e-space models, and t he number

of fr equencies in an FRD model.

General Model Characteristics

5-3

This example illust r at es t he use of some of t hese commands. See t he r elat ed

r efer ence pages for mor e det ails.

H = tf({1 [1 –1]},{[1 0.1] [1 2 10]})

Transfer function from input 1 to output:

1

-------

s + 0.1

Transfer function from input 2 to output:

s – 1

--------------

s^2 + 2 s + 10

class(H)

ans =

tf

size(H)

Transfer function with 2 input(s) and 1 output(s).

[ny,nu] = size(H)% Note: ny = number of outputs

ny =

1

nu =

2

isct(H)% Is this system continuous?

ans =

1

isdt(H)% Is this system discrete?

ans =

0

5 Model Analysis Tools

5-4

Model Dynamics

The Cont r ol Syst em Toolbox offer s commands t o det er mine t he syst em poles,

zer os, DC gain, nor ms, et c. You can apply t hese commands t o single LTI models

or LTI ar r ays. The following t able gives an over view of t hese commands.

Wit h t he except ion of norm, t hese commands ar e not suppor t ed for FRD

models.

Model Dynamics

covar Covar iance of r esponse t o whit e noise.

damp Nat ur al fr equency and damping of syst em poles.

dcgain Low-fr equency (DC) gain.

dsort Sor t discr et e-t ime poles by magnit ude.

esort Sor t cont inuous-t ime poles by r eal par t .

norm Nor ms of LTI syst ems ( and ).

pole, eig Syst em poles.

pzmap Pole/zer o map.

zero Syst em t r ansmission zer os.

H

2

L

∞

L

∞

Model Dynamics

5-5

Her e is an example of model analysis using some of t hese commands.

h = tf([4 8.4 30.8 60],[1 4.12 17.4 30.8 60])

Transfer function:

4 s^3 + 8.4 s^2 + 30.8 s + 60

---------------------------------------

s^4 + 4.12 s^3 + 17.4 s^2 + 30.8 s + 60

pole(h)

ans =

–1.7971 + 2.2137i

–1.7971 – 2.2137i

–0.2629 + 2.7039i

–0.2629 – 2.7039i

zero(h)

ans =

–0.0500 + 2.7382i

–0.0500 – 2.7382i

–2.0000

dcgain(h)

ans =

1

[ninf,fpeak] = norm(h,inf)% peak gain of freq. response

ninf =

1.3402 % peak gain

fpeak =

1.8537 % frequency where gain peaks

5 Model Analysis Tools

5-6

These funct ions also oper at e on LTI ar r ays and r et ur n ar r ays. For example, t he

poles of a t hr ee dimensional LTI ar r ay sysarray ar e obt ained as follows.

sysarray = tf(rss(2,1,1,3))

Model sysarray(:,:,1,1)

=======================

Transfer function:

-0.6201 s - 1.905

---------------------

s^2 + 5.672 s + 7.405

Model sysarray(:,:,2,1)

=======================

Transfer function:

0.4282 s^2 + 0.3706 s + 0.04264

-------------------------------

s^2 + 1.056 s + 0.1719

Model sysarray(:,:,3,1)

=======================

Transfer function:

0.621 s + 0.7567

---------------------

s^2 + 2.942 s + 2.113

3x1 array of continuous-time transfer functions.

pole(sysarray)

ans(:,:,1) =

-3.6337

-2.0379

ans(:,:,2) =

-0.8549

-0.2011

ans(:,:,3) =

-1.6968

-1.2452

State-Space Realizations

5-7

State-Space Realizations

The following funct ions ar e useful t o analyze, per for m st at e coor dinat e

t r ansfor mat ions on, and der ive canonical st at e-space r ealizat ions for single

st at e-space LTI models or LTI ar r ays of st at e-space models.

The funct ion ssbal uses a simple diagonal similar it y t r ansfor mat ion

t o balance t he st at e-space dat a . This is accomplished by r educing

t he nor m of t he mat r ix.

Such balancing usually impr oves t he numer ical condit ioning of subsequent

st at e-space comput at ions. Not e t hat conver sions t o st at e-space using ss

pr oduce balanced r ealizat ions of t r ansfer funct ions and zer o-pole-gain models.

By cont r ast , t he canonical r ealizat ions pr oduced by canon, ctrbf, or obsvf ar e

oft en badly scaled, sensit ive t o per t ur bat ions of t he dat a, and poor ly suit ed for

State-Space Realizations

canon Canonical st at e-space r ealizat ions.

ctrb Cont r ollabilit y mat r ix.

ctrbf Cont r ollabilit y st air case for m.

gram Cont r ollabilit y and obser vabilit y gr amians.

obsv Obser vabilit y mat r ix.

obsvf Obser vabilit y st air case for m.

ss2ss St at e coor dinat e t r ansfor mat ion.

ssbal Diagonal balancing of st at e-space r ealizat ions.

A B C , , ( ) T

1 –

AT T

1 –

B CT , , ( ) →

A B C , , ( )

T

1 –

AT T

1 –

B

CT 0

5 Model Analysis Tools

5-8

st at e-space comput at ions. Consequent ly, it is wise t o use t hem only for analysis

pur poses and not in cont r ol design algor it hms.

Time and Frequency Response

5-9

Time and Frequency Response

The Cont r ol Syst em Toolbox cont ains a set of commands t hat pr ovide t he basic

t ime and fr equency domain analysis t ools r equir ed for cont r ol syst em

engineer ing. These commands apply t o any kind of LTI model (TF, ZPK, or SS,

cont inuous or discr et e, SISO or MIMO). You can only apply t he fr equency

domain analysis t ools FRDs. The LTI Viewer pr ovides an int egr at ed gr aphical

user int er face (GUI) t o analyze and compar e LTI models (see Chapt er 6, “The

LTI Viewer ” for det ails).

Time Responses

Time r esponses invest igat e t he t ime-domain t r ansient behavior of LTI models

for par t icular classes of input s and dist ur bances. You can det er mine such

syst em char act er ist ics as r ise t ime, set t ling t ime, over shoot , and st eady-st at e

er r or fr om t he t ime r esponse. The Cont r ol Syst em Toolbox pr ovides funct ions

for st ep r esponse, impulse r esponse, init ial condit ion r esponse, and gener al

linear simulat ions. You can apply t hese funct ions t o single TF, SS, or ZPK

models or ar r ays of t hese t ypes of models. Not e t hat you can simulat e t he

r esponse t o whit e noise input s using lsim and t he funct ion rand (see Using

MATLAB t o gener at e r andom input vect or s.

The funct ions step, impulse, and initial aut omat ically gener at e an

appr opr iat e simulat ion hor izon for t he t ime r esponse plot s. Their synt ax is

step(sys)

impulse(sys)

initial(sys,x0) % x0 = initial state vector

Time Response

impulse Impulse r esponse.

initial Init ial condit ion r esponse.

gensig Input signal gener at or.

lsim Simulat ion of r esponse t o ar bit r ar y input s.

step St ep r esponse.

5 Model Analysis Tools

5-10

wher e sys is any cont inuous or discr et e LTI model or LTI ar r ay. For MIMO

models, t hese commands pr oduce an ar r ay of plot s wit h one plot per I/O

channel (or per out put for initial and lsim). For example,

h = [tf(10,[1 2 10]) , tf(1,[1 1])]

step(h)

pr oduces t he following plot .

The simulat ion hor izon is aut omat ically det er mined based on t he model

dynamics. You can over r ide t his aut omat ic mode by specifying a final t ime

step(sys,10) % simulates from 0 to 10 seconds

or a vect or of evenly spaced t ime samples.

t = 0:0.01:10 % time samples spaced every 0.01 second

step(sys,t)

Time and Frequency Response

5-11

Note: When specifying a t ime vect or t = [0:dt:tf], r emember t he

following const r aint s on t he spacing dt bet ween t ime samples:

•For discr et e syst ems, dt should mat ch t he syst em sample t ime.

•Cont inuous syst ems ar e fir st discr et ized using zer o-or der hold and dt as

sampling per iod, and step simulat es t he r esult ing discr et e syst em. As a

r esult , you should pick dt small enough t o capt ur e t he main feat ur es of t he

cont inuous t r ansient r esponse.

The synt ax step(sys) aut omat ically t akes t hese issues int o account .

Finally, t he funct ion lsim simulat es t he r esponse t o mor e gener al classes of

input s. For example,

t = 0:0.01:10

u = sin(t)

lsim(sys,u,t)

simulat es t he zer o-init ial condit ion r esponse of t he LTI syst em sys t o a sine

wave for a dur at ion of 10 seconds.

Note: You can also implement sever al plot t ing opt ions by using t he

r ight -click menus accessible fr om t he (whit e) plot r egion of all t ime and

fr equency plot s. These opt ions ar e list ed on t he menu. To lear n mor e about t he

r ight -click menus on plot s, see “The Right -Click Menus” on page 6-18

Frequency Response

The Cont r ol Syst em Toolbox pr ovides r esponse-plot t ing funct ions for t he

following fr equency domain analysis t ools:

•Bode plot s

•Nichols char t s

•Nyquist plot s

•Singular value plot s

5 Model Analysis Tools

5-12

In addit ion, t he funct ion margin det er mines t he gain and phase mar gins for a

given SISO open-loop model. These funct ions can be applied t o single LTI

models or LTI ar r ays.

As for t ime r esponse funct ions, t he commands

bode(sys)

nichols(sys)

nyquist(sys)

sigma(sys)

handle bot h cont inuous and discr et e models. These funct ions pr oduce a

fr equency r esponse plot for SISO LTI models, and an ar r ay of plot s in t he

MIMO case. The fr equency gr id used t o evaluat e t he r esponse is aut omat ically

select ed based on t he syst em poles and zer os.

The Bode plot pr oduced by bode plot s t he magnit ude of t he fr equency r esponse

in decibels (dB), as 20*log10(abs(response)). Phase is plot t ed in degr ees.

To set t he fr equency r ange explicit ly t o some int er val [wmin,wmax], use t he

synt ax

bode(sys,{wmin , wmax}) % Note the curly braces

Table 5-1: Frequency Response

Function Name Description

bode Comput es t he Bode plot .

evalfr Comput es t he fr equency r esponse at a single

complex fr equency (not for FRD models).

freqresp Comput es t he fr equency r esponse for a set of

fr equencies.

margin Comput es gain and phase mar gins.

ngrid Applies gr id lines t o a Nichols plot .

nichols Comput es t he Nichols plot .

nyquist Comput es t he Nyquist plot .

sigma Comput es t he singular value plot .

Time and Frequency Response

5-13

For example,

bode(sys,{0.1 , 100})

dr aws t he Bode plot bet ween 0.1 and 100 r adians/second. You can also specify

a par t icular vect or of fr equency point s as in

w = logspace(–1,2,100)

bode(sys,w)

The logspace command gener at es a vect or w of logar it hmically spaced

fr equencies st ar t ing at r ad/s and ending at r ad/s. See

t he r efer ence page for linspace for linear ly spaced fr equency vect or s.

Note: In discr et e t ime, t he fr equency r esponse is evaluat ed on t he unit cir cle

and t he not ion of “fr equency” should be under st ood as follows. The upper half

of t he unit cir cle is par amet r ized by

wher e is t he syst em sample t ime and is called t he Nyquist frequency.

The var iable plays t he r ole of cont inuous-t ime fr equency. We use t his

“equivalent fr equency” as an -axis var iable in all discr et e-t ime fr equency

r esponse plot s. In addit ion, t he fr equency r esponse is plot t ed only up t o t he

Nyquist fr equency because it is per iodic wit h per iod (a phenomenon

known as aliasing).

Note: An easy way t o implement t hese r esponse-plot t ing funct ions is

t hr ough t he LTI Viewer. See Chapt er 6, “The LTI Viewer ” for mor e

infor mat ion.

Plotting and Comparing Multiple Systems

The LTI Viewer pr ovides one met hod of plot t ing var ious r esponses for mult iple

models. See Chapt er 6, “The LTI Viewer ” t o see how t o accomplish t his. You can

also use t he command line r esponse-plot t ing funct ions t o plot t he r esponse of

10

1 –

0.1 = 10

2

100 =

z e

j ωT

s

= , 0 ω ω

N

π

T

s

------ = ≤ ≤

T

s

ω

N

ω

x

ω

N

2ω

N

5 Model Analysis Tools

5-14

sever al LTI models on a single plot . To do so, invoke t he cor r esponding

command line funct ion using t he list sys1,..., sysN of models as t he input s.

step(sys1,sys2,...,sysN)

impulse(sys1,sys2,...,sysN)

...

bode(sys1,sys2,...,sysN)

nichols(sys1,sys2,...,sysN)

...

All models in t he ar gument list s of any of t he r esponse plot t ing funct ions

(except for sigma) must have t he same number of input s and out put s. To

differ ent iat e t he plot s easily, you can also specify a dist inct ive color /linest yle/

mar ker for each syst em just as you would wit h t he plot command. For

example,

bode(sys1,’r’,sys2,’y--’,sys3,’gx’)

plot s sys1 wit h solid r ed lines, sys2 wit h yellow dashed lines, and sys3 wit h

gr een x mar ker s.

You can plot r esponses of mult iple models on t he same plot . These models need

not be all cont inuous-t ime or all discr et e-t ime.

Time and Frequency Response

5-15

The following example compar es a cont inuous model wit h it s zer o-or der -hold

discr et izat ion.

sysc = tf(1000,[1 10 1000])

sysd = c2d(sysc,0.2) % ZOH sampled at 0.2 second

step(sysc,'--',sysd,'-') % compare step responses

5 Model Analysis Tools

5-16

bode(sysc,'--',sysd,'-') % compare Bode responses

A compar ison of t he cont inuous and discr et ized r esponses r eveals a dr ast ic

under sampling of t he cont inuous syst em. Specifically, t her e ar e hidden

oscillat ions in t he discr et ized t ime r esponse and aliasing conceals t he

cont inuous-t ime r esonance near 300 r ad/sec.

Time and Frequency Response

5-17

Customizing the Plot Display

You can plot dat a gener at ed by sever al r esponse analysis funct ions applied t o

one or sever al LTI models, as well as your own dat a. Ther e ar e sever al ways

you can cust omize how you display plot s:

•St or e t he t ime or fr equency r esponse dat a in MATLAB ar r ays by invoking

r esponse analysis funct ions such as step, and bode wit h out put ar gument s

[y,t] = step(sys)

[mag,phase,w] = bode(sys)

[re,im,w] = nyquist(sys)

and use t he plot command t o display t he r esult .

•Use t he subplot and hold commands t o plot sever al set s of dat a in a single

figur e window.

•Use t he plot configur at ion menu in t he LTI Viewer for t ime and fr equency

r esponses of LTI models. For mor e infor mat ion, see “Viewer Configur at ion

Window” on page 6-39.

5 Model Analysis Tools

5-18

For example, t he following sequence of commands displays t he Bode plot , st ep

r esponse, pole/zer o map, and some addit ional dat a in a single figur e window.

h = tf([4 8.4 30.8 60],[1 4.12 17.4 30.8 60]);

subplot (121)

bode(h)

subplot(222)

bode(h)

subplot(224)

bode(h)

Time and Frequency Response

5-19

Anot her example is

subplot(221)

bode(h)

subplot(222)

step(h)

subplot(223)

pzmap(h)

subplot(224)

plot(rand(1, 100)) % any data can go here

title('Some noise')

Note: Each of t he plot s gener at ed by r esponse analysis funct ions in t hese

figur es (her e, bode, step, and pzmap) has it s own r ight -click menu (similar t o

t hose in t he LTI viewer. For mor e infor mat ion, see “The Right -Click Menus” on

page 6-18.

5 Model Analysis Tools

5-20

Model Order Reduction

You can der ive r educed-or der models wit h t he following commands.

Use minreal t o delet e uncont r ollable or unobser vable st at e dynamics in

st at e-space models, or cancel pole/zer o pair s in t r ansfer funct ions or

zer o-pole-gain models. Use sminreal t o r emove any st at es fr om a model t hat

don’t affect t he I/O r esponse. For alr eady minimal models, you can fur t her

r educe t he model or der using a combinat ion of balreal and modred. See t he

cor r esponding Refer ence pages for det ails.

Model Order Reduction

balreal Input /out put balancing.

minreal Minimal r ealizat ion or pole/zer o cancellat ion.

modred St at e delet ion in I/O balanced r ealizat ion.

sminreal St r uct ur ally minimal r ealizat ion

6

The LTI Viewer

Introduct i on . . . . . . . . . . . . . . . . . . . . 6-2

Ge tt i ng Started Usi ng t he LTI Vi ewer: An Example . . 6-4

The LTI Vi ewer Me nus . . . . . . . . . . . . . . . 6-15

The Ri ght -Click Menus . . . . . . . . . . . . . . . 6-18

The LTI Vi ewer Tools Menu . . . . . . . . . . . . . 6-39

Si mulink LTI Vi ewer . . . . . . . . . . . . . . . . 6-48

6 The LTI Viewer

6-2

Introduction

The LTI Viewer is a gr aphical user int er face for viewing and manipulat ing t he

r esponse plot s of LTI models.

You can display t he following plot t ypes for LTI models using t he LTI Viewer :

•St ep r esponse (only for TF, SS, or ZPK models)

•Impulse r esponse (only for TF, SS, or ZPK models)

•Bode plot

•Nyquist plot

•Nichols char t

•Singular values of t he fr equency r esponse

•Poles and zer os (only for TF, SS, or ZPK models)

•LTI model r esponse t o a gener al input (only for TF, SS, or ZPK models)

•Init ial st at e LTI r esponse (only for SS models)

The LTI Viewer displays up t o six of t hese differ ent r esponse analysis plot

t ypes simult aneously. You can also analyze t he r esponse plot s of sever al LTI

models at once. However , in or der t o analyze models wit h differ ent number s of

input s and out put s, you must display t hem in separ at e LTI Viewer s.

A special ver sion of t he LTI Viewer can also be used t o analyze Simulink

models. The oper at ion of t he Simulink LTI Viewer is discussed at t he end of

t his chapt er in “Simulink LTI Viewer ” on page 6-48.

Functionality of the LTI Viewer

The basic funct ion of t he LTI Viewer is t o display t he plot s of LTI model

r esponses. Sever al menus ar e included for oper at ions such as impor t ing models

int o t he LTI Viewer or pr int ing r esponse plot s. In addit ion t o t hese dat a

oper at ions, you can manipulat e t he LTI Viewer r esponse plot s in sever al ways,

including:

•Change t he t ype of plot being displayed in each plot r egion of t he LTI Viewer

•Toggle on and off t he r esponse plot s of individual LTI models loaded in t he

LTI Viewer

•Display r esponse plot char act er ist ics for a given plot t ype, such as set t ling

t ime for a st ep r esponse plot

Introduction

6-3

•Zoom in on or out fr om t he individual displayed plot s

•Toggle t he gr id on or off on a plot

•Select which I/O channels t he LTI Viewer displays for MIMO models in each

plot

•For a given plot t ype, select how t he LTI Viewer displays t he I/O channels for

MIMO models

•Select which models of an LTI ar r ay you want displayed in t he LTI Viewer

by indexing int o dimensions or model char act er ist ics

•Cont r ol plot char act er ist ics such as t he r anges for t ime and fr equency used

in var ious t ypes of plot s

•Cont r ol linest yle pr efer ences such as t he color and mar ker for each model

r esponse plot t ed

•Init ialize t he LTI Viewer fr om t he command line t o display mult iple plot

t ypes (e.g., Bode plot and st ep r esponse) simult aneously

•Cont r ol of t he number of r esponse plot r egions t hat appear (one t o six

r egions) in t he LTI Viewer

Many of t hese feat ur es ar e accessed and cont r olled t hr ough plot -specific

r ight -click menus.

6 The LTI Viewer

6-4

Getting Started Using the LTI Viewer: An Example

This sect ion cont ains a br ief int r oduct ion t o t he LTI Viewer t hr ough an

example t hat leads you t hr ough t he following st eps:

1 Load t wo LTI models int o t he LTI Viewer , init ialized wit h t he st ep r esponses

and Bode plot s of bot h models.

2 Use t he r ight -click menu t o display mar ker s for

- The set t ling t ime on t he st ep r esponses

- The peak magnit ude r esponse on t he Bode plot s

3 Use t he mouse t o display t he values of t hese r esponse char act er ist ics on t he

plot s.

4 Impor t a t hir d LTI model t o t he LTI Viewer for compar ison.

5 Use t he r ight -click menu t o zoom in on a plot .

Suppose you have a set of compensat or s you’ve designed t o cont r ol a syst em,

and you want t o compar e t he closed-loop st ep r esponses and Bode plot s. You

can do t his wit h t he LTI Viewer .

A sample set of closed-loop t r ansfer funct ion models ar e included (along wit h

some ot her models) in t he MAT-file LTIexamples.mat. Type

load LTIexamples

In t his example, you analyze t he r esponse plot s of t hese t hr ee t r ansfer funct ion

models.

Gcl1, Gcl2, Gcl3

Transfer function:

4 s^3 + 8.4 s^2 + 30.8 s + 60

---------------------------------------

s^4 + 4.12 s^3 + 17.4 s^2 + 30.8 s + 60

Getting Started Using the LTI Viewer: An Example

6-5

Transfer function:

2 s^3 + 1.2 s^2 + 15.1 s + 7.5

----------------------------------------

s^4 + 2.12 s^3 + 10.2 s^2 + 15.1 s + 7.5

Transfer function:

1.2 s^3 + 1.12 s^2 + 9.1 s + 7.5

----------------------------------------

s^4 + 1.32 s^3 + 10.12 s^2 + 9.1 s + 7.5

Initializing the LTI Viewer with Multiple Plots

For a given LTI model, you can use t he LTI Viewer t o simult aneously display

mult iple r esponse plot t ypes, such as t he Bode plot and t he st ep r esponse. You

can also init ialize t he LTI Viewer t o display t he plot s of sever al differ ent

models at once. The gener al synt ax for init ializing t he LTI Viewer t o plot up t o

six plot t ypes is

ltiview({'type1';'type2';...;'typek'},sys1,...,sysn)

wher e:

•{'type1';'type2';...;'typek'} is a cell ar r ay list ing up t o six st r ings for

t he names of t he plot t ypes ( ).

•sys1, ..., sysn is a list of t he MATLAB wor kspace var iable names for t he

syst ems whose r esponses you want t o init ially display in t he LTI Viewer .

The plot t ype names can be any of t he following.

Plot Type Description

bode Bode plot

impulse Impulse r esponse

initial Init ial st at e r esponse for SS models

lsim LTI model r esponse t o gener al input

nichols Nichols char t

nyquist Nyquist plot

k 6 ≤

6 The LTI Viewer

6-6

Note: When you init ialize t he LTI Viewer wit h lsim or initial, t hese plot

t ypes r equir e some ext r a ar gument s. For mor e infor mat ion on t he synt ax for

calling ltiview, see ltiview on page 11-133.

To load t he t wo models Gcl1, and Gcl2 int o t he LTI Viewer so t hat it displays

t he st ep r esponses and Bode plot s of bot h models, t ype

ltiview({'step';'bode'},Gcl1,Gcl2)

This opens t he following LTI Viewer .

pzmap Plot of poles and zer os

sigma Singular values of t he fr equency r esponse

step St ep r esponse

Plot Type Description

Getting Started Using the LTI Viewer: An Example

6-7

Right-Click Menus: Setting Response Characteristics

To access t he individual r esponse plot cont r ols, use t he r ight -click menus

available fr om any of t he plot r egions displayed. These r ight -click menus var y,

depending on if t he LTI Viewer is displaying t he r esponse plot s of SISO models,

MIMO models, or LTI ar r ays. Some of t he menu it ems ar e also plot t ype

dependent .

For example, suppose you want t o mar k t he set t ling t ime on t he st ep r esponses,

and t he peak magnit ude r esponse on t he Bode plot s. To do t his:

Two response curves

are plotted on each

of the two plot

regions.

Right-click on

either plot region

to see the

response plot

menus.

The File menu has

several items,

including ones that

allow you to import

models and print

plots.

The Tools menu items

allow you to

reconfigure the plot

arrangement and set

general plot and

linestyle preferences

for this open LTI

Viewer.

Plot region for the step response

Plot region for the

Bode plot

Status bar provides

useful information.

6 The LTI Viewer

6-8

1 Right -click anywher e in t he plot r egion of t he st ep r esponse plot s. This opens

t he following menu list in t he plot r egion.

Figure 6-1: The Right-Click Menu for SISO Models

2 Place your mouse point er on t he Characteri sti cs menu it em, and select

Settli ng Ti me wit h your left mouse but t on.

Figure 6-2: The Step Response Characteristics Submenu

3 Right -click anywher e in t he plot r egion of t he Bode plot s t o open a r ight -click

menu.

4 Place your mouse point er on t he Characteri sti cs menu it em.

The submenu it ems of t he Characteri s ti cs menu for t he Bode plot ar e

differ ent t han t hose of t he Characteri sti cs menu for t he st ep r esponse

r ight -click menu.

Figure 6-3: Bode Plot Characteristics Submenu

5 Select Pe ak Res pons e wit h your left mouse but t on.

Getting Started Using the LTI Viewer: An Example

6-9

Your LTI Viewer should now look like t his.

Not ice t hat t her e is one set t ling t ime or peak magnit ude mar ker for each LTI

model displayed in t he LTI Viewer .

Displaying Response Characteristics on a Plot

To display t he values of any plot char act er ist ic mar ked on a plot :

1 Click on t he mar ker

2 Hold t he left or r ight mouse but t on down t o r ead t he values off t he plot .

6 The LTI Viewer

6-10

Not e t hat you can:

•Use eit her t he r ight or t he left mouse but t on when you select a mar ker on a

plot .

•Left -click anywher e on a par t icular plot line t o see t he r esponse values of

t hat plot at t hat point .

•Right -click anywher e on a plot line t o see I/O and model infor mat ion.

Hold the mouse

button down on the

marker to display the

values.

Getting Started Using the LTI Viewer: An Example

6-11

Importing Models

If t he closed-loop models Gcl1 and Gcl2 do not meet your specificat ions, you

may want t o design anot her compensat or at t he command line, and impor t t he

r esult ing closed-loop model Gcl3 for compar ison:

1 Select Import fr om t he Fi le menu. This opens a br owser list ing all of t he LTI

models cur r ent ly available in t he MATLAB wor kspace.

This br owser allows you t o copy LTI models fr om t he MATLAB wor kspace

int o t he LTI Viewer workspace. LTI model var iable names have t o be in t he

LTI Viewer wor kspace befor e you can analyze t he r esponse plot s of t hese

models using t he LTI Viewer .

2 Select Gcl3 fr om t he list of models in t he wor kspace br owser .

3 Select OK.

The LTI Viewer now shows t he st ep r esponse of Gcl3 in addit ion t o t hose of

Gcl1 and Gcl2.

To multiselect individual

models, select one model and

hold down the Control key

while selecting additional

models.

To deselect any selected models, hold down

the control key while you click on the

highlighted model names.

To multiselect a list of several models in a row,

select the first model and hold down the Shift key

while selecting the last model you want in the

list.

6 The LTI Viewer

6-12

Note: A given LTI Viewer can only be used t o analyze models wit h t he same

number of input s and out put s. If you want t o analyze models wit h differ ent

number s of input s or out put s, you must impor t t hese int o separ at e LTI

Viewer s. See “Opening a New LTI Viewer ” on page 6-16 for mor e infor mat ion.

Zooming

Wit h t hr ee models loaded int o t he LTI Viewer , you may want t o zoom in on one

r egion of a given plot , in or der t o inspect t he r esponse behavior in t hat r egion

mor e closely. For example, let ’s zoom in on t he st ep r esponses of t hese t hr ee

models in t he vicinit y of 4.5 seconds on t he t ime axis.

To zoom in on a r egion on any of t he plot s, use t he Zoom menu it em available

fr om t he r ight -click menu:

1 Right -click on a plot r egion (in t his case, t he st ep r esponse) t o open t he

r ight -click menu.

2 Move your mouse point er over t he Zoom menu.

Your menu looks like t his.

3 Select X-Y t o zoom in bot h t he hor izont al and ver t ical dir ect ions.

4 Use your mouse t o cr eat e t he r ect angular r ubber band t hat indicat es t he

zoom r egion:

Select In-X and a horizontal rubber band is

available to select the zoom region.

Select In-Y and a vertical rubber band is

available to select the zoom region.

Select X-Y and a rectangular rubber band is

available to select the zoom region.

Getting Started Using the LTI Viewer: An Example

6-13

a Point your mouse t o any cor ner of t he r ect angle of t he r egion you want t o

zoom in on.

b Left -Click t her e, and hold t he mouse but t on down.

c Dr ag t he mouse point er unt il t he r ect angle cover s t he r egion you want t o

zoom in on.

d Release your mouse.

For t his example, zoom in ar ound t he r egion near 4.5 seconds on t he st ep

r esponse plot .

Your st ep r esponse plot looks like t his as you select t he zoom r egion.

6 The LTI Viewer

6-14

Aft er r eleasing t he mouse on t he zoom r egion, t he LTI Viewer looks like t his.

Not ice t hat you’ve only zoomed on t he st ep r esponse plot ; t he Bode plot r emains

unchanged.

Note: To zoom out, i.e., t o r ever t back t o t he or iginal coor dinat e limit s t hat

wer e in place befor e you zoomed, follow t he st eps for zooming again, only t his

t ime select Out fr om t he Zoom menu.

The LTI Viewer Menus

6-15

The LTI Viewer Menus

The LTI Viewer has t hr ee main menus:

•Fi le

•Tools

•Help

The Fi le menu pr ovides feat ur es per t inent t o br inging dat a in and out of t he

LTI Viewer . The Help pr ovides help on t he LTI Viewer feat ur es. The Fi le and

Help menus ar e cover ed in t his sect ion. The Tools menu allows you t o cont r ol

cer t ain feat ur es common t o all of t he plot s. You can r ead about t he Tools menu

it ems in “The LTI Viewer Tools Menu” on page 6-39.

The File Menu

The Fi le menu gives you t h following opt ions:

•New Vi ewer—Open a new LTI Viewer .

•Import—Br ing in new models int o t he LTI Viewer wor kspace.

•Export—Expor t models t o t he MATLAB wor kspace or t o a disk.

•Dele te Systems —Delet e some or all of t he LTI models in t he LTI Viewer

wor kspace.

•Refres h Syst ems—Updat e t he LTI Viewer wit h any changes you made at

t he MATLAB command line t o models in t he LTI Viewer wor kspace.

•Pri nt—Gener at e a har dcopy of t he LTI model r esponse.

•Pri nt to Fi gure—Send t he LTI Viewer plot s t o a MATLAB figur e window.

•Close Vi ewer—Close an open LTI Viewer .

Det ails on some of t hese menu it ems ar e descr ibed below.

Importing a New Model into the LTI Viewer Workspace

LTI models in t he MATLAB wor kspace can only be viewed by t he LTI Viewer

if t hey ar e in t he LTI Viewer wor kspace. Ther e ar e t wo ways of loading models

int o t he LTI Viewer wor kspace:

•Load t hem int o t he LTI Viewer wor kspace when you open t he LTI Viewer .

•Impor t t hem int o an open LTI Viewer using t he br owser t hat is opened when

you select t he Import menu it em under t he Fi le menu.

6 The LTI Viewer

6-16

For dir ect ions for loading LTI models int o t he LTI Viewer wor kspace when you

open it , see “Init ializing t he LTI Viewer wit h Mult iple Plot s” on page 6-5. For

dir ect ions for impor t ing models int o t he wor kspace of an open LTI Viewer , see

“Impor t ing Models” on page 6-11.

Opening a New LTI Viewer

The New Vi e wer opt ion in t he Fi le menu enables you t o init ialize a new LTI

Viewer . This is t he same as t yping ltiview at t he MATLAB pr ompt . You can

use t his feat ur e t o compar e r esponse plot s of LTI models t hat don’t have t he

same number s of input s and out put s.

Refreshing Systems in the LTI Viewer Workspace

If you modify t he char act er ist ics of an LTI model in t he MATLAB wor kspace,

select Refres h Syst ems in t he Fi le menu t o updat e t he models in t he LTI

Viewer wor kspace wit h t he changes you made.

Printing Response Plots

To pr int your r esponse plot s, go t o t he Fi le menu:

•Choose t he Pri nt opt ion t o obt ain a har dcopy.

•Choose t he Pri nt to Fi gure opt ion t o send t he plot s t o a MATLAB figur e

window.

The Pri nt opt ion allows you t o pr int t he plot s, exact ly as you see t hem

displayed in t he LTI Viewer . The Pri nt to Fi gure opt ion allows you t o use t he

Plot Tools feat ur e of MATLAB figur e windows t o edit t he plot s befor e pr int ing

t hem.

Getting Help

You can obt ain inst r uct ions on how t o use t he LTI Viewer dir ect ly fr om t he

He lp menu.

Static Help

The Help menu cont ains t hr ee submenus:

•Overvi ew

•Re sponse Pre fe rence s

•Li ne style Pre fe rence s

The LTI Viewer Menus

6-17

The fir st submenu, Overvi e w, opens t he help t ext descr ibing how t o use t he

LTI Viewer menus and r ight -click menus t hat cont r ol t he LTI Viewer . The

r emaining help menu it ems per t ain t o LTI Viewer cont r ols you access fr om t he

Tools menu: t he Re spons e Prefere nces and Li ne style Pre ferences windows.

These windows pr ovide addit ional t ools for manipulat ing t he syst em

r esponses. See t he “Response Pr efer ences” on page 6-40” and t he “Linest yle

Pr efer ences” on page 6-44” sect ions for mor e infor mat ion on t he Response

Prefe rence s and Li nes tyle Prefe rence s windows.

Interactive Help

The st at us bar at t he bot t om of t he LTI Viewer pr ovides you wit h inst r uct ions,

hint s, and er r or messages as you pr oceed t hr ough your analysis. In gener al,

you can consult t he st at us bar t o lear n:

•If you have t r ied t o per for m an unsuppor t ed funct ion

•If a funct ion has successfully been complet ed

•If addit ional infor mat ion on t he use of an LTI Viewer cont r ol is available

6 The LTI Viewer

6-18

The Right-Click Menus

You can access most of t he cont r ols for t he individual r esponse plot s displayed

by t he LTI Viewer t hr ough t he r ight -click menus locat ed in any plot r egion.

Ther e is one r ight -click menu per plot r egion displayed on t he LTI Viewer .

These menus var y slight ly, depending on t he model dimensions and plot t ype:

•The menu it ems t hat appear on t he plot r egions of t he r esponses for SISO

models ar e t he basic r ight -click menu it ems.

•Addit ional menu it ems appear when you ar e displaying t he plot s of MIMO

LTI models or LTI ar r ays.

You can’t access t he r ight -click menu for t he LTI Viewer plot s unt il at least one

r esponse plot is displayed in t he LTI Viewer .

The Right-Click Menu for SISO Models

If you have not alr eady done so, load t he t hr ee SISO LTI models int o t he LTI

Viewer wor kspace. You can do t his by t yping

load LTIexamples

ltiview({'step';'bode'},Gcl1,Gcl2,Gcl3)

Once you have loaded models int o t he LTI Viewer , r ight -click on t he plot r egion

of t he st ep r esponse plot . The following menu appear s in t he plot r egion.

Figure 6-4: The Right-Click Menu for SISO Models

Each arrow next to a menu

item opens a submenu list

when you select the menu

item.

The Right-Click Menus

6-19

This is t he r ight -click menu for SISO models. These menu it ems cont r ol t he LTI

Viewer plot s for all models:

•Plot Type —You can choose which plot t ype you want displayed fr om t his list

of nine plot t ypes.

Figure 6-5: Plot Type Submenu

•Systems—The Systems submenu list s t he models in t he LTI Viewer

wor kspace. You can choose t o display or hide t he plot s of LTI models in t he

LTI Viewer wor kspace fr om t his menu it em:

Figure 6-6: The Systems Submenu for Three Models

- The legend for t he individual r esponse cur ves (descr ibed as linest yle,

mar ker t ypes, or color pr efer ences) is indicat ed next t o t he name of each

model. For infor mat ion on how t o modify t hese pr efer ences, see “Linest yle

Pr efer ences” on page 6-44.

- Check mar ks appear next t o t he names of models whose plot s ar e

displayed. Names of models t hat do not have a check mar k next t o t hem

The check mark next to the plot type indicates your

selection for the type of plot displayed. You can

select from any of the items on this list.

The color (in parentheses) is a

legend item that indicates the

style in which each model’s

response plot is displayed.

The check mark next to

a model name indicates

that the model’s

response is displayed

on the plot that brought

up this menu.

LTI model name

6 The LTI Viewer

6-20

ar e in t he LTI Viewer wor kspace, but t heir r esponses ar e not displayed on

t he plot associat ed wit h t he open menu.

- You can select any model in t he list wit h your mouse t o t oggle on (or off)

t he visibilit y of it s r esponse cur ve in t he select ed plot r egion.

•Characteri sti cs —You can t oggle on and off t he opt ion t o display a mar ker

for var ious r esponse char act er ist ics for each plot t ype. For mor e infor mat ion,

see “Displaying Response Char act er ist ics on a Plot ” on page 6-9.

Figure 6-7: The Characteristics Submenu for the Step Response

•Zoom—You can zoom in or out of a given plot using t he four submenu it ems

in t he Zoom menu. For mor e infor mat ion, see “Zooming” on page 6-12.

•Gri d—You can t oggle a gr id on and off by select ing t his menu it em.

Selecting a Menu Item

To select any menu it em on t he r ight -click menu:

1 Move your mouse over t he menu it em unt il it becomes highlight ed, and it s

submenu (if it has one) is displayed.

2 Click on any (sub)menu it em you want t o select :

a For opt ions menus such as Characteri s ti cs and Systems: If t he menu

it em does not have a check next t o it , select ing t he menu it em will

pr oduce a check next t o t hat it em. Select ing a checked it em unchecks t hat

menu select ion (deselect s t hat menu opt ion).

b For exclusive menus such as Plot Type, one menu it em must be checked,

and select ing a plot t ype ot her t han t he one checked changes t he plot t ype

accor ding t o your select ion.

A check mark indicates that the characteristic is

displayed on the plot. You can multiselect these submenu

items one at a time, by re-opening the right-click menu.

The Right-Click Menus

6-21

Note: To mult iselect submenu it ems (such as in t he Characteri sti cs or t he

Syste ms menus), r e-open t he r ight -click menu for each submenu it em

select ion.

The Right-Click Menu for MIMO Models

When you load a MIMO model int o t he LTI Viewer , t he r ight -click menu has a

few mor e opt ions t han t he r ight -click menu for SISO models does. These

addit ional menu it ems ar e:

•Axes Groupi ng for gr ouping I/O channels

•Sele ct I/Os for hiding t he plot s fr om some I/O channels

To see t hese menu it ems, you much have a MIMO model loaded in t he LTI

Viewer wor kspace.

The model ssF8 in t he file LTIexamples.mat is a MIMO st at e-space model for

an F-8 air cr aft . This model has t wo input s and t wo out put s. The InputNames

have been assigned as Elevator and Flaperon, and t he OutputNames have been

assigned as Acceleration and FlightPath.

If you haven’t alr eady done so, load t his model int o t he MATLAB wor kspace by

t yping

load LTIexamples

Now t hat ssF8 is in t he MATLAB wor kspace, you can load it int o an LTI Viewer

wor kspace. To open a new LTI Viewer t hat displays t he four nyquist plot s for

each of t he I/O channels of t his model, t ype

ltiview('nyquist',ssF8)

6 The LTI Viewer

6-22

Your LTI Viewer looks like t his.

Figure 6-8: Nyquist Plots of the Four I/O Responses in ssF8

Not ice t hat t he I/O names for t his model appear on t he Nyquist plot . Each of

t he four plot s displayed r epr esent s t he I/O r esponse fr om a single input t o a

single out put .

This plot region is

displayed as a grid

of four distinct

plots: one for each

I/O response of

ssF8.

The Right-Click Menus

6-23

Right -click on any par t of t he plot r egion (anywher e on t he gr id of plot s). This

opens t he following menu.

Figure 6-9: The Right-Click Menu for MIMO Models

The Axes Grouping Submenu

The Axes Groupi ng submenu is as follows.

When you fir st load a MIMO model int o t he LTI Viewer , it displays each I/O

r esponse cur ve in a separ at e por t ion of t he plot r egion. For example, if you have

t wo input s and t hr ee out put s, t he LTI Viewer init ially displays a t hr ee-by-t wo

gr id of six separ at e plot s. In t his example, a t wo-by-t wo gr id of four separ at e

plot s is displayed in t he plot r egion. This init ial (default ) Axe s Groupi ng

set t ing is indicat ed by (checked) submenu it em, None.

The right-click menu for MIMO models has two extra menu

items: Axes Grouping and Select I/Os.

Default Axes Grouping setting: Each I/O

response is displayed individually.

6 The LTI Viewer

6-24

You can use t he Axe s Groupi ng submenu t o r econfigur e t he gr ouping of t hese

I/O r esponse cur ves wit h t he following submenu it ems.

•Inputs: The r esponse cur ves fr om all of t he input s t o a given out put ar e

plot t ed in t he same por t ion of t he plot r egion. Ther e ar e as many separ at e

por t ions of t he plot r egion displayed as t her e ar e out put s.

Figure 6-10: Axes Grouping: Inputs

The plot region is

divided into two

portions: one for

each output.

The Right-Click Menus

6-25

•Outputs: The r esponse cur ves fr om a given input t o all of t he out put s ar e

plot t ed in t he same por t ion of t he plot r egion. Ther e ar e as many separ at e

por t ions of t he plot r egion displayed as t her e ar e input s.

Figure 6-11: Axes Grouping: Outputs

The plot region is

divided into two

portions: one for

each input.

6 The LTI Viewer

6-26

•All: All of t he I/O r esponse cur ves ar e displayed (gr ouped) in a single plot

r egion.

Figure 6-12: Axes Grouping: All

The Select I/Os Menu Item

The LTI Viewer init ially displays all of t he I/O r esponse cur ves fr om each input

channel t o each out put channel. You can select t he Sele ct I/Os menu it em t o

cust omize t he display wit h r espect t o t he input and out put channels.

The responses

appear all on

the same plot

region.

The Right-Click Menus

6-27

When you select Sele ct I/Os fr om t he r ight -click menu, t he following window

opens.

This I/O Selector window allows you t o cust omize t he I/O channel display for

t he plot s of MIMO models. You can:

•Select any input channel t o display t he r esponses fr om only t hat input .

•Select any out put channel t o display t he r esponses only t o t hat out put .

•Select All t o display t he I/O r esponses fr om all input s t o all out put s.

•Select individual I/O r esponse channels. You can mult iselect channels by

holding down t he Shi ft key while select ing t he channels, or by

r ubber banding a box ar ound a select ed set of I/O r esponse mar ker s on t he

gr id.

For example, select Elevator t o display t he r esponses fr om only t his input .

Not ice t hat t he name of t his input is now highlight ed in r ed in t he I/O Sele ctor

window.

Select all to display the responses from all

I/O channels.

Hold down the Shift key while

selecting individual I/O

response markers to

customize the display.

Select one of these output

channel names to display

only I/O responses to the

selected output.

Select one of these output

channel names to display

only I/O responses to the

selected output.

Select one of these input

channel names to display

only I/O responses from the

selected input.

6 The LTI Viewer

6-28

Wit h t he Axe s Groupi ng set t o None, t he display looks like t his.

Note: To r eset t he Axes Groupi ng t o None, open t he r ight -click menu on

t he plot r egion, and select None .

The Right-Click Menu for LTI Arrays

When you load an LTI ar r ay int o t he LTI Viewer , all models in t he LTI ar r ay

ar e init ially displayed. Using t he Se le ct from LTI Array menu it em available

t o you t hr ough t he r ight -click menu, you can choose t o display t he plot s fr om a

subset of t he models in any LTI ar r ay in t he LTI Viewer wor kspace, while

hiding t he plot s of t he ot her models.

The Select from LTI Array menu it em opens t he Model Selector for LTI

Arrays window.

The Right-Click Menus

6-29

For a given LTI ar r ay in t he LTI Viewer wor kspace, you can use t his int er face

t o display t he plot s of a subset of models in t he LTI ar r ay, using eit her or bot h

of t he following opt ions:

•Indexing int o t he ar r ay dimensions

•Indexing int o t he ar r ay t hr ough design specificat ion cr it er ia

In or der t o have access t o r ight -click menu it em for LTI ar r ays, you must have

at least one LTI ar r ay loaded in t he LTI Viewer wor kspace. For example, t ype

load LTIexamples

ltiview('step',m2d)

m2d is a 2-by-3 ar r ay of t wo-out put , one-input models. Your LTI Viewer looks

like t his.

Not ice t hat for each I/O map in m2d, t he st ep r esponses of all of t he models ar e

plot t ed in t he same plot r egion.

6 The LTI Viewer

6-30

To display t he r esponses of only some of t he models in t he LTI ar r ay, you must

fir st complet e t he following t wo st eps:

1 Right -click anywher e in t he plot r egion t o open t he following r ight -click

menu.

Figure 6-13: Right-Click Menu for LTI Arrays

2 Select t he Se lect from LTI Array menu it em.

The Right-Click Menus

6-31

This opens t he Mode l Selector for LTI Arrays window in t he (default ) Index

i nto Di me ns i ons set up.

Figure 6-14: LTI Array Model Selector for a 2-by-3 Array of Models

The Model Selector for LTI Arrays

For any of t he LTI ar r ays loaded int o t he LTI Viewer wor kspace, you can use

t he Model Selector for LTI Arrays window t o display t he r esponses of only a

subset of t he models in t he LTI ar r ay. To do t his, you must fir st select t he LTI

ar r ay name fr om t he Arrays pull-down t ab.

Each numbered entry

in a given listbox

represents the indices

for each dimension of

the selected LTI array.

Each listbox corresponds to a dimension of the LTI

array. The number of entries in each listbox is the

same as the number of models along the

corresponding dimension.

There are two selection criteria you can

use to index into the LTI array: Index

into Dimensions and Bound on

Characteristics. You can apply either

or both of these methods (at once) to

index in to the LTI array.

This tab lists all LTI arrays

in the LTI Viewer. You

only apply selection

criteria to one LTI array

at a time.

You can use the mouse or the

textbox to select or deselect models

in a listbox that indexes into a

particular dimension. Your choice of

models is reflected in the LTI Viewer

display (once you press OK or

Apply).

You can use

these tabs to

show all of the

models in the LTI

array, or show or

hide selected

ones as you

index into the

dimensions of

the LTI array.

6 The LTI Viewer

6-32

Once you have select ed t he name of an LTI ar r ay in t he Model Selector for

LTI Arrays window, you can select models in t he LTI ar r ay whose r esponse

plot s you want displayed using eit her or bot h of t he following:

•Index int o t he ar r ay dimensions of t he LTI ar r ay (Inde x i nto Di me nsi ons)

•Index int o LTI ar r ay using design specificat ion cr it er ia (Bound on

Characteri sti cs )

Indexing into the Array Dimensions of an LTI Array

To index int o t he ar r ay dimensions of an LTI Ar r ay:

1 Select Index i nto Di mens i ons in t he Se le cti on Cri teri a list box. This it em

is init ially select ed for you by default .

2 Leave t he show selecte d t ab as is (or change it t o hi de s elected). This

allows you t o use your mouse or t he t ext boxes t o index int o each dimension

of t he LTI ar r ay.

3 Select indices of models whose plot s you want displayed (or hidden) using

t he list boxes cor r esponding t o t he dimensions of t he LTI ar r ay by eit her :

- Using your mouse (using t he Control key for mult iselect ion) t o select

model indices fr om each ar r ay dimension of t he LTI ar r ay (fr om each

list box)

- Typing a vect or of indices or any MATLAB expr ession t hat specifies a

vect or of indices in t he t ext box below t he list box

4 Select Apply t o implement your model select ion choice wit hout closing t he

window, or OK t o implement your model select ion choice and close t he

Model Se lector for LTI Arrays window.

Note: Choosing t he show all t ab while in t he Inde xi ng i nto Di mensi ons

select ion cr it er ion is equivalent t o select ing all of t he indices in t he list boxes.

However , any pr evious select ions you made using t he Inde xi ng i nto

Di mens i ons select ion cr it er ion ar e not lost . They can be r einst alled by

applying show sele cte d.

The Right-Click Menus

6-33

For example t o display only t he fir st r ow of models in t he 2-by-3 LTI ar r ay m2d,

eit her :

•Select t he fir st index in t he fir st list box (cor r esponding t o t he fir st dimension

of t he LTI ar r ay) wit h your mouse.

•Type t he vect or [1] in t he t ext box below t he fir st list box.

The following figur e depict t he Model Se lector for LTI Arrays window for

select ing t o display t he r esponses of t he fir st r ow of models in t he LTI ar r ay

m2d.

Figure 6-15: LTI Array Model Selector to Select the First Row of m2d

The next figur e shows t he LTI Viewer display t hat r esult s fr om select ing Apply

or OK.

Select OK or Apply to

implement your LTI array model

6 The LTI Viewer

6-34

Figure 6-16: Step Response of the First Row of Models in m2d

Ther e ar e a var iet y of ways you can index int o t he dimensions of an LTI ar r ay

using t he t ext boxes locat ed below each list box. You can t ype bot h logical

expr essions, or ones t hat define indices dir ect ly.

For example, suppose you have a var iable p defined in t he MATLAB

wor kspace, r epr esent ing a vect or of par amet er s associat ed wit h t he second

dimension of m2d.

p = [1.1 5.3 10]

The var iable p might , for example, r epr esent t hr ee differ ent oper at ing

condit ions for which you cr eat ed t he LTI ar r ay. To select indices specified by

t hese par amet er s in t he second ar r ay dimension of m2d, you can, for example,

t ype t he following under t he second list box.

p>5 % Choose the 2nd and 3rd indices in the 2nd array dim. of m2d

or

find(p<2) % Choose the 1st index in the 2nd array dim. of m2d

The plots of only

three models (as

opposed to the

six models in the

LTI array) are

shown here.

The Right-Click Menus

6-35

Indexing into the LTI Array Using Design Specification Criteria

You can also use sever al plot -specific design cr it er ia t o select t hose models in

t he LTI ar r ay whose r esponses you want displayed. You index int o t he LTI

ar r ay t hr ough t hese design cr it er ia (r esponse plot char act er ist ics) using

Boolean expr essions. To plot select ed models by indexing int o t he LTI ar r ay in

t his manner :

1 Select s how all in t he Inde x i nto Di mensi ons set -up, and select Apply.

This st ep is not r equir ed, but if you don’t do t his, t hen any indexing int o

design specificat ions you per for m applies only t o t he models whose plot s ar e

select ed t o be displayed using Index i nto Di mens i ons.

2 Select Bound on Characte ri sti cs in t he Selecti on Cri teri a list box. The

r ight side of t he int er face now r eflect s t he plot -specific design specificat ion

char act er ist ics available for you t o select models fr om.

Figure 6-17: Selector for LTI Arrays Using Design Specification Criteria

3 Select t he checkbox next t o a design specificat ion char act er ist ic you want t o

index t hr ough.

You can index into specific design criteria by selecting

any (or all) of the checkboxes next to the listed

criteria. This allows you to type MATLAB logical

expressions in the corresponding textboxes.

Always select Apply

or OK to implement

your selection.

6 The LTI Viewer

6-36

4 Posit ion your mouse point er in t he t ext box next t o t he design specificat ion

char act er ist ic.

5 Type a MATLAB r elat ional expr ession in t he t ext box, using $ as a var iable

name in t he expr ession. Not e t hat for ar r ays of MIMO models, you can

consider $ t o be an Ny-by-Nu mat r ix, if each model in t he LTI ar r ay has Ny

out put s and Nu input s. This allows you t o specify differ ent r equir ement s on

differ ent I/O channels.

6 Pr ess Apply t o implement your indexing select ion.

For example, t o display only t he plot of t he model wit h t he maximum r ise t ime

in t he st ep r esponse fr om t he input t o t he fir st out put , t ype

$(1,1) == max($(1,1))

in t he t ext box next t o Ri se Ti me.

Figure 6-18: Specifying Design Criteria to Select Models in the LTI Array

Aft er select ing t he Apply but t on, your LTI Viewer displays only t he st ep

r esponse of t he model wit h t he maximum r ise t ime in t he st ep r esponse fr om

t he input t o t he fir st out put . The r esult of your act ion is displayed on t he st at us

bar .

The Right-Click Menus

6-37

Figure 6-19: Step Response of the Model with the Maximum Rise Time

You can also use any logical expr ession in var iables defined in t he MATLAB

wor kspace t o index int o a specific design cr it er ion. For example, t yping

$(2,1) < 7.25 & $(1,1) > 1.2

next t o Ste ady State (aft er unchecking Ri s e Ti me), displays t he r esponses of

any models for which t he st eady-st at e r esponse has a value less t han 7.25 for

in t he second I/O channel, and gr eat er t han 1.2 in t he fir st .

Suppose you have a design specificat ion r equir ement for each I/O map of each

model of t he LTI ar r ay, and st or e t his r equir ement in a mat r ix q in t he

MATLAB wor kspace. For example, if q is an Ny-by-Nu mat r ix (2-by-1, in t his

case), and N is t he number of models in t he LTI ar r ay (6, in t his case), t hen you

can t ype

N = 6;

Q = repmat(q,[1,1,N]);

The step response

of the model in

the (2,3) position

of the LTI array is

displayed.

6 The LTI Viewer

6-38

at t he MATLAB command line, and

$ > any(any(Q))

in t he Model Se lector for LTI Arrays window. This displays only t he plot s of

t hose models for which t he r equir ed bound is not sat isfied on any of t he I/O

channels. You must use t he any command t wice, once for each I/O dimension.

Typing $>Q would only display t he plot s of t hose models for which is bound is

not sat isfied on all of t he I/O channels.

The LTI Viewer Tools Menu

6-39

The LTI Viewer Tools Menu

Thr ee pr efer ences windows pr ovide addit ional opt ions for cust omizing t he LTI

Viewer display. You can access t hese windows fr om t he Tools menu. The

pr efer ence windows you can access fr om t he Tools menu ar e:

•Vi ewe r Confi gurati on—To change t he number and t ype of plot s displayed

by t he LTI Viewer

•Res ponse Prefere nces—To set var ious par amet er s such as t he r anges of

values for t he r esponse plot t ime and fr equency scales

•Li nes tyle Prefere nces—To set opt ions for changing linest yles, color s, and

mar ker s for all of t he r esponse cur ves

Viewer Configuration Window

Select t he Vi ewer Confi gurati on menu it em under t he Tools menu. The

following window opens t he Avai lable LTI Vi ewe r Confi gurati ons window.

Figure 6-20: The Available LTI Viewer Configurations Window

For example, load t he model ssF8 int o t he LTI Viewer wor kspace (see “The

Right -Click Menu for MIMO Models” on page 6-21 for inst r uct ions on how t o

Choose response plot types

to correspond to your chosen

plot configuration here. Each

of these pull-down tabs lists

all of the possible plot types.

Select one of these six plot configuration radio buttons,

and then select the corresponding response plot types

to be mapped to that configuration.

6 The LTI Viewer

6-40

load t his model). Wit h t he Avai lable LTI Vi ewer Confi gurati ons window

open:

1 Select t he r adio but t on for t he t wo-plot configur at ion.

2 Use t he pull-down t ab next t o 1. t o set t he fir st plot t o nyqui s t.

3 Use t he pull-down t ab next t o 2. t o set t he second plot t o bode.

4 Select OK.

Wit h t he ssF8 model loaded, t he LTI Viewer now displays t wo plot t ypes on

separ at e plot s:

Response Preferences

When you select Re sponse Pre fe rence s fr om t he Tools menu, t he Res pons e

Prefere nces window shown below opens.

The LTI Viewer Tools Menu

6-41

Figure 6-21: Response Preferences Window

You can use t he Re sponse Pre ferences window t o:

•Specify t he t ime dur at ion for t ime domain r esponse plot s and t he fr equency

r ange for fr equency domain r esponse plot s.

•Choose unit s for plot t ing t he magnit ude, phase, and fr equency of Bode plot s.

This choice of unit s also assigns t he magnit ude and fr equency unit s for

singular value (sigma) plot s.

•Specify ver t ical axis limit s for t ime domain r esponses.

•Set t ar get per cent ages for set t ling t ime and r ise t ime calculat ions on st ep

r esponse plot s.

Setting Response Time Durations and Frequency Ranges

To get a smoot her t ime domain r esponse cur ve over a specified t ime dur at ion,

you can over r ide t he default t ime r ange and r eset t he t ime vect or t o a desir ed

Always press OK or Apply to

execute window options.

Select Define to define your

own time or frequency vectors

in the editable text boxes.

Select Define to define your

own vertical axis range.

Edit these text boxes to

customize the response

characteristics for step

response plots.

Use these radio

buttons to

change units on

Bode and sigma

plots.

6 The LTI Viewer

6-42

value. You can use t he Ti me vector (sec.) por t ion of t he Ti me Domai n field

shown below t o do t his.

The Ti me vector (se c.) field accept s one, t wo, or t hr ee ar gument s, separ at ed

by colons and sur r ounded by squar e br acket s:

•[Tf] specifies only t he final t ime.

•[Ti:Tf] specifies t he init ial and final t ime.

•[Ti:dt:Tf] specifies t he init ial and final t ime and pr ovides t he incr ement al

st ep dt t o use when gener at ing t he t ime vect or .

The Gene rate automati cally r adio but t on is select ed when you init ially open

t his window. Wit h t his opt ion select ed, t he LTI Viewer aut omat ically

det er mines t he t ime vect or t o use for plot t ing t he r esponse. To over r ide t he

default set t ing:

1 Select t he Defi ne r adio but t on.

2 Ent er t he desir ed final t ime Tf or t he new t ime vect or as [Ti:dt:Tf] as

descr ibed pr eviously.

3 Select eit her :

- Apply t o keep t he Res pons e Pre fe rence s window open when you apply

t hese changes

- OK t o apply t he changes and close t he Re sponse Prefere nces window

You can also use t his window for set t ing:

•The Y-axi s Range sect ion of t he Ti me Domai n field t o over r ide t he ver t ical

axis default set t ings: Ent er t he desir ed ver t ical axis limit as a r ow vect or of

t he lower and upper axis limit .

•The Fre quency vector (rad/se c.) sect ion of t he Freque ncy Domai n field:

Ent er t he desir ed fr equencies as if t hey wer e t he input ar gument s of t he

logspace funct ion.

The LTI Viewer Tools Menu

6-43

The Fre que ncy ve ctor (rad/s ec.) field also pr ovides you wit h t he opt ion t o

r ecalculat e a new fr equency vect or for each fr equency r esponse t ype. When t his

checkbox is select ed along wit h Ge nerate automati cally, a new fr equency

vect or and r esponse is calculat ed each t ime you t oggle bet ween differ ent

fr equency r esponses, e.g.fr om Bode t o Nyquist . If you deselect t he Re calculate

for each re sponse type checkbox, t he fr equency vect or used t o calculat e t he

pr evious fr equency r esponse is used and t he fr equency r esponse dat a is simply

conver t ed t o t he new r esponse t ype.

Note: Whenever you over r ide any of t he default set t ings in t he Res pons e

Prefe rence s window, t he values you ent er ar e used on each plot , and dur ing

ever y applicable r esponse calculat ion.

Customizing Step Response Specifications

You can also use t he Re sponse Pre fe rences window t o cust omize t he

per cent age values used in t he st ep r esponse set t ling t ime or r ise t ime

calculat ion.

The settling time per cent age value det er mines t he t ime aft er which t he

envelope of t he st ep r esponse r emains wit hin t hat per cent age of t he st eady

st at e value of t he st ep r esponse.

The rise time per cent ages ar e mar ked by t wo values. These det er mine t he t ime

it t akes for t he st ep r esponse t o incr ease fr om t he fir st per cent age value t o t he

second per cent age value of t he st eady st at e st ep value r esponse.

The default values for t hese st ep r esponse char act er ist ics ar e:

•2% of t he st eady st at e value for set t ling t ime

•10% t o 90% of t he st eady st at e value for r ise t ime

You can use t he edit able t ext box in t he Plot Opti on sect ion of t he Ti me

Domai n field shown below t o change t he per cent ages for t he set t ling t ime or

6 The LTI Viewer

6-44

r ise t ime. For example, you can change t he value for t he set t ling t ime t o 5% as

shown below.

Figure 6-22: Changing the Settling Time Percentage Value to 5%

Changing the Frequency Domain Plot Units

In addit ion t o pr oviding opt ions for specifying t he fr equencies used in t he

fr equency r esponses, t he Fre que ncy Domai n field allows you t o choose t he

unit s used for Bode plot s and singular value (sigma) plot s. You can use t he

r adio but t ons in t he Fre que ncy Domai n field shown below t o over r ide t he

default unit s for t hese plot s.

By default , t he LTI Viewer plot s:

•Magnit ude in decibels

•Phase in degr ees

•Fr equency in r adians per second

Linestyle Preferences

You can use t he cont r ols in t he Li nes tyle Prefe rence s window t o modify t he

r esponse cur ve plot st yles.

To do t his:

1 Open t he Tools menu.

2 Select Li ne style Pre fe rence s.

The LTI Viewer Tools Menu

6-45

Aft er select ing Li nes tyle Prefe rence s fr om t he Tools menu, t he following

Li nes tyle Prefere nces window opens.

Figure 6-23: The Linestyle Preferences Window

You can use t he Li nes tyle Prefere nces window t o:

•Select t he pr oper t y used t o dist inguish t he r esponse cur ves for differ ent LTI

models, input s, out put s, or I/O channels.

•Change t he or der in which t he line pr oper t ies ar e applied.

The set t ings you select in t he Li nestyle Pre fe rence s window over r ide any plot

st yles you may have ent er ed in t he or iginal ltiview command.

To dist inguish mult iple r esponse cur ves in each of t he plot r egions, you can

dist inguish t he plot t ed r esponse cur ves using combinat ions of any of t he

following pr efer ences:

•Color s (r ed, blue, gr een, et c.)

•Mar ker s (cir cles, cr osses, et c.)

•Linest yle, t he t ype of cur ve dr awn (solid, dashed, et c.)

Always press OK or

Apply to execute

window functions.

Distinguish multiple

response curves

according to any of these

four characteristics.

Distinguish multiple

response curves by

either of these three

line properties, or not

at all. If you select a line property,

you can use the arrow buttons

next to one of the three

selected line property

listboxes to rearrange the

order of the entries in that

listbox.

The default linestyle

preferences are

selected.

6 The LTI Viewer

6-46

You can designat e t hat t he chosen pr efer ence (color , mar ker , or linest yle)

dist inguish t he plot t ed r esponse cur ves by any (or all) of t he following.

•Systems: The line pr oper t ies var y wit h t he models.

•Inputs: The line pr oper t ies var y wit h t he input channels.

•Outputs : The line pr oper t ies var y wit h t he out put channels.

•Channe ls: The line pr oper t ies var y wit h t he I/O channels.

Changing the Response Curve Linestyle Properties

You can use t he r adio but t ons in t he Di s ti ngui sh by field of t he Li nes tyle

Prefere nces window t o var y a line pr oper t y by model, input , out put , or I/O

channel.

When you open t he Li nes tyle Prefe rence s window, t he r adio but t on in t he

Systems r ow and Color column of t he Di sti ngui s h by field is select ed and t he

r adio but t ons in t he No Di sti ncti on column ar e select ed in t he r emaining r ows.

This is t he default set t ing for t he plot st yles used for all of t he r esponse plot s.

For example, t o dist inguish t he r esponses fr om differ ent input s of a MIMO

model using differ ent linest yles (in addit ion t o dist inguishing mult iple models

by color ):

1 Select t he r adio but t on in t he Inputs r ow and Li nes tyle column.

As soon as you select t his r adio but t on, t he pr eviously select ed r adio but t on

in t he Inputs r ow is t ur ned off, as shown in t he figur e below.

The r adio but t ons ar e mut ually exclusive along each r ow and each column

wit h t he except ion of t he No Di sti ncti on column. In ot her wor ds, you can

use only one line pr oper t y t o dist inguish t he differ ent syst ems, input s,

out put s, or channels, and t hat same pr oper t y cannot be applied t o any ot her

r ow of t he Li nes tyle Prefere nces window.

The LTI Viewer Tools Menu

6-47

2 Select eit her :

- Apply t o keep t he Li ne style Prefere nces window open when you apply

t hese changes

- OK t o apply t he changes and close t he Li nes tyle Pre fere nces window

The Order in which Line Properties are Assigned

You can det er mine t he or der in which t he line pr oper t ies ar e applied t o models

(or input s, out put s, or I/O channels) by r efer r ing t o t he or der of t he line

pr oper t ies in t he list boxes. The t hr ee list boxes t ell you t he default or der in

which each of t he line pr oper t ies will be applied. For example, look at t he

Li nes tyle Orde r list box and not ice t hat t he r esponses fr om t he fir st input will

be plot t ed wit h a solid line, and t he second input wit h a dashed line.

If, for example, (while Li ne style is assigned t o dist inguish models by input s),

you want t o plot t he r esponse fr om t he fir st input wit h dashed lines and t hose

fr om t he second input wit h dot t ed lines, you can use t he up and down ar r ows

t o t he left of each list box t o r eor der t he ent r ies in t he list boxes. The figur e below

shows t he up and down ar r ows and t he Li ne style Orde r list box.

To change any list box or der :

1 Select t he line pr oper t y you want t o move in t he list .

2 Pr ess t he up and down ar r ows t o t he left of t hat list box t o move t he

highlight ed pr oper t y in t he desir ed dir ect ion wit hin t he list box.

6 The LTI Viewer

6-48

Simulink LTI Viewer

If you have Simulink, you can use t he S imulink LTI Viewer, a ver sion of t he

LTI Viewer t hat per for ms linear analysis on any por t ion of a Simulink model.

The Simulink LTI Viewer feat ur es:

•Dr ag-and-dr op blocks t hat ident ify t he locat ion for t he input s and out put s of

t he por t ion of a Simulink model you want t o analyze.

•The abilit y t o specify t he oper at ing condit ions about which t he Simulink

model is linear ized for analysis in t he LTI Viewer .

•Access t o all t ime and fr equency r esponse t ools feat ur ed in t he LTI Viewer .

•The abilit y t o compar e a set of (linear ized) models obt ained by var ying eit her

t he oper at ing condit ions or some model par amet er values.

Using the Simulink LTI Viewer

To lear n about t he Simulink LTI Viewer , we will per for m some analysis on a

Simulink model for a van der Pol oscillat or . To open t his model, t ype

vdp

at t he MATLAB pr ompt . This br ings up t he following diagr am:

Simulink LTI Viewer

6-49

Not ice t hat t he t it le of t his Simulink model is vdp, and t hat it cont ains st at ic

nonlinear it ies.

A Sample Analysis Task

Suppose you want t o:

•Analyze t he Bode plot of t he linear r esponse bet ween t he input x2 t o t he

Pr oduct block and t he out put x1 of t he second Int egr at or block.

•Det er mine t he effect of changing t he value of t he Gain block labeled Mu on

t his r esponse.

6 The LTI Viewer

6-50

The basic pr ocedur e for car r ying out t his t ype of analysis is out lined below:

1 Open t he Simulink LTI Viewer .

2 Specify your analysis model:

a Specify t he por t ion of t he Simulink model you want t o analyze. This

involves using special Simulink blocks t o locat e t he input s and out put s of

t his analysis model on your Simulink diagr am.

b Set t he oper at ing condit ions for linear analysis (opt ional). If your

Simulink model includes nonlinear component s, t he Simulink LTI

Viewer linear izes t he model ar ound t he specified oper at ion point . The

default oper at ing condit ions have all st at e and input values set t o zer o.

c Modify any Simulink model block par amet er s (opt ional).

3 Per for m linear analysis wit h t he Simulink LTI Viewer :

a Impor t a linear ized analysis model t o t he Simulink LTI Viewer .

b Analyze t he Bode plot .

c Specify a second analysis model by changing t he value of t he Gain block,

Mu.

d Impor t t he second linear ized analysis model, and compar e t he Bode plot s

of t he t wo linear ized analysis models.

4 Save t he analysis models for fut ur e use.

In t he r emaining sect ions of t his chapt er , we explain how t o car r y out each of

t hese st eps on t he van der Pol oscillat or example.

Opening the Simulink LTI Viewer

To open a Simulink LTI Viewer linked t o t he vdp Simulink model:

1 Go t o t he Tools menu on t he Simulink model.

2 Select Li ne ar Analys i s .

Simulink LTI Viewer

6-51

When you select Li near Analys i s, t wo new windows open: an LTI Viewer

window and a Simulink diagr am called Mode l_Inputs_and_Outputs

cont aining t wo blocks: Input Point and Out put Point .

The following figur e depict s how t o open t he Simulink LTI Viewer .

6 The LTI Viewer

6-52

The Simulink LTI Viewer differ s fr om t he regular LTI Viewer , in t hat :

The Simulink LTI Viewer

includes an additional

menu for acquiring the

analysis model from

Simulink, specifying the

operating points, or

removing all the Input

and Output Point blocks.

Select Linear Analysis from the

Simulink model Tools menu to

open the Simulink LTI Viewer.

This set of Simulink blocks opens when you select Linear Analysis.

Use these blocks to specify the inputs and outputs of the portion

of the Simulink model you want to analyze.

Plot region

Your Tools menu may

differ from this one,

depending on your

options.

Simulink LTI Viewer

6-53

•The t it le bar shows t he name of t he Simulink model t o which it is linked.

•The menu bar cont ains an addit ional menu called Si muli nk t hat cont ains

t he following it ems:

- Get Li ne ari zed Mode l linear izes t he Simulink model and impor t s t he

r esult ing linear ized analysis model t o t he LTI Viewer . Each t ime you

select t his menu it em, a new ver sion of t he linear ized analysis model is

added t o t he Simulink LTI Viewer wor kspace.

- Set Operati ng Poi nt allows you t o set or r eset t he oper at ing condit ions.

- Re move Input/Output Poi nts clear s all Input Point and Out put Point

blocks fr om t he diagr am.

Specifying the Simulink Model Portion for Analysis

To specify t he por t ion of t he Simulink model you want t o analyze, mar k it s

input and out put signals on t he Simulink model using t he Input Point and

Out put Point blocks in t he Model_Inputs_and_Outputs window. This defines

an input /out put r elat ionship t hat is linear ized and analyzed by t he LTI Viewer .

Adding Input Point or Output Point Blocks to the Diagram

To designat e t he input and out put signals of your analysis model, inser t Input

Point and Out put Point blocks on t he cor r esponding signal lines in your

Simulink diagr am.

For example, t o inser t an Input Point block on t he Simulink model:

1 Gr ab t he Input Point block in t he Model_Inputs_and_Outputs window by

clicking on t he block and holding t he mouse but t on down.

2 Dr ag t he block t o your Simulink model and place it over t he line associat ed

wit h t he desir ed signal.

3 Release t he mouse but t on. The block should aut omat ically connect t o t he

line.

4 If t he block fails t o connect (t his may occur , for example, when t he line is t oo

shor t ), r esize t he line and double-click on t he block t o for ce t he connect ion.

6 The LTI Viewer

6-54

To set up t he analysis model for t he vdp Simulink model:

1 Inser t an Input Point block on t he line labeled x2 going int o t he Pr oduct

block.

2 Inser t an Out put Point block on t he line ent er ing t he Out por t block, Out1.

This r esult s in t he following diagr am.

Simulink LTI Viewer

6-55

.

Grab an Input Point

block, drag it, and

release it on the

Simulink model

here.

6 The LTI Viewer

6-56

Keep t he following in mind when using t he Input Point and Out put Point

blocks t o specify analysis models:

•You must place at least one Input Point block and one Out put Point block

somewher e in t he diagr am in or der t o specify an analysis model.

•You can place t he Input Point and Out put Point blocks on any scalar or

vect or signal line in t he Simulink model, wit h t he except ion of signal lines

connect ed t o any block in t he Power Syst em Blockset .

•You can inser t Input Point and Out put Point blocks at differ ent levels of a

Simulink model hier ar chy.

•Ther e is no limit on t he number of t hese blocks you can use.

Removing Input Points and Output Points

Ther e ar e t wo ways you can r emove Input Point or Out put Point blocks fr om

t he Simulink model:

1 One by one: Select t he Input Point or Out put Point block you want t o

r emove and delet e it as you would any ot her Simulink block.

2 All at once: To r emove all Input Point and Out put Point blocks, select

Remove Input/Output Poi nts fr om t he Si muli nk menu in t he LTI Viewer .

When you delet e an Input Point or an Out put Point block, t he signal lines

coming int o and out of t his block ar e aut omat ically r econnect ed.

Specifying Open- Versus Closed-Loop Analysis Models

Placing t he Input Point and Out put Point blocks on your Simulink model does

not br eak any connect ion or isolat e any component . As a r esult , t he Simulink

LTI Viewer per for ms closed-loop analysis whenever your diagr am cont ains

feedback loops. This may somet imes lead t o count er -int uit ive r esult s, as is

illust r at ed by t he next example.

Simulink LTI Viewer

6-57

Consider t he following simple diagr am.

Based on t he locat ion of t he Input Point and Out put Point blocks, you might

t hink t hat t he analysis model specified by t hese blocks is simply t he plant

model, P. However , due t o t he feedback loop, t his analysis model is act ually t he

closed-loop t r ansfer funct ion .

If you want t o analyze t he (open-loop) plant P inst ead, you need t o open t he

loop, for example, by delet ing t he line bet ween t he Sum and Input Point blocks.

Setting the Operating Conditions

If you have nonlinear component s in your Simulink model, t he Simulink LTI

Viewer aut omat ically linear izes t hem when you select Get Li ne ari zed Model.

The Simulink LTI Viewer uses t he init ial st at e values you set in t he Simulink

diagr am as default set t ings for linear izat ion point s for t he st at es in t he

diagr am. The default input values for t his linear izat ion ar e zer o. You also have

t he opt ion t o linear ize about t he oper at ing condit ions of your choice.

If you want your analysis model t o be linear ized about zer o st at e, or ot her st at e

and input oper at ing condit ions, follow t hese st eps before select ing Get

Li neari zed Model:

Delete this line to isolate

the plant, P, for open

loop analysis.

P 1 PK + ( ) ⁄

6 The LTI Viewer

6-58

1 Select Se t Operati ng Poi nt in t he Si muli nk menu. This opens t he

Operati ng Poi nt window.

Figure 6-24: The Operating Point Window for Changing Linearization Points

2 Change t he r adio but t on select ion t o eit her :

- Set all st at e values for t he linear izat ion t o zer o.

- Define your own st at e values for t he linear izat ion.

3 Use t he whit e t ext boxes t o specify t he oper at ing condit ions for each input

(and st at e) list ed in t he Operati ng Poi nt window. You don’t have t o specify

t he st at es if you choose t he Ze ro state values r adio but t on.

The default setting for the Operating

Point window uses initial states from

the Simulink diagram. Select either of

the other two radio buttons to set all

state values for linearization to zero,

or choose some other values.

Edit the operating

point values in the

textboxes provided.

When you select this

radio button, the

Simulink LTI Viewer

uses zero state

values for each

linearization.

When you select this

radio button, the

Simulink LTI Viewer

uses the values in the

textboxes for each

linearization, unless

you change these.

When you

have inputs in

your Simulink

model, you

can set

linearization

values for

them here.

Simulink LTI Viewer

6-59

4 Select OK. A dialog box opens.

a Select ing Ye s closes t he Ope rati ng Poi nt window and linear izes t he

model aut omat ically. The new oper at ing condit ions you select ed r emain

in effect for any fut ur e linear izat ions.

b Select ing No closes t he Operati ng Poi nt window wit hout linear izing t he

model. The new oper at ing condit ions you select ed r emain in effect for any

fut ur e linear izat ions.

c Select ing Cance l closes t he dialog box and r et ur ns you t o t he Operati ng

Poi nt window wit hout linear izing t he model or changing oper at ing

condit ions.

6 The LTI Viewer

6-60

For t his example, we use t he Zero i ni ti al states set t ing, shown in t he figur e

below.

Not e t he following:

•The input s list ed on t he Ope rati ng Poi nt window cor r espond t o t he Inpor t

blocks on t he t op level of your Simulink model.

•All st at es and input s in t he Simulink diagr am ar e list ed in t his window, not

just t hose associat ed wit h your analysis model.

•If you want t o change t he oper at ing condit ions, you need only change t hose

values associat ed wit h your analysis model.

•While t he Ope rati ng Poi nt window is in t he Us er-defi ne d i ni ti al state

value s mode, t he values list ed in t he Operati ng Poi nt window r emain in

effect t hr oughout your Simulink LTI Viewer session unless you change

t hese.

Choose this menu on the

Simulink LTI Viewer to set

the operating conditions.

Simulink path name for the state variables

Selecting OK opens a dialog box, asking you to accept

the changes you made to the operating conditions and

linearize the model with these operating conditions.

Edit the operating

point values here.

Selecting Cancel closes this

window without

implementing any changes

to the operating conditions.

Simulink LTI Viewer

6-61

•While t he Operati ng Poi nt window is in t he Ini ti al s tate i n Si muli nk

di agram mode, t he linear izat ion values used by t he Simulink LTI Viewer

ar e updat ed as you change any st at e values in your Simulink diagr am.

•To use t he MATLAB command line t o change Simulink diagr am init ial st at e

values

- Select Parame ters under t he Si mulati on menu on your Simulink

diagr am.

- Choose t he Workspace I/O t ab in t he Si mulati on Parameters window.

- Load init ial st at es fr om t he MATLAB wor kspace using t he appr opr iat e

t ext box.

Modifying the Block Parameters

You have t he opt ion of modifying any of your Simulink model block

par amet er s, such as Gain block gain values or LTI block poles and zer os, befor e

you impor t your analysis model int o t he Simulink LTI Viewer .

Performing Linear Analysis

Once you have specified your analysis model, you ar e r eady t o analyze it wit h

t he Simulink LTI Viewer .

Let ’s use t he Simulink LTI Viewer t o compar e t he Bode plot s of t wo differ ent

linear ized analysis models. The pr ocedur e for car r ying out t his analysis on t he

van der Pol example involves:

•Impor t ing a linear ized analysis model t o t he Simulink LTI Viewer .

•Analyzing t he Bode plot of t he linear ized analysis model.

•Specifying anot her analysis model.

•Impor t ing t he second linear ized analysis model t o compar e t he Bode plot s of

bot h linear ized analysis models.

6 The LTI Viewer

6-62

Importing a Linearized Analysis Model to the LTI Viewer

To linear ize and load your fir st analysis model for t he van der Pol example int o

t he LTI Viewer , select Get Li ne ari zed Mode l on t he Si muli nk menu on t he

LTI Viewer . This pr oduces t he following r esponse plot :

Each t ime you select Ge t Li neari ze d Model in t he LTI Viewer ’s Si muli nk

menu:

•The linear ized analysis model is impor t ed int o t he LTI Viewer wor kspace.

•The st ep r esponse of t he linear ized analysis model is t he default plot t ype

displayed.

The LTI Viewer displays the selected

response plot for all of the models in

the LTI Viewer workspace. These are

listed in the Systems menu

available by right-clicking in the

plot region. The default plot type is

step response.

Simulink LTI Viewer

6-63

You can view t he linear ized models in t he LTI Viewer wor kspace or change t he

plot t ype using t he r ight -click menus. See “The Right -Click Menus” on page

6-18 for mor e infor mat ion.

Analyzing the Bode Plot of the Linearized Analysis Model

To analyze t he Bode plot for t his model,

1 Right -click anywher e in t he plot r egion.

2 Select t he Plot Type menu, and t hen t he Bode submenu it em.

Specifying Another Analysis Model

Once an analysis model is specified on a Simulink diagr am, you can specify

ot her analysis models fr om t he same Simulink diagr am in one of t he following

t hr ee ways:

•Modify any of t he model par amet er s.

•Change t he oper at ing condit ions.

•Change t he locat ion of any of t he Input Point or Out put Point blocks.

For t he van der Pol example, we want t o cr eat e a second analysis model by

modifying a model par amet er . Specifically, we modify t he Gain block labeled

Mu. To do t his:

•Ret ur n t o t he Simulink model, and open t he Mu Gain block by double-clicking

on it .

•Change t he gain t o 10; click on OK.

Comparing the Bode Plots of the Two Linearized Analysis Models

Having just specified a new analysis model, let ’s load it s linear izat ion int o t he

LTI Viewer and compar e t he Bode plot s of t he t wo models. To do t his, r eselect

t he Get Li ne ari zed Mode l menu it em under Si muli nk on t he LTI Viewer .

6 The LTI Viewer

6-64

As is shown below, t he linear ized model for t he new value of Mu appear s as t he

last it em in t he Syste ms submenu, and t he Bode plot s for bot h models ar e

displayed.

As you might expect , changing t he gain alt er s t he Bode plot .

After reselecting Get

Linearized Model, the

Systems submenu contains

two model names with

different version numbers.

The Bode plots for both

models are displayed in

different colors.

Simulink LTI Viewer

6-65

Not ice t he following about t he models list ed in t he Systems list on t he

r ight -click menu:

•The names r eflect t he t it le of t he Simulink model.

•The ver sion number is incr ement ed ever y t ime Get Li neari zed Mode l is

select ed.

•The LTI Viewer simult aneously displays t he r esponse plot s of all of t he

checked models list ed.

Saving Analysis Models

The analysis models obt ained each t ime you select Ge t Li ne ari zed Model ar e

st or ed only in t he Simulink LTI Viewer wor kspace. You can save t hese models

int o t he main MATLAB wor kspace by select ing Export fr om t he Simulink LTI

Viewer Fi le menu.

Select ing Export opens t he window shown below.

Lists all the analysis models

currently in the Simulink LTI Viewer

Store the selected

analysis model in

a MAT-file.

Store the selected

analysis model in

the MATLAB workspace.

workspace.

6 The LTI Viewer

6-66

To expor t analysis models fr om t he LTI Viewer wor kspace:

1 Highlight t he models you want t o save in t he Export Li s t. (You can

mult iselect models on t he list by holding down t he cont r ol key while

select ing list it ems).

2 Save t he select ed models by clicking on t he appr opr iat e but t on on t his GUI.

You can expor t t he linear ized models t o eit her :

a A MAT-file

b The MATLAB wor kspace

Note: If you save models t o a MAT-file, you ar e pr ompt ed t o name t he file.

The var iable names cont ained in t hat file ar e t he same as t hose you select ed

fr om t he Export Li s t. The var iable names of each model you save t o t he

MATLAB wor kspace ar e also t he same as t hose list ed in t he Export Li s t. It ’s

up t o you t o modify t he names of t hese var iables aft er you’ve saved t hem.

7

Cont r ol Design Tools

Root Locus Desi gn . . . . . . . . . . . . . . . . . 7-3

Pole Placement . . . . . . . . . . . . . . . . . . . 7-5

St at e-Feedback Gain Select ion . . . . . . . . . . . . . 7-5

St at e Est imat or Design . . . . . . . . . . . . . . . . 7-5

Pole Placement Tools . . . . . . . . . . . . . . . . . 7-6

LQG Desi gn . . . . . . . . . . . . . . . . . . . . 7-8

Opt imal St at e-Feedback Gain . . . . . . . . . . . . . 7-9

Kalman St at e Est imat or . . . . . . . . . . . . . . . . 7-9

LQG Regulat or . . . . . . . . . . . . . . . . . . . 7-10

LQG Design Tools . . . . . . . . . . . . . . . . . . 7-10

7 Control Design Tools

7-2

We use t he t er m cont r ol syst em design t o r efer t o t he pr ocess of select ing

feedback gains in a closed-loop cont r ol syst em. Most design met hods ar e

it er at ive, combining par amet er select ion wit h analysis, simulat ion, and

physical insight .

The Cont r ol Syst em Toolbox offer s funct ions t o:

•Design t he cont r ol syst em gains using eit her classical r oot locus t echniques

or moder n pole placement and LQG t echniques.

•Close t he loop for simulat ion and validat ion pur poses.

Root Locus Design

7-3

Root Locus Design

The r oot locus met hod is used t o descr ibe t he t r aject or ies of t he closed-loop

poles of a feedback syst em as one par amet er var ies over a cont inuous r ange of

values. Typically, t he r oot locus met hod is used t o t une a feedback gain so as t o

specify t he closed-loop poles of a SISO cont r ol syst em.

Consider , for example, t he t r acking loop

wher e is t he plant , is t he sensor dynamics, and is a scalar gain t o

be adjust ed. The closed-loop poles ar e t he r oot s of

The r oot locus t echnique consist s of plot t ing t he closed-loop pole t r aject or ies in

t he complex plane as var ies. You can use t his plot t o ident ify t he gain value

associat ed wit h a given set of closed-loop poles on t he locus.

The command rltool opens t he Root Locus Design GUI. In addit ion t o plot t ing

t he r oot locus, t he Root Locus Design GUI can be used t o design a compensat or

int er act ively t o meet some syst em design specificat ions.

The Root Locus Design GUI can be used t o:

•Analyze t he r oot locus plot for a SISO LTI feedback loop

•Specify feedback compensat or par amet er s: poles, zer os, and gain

•Examine how t he compensat or par amet er s change t he r oot locus, as well as

var ious open and closed-loop syst em r esponses (st ep r esponse, Bode plot ,

Nyquist plot , or Nichols char t )

Chapt er 8 pr ovides mor e det ail on t he Root Locus Design GUI.

P s ( )

+

H s ( ) k

r

–

y

P s ( ) H s ( ) k

q s ( ) 1 k P s ( )H s ( ) + =

k

7 Control Design Tools

7-4

If you ar e int er est ed in just t he r oot locus plot , use t he command rlocus. This

command t akes one ar gument : a SISO model of t he open loop syst em, cr eat ed

wit h ss, tf, or zpk. In t he t r acking loop depict ed on t he pr evious page, t his

model would r epr esent . You can also use t he funct ion rlocfind t o

select a point on t he r oot locus plot and det er mine t he cor r esponding gain .

The following t able summar izes t he commands for r oot locus design.

Root Locus Design

pzmap Pole-zer o map.

rltool Root Locus Design GUI.

rlocfind Int er act ive r oot locus gain select ion.

rlocus Evans r oot locus plot .

sgrid Cont inuous gr id for r oot locus.

zgrid Discr et e gr id for r oot locus.

P s ( )H s ( )

k

ω

n

ζ ,

ω

n

ζ ,

Pole Placement

7-5

Pole Placement

The closed-loop pole locat ions have a dir ect impact on t ime r esponse

char act er ist ics such as r ise t ime, set t ling t ime, and t r ansient oscillat ions. This

suggest s t he following met hod for t uning t he closed-loop behavior :

1 Based on t he t ime r esponse specificat ions, select desir able locat ions for t he

closed-loop poles.

2 Comput e feedback gains t hat achieve t hese locat ions.

This design t echnique is known as pole placement.

Pole placement r equir es a st at e-space model of t he syst em (use ss t o conver t

ot her LTI models t o st at e space). In cont inuous t ime, t his model should be of

t he for m

wher e is t he vect or of cont r ol input s and is t he vect or of measur ement s.

Designing a dynamic compensat or for t his syst em involves t wo st eps:

st at e-feedback gain select ion, and st at e est imat or design.

State-Feedback Gain Selection

Under st at e feedback , t he closed-loop dynamics ar e given by

and t he closed-loop poles ar e t he eigenvalues of . Using pole placement

algor it hms, you can comput e a gain mat r ix t hat assigns t hese poles t o any

desir ed locat ions in t he complex plane (pr ovided t hat is cont r ollable).

State Estimator Design

You cannot implement t he st at e-feedback law unless t he full st at e

is measur ed. However , you can const r uct a st at e est imat e such t hat t he

law r et ains t he same pole assignment pr oper t ies. This is achieved by

designing a st at e est imat or (or obser ver ) of t he for m

x

·

Ax Bu + =

y Cx Du + =

u y

u Kx – =

x

·

A BK – ( ) x =

A BK –

K

A B , ( )

u Kx – =

x ξ

u Kξ – =

7 Control Design Tools

7-6

The est imat or poles ar e t he eigenvalues of , which can be ar bit r ar ily

assigned by pr oper select ion of t he est imat or gain mat r ix . As a r ule of

t humb, t he est imat or dynamics should be fast er t han t he cont r oller dynamics

(eigenvalues of ).

Replacing by it s est imat e in yields t he dynamic out put -feedback

compensat or

Not e t hat t he r esult ing closed-loop dynamics ar e

Hence, you act ually assign all closed-loop poles by independent ly placing t he

eigenvalues of and .

Pole Placement Tools

The Cont r ol Syst em Toolbox cont ains funct ions t o:

•Comput e gain mat r ices and t hat achieve t he desir ed closed-loop pole

locat ions

•For m t he st at e est imat or and dynamic compensat or using t hese gains

ξ

·

Aξ Bu L y Cξ – Du – ( ) + + =

A L C –

L

A BK –

x ξ u Kx – =

ξ

·

A L C – B L D – ( )K –

ξ L y + =

u Kξ – =

x

·

e

·

A BK – BK

0 A L C –

x

e

, = e x ξ – =

A BK – A L C –

K L

Pole Placement

7-7

The funct ion acker is limit ed t o SISO syst ems and should only be used for

syst ems wit h a small number of st at es. The funct ion place is a mor e gener al

and numer ically r obust alt er nat ive t o acker.

Caution: Pole placement can be badly condit ioned if you choose unr ealist ic

pole locat ions. In par t icular , you should avoid:

•Placing mult iple poles at t he same locat ion

•Moving poles t hat ar e weakly cont r ollable or obser vable. This t ypically

r equir es high gain, which in t ur n makes t he ent ir e closed-loop

eigenst r uct ur e ver y sensit ive t o per t ur bat ions.

Pole Placement

acker SISO pole placement .

estim For m st at e est imat or given est imat or gain.

place MIMO pole placement .

reg For m out put -feedback compensat or given

st at e-feedback and est imat or gains.

7 Control Design Tools

7-8

LQG Design

Linear -Quadr at ic-Gaussian (LQG) cont r ol is a moder n st at e-space t echnique

for designing opt imal dynamic r egulat or s. It enables you t o t r ade off r egulat ion

per for mance and cont r ol effor t , and t o t ake int o account pr ocess and

measur ement noise. Like pole placement , LQG design r equir es a st at e-space

model of t he plant (use ss t o conver t ot her LTI models t o st at e space). This

sect ion focuses on t he cont inuous-t ime case (see r elat ed Refer ence pages for

det ails on discr et e-t ime LQG design).

LQG design addr esses t he following r egulat ion pr oblem.

The goal is t o r egulat e t he out put ar ound zer o. The plant is dr iven by t he

pr ocess noise and t he cont r ols , and t he r egulat or r elies on t he noisy

measur ement s t o gener at e t hese cont r ols. The plant st at e and

measur ement equat ions ar e of t he for m

and bot h and ar e modeled as whit e noise.

The LQG r egulat or consist s of an opt imal st at e-feedback gain and a Kalman

st at e est imat or . You can design t hese t wo component s independent ly as shown

next .

w

u

y

v

+

+

y

v

Plant

Regulat or

y

w u

y

v

y v + =

x

·

Ax Bu Gw + + =

y

v

Cx Du Hw v + + + =

w v

LQG Design

7-9

Optimal State-Feedback Gain

In LQG cont r ol, t he r egulat ion per for mance is measur ed by a quadr at ic

per for mance cr it er ion of t he for m

The weight ing mat r ices ar e user specified and define t he t r ade-off

bet ween r egulat ion per for mance (how fast goes t o zer o) and cont r ol effor t .

The fir st design st ep seeks a st at e-feedback law t hat minimizes t he

cost funct ion . The minimizing gain mat r ix is obt ained by solving an

algebr aic Riccat i equat ion. This gain is called t he LQ-optimal gain.

Kalman State Estimator

As for pole placement , t he LQ-opt imal st at e feedback is not

implement able wit hout full st at e measur ement . However , we can der ive a

st at e est imat e such t hat r emains opt imal for t he out put -feedback

pr oblem. This st at e est imat e is gener at ed by t he Kalman filt er .

wit h input s (cont r ols) and (measur ement s). The noise covar iance dat a

det er mines t he Kalman gain t hr ough an algebr aic Riccat i equat ion.

The Kalman filt er is an opt imal est imat or when dealing wit h Gaussian whit e

noise. Specifically, it minimizes t he asympt ot ic covar iance

of t he est imat ion er r or .

J u ( ) x

T

Qx 2x

T

N u u

T

R u + + { } t d

0

∞

∫

=

Q N R , ,

x t ( )

u Kx – =

J u ( ) K

u Kx – =

xˆ u Kxˆ – =

x

ˆ

·

Axˆ Bu L y

v

Cxˆ – Du – ( ) + + =

u y

v

E ww

T

( ) Q

n

, = E v v

T

( ) R

n

, = E wv

T

( ) N

n

=

L

E x xˆ – ( ) x xˆ – ( )

T

( )

t ∞ →

lim

x xˆ –

xˆ

u

y

v

Kalman

est imat or

7 Control Design Tools

7-10

LQG Regulator

To for m t he LQG r egulat or , simply connect t he Kalman filt er and LQ-opt imal

gain as shown below:

This r egulat or has st at e-space equat ions

LQG Design Tools

The Cont r ol Syst em Toolbox cont ains funct ions t o per for m t he t hr ee LQG

design st eps out lined above. These funct ions cover bot h cont inuous and

K

w

u

y

v

+

+ y

v

xˆ

K –

LQG r egulat or

u

Plant

Kalman

filt er

x

ˆ

·

A L C – B L D – ( )K –

xˆ L y

v

+ =

u Kxˆ – =

LQG Design

7-11

discr et e pr oblems as well as t he design of discr et e LQG r egulat or s for

cont inuous plant s.

See t he case st udy on page 9-31 for an example of LQG design. You can also use

t he funct ions kalman and kalmd t o per for m Kalman filt er ing; see t he case st udy

on page 9-50 for det ails.

LQG Design

care Solve cont inuous-t ime algebr aic Riccat i equat ions.

dare Solve discr et e-t ime algebr aic Riccat i equat ions.

dlqr LQ-opt imal gain for discr et e syst ems.

kalman Kalman est imat or.

kalmd Discr et e Kalman est imat or for cont inuous plant .

lqgreg For m LQG r egulat or given LQ gain and Kalman

filt er.

lqr LQ-opt imal gain for cont inuous syst ems.

lqrd Discr et e LQ gain for cont inuous plant .

lqry LQ-opt imal gain wit h out put weight ing.

7 Control Design Tools

7-12

8

The Root Locus Design

GUI

Introduct i on . . . . . . . . . . . . . . . . . . . . 8-2

A Servomechani sm Example . . . . . . . . . . . . 8-4

Cont roller De si gn Us i ng the Root Locus De s i gn GUI . . 8-6

Opening t he Root Locus Design GUI . . . . . . . . . . . 8-6

Impor t ing Models int o t he Root Locus Design GUI . . . . . 8-7

Changing t he Gain Set Point and Zooming . . . . . . . . 8-13

Displaying Syst em Responses . . . . . . . . . . . . . 8-20

Designing a Compensat or t o Meet Specificat ions . . . . . . 8-22

Saving t he Compensat or and Models . . . . . . . . . . 8-36

Addi ti onal Root Locus Des i gn GUI Features . . . . . 8-38

Specifying Design Models: Gener al Concept s . . . . . . . 8-38

Get t ing Help wit h t he Root Locus Design GUI . . . . . . . 8-39

Er asing Compensat or Poles and Zer os . . . . . . . . . . 8-41

List ing Poles and Zer os . . . . . . . . . . . . . . . . 8-41

Pr int ing t he Root Locus . . . . . . . . . . . . . . . . 8-44

Dr awing a Simulink Diagr am . . . . . . . . . . . . . 8-44

Conver t ing Bet ween Cont inuous and Discr et e Models . . . . 8-45

Clear ing Dat a . . . . . . . . . . . . . . . . . . . . 8-46

Refe re nce s . . . . . . . . . . . . . . . . . . . . . 8-48

8 The Root Locus Design GUI

8-2

Introduction

The r oot locus met hod is used t o descr ibe t he t r aject or ies in t he complex plane

of t he closed-loop poles of a SISO feedback syst em as one par amet er (usually a

gain) var ies over a cont inuous r ange of values.

Along wit h t he MATLAB command line funct ion rlocus, t he Cont r ol Syst em

Toolbox pr ovides t he Root Locus Design gr aphical user int er face (GUI) for

implement ing r oot locus met hods on single-input /single-out put (SISO) LTI

models defined using zpk, tf, or ss.

In addit ion t o plot t ing r oot loci, t he Root Locus Design GUI is an int er act ive

design t ool t hat can be used t o:

•Analyze t he r oot locus plot for a SISO LTI cont r ol syst em

•Specify t he par amet er s of a feedback compensat or : poles, zer os, and gain

•Examine how changing t he compensat or par amet er s effect s changes in t he

r oot locus and var ious closed-loop syst em r esponses (st ep r esponse, Bode

plot , Nyquist plot , or Nichols char t )

This chapt er explains how t o use t he Root Locus Design GUI, in par t , t hr ough

an example involving an elect r ohydr aulic ser vomechanism compr ised of an

elect r ohydr aulic amplifier , a valve, and a r am. These t ypes of

ser vomechanisms can be made quit e small, and ar e used for posit ion cont r ol.

Det ails on t he modeling of elect r ohydr aulic posit ion cont r ol mechanisms can be

found in [1].

Aft er an explanat ion of t he ser vomechanism cont r ol syst em, t he following

oper at ions on t he Root Locus Design GUI ar e cover ed in t he sect ion, “Cont r oller

Design Using t he Root Locus Design GUI” on page 8-6:

•Opening t he Root Locus Design GUI

•Impor t ing models int o t he Root Locus Design GUI

•Changing t he gain set point and zooming

•Displaying syst em r esponses

•Designing t he compensat or t o meet specificat ions:

- Specifying t he design r egion boundar ies on t he r oot locus

- Placing compensat or poles and zer os

Introduction

8-3

- Edit ing t he compensat or pole and zer o locat ions

- Opening t he LTI Viewer

•Saving t he compensat or and models t o t he wor kspace or t he disk

Ot her impor t ant feat ur es list ed below and not cover ed t hr ough t his example

ar e descr ibed in t he sect ion, “Addit ional Root Locus Design GUI Feat ur es” on

page 8-38:

•Specifying design models: gener al concept s

•Get t ing help wit h t he Root Locus Design GUI

•Er asing compensat or poles and zer os

•List ing poles and zer os

•Pr int ing t he r oot locus

•Dr awing a Simulink diagr am of t he closed-loop model

•Conver t ing bet ween cont inuous and discr et e models

•Clear ing dat a

8 The Root Locus Design GUI

8-4

A Servomechanism Example

A simple ver sion of an elect r ohydr aulic ser vomechanism model consist s of:

•A push-pull amplifier (a pair of elect r omagnet s)

•A sliding spool in a vessel of high pr essur e hydr aulic fluid

•Valve openings in t he vessel t o allow for fluid t o flow

•A cent r al chamber wit h a pist on-dr iven r am t o deliver for ce t o a load

•A symmet r ical fluid r et ur n vessel

The for ce on t he spool is pr opor t ional t o t he cur r ent in t he elect r omagnet coil.

As t he spool moves, t he valve opens, allowing t he high pr essur e hydr aulic fluid

t o flow t hr ough t he chamber . The moving fluid for ces t he pist on t o move in t he

opposit e dir ect ion of t he spool. In [1], linear ized models for t he elect r omagnet ic

amplifier , t he valve spool dynamics, and t he r am dynamics ar e der ived, and a

det ailed descr ipt ion of t his t ype of ser vomechanism is pr ovided.

A schemat ic of t his ser vomechanism is depict ed below.

If you want t o use t his ser vomechanism for posit ion cont r ol, you can use t he

input volt age t o t he elect r omagnet t o cont r ol t he r am posit ion. When

measur ement s of t he r am posit ion ar e available, you can use feedback for t he

r am posit ion cont r ol.

Return

Pressure

Load

Push-pull

amplifier

Push-pull

amplifier

Piston-driven ram

Spool

Hydraulic fluid

A Servomechanism Example

8-5

A closed-loop model for t he elect r ohydr aulic valve posit ion cont r ol can be set up

as follows.

Figure 8-1: Feedback Control for an Electrohydraulic

Servomechanism

K(s) r epr esent s t he compensat or for you t o design. This compensat or can be

eit her a gain or a mor e gener al LTI syst em.

A linear ized plant model for t he elect r ohydr aulic posit ion cont r ol mechanism is

given by

For t his example, you want t o design a cont r oller so t hat t he st ep r esponse of

t he closed-loop syst em meet s t he following specificat ions:

•The t wo-per cent set t ling t ime is less t han 0.05 seconds.

•The maximum over shoot is less t han 5 per cent .

For det ails on how t hese specificat ions ar e defined, see [2].

In t he r emainder of t his chapt er you lear n how t o use t he Root Locus Design

GUI. In t he pr ocess, you design a cont r oller t o meet t hese specificat ions.

+

–

G

s er v o

s ( )

K(s)

Compensator

Servomechanism

Ram Position

Desired Ram

Position

Linearized

G

s er v o

s ( )

4 10

7

×

s s 250 + ( ) s

2

40s 9 10

4

× + + ( )

------------------------------------------------------------------------------- =

8 The Root Locus Design GUI

8-6

Controller Design Using the Root Locus Design GUI

In t his sect ion, we use t he ser vomechanism example t o descr ibe some of t he

main Root Locus Design GUI feat ur es and oper at ions:

•Opening t he Root Locus Design GUI

•Impor t ing models int o t he Root Locus Design GUI:

- Opening t he Import LTI De si gn Model window

- Choosing a feedback st r uct ur e

- Specifying t he design model

•Changing t he gain set point and zooming:

- Dr agging closed-loop poles t o change t he gain set point

- Zooming

- St or ing and r et r ieving axes limit s

•Displaying syst em r esponses

•Designing t he compensat or t o meet specificat ions:

- Specifying t he design r egion boundar ies on t he r oot locus

- Placing compensat or poles and zer os: gener al infor mat ion

- Placing compensat or poles and zer os using t he r oot locus t oolbar

- Edit ing compensat or pole and zer o locat ions

•Saving t he compensat or and models t o t he wor kspace or t he disk

Opening the Root Locus Design GUI

To open t he Root Locus Design GUI, at t he MATLAB pr ompt t ype

rltool

Controller Design Using the Root Locus Design GUI

8-7

This br ings up t he following GUI.

Importing Models into the Root Locus Design GUI

The Root Locus Design GUI oper at es on SISO LTI models const r uct ed using

eit her tf, zpk, or ss (for det ail on cr eat ing models, see “Cr eat ing LTI Models”

in Chapt er 2).

Status bar for providing

Click on these boxes to open

Zoom into or out of

Save/retrieve root locus

axes limits and aspect ratios

the root locus plot.

Click on K to view/change the

compensator, and on P, F, or H to view

the design model characteristics.

The feedback structure:

system response analysis tools.

These are the main menus for importing/

exporting of models, and editing them. You

can also perform discrete/continuous conversion.

Edit the gain set

point to change

the closed-loop

pole locations.

Compensator de-

scription: The de-

fault compensator

is K=1.

Root locus toolbar buttons to

drag, add, or erase compensa-

tor poles and zeros, or to drag

the closed-loop poles

Plot region to display

the root locus

Toggle between

positive/negative

feedback.

information

8 The Root Locus Design GUI

8-8

Ther e ar e four ways t o impor t SISO LTI models int o t he Root Locus Design

GUI:

•Load a model fr om t he MATLAB wor kspace.

•Load a model fr om a MAT-file on your disk.

•Load SISO LTI blocks fr om an open or saved Simulink diagr am.

•Cr eat e models using tf, ss, or zpk wit hin t he GUI.

You can also use any combinat ion of t hese met hods t o impor t models for r oot

locus analysis and design. However , befor e you can impor t a model int o t he

Root Locus Design GUI fr om t he MATLAB wor kspace, you must have at least

one SISO LTI model loaded int o your wor kspace. Similar r equir ement s hold for

loading models fr om t he disk or an open Simulink diagr am.

For t his example, we impor t our ser vomechanism model for r oot locus analysis

fr om t he MATLAB wor kspace. You can find a zer o-pole-gain model for

in a set of LTI models pr ovided in t he file LTIexamples.MAT.

To load t hese LTI models, at t he MATLAB pr ompt t ype

load LTIexamples

The model for t he posit ion cont r ol syst em is cont ained in t he var iable Gservo.

To view t he infor mat ion on t his model, at t he MATLAB pr ompt t ype

Gservo

Now t hat a model for is loaded int o t he wor kspace, you can begin

your r oot locus analysis and design for t his example.

Ther e ar e t hr ee st eps involved in impor t ing a model for our example cover ed in

t his sect ion:

•Opening t he Import LTI Des i gn Model window

•Choosing a feedback st r uct ur e

•Specifying t he design model

G

s er v o

s ( )

G

s er v o

s ( )

Controller Design Using the Root Locus Design GUI

8-9

Opening the Import LTI Design Model Window

To impor t t he linear ized elect r ohydr aulic ser vomechanism model int o t he Root

Locus Design GUI, fir st open t he Import LTI Des i gn Model window. To do

t his, select t he Import Model menu it em in t he Fi le menu.

The Import LTI Des i gn Model window t hat appear s on your scr een is as

follows.

8 The Root Locus Design GUI

8-10

Choosing a Feedback Structure

The Root Locus design t ool can be applied t o SISO LTI syst ems whose feedback

st r uct ur e is in one of t he following t wo configur at ions.

Diagram of feedback

structure

F,P, and H compose

the design model.

Click on the appropriate arrow to

transfer a model from the list to a

design model component.

Toggle button

for the feedback

structure

Edit the name of the

overall design model.

This name appears on

the title bar of the Root

Locus Design GUI.

Variable names for the design

model components appear here if

you use the transfer arrows. You

can also use tf, zpk, and ss

to create a model in the text box.

Model listbox: lists available LTI

models or blocks.

SISO LTI models can be imported from either

the workspace or disk. SISO LTI blocks can be

imported from saved or open Simulink models.

Default feedback structure

Controller Design Using the Root Locus Design GUI

8-11

The Fe edback Structure por t ion of t he Import LTI De si gn Mode l window

shows t he cur r ent select ion for t he closed-loop st r uct ur e. The Other but t on

t oggles t he locat ion of t he compensat or bet ween t he t wo configur at ions shown

above. For t his example you want t he compensat or in t he for war d pat h.

Specifying the Design Model

The SISO LTI models in eit her feedback configur at ion ar e coded as follows:

•F r epr esent s a pr e-filt er .

•P is t he plant model.

•H is t he sensor dynamics.

•K is t he compensat or t o be designed.

In t er ms of t he GUI design pr ocedur e, once t hey ar e set , F, P, and H ar e fixed

in t he feedback st r uct ur e. This t r iple, along wit h t he choice of feedback

st r uct ur e, is r efer r ed t o t hr oughout t his chapt er as t he design model.

The default values for F, P, H, and K ar e all 1.

When you specify your design model, in addit ion t o F, P, H, and t he feedback

st r uct ur e, you can specify t he design model name. To name t he design model,

click in t he edit able t ext box in t he Import LTI De si gn Mode l window below

Name , and ent er t he name you want for t he design model. For t his example,

change t he design model name t o Gservo.

To specify F, P, and H for t his example, we use t he Works pace r adio but t on,

which is t he default select ion. A list of t he LTI object s in your wor kspace

appear s in t he model list box under Workspace Conte nts.

In gener al, t o impor t design model component s fr om t he wor kspace t o t he GUI:

1 Select a given model in t he Workspace Contents list box t o be loaded int o

eit her F, P, or H.

2 Click on t he ar r ow but t ons next t o t he design model component you want t o

specify.

8 The Root Locus Design GUI

8-12

To specify t he design model component s for t his ser vomechanism example:

1 Load t he linear ized ser vomechanism model Gservo int o t he plant P, by fir st

select ing it and t hen select ing t he ar r ow but t on.

The Import LTI Desi gn Model window looks like t his aft er you specify bot h

t he plant , P, and t he model name as Gservo.

2 Pr ess t he OK but t on.

Use the arrow buttons to transfer selected models

from the listbox to the design model components,

in this case, to the plant, P.

Controller Design Using the Root Locus Design GUI

8-13

The r oot locus of t he design model is displayed in t he plot r egion of t he GUI.

Your Root Locus Design GUI looks like t his.

Not ice t hat t he design model name appear s in t he t it le bar .

Changing the Gain Set Point and Zooming

The gain set point is t he value of t he gain you apply t o t he compensat or t o

det er mine t he closed-loop poles. This value appear s in t he Gai n t ext box on t he

GUI.

In t his sect ion, we use some of t he basic funct ions of t he Root Locus Design GUI

t o analyze a r oot locus in t he plot r egion. We cover how t o change t he gain set

point , along wit h t he closed-loop pole locat ions, and how t o use t he GUI zoom

t ools.

Let ’s begin by seeing how much gain you can apply t o t he compensat or and st ill

r et ain st abilit y of t he closed-loop syst em.

The r ed squar es on each br anch of t he r oot locus mar k t he locat ions of t he

closed-loop poles associat ed wit h t he gain set point . The syst em becomes

.

The (red) squares

are the closed-loop

poles corresponding

to the value of the

compensator gain.

The feedback structure

selected in the Import LTI

Design Model window

8 The Root Locus Design GUI

8-14

unst able if t he gain set point is incr eased so as t o place any of t he closed-loop

poles in t he r ight -half of t he complex plane.

You can t est t he limit s of st abilit y by eit her :

•Dr agging t he closed-loop poles ar ound t he locus t o change t he gain set point

•Changing t he gain set point manually

In t his example we do t he for mer .

Dragging Closed-loop Poles to Change the Gain Set Point

To see by how much t he gain can be incr eased while maint aining t he

closed-loop poles in t he left -half of t he complex plane:

1 Move t he mouse point er over a r ed squar e mar king one of t he complex poles

near est t he imaginar y axis. Not ice how t he point er becomes a hand.

2 Gr ab t he closed-loop pole by holding down t he left mouse but t on when t he

hand appear s.

3 Dr ag t he pole close t o t he imaginar y axis.

4 Release t he mouse but t on. The gain changes as t he closed-loop set point is

r ecomput ed.

Controller Design Using the Root Locus Design GUI

8-15

The following t wo figur es capt ur e t his pr ocedur e.

The r ight -most pair of closed-loop poles seem t o be on t he imaginar y axis.

Act ually, t hey ar e only close. Let ’s use t he zoom cont r ols t o impr ove t his r esult .

Zooming

You can use t he Zoom cont r ols on t he lower r ight of t he Root Locus Design GUI

t o zoom in on a r egion of t he locus, or zoom out t o show t he ent ir e locus.

As you get close to a closed-

loop pole on the locus, the

mouse pointer becomes a hand.

The poles appear to be on the imaginary

axis.

8 The Root Locus Design GUI

8-16

The Zoom cont r ols ar e shown below.

Once it is select ed, you can oper at e any of t he fir st t hr ee Zoom but t ons in one

of t wo ways.

•Use your mouse t o rubberband ar ound t he ar ea on t he plot r egion you want

t o focus on. Rubber banding involves clicking and holding t he mouse down,

while dr agging t he mouse point er ar ound t he r egion of int er est on t he scr een.

•Click in t he plot r egion in t he vicinit y on which you want t o focus.

To move t he closed-loop poles closer t o t he imaginar y axis on your r oot locus by

zooming wit h t he r ubber band met hod:

1 Zoom in X-Y by select ing t he left -most Zoom but t on.

2 Use your mouse t o r ubber band t he r egion of t he imaginar y axis near t he

closed-loop pole t her e.

3 Readjust t he closed-loop pole posit ion by gr abbing it wit h t he mouse and

moving it unt il it r est s on t he imaginar y axis.

4 Zoom out by clicking on t he four t h Zoom but t on, (t he icon is a pair of

binocular s).

Zoom in both the x- and

y- directions.

Zoom in the x-direction.

Zoom in the y-direction.

Zoom out to full view.

Controller Design Using the Root Locus Design GUI

8-17

The use of zooming t o find t he limit s of st abilit y on t he r oot locus is depict ed in

t he following t hr ee figur es.

After you drag that pole close to

the imaginary axis, use the left-most

Zoom button to zoom in.

Move the closed-loop pole to

the imaginary axis to fine-tune

your gain adjustment.

8 The Root Locus Design GUI

8-18

The cr it ical gain value for st abilit y is appr oximat ely 43.9.

Note: You can also t est how much t he gain can be incr eased while

maint aining st abilit y by ar bit r ar ily applying differ ent values of t he gain in

t he t ext ar ea next t o Gai n (pr essing t he Ente r key aft er ent er ing each value)

unt il one pair of complex poles r eaches t he imaginar y axis.

Aft er using t he zoom t ools on t he GUI, you may want t o st or e one set of zoom

focus set t ings so t hat you may lat er r et ur n t o focus on t hat same r egion of t he

locus.

Use the right-most Zoom button

to zoom out.

The limiting gain set point for

stability

You can also store this zoom focus set-

ting using the Axes settings described

in the next section.

Controller Design Using the Root Locus Design GUI

8-19

Storing and Retrieving Axes Limits

You can st or e and change axes limit s in t wo ways:

•Using t he Axe s se tti ngs t oolbar

•Using t he Set Axes Pre ferences menu it em fr om t he Tools menu

For mor e infor mat ion on squar e axes and/or equal axes, t ype help axis at t he

command line.

To use t he Axes se tti ngs t oolbar t o save t he cur r ent axes limit s, select t he

left -most but t on shown below.

If you change t he axes limit s by zooming, you can always r et ur n t o t he saved

axes limit s by select ing t he second Axes se tti ngs but t on.

To t r y out t hese t ools:

•Select t he left -most Axes setti ngs but t on.

•Zoom in on a r egion of t he r oot locus.

•Select t he second Axes setti ngs but t on.

Save current axes

limits.

Retrieve a set of

saved axes limits.

Toggle the axes between

a square and rectangle.

Toggle the aspect ratio

of the axes between

equal and unequal.

8 The Root Locus Design GUI

8-20

You can also set or r evise axes limit s and ot her axes pr efer ences in t he Root

Locus Axes Pre ferences window. To open t his window, select Set Axes

Prefere nces fr om t he Tools menu.

If you have alr eady st or ed axes limit s using Axes s etti ngs , t hese limit s appear

in t his window in t he Li mi ts field. You can r eset t hese limit s by t yping in new

values. To apply any changes t o t he ent r ies in t his window, click on OK aft er

making t he changes.

Displaying System Responses

Befor e you design your compensat or , you may want t o conduct some r esponse

analysis of your closed-loop syst em evaluat ed at a fixed value of t he gain.

You can access some of t he syst em r esponse analysis capabilit ies of t he LTI

Viewer (see Chapt er 6, “The LTI Viewer ”) t hr ough t he checkboxes locat ed in

t he lower por t ion of t he Root Locus Design GUI. Checking one or sever al of

t hese boxes opens an LTI Viewer window t hat displays t he cor r esponding plot s.

The LTI Viewer window t hat opens is dynamically linked t o t he Root Locus

Design GUI: any changes made t o t he syst em on t he GUI t hat affect t he gain

set point will effect a cor r esponding change on t he displayed LTI Viewer plot s.

For t his example, we want t o know if t he st ep r esponse meet s our design

cr it er ia. The cur r ent value for t he gain set point is about 44. Clear ly t his value

of t he gain would t est t he limit s of st abilit y of our syst em. Let ’s choose a

r easonable value for t he gain (say, 20) and look at t he st ep r esponse.

You can also use this window to change the

colors of the root locus plot and the compen-

sator poles and zeros, and the color and type

of marker used for the closed-loop poles.

Type of marker used to desig-

nate the closed-loop poles

Select Apply to implement changes and keep this window

open. Select OK to implement changes and close the window.

Controller Design Using the Root Locus Design GUI

8-21

Change t he gain t o 20 by edit ing t he t ext box next t o Gai n, and pr essing t he

Enter key. Not ice t hat t he locat ions of t he closed-loop poles on t he r oot locus

ar e r ecalculat ed for t he new gain set point .

Your Root Locus Design GUI looks like t his now.

8 The Root Locus Design GUI

8-22

Check t he Ste p box, as shown below.

Once you check t he Step box, an LTI Viewer window opens. The plot t ype for

t his LTI Viewer is t he st ep r esponse and t his cannot be changed.

This closed-loop r esponse does not meet t he desir ed set t ling t ime r equir ement

(.05 seconds or less). You can design a compensat or so t hat you do meet t he

r equir ed specificat ions.

Designing a Compensator to Meet Specifications

Since t he cur r ent closed-loop syst em doesn’t meet bot h of t he r equir ed design

specificat ions, let ’s fir st t r y incr easing t he gain t o about 33. You can incr ease

t he gain in t wo ways:

•Edit t he Gai n t ext box and pr ess t he Ente r key.

•Move t he closed loop set point ar ound wit h t he mouse, while incr easing t he

gain.

Controller Design Using the Root Locus Design GUI

8-23

To incr ease t he gain t o about 33 using your mouse:

1 Hold your mouse but t on down as you click on any of t he r ed squar es.

2 Dr ag t he squar e in t he dir ect ion of incr easing gain, wit hout allowing any of

t he closed-loop poles t o ent er t he r ight half of t he complex plane. If, when

you st ar t t o move t he r ed squar e, you see t he gain value in t he Gai n box

decr easing, dr ag it in t he opposit e dir ect ion.

3 Release t he mouse but t on when t he gain is near 33.

Your GUI looks like t his.

8 The Root Locus Design GUI

8-24

The st ep r esponse plot on t he dynamically linked LTI Viewer aut omat ically

updat es when you r elease t he mouse but t on.

As you may have not iced, t he r esponse t ime decr eases wit h incr easing gain,

while t he over shoot incr eases. Her e we no longer meet t he over shoot

r equir ement . Since t his gain is alr eady r elat ively lar ge, it ’s likely t hat we will

not be able t o meet bot h design r equir ement s using only a gain for t he

compensat or . This conject ur e is suppor t ed when you specify t he design r egion

boundar ies on t he r oot locus for t hese design r equir ement s. We do t his in t he

next subsect ion.

Specifying Design Region Boundaries on the Root Locus

If, as in our example, your design cr it er ia ar e specified in t er ms of st ep

r esponse char act er ist ics, you may want t o use t he gr id and boundar y

const r aint opt ions t hat ar e accessible fr om t he Add Gri d/Boundary menu it em

in t he Tools menu on t he Root Locus Design GUI. These opt ions allow you t o

use second or der syst em design cr it er ia t o inscr ibe t he boundar ies of design

r egion dir ect ly on t he r oot locus plot , or apply a gr id t o t he plot .

Note: The boundar ies you apply t o t he Root Locus Design GUI based on LTI

syst em design cr it er ia (set t ling t ime, damping r at io, nat ur al fr equency, and

peak over shoot ) ar e comput ed r elat ive t o second-or der syst ems only.

Ther efor e, for higher or der syst ems, t hese boundar ies pr ovide appr oximat ions

t o t he design r egion.

Controller Design Using the Root Locus Design GUI

8-25

Let ’s place appr oximat e design r egion boundar ies on our r oot locus plot based

on our design specificat ions. To do so, select t he Add Gri d/Boundary menu

it em in t he Tools menu.

Our design specificat ions r equir e t hat t he (2 per cent ) set t ling t ime be less t han

.05 seconds, and t he maximum over shoot less t han 5 per cent . For second-or der

syst ems, t he over shoot r equir ement can be t r anslat ed dir ect ly as a

r equir ement on t he damping r at io of about .7 (see [2]).

Aft er you ent er t hese values in t he appr opr iat e t ext fields for our specificat ions,

your Gri d and Cons trai nt Opti ons window looks like t his.

Check this box to place a grid on the root locus,

either for lines of constant damping ratio (with circles

of constant natural frequency), or lines of constant peak

overshoot.

You can enter lists of numbers here to

specify several boundaries for any of

these criteria. Separate numbers in a

list by spaces or commas.

Checks in these boxes indicate the boundaries will appear on the root

locus once you select OK or Apply. Unchecking them toggles the

boundary off.

8 The Root Locus Design GUI

8-26

Aft er you pr ess OK, t he Root Locus Design GUI calculat es and displays t he

specified boundar ies.

Not all four br anches of t he r oot locus ar e wit hin t he design r egion. Let ’s t r y

adding poles and zer os t o our compensat or t o see if we can meet t he design

cr it er ia.

Placing Compensator Poles and Zeros: General Information

Ther e ar e t hr ee t ypes of par amet er s specifying t he compensat or :

•Poles

•Zer os

•Gain

Damping ratio boundary

Settling time boundary

The design region lies

within this wedge to the

left of the settling time

boundary.

Controller Design Using the Root Locus Design GUI

8-27

Once you have t he gain specified, you can add poles or zer os t o t he

compensat or . You can add poles and zer os t o t he compensat or (or r emove t hem)

in t wo ways:

•Use but t ons on t he r oot locus t oolbar sect ion of t he GUI for pole/zer o

placement .

•Use t he Edi t Compens ator menu it em on t he Tools menu.

The r oot locus t oolbar is convenient for graphically placing compensat or poles

and zer os so t hat you meet t he design specificat ions for a given gain set point .

This met hod may r equir e a cer t ain amount of t r ial and er r or .

You can use t he Edi t Compe nsator menu it em t o:

•Fine-t une compensat or par amet er values for design implement at ion.

•Revise or implement an exist ing compensat or design.

For t his example we fir st use t he r oot locus t oolbar t o place compensat or poles

and zer os on t he r oot locus, and t hen use t he Edi t Compens ator menu it em t o

set t he compensat or pole and zer o locat ions for a specific compensat or solut ion.

Placing Compensator Poles and Zeros Using the Root Locus Toolbar

The r oot locus t oolbar is locat ed on t he left side of t he GUI, above t he plot

r egion. The figur e below descr ibes t he r oot locus t oolbar but t ons.

Drag compensator poles

and zeros and closed-loop

Operate in default mode:

Add compensator

poles.

Add compensator

zeros.

Erase compensator

poles/zeros.

Edit the compensator gain.

poles.

8 The Root Locus Design GUI

8-28

The default mode for t he t oolbar is t he drag mode. In t his mode, you can:

•Click on a specific locat ion on t he r oot locus t o place a closed-loop pole t her e

(and consequent ly r eassign t he gain set point ).

•Dr ag any of t he closed-loop poles along it s br anch of t he r oot locus (also

r eassigning t he gain set point ).

•Dr ag any of t he compensat or poles or zer os ar ound t he complex plane t o

change t he compensat or .

To add a complex conjugat e compensat or pole pair on t he r oot locus plot :

1 Select t he add pole but t on (t he second but t on in t he r oot locus t oolbar ).

2 Click on t he plot r egion wher e you would like t o add one of t he complex poles.

Some of t he feat ur es of using t he r oot locus t oolbar t o add a pole ar e:

•While t he add pole but t on is depr essed, t he cur sor changes t o an ar r ow wit h

an x at it s t ip whenever it is over t he plot r egion. This indicat es t he t oolbar

is in t he “add pole” mode.

•Aft er you add t he poles, t he add pole but t on pops back up and t he default

drag mode is r est or ed. The added compensat or poles appear in a differ ent

color . The default color is r ed.

•The LTI Viewer r esponse plot s change as soon as t he pole is added.

•The t ext displayed in t he Current Compens ator r egion of t he GUI now

displays t he new pair of poles.

Controller Design Using the Root Locus Design GUI

8-29

Tr y placing a pair of complex poles just above t he r ight -most r eal closed-loop

pole. The r esult ing r oot locus plot looks like t his.

Similar ly, t o add a pair of complex zer os t o t he compensat or :

1 Select t he add zero but t on fr om t he r oot locus t oolbar (t hir d but t on fr om t he

left ).

2 Click on t he plot r egion wher e you would like t o add one of t he complex zer os.

Add compensator poles here.

8 The Root Locus Design GUI

8-30

Tr y adding a pair of complex zer os just t o t he left of and a lit t le bit below t he

complex closed-loop poles closest t o t he imaginar y axis. The r esult ing r oot locus

and st ep r esponse plot s ar e as follows.

If your st ep r esponse is unst able, lower t he gain. In t his example, t he r esult ing

st ep r esponse is st able, but it st ill doesn’t meet t he design cr it er ia.

As you can see, t he compensat or design pr ocess can involve some t r ial and

er r or . You can t r y dr agging t he compensat or poles, compensat or zer os, or t he

closed-loop poles ar ound t he r oot locus unt il you meet t he design cr it er ia.

Alt er nat ively, you can edit t he compensat or using t he solut ion pr ovided in t he

next sect ion.

Note: You can follow t he same pr ocedur e t o add a single r eal pole or zer o t o

t he compensat or by clicking on t he r eal axis.

Add compensator zeros here.

Controller Design Using the Root Locus Design GUI

8-31

Editing Compensator Pole and Zero Locations

In t his sect ion we use t he Edi t Compe nsator window t o design a compensat or

wit h t he following char act er ist ics:

•Gain:

•Poles:

•Zer os:

You can access t he Edi t Compensator window in one of t hr ee ways:

•Double-click on any of t he Current Compe ns ator t ext .

•Click on t he (blue) compensat or block in t he feedback st r uct ur e on t he GUI.

•Select Edi t Compensator fr om t he Tools menu.

This figur e shows how t o choose t his menu it em on t he GUI.

Wit h eit her met hod, you open t he Edi t Compensator window shown in t he

figur e below.

9.7

110 – 140i t

70 – 270i t

8 The Root Locus Design GUI

8-32

You can use t he Edi t Compens ator window t o:

•Edit t he locat ions of compensat or poles and zer os.

•Add compensat or poles and zer os.

•Delet e compensat or poles and zer os.

•Change t he name of t he compensat or (This name is used when expor t ing t he

compensat or ).

For t his example, edit t he poles and zer os t o be at and

r espect ively.

Your GUI looks like t his.

If, in addit ion, you want t o add poles t o t he compensat or :

1 Click on Add Pole . A new edit able t ext field appear s.

2 Ent er t he new pole locat ion in t he t ext field.

The pr ocedur e is t he same for adding zer os, only use t he Add Zero but t on in

place of t he Add Pole but t on. To er ase any poles or zer os, select t he Dele te

checkbox.

Befor e closing t his window by select ing OK, you can also opt ionally change t he

name of t he compensat or .

Note: You can also er ase poles or zer os on t he r oot locus using t he er ase

but t on on t he r oot locus t oolbar. See “Er asing Compensat or Poles and Zer os”

on page 8-41

110 – 140i , t

70 – 270i , t

Controller Design Using the Root Locus Design GUI

8-33

Wit h t he gain set point at 9.7, your r oot locus looks as follows.

Note: Whenever t he numer at or or denominat or ar e t oo long for t he Current

Compens ator field, a default numK or denK is displayed. To display t he

act ual numer at or or denominat or, r esize t he Root Locus Design GUI.

8 The Root Locus Design GUI

8-34

To check wher e t he closed-loop r oot s ar e wit h r espect t o t he boundar y of t he

design r egion, let ’s zoom in a bit .

We don’t have all of t he closed-loop poles in t he design r egion, but let ’s see if we

meet t he st ep r esponse specificat ions. The updat ed LTI Viewer plot of t he st ep

r esponse looks like t his.

Controller Design Using the Root Locus Design GUI

8-35

The st ep r esponse looks good. However , t o be cer t ain t hat you’ve met your

design specificat ions, you can check t he set t ling t ime and peak r esponse

char act er ist ics fr om t he r ight -click menu. To do t his:

1 Right -click anywher e in t he plot r egion.

2 Select Settli ng Ti me fr om t he Characte ri s ti cs menu.

3 Set your mouse point er t o t he set t ling t ime mar ker and click t o display t he

value.

The LTI Viewer will look like t his.

As you can see, t he set t ling t ime is less t han .05 seconds, and t he over shoot is

less t han 5 per cent . You’ve met t he design specificat ions and you’r e done. You

didn’t need your closed-loop poles t o be ent ir ely in t he design r egion, because

you act ually have a sixt h-or der syst em wit h some fast dynamics, as opposed t o

having only a second-or der syst em.

Marker for the

settling time

8 The Root Locus Design GUI

8-36

Saving the Compensator and Models

Now t hat you have successfully designed your compensat or , you may want t o

save your design par amet er s for fut ur e implement at ion. You can do t his by

select ing Export fr om t he Fi le menu on t he Root Locus Design GUI. The

window shown below opens.

The var iable list ed in t he Export Li s t on t he Export LTI Mode ls /

Compe nsators GUI ar e eit her pr eviously named by you (on t he Li st Mode l

Poles /Ze ros or t he Edi t Compe nsator windows) or have default names. They

ar e coded as follows:

•DM: The design model

•OL: The open-loop model

•CL: The closed-loop model

•K: The compensat or

To expor t your compensat or t o t he wor kspace:

1 Select t he compensat or in t he Export Li s t.

2 Click on t he Export to Works pace but t on.

The Export LTI Model/Compens ators window is closed when you click on one

of t he expor t but t ons. If you go t o t he MATLAB pr ompt and t ype

who

Save to the disk as a

file with a .mat extension.

Save to the workspace.

Use your mouse to select or multi-

select models to save.

Controller Design Using the Root Locus Design GUI

8-37

t he compensat or is now in t he wor kspace, in t he var iable named comp.

Then t ype

comp

t o see t hat t his var iable is st or ed in zpk for mat .

8 The Root Locus Design GUI

8-38

Additional Root Locus Design GUI Features

This sect ion descr ibes sever al feat ur es of t he Root Locus Design GUI not

cover ed in t he ser vomechanism example. These ar e list ed as follows:

•Specifying design models: gener al concept s:

- Cr eat ing models manually wit hin t he GUI

- Designat ing t he model sour ce

•Get t ing help wit h t he Root Locus Design GUI

•Er asing compensat or poles and zer os

•List ing poles and zer os

•Pr int ing t he r oot locus

•Dr awing a Simulink diagr am of t he closed-loop model

•Conver t ing bet ween cont inuous and discr et e models

•Clear ing dat a

Specifying Design Models: General Concepts

In t his sect ion we pr ovide gener al concept s for specifying t he design model by

using one or bot h of t he following met hods:

•Cr eat ing models manually wit hin t he GUI

•Designat ing t he model sour ce:

- The MATLAB wor kspace

- A MAT-file

- An open or saved Simulink model

Creating Models Manually Within the GUI

You can cr eat e models for r oot locus analysis manually in t he Import LTI

De si gn Mode l window using tf, ss, or zpk. To do so, just edit t he t ext boxes

next t o P, F, or H using any of t hese MATLAB expr essions. You can also use a

scalar number t o specify P, F, or H.

Additional Root Locus Design GUI Features

8-39

Designating the Model Source

The sour ce of your design model dat a is indicat ed in t he Import From field

shown below.

If you ar e loading your models fr om MAT-files or Simulink models saved on

your disk, you ar e pr ompt ed t o ent er t he name of t he file in t he edit able t ext

box below t he Import From r adio but t ons. You can also select t he Brows e

but t on t o sear ch for and select t he file. The Si muli nk r adio but t on also allows

you t o load SISO LTI blocks fr om an open Simulink model, by ent er ing t he

name of t he model in t he t ext box.

When you select t he model sour ce, it s cont ent s ar e shown in t he model list box

locat ed in t he cent r al por t ion of t he Import LTI De si gn Mode l window. The

model list box cont ains t he following dat a:

•For Works pace or MAT-fi le : All LTI models in t he wor kspace, or in t he

select ed MAT-file

•For Si muli nk: All t he LTI blocks in t he select ed Simulink diagr am

Note: If you want t o load models saved in mor e t han one MAT-file, load t hese

int o t he MATLAB wor kspace before select ing Import Mode l on t he Root Locus

Design GUI.

Getting Help with the Root Locus Design GUI

You can obt ain inst r uct ions on how t o use t he Root Locus Design GUI eit her

using t he He lp menu, fr om t he st at us bar , or by using t he t oolt ips.

8 The Root Locus Design GUI

8-40

Using the Help Menu

Click on t he He lp menu and you find t hat it cont ains five menu it ems:

•Mai n Help

•Edi t Compensator

•Convert Model

•Add Gri d/Boundary

•Se t Axi s Pre fe rence s

The fir st menu it em, Mai n Help, opens a help window t hat descr ibes how t o

use t he cont r ols locat ed on t he Root Locus Design GUI. The r emaining menu

it ems pr ovide addit ional infor mat ion on t he feat ur es you can access fr om t he

Tools menu.

Using the Status Bar for Help

The st at us bar at t he bot t om of t he Root Locus Design GUI:

•Pr ovides you wit h infor mat ion, hint s, and er r or messages as you pr oceed

t hr ough your design.

•Let s you know if you have t r ied t o under t ake an act ion t he GUI is not capable

of, or if a GUI oper at ion you have per for med has successfully been

complet ed.

•Pr ovides infor mat ion about t he locat ion of newly placed compensat or poles

and zer os, as well as t he damping r at io, nat ur al fr equency, and locat ion of

poles and zer os as you dr ag t hem.

Tooltips

You can obt ain simple r eminder s (t oolt ips) on how t o use t he Root Locus Design

GUI by moving your mouse and put t ing t he cur sor over one of t hese feat ur es.

For example, if you put t he cur sor over t he Ste p checkbox, it s t oolt ip,

Clos ed-loop s te p re sponse , appear s just below t he but t on. When a t oolt ip is

available, a small bubble cont aining infor mat ion about t he feat ur e you select ed

appear s. This bubble disappear s when you move t he mouse again.

Additional Root Locus Design GUI Features

8-41

Erasing Compensator Poles and Zeros

You can delet e any compensat or poles and zer os in one of t wo ways:

•Check t he associat ed Dele te box on t he Edi t Compens ator... window

obt ained fr om t he Tools menu.

•Click on t he er ase but t on (four t h fr om left on t he r oot locus t oolbar ) and click

on t he pole or zer o t o delet e.

Aft er using t he r oot locus t oolbar er ase but t on t o delet e a pole or zer o, t he

following occur s:

•The er ase but t on pops up and t he default drag mode is r est or ed.

•The zer o or pole you er ased (and, if applicable, it s conjugat e) is r emoved fr om

t he r oot locus and fr om t he Curre nt Compensator t ext .

•The r oot locus plot and any linked LTI Viewer r esponse plot s ar e

r ecalculat ed.

Listing Poles and Zeros

At any point when t he Root Locus Design GUI is open, you can view:

•The closed-loop pole locat ions associat ed wit h t he cur r ent Gai n set t ing

•The poles, zer os, and gain of each design model component

8 The Root Locus Design GUI

8-42

To view t he cur r ent closed-loop poles:

•Select Li s t Close d-Loop Pole s fr om t he Tools menu. If you select t his menu,

a window list ing t he closed-loop poles associat ed wit h t he cur r ent gain set

point opens.

•Click on t he OK but t on t o close t he window.

Note: You cannot edit t he closed-loop pole locat ions list ed in t his window.

To view t he design model poles and zer os, you can eit her :

•Select t he Li s t Model Pole s/Zeros it em fr om t he Tools menu.

•Click on any of t he design model blocks in t he Fe edback Structure . These

ar e t he yellow F, P, and H blocks.

Additional Root Locus Design GUI Features

8-43

The following window opens.

For each component of t he design model, t his window t ells you:

•The component name

•The t ype of LTI model t hat t he component is (t hat is, ss, zpk, or tf)

•The component ’s pole and zer o locat ions

•The associat ed numer at or and denominat or of t he model t r ansfer funct ion

You can edit any of t he model names in t he t ext boxes pr ovided. Select ing OK

closes t his window and implement s t he changes you made t o design model

names.

Befor e closing t his window, you can also use t he Show Obje ct but t ons in t his

window t o pr ovide a MATLAB display of t he associat ed LTI model. The

following is t he infor mat ion pr ovided for t he plant .

Select OK t o close t his window.

8 The Root Locus Design GUI

8-44

Note: The names you ent er in t his window ar e only used when you gener at e

a Simulink diagr am of t he closed-loop st r uct ur e.

To list t he denominat or , (r espect ively, t he numer at or , including t he gain)

associat ed wit h a given component of t he design model, in t he Li st Mode l

Poles /Ze ros window, click on Pole s, (r espect ively, Zeros) of t hat component .

When you do, a window pr oviding t he select ed infor mat ion opens.

The Show Object but t on in t his window opens a dialog t hat displays t he LTI

model exact ly as it would be shown at t he MATLAB pr ompt .

Printing the Root Locus

You can pr int t he locus t he GUI is displaying by:

1 Select ing Pri nt Locus fr om t he Fi le menu

2 Clicking t he OK but t on on t he pr int er dialog t hat appear s

When you select Pri nt Locus a new MATLAB figur e window cont aining t he

locus appear s. This is t he figur e t hat is pr int ed when you pr ess OK.

Note: You can also gener at e t his r oot locus MATLAB figur e window by

select ing Se nd Locus to Fi gure fr om t he Fi le menu. This figur e r emains open

unt il you close it .

Drawing a Simulink Diagram

If you have Simulink, you can use t he Root Locus Design GUI t o aut omat ically

dr aw a Simulink diagr am of t he closed-loop st r uct ur e. To do t his:

1 Select Draw Si muli nk Di agram fr om t he Fi le menu.

2 Answer Yes t o t he subsequent dialog box quest ion t o confir m t hat you want

t he design model dat a t o be st or ed in t he wor kspace using it s cur r ent names,

or answer No t o t his quest ion, if you want t o abor t dr awing t he diagr am.

Additional Root Locus Design GUI Features

8-45

If you answer ed Ye s, a Simulink diagr am such as t his appear s.

The Simulink diagr am is linked t o t he wor kspace, not t o t he Root Locus Design

GUI. If you change your compensat or design in t he Root Locus Design GUI, you

must expor t it t o t he wor kspace in or der t o r eflect t hese changes in t he

Simulink diagr am.

Converting Between Continuous and Discrete

Models

The Root Locus Design GUI can be applied t o eit her discr et e or

cont inuous-t ime syst ems, and you can conver t bet ween t he t wo t ypes of

syst ems at any t ime dur ing t he design pr ocess. However , t he design model and

compensat or must bot h be eit her cont inuous or discr et e.

To obt ain t he discr et e equivalent of your cur r ent compensat or design, select

Conve rt Model/Compens ator fr om t he Tools menu.

The plant, P (Gservo)

The root locus

design compensator, K

Sensor dynamics, H

Pre-filter, F

8 The Root Locus Design GUI

8-46

The Conve rt Model/Compens ator window, shown below, opens.

Once you select a discr et izat ion met hod, sampling t ime, and cr it ical fr equency

(if r equir ed), click on t he OK but t on. The Convert Mode l/Compe nsator

window closes and t he discr et izat ion is per for med. At t his point :

•The design model and compensat or ar e discr et ized.

•The Current Compens ator t ext displays a syst em using t he complex

var iable 'z'.

•The r oot locus for t he discr et e-t ime syst em r epr esent ing t he conver t ed

cont inuous-t ime syst em is plot t ed.

•Any linked LTI Viewer r esponse plot s ar e updat ed.

•The gr ids and boundar ies ar e conver t ed int o t he discr et e plane.

You can also use t he Convert Mode l/Compe nsator GUI t o r et r ieve t he

cont inuous syst em, or t o r e-sample t he discr et e syst em using a differ ent

sampling t ime. These opt ions ar e select ed fr om t he r adio but t ons at t he t op of

t his GUI.

Clearing Data

You can clear t he design model and/or compensat or fr om t he Root Locus Design

GUI using opt ions available in t he Tools menu:

•Clear Mode l: r emoves t he plant , pr e-filt er , and sensor dynamics and

r eplaces t hem all wit h unit y gains.

•Cle ar Compens ator: r emoves t he compensat or poles and zer os, and r eset s

t he gain t o one.

Choose the discretization

method here.

Enter the sampling time.

Critical frequency is only

required for the Tustin

method.

Click on OK to convert

the model to your

specifications and close

this window.

Additional Root Locus Design GUI Features

8-47

To t est t hese feat ur es, select Clear Mode l. Not ice t hat your compensat or is not

alt er ed, and it s poles and zer os r emain plot t ed in t he r oot locus plot r egion of

t he GUI.

Now, select Cle ar Compens ator. The Root Locus Design GUI r et ur ns t o t he

st at e it was in when you fir st opened it and you ar e r eady t o st ar t a new design.

8 The Root Locus Design GUI

8-48

References

[1] Clar k, R.N., Control S ystem Dynamics, Cambr idge Univer sit y Pr ess, 1996.

[2] Dor f, R.C. and R.H. Bishop, Modern Control S ystems, 8t h Edit ion, Addison

Wesley, 1997.

9

Design Case St udies

Yaw Damper for a 747 J et Transport . . . . . . . . . 9-3

Open-Loop Analysis . . . . . . . . . . . . . . . . . 9-6

Root Locus Design . . . . . . . . . . . . . . . . . . 9-9

Washout Filt er Design . . . . . . . . . . . . . . . . 9-14

Hard-Di sk Re ad/Wri te Head Controlle r . . . . . . . . 9-20

LQG Regulati on . . . . . . . . . . . . . . . . . . 9-31

Pr ocess and Dist ur bance Models . . . . . . . . . . . . 9-31

LQG Design for t he x-Axis . . . . . . . . . . . . . . . 9-34

LQG Design for t he y-Axis . . . . . . . . . . . . . . . 9-42

Cr oss-Coupling Bet ween Axes . . . . . . . . . . . . . 9-43

MIMO LQG Design . . . . . . . . . . . . . . . . . . 9-47

Kalman Fi lt ering . . . . . . . . . . . . . . . . . . 9-50

Discr et e Kalman Filt er . . . . . . . . . . . . . . . . 9-50

St eady-St at e Design . . . . . . . . . . . . . . . . . 9-51

Time-Var ying Kalman Filt er . . . . . . . . . . . . . . 9-57

Time-Var ying Design . . . . . . . . . . . . . . . . . 9-58

Refer ences . . . . . . . . . . . . . . . . . . . . . 9-63

9 Design Case Studies

9-2

This chapt er cont ains four det ailed case st udies of cont r ol syst em design and

analysis using t he Cont r ol Syst em Toolbox.

Demonst r at ion files for t hese case st udies ar e available as jetdemo.m,

diskdemo.m, milldemo.m, and kalmdemo.m. To r un any of t hese demonst r at ions,

t ype t he cor r esponding name at t he command line, for example,

jetdemo

Case St udy 1 A yaw damper for a 747 jet t r anspor t air cr aft t hat

illust r at es t he classical design pr ocess.

Case St udy 2 A har d-disk r ead/wr it e head cont r oller t hat illust r at es

classical digit al cont r oller design.

Case St udy 3 LQG r egulat ion of t he beam t hickness in a st eel r olling

mill.

Case St udy 4 Kalman filt er ing t hat illust r at es bot h st eady-st at e and

t ime-var ying Kalman filt er design and simulat ion.

Yaw Damper for a 747 Jet Transport

9-3

Yaw Damper for a 747 Jet Transport

This case st udy demonst r at es t he t ools for classical cont r ol design by st epping

t hr ough t he design of a yaw damper for a 747 jet t r anspor t air cr aft .

The jet model dur ing cr uise flight at MACH = 0.8 and H = 40,000 ft . is

A = [–0.0558 –0.9968 0.0802 0.0415

0.5980 –0.1150 –0.0318 0

–3.0500 0.3880 –0.4650 0

0 0.0805 1.0000 0];

B = [ 0.0729 0.0000

–4.7500 0.00775

1.5300 0.1430

0 0];

C = [0 1 0 0

0 0 0 1];

D = [0 0

0 0];

The following commands specify t his st at e-space model as an LTI object and

at t ach names t o t he st at es, input s, and out put s.

states = {'beta' 'yaw' 'roll' 'phi'};

inputs = {'rudder' 'aileron'};

output = {'yaw' 'bank angle'};

sys = ss(A,B,C,D,'statename',states,...

'inputname',inputs,...

'outputname',outputs);

9 Design Case Studies

9-4

You can display t he LTI model sys by t yping sys. MATLAB r esponds wit h

a =

beta yaw roll phi

beta -0.0558 -0.9968 0.0802 0.0415

yaw 0.598 -0.115 -0.0318 0

roll -3.05 0.388 -0.465 0

phi 0 0.0805 1 0

b =

rudder aileron

beta 0.00729 0

yaw -0.475 0.00775

roll 0.153 0.143

phi 0 0

c =

beta yaw roll phi

yaw 0 1 0 0

bank angle 0 0 0 1

d =

rudder aileron

yaw 0 0

bank angle 0 0

Continuous-time model.

The model has t wo input s and t wo out put s. The unit s ar e r adians for beta

(sideslip angle) and phi (bank angle) and r adians/sec for yaw (yaw r at e) and

roll (r oll r at e). The r udder and ailer on deflect ions ar e in r adians as well.

Yaw Damper for a 747 Jet Transport

9-5

Comput e t he open-loop eigenvalues and plot t hem in t he -plane.

damp(sys)

Eigenvalue Damping Freq. (rad/s)

-7.28e-003 1.00e+000 7.28e-003

-5.63e-001 1.00e+000 5.63e-001

-3.29e-002 + 9.47e-001i 3.48e-002 9.47e-001

-3.29e-002 - 9.47e-001i 3.48e-002 9.47e-001

pzmap(sys)

This model has one pair of light ly damped poles. They cor r espond t o what is

called t he “Dut ch r oll mode.”

s

9 Design Case Studies

9-6

Suppose you want t o design a compensat or t hat incr eases t he damping of t hese

poles, so t hat t he r esult ing complex poles have a damping r at io wit h

nat ur al fr equency r ad/sec. You can do t his using t he Cont r ol Syst em

t oolbox analysis t ools.

Open-Loop Analysis

Fir st per for m some open-loop analysis t o det er mine possible cont r ol st r at egies.

St ar t wit h t he t ime r esponse (you could use step or impulse her e).

impulse(sys)

The impulse r esponse confir ms t hat t he syst em is light ly damped. But t he t ime

fr ame is much t oo long because t he passenger s and t he pilot ar e mor e

ζ 0.35 >

ω

n

1 <

Yaw Damper for a 747 Jet Transport

9-7

concer ned about t he behavior dur ing t he fir st few seconds r at her t han t he fir st

few minut es. Next look at t he r esponse over a smaller t ime fr ame of 20 seconds.

impulse(sys,20)

Look at t he plot fr om ailer on (input 2) t o bank angle (out put 2). The air cr aft is

oscillat ing ar ound a nonzer o bank angle. Thus, t he air cr aft is t ur ning in

r esponse t o an ailer on impulse. This behavior will pr ove impor t ant lat er in t his

case st udy.

9 Design Case Studies

9-8

Typically, yaw damper s ar e designed using t he yaw r at e as sensed out put and

t he r udder as cont r ol input . Look at t he cor r esponding fr equency r esponse

(input 1 t o out put 1).

bode(sys(1,1))

Fr om t his Bode diagr am, you can see t hat t he r udder has significant effect

ar ound t he light ly damped Dut ch r oll mode (t hat is, near r ad/sec). To

make t he design easier , select t he subsyst em fr om r udder t o yaw r at e.

% Select system with input 1 and output 1

sys11 = sys(1,1);

ω 1 =

Yaw Damper for a 747 Jet Transport

9-9

Root Locus Design

Since t he simplest compensat or is a st at ic gain, fir st t r y t o det er mine

appr opr iat e gain values using t he r oot locus t echnique.

% Plot the root locus for the (1,1) channel

rlocus(sys11)

9 Design Case Studies

9-10

This is t he r oot locus for negat ive feedback and shows t hat t he syst em goes

unst able almost immediat ely. If, inst ead, you use posit ive feedback, you may

be able t o keep t he syst em st able.

rlocus(–sys11)

sgrid

This looks bet t er . J ust using simple feedback you can achieve a damping r at io

of . You can gr aphically select some pole locat ions and det er mine t he

cor r esponding gain wit h rlocfind.

[k,poles] = rlocfind(–sys11)

ζ 0.45 =

Yaw Damper for a 747 Jet Transport

9-11

The '+' mar ks on t he pr evious figur e show a possible select ion. The

cor r esponding gain and closed-loop poles ar e

k

k =

2.7615

damp(poles)

Eigenvalue Damping Freq. (rad/s)

-1.01e+000 1.00e+000 1.01e+000

-3.03e-001 + 6.18e-001i 4.41e-001 6.89e-001

-3.03e-001 - 6.18e-001i 4.41e-001 6.89e-001

-3.33e-001 1.00e+000 3.33e-001

Next , for m t he closed-loop syst em so t hat you can analyze t his design.

cl11 = feedback(sys11,–k); % negative feedback by default

The closed-loop poles should mat ch t he ones chosen above (and t hey do).

damp(cl11)

Eigenvalue Damping Freq. (rad/s)

-3.33e-001 1.00e+000 3.33e-001

-3.03e-001 + 6.18e-001i 4.41e-001 6.89e-001

-3.03e-001 - 6.18e-001i 4.41e-001 6.89e-001

-1.01e+000 1.00e+000 1.01e+000

9 Design Case Studies

9-12

Plot t he closed-loop impulse r esponse for a dur at ion of 20 seconds.

impulse(cl11,20)

The r esponse set t les quickly and does not oscillat e much.

Now close t he loop on t he or iginal model and see how t he r esponse fr om t he

ailer on looks. The feedback loop involves input 1 and out put 1 of t he plant (use

Yaw Damper for a 747 Jet Transport

9-13

feedback wit h index vect or s select ing t his input /out put pair ). At t he MATLAB

pr ompt , t ype

cloop = feedback(sys,–k,1,1);

damp(cloop) % closed-loop poles

Eigenvalue Damping Freq. (rad/s)

-3.33e-001 1.00e+000 3.33e-001

-3.03e-001 + 6.18e-001i 4.41e-001 6.89e-001

-3.03e-001 - 6.18e-001i 4.41e-001 6.89e-001

-1.01e+000 1.00e+000 1.01e+000

9 Design Case Studies

9-14

Plot t he MIMO impulse r esponse.

impulse(cloop,20)

Look at t he plot fr om ailer on (input 2) t o bank angle (out put 2). When you move

t he ailer on, t he syst em no longer cont inues t o bank like a nor mal air cr aft . You

have over -st abilized t he spir al mode. The spir al mode is t ypically a ver y slow

mode and allows t he air cr aft t o bank and t ur n wit hout const ant ailer on input .

Pilot s ar e used t o t his behavior and will not like your design if it does not allow

t hem t o fly nor mally. This design has moved t he spir al mode so t hat it has a

fast er fr equency.

Washout Filter Design

What you need t o do is make sur e t he spir al mode does not move fur t her int o

t he left -half plane when you close t he loop. One way flight cont r ol designer s

have addr essed t his pr oblem is t o use a washout filt er wher e k H s ( )

Yaw Damper for a 747 Jet Transport

9-15

The washout filt er places a zer o at t he or igin, which const r ains t he spir al mode

pole t o r emain near t he or igin. We choose for a t ime const ant of

t hr ee seconds and use t he r oot locus t echnique t o select t he filt er gain . Fir st

specify t he fixed par t of t he washout by

H = zpk(0,–0.333,1);

Connect t he washout in ser ies wit h t he design model sys11 (r elat ion bet ween

input 1 and out put 1) t o obt ain t he open-loop model

oloop = H * sys11;

H s ( )

s

s a +

------------ =

a 0.333 =

k

s s a + ( ) ⁄

9 Design Case Studies

9-16

and dr aw anot her r oot locus for t his open-loop model.

rlocus(–oloop)

sgrid

Now t he maximum damping is about . You can select t he gain

pr oviding maximum damping gr aphically by

[k,poles] = rlocfind(–oloop)

ζ 0.25 =

Yaw Damper for a 747 Jet Transport

9-17

The select ed pole locat ions ar e mar ked by '+' on t he r oot locus above. The

r esult ing gain value and closed-loop dynamics ar e found by t yping

k

k =

2.5832

damp(poles)

Eigenvalue Damping Freq. (rad/s)

-1.37e+000 1.00e+000 1.37e+000

-1.76e-001 + 6.75e-001i 2.52e-001 6.98e-001

-1.76e-001 - 6.75e-001i 2.52e-001 6.98e-001

-4.74e-001 1.00e+000 4.74e-001

-3.88e-003 1.00e+000 3.88e-003

9 Design Case Studies

9-18

Look at t he closed-loop r esponse fr om r udder t o yaw r at e.

cl11 = feedback(oloop,–k);

impulse(cl11,20)

The r esponse set t les nicely but has less damping t han your pr evious design.

Finally, you can ver ify t hat t he washout filt er has fixed t he spir al mode

pr oblem. Fir st for m t he complet e washout filt er (washout + gain).

WOF = –k * H;

k H s ( )

Yaw Damper for a 747 Jet Transport

9-19

Then close t he loop ar ound t he fir st I/O pair of t he MIMO model sys and

simulat e t he impulse r esponse.

cloop = feedback(sys,WOF,1,1);

% Final closed-loop impulse response

impulse(cloop,20)

The bank angle r esponse (out put 2) due t o an ailer on impulse (input 2) now has

t he desir ed near ly const ant behavior over t his shor t t ime fr ame. Alt hough you

did not quit e meet t he damping specificat ion, your design has incr eased t he

damping of t he syst em subst ant ially and now allows t he pilot t o fly t he air cr aft

nor mally.

9 Design Case Studies

9-20

Hard-Disk Read/Write Head Controller

This case st udy demonst r at es t he abilit y t o per for m classical digit al cont r ol

design by going t hr ough t he design of a comput er har d-disk r ead/wr it e head

posit ion cont r oller .

Using Newt on’s law, a simple model for t he r ead/wr it e head is t he differ ent ial

equat ion

wher e is t he iner t ia of t he head assembly, is t he viscous damping

coefficient of t he bear ings, is t he r et ur n spr ing const ant , is t he mot or

t or que const ant , is t he angular posit ion of t he head, and is t he input

cur r ent .

Taking t he Laplace t r ansfor m, t he t r ansfer funct ion fr om t o is

Hard Disk Drive

Disk Platen

Disk Drive Motor

Read/Write

Head

Solenoid

Ω

θ

l

J

d

2

θ

d t

2

---------- C

d θ

d t

------- Kθ + + K

i

i =

J C

K K

i

θ i

i θ

H s ( )

K

i

J s

2

Cs K + +

---------------------------------- =

Hard-Disk Read/Write Head Controller

9-21

Using t he values kg , Nm/(r ad/sec), Nm/r ad,

and Nm/r ad, for m t he t r ansfer funct ion descr ipt ion of t his syst em.

At t he MATLAB pr ompt , t ype

J = .01; C = 0.004; K = 10; Ki = .05;

num = Ki;

den = [J C K];

H = tf(num,den)

MATLAB r esponds wit h

Transfer function:

0.05

-----------------------

0.01 s^2 + 0.004 s + 10

The t ask her e is t o design a digit al cont r oller t hat pr ovides accur at e posit ioning

of t he r ead/wr it e head. The design is per for med in t he digit al domain. Fir st ,

discr et ize t he cont inuous plant . Because our plant will be equipped wit h a

digit al-t o-analog conver t er (wit h a zer o-or der hold) connect ed t o it s input , use

c2d wit h t he 'zoh' discr et izat ion met hod. Type

Ts = 0.005; % sampling period = 0.005 second

Hd = c2d(H,Ts,'zoh')

Transfer function:

6.233e–05 z + 6.229e–05

-----------------------

z^2 – 1.973 z + 0.998

Sampling time: 0.005

J 0.01 = m

2

C 0.004 = K 10 =

K

i

0.05 =

9 Design Case Studies

9-22

You can compar e t he Bode plot s of t he cont inuous and discr et ized models wit h

bode(H,'-',Hd,'--')

Hard-Disk Read/Write Head Controller

9-23

To analyze t he discr et e syst em, plot it s st ep r esponse, t ype

step(Hd)

The syst em oscillat es quit e a bit . This is pr obably due t o ver y light damping.

You can check t his by comput ing t he open-loop poles. Type

% Open–loop poles of discrete model

damp(Hd)

Eigenvalue Magnitude Equiv. Damping Equiv. Freq.

9.87e–01 + 1.57e–01i 9.99e–01 6.32e–03 3.16e+01

9.87e–01 – 1.57e–01i 9.99e–01 6.32e–03 3.16e+01

The poles have ver y light equivalent damping and ar e near t he unit cir cle. You

need t o design a compensat or t hat incr eases t he damping of t hese poles.

9 Design Case Studies

9-24

The simplest compensat or is just a gain, so t r y t he r oot locus t echnique t o select

an appr opr iat e feedback gain.

rlocus(Hd)

As shown in t he r oot locus, t he poles quickly leave t he unit cir cle and go

unst able. You need t o int r oduce some lead or a compensat or wit h some zer os.

Tr y t he compensat or

wit h and .

D z ( )

z a +

z b +

------------ =

a 0.85 – = b 0 =

Hard-Disk Read/Write Head Controller

9-25

The cor r esponding open-loop model

is obt ained by t he ser ies connect ion

D = zpk(0.85,0,1,Ts)

oloop = Hd * D

Now see how t his compensat or modifies t he open-loop fr equency r esponse.

bode(Hd,'--',oloop,'-')

y D z ( )

Plant

u H

d

z ( )

Compensator

9 Design Case Studies

9-26

The plant r esponse is t he dashed line and t he open-loop r esponse wit h t he

compensat or is t he solid line.

The plot above shows t hat t he compensat or has shift ed up t he phase plot

(added lead) in t he fr equency r ange r ad/sec. ω 10 >

Hard-Disk Read/Write Head Controller

9-27

Now t r y t he r oot locus again wit h t he plant and compensat or as open loop.

rlocus(oloop)

zgrid

This t ime, t he poles st ay wit hin t he unit cir cle for some t ime (t he lines dr awn

by zgrid show t he damping r at ios fr om t o 1 in st eps of 0.1). This plot

shows a set of poles '+' select ed using rlocfind. At t he MATLAB pr ompt , t ype

[k,poles] = rlocfind(oloop)

k

k =

4.1179e+03

ζ 0 =

9 Design Case Studies

9-28

Type

ddamp(poles,Ts)

t o see t he equivalent damping and nat ur al fr equency for each of t he

eigenvalues.

To analyze t his design, for m t he closed-loop syst em and plot t he closed-loop

st ep r esponse.

cloop = feedback(oloop,k);

step(cloop)

This r esponse depends on your closed loop set point . The one shown her e is

r elat ively fast and set t les in about 0.07 seconds. Ther efor e, t his closed loop disk

dr ive syst em has a seek t ime of about 0.07 seconds. This is slow by t oday's

st andar ds, but you also st ar t ed wit h a ver y light ly damped syst em.

Hard-Disk Read/Write Head Controller

9-29

Now look at t he r obust ness of your design. The most common classical

r obust ness cr it er ia ar e t he gain and phase mar gins. Use t he funct ion margin t o

det er mine t hese mar gins. Wit h out put ar gument s, margin r et ur ns t he gain and

phase mar gins as well as t he cor r esponding cr ossover fr equencies. Wit hout

out put ar gument , margin plot s t he Bode r esponse and displays t he mar gins

gr aphically.

To comput e t he mar gins, fir st for m t he unit y-feedback open loop by connect ing

t he compensat or , plant model, and feedback gain in ser ies.

olk = k * oloop;

Next apply margin t o t his open-loop model. Type

[Gm,Pm,Wcg,Wcp] = margin(olk);

Margins = [Gm Wcg Pm Wcp]

Margins =

3.7809 295.3172 43.1686 106.4086

To obt ain t he gain mar gin in dB, t ype

20*log10(Gm)

ans =

11.5760

You can also display t he mar gins gr aphically by t yping

margin(olk)

D z ( ) k

u y D z ( )

Plant

k

–

+

oloop

9 Design Case Studies

9-30

The command pr oduces t he plot shown below.

This design is r obust and can t oler at e a 11 dB gain incr ease or a 40 degr ee

phase lag in t he open-loop syst em wit hout going unst able. By cont inuing t his

design pr ocess, you may be able t o find a compensat or t hat st abilizes t he

open-loop syst em and allows you t o r educe t he seek t ime.

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−100

−50

0

50

100

Gm=11.6 dB (Wcg=296.1); Pm=43.1 deg. (Wcp=106.5)

10

0

10

1

10

2

10

3

−300

−200

−100

0

100

LQG Regulation

9-31

LQG Regulation

This case st udy demonst r at es t he use of t he LQG design t ools in a pr ocess

cont r ol applicat ion. The goal is t o r egulat e t he hor izont al and ver t ical t hickness

of t he beam pr oduced by a hot st eel r olling mill. This example is adapt ed fr om

[1]. The full plant model is MIMO and t he example shows t he advant age of

dir ect MIMO LQG design over separ at e SISO designs for each axis. Type

milldemo

at t he command line t o r un t his demonst r at ion int er act ively.

Process and Disturbance Models

The r olling mill is used t o shape r ect angular beams of hot met al. The desir ed

out going shape is sket ched below.

r olling cylinder s

shaped beam

x

y

9 Design Case Studies

9-32

This shape is impr essed by t wo pair s of r olling cylinder s (one per axis)

posit ioned by hydr aulic act uat or s. The gap bet ween t he t wo cylinder s is called

t he roll gap.

The object ive is t o maint ain t he beam t hickness along t he x- and y-axes wit hin

t he qualit y assur ance t oler ances. Var iat ions in out put t hickness can ar ise fr om

t he following:

• Var iat ions in t he t hickness/har dness of t he incoming beam

• Eccent r icit y in t he r olling cylinder s

Feedback cont r ol is necessar y t o r educe t he effect of t hese dist ur bances.

Because t he r oll gap cannot be measur ed close t o t he mill st and, t he r olling

for ce is used inst ead for feedback.

The input t hickness dist ur bance is modeled as a low pass filt er dr iven by whit e

noise. The eccent r icit y dist ur bance is appr oximat ely per iodic and it s fr equency

is a funct ion of t he r olling speed. A r easonable model for t his dist ur bance is a

second-or der bandpass filt er dr iven by whit e noise.

-axis

incoming beam shaped beam

r olling cylinder s

r olling mill st and

x

LQG Regulation

9-33

This leads t o t he following gener ic model for each axis of t he r olling pr ocess.

Figure 9-1: Open-loop model for x- or y-axis

The measur ed r olling for ce var iat ion is a combinat ion of t he incr ement al

for ce deliver ed by t he hydr aulic act uat or and of t he dist ur bance for ces due t o

eccent r icit y and input t hickness var iat ion. Not e t hat :

• The out put s of , and ar e t he incr ement al for ces deliver ed

by each component .

• An incr ease in hydr aulic or eccent r icit y for ce reduces t he out put t hickness

gap .

• An incr ease in input t hickness increases t his gap.

hydr aulic act uat or

eccent r icit y model

+

+

–

input dist ur bance model

+

+

+

H s ( )

F

i

s ( )

F

e

s ( )

δ

w

i

w

e

u

g

x

f

u command

δ t hickness gap (in mm)

f incr ement al r olling for ce

w

i

w

e

, dr iving whit e noise for dist ur bance models

f

2

f

1

for ce-t o-gap gain

f

H s ( ) F

e

s ( ) , F

i

s ( )

δ

9 Design Case Studies

9-34

The model dat a for each axis is summar ized below.

Model Data for the x-Axis

Model Data for the y-Axis

LQG Design for the x-Axis

As a fir st appr oximat ion, ignor e t he cr oss-coupling bet ween t he - and -axes

and t r eat each axis independent ly. That is, design one SISO LQG r egulat or for

each axis. The design object ive is t o r educe t he t hickness var iat ions and

due t o eccent r icit y and input t hickness dist ur bances.

H

x

s ( )

2.4 10

8

×

s

2

72s 90

2

+ +

------------------------------------- =

F

i x

s ( )

10

4

s 0.05 +

-------------------- =

F

ex

s ( )

3 10

4

× s

s

2

0.125s 6

2

+ +

------------------------------------------ =

g

x

10

6 –

=

H

y

s ( )

7.8 10

8

×

s

2

71s 88

2

+ +

------------------------------------- =

F

i y

s ( )

2 10

4

×

s 0.05 +

-------------------- =

F

ey

s ( )

10

5

s

s

2

0.19s 9.4

2

+ +

-------------------------------------------- =

g

y

0.5 10

6 –

× =

x y

δ

x

δ

y

LQG Regulation

9-35

St ar t wit h t he -axis. Fir st specify t he model component s as t r ansfer funct ion

object s.

% Hydraulic actuator (with input "u-x")

Hx = tf(2.4e8,[1 72 90^2],'inputname','u-x')

% Input thickness/hardness disturbance model

Fix = tf(1e4,[1 0.05],'inputn','w-ix')

% Rolling eccentricity model

Fex = tf([3e4 0],[1 0.125 6^2],'inputn','w-ex')

% Gain from force to thickness gap

gx = 1e–6;

Next build t he open-loop model shown in Figur e 9-1 above. You could use t he

funct ion connect for t his pur pose, but it is easier t o build t his model by

element ar y append and series connect ions.

% I/O map from inputs to forces f1 and f2

Px = append([ss(Hx) Fex],Fix)

% Add static gain from f1,f2 to outputs ”x-gap” and ”x-force”

Px = [–gx gx;1 1] * Px

% Give names to the outputs:

set(Px,'outputn',{'x-gap' 'x-force'})

Note: To obt ain minimal st at e-space r ealizat ions, always conver t t r ansfer

funct ion models t o st at e space before connect ing t hem. Combining t r ansfer

funct ions and t hen conver t ing t o st at e space may pr oduce nonminimal

st at e-space models.

x

9 Design Case Studies

9-36

The var iable Px now cont ains an open-loop st at e-space model complet e wit h

input and out put names.

Px.inputname

ans =

'u-x'

'w-ex'

'w-ix'

Px.outputname

ans =

'x-gap'

'x-force'

The second out put 'x-force' is t he r olling for ce measur ement . The LQG

r egulat or will use t his measur ement t o dr ive t he hydr aulic act uat or and r educe

dist ur bance-induced t hickness var iat ions .

The LQG design involves t wo st eps:

1 Design a full-st at e-feedback gain t hat minimizes an LQ per for mance

measur e of t he for m

2 Design a Kalman filt er t hat est imat es t he st at e vect or given t he for ce

measur ement s 'x-force'.

The per for mance cr it er ion penalizes low and high fr equencies equally.

Because low-fr equency var iat ions ar e of pr imar y concer n, eliminat e t he

δ

x

J u

x

( ) qδ

x

2

ru

x

2

+

¹ ¹

' ;

¹ ¹

t d

0

∞

∫

=

J u

x

( )

LQG Regulation

9-37

high-fr equency cont ent of wit h t he low-pass filt er and use t he

filt er ed value in t he LQ per for mance cr it er ion.

lpf = tf(30,[1 30])

% Connect low-pass filter to first output of Px

Pxdes = append(lpf,1) * Px

set(Pxdes,'outputn',{'x-gap*' 'x-force'})

% Design the state-feedback gain using LQRY and q=1, r=1e–4

kx = lqry(Pxdes(1,1),1,1e–4)

Note: lqry expect s all input s t o be commands and all out put s t o be

measur ement s. Her e t he command 'u-x' and t he measur ement 'x-gap*'

(filt er ed gap) ar e t he fir st input and fir st out put of Pxdes. Hence, use t he

synt ax Pxdes(1,1) t o specify just t he I/O r elat ion bet ween 'u-x' and

'x-gap*'.

Next , design t he Kalman est imat or wit h t he funct ion kalman. The pr ocess noise

has unit covar iance by const r uct ion. Set t he measur ement noise covar iance t o

1000 t o limit t he high fr equency gain, and keep only t he measur ed out put

'x-force' for est imat or design.

estx = kalman(Pxdes(2,:),eye(2),1000)

Finally, connect t he st at e-feedback gain kx and st at e est imat or estx t o for m

t he LQG r egulat or .

Regx = lqgreg(estx,kx)

This complet es t he LQG design for t he -axis.

δ

x

30 s 30 + ( ) ⁄

w

x

w

ex

w

i x

=

x

9 Design Case Studies

9-38

Let ’s look at t he r egulat or Bode r esponse bet ween 0.1 and 1000 r ad/sec.

bode(Regx,{0.1 1000})

The phase r esponse has an int er est ing physical int er pr et at ion. Fir st , consider

an incr ease in input t hickness. This low-fr equency dist ur bance boost s bot h

out put t hickness and r olling for ce. Because t he r egulat or phase is

appr oximat ely 0

o

at low fr equencies, t he feedback loop t hen adequat ely r eact s

by incr easing t he hydr aulic for ce t o offset t he t hickness incr ease. Now consider

t he effect of eccent r icit y. Eccent r icit y causes fluct uat ions in t he r oll gap (gap

bet ween t he r olling cylinder s). When t he r oll gap is minimal, t he r olling for ce

incr eases and t he beam t hickness diminishes. The hydr aulic for ce must t hen

be r educed (negat ive for ce feedback) t o r est or e t he desir ed t hickness. This is

exact ly what t he LQG r egulat or does as it s phase dr ops t o –180

o

near t he

nat ur al fr equency of t he eccent r icit y dist ur bance (6 r ad/sec).

LQG Regulation

9-39

Next , compar e t he open- and closed-loop r esponses fr om dist ur bance t o

t hickness gap. Use feedback t o close t he loop. To help specify t he feedback

connect ion, look at t he I/O names of t he plant Px and r egulat or Regx.

Px.inputname

ans =

'u-x'

'w-ex'

'w-ix'

Regx.outputname

ans =

'u-x'

Px.outputname

ans =

'x-gap'

'x-force'

Regx.inputname

ans =

'x-force'

This indicat es t hat you must connect t he fir st input and second out put of Px t o

t he r egulat or .

clx = feedback(Px,Regx,1,2,+1) % Note: +1 for positive feedback

9 Design Case Studies

9-40

You ar e now r eady t o compar e t he open- and closed-loop Bode r esponses fr om

dist ur bance t o t hickness gap.

bode(Px(1,2:3),'--',clx(1,2:3),'-',{0.1 100})

The dashed lines show t he open-loop r esponse. Not e t hat t he peak gain of t he

eccent r icit y-t o-gap r esponse and t he low-fr equency gain of t he

input -t hickness-t o-gap r esponse have been r educed by about 20 dB.

Finally, use lsim t o simulat e t he open- and closed-loop t ime r esponses t o t he

whit e noise input s and . Choose dt=0.01 as sampling per iod for t he

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−100

−80

−60

−40

−20

0

From: w−ex From: w−ix

10

−1

10

0

10

1

10

2

−300

−250

−200

−150

−100

−50

0

T

o

:

x

−

g

a

p

10

−1

10

0

10

1

10

2

w

ex

w

i x

LQG Regulation

9-41

simulat ion, and der ive equivalent discr et e whit e noise input s for t his sampling

r at e.

dt = 0.01

t = 0:dt:50 % time samples

% Generate unit-covariance driving noise wx = [w-ex;w-ix].

% Equivalent discrete covariance is 1/dt

wx = sqrt(1/dt) * randn(2,length(t))

lsim(Px(1,2:3),':',clx(1,2:3),'-',wx,t)

The dot t ed lines cor r espond t o t he open-loop r esponse. In t his simulat ion, t he

LQG r egulat ion r educes t he peak t hickness var iat ion by a fact or 4.

9 Design Case Studies

9-42

LQG Design for the y-Axis

The LQG design for t he -axis (r egulat ion of t he t hickness) follows t he exact

same st eps as for t he -axis.

% Specify model components

Hy = tf(7.8e8,[1 71 88^2],'inputn','u-y')

Fiy = tf(2e4,[1 0.05],'inputn','w-iy')

Fey = tf([1e5 0],[1 0.19 9.4^2],'inputn','w-ey')

gy = 0.5e–6 % force-to-gap gain

% Build open-loop model

Py = append([ss(Hy) Fey],Fiy)

Py = [–gy gy;1 1] * Py

set(Py,'outputn',{'y-gap' 'y-force'})

% State-feedback gain design

Pydes = append(lpf,1) * Py % Add low-freq. weigthing

set(Pydes,'outputn',{'y-gap*' 'y-force'})

ky = lqry(Pydes(1,1),1,1e–4)

% Kalman estimator design

esty = kalman(Pydes(2,:),eye(2),1e3)

% Form SISO LQG regulator for y-axis and close the loop

Regy = lqgreg(esty,ky)

cly = feedback(Py,Regy,1,2,+1)

y y

x

LQG Regulation

9-43

Compar e t he open- and closed-loop r esponse t o t he whit e noise input

dist ur bances.

dt = 0.01

t = 0:dt:50

wy = sqrt(1/dt) * randn(2,length(t))

lsim(Py(1,2:3),':',cly(1,2:3),'-',wy,t)

The dot t ed lines cor r espond t o t he open-loop r esponse. The simulat ion r esult s

ar e compar able t o t hose for t he -axis.

Cross-Coupling Between Axes

The / t hickness r egulat ion, is a MIMO pr oblem. So far you have t r eat ed

each axis separ at ely and closed one SISO loop at a t ime. This design is valid as

long as t he t wo axes ar e fair ly decoupled. Unfor t unat ely, t his r olling mill

x

x y

9 Design Case Studies

9-44

pr ocess exhibit s some degr ee of cr oss-coupling bet ween axes. Physically, an

incr ease in hydr aulic for ce along t he -axis compr esses t he mat er ial, which in

t ur n boost s t he r epelling for ce on t he -axis cylinder s. The r esult is an incr ease

in -t hickness and an equivalent (r elat ive) decr ease in hydr aulic for ce along

t he -axis.

The coupling bet ween axes is as follows.

Figure 9-2: Coupling between the x- and y-axes

x

y

y

y

w

ex

w

i x

u

y

w

ey

w

i y

δ

x

g

xy

g

y

u

x

+

+

+

+

+

–

f

x

f

y

δ

y

+

g

yx

g

x

–

x-axis

model

y-axis

model

g

xy

0.1 =

g

yx

0.4 =

LQG Regulation

9-45

Accor dingly, t he t hickness gaps and r olling for ces ar e r elat ed t o t he out put s

of t he - and -axis models by

Let ’s see how t he pr evious “decoupled” LQG design far es when cr oss-coupling

is t aken int o account . To build t he t wo-axes model shown in Figur e 9-2, append

t he models Px and Py for t he - and -axes.

P = append(Px,Py)

For convenience, r eor der t he input s and out put s so t hat t he commands and

t hickness gaps appear fir st .

P = P([1 3 2 4],[1 4 2 3 5 6])

P.outputname

ans =

'x-gap'

'y-gap'

'x-force'

'y-force'

Finally, place t he cr oss-coupling mat r ix in ser ies wit h t he out put s.

gxy = 0.1; gyx = 0.4;

CCmat = [eye(2) [0 gyx*gx;gxy*gy 0] ; zeros(2) [1 –gyx;–gxy 1]]

Pc = CCmat * P

Pc.outputname = P.outputname

To simulat e t he closed-loop r esponse, also for m t he closed-loop model by

feedin = 1:2 % first two inputs of Pc are the commands

feedout = 3:4 % last two outputs of Pc are the measurements

cl = feedback(Pc,append(Regx,Regy),feedin,feedout,+1)

δ

x

f

x

... , , x y

δ

x

δ

y

f

x

f

y

1 0 0 g

y x

g

x

0 1 g

x y

g

y

0

0 0 1 g

yx

–

0 0 g

xy

– 1

δ

x

δ

y

f

x

f

y

=

cross-coupling matrix

¹ ¹ ¹ ¹ ¹ ¹ ' ¹ ¹ ¹ ¹ ¹ ¹

x y

9 Design Case Studies

9-46

You ar e now r eady t o simulat e t he open- and closed-loop r esponses t o t he

dr iving whit e noises wx (for t he -axis) and wy (for t he -axis).

wxy = [wx ; wy]

lsim(Pc(1:2,3:6),':',cl(1:2,3:6),'-',wxy,t)

The r esponse r eveals a sever e det er ior at ion in r egulat ion per for mance along

t he -axis (t he peak t hickness var iat ion is about four t imes lar ger t han in t he

simulat ion wit hout cr oss-coupling). Hence, designing for one loop at a t ime is

inadequat e for t his level of cr oss-coupling, and you must per for m a joint -axis

MIMO design t o cor r ect ly handle coupling effect s.

x y

x

LQG Regulation

9-47

MIMO LQG Design

St ar t wit h t he complet e t wo-axis st at e-space model Pc der ived above. The

model input s and out put s ar e

Pc.inputname

ans =

'u-x'

'u-y'

'w-ex'

'w-ix'

'w_ey'

'w_iy'

P.outputname

ans =

'x-gap'

'y-gap'

'x-force'

'y-force'

As ear lier , add low-pass filt er s in ser ies wit h t he 'x-gap' and 'y-gap' out put s

t o penalize only low-fr equency t hickness var iat ions.

Pdes = append(lpf,lpf,eye(2)) * Pc

Pdes.outputn = Pc.outputn

Next , design t he LQ gain and st at e est imat or as befor e (t her e ar e now t wo

commands and t wo measur ement s).

k = lqry(Pdes(1:2,1:2),eye(2),1e–4*eye(2)) % LQ gain

est = kalman(Pdes(3:4,:),eye(4),1e3*eye(2)) % Kalman estimator

RegMIMO = lqgreg(est,k) % form MIMO LQG regulator

9 Design Case Studies

9-48

The r esult ing LQG r egulat or RegMIMO has t wo input s and t wo out put s.

RegMIMO.inputname

ans =

'x-force'

'y-force'

RegMIMO.outputname

ans =

'u-x'

'u-y'

Plot it s singular value r esponse (pr incipal gains).

sigma(RegMIMO)

LQG Regulation

9-49

Next , plot t he open- and closed-loop t ime r esponses t o t he whit e noise input s

(using t he MIMO LQG r egulat or for feedback).

% Form the closed-loop model

cl = feedback(Pc,RegMIMO,1:2,3:4,+1);

% Simulate with LSIM using same noise inputs

lsim(Pc(1:2,3:6),':',cl(1:2,3:6),'-',wxy,t)

The MIMO design is a clear impr ovement over t he separ at e SISO designs for

each axis. In par t icular , t he level of / t hickness var iat ion is now compar able

t o t hat obt ained in t he decoupled case. This example illust r at es t he benefit s of

dir ect MIMO design for mult ivar iable syst ems.

x y

9 Design Case Studies

9-50

Kalman Filtering

This final case st udy illust r at es t he use of t he Cont r ol Syst em Toolbox for

Kalman filt er design and simulat ion. Bot h st eady-st at e and t ime-var ying

Kalman filt er s ar e consider ed.

Consider t he discr et e plant

wit h addit ive Gaussian noise on t he input and dat a

A = [1.1269 –0.4940 0.1129

1.0000 0 0

0 1.0000 0];

B = [–0.3832

0.5919

0.5191];

C = [1 0 0];

Our goal is t o design a Kalman filt er t hat est imat es t he out put given t he

input s and t he noisy out put measur ement s

wher e is some Gaussian whit e noise.

Discrete Kalman Filter

The equat ions of t he st eady-st at e Kalman filt er for t his pr oblem ar e given as

follows.

Measureme nt update

Ti me update

x n 1 + [ ] Ax n [ ] B u n [ ] w n [ ] + ( ) + =

y n [ ] Cx n [ ] =

w n [ ] u n [ ]

y n [ ]

u n [ ]

y

v

n [ ] Cx n [ ] v n [ ] + =

v n [ ]

xˆ n n [ ] xˆ n n 1 – [ ] M y

v

n [ ] Cxˆ n n 1 – [ ] – ( ) + =

xˆ n 1 n + [ ] Axˆ n n [ ] Bu n [ ] + =

Kalman Filtering

9-51

In t hese equat ions:

• is t he est imat e of given past measur ement s up t o

• is t he updat ed est imat e based on t he last measur ement

Given t he cur r ent est imat e , t he t ime updat e pr edict s t he st at e value at

t he next sample (one-st ep-ahead pr edict or ). The measur ement updat e

t hen adjust s t his pr edict ion based on t he new measur ement . The

cor r ect ion t er m is a funct ion of t he innovation, t hat is, t he discr epancy.

bet ween t he measur ed and pr edict ed values of . The innovat ion gain

is chosen t o minimize t he st eady-st at e covar iance of t he est imat ion er r or

given t he noise covar iances

You can combine t he t ime and measur ement updat e equat ions int o one

st at e-space model (t he Kalman filt er ).

This filt er gener at es an opt imal est imat e of . Not e t hat t he filt er

st at e is .

Steady-State Design

You can design t he st eady-st at e Kalman filt er descr ibed above wit h t he

funct ion kalman. Fir st specify t he plant model wit h t he pr ocess noise.

xˆ n n 1 – [ ] x n [ ] y

v

n 1 – [ ]

xˆ n n [ ] y

v

n [ ]

xˆ n n [ ]

n 1 +

y

v

n 1 + [ ]

y

v

n 1 + [ ] Cxˆ n 1 + n [ ] – C x n 1 + [ ] xˆ n 1 + n [ ] – ( ) =

y n 1 + [ ]

M

E w n [ ]w n [ ]

T

( ) Q , = E v n [ ]v n [ ]

T

( ) R =

xˆ n 1 n + [ ] A I MC – ( ) xˆ n n 1 – [ ] B AM

u n [ ]

y

v

n [ ]

+ =

yˆ n n [ ] C I MC – ( ) xˆ n n 1 – [ ] CM y

v

n [ ] + =

yˆ n n [ ] y n [ ]

xˆ n n 1 – [ ]

x n 1 + [ ] Ax n [ ] Bu n [ ] Bw n [ ] + + = (st at e equat ion)

y n [ ] Cx n [ ] = (measur ement equat ion)

9 Design Case Studies

9-52

This is done by

% Note: set sample time to –1 to mark model as discrete

Plant = ss(A,[B B],C,0,–1,'inputname',{'u' 'w'},...

'outputname','y');

Assuming t hat , you can now design t he discr et e Kalman filt er by

Q = 1; R = 1;

[kalmf,L,P,M] = kalman(Plant,Q,R);

This r et ur ns a st at e-space model kalmf of t he filt er as well as t he innovat ion

gain

M

M =

3.7980e–01

8.1732e–02

–2.5704e–01

The input s of kalmf ar e and , and it s out put s ar e t he plant out put and

st at e est imat es and .

Q R 1 = =

u y

v

y

e

yˆ n n [ ] = xˆ n n [ ]

kalmf

Kalman filter

u

xˆ n n [ ] y

v

y

e

Kalman Filtering

9-53

Because you ar e int er est ed in t he out put est imat e , keep only t he fir st out put

of kalmf. Type

kalmf = kalmf(1,:);

kalmf

a =

x1_e x2_e x3_e

x1_e 0.76830 –0.49400 0.11290

x2_e 0.62020 0 0

x3_e –0.08173 1.00000 0

b =

u y

x1_e –0.38320 0.35860

x2_e 0.59190 0.37980

x3_e 0.51910 0.08173

c =

x1_e x2_e x3_e

y_e 0.62020 0 0

d =

u y

y_e 0 0.37980

Sampling time: unspecified

Discrete-time system.

To see how t he filt er wor ks, gener at e some input dat a and r andom noise and

compar e t he filt er ed r esponse wit h t he t r ue r esponse . You can eit her

gener at e each r esponse separ at ely, or gener at e bot h t oget her . To simulat e each

r esponse separ at ely, use lsim wit h t he plant alone fir st , and t hen wit h t he

plant and filt er hooked up t oget her . The joint simulat ion alt er nat ive is det ailed

next .

y

e

y

e

y

9 Design Case Studies

9-54

The block diagr am below shows how t o gener at e bot h t r ue and filt er ed out put s.

You can const r uct a st at e-space model of t his block diagr am wit h t he funct ions

parallel and feedback. Fir st build a complet e plant model wit h as

input s and and (measur ement s) as out put s.

a = A;

b = [B B 0*B];

c = [C;C];

d = [0 0 0;0 0 1];

P = ss(a,b,c,d,–1,'inputname',{'u' 'w' 'v'},...

'outputname',{'y' 'yv'});

Then use parallel t o for m t he following par allel connect ion.

sys = parallel(P,kalmf,1,1,[],[])

Plant

Kalman

filt er

y

u

Pr ocess noise Sensor noise

y

y

v

y

e

u w v , ,

y y

v

P

Kalman

filt er

u

y

v

w

y

v

y

v

y

e

Kalman Filtering

9-55

Finally, close t he sensor loop by connect ing t he plant out put t o t he filt er

input wit h posit ive feedback.

% Close loop around input #4 and output #2

SimModel = feedback(sys,1,4,2,1)

% Delete yv from I/O list

SimModel = SimModel([1 3],[1 2 3])

The r esult ing simulat ion model has as input s and as out put s.

SimModel.input

ans =

'w'

'v'

'u'

SimModel.output

ans =

'y'

'y_e'

You ar e now r eady t o simulat e t he filt er behavior . Gener at e a sinusoidal input

and pr ocess and measur ement noise vect or s and .

t = [0:100]';

u = sin(t/5);

n = length(t)

randn('seed',0)

w = sqrt(Q)*randn(n,1);

v = sqrt(R)*randn(n,1);

Now simulat e wit h lsim.

[out,x] = lsim(SimModel,[w,v,u]);

y = out(:,1); % true response

ye = out(:,2); % filtered response

yv = y + v; % measured response

y

v

y

v

w v u , , y y

e

,

u w v

9 Design Case Studies

9-56

and compar e t he t r ue and filt er ed r esponses gr aphically.

subplot(211), plot(t,y,'--',t,ye,'-'),

xlabel('No. of samples'), ylabel('Output')

subplot(212), plot(t,y–yv,'-.',t,y–ye,'-'),

xlabel('No. of samples'), ylabel('Error')

The fir st plot shows t he t r ue r esponse (dashed line) and t he filt er ed out put

(solid line). The second plot compar es t he measur ement er r or (dash-dot )

wit h t he est imat ion er r or (solid). This plot shows t hat t he noise level has been

significant ly r educed. This is confir med by t he following er r or covar iance

comput at ions.

MeasErr = y–yv;

MeasErrCov = sum(MeasErr.*MeasErr)/length(MeasErr);

EstErr = y–ye;

EstErrCov = sum(EstErr.*EstErr)/length(EstErr);

y

y

e

Kalman Filtering

9-57

The er r or covar iance befor e filt er ing (measur ement er r or ) is

MeasErrCov

MeasErrCov =

1.1138

while t he er r or covar iance aft er filt er ing (est imat ion er r or ) is only

EstErrCov

EstErrCov =

0.2722

Time-Varying Kalman Filter

The t ime-var ying Kalman filt er is a gener alizat ion of t he st eady-st at e filt er for

t ime-var ying syst ems or LTI syst ems wit h nonst at ionar y noise covar iance.

Given t he plant st at e and measur ement equat ions

t he t ime-var ying Kalman filt er is given by t he r ecur sions

Meas ure ment update

Ti me update

x n 1 + [ ] Ax n [ ] Bu n [ ] Gw n [ ] + + =

y

v

n [ ] Cx n [ ] v n [ ] + =

xˆ n n [ ] xˆ n n 1 – [ ] M n [ ] y

v

n [ ] Cxˆ n n 1 – [ ] – ( ) + =

M n [ ] P n n 1 – [ ]C

T

R n [ ] CP n n 1 – [ ]C

T

+ ( )

1 –

=

P n n [ ] I M n [ ]C – ( ) P n n 1 – [ ] =

xˆ n 1 n + [ ] Axˆ n n [ ] Bu n [ ] + =

P n 1 n + [ ] AP n n [ ]A

T

GQ n [ ]G

T

+ =

9 Design Case Studies

9-58

wit h and as defined on page 9-50, and in t he following.

For simplicit y, we have dr opped t he subscr ipt s indicat ing t he t ime dependence

of t he st at e-space mat r ices.

Given init ial condit ions and , you can it er at e t hese equat ions t o

per for m t he filt er ing. Not e t hat you must updat e bot h t he st at e est imat es

and er r or covar iance mat r ices at each t ime sample.

Time-Varying Design

Alt hough t he Cont r ol Syst em Toolbox does not offer specific commands t o

per for m t ime-var ying Kalman filt er ing, it is easy t o implement t he filt er

r ecur sions in MATLAB. This sect ion shows how t o do t his for t he st at ionar y

plant consider ed above.

Fir st gener at e noisy out put measur ement s

% Use process noise w and measurement noise v generated above

sys = ss(A,B,C,0,–1);

y = lsim(sys,u+w); % w = process noise

yv = + v; % v = measurement noise

Given t he init ial condit ions

xˆ n n 1 – [ ] xˆ n n [ ]

Q n [ ] E w n [ ]w n [ ]

T

( ) =

R n [ ] E v n [ ]v n [ ]

T

( ) =

P n n [ ] E x n [ ] x n n [ ] – { } x n [ ] x n n [ ] – { }

T

( ) =

P n n 1 – [ ] E x n [ ] x n n 1 – [ ] – { } x n [ ] x n n 1 – [ ] – { }

T

( ) =

x 1 0 [ ] P 1 0 [ ]

x n . [ ] P n . [ ]

x 1 0 [ ] 0 , = P 1 0 [ ] BQB

T

=

Kalman Filtering

9-59

you can implement t he t ime-var ying filt er wit h t he following for loop.

P = B*Q*B'; % Initial error covariance

x = zeros(3,1); % Initial condition on the state

ye = zeros(length(t),1);

ycov = zeros(length(t),1);

for i=1:length(t)

% Measurement update

Mn = P*C'/(C*P*C'+R);

x = x + Mn*(yv(i)–C*x); % x[n|n]

P = (eye(3)–Mn*C)*P; % P[n|n]

ye(i) = C*x;

errcov(i) = C*P*C';

% Time update

x = A*x + B*u(i); % x[n+1|n]

P = A*P*A' + B*Q*B'; % P[n+1|n]

end

9 Design Case Studies

9-60

You can now compar e t he t r ue and est imat ed out put gr aphically.

subplot(211), plot(t,y,'--',t,ye,'-')

subplot(212), plot(t,y-yv,'-.',t,y-ye,'-')

The fir st plot shows t he t r ue r esponse (dashed line) and t he filt er ed r esponse

(solid line). The second plot compar es t he measur ement er r or (dash-dot )

wit h t he est imat ion er r or (solid).

y

y

e

Kalman Filtering

9-61

The t ime-var ying filt er also est imat es t he covar iance errcov of t he est imat ion

er r or at each sample. Plot it t o see if your filt er r eached st eady st at e (as

you expect wit h st at ionar y input noise).

subplot(211)

plot(t,errcov), ylabel('Error covar')

Fr om t his covar iance plot , you can see t hat t he out put covar iance did indeed

r each a st eady st at e in about five samples. Fr om t hen on, your t ime-var ying

filt er has t he same per for mance as t he st eady-st at e ver sion.

y y

e

–

9 Design Case Studies

9-62

Compar e wit h t he est imat ion er r or covar iance der ived fr om t he exper iment al

dat a. Type

EstErr = y–ye;

EstErrCov = sum(EstErr.*EstErr)/length(EstErr)

EstErrCov =

0.2718

This value is smaller t han t he t heor et ical value errcov and close t o t he value

obt ained for t he st eady-st at e design.

Finally, not e t hat t he final value and t he st eady-st at e value of t he

innovat ion gain mat r ix coincide.

Mn, M

Mn =

0.3798

0.0817

–0.2570

M =

0.3798

0.0817

–0.2570

M n [ ] M

Kalman Filtering

9-63

References

[1] Gr imble, M.J ., Robust Industrial Control: Optimal Design Approach for

Polynomial S ystems, Pr ent ice Hall, 1994, p. 261 and pp. 443–456.

9 Design Case Studies

9-64

10

Reliable Comput at ions

Condi ti oni ng and Nume ri cal Stabi li ty . . . . . . . . 10-4

Condit ioning . . . . . . . . . . . . . . . . . . . . 10-4

Numer ical St abilit y . . . . . . . . . . . . . . . . . . 10-6

Choi ce of LTI Mode l . . . . . . . . . . . . . . . . 10-8

St at e Space . . . . . . . . . . . . . . . . . . . . . 10-8

Tr ansfer Funct ion . . . . . . . . . . . . . . . . . . 10-8

Zer o-Pole-Gain Models . . . . . . . . . . . . . . . 10-14

Scali ng . . . . . . . . . . . . . . . . . . . . . 10-15

Summary . . . . . . . . . . . . . . . . . . . . 10-17

Refe re nce s . . . . . . . . . . . . . . . . . . . . 10-18

10 Reliable Computations

10-2

When wor king wit h low-or der SISO models (less t han five st at es), comput er s

ar e usually quit e for giving and insensit ive t o numer ical pr oblems. You

gener ally won't encount er any numer ical difficult ies and MATLAB will give

you accur at e answer s r egar dless of t he model or conver sion met hod you choose.

For high or der SISO models and MIMO models, however , t he finit e-pr ecision

ar it hmet ic of a comput er is not so for giving and you must exer cise caut ion.

In gener al, t o get a numer ically accur at e answer fr om a comput er , you need:

• A well-condit ioned pr oblem

• An algor it hm t hat is numer ically st able in finit e-pr ecision ar it hmet ic

• A good soft war e implement at ion of t he algor it hm

A pr oblem is said t o be well-condit ioned if small changes in t he dat a cause only

small cor r esponding changes in t he solut ion. If small changes in t he dat a have

t he pot ent ial t o induce lar ge changes in t he solut ion, t he pr oblem is said t o be

ill-condit ioned. An algor it hm is numer ically st able if it does not int r oduce any

mor e sensit ivit y t o per t ur bat ion t han is alr eady inher ent in t he pr oblem. Many

numer ical linear algebr a algor it hms can be shown t o be backwar d st able; i.e.,

t he comput ed solut ion can be shown t o be (near ) t he exact solut ion of a slight ly

per t ur bed or iginal pr oblem. The solut ion of a slight ly per t ur bed or iginal

pr oblem will be close t o t he t r ue solut ion if t he pr oblem is well-condit ioned.

Thus, a st able algor it hm cannot be expect ed t o solve an ill-condit ioned pr oblem

any mor e accur at ely t han t he dat a war r ant , but an unst able algor it hm can

pr oduce poor solut ions even t o well-condit ioned pr oblems. For fur t her det ails

and r efer ences t o t he lit er at ur e see [5].

While most of t he t ools in t he Cont r ol Syst em Toolbox use r eliable algor it hms,

some of t he t ools do not use st able algor it hms and some solve ill-condit ioned

pr oblems. These unr eliable t ools wor k quit e well on some pr oblems (low-or der

syst ems) but can encount er numer ical difficult ies, oft en sever e, when pushed

on higher -or der pr oblems. These t ools ar e pr ovided because:

• They ar e quit e useful for low-or der syst ems, which for m t he bulk of

r eal-wor ld engineer ing pr oblems.

• Many cont r ol engineer s t hink in t er ms of t hese t ools.

• A mor e r eliable alt er nat ive t ool is usually available in t his t oolbox.

• They ar e convenient for pedagogical pur poses.

10-3

At t he same t ime, it is impor t ant t o appr eciat e t he limit at ions of comput er

analyses. By following a few guidelines, you can avoid cer t ain t ools and models

when t hey ar e likely t o get you int o t r ouble. The following sect ions t r y t o

illust r at e, t hr ough examples, some of t he numer ical pit falls t o be avoided. We

also encour age you t o get t he most out of t he good algor it hms by ensur ing, if

possible, t hat your models give r ise t o pr oblems t hat ar e well-condit ioned.

10 Reliable Computations

10-4

Conditioning and Numerical Stability

Two of t he key concept s in numer ical analysis ar e t he condit ioning of pr oblems

and t he st abilit y of algor it hms.

Conditioning

Consider t he linear syst em given by

A =

0.7800 0.5630

0.9130 0.6590

b =

0.2170

0.2540

The t r ue solut ion is x = [1, –1]' and you can calculat e it appr oximat ely using

MATLAB.

x = A\b

x =

1.0000

–1.0000

format long, x

x =

0.99999999991008

–0.99999999987542

Of cour se, in r eal pr oblems you almost never have t he luxur y of knowing t he

t r ue solut ion. This pr oblem is ver y ill-condit ioned. To see t his, add a small

per t ur bat ion t o A

E =

0.0010 0.0010

–0.0020 –0.0010

and solve t he per t ur bed syst em

xe = (A+E)\b

xe =

–5.0000

7.3085

Ax b =

A E + ( )x b =

Conditioning and Numerical Stability

10-5

Not ice how much t he small change in t he dat a is magnified in t he solut ion.

One way t o measur e t he magnificat ion fact or is by means of t he quant it y

called t he condit ion number of wit h r espect t o inver sion. The condit ion

number det er mines t he loss in pr ecision due t o r oundoff er r or s in Gaussian

eliminat ion and can be used t o est imat e t he accur acy of r esult s obt ained fr om

mat r ix inver sion and linear equat ion solut ion. It ar ises nat ur ally in

per t ur bat ion t heor ies t hat compar e t he per t ur bed solut ion wit h t he

t r ue solut ion .

In MATLAB, t he funct ion cond calculat es t he condit ion number in 2-nor m.

cond(A) is t he r at io of t he lar gest singular value of A t o t he smallest . Tr y it for

t he example above. The usual r ule is t hat t he exponent log10(cond(A)) on t he

condit ion number indicat es t he number of decimal places t hat t he comput er

can lose t o r oundoff er r or s.

IEEE st andar d double pr ecision number s have about 16 decimal digit s of

accur acy, so if a mat r ix has a condit ion number of 10

10

, you can expect only six

digit s t o be accur at e in t he answer . If t he condit ion number is much gr eat er

t han 1/sqrt(eps), caut ion is advised for subsequent comput at ions. For IEEE

ar it hmet ic, t he machine pr ecision, eps, is about

-16

, and 1/sqrt(eps)

=

8

.

Anot her impor t ant aspect of condit ioning is t hat , in gener al, r esiduals ar e

r eliable indicat or s of accur acy only if t he pr oblem is well-condit ioned. To

illust r at e, t r y comput ing t he r esidual vect or for t he t wo candidat e

solut ions x = [0.999 –1.001]' and x = [0.341 –0.087]'. Not ice t hat t he

second, while clear ly a much less accur at e solut ion, gives a far smaller

r esidual. The conclusion is t hat r esiduals ar e unr eliable indicat or s of r elat ive

solut ion accur acy for ill-condit ioned pr oblems. This is a good r eason t o be

concer ned wit h comput ing or est imat ing accur at ely t he condit ion of your

pr oblem.

Anot her simple example of an ill-condit ioned pr oblem is t he -by- mat r ix

wit h ones on t he fir st upper -diagonal.

A = diag(ones(1,n–1),1);

This mat r ix has eigenvalues at 0. Now consider a small per t ur bat ion of t he

dat a consist ing of adding t he number t o t he fir st element in t he last ( t h)

A A

1 –

A

A E + ( )

1 –

b

A

1 –

b

2.2 10 ×

6.7 10 ×

r Ax b – =

n n

n

2

n –

n

10 Reliable Computations

10-6

r ow of A. This per t ur bed mat r ix has n dist inct eigenvalues wit h

. Thus, you can see t hat t his small per t ur bat ion in t he

dat a has been magnified by a fact or on t he or der of t o r esult in a r at her

lar ge per t ur bat ion in t he solut ion (t he eigenvalues of A). Fur t her det ails and

r elat ed examples ar e t o be found in [7].

It is impor t ant t o r ealize t hat a mat r ix can be ill-condit ioned wit h r espect t o

inver sion but have a well-condit ioned eigenpr oblem, and vice ver sa. For

example, consider an upper t r iangular mat r ix of ones (zer os below t he

diagonal) given by

A = triu(ones(n));

This mat r ix is ill-condit ioned wit h r espect t o it s eigenpr oblem (t r y small

per t ur bat ions in A(n,1) for , say, n=20), but is well-condit ioned wit h r espect t o

inver sion (check it s condit ion number ). On t he ot her hand, t he mat r ix

has a well-condit ioned eigenpr oblem, but is ill-condit ioned wit h r espect t o

inver sion for small .

Numerical Stability

Numer ical st abilit y is somewhat mor e difficult t o illust r at e meaningfully.

Consult t he r efer ences in [5], [6], and [7] for fur t her det ails. Her e is one small

example t o illust r at e t he differ ence bet ween st abilit y and condit ioning.

Gaussian eliminat ion wit h no pivot ing for solving t he linear syst em is

known t o be numer ically unst able. Consider

All comput at ions ar e car r ied out in t hr ee-significant -figur e decimal ar it hmet ic.

The t r ue answer is appr oximat ely

λ

1

... λ

n

, ,

λ

k

1 2 ⁄ j 2πk n ⁄ ( ) exp =

2

n

A

1 1

1 1 δ +

=

δ

Ax b =

A

0.001 1.000

1.000 1.000 –

= b

1.000

0.000

=

x A

1 –

b =

x

0.999

0.999

=

Conditioning and Numerical Stability

10-7

Using r ow 1 as t he pivot r ow (i.e., subt r act ing 1000 t imes r ow 1 fr om r ow 2) you

ar r ive at t he equivalent t r iangular syst em.

Not e t hat t he coefficient mult iplying in t he second equat ion should be

, but because of r oundoff, becomes . As a r esult , t he second

equat ion yields , a good appr oximat ion, but now back-subst it ut ion

in t he fir st equat ion

yields . This ext r emely bad appr oximat ion of is t he r esult of

numer ical inst abilit y. The pr oblem it self can be shown t o be quit e

well-condit ioned. Of cour se, MATLAB implement s Gaussian eliminat ion wit h

pivot ing.

0.001 1.000

0 1000 –

x

1

x

2

1.000

1000 –

=

x

2

1001 – 1000 –

x

2

1.000 =

0.001x

1

1.000 1.000 ( ) 1.000 ( ) – =

x

1

0.000 = x

1

10 Reliable Computations

10-8

Choice of LTI Model

Now t ur n t o t he implicat ions of t he r esult s in t he last sect ion on t he linear

modeling t echniques used for cont r ol engineer ing. The Cont r ol Syst em Toolbox

includes t he following t ypes of LTI models t hat ar e applicable t o discussions of

comput at ional r eliabilit y:

• St at e space

• Tr ansfer funct ion, polynomial for m

• Tr ansfer funct ion, fact or ed zer o-pole-gain for m

The following subsect ions show t hat st at e space is most pr efer able for

numer ical comput at ions.

State Space

The st at e-space r epr esent at ion is t he most r eliable LTI model t o use for

comput er analysis. This is one of t he r easons for t he popular it y of “moder n”

st at e-space cont r ol t heor y. St able comput er algor it hms for eigenvalues,

fr equency r esponse, t ime r esponse, and ot her pr oper t ies of t he

quadr uple ar e known [5] and implement ed in t his t oolbox. The st at e-space

model is also t he most nat ur al model in MATLAB's mat r ix envir onment .

Even wit h st at e-space models, however , accur at e r esult s ar e not guar ant eed,

because of t he pr oblems of finit e-wor d-lengt h comput er ar it hmet ic discussed in

t he last sect ion. A well-condit ioned pr oblem is usually a pr er equisit e for

obt aining accur at e r esult s and makes it impor t ant t o have r easonable scaling

of t he dat a. Scaling is discussed fur t her in t he “Scaling” sect ion lat er in t his

chapt er .

Transfer Function

Tr ansfer funct ion models, when expr essed in t er ms of expanded polynomials,

t end t o be inher ent ly ill-condit ioned r epr esent at ions of LTI syst ems. For

syst ems of or der gr eat er t han 10, or wit h ver y lar ge/small polynomial

coefficient s, difficult ies can be encount er ed wit h funct ions like roots, conv,

bode, step, or conver sion funct ions like ss or zpk.

A B C D , , , ( )

Choice of LTI Model

10-9

A major difficult y is t he ext r eme sensit ivit y of t he r oot s of a polynomial t o it s

coefficient s. This example is adapt ed fr om Wilkinson, [6] as an illust r at ion.

Consider t he t r ansfer funct ion

The mat r ix of t he companion r ealizat ion of is

Despit e t he benign looking poles of t he syst em (at –1,–2,..., –20) you ar e faced

wit h a r at her lar ge r ange in t he element s of , fr om 1 t o . But

t he difficult ies don’t st op her e. Suppose t he coefficient of in t he t r ansfer

funct ion (or ) is per t ur bed fr om 210 t o ( ).

Then, comput ed on a VAX (IEEE ar it hmet ic has enough mant issa for only

), t he poles of t he per t ur bed t r ansfer funct ion (equivalent ly, t he

eigenvalues of ) ar e

eig(A)'

ans =

Columns 1 through 7

–19.9998 –19.0019 –17.9916 –17.0217 –15.9594 –15.0516 –13.9504

Columns 8 through 14

–13.0369 –11.9805 –11.0081 –9.9976 –9.0005 –7.9999 –7.0000

Columns 15 through 20

–6.0000 –5.0000 –4.0000 –3.0000 –2.0000 –1.0000

The pr oblem her e is not r oundoff. Rat her , high-or der polynomials ar e simply

int r insically ver y sensit ive, even when t he zer os ar e well separ at ed. In t his

case, a r elat ive per t ur bat ion of t he or der of induced r elat ive

per t ur bat ions of t he or der of in some r oot s. But some of t he r oot s changed

H s ( )

1

s 1 + ( ) s 2 + ( )... s 20 + ( )

-------------------------------------------------------------

1

s

20

210s

19

... 20! + + +

----------------------------------------------------------- = =

A H s ( )

A

0 1 0 ... 0

0 0 1 ... 0

: : . . :

0 0 ... . 1

20! – . ... . 210 –

=

A 20! 2.4 10

18

× ≈

s

19

A n n , ( ) 210 2

23 –

+ 2

23 –

1.2 10

7 –

× ≈

n 17 =

A

10

9 –

10

2 –

10 Reliable Computations

10-10

ver y lit t le. This is t r ue in gener al. Differ ent r oot s have differ ent sensit ivit ies t o

differ ent per t ur bat ions. Comput ed r oot s may t hen be quit e meaningless for a

polynomial, par t icular ly high-or der , wit h impr ecisely known coefficient s.

Finding all t he r oot s of a polynomial (equivalent ly, t he poles of a t r ansfer

funct ion or t he eigenvalues of a mat r ix in cont r ollable or obser vable canonical

for m) is oft en an int r insically sensit ive pr oblem. For a clear and det ailed

t r eat ment of t he subject , including t he t r icky numer ical pr oblem of deflat ion,

consult [6].

It is t her efor e pr efer able t o wor k wit h t he fact or ed for m of polynomials when

available. To comput e a st at e-space model of t he t r ansfer funct ion

defined above, for example, you could expand t he denominat or of , conver t

t he t r ansfer funct ion model t o st at e space, and ext r act t he st at e-space dat a by

H1 = tf(1,poly(1:20))

H1ss = ss(H1)

[a1,b1,c1] = ssdata(H1)

However , you should r at her keep t he denominat or in fact or ed for m and wor k

wit h t he zer o-pole-gain r epr esent at ion of .

H2 = zpk([],1:20,1)

H2ss = ss(H2)

[a2,b2,c2] = ssdata(H2)

Indeed, t he r esult ing st at e mat r ix a2 is bet t er condit ioned.

[cond(a1) cond(a2)]

ans =

2.7681e+03 8.8753e+01

H s ( )

H

H s ( )

Choice of LTI Model

10-11

and t he conver sion fr om zer o-pole-gain t o st at e space incur s no loss of accur acy

in t he poles.

format long e

[sort(eig(a1)) sort(eig(a2))]

ans =

9.999999999998792e-01 1.000000000000000e+00

2.000000000001984e+00 2.000000000000000e+00

3.000000000475623e+00 3.000000000000000e+00

3.999999981263996e+00 4.000000000000000e+00

5.000000270433721e+00 5.000000000000000e+00

5.999998194359617e+00 6.000000000000000e+00

7.000004542844700e+00 7.000000000000000e+00

8.000013753274901e+00 8.000000000000000e+00

8.999848908317270e+00 9.000000000000000e+00

1.000059459550623e+01 1.000000000000000e+01

1.099854678336595e+01 1.100000000000000e+01

1.200255822210095e+01 1.200000000000000e+01

1.299647702454549e+01 1.300000000000000e+01

1.400406940833612e+01 1.400000000000000e+01

1.499604787386921e+01 1.500000000000000e+01

1.600304396718421e+01 1.600000000000000e+01

1.699828695210055e+01 1.700000000000000e+01

1.800062935148728e+01 1.800000000000000e+01

1.899986934359322e+01 1.900000000000000e+01

2.000001082693916e+01 2.000000000000000e+01

Ther e is anot her difficult y wit h t r ansfer funct ion models when r ealized in

st at e-space for m wit h ss. They may give r ise t o badly condit ioned eigenvect or

mat r ices, even if t he eigenvalues ar e well separ at ed. For example, consider t he

nor mal mat r ix

A = [5 4 1 1

4 5 1 1

1 1 4 2

1 1 2 4]

10 Reliable Computations

10-12

It s eigenvect or s and eigenvalues ar e given as follows.

[v,d] = eig(A)

v =

0.7071 –0.0000 –0.3162 0.6325

–0.7071 0.0000 –0.3162 0.6325

0.0000 0.7071 0.6325 0.3162

–0.0000 –0.7071 0.6325 0.3162

d =

1.0000 0 0 0

0 2.0000 0 0

0 0 5.0000 0

0 0 0 10.0000

The condit ion number (wit h r espect t o inver sion) of t he eigenvect or mat r ix is

cond(v)

ans =

1.000

Now conver t a st at e-space model wit h t he above A mat r ix t o t r ansfer funct ion

for m, and back again t o st at e-space for m.

b = [1 ; 1 ; 0 ; –1];

c = [0 0 2 1];

H = tf(ss(A,b,c,0)); % transfer function

[Ac,bc,cc] = ssdata(H) % convert back to state space

The new A mat r ix is

Ac =

18.0000 –6.0625 2.8125 –1.5625

16.0000 0 0 0

0 4.0000 0 0

0 0 1.0000 0

Not e t hat Ac is not a st andar d companion mat r ix and has alr eady been

balanced as par t of t he ss conver sion (see ssbal for det ails).

Choice of LTI Model

10-13

Not e also t hat t he eigenvect or s have changed.

[vc,dc] = eig(Ac)

vc =

–0.5017 0.2353 0.0510 0.0109

–0.8026 0.7531 0.4077 0.1741

–0.3211 0.6025 0.8154 0.6963

–0.0321 0.1205 0.4077 0.6963

dc =

10.0000 0 0 0

0 5.0000 0 0

0 0 2.0000 0

0 0 0 1.0000

The condit ion number of t he new eigenvect or mat r ix

cond(vc)

ans =

34.5825

is t hir t y t imes lar ger .

The phenomenon illust r at ed above is not unusual. Mat r ices in companion for m

or cont r ollable/obser vable canonical for m (like Ac) t ypically have

wor se-condit ioned eigensyst ems t han mat r ices in gener al st at e-space for m

(like A). This means t hat t heir eigenvalues and eigenvect or s ar e mor e sensit ive

t o per t ur bat ion. The pr oblem gener ally get s far wor se for higher -or der syst ems.

Wor king wit h high-or der t r ansfer funct ion models and conver t ing t hem back

and for t h t o st at e space is numer ically r isky.

In summar y, t he main numer ical pr oblems t o be awar e of in dealing wit h

t r ansfer funct ion models (and hence, calculat ions involving polynomials) ar e:

• The pot ent ially lar ge r ange of number s leads t o ill-condit ioned pr oblems,

especially when such models ar e linked t oget her giving high-or der

polynomials.

10 Reliable Computations

10-14

• The pole locat ions ar e ver y sensit ive t o t he coefficient s of t he denominat or

polynomial.

• The balanced companion for m pr oduced by ss, while bet t er t han t he

st andar d companion for m, oft en r esult s in ill-condit ioned eigenpr oblems,

especially wit h higher -or der syst ems.

The above st at ement s hold even for syst ems wit h dist inct poles, but ar e

par t icular ly r elevant when poles ar e mult iple.

Zero-Pole-Gain Models

The t hir d major r epr esent at ion used for LTI models in MATLAB is t he

fact or ed, or zer o-pole-gain (ZPK) r epr esent at ion. It is somet imes ver y

convenient t o descr ibe a model in t his way alt hough most major design

met hodologies t end t o be or ient ed t owar ds eit her t r ansfer funct ions or

st at e-space.

In cont r ast t o polynomials, t he ZPK r epr esent at ion of syst ems can be mor e

r eliable. At t he ver y least , t he ZPK r epr esent at ion t ends t o avoid t he

ext r aor dinar y ar it hmet ic r ange difficult ies of polynomial coefficient s, as

illust r at ed in t he “Tr ansfer Funct ion”sect ion. The t r ansfor mat ion fr om st at e

space t o zer o-pole-gain is st able, alt hough t he handling of infinit e zer os can

somet imes be t r icky, and r epeat ed r oot s can cause pr oblems.

If possible, avoid r epeat ed swit ching bet ween differ ent model r epr esent at ions.

As discussed in t he pr evious sect ions, when t r ansfor mat ions bet ween models

ar e not numer ically st able, r oundoff er r or s ar e amplified.

Scaling

10-15

Scaling

St at e space is t he pr efer r ed model for LTI syst ems, especially wit h higher or der

models. Even wit h st at e-space models, however , accur at e r esult s ar e not

guar ant eed, because of t he finit e-wor d-lengt h ar it hmet ic of t he comput er . A

well-condit ioned pr oblem is usually a pr er equisit e for obt aining accur at e

r esult s.

You should gener ally nor malize or scale t he mat r ices of a syst em

t o impr ove t heir condit ioning. An example of a poor ly scaled pr oblem might be

a dynamic syst em wher e t wo st at es in t he st at e vect or have unit s of light year s

and millimet er s. You would expect t he mat r ix t o cont ain bot h ver y lar ge and

ver y small number s. Mat r ices cont aining number s widely spr ead in value ar e

oft en poor ly condit ioned bot h wit h r espect t o inver sion and wit h r espect t o t heir

eigenpr oblems, and inaccur at e r esult s can ensue.

Nor malizat ion also allows meaningful st at ement s t o be made about t he degr ee

of cont r ollabilit y and obser vabilit y of t he var ious input s and out put s.

A set of mat r ices can be nor malized using diagonal scaling

mat r ices , , and t o scale u, x, and y.

so t he nor malized syst em is

wher e

Choose t he diagonal scaling mat r ices accor ding t o some appr opr iat e

nor malizat ion pr ocedur e. One cr it er ion is t o choose t he maximum r ange of each

of t he input , st at e, and out put var iables. This met hod or iginat ed in t he days of

analog simulat ion comput er s when , , and wer e for ced t o be bet ween

Volt s. A second met hod is t o for m scaling mat r ices wher e t he diagonal

ent r ies ar e t he smallest deviat ions t hat ar e significant t o each var iable. An

A B C D , , , ( )

A

A B C D , , , ( )

N

u

N

x

N

y

u N

u

u

n

= x N

x

x

n

= y N

y

y

n

=

x

·

n

A

n

x

n

B

n

u

n

+ =

y

n

C

n

x

n

D

n

u

n

+ =

A

n

N

x

1 –

AN

x

= B

n

N

x

1 –

BN

u

=

C

n

N

y

1 –

CN

x

= D

n

N

y

1 –

DN

u

=

u

n

x

n

y

n

10 t

10 Reliable Computations

10-16

excellent discussion of scaling is given in t he int r oduct ion t o t he LINPACK

Users’ Guide, [1].

Choose scaling based upon physical insight t o t he pr oblem at hand. If you

choose not t o scale, and for many small pr oblems scaling is not necessar y, be

awar e t hat t his choice affect s t he accur acy of your answer s.

Finally, not e t hat t he funct ion ssbal per for ms aut omat ic scaling of t he st at e

vect or . Specifically, it seeks t o minimize t he nor m of

by using diagonal scaling mat r ices . Such diagonal scaling is an economical

way t o compr ess t he numer ical r ange and impr ove t he condit ioning of

subsequent st at e-space comput at ions.

N

x

1 –

AN

x

N

x

1 –

B

CN

x

0

N

x

Summary

10-17

Summary

This chapt er has descr ibed numer ous t hings t hat can go wr ong when

per for ming numer ical comput at ions. You won’t encount er most of t hese

difficult ies when you solve pr act ical lower -or der pr oblems. The pr oblems

descr ibed her e per t ain t o all comput er analysis packages. MATLAB has some

of t he best algor it hms available, and, wher e possible, not ifies you when t her e

ar e difficult ies. The impor t ant point s t o r emember ar e:

• St at e-space models ar e, in gener al, t he most r eliable models for subsequent

comput at ions.

• Scaling model dat a can impr ove t he accur acy of your r esult s.

• Numer ical comput ing is a t r icky business, and vir t ually all comput er t ools

can fail under cer t ain condit ions.

10 Reliable Computations

10-18

References

[1] Dongar r a, J .J ., J .R. Bunch, C.B. Moler , and G.W. St ewar t , LINPACK Users

Guide, SIAM Publicat ions, Philadelphia, PA, 1978.

[2] Fr anklin, G.F. and J .D. Powell, Digital Control of Dynamic S ystems,

Addison-Wesley, 1980.

[3] Kailat h, T., Linear S ystems, Pr ent ice-Hall, 1980.

[4] Laub, A.J ., “Numer ical Linear Algebr a Aspect s of Cont r ol Design

Comput at ions,” IEEE Transactions on Automatic Control, Vol. AC-30, No. 2,

Febr uar y 1985, pp. 97-108.

[5] Wilkinson, J .H., Rounding Errors in Algebraic Processes, Pr ent ice-Hall,

1963.

[6] Wilkinson, J .H., The Algebraic Eigenvalue Problem, Oxfor d Univer sit y

Pr ess, 1965.

11

Refer ence

11 Reference

11-2

This chapt er cont ains det ailed descr ipt ions of all Cont r ol Syst em Toolbox

funct ions. It begins wit h a list of funct ions gr ouped by subject ar ea and

cont inues wit h t he r efer ence ent r ies in alphabet ical or der . Infor mat ion is also

available t hr ough t he online Help facilit y.

Category Tables

11-3

Category Tables

Table 11-1: LTI Models

Function Name Description

drss Gener at e r andom discr et e st at e-space model.

dss Cr eat e descr ipt or st at e-space model.

filt Cr eat e discr et e filt er wit h DSP convent ion.

frd Cr eat e a fr equency r esponse dat a (FRD) model.

frdata Ret r ieve dat a fr om an FRD model.

get Quer y LTI model pr oper t ies.

ltimodels Infor mat ion on LTI models

ltiprops Infor mat ion on all LTI pr oper t ies.

set Set LTI or r esponse object pr oper t ies.

rss Gener at e r andom cont inuous st at e-space model.

ss Cr eat e st at e-space model.

ssdata, dssdata Ret r ieve st at e-space dat a or cover t dat a t o cell

ar r ay for mat .

tf Cr eat e t r ansfer funct ion.

tfdata Ret r ieve t r ansfer funct ion dat a.

totaldelay Pr ovide t he aggr egat e delay for an LTI model.

zpk Cr eat e zer o-pole-gain model.

zpkdata Ret r ieve zer o-pole-gain dat a.

11 Reference

11-4

Table 11-2: Model Characteristics

Function Name Description

class Display model t ype ('tf', 'zpk', 'ss', or 'frd').

hasdelay Test t r ue if LTI model has any t ype of delay.

isa Test t r ue if LTI model is of specified t ype.

isct Test t r ue for cont inuous-t ime models.

isdt Test t r ue for discr et e-t ime models.

isempty Test t r ue for empt y LTI models.

isproper Test t r ue for pr oper LTI models.

issiso Test t r ue for SISO models.

ndims Get t he number of model/ar r ay dimensions.

size Get out put /input /ar r ay dimensions or model or der.

Table 11-3: Model Conversion

Function Name Description

c2d Conver t fr om cont inuous- t o discr et e-t ime models.

chgunits Conver t t he units pr oper t y for FRD models.

d2c Conver t fr om discr et e- t o cont inuous-t ime models.

d2d Resample discr et e-t ime models.

delay2z Conver t delays in discr et e-t ime models or FRD

models.

frd Conver t t o a fr equency r esponse dat a model.

pade Comput e t he Padé appr oximat ion of delays.

reshape Change t he shape of an LTI ar r ay

Category Tables

11-5

residue Pr ovide par t ial fr act ion expansion (see Using

MATLAB).

ss Conver t t o a st at e space model.

tf Conver t t o a t r ansfer funct ion model.

zpk Conver t t o a zer o-pole-gain model.

Table 11-4: Model Order Reduction

Function Name Description

balreal Calculat e an I/O balanced r ealizat ion.

minreal Calculat e minimal r ealizat ion or pole/zer o

cancellat ion.

modred Delet e st at es in I/O balanced r ealizat ion.

sminreal Calculat e st r uct ur ed model r educt ion.

Table 11-5: State-Space Realizations

Function Name Description

canon Canonical st at e-space r ealizat ions.

ctrb Cont r ollabilit y mat r ix.

ctrbf Cont r ollabilit y st air case for m.

gram Cont r ollabilit y and obser vabilit y gr amians.

obsv Obser vabilit y mat r ix.

obsvf Obser vabilit y st air case for m.

Table 11-3: Model Conversion (Continued)

Function Name Description

11 Reference

11-6

ss2ss St at e coor dinat e t r ansfor mat ion.

ssbal Diagonal balancing of st at e-space r ealizat ions.

Table 11-6: Model Dynamics

Function Name Description

damp Calculat e nat ur al fr equency and damping.

dcgain Calculat e low-fr equency (DC) gain.

covar Calculat e covar iance of r esponse t o whit e noise.

dsort Sor t discr et e-t ime poles by magnit ude.

esort Sor t cont inuous-t ime poles by r eal par t .

norm Calculat e nor ms of LTI models ( and ).

pole, eig Calculat e t he poles of an LTI model.

pzmap Plot t he pole/zer o map of an LTI model.

roots Calculat e r oot s of polynomial (see Using MATLAB).

zero Calculat e zer os of an LTI model.

Table 11-7: Model Building

Function Name Description

append Append models in a block diagonal configur at ion.

augstate Augment out put by appending st at es.

Table 11-5: State-Space Realizations (Continued)

Function Name Description

H

2

L

∞

Category Tables

11-7

connect Connect t he subsyst ems of a block-diagonal model

accor ding t o an int er connect ion scheme of your

choice.

conv Convolve t wo polynomials (see Using MATLAB).

drmodel, drss Gener at e r andom discr et e-t ime model.

feedback Calculat e t he feedback connect ion of models.

lft Calculat e t he st ar pr oduct (LFT int er connect ion).

ord2 Gener at e second-or der model.

pade Comput e t he Padé appr oximat ion of t ime delays.

parallel Cr eat e a gener alized par allel connect ion.

rmodel, rss Gener at e r andom cont inuous model.

series Cr eat e a gener alized ser ies connect ion.

stack Concat enat e LTI models along ar r ay dimensions.

Table 11-8: Time Response

Function Name Description

filter Simulat e discr et e SISO filt er (see Using MATLAB).

gensig Gener at e an input signal.

impulse Calculat e impulse r esponse.

initial Calculat e init ial condit ion r esponse.

lsim Simulat e r esponse of LTI model t o ar bit r ar y input s.

Table 11-7: Model Building (Continued)

Function Name Description

11 Reference

11-8

ltiview Open t he LTI Viewer for linear r esponse analysis.

step Calculat e st ep r esponse.

Table 11-9: Frequency Response

Function Name Description

bode Calculat e bode plot .

evalfr Evaluat e r esponse at single complex fr equency.

freqresp Evaluat e fr equency r esponse for select ed

fr equencies.

linspace Cr eat e a vect or of evenly spaced fr equencies.

logspace Cr eat e a vect or of logar it hmically spaced

fr equencies.

ltiview Open t he LTI Viewer for linear r esponse analysis.

margin Calculat e gain and phase mar gins.

ngrid Super impose gr id lines on a Nichols plot .

nichols Calculat e Nichols plot .

nyquist Calculat e Nyquist plot .

pzmap Calculat e pole/zer o map.

rlocus Calculat e r oot locus.

rlocfind Find gain/pole on r oot locus.

rltool Open Root Locus Design GUI.

sgrid Super impose s-plane gr id on r oot locus or pole/zer o

map.

Table 11-8: Time Response (Continued)

Function Name Description

Category Tables

11-9

sigma Calculat e singular value plot .

zgrid Super impose z-plane gr id on r oot locus or pole/zer o

map.

Table 11-10: Pole Placement

Function Name Description

acker Calculat e SISO pole placement design.

place Calculat e MIMO pole placement design.

estim For m st at e est imat or given est imat or gain.

reg For m out put -feedback compensat or given

st at e-feedback and est imat or gains.

rltool Open Root Locus Design GUI

Table 11-11: LQG Design

Function Name Description

lqr Calculat e t he LQ-opt imal gain for cont inuous

models.

dlqr Calculat e t he LQ-opt imal gain for discr et e models.

lqry Calculat e t he LQ-opt imal gain wit h out put

weight ing.

lqrd Calculat e t he discr et e LQ gain for cont inuous

models.

kalman Calculat e t he Kalman est imat or.

Table 11-9: Frequency Response (Continued)

Function Name Description

11 Reference

11-10

kalmd Calculat e t he discr et e Kalman est imat or for

cont inuous models.

lqgreg For m LQG r egulat or given LQ gain and Kalman

filt er.

Table 11-12: Equation Solvers

Function Name Description

care Solve cont inuous-t ime algebr aic Riccat i equat ions.

dare Solve discr et e-t ime algebr aic Riccat i equat ions.

lyap Solve cont inuous-t ime Lyapunov equat ions.

dlyap Solve discr et e-t ime Lyapunov equat ions.

Table 11-13: Graphical User Interfaces for Model Analysis and Design

Function Name Description

ltiview Open t he LTI Viewer for linear r esponse analysis.

rltool Open t he Root Locus Design GUI.

Table 11-11: LQG Design (Continued)

Function Name Description

acker

11-11

11acker

Purpose Pole placement design for single-input syst ems

Syntax k = acker(A,b,p)

Description Given t he single-input syst em

and a vect or p of desir ed closed-loop pole locat ions, acker (A,b,p)uses

Acker mann’s for mula [1] t o calculat e a gain vect or k such t hat t he st at e

feedback places t he closed-loop poles at t he locat ions p. In ot her

wor ds, t he eigenvalues of mat ch t he ent r ies of p (up t o or der ing). Her e

A is t he st at e t r ansmit t er mat r ix and b is t he input t o st at e t r ansmission vect or .

You can also use acker for est imat or gain select ion by t r ansposing t he mat r ix

A and subst it ut ing c' for b when y = cx is a single out put .

l = acker(a',c',p).'

Limitations acker is limit ed t o single-input syst ems and t he pair must be

cont r ollable.

Not e t hat t his met hod is not numer ically r eliable and st ar t s t o br eak down

r apidly for pr oblems of or der gr eat er t han 5 or for weakly cont r ollable syst ems.

See place for a mor e gener al and r eliable alt er nat ive.

See Also lqr Opt imal LQ r egulat or

place Pole placement design

rlocus, rlocfind Root locus design

References [1] Kailat h, T., Linear S ystems, Pr ent ice-Hall, 1980, p. 201.

x

·

Ax bu + =

u k x – =

A bk –

A b , ( )

append

11-12

11append

Purpose Gr oup LTI models by appending t heir input s and out put s

Syntax sys = append(sys1,sys2,...,sysN)

Description append appends t he input s and out put s of t he LTI models sys1,...,sysN t o for m

t he augment ed model sys depict ed below.

For syst ems wit h t r ansfer funct ions ,..., , t he r esult ing syst em sys

has t he block-diagonal t r ansfer funct ion

For st at e-space models sys1 and sys2 wit h dat a and

, append(sys1,sys2) pr oduces t he following st at e-space

model.

:

:

sys1

sys2

sysN

u

1

u

2

u

N

y

1

y

2

y

N

sys

H

1

s ( ) H

N

s ( )

H

1

s ( ) 0 .. 0

0 H

2

s ( ) . :

: . . 0

0 .. 0 H

N

s ( )

A

1

B

1

C

1

D

1

, , , ( )

A

2

B

2

C

2

D

2

, , , ( )

append

11-13

Arguments The input ar gument s sys1,..., sysN can be LTI models of any t ype. Regular

mat r ices ar e also accept ed as a r epr esent at ion of st at ic gains, but t her e should

be at least one LTI object in t he input list . The LTI models should be eit her all

cont inuous, or all discr et e wit h t he same sample t ime. When appending models

of differ ent t ypes, t he r esult ing t ype is det er mined by t he pr ecedence r ules (see

“Pr ecedence Rules” on page 2-5 for det ails).

Ther e is no limit at ion on t he number of input s.

Example The commands

sys1 = tf(1,[1 0])

sys2 = ss(1,2,3,4)

sys = append(sys1,10,sys2)

pr oduce t he st at e-space model

sys

a =

x1 x2

x1 0 0

x2 0 1.00000

b =

u1 u2 u3

x1 1.00000 0 0

x2 0 0 2.00000

x

·

1

x

·

2

A

1

0

0 A

2

x

1

x

2

B

1

0

0 B

2

u

1

u

2

+ =

y

1

y

2

C

1

0

0 C

2

x

1

x

2

D

1

0

0 D

2

u

1

u

2

+ =

append

11-14

c =

x1 x2

y1 1.00000 0

y2 0 0

y3 0 3.00000

d =

u1 u2 u3

y1 0 0 0

y2 0 10.00000 0

y3 0 0 4.00000

Continuous-time system.

See Also connect Modeling of block diagr am int er connect ions

feedback Feedback connect ion

parallel Par allel connect ion

series Ser ies connect ion

augstate

11-15

11augst at e

Purpose Append t he st at e vect or t o t he out put vect or

Syntax asys = augstate(sys)

Description Given a st at e-space model sys wit h equat ions

(or t heir discr et e-t ime count er par t ), augstate appends t he st at es t o t he

out put s t o for m t he model

This command pr epar es t he plant so t hat you can use t he feedback command

t o close t he loop on a full-st at e feedback .

Limitation Because augstate is only meaningful for st at e-space models, it cannot be used

wit h TF, ZPK or FRD models.

See Also feedback Feedback connect ion

parallel Par allel connect ion

series Ser ies connect ion

x

·

Ax Bu + =

y Cx Du + =

x

y

x

·

Ax Bu + =

y

x

C

I

x

D

0

u + =

u K – x =

balreal

11-16

11balr eal

Purpose Input /out put balancing of st at e-space r ealizat ions

Syntax sysb = balreal(sys)

[sysb,g,T,Ti] = balreal(sys)

Description sysb = balreal(sys) pr oduces a balanced r ealizat ion sysb of t he LTI model

sys wit h equal and diagonal cont r ollabilit y and obser vabilit y gr amians (see

gram for a definit ion of gr amian). balreal handles bot h cont inuous and discr et e

syst ems. If sys is not a st at e-space model, it is fir st and aut omat ically

conver t ed t o st at e space using ss.

[sysb,g,T,Ti] = balreal(sys) also r et ur ns t he vect or g cont aining t he

diagonal of t he balanced gr amian, t he st at e similar it y t r ansfor mat ion

used t o conver t sys t o sysb, and t he inver se t r ansfor mat ion Ti = .

If t he syst em is nor malized pr oper ly, t he diagonal g of t he joint gr amian can be

used t o r educe t he model or der . Because g r eflect s t he combined cont r ollabilit y

and obser vabilit y of individual st at es of t he balanced model, you can delet e

t hose st at es wit h a small g(i) while r et aining t he most impor t ant input -out put

char act er ist ics of t he or iginal syst em. Use modred t o per for m t he st at e

eliminat ion.

Example Consider t he zer o-pole-gain model

sys = zpk([–10 –20.01],[–5 –9.9 –20.1],1)

Zero/pole/gain:

(s+10) (s+20.01)

----------------------

(s+5) (s+9.9) (s+20.1)

A st at e-space r ealizat ion wit h balanced gr amians is obt ained by

[sysb,g] = balreal(sys)

The diagonal ent r ies of t he joint gr amian ar e

g'

ans =

1.0062e–01 6.8039e–05 1.0055e–05

x

b

T x =

T

1 –

balreal

11-17

which indicat es t hat t he last t wo st at es of sysb ar e weakly coupled t o t he input

and out put . You can t hen delet e t hese st at es by

sysr = modred(sysb,[2 3],'del')

t o obt ain t he following fir st -or der appr oximat ion of t he or iginal syst em.

zpk(sysr)

Zero/pole/gain:

1.0001

--------

(s+4.97)

Compar e t he Bode r esponses of t he or iginal and r educed-or der models.

bode(sys,'-',sysr,'x')

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−50

−40

−30

−20

−10

10

0

10

1

10

2

−100

−80

−60

−40

−20

0

balreal

11-18

Algorithm Consider t he model

wit h cont r ollabilit y and obser vabilit y gr amians and . The st at e

coor dinat e t r ansfor mat ion pr oduces t he equivalent model

and t r ansfor ms t he gr amians t o

The funct ion balreal comput es a par t icular similar it y t r ansfor mat ion such

t hat

See [1,2] for det ails on t he algor it hm.

Limitations The LTI model sys must be st able. In addit ion, cont r ollabilit y and

obser vabilit y ar e r equir ed for st at e-space models.

See Also gram Cont r ollabilit y and obser vabilit y gr amians

minreal Minimal r ealizat ions

modred Model or der r educt ion

References [1] Laub, A.J ., M.T. Heat h, C.C. Paige, and R.C. War d, “Comput at ion of Syst em

Balancing Tr ansfor mat ions and Ot her Applicat ions of Simult aneous

Diagonalizat ion Algor it hms,” IEEE Trans. Automatic Control, AC-32 (1987),

pp. 115–122.

[2] Moor e, B., “Pr incipal Component Analysis in Linear Syst ems:

Cont r ollabilit y, Obser vabilit y, and Model Reduct ion,” IEEE Transactions on

Automatic Control, AC-26 (1981), pp. 17–31.

[3] Laub, A.J ., “Comput at ion of Balancing Tr ansfor mat ions,” Proc. ACC, San

Fr ancisco, Vol.1, paper FA8-E, 1980.

x

·

Ax Bu + =

y Cx Du + =

W

c

W

o

x T x =

x

·

T AT

1 –

x T Bu + =

y CT

1 –

x Du + =

W

c

T W

c

T

T

= , W

o

T

T –

W

o

T

1 –

=

T

Wc Wo d i ag g ( ) = =

bode

11-19

11bode

Purpose Comput e t he Bode fr equency r esponse of LTI models

Syntax bode(sys)

bode(sys,w)

bode(sys1,sys2,...,sysN)

bode(sys1,sys2,...,sysN,w)

bode(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

[mag,phase,w] = bode(sys)

Description bode comput es t he magnit ude and phase of t he fr equency r esponse of LTI

models. When invoked wit hout left -hand ar gument s, bode pr oduces a Bode plot

on t he scr een. The magnit ude is plot t ed in decibels (dB), and t he phase in

degr ees. The decibel calculat ion for mag is comput ed as

20*log10(abs(frsys)), wher e frsys is t he fr equency r esponse of sys. Bode

plot s ar e used t o analyze syst em pr oper t ies such as t he gain mar gin, phase

mar gin, DC gain, bandwidt h, dist ur bance r eject ion, and st abilit y.

bode(sys) plot s t he Bode r esponse of an ar bit r ar y LTI model sys. This model

can be cont inuous or discr et e, and SISO or MIMO. In t he MIMO case, bode

pr oduces an ar r ay of Bode plot s, each plot showing t he Bode r esponse of one

par t icular I/O channel. The fr equency r ange is det er mined aut omat ically based

on t he syst em poles and zer os.

bode(sys,w) explicit ly specifies t he fr equency r ange or fr equency point s t o be

used for t he plot . To focus on a par t icular fr equency int er val [wmin,wmax], set

w = {wmin,wmax}. To use par t icular fr equency point s, set w t o t he vect or of

desir ed fr equencies. Use logspace t o gener at e logar it hmically spaced

fr equency vect or s. All fr equencies should be specified in r adians/sec.

bode(sys1,sys2,...,sysN) or bode(sys1,sys2,...,sysN,w) plot s t he Bode

r esponses of sever al LTI models on a single figur e. All syst ems must have t he

same number of input s and out put s, but may ot her wise be a mix of cont inuous

and discr et e syst ems. This synt ax is useful t o compar e t he Bode r esponses of

mult iple syst ems.

bode(sys1,'PlotStyle1',...,sysN,'PlotStyleN') specifies which color ,

linest yle, and/or mar ker should be used t o plot each syst em. For example,

bode(sys1,'r--',sys2,'gx')

bode

11-20

uses r ed dashed lines for t he fir st syst em sys1 and gr een 'x' mar ker s for t he

second syst em sys2.

When invoked wit h left -hand ar gument s

[mag,phase,w] = bode(sys)

[mag,phase] = bode(sys,w)

r et ur n t he magnit ude and phase (in degr ees) of t he fr equency r esponse at t he

fr equencies w (in r ad/sec). The out put s mag and phase ar e 3-D ar r ays wit h t he

fr equency as t he last dimension (see “Ar gument s” below for det ails). You can

conver t t he magnit ude t o decibels by

magdb = 20*log10(mag)

Remark If sys is an FRD model, bode(sys,w), w can only include fr equencies in

sys.frequency.

Arguments The out put ar gument s mag and phase ar e 3-D ar r ays wit h dimensions

For SISO syst ems, mag(1,1,k) and phase(1,1,k) give t he magnit ude and

phase of t he r esponse at t he fr equency = w(k).

MIMO syst ems ar e t r eat ed as ar r ays of SISO syst ems and t he magnit udes and

phases ar e comput ed for each SISO ent r y independent ly ( is t he t r ansfer

funct ion fr om input t o out put ). The values mag(i,j,k) and phase(i,j,k)

t hen char act er ize t he r esponse of at t he fr equency w(k).

Example You can plot t he Bode r esponse of t he cont inuous SISO syst em

number of out put s ( ) number of input s ( ) × lengt h of w ( ) ×

ω

k

mag(1,1,k) h j ω

k

( ) =

phase(1,1,k) h j ω

k

( ) ∠ =

h

i j

h

i j

j i

h

i j

mag(i,j,k) h

i j

j ω

k

( ) =

phase(i,j,k) h

i j

j ω

k

( ) ∠ =

bode

11-21

by t yping

g = tf([1 0.1 7.5],[1 0.12 9 0 0]);

bode(g)

To plot t he r esponse on a wider fr equency r ange, for example, fr om 0.1 t o 100

r ad/sec, t ype

bode(g,{0.1 , 100})

H s ( )

s

2

0.1s 7.5 + +

s

4

0.12s

3

9s

2

+ +

--------------------------------------------- =

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−40

−20

0

20

40

10

−1

10

0

10

1

−200

−150

−100

−50

0

bode

11-22

You can also discr et ize t his syst em using zer o-or der hold and t he sample t ime

second, and compar e t he cont inuous and discr et ized r esponses by

t yping

gd = c2d(g,0.5)

bode(g,'r',gd,'b--')

Algorithm For cont inuous-t ime syst ems, bode comput es t he fr equency r esponse by

evaluat ing t he t r ansfer funct ion on t he imaginar y axis . Only

posit ive fr equencies ar e consider ed. For st at e-space models, t he fr equency

r esponse is

When numer ically safe, is diagonalized for maximum speed. Ot her wise,

is r educed t o upper Hessenber g for m and t he linear equat ion

is solved at each fr equency point , t aking advant age of t he Hessenber g

T

s

0.5 =

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−100

−50

0

50

10

−1

10

0

10

1

−300

−250

−200

−150

−100

−50

0

H s ( ) s j ω =

ω

D C j ω A – ( )

1 –

B + , ω 0 ≥

A A

j ω A – ( )X B =

bode

11-23

st r uct ur e. The r educt ion t o Hessenber g for m pr ovides a good compr omise

bet ween efficiency and r eliabilit y. See [1] for mor e det ails on t his t echnique.

For discr et e-t ime syst ems, t he fr equency r esponse is obt ained by evaluat ing

t he t r ansfer funct ion on t he unit cir cle. To facilit at e int er pr et at ion, t he

upper -half of t he unit cir cle is par amet r ized as

wher e is t he sample t ime. is called t he Nyquist frequency. The

equivalent “cont inuous-t ime fr equency” is t hen used as t he -axis var iable.

Because

is per iodic wit h per iod , bode plot s t he r esponse only up t o t he Nyquist

fr equency . If t he sample t ime is unspecified, t he default value is

assumed.

Diagnostics If t he syst em has a pole on t he axis (or unit cir cle in t he discr et e case) and

w happens t o cont ain t his fr equency point , t he gain is infinit e, is

singular , and bode pr oduces t he war ning message

Singularity in freq. response due to jw-axis or unit circle pole.

See Also evalfr Response at single complex fr equency

freqresp Fr equency r esponse comput at ion

ltiview LTI syst em viewer

nichols Nichols plot

nyquist Nyquist plot

sigma Singular value plot

References [1] Laub, A.J ., “Efficient Mult ivar iable Fr equency Response Comput at ions,”

IEEE Transactions on Automatic Control, AC-26 (1981), pp. 407–408.

H z ( )

z e

j ωT

s

= , 0 ω ω

N

≤ ≤

π

T

s

------ =

T

s

ω

N

ω x

H e

j ωT

s

( )

2ω

N

ω

N

T

s

1 =

j ω

j ωI A –

c2d

11-24

11c2d

Purpose Discr et ize cont inuous-t ime syst ems

Syntax sysd = c2d(sys,Ts)

sysd = c2d(sys,Ts,method)

Description sysd = c2d(sys,Ts) discr et izes t he cont inuous-t ime LTI model sys using

zer o-or der hold on t he input s and a sample t ime of Ts seconds.

sysd = c2d(sys,Ts,method) gives access t o alt er nat ive discr et izat ion

schemes. The st r ing method select s t he discr et izat ion met hod among t he

following:

Refer t o “Cont inuous/Discr et e Conver sions of LTI Models” in Chapt er 3 for

mor e det ail on t hese discr et izat ion met hods.

c2d suppor t s MIMO syst ems (except for t he 'matched' met hod) as well as LTI

models wit h input delays ('zoh' and 'foh' met hods only).

Example Consider t he syst em

'zoh' Zer o-or der hold. The cont r ol input s ar e assumed piecewise

const ant over t he sampling per iod Ts.

'foh' Tr iangle appr oximat ion (modified fir st -or der hold, see [1], p.

151). The cont r ol input s ar e assumed piecewise linear over

t he sampling per iod Ts.

'tustin' Bilinear (Tust in) appr oximat ion.

'prewarp' Tust in appr oximat ion wit h fr equency pr ewar ping.

'matched' Mat ched pole-zer o met hod. See [1], p. 147.

H s ( )

s 1 –

s

2

4s 5 + +

--------------------------- - =

c2d

11-25

wit h input delay second. To discr et ize t his syst em using t he

t r iangle appr oximat ion wit h sample t ime second, t ype

H = tf([1 –1],[1 4 5],'inputdelay',0.35)

Transfer function:

s - 1

exp(-0.35*s) * -------------

s^2 + 4 s + 5

Hd = c2d(H,0.1,'foh')

Transfer function:

0.0115 z^3 + 0.0456 z^2 – 0.0562 z – 0.009104

---------------------------------------------

z^6 – 1.629 z^5 + 0.6703 z^4

Sampling time: 0.1

T

d

0.35 =

T

s

0.1 =

c2d

11-26

The next command compar es t he cont inuous and discr et ized st ep r esponses.

step(H,'-',Hd,'--')

See Also d2c Discr et e t o cont inuous conver sion

d2d Resampling of discr et e syst ems

References [1] Fr anklin, G.F., J .D. Powell, and M.L. Wor kman, Digital Control of Dynamic

S ystems, Second Edit ion, Addison-Wesley, 1990.

canon

11-27

11canon

Purpose Comput e canonical st at e-space r ealizat ions

Syntax csys = canon(sys,'type')

[csys,T] = canon(sys,'type')

Description canon comput es a canonical st at e-space model for t he cont inuous or discr et e

LTI syst em sys. Two t ypes of canonical for ms ar e suppor t ed.

Modal Form

csys = canon(sys,'modal') r et ur ns a r ealizat ion csys in modal for m, t hat is,

wher e t he r eal eigenvalues appear on t he diagonal of t he mat r ix and t he

complex conjugat e eigenvalues appear in 2-by-2 blocks on t he diagonal of .

For a syst em wit h eigenvalues , t he modal mat r ix is of t he

for m

Companion Form

csys = canon(sys,'companion') pr oduces a companion r ealizat ion of sys

wher e t he char act er ist ic polynomial of t he syst em appear s explicit ly in t he

r ight most column of t he mat r ix. For a syst em wit h char act er ist ic polynomial

t he cor r esponding companion mat r ix is

A

A

λ

1

σ j ω λ

2

, t , ( ) A

λ

1

0 0 0

0 σ ω 0

0 ω – σ 0

0 0 0 λ

2

A

p s ( ) s

n

a

1

s

n 1 –

... a

n 1 –

s a

n

+ + + + =

A

A

0 0 .. .. 0 a

n

–

1 0 0 .. 0 a

n 1 –

–

0 1 0 . : :

: 0 . . : :

0 . . 1 0 a

2

–

0 .. .. 0 1 a

1

–

=

canon

11-28

For st at e-space models sys,

[csys,T] = canon(a,b,c,d,'type')

also r et ur ns t he st at e coor dinat e t r ansfor mat ion T r elat ing t he or iginal st at e

vect or and t he canonical st at e vect or .

This synt ax r et ur ns T=[] when sys is not a st at e-space model.

Algorithm Tr ansfer funct ions or zer o-pole-gain models ar e fir st conver t ed t o st at e space

using ss.

The t r ansfor mat ion t o modal for m uses t he mat r ix of eigenvect or s of t he

mat r ix. The modal for m is t hen obt ained as

The st at e t r ansfor mat ion r et ur ned is t he inver se of .

The r educt ion t o companion for m uses a st at e similar it y t r ansfor mat ion based

on t he cont r ollabilit y mat r ix [1].

Limitations The modal t r ansfor mat ion r equir es t hat t he mat r ix be diagonalizable. A

sufficient condit ion for diagonalizabilit y is t hat has no r epeat ed eigenvalues.

The companion t r ansfor mat ion r equir es t hat t he syst em be cont r ollable fr om

t he fir st input . The companion for m is oft en poor ly condit ioned for most

st at e-space comput at ions; avoid using it when possible.

See Also ctrb Cont r ollabilit y mat r ix

ctrbf Cont r ollabilit y canonical for m

ss2ss St at e similar it y t r ansfor mat ion

References [1] Kailat h, T. Linear S ystems, Pr ent ice-Hall, 1980.

x x

c

x

c

T x =

P A

x

c

·

P

1 –

APx

c

P

1 –

B u + =

y CPx

c

Du + =

T P

A

A

care

11-29

11car e

Purpose Solve cont inuous-t ime algebr aic Riccat i equat ions (CARE)

Syntax [X,L,G,rr] = care(A,B,Q)

[X,L,G,rr] = care(A,B,Q,R,S,E)

[X,L,G,report] = care(A,B,Q,...,'report')

[X1,X2,L,report] = care(A,B,Q,...,'implicit')

Description [X,L,G,rr] = care(A,B,Q) comput es t he unique solut ion of t he algebr aic

Riccat i equat ion

such t hat has all it s eigenvalues in t he open left -half plane. The

mat r ix is symmet r ic and called t he stabilizing solut ion of .

[X,L,G,rr] = care(A,B,Q) also r et ur ns:

•The eigenvalues L of

•The gain mat r ix

•The r elat ive r esidual rr defined by

[X,L,G,rr] = care(A,B,Q,R,S,E) solves t he mor e gener al Riccat i equat ion

Her e t he gain mat r ix is and t he “closed-loop”

eigenvalues ar e L = eig(A–B*G,E).

Two addit ional synt axes ar e pr ovided t o help develop applicat ions such as

-opt imal cont r ol design.

[X,L,G,report] = care(A,B,Q,...,'report')t ur ns off t he er r or messages

when t he solut ion fails t o exist and r et ur ns a failur e r epor t inst ead.

The value of report is:

•–1 when t he associat ed Hamilt onian pencil has eigenvalues on or ver y near

t he imaginar y axis (failur e)

•–2 when t her e is no finit e solut ion, i.e., wit h singular

(failur e)

•The r elat ive r esidual defined above when t he solut ion exist s (success)

X

R i c X ( ) A

T

X XA XBB

T

X – Q + + 0 = =

A BB

T

X –

X R i c X ( ) 0 =

A BB

T

X –

G B

T

X =

r r

R i c X ( )

F

X

F

--------------------------- =

R i c X ( ) A

T

XE E

T

XA E

T

XB S + ( )R

1 –

B

T

XE S

T

+ ( ) – Q + + 0 = =

G R

1 –

B

T

XE S

T

+ ( ) =

H

∞

X

X X

2

X

1

1 –

= X

1

r r

care

11-30

Alt er nat ively, [X1,X2,L,report] = care(A,B,Q,...,'implicit') also t ur ns

off er r or messages but now r et ur ns in implicit for m.

Not e t hat t his synt ax r et ur ns report = 0 when successful.

Examples Example 1

Given

you can solve t he Riccat i equat ion

by

a = [–3 2;1 1]

b = [0 ; 1]

c = [1 –1]

r = 3

[x,l,g] = care(a,b,c'*c,r)

This yields t he solut ion

x

x =

0.5895 1.8216

1.8216 8.8188

You can ver ify t hat t his solut ion is indeed st abilizing by compar ing t he

eigenvalues of a and a–b*g.

[eig(a) eig(a–b*g)]

ans =

–3.4495 –3.5026

1.4495 –1.4370

X

X X

2

X

1

1 –

=

A

3 – 2

1 1

= B

0

1

= C

1 1 –

= R 3 =

A

T

X XA XBR

1 –

B

T

X – C

T

C + + 0 =

care

11-31

Finally, not e t hat t he var iable l cont ains t he closed-loop eigenvalues eig(a–

b*g).

l

l =

–3.5026

–1.4370

Example 2

To solve t he -like Riccat i equat ion

r ewr it e it in t he care for mat as

You can now comput e t he st abilizing solut ion by

B = [B1 , B2]

m1 = size(B1,2)

m2 = size(B2,2)

R = [–g^2*eye(m1) zeros(m1,m2) ; zeros(m2,m1) eye(m2)]

X = care(A,B,C'*C,R)

Algorithm care implement s t he algor it hms descr ibed in [1]. It wor ks wit h t he

Hamilt onian mat r ix when is well-condit ioned and ; ot her wise it uses

t he ext ended Hamilt onian pencil and QZ algor it hm.

Limitations The pair must be st abilizable (t hat is, all unst able modes ar e

cont r ollable). In addit ion, t he associat ed Hamilt onian mat r ix or pencil must

have no eigenvalue on t he imaginar y axis. Sufficient condit ions for t his t o hold

ar e det ect able when and , or

H

∞

A

T

X XA X γ

2 –

B

1

B

1

T

B

2

B

2

T

– ( )X + + C

T

C + 0 =

A

T

X XA X B

1

B

2

, [ ]

γ

2 –

I – 0

0 I

1 –

B

1

T

B

2

T

X – C

T

C + + 0 =

B

R

¹ ¹ ' ¹ ¹

¹ ¹ ' ¹ ¹

X

R E I =

A B , ( )

Q A , ( ) S 0 = R 0 >

care

11-32

See Also dare Solve discr et e-t ime Riccat i equat ions

lyap Solve cont inuous-t ime Lyapunov equat ions

References [1] Ar nold, W.F., III and A.J . Laub, “Gener alized Eigenpr oblem Algor it hms

and Soft war e for Algebr aic Riccat i Equat ions,” Proc. IEEE, 72 (1984),

pp. 1746–1754.

Q S

S

T

R

0 >

chgunits

11-33

11chgunit s

Purpose Conver t t he fr equency unit s of an FRD model

Syntax sys = chgunits(sys,units)

Description sys = chgunits(sys,units) conver t s t he unit s of t he fr equency point s st or ed

in an FRD model, sys t o units, wher e units is eit her of t he st r ings 'Hz' or

'rad/s'. This oper at ion changes t he assigned fr equencies by applying t he

appr opr iat e (2*pi) scaling fact or , and t he 'Units' pr oper t y is updat ed.

If t he 'Units' field alr eady mat ches units, no conver sion is made.

Example w = logspace(1,2,2);

sys = rss(3,1,1);

sys = frd(sys,w)

From input 'input 1' to:

Frequency(rad/s) output 1

---------------- --------

10 0.293773+0.001033i

100 0.294404+0.000109i

Continuous-time frequency response data.

sys = chgunits(sys,'Hz')

sys.freq

ans =

1.5915

15.9155

See Also frd Cr eat e or conver t t o an FRD model

get Get t he pr oper t ies of an LTI model

set Set t he pr oper t ies of an LTI model

connect

11-34

11connect

Purpose Der ive st at e-space model fr om block diagr am descr ipt ion

Syntax sysc = connect(sys,Q,inputs,outputs)

Description Complex dynamical syst ems ar e oft en given in block diagr am for m. For

syst ems of even moder at e complexit y, it can be quit e difficult t o find t he

st at e-space model r equir ed in or der t o br ing cer t ain analysis and design t ools

int o use. St ar t ing wit h a block diagr am descr ipt ion, you can use append and

connect t o const r uct a st at e-space model of t he syst em.

Fir st , use

sys = append(sys1,sys2,...,sysN)

t o specify each block sysj in t he diagr am and for m a block-diagonal,

unconnected LTI model sys of t he diagr am.

Next , use

sysc = connect(sys,Q,inputs,outputs)

t o connect t he blocks t oget her and der ive a st at e-space model sysc for t he

over all int er connect ion. The ar gument s Q, inputs, and outputs have t he

following pur pose:

• The mat r ix Q indicat es how t he blocks on t he diagr am ar e connect ed. It has

a r ow for each input of sys, wher e t he fir st element of each r ow is t he input

number . The subsequent element s of each r ow specify wher e t he block input

get s it s summing input s; negat ive element s indicat e minus input s t o t he

summing junct ion. For example, if input 7 get s it s input s fr om t he out put s 2,

15, and 6, wher e t he input fr om out put 15 is negat ive, t he cor r esponding r ow

of Q is [7 2 –15 6]. Shor t r ows can be padded wit h t r ailing zer os (see

example below).

• Given sys and Q, connect comput es a st at e-space model of t he

int er connect ion wit h t he same input s and out put s as sys (t hat is, t he

concat enat ion of all block input s and out put s). The index vect or s inputs and

outputs t hen indicat e which of t he input s and out put s in t he lar ge

unconnect ed syst em ar e ext er nal input s and out put s of t he block diagr am.

For example, if t he ext er nal input s ar e input s 1, 2, and 15 of sys, and t he

connect

11-35

ext er nal out put s ar e out put s 2 and 7 of sys, t hen inputs and outputs should

be set t o

inputs = [1 2 15];

outputs = [2 7];

The final model sysc has t hese par t icular input s and out put s.

Since it is easy t o make a mist ake ent er ing all t he dat a r equir ed for a lar ge

model, be sur e t o ver ify your model in as many ways as you can. Her e ar e some

suggest ions:

•Make sur e t he poles of t he unconnect ed model sys mat ch t he poles of t he

var ious blocks in t he diagr am.

•Check t hat t he final poles and DC gains ar e r easonable.

•Plot t he step and bode r esponses of sysc and compar e t hem wit h your

expect at ions.

If you need t o wor k ext ensively wit h block diagr ams, Simulink is a much easier

and mor e compr ehensive t ool for model building.

Example Consider t he following block diagr am

x

·

Ax Bu + =

y Cx Du + =

2 s 1 + ( )

s 2 +

--------------------

10

s 5 +

------------

y

1

y

2

u

2

u

1

u

c

sys1

sys2

sys3

+

–

connect

11-36

Given t he mat r ices of t he st at e-space model sys2

A = [ –9.0201 17.7791

–1.6943 3.2138 ];

B = [ –.5112 .5362

–.002 –1.8470];

C = [ –3.2897 2.4544

–13.5009 18.0745];

D = [–.5476 –.1410

–.6459 .2958 ];

Define t he t hr ee blocks as individual LTI models.

sys1 = tf(10,[1 5],'inputname','uc')

sys2 = ss(A,B,C,D,'inputname',{'u1' 'u2'},...

'outputname',{'y1' 'y2'})

sys3 = zpk(–1,–2,2)

Next append t hese blocks t o for m t he unconnect ed model sys.

sys = append(sys1,sys2,sys3)

This pr oduces t he block-diagonal model

sys

a =

x1 x2 x3 x4

x1 -5 0 0 0

x2 0 -9.0201 17.779 0

x3 0 -1.6943 3.2138 0

x4 0 0 0 -2

b =

uc u1 u2 ?

x1 4 0 0 0

x2 0 -0.5112 0.5362 0

x3 0 -0.002 -1.847 0

x4 0 0 0 1.4142

connect

11-37

c =

x1 x2 x3 x4

? 2.5 0 0 0

y1 0 -3.2897 2.4544 0

y2 0 -13.501 18.075 0

? 0 0 0 -1.4142

d =

uc u1 u2 ?

? 0 0 0 0

y1 0 -0.5476 -0.141 0

y2 0 -0.6459 0.2958 0

? 0 0 0 2

Continuous-time system.

Not e t hat t he or der ing of t he input s and out put s is t he same as t he block

or der ing you chose. Unnamed input s or out put s ar e denot ed by ?.

To der ive t he over all block diagr am model fr om sys, specify t he

int er connect ions and t he ext er nal input s and out put s. You need t o connect

out put s 1 and 4 int o input 3 (u2), and out put 3 (y2) int o input 4. The

int er connect ion mat r ix Q is t her efor e

Q = [3 1 –4

4 3 0];

Not e t hat t he second r ow of Q has been padded wit h a t r ailing zer o. The block

diagr am has t wo ext er nal input s uc and u1 (input s 1 and 2 of sys), and t wo

ext er nal out put s y1 and y2 (out put s 2 and 3 of sys). Accor dingly, set inputs

and outputs as follows.

inputs = [1 2];

outputs = [2 3];

connect

11-38

You can obt ain a st at e-space model for t he over all int er connect ion by t yping

sysc = connect(sys,Q,inputs,outputs)

a =

x1 x2 x3 x4

x1 -5 0 0 0

x2 0.84223 0.076636 5.6007 0.47644

x3 -2.9012 -33.029 45.164 -1.6411

x4 0.65708 -11.996 16.06 -1.6283

b =

uc u1

x1 4 0

x2 0 -0.076001

x3 0 -1.5011

x4 0 -0.57391

c =

x1 x2 x3 x4

y1 -0.22148 -5.6818 5.6568 -0.12529

y2 0.46463 -8.4826 11.356 0.26283

d =

uc u1

y1 0 -0.66204

y2 0 -0.40582

Continuous-time system.

Not e t hat t he input s and out put s ar e as desir ed.

See Also append Append LTI syst ems

feedback Feedback connect ion

minreal Minimal st at e-space r ealizat ion

parallel Par allel connect ion

series Ser ies connect ion

connect

11-39

References [1] Edwar ds, J .W., “A For t r an Pr ogr am for t he Analysis of Linear Cont inuous

and Sampled-Dat a Syst ems,” NAS A Report TM X56038, Dr yden Resear ch

Cent er , 1976.

covar

11-40

11covar

Purpose Out put and st at e covar iance of a syst em dr iven by whit e noise

Syntax [P,Q] = covar(sys,W)

Description covar calculat es t he st at ionar y covar iance of t he out put of an LTI model sys

dr iven by Gaussian whit e noise input s . This funct ion handles bot h

cont inuous- and discr et e-t ime cases.

P = covar(sys,W) r et ur ns t he st eady-st at e out put r esponse covar iance

given t he noise int ensit y

[P,Q] = covar(sys,W) also r et ur ns t he st eady-st at e st at e covar iance

when sys is a st at e-space model (ot her wise Q is set t o []).

When applied t o an N-dimensional LTI ar r ay sys, covar r et ur ns

mult i-dimensional ar r ays P, Q such t hat

P(:,:,i1,...iN) and Q(:,:,i1,...iN) ar e t he covar iance mat r ices for t he

model sys(:,:,i1,...iN).

Example Comput e t he out put r esponse covar iance of t he discr et e SISO syst em

due t o Gaussian whit e noise of int ensit y W = 5. Type

sys = tf([2 1],[1 0.2 0.5],0.1);

p = covar(sys,5)

y

w

P E yy

T

( ) =

E w t ( )w τ ( )

T

( ) W δ t τ – ( ) = (cont inuous t ime)

E w k [ ]w l [ ]

T

( ) W δ

k l

= (discr et e t ime)

Q E xx

T

( ) =

H z ( )

2z 1 +

z

2

0.2z 0.5 + +

-------------------------------------- , = T

s

0.1 =

covar

11-41

and MATLAB r et ur ns

p =

30.3167

You can compar e t his out put of covar t o simulat ion r esult s.

randn('seed',0)

w = sqrt(5)∗randn(1,1000); % 1000 samples

% Simulate response to w with LSIM:

y = lsim(sys,w);

% Compute covariance of y values

psim = sum(y .∗ y)/length(w);

This yields

psim =

32.6269

The t wo covar iance values p and psim do not agr ee per fect ly due t o t he finit e

simulat ion hor izon.

Algorithm Tr ansfer funct ions and zer o-pole-gain models ar e fir st conver t ed t o st at e space

wit h ss.

For cont inuous-t ime st at e-space models

is obt ained by solving t he Lyapunov equat ion

The out put r esponse covar iance is finit e only when and t hen

.

In discr et e t ime, t he st at e covar iance solves t he discr et e Lyapunov equat ion

x

·

Ax Bw + =

y Cx Dw + =

Q

AQ QA

T

BWB

T

+ + 0 =

P D 0 =

P CQC

T

=

AQA

T

Q – BWB

T

+ 0 =

covar

11-42

and is given by

Not e t hat is well defined for nonzer o in t he discr et e case.

Limitations The st at e and out put covar iances ar e defined for stable syst ems only. For

cont inuous syst ems, t he out put r esponse covar iance is finit e only when t he

mat r ix is zer o (st r ict ly pr oper syst em).

See Also dlyap Solver for discr et e-t ime Lyapunov equat ions

lyap Solver for cont inuous-t ime Lyapunov equat ions

References [1] Br yson, A.E. and Y.C. Ho, Applied Optimal Control, Hemispher e

Publishing, 1975, pp. 458-459.

P P CQC

T

DWD

T

+ =

P D

P

D

ctrb

11-43

11ct r b

Purpose For m t he cont r ollabilit y mat r ix

Syntax Co = ctrb(A,B)

Co = ctrb(sys)

Description ctrb comput es t he cont r ollabilit y mat r ix for st at e-space syst ems. For an

n-by-n mat r ix A and an n-by-m mat r ix B, ctrb(A,B) r et ur ns t he cont r ollabilit y

mat r ix

(11-1)

wher e has n r ows and nm columns.

Co = ctrb(sys) calculat es t he cont r ollabilit y mat r ix of t he st at e-space LTI

object sys. This synt ax is equivalent t o execut ing

Co = ctrb(sys.A,sys.B)

The syst em is cont r ollable if Co has full r ank n.

Example Check if t he syst em wit h t he following dat a

A =

1 1

4 –2

B =

1 –1

1 –1

is cont r ollable. Type

Co=ctrb(A,B);

% Number of uncontrollable states

unco=length(A)–rank(Co)

and MATLAB r et ur ns

unco =

1

Co B AB A

2

B … A

n 1 –

B =

Co

ctrb

11-44

Limitations The calculat ion of Co may be ill-condit ioned wit h r espect t o inver sion. An

indicat ion of t his can be seen fr om t his simple example.

This pair is cont r ollable if but if , wher e eps is t he r elat ive

machine pr ecision. ctrb(A,B) r et ur ns

which is not full r ank. For cases like t hese, it is bet t er t o det er mine t he

cont r ollabilit y of a syst em using ctrbf.

See Also ctrbf Comput e t he cont r ollabilit y st air case for m

obsv Comput e t he obser vabilit y mat r ix

A

1 δ

0 1

, = B

1

δ

=

δ 0 ≠ δ eps <

B AB

1 1

δ δ

=

ctrbf

11-45

11ct r bf

Purpose Comput e t he cont r ollabilit y st air case for m

Syntax [Abar,Bbar,Cbar,T,k] = ctrbf(A,B,C)

[Abar,Bbar,Cbar,T,k] = ctrbf(A,B,C,tol)

Description If t he cont r ollabilit y mat r ix of has r ank , wher e n is t he size of

, t hen t her e exist s a similar it y t r ansfor mat ion such t hat

wher e is unit ar y, and t he t r ansfor med syst em has a staircase for m, in which

t he uncont r ollable modes, if t her e ar e any, ar e in t he upper left cor ner .

wher e is cont r ollable, all eigenvalues of ar e uncont r ollable, and

[Abar,Bbar,Cbar,T,k] = ctrbf(A,B,C) decomposes t he st at e-space syst em

r epr esent ed by A, B, and C int o t he cont r ollabilit y st air case for m, Abar, Bbar,

and Cbar, descr ibed above. T is t he similar it y t r ansfor mat ion mat r ix and k is a

vect or of lengt h n, wher e n is t he or der of t he syst em r epr esent ed by A. Each

ent r y of k r epr esent s t he number of cont r ollable st at es fact or ed out dur ing each

st ep of t he t r ansfor mat ion mat r ix calculat ion. The number of nonzer o element s

in k indicat es how many it er at ions wer e necessar y t o calculat e T, and sum(k) is

t he number of st at es in , t he cont r ollable por t ion of Abar.

ctrbf(A,B,C,tol) uses t he t oler ance tol when calculat ing t he cont r ollable/

uncont r ollable subspaces. When t he t oler ance is not specified, it default s t o

10*n*norm(A,1)*eps.

A B , ( ) r n ≤

A

A T AT

T

, = B T B , = C CT

T

=

T

A

A

u c

0

A

21

A

c

, =

B

0

B

c

, = C C

n c

C

c

=

A

c

B

c

, ( ) A

u c

C

c

s I A

c

– ( )

1 –

B

c

C s I A – ( )

1 –

B. =

A

c

ctrbf

11-46

Example Comput e t he cont r ollabilit y st air case for m for

A =

1 1

4 –2

B =

1 –1

1 –1

C =

1 0

0 1

and locat e t he uncont r ollable mode.

[Abar,Bbar,Cbar,T,k]=ctrbf(A,B,C)

Abar =

–3.0000 0

–3.0000 2.0000

Bbar =

0.0000 0.0000

1.4142 –1.4142

Cbar =

–0.7071 0.7071

0.7071 0.7071

T =

–0.7071 0.7071

0.7071 0.7071

k =

1 0

The decomposed syst em Abar shows an uncont r ollable mode locat ed at –3 and

a cont r ollable mode locat ed at 2.

See also t he funct ion minreal, which uses ctrbf t o find t he minimal r ealizat ion

of a syst em.

ctrbf

11-47

Algorithm ctrbf is an M-file t hat implement s t he St air case Algor it hm of [1].

See Also ctrb For m t he cont r ollabilit y mat r ix

minreal Minimum r ealizat ion and pole-zer o cancellat ion

References [1] Rosenbr ock, M.M., S tate-S pace and Multivariable Theory, J ohn Wiley,

1970.

d2c

11-48

11d2c

Purpose Conver t discr et e-t ime LTI models t o cont inuous t ime

Syntax sysc = d2c(sysd)

sysc = d2c(sysd,method)

Description d2c conver t s LTI models fr om discr et e t o cont inuous t ime using one of t he

following conver sion met hods:

The st r ing method specifies t he conver sion met hod. If method is omit t ed t hen

zer o-or der hold ('zoh') is assumed. See “Cont inuous/Discr et e Conver sions of

LTI Models” in Chapt er 3 of t his manual and r efer ence [1] for mor e det ails on

t he conver sion met hods.

Example Consider t he discr et e-t ime model wit h t r ansfer funct ion

and sample t ime second. You can der ive a cont inuous-t ime

zer o-or der -hold equivalent model by t yping

Hc = d2c(H)

Discr et izing t he r esult ing model Hc wit h t he zer o-or der hold met hod (t his is t he

default met hod) and sampling per iod gives back t he or iginal discr et e

model . To see t his, t ype

c2d(Hc,0.1)

To use t he Tust in appr oximat ion inst ead of zer o-or der hold, t ype

Hc = d2c(H,'tustin')

'zoh' Zer o-or der hold on t he input s. The cont r ol input s ar e

assumed piecewise const ant over t he sampling per iod.

'tustin' Bilinear (Tust in) appr oximat ion t o t he der ivat ive.

'prewarp' Tust in appr oximat ion wit h fr equency pr ewar ping.

'matched' Mat ched pole-zer o met hod of [1] (for SISO syst ems only).

H z ( )

z 1 –

z

2

z 0.3 + +

----------------------------- =

T

s

0.1 =

T

s

0.1 =

H z ( )

d2c

11-49

As wit h zer o-or der hold, t he inver se discr et izat ion oper at ion

c2d(Hc,0.1,'tustin')

gives back t he or iginal .

Algorithm The 'zoh' conver sion is per for med in st at e space and r elies on t he mat r ix

logar it hm (see logm in Using MATLAB).

Limitations The Tust in appr oximat ion is not defined for syst ems wit h poles at and

is ill-condit ioned for syst ems wit h poles near .

The zer o-or der hold met hod cannot handle syst ems wit h poles at . In

addit ion, t he 'zoh' conver sion incr eases t he model or der for syst ems wit h

negat ive r eal poles, [2]. This is necessar y because t he mat r ix logar it hm maps

r eal negat ive poles t o complex poles. As a r esult , a discr et e model wit h a single

pole at would be t r ansfor med t o a cont inuous model wit h a single

complex pole at . Such a model is not meaningful

because of it s complex t ime r esponse.

To ensur e t hat all complex poles of t he cont inuous model come in conjugat e

pair s, d2c r eplaces negat ive r eal poles wit h a pair of complex conjugat e

poles near . The conver sion t hen yields a cont inuous model wit h higher

or der . For example, t he discr et e model wit h t r ansfer funct ion

and sample t ime 0.1 second is conver t ed by t yping

Ts = 0.1

H = zpk(–0.2,–0.5,1,Ts) * tf(1,[1 1 0.4],Ts)

Hc = d2c(H)

MATLAB r esponds wit h

Warning: System order was increased to handle real negative poles.

Zero/pole/gain:

–33.6556 (s–6.273) (s^2 + 28.29s + 1041)

--------------------------------------------

(s^2 + 9.163s + 637.3) (s^2 + 13.86s + 1035)

H z ( )

z 1 – =

z 1 – =

z 0 =

z 0.5 – =

0.5 – ( ) log 0.6931 – j π + ≈

z α – =

α –

H z ( )

z 0.2 +

z 0.5 + ( ) z

2

z 0.4 + + ( )

--------------------------------------------------------- =

d2c

11-50

Conver t Hc back t o discr et e t ime by t yping

c2d(Hc,Ts)

yielding

Zero/pole/gain:

(z+0.5) (z+0.2)

-------------------------

(z+0.5)^2 (z^2 + z + 0.4)

Sampling time: 0.1

This discr et e model coincides wit h aft er canceling t he pole/zer o pair at

.

See Also c2d Cont inuous- t o discr et e-t ime conver sion

d2d Resampling of discr et e models

logm Mat r ix logar it hm

References [1] Fr anklin, G.F., J .D. Powell, and M.L. Wor kman, Digital Control of Dynamic

S ystems, Second Edit ion, Addison-Wesley, 1990.

[2] Kollár , I., G.F. Fr anklin, and R. Pint elon, “On t he Equivalence of z-domain

and s-domain Models in Syst em Ident ificat ion,” Proceedings of the IEEE

Instrumentation and Measurement Technology Conference, Br ussels, Belgium,

J une, 1996, Vol. 1, pp. 14-19.

H z ( )

z 0.5 – =

d2d

11-51

11d2d

Purpose Resample discr et e-t ime LTI models or add input delays

Syntax sys1 = d2d(sys,Ts)

Description sys1 = d2d(sys,Ts) r esamples t he discr et e-t ime LTI model sys t o pr oduce an

equivalent discr et e-t ime model sys1 wit h t he new sample t ime Ts (in seconds).

The r esampling assumes zer o-or der hold on t he input s and is equivalent t o

consecut ive d2c and c2d conver sions.

sys1 = c2d(d2c(sys),Ts)

Example Consider t he zer o-pole-gain model

wit h sample t ime 0.1 second. You can r esample t his model at 0.05 second by

t yping

H = zpk(0.7,0.5,1,0.1)

H2 = d2d(H,0.05)

Zero/pole/gain:

(z–0.8243)

----------

(z–0.7071)

Sampling time: 0.05

Not e t hat t he inver se r esampling oper at ion, per for med by t yping d2d(H2,0.1),

yields back t he init ial model .

Zero/pole/gain:

(z–0.7)

-------

(z–0.5)

Sampling time: 0.1

See Also c2d Cont inuous- t o discr et e-t ime conver sion

d2c Discr et e- t o cont inuous-t ime conver sion

H z ( )

z 0.7 –

z 0.5 –

----------------- =

H z ( )

damp

11-52

11damp

Purpose Comput e damping fact or s and nat ur al fr equencies

Syntax [Wn,Z] = damp(sys)

[Wn,Z,P] = damp(sys)

Description damp calculat es t he damping fact or and nat ur al fr equencies of t he poles of an

LTI model sys. When invoked wit hout left hand ar gument s, a t able of t he

eigenvalues in incr easing fr equency, along wit h t heir damping fact or s and

nat ur al fr equencies, is displayed on t he scr een.

[Wn,Z] = damp(sys) r et ur ns column vect or s Wn and Z cont aining t he nat ur al

fr equencies and damping fact or s of t he poles of sys. For discr et e-t ime

syst ems wit h poles and sample t ime , damp comput es “equivalent ”

cont inuous-t ime poles by solving

The values Wn and Z ar e t hen r elat ive t o t he cont inuous-t ime poles . Bot h Wn

and Z ar e empt y if t he sample t ime is unspecified.

[Wn,Z,P] = damp(sys) r et ur ns an addit ional vect or P cont aining t he (t r ue)

poles of sys. Not e t hat P r et ur ns t he same values as pole(sys) (up t o

r eor der ing).

Example Comput e and display t he eigenvalues, nat ur al fr equencies, and damping

fact or s of t he cont inuous t r ansfer funct ion

Type

H = tf([2 5 1],[1 2 3])

Transfer function:

2 s^2 + 5 s + 1

---------------

s^2 + 2 s + 3

ω

n

ζ

z T

s

s

z e

s T

s

=

s

H s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

------------------------------- =

damp

11-53

Type

damp(H)

and MATLAB r et ur ns

Eigenvalue Damping Freq. (rad/s)

–1.00e+000 + 1.41e+000i 5.77e–001 1.73e+000

–1.00e+000 – 1.41e+000i 5.77e–001 1.73e+000

See Also eig Calculat e eigenvalues and eigenvect or s

esort,dsort Sor t syst em poles

pole Comput e syst em poles

pzmap Pole-zer o map

zero Comput e (t r ansmission) zer os

dare

11-54

11dar e

Purpose Solve discr et e-t ime algebr aic Riccat i equat ions (DARE)

Syntax [X,L,G,rr] = dare(A,B,Q,R)

[X,L,G,rr] = dare(A,B,Q,R,S,E)

[X,L,G,report] = dare(A,B,Q,...,'report')

[X1,X2,L,report] = dare(A,B,Q,...,'implicit')

Description [X,L,G,rr] = dare(A,B,Q,R) comput es t he unique solut ion of t he

discr et e-t ime algebr aic Riccat i equat ion

such t hat t he “closed-loop” mat r ix

has all it s eigenvalues inside t he unit disk. The mat r ix is symmet r ic and

called t he stabilizing solut ion of . [X,L,G,rr] = dare(A,B,Q,R)

also r et ur ns:

• The eigenvalues L of

• The gain mat r ix

• The r elat ive r esidual rr defined by

[X,L,G,rr] = dare(A,B,Q,R,S,E) solves t he mor e gener al DARE:

The cor r esponding gain mat r ix and closed-loop eigenvalues ar e

X

R i c X ( ) A

T

XA X – A

T

XB B

T

XB R + ( )

1 –

B

T

XA – Q + 0 = =

A

cl

A B B

T

XB R + ( )

1 –

B

T

XA – =

X

R i c X ( ) 0 =

A

cl

G B

T

XB R + ( )

1 –

B

T

XA =

r r

R i c X ( )

F

X

F

--------------------------- =

A

T

XA E

T

XE – A

T

XB S + ( ) B

T

XB R + ( )

1 –

B

T

XA S

T

+ ( ) – Q + 0 =

G B

T

XB R + ( )

1 –

B

T

XA S

T

+ ( ) =

dare

11-55

and L = eig(A–B*G,E).

Two addit ional synt axes ar e pr ovided t o help develop applicat ions such as

-opt imal cont r ol design.

[X,L,G,report] = dare(A,B,Q,...,'report') t ur ns off t he er r or messages

when t he solut ion fails t o exist and r et ur ns a failur e r epor t inst ead. The

value of report is:

•–1 when t he associat ed symplect ic pencil has eigenvalues on or ver y near t he

unit cir cle (failur e)

•–2 when t her e is no finit e solut ion, t hat is, wit h singular

(failur e)

•The r elat ive r esidual defined above when t he solut ion exist s (success)

Alt er nat ively, [X1,X2,L,report] = dare(A,B,Q,...,'implicit') also t ur ns

off er r or messages but now r et ur ns in implicit for m as

Not e t hat t his synt ax r et ur ns report = 0 when successful.

Algorithm dare implement s t he algor it hms descr ibed in [1]. It uses t he QZ algor it hm t o

deflat e t he ext ended symplect ic pencil and comput e it s st able invar iant

subspace.

Limitations The pair must be st abilizable (t hat is, all eigenvalues of out side t he

unit disk must be cont r ollable). In addit ion, t he associat ed symplect ic pencil

must have no eigenvalue on t he unit cir cle. Sufficient condit ions for t his t o hold

ar e det ect able when and , or

See Also care Solve cont inuous-t ime Riccat i equat ions

dlyap Solve discr et e-t ime Lyapunov equat ions

H

∞

X

X X

2

X

1

1 –

= X

1

r r

X

X X

2

X

1

1 –

=

A B , ( ) A

Q A , ( ) S 0 = R 0 >

Q S

S

T

R

0 >

dare

11-56

References [1] Ar nold, W.F., III and A.J . Laub, “Gener alized Eigenpr oblem Algor it hms

and Soft war e for Algebr aic Riccat i Equat ions,” Proc. IEEE, 72 (1984), pp.

1746–1754.

dcgain

11-57

11dcgain

Purpose Comput e low fr equency (DC) gain of LTI syst em

Syntax k = dcgain(sys)

Description k = dcgain(sys) comput es t he DC gain k of t he LTI model sys.

Continuous Time

The cont inuous-t ime DC gain is t he t r ansfer funct ion value at t he fr equency

. For st at e-space models wit h mat r ices , t his value is

Discrete Time

The discr et e-t ime DC gain is t he t r ansfer funct ion value at . For

st at e-space models wit h mat r ices , t his value is

Remark The DC gain is infinit e for syst ems wit h int egr at or s.

Example To comput e t he DC gain of t he MIMO t r ansfer funct ion

t ype

H = [1 tf([1 –1],[1 1 3]) ; tf(1,[1 1]) tf([1 2],[1 –3])]

dcgain(H)

ans =

1.0000 –0.3333

1.0000 –0.6667

See Also evalfr Evaluat es fr equency r esponse at single fr equency

norm LTI syst em nor ms

s 0 = A B C D , , , ( )

K D CA

1 –

B – =

z 1 =

A B C D , , , ( )

K D C I A – ( )

1 –

B + =

H s ( )

1

s 1 –

s

2

s 3 + +

------------------------

1

s 1 +

------------

s 2 +

s 3 –

------------

=

delay2z

11-58

11delay2z

Purpose Replace delays of discr et e-t ime TF, SS, or ZPK models by poles at z=0, or

r eplace delays of FRD models by a phase shift

Syntax sys = delay2z(sys)

Description sys = delay2z(sys) maps all t ime delays t o poles at z=0 for discr et e-t ime TF,

ZPK, or SS models sys. Specifically, a delay of k sampling per iods is r eplaced

by (1/z)^k in t he t r ansfer funct ion cor r esponding t o t he model.

For FRD models, delay2z absor bs all t ime delays int o t he fr equency r esponse

dat a, and is applicable t o bot h cont inuous- and discr et e-t ime FRDs.

Example z=tf('z',–1);

sys=(–.4*z –.1)/(z^2 + 1.05*z + .08)

Transfer function:

–0.4 z – 0.1

-------------------

z^2 + 1.05 z + 0.08

Sampling time: unspecified

sys.Inputd = 1;

sys = delay2z(sys)

Transfer function:

-0.4 z - 0.1

-----------------------

z^3 + 1.05 z^2 + 0.08 z

Sampling time: unspecified

See Also hasdelay Tr ue for LTI models wit h delays

pade Pade appr oximat ion of t ime delays

totaldelay Combine delays for an LTI model

dlqr

11-59

11dlqr

Purpose Design linear -quadr at ic (LQ) st at e-feedback r egulat or for discr et e-t ime plant

Syntax [K,S,e] = dlqr(a,b,Q,R)

[K,S,e] = dlqr(a,b,Q,R,N)

Description [K,S,e] = dlqr(a,b,Q,R,N) calculat es t he opt imal gain mat r ix K such t hat

t he st at e-feedback law

minimizes t he quadr at ic cost funct ion

for t he discr et e-t ime st at e-space mode

l

The default value N=0 is assumed when N is omit t ed.

In addit ion t o t he st at e-feedback gain K, dlqr r et ur ns t he solut ion S of t he

associat ed discr et e-t ime Riccat i equat ion

and t he closed-loop eigenvalues e = eig(a-b*K). Not e t hat is der ived fr om

by

Limitations The pr oblem dat a must sat isfy:

•The pair is st abilizable.

• and .

• has no unobser vable mode on t he unit cir cle.

See Also dare Solve discr et e Riccat i equat ions

lqgreg LQG r egulat or

u n [ ] Kx n [ ] – =

J u ( ) x n [ ]

T

Qx n [ ] u n [ ]

T

R u n [ ] 2x n [ ]

T

N u n [ ] + + ( )

n 1 =

∞

∑

=

x n 1 + [ ] Ax n [ ] Bu n [ ] + =

A

T

S A S – A

T

S B N + ( ) B

T

XB R + ( )

1 –

B

T

S A N

T

+ ( ) – Q + 0 =

K

S

K B

T

XB R + ( )

1 –

B

T

S A N

T

+ ( ) =

A B , ( )

R 0 > Q N R

1 –

N

T

– 0 ≥

Q N R

1 –

N

T

– A BR

1 –

N

T

– , ( )

dlqr

11-60

lqr St at e-feedback LQ r egulat or for cont inuous plant

lqrd Discr et e LQ r egulat or for cont inuous plant

lqry St at e-feedback LQ r egulat or wit h out put weight ing

dlyap

11-61

11dlyap

Purpose Solve discr et e-t ime Lyapunov equat ions

Syntax X = dlyap(A,Q)

Description dlyap solves t he discr et e-t ime Lyapunov equat ion

wher e and ar e -by- mat r ices.

The solut ion is symmet r ic when is symmet r ic, and posit ive definit e when

is posit ive definit e and has all it s eigenvalues inside t he unit disk.

Diagnostics The discr et e-t ime Lyapunov equat ion has a (unique) solut ion if t he eigenvalues

of sat isfy for all .

If t his condit ion is violat ed, dlyap pr oduces t he er r or message

Solution does not exist or is not unique.

See Also covar Covar iance of syst em r esponse t o whit e noise

lyap Solve cont inuous Lyapunov equat ions

A

T

XA X – Q + 0 =

A Q n n

X Q

Q A

α

1

α

2

... α

n

, , , A α

i

α

j

1 ≠ i j , ( )

drmodel, drss

11-62

11dr model, dr ss

Purpose Gener at e st able r andom discr et e t est models

Syntax sys = drss(n)

sys = drss(n,p)

sys = drss(n,p,m)

sys = drss(n,p,m,s1,...sn)

[num,den] = drmodel(n)

[A,B,C,D] = drmodel(n)

[A,B,C,D] = drmodel(n,p,m)

Description sys = drss(n) pr oduces a r andom n-t h or der st able model wit h one input and

one out put , and r et ur ns t he model in t he st at e-space object sys.

drss(n,p) pr oduces a r andom n-t h or der st able model wit h one input and p

out put s.

drss(n,m,p) gener at es a r andom n-t h or der st able model wit h m input s and p

out put s.

drss(n,p,m,s1,...sn) gener at es a s1–by–sn ar r ay of r andom n-t h or der

st able model wit h m input s and p out put s.

In all cases, t he discr et e-t ime st at e-space model or ar r ay r et ur ned by drss has

an unspecified sampling t ime. To gener at e t r ansfer funct ion or zer o-pole-gain

syst ems, conver t sys using tf or zpk.

drmodel(n) pr oduces a r andom n-t h or der st able model and r et ur ns eit her t he

t r ansfer funct ion numer at or num and denominat or den or t he st at e-space

mat r ices A, B, C, and D, based on t he number of out put ar gument s. The r esult ing

model always has one input and one out put .

[A,B,C,D] = drmodel(n,m,p) pr oduces a r andom n-t h or der st able

st at e-space model wit h m input s and p out put s.

drmodel, drss

11-63

Example Gener at e a r andom discr et e LTI syst em wit h t hr ee st at es, t wo input s, and t wo

out put s.

sys = drss(3,2,2)

a =

x1 x2 x3

x1 0.38630 –0.21458 –0.09914

x2 –0.23390 –0.15220 –0.06572

x3 –0.03412 0.11394 –0.22618

b =

u1 u2

x1 0.98833 0.51551

x2 0 0.33395

x3 0.42350 0.43291

c =

x1 x2 x3

y1 0.22595 0.76037 0

y2 0 0 0

d =

u1 u2

y1 0 0.68085

y2 0.78333 0.46110

Sampling time: unspecified

Discrete-time system.

See Also rmodel, rss Gener at e st able r andom cont inuous t est models

tf Conver t LTI syst ems t o t r ansfer funct ions for m

zpk Conver t LTI syst ems t o zer o-pole-gain for m

dsort

11-64

11dsor t

Purpose Sor t discr et e-t ime poles by magnit ude

Syntax s = dsort(p)

[s,ndx] = dsort(p)

Description dsort sor t s t he discr et e-t ime poles cont ained in t he vect or p in descending

or der by magnit ude. Unst able poles appear fir st .

When called wit h one left hand ar gument , dsort r et ur ns t he sor t ed poles in s.

[s,ndx] = dsort(p) also r et ur ns t he vect or ndx cont aining t he indices used in

t he sor t .

Example Sor t t he following discr et e poles.

p =

–0.2410 + 0.5573i

–0.2410 – 0.5573i

0.1503

–0.0972

–0.2590

s = dsort(p)

s =

–0.2410 + 0.5573i

–0.2410 – 0.5573i

–0.2590

0.1503

–0.0972

Limitations The poles in t he vect or p must appear in complex conjugat e pair s.

See Also eig Calculat e eigenvalues and eigenvect or s

esort, sort Sor t syst em poles

pole Comput e syst em poles

pzmap Pole-zer o map

zero Comput e (t r ansmission) zer os

dss

11-65

11dss

Purpose Specify descr ipt or st at e-space models

Syntax sys = dss(a,b,c,d,e)

sys = dss(a,b,c,d,e,Ts)

sys = dss(a,b,c,d,e,ltisys)

sys = dss(a,b,c,d,e,'Property1',Value1,...,'PropertyN',ValueN)

sys = dss(a,b,c,d,e,Ts,'Property1',Value1,...,'PropertyN',ValueN)

Description sys = dss(a,b,c,d,e) cr eat es t he cont inuous-t ime descr ipt or st at e-space

model

The mat r ix must be nonsingular . The out put sys is an SS model st or ing t he

model dat a (see “LTI Object s” on page 2-3). Not e t hat ss pr oduces t he same

t ype of object . If t he mat r ix , do can simply set d t o t he scalar 0 (zer o).

sys = dss(a,b,c,d,e,Ts) cr eat es t he discr et e-t ime descr ipt or model

wit h sample t ime Ts (in seconds).

sys = dss(a,b,c,d,e,ltisys) cr eat es a descr ipt or model wit h gener ic LTI

pr oper t ies inher it ed fr om t he LTI model ltisys (including t he sample t ime).

See “LTI Pr oper t ies” on page 2-26 for an over view of gener ic LTI pr oper t ies.

Any of t he pr evious synt axes can be followed by pr oper t y name/pr oper t y value

pair s

'Property',Value

Each pair specifies a par t icular LTI pr oper t y of t he model, for example, t he

input names or some not es on t he model hist or y. See set and t he example

below for det ails.

Ex

·

Ax Bu + =

y Cx Du + =

E

D 0 =

Ex n 1 + [ ] Ax n [ ] B u n [ ] + =

y n [ ] Cx n [ ] Du n [ ] + =

dss

11-66

Example The command

sys = dss(1,2,3,4,5,'td',0.1,'inputname','voltage',...

'notes','Just an example')

cr eat es t he model

wit h a 0.1 second input delay. The input is labeled 'voltage', and a not e is

at t ached t o t ell you t hat t his is just an example.

See Also dssdata Ret r ieve mat r ices of descr ipt or model

get Get pr oper t ies of LTI models

set Set pr oper t ies of LTI models

ss Specify (r egular ) st at e-space models

5x

·

x 2u + =

y 3x 4u + =

A B C D E , , , ,

dssdata

11-67

11dssdat a

Purpose Quick access t o descr ipt or st at e-space dat a

Syntax [a,b,c,d,e] = dssdata(sys)

[a,b,c,d,e,Ts] = dssdata(sys)

Description [a,b,c,d,e] = dssdata(sys) ext r act s t he descr ipt or mat r ix dat a

fr om t he st at e-space model sys. If sys is a t r ansfer funct ion or

zer o-pole-gain model, it is fir st conver t ed t o st at e space. Not e t hat dssdata is

t hen equivalent t o ssdata because it always r et ur ns .

[a,b,c,d,e,Ts] = dssdata(sys) also r et ur ns t he sample t ime Ts in addit ion

t o a, b, c, d, and e.

You can access t he r emaining LTI pr oper t ies of sys wit h get or by dir ect

r efer encing, for example,

sys.notes

See Also dss Specify descr ipt or st at e-space models

get Get pr oper t ies of LTI models

ssdata Quick access t o st at e-space dat a

tfdata Quick access t o t r ansfer funct ion dat a

zpkdata Quick access t o zer o-pole-gain dat a

A B C D E , , , , ( )

E I =

esort

11-68

11esor t

Purpose Sor t cont inuous-t ime poles by r eal par t

Syntax s = esort(p)

[s,ndx] = esort(p)

Description esort sor t s t he cont inuous-t ime poles cont ained in t he vect or p by r eal par t .

Unst able eigenvalues appear fir st and t he r emaining poles ar e or der ed by

decr easing r eal par t s.

When called wit h one left -hand ar gument , s = esort(p) r et ur ns t he sor t ed

eigenvalues in s.

[s,ndx] = esort(p) r et ur ns t he addit ional ar gument ndx, a vect or cont aining

t he indices used in t he sor t .

Example Sor t t he following cont inuous eigenvalues.

p

p =

–0.2410+ 0.5573i

–0.2410– 0.5573i

0.1503

–0.0972

–0.2590

esort(p)

ans =

0.1503

–0.0972

–0.2410+ 0.5573i

–0.2410– 0.5573i

–0.2590

Limitations The eigenvalues in t he vect or p must appear in complex conjugat e pair s.

esort

11-69

See Also dsort, sort Sor t syst em poles

eig Calculat e eigenvalues and eigenvect or s

pole Comput e syst em poles

pzmap Pole-zer o map

zero Comput e (t r ansmission) zer os

estim

11-70

11est im

Purpose For m st at e est imat or given est imat or gain

Syntax est = estim(sys,L)

est = estim(sys,L,sensors,known)

Description est = estim(sys,L) pr oduces a st at e/out put est imat or est given t he plant

st at e-space model sys and t he est imat or gain L. All input s of sys ar e

assumed st ochast ic (pr ocess and/or measur ement noise), and all out put s ar e

measur ed. The est imat or est is r et ur ned in st at e-space for m (SS object ). For a

cont inuous-t ime plant sys wit h equat ions

estim gener at es plant out put and st at e est imat es and as given by t he

following model.

The discr et e-t ime est imat or has similar equat ions.

est = estim(sys,L,sensors,known) handles mor e gener al plant s sys wit h

bot h known input s and st ochast ic input s , and bot h measur ed out put s

and nonmeasur ed out put s .

The index vect or s sensors and known specify which out put s ar e measur ed

and which input s ar e known. The r esult ing est imat or est uses bot h and

t o pr oduce t he out put and st at e est imat es.

w

y

x

·

Ax Bw + =

y Cx Dw + =

yˆ xˆ

x

ˆ

·

Axˆ L y Cxˆ – ( ) + =

yˆ

xˆ

C

I

xˆ =

u w y

z

x

·

Ax B

1

w B

2

u + + =

z

y

C

1

C

2

x

D

11

D

21

w

D

12

D

22

u + + =

y

u u

y

estim

11-71

estim handles bot h cont inuous- and discr et e-t ime cases. You can use t he

funct ions place (pole placement ) or kalman (Kalman filt er ing) t o design an

adequat e est imat or gain . Not e t hat t he est imat or poles (eigenvalues of

) should be fast er t han t he plant dynamics (eigenvalues of ) t o ensur e

accur at e est imat ion.

Example Consider a st at e-space model sys wit h seven out put s and four input s. Suppose

you designed a Kalman gain mat r ix using out put s 4, 7, and 1 of t he plant as

sensor measur ement s, and input s 1,4, and 3 of t he plant as known

(det er minist ic) input s. You can t hen for m t he Kalman est imat or by

sensors = [4,7,1];

known = [1,4,3];

est = estim(sys,L,sensors,known)

See t he funct ion kalman for dir ect Kalman est imat or design.

See Also kalman Design Kalman est imat or

place Pole placement

reg For m r egulat or given st at e-feedback and est imat or

gains

x

ˆ

·

Axˆ B

2

u L y C

2

xˆ D

22

u – – ( ) + + =

yˆ

xˆ

C

2

I

xˆ

D

22

0

u + =

est

u (known)

y (sensor s)

yˆ

xˆ

L

A L C – A

L

evalfr

11-72

11evalfr

Purpose Evaluat e fr equency r esponse at a single (complex) fr equency

Syntax frsp = evalfr(sys,f)

Description frsp = evalfr(sys,f) evaluat es t he t r ansfer funct ion of t he TF, SS, or ZPK

model sys at t he complex number f. For st at e-space models wit h dat a

, t he r esult is

evalfr is a simplified ver sion of freqresp meant for quick evaluat ion of t he

r esponse at a single point . Use freqresp t o comput e t he fr equency r esponse

over a set of fr equencies.

Example To evaluat e t he discr et e-t ime t r ansfer funct ion

at , t ype

H = tf([1 –1],[1 1 1],–1)

z = 1+j

evalfr(H,z)

ans =

2.3077e–01 + 1.5385e–01i

Limitations The r esponse is not finit e when f is a pole of sys.

See Also bode Bode fr equency r esponse

freqresp Fr equency r esponse over a set of fr equencies

sigma Singular value r esponse

A B C D , , , ( )

H f ( ) D C f I A – ( )

1 –

B + =

H z ( )

z 1 –

z

2

z 1 + +

------------------------ =

z 1 j + =

feedback

11-73

11feedback

Purpose Feedback connect ion of t wo LTI models

Syntax sys = feedback(sys1,sys2)

sys = feedback(sys1,sys2,sign)

sys = feedback(sys1,sys2,feedin,feedout,sign)

Description sys = feedback(sys1,sys2) r et ur ns an LTI model sys for t he negat ive

feedback int er connect ion.

The closed-loop model sys has as input vect or and as out put vect or . The

LTI models sys1 and sys2 must be bot h cont inuous or bot h discr et e wit h

ident ical sample t imes. Pr ecedence r ules ar e used t o det er mine t he r esult ing

model t ype (see “Pr ecedence Rules” on page 2-5).

To apply posit ive feedback, use t he synt ax

sys = feedback(sys1,sys2,+1)

By default , feedback(sys1,sys2) assumes negat ive feedback and is

equivalent t o feedback(sys1,sys2,–1).

Finally,

sys = feedback(sys1,sys2,feedin,feedout)

sys1

sys2

–

+

u y

u y

feedback

11-74

comput es a closed-loop model sys for t he mor e gener al feedback loop.

The vect or feedin cont ains indices int o t he input vect or of sys1 and specifies

which input s ar e involved in t he feedback loop. Similar ly, feedout specifies

which out put s of sys1 ar e used for feedback. The r esult ing LTI model sys has

t he same input s and out put s as sys1 (wit h t heir or der pr eser ved). As befor e,

negat ive feedback is applied by default and you must use

sys = feedback(sys1,sys2,feedin,feedout,+1)

t o apply posit ive feedback.

For mor e complicat ed feedback st r uct ur es, use append and connect.

Remark You can specify st at ic gains as r egular mat r ices, for example,

sys = feedback(sys1,2)

However , at least one of t he t wo ar gument s sys1 and sys2 should be an LTI

object . For feedback loops involving t wo st at ic gains k1 and k2, use t he synt ax

sys = feedback(tf(k1),k2)

sys1

sys2

–

+

u y

v z

sys

u

y

feedback

11-75

Examples Example 1

To connect t he plant

wit h t he cont r oller

using negat ive feedback, t ype

G = tf([2 5 1],[1 2 3],'inputname','torque',...

'outputname','velocity');

H = zpk(–2,–10,5)

Cloop = feedback(G,H)

and MATLAB r et ur ns

Zero/pole/gain from input "torque" to output "velocity":

0.18182 (s+10) (s+2.281) (s+0.2192)

-----------------------------------

(s+3.419) (s^2 + 1.763s + 1.064)

The r esult is a zer o-pole-gain model as expect ed fr om t he pr ecedence r ules.

Not e t hat Cloop inher it ed t he input and out put names fr om G.

–

+

G

H

velocity torque

G s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

------------------------------- =

H s ( )

5 s 2 + ( )

s 10 +

-------------------- =

feedback

11-76

Example 2

Consider a st at e-space plant P wit h five input s and four out put s and a

st at e-space feedback cont r oller K wit h t hr ee input s and t wo out put s. To connect

out put s 1, 3, and 4 of t he plant t o t he cont r oller input s, and t he cont r oller

out put s t o input s 4 and 2 of t he plant , use

feedin = [4 2];

feedout = [1 3 4];

Cloop = feedback(P,K,feedin,feedout)

Example 3

You can for m t he following negat ive-feedback loops

by

Cloop = feedback(G,1) % left diagram

Cloop = feedback(1,G) % right diagram

Limitations The feedback connect ion should be fr ee of algebr aic loop. If and ar e t he

feedt hr ough mat r ices of sys1 and sys2, t his condit ion is equivalent t o:

• nonsingular when using negat ive feedback

• nonsingular when using posit ive feedback.

See Also star St ar pr oduct of LTI syst ems (LFT connect ion)

series Ser ies connect ion

parallel Par allel connect ion

connect Der ive st at e-space model for block diagr am

int er connect ion

G

G

D

1

D

2

I D

1

D

2

+

I D

1

D

2

–

filt

11-77

11filt

Purpose Specify discr et e t r ansfer funct ions in DSP for mat

Syntax sys = filt(num,den)

sys = filt(num,den,Ts)

sys = filt(M)

sys = filt(num,den,'Property1',Value1,...,'PropertyN',ValueN)

sys = filt(num,den,Ts,'Property1',Value1,...,'PropertyN',ValueN)

Description In digit al signal pr ocessing (DSP), it is cust omar y t o wr it e t r ansfer funct ions

as r at ional expr essions in and t o or der t he numer at or and denominat or

t er ms in ascending power s of , for example,

The funct ion filt is pr ovided t o facilit at e t he specificat ion of t r ansfer funct ions

in DSP for mat .

sys = filt(num,den) cr eat es a discr et e-t ime t r ansfer funct ion sys wit h

numer at or (s) num and denominat or (s) den. The sample t ime is left unspecified

(sys.Ts = –1) and t he out put sys is a TF object .

sys = filt(num,den,Ts) fur t her specifies t he sample t ime Ts (in seconds).

sys = filt(M) specifies a st at ic filt er wit h gain mat r ix M.

Any of t he pr evious synt axes can be followed by pr oper t y name/pr oper t y value

pair s of t he for m

'Property',Value

Each pair specifies a par t icular LTI pr oper t y of t he model, for example, t he

input names or t he t r ansfer funct ion var iable. See “LTI Pr oper t ies” on page

2-26 and t he set ent r y for addit ional infor mat ion on LTI pr oper t ies and

admissible pr oper t y values.

Arguments For SISO t r ansfer funct ions, num and den ar e r ow vect or s cont aining t he

numer at or and denominat or coefficient s or der ed in ascending power s of .

For example, den = [1 0.4 2] r epr esent s t he polynomial .

z

1 –

z

1 –

H z

1 –

( )

2 z

1 –

+

1 0.4z

1 –

2z

2 –

+ +

-------------------------------------------- - =

z

1 –

1 0.4z

1 –

2z

2 –

+ +

filt

11-78

MIMO t r ansfer funct ions ar e r egar ded as ar r ays of SISO t r ansfer funct ions

(one per I/O channel), each of which is char act er ized by it s numer at or and

denominat or . The input ar gument s num and den ar e t hen cell ar r ays of r ow

vect or s such t hat :

•num and den have as many r ows as out put s and as many columns as input s.

• Their ent r ies num{i,j} and den{i,j} specify t he numer at or and

denominat or of t he t r ansfer funct ion fr om input j t o out put i.

If all SISO ent r ies have t he same denominat or , you can also set den t o t he r ow

vect or r epr esent at ion of t his common denominat or . See also “MIMO Tr ansfer

Funct ion Models” on page 2-10 for alt er nat ive ways t o specify MIMO t r ansfer

funct ions.

Remark filt behaves as tf wit h t he Variable pr oper t y set t o 'z^–1' or 'q'. See tf

ent r y below for det ails.

Example Typing t he commands

num = {1 , [1 0.3]}

den = {[1 1 2] ,[5 2]}

H = filt(num,den,'inputname',{'channel1' 'channel2'})

cr eat es t he t wo-input digit al filt er

wit h unspecified sample t ime and input names 'channel1' and 'channel2'.

See Also tf Cr eat e t r ansfer funct ions

zpk Cr eat e zer o-pole-gain models

ss Cr eat e st at e-space models

i j , ( )

H z

1 –

( )

1

1 z

1 –

2z

2 –

+ +

------------------------------------

1 0.3z

1 –

+

5 2z

1 –

+

--------------------------

=

frd

11-79

11fr d

Purpose Cr eat e a fr equency r esponse dat a (FRD) object or conver t anot her model t ype

t o an FRD model

Syntax sys = frd(response,frequency)

sys = frd(response,frequency,Ts)

sys = frd

sys = frd(response,frequency,ltisys)

sysfrd = frd(sys,frequency)

sysfrd = frd(sys,frequency,'Units',units)

Description sys = frd(response,frequency) cr eat es an FRD model sys fr om t he

fr equency r esponse dat a st or ed in t he mult idimensional ar r ay response. The

vect or frequency r epr esent s t he under lying fr equencies for t he fr equency

r esponse dat a. See Table 11-14, “Dat a For mat for t he Ar gument r esponse in

FRD Models,” on page 80.

sys = frd(response,frequency,Ts) cr eat es a discr et e-t ime FRD model sys

wit h scalar sample t ime Ts. Set Ts = –1 t o cr eat e a discr et e-t ime FRD model

wit hout specifying t he sample t ime.

sys = frd cr eat es an empt y FRD model.

The input ar gument list for any of t hese synt axes can be followed by pr oper t y

name/pr oper t y value pair s of t he for m

'PropertyName',PropertyValue

You can use t hese ext r a ar gument s t o set t he var ious pr oper t ies of FRD models

(see t he set command, or “LTI Pr oper t ies” on page 2-26 and “Model-Specific

Pr oper t ies” on page 2-28). These pr oper t ies include 'Units'. The default unit s

for FRD models ar e in 'rad/s'.

To for ce an FRD model sys t o inher it all of it s gener ic LTI pr oper t ies fr om any

exist ing LTI model refsys, use t he synt ax sys =

frd(response,frequency,ltisys).

sysfrd = frd(sys,frequency) conver t s a TF, SS, or ZPK model t o an FRD

model. The fr equency r esponse is comput ed at t he fr equencies pr ovided by t he

vect or frequency.

frd

11-80

sysfrd = frd(sys,frequency,'Units',units)conver t s an FRD model fr om a

TF, SS, or ZPK model while specifying t he unit s for frequency t o be units

('rad/s' or 'Hz').

Arguments When you specify a SISO or MIMO FRD model, or an ar r ay of FRD models, t he

input ar gument frequency is always a vect or of lengt h Nf, wher e Nf is t he

number of fr equency dat a point s in t he FRD. The specificat ion of t he input

ar gument response is summar ized in t he following t able.

Remarks See “Fr equency Response Dat a (FRD) Models” on page 2-17 for mor e

infor mat ion on single FRD models, and “Building LTI Ar r ays Using t f, zpk, ss,

and fr d” on page 4-17 for infor mat ion on ar r ays of FRD models.

Example Type t he commands

freq = logspace(1,2);

resp = .05*(freq).*exp(i*2*freq);

sys = frd(resp,freq)

t o cr eat e a SISO FRD model.

See Also chgunits Change unit s for an FRD model

frdata Quick access t o dat a for an FRD model

set Set t he pr oper t ies for an LTI model

ss Cr eat e st at e-space models

Table 11-14: Data Format for the Argument response in FRD Models

Model Form Response Data Format

SISO model Vect or of lengt h Nf for which response(i) is t he

fr equency r esponse at t he fr equency frequency(i)

MIMO model

wit h Ny out put s

and Nu input s

Ny-by-Nu-by-Nf mult idimensional ar r ay for which

response(i,j,k) specifies t he fr equency r esponse

fr om input j t o out put i at fr equency frequency(k)

S1-by-...-by-Sn

ar r ay of models

wit h Ny out put s

and Nu input s

Mult idimensional ar r ay of size [Ny Nu S1 ... Sn] for

which response(i,j,k,:) specifies t he ar r ay of

fr equency r esponse dat a fr om input j t o out put i at

fr equency frequency(k)

frd

11-81

tf Cr eat e t r ansfer funct ions

zpk Cr eat e zer o-pole-gain models

frdata

11-82

11fr dat a

Purpose Quick access t o dat a for a fr equency r esponse dat a object

Syntax [response,freq] = frdata(sys)

[response,freq,Ts] = frdata(sys)

[response,freq] = frdata(sys,'v')

Description [response,freq] = frdata(sys) r et ur ns t he r esponse dat a and fr equency

samples of t he FRD model sys. For an FRD model wit h Ny out put s and Nu

input s at Nf fr equencies:

•response is an Ny-by-Nu-by-Nf mult idimensional ar r ay wher e t he (i,j)

ent r y specifies t he r esponse fr om input j t o out put i.

•freq is a column vect or of lengt h Nf t hat cont ains t he fr equency samples of

t he FRD model.

See Table 11-14, “Dat a For mat for t he Ar gument r esponse in FRD Models,” on

page 80 for mor e infor mat ion on t he dat a for mat for FRD r esponse dat a.

For SISO FRD models, t he synt ax

[response,freq] = frdata(sys,'v')

for ces frdata t o r et ur n t he r esponse dat a and fr equencies dir ect ly as column

vect or s r at her t han as cell ar r ays (see example below).

[response,freq,Ts] = frdata(sys) also r et ur ns t he sample t ime Ts.

Ot her pr oper t ies of sys can be accessed wit h get or by dir ect st r uct ur e-like

r efer encing (e.g., sys.Units).

Arguments The input ar gument sys t o frdata must be an FRD model.

Example Typing t he commands

freq = logspace(1,2,2);

resp = .05*(freq).*exp(i*2*freq);

sys = frd(resp,freq);

[resp,freq] = frdata(sys,'v')

frdata

11-83

r et ur ns t he FRD model dat a

resp =

0.2040 + 0.4565i

2.4359 - 4.3665i

freq =

10

100

See Also frd Cr eat e or conver t t o FRD models

get Get t he pr oper t ies for an LTI model

set Set model pr oper t ies

freqresp

11-84

11fr eqr esp

Purpose Comput e fr equency r esponse over gr id of fr equencies

Syntax H = freqresp(sys,w)

Description H = freqresp(sys,w) comput es t he fr equency r esponse of t he LTI model sys

at t he r eal fr equency point s specified by t he vect or w. The fr equencies must be

in r adians/sec. For single LTI Models, freqresp(sys,w) r et ur ns a 3-D ar r ay H

wit h t he fr equency as t he last dimension (see “Ar gument s” below). For LTI

ar r ays of size [Ny Nu S1 ... Sn], freqresp(sys,w) r et ur ns a [Ny–by–Nu–by–

S1–by–...–by–Sn] lengt h (w) ar r ay.

In cont inuous t ime, t he r esponse at a fr equency ω is t he t r ansfer funct ion value

at . For st at e-space models, t his value is given by

In discr et e t ime, t he r eal fr equencies w(1),..., w(N) ar e mapped t o point s on t he

unit cir cle using t he t r ansfor mat ion

wher e is t he sample t ime. The t r ansfer funct ion is t hen evaluat ed at t he

r esult ing values. The default is used for models wit h unspecified

sample t ime.

Remark If sys is an FRD model, freqresp(sys,w), w can only include fr equencies in

sys.frequency.

Arguments The out put ar gument H is a 3-D ar r ay wit h dimensions

For SISO syst ems, H(1,1,k) gives t he scalar r esponse at t he fr equency w(k).

For MIMO syst ems, t he fr equency r esponse at w(k) is H(:,:,k), a mat r ix wit h

as many r ows as out put s and as many columns as input s.

Example Comput e t he fr equency r esponse of

s j ω =

H j ω ( ) D C j ωI A – ( )

1 –

B + =

z e

j ωT

s

=

T

s

z T

s

1 =

number of out put s ( ) number of input s ( ) × lengt h of w ( ) ×

freqresp

11-85

at t he fr equencies . Type

w = [1 10 100]

H = freqresp(P,w)

H(:,:,1) =

0 0.5000– 0.5000i

–0.2000+ 0.6000i 1.0000

H(:,:,2) =

0 0.0099– 0.0990i

0.9423+ 0.2885i 1.0000

H(:,:,3) =

0 0.0001– 0.0100i

0.9994+ 0.0300i 1.0000

The t hr ee displayed mat r ices ar e t he values of for

The t hir d index in t he 3-D ar r ay H is r elat ive t o t he fr equency vect or w, so you

can ext r act t he fr equency r esponse at r ad/sec by

H(:,:,w==10)

ans =

0 0.0099– 0.0990i

0.9423+ 0.2885i 1.0000

P s ( )

0

1

s 1 +

------------

s 1 –

s 2 +

------------ 1

=

ω 1 10 100 , , =

P j ω ( )

ω 1, = ω 10, = ω 100 =

ω 10 =

freqresp

11-86

Algorithm For t r ansfer funct ions or zer o-pole-gain models, freqresp evaluat es t he

numer at or (s) and denominat or (s) at t he specified fr equency point s. For

cont inuous-t ime st at e-space models , t he fr equency r esponse is

When numer ically safe, is diagonalized for fast evaluat ion of t his expr ession

at t he fr equencies . Ot her wise, is r educed t o upper Hessenber g

for m and t he linear equat ion is solved at each fr equency point ,

t aking advant age of t he Hessenber g st r uct ur e. The r educt ion t o Hessenber g

for m pr ovides a good compr omise bet ween efficiency and r eliabilit y. See [1] for

mor e det ails on t his t echnique.

Diagnostics If t he syst em has a pole on t he axis (or unit cir cle in t he discr et e-t ime case)

and w happens t o cont ain t his fr equency point , t he gain is infinit e, is

singular , and freqresp pr oduces t he following war ning message.

Singularity in freq. response due to jw-axis or unit circle pole.

See Also evalfr Response at single complex fr equency

bode Bode plot

nyquist Nyquist plot

nichols Nichols plot

sigma Singular value plot

ltiview LTI syst em viewer

References [1] Laub, A.J ., “Efficient Mult ivar iable Fr equency Response Comput at ions,”

IEEE Transactions on Automatic Control, AC-26 (1981), pp. 407–408.

A B C D , , , ( )

D C j ω A – ( )

1 –

B , + ω ω

1

... ω

N

, , =

A

ω

1

... ω

N

, , A

j ω A – ( )X B =

j ω

j ωI A –

gensig

11-87

11gensig

Purpose Gener at e t est input signals for lsim

Syntax [u,t] = gensig(type,tau)

[u,t] = gensig(type,tau,Tf,Ts)

Description [u,t] = gensig(type,tau) gener at es a scalar signal u of class type and wit h

per iod tau (in seconds). The following t ypes of signals ar e available.

gensig r et ur ns a vect or t of t ime samples and t he vect or u of signal values at

t hese samples. All gener at ed signals have unit amplit ude.

[u,t] = gensig(type,tau,Tf,Ts) also specifies t he t ime dur at ion Tf of t he

signal and t he spacing Ts bet ween t he t ime samples t.

You can feed t he out put s u and t dir ect ly t o lsim and simulat e t he r esponse of

a single-input linear syst em t o t he specified signal. Since t is uniquely

det er mined by Tf and Ts, you can also gener at e input s for mult i-input syst ems

by r epeat ed calls t o gensig.

Example Gener at e a squar e wave wit h per iod 5 seconds, dur at ion 30 seconds, and

sampling ever y 0.1 seconds.

[u,t] = gensig('square',5,30,0.1)

type = 'sin' Sine wave.

type = 'square' Squar e wave.

type = 'pulse' Per iodic pulse.

gensig

11-88

Plot t he r esult ing signal.

plot(t,u)

axis([0 30 –1 2])

See Also lsim Simulat e r esponse t o ar bit r ar y input s

0 5 10 15 20 25 30

−1

−0.5

0

0.5

1

1.5

2

get

11-89

11get

Purpose Access/quer y LTI pr oper t y values

Syntax Value = get(sys,'PropertyName')

get(sys)

Description Value = get(sys,'PropertyName') r et ur ns t he cur r ent value of t he pr oper t y

PropertyName of t he LTI model sys. The st r ing 'PropertyName' can be t he full

pr oper t y name (for example, 'UserData') or any unambiguous case-insensit ive

abbr eviat ion (for example, 'user'). You can specify any gener ic LTI pr oper t y,

or any pr oper t y specific t o t he model sys (see “LTI Pr oper t ies” on page 2-26 for

det ails on gener ic and model-specific LTI pr oper t ies).

Wit hout left -hand ar gument ,

get(sys)

displays all pr oper t ies of sys and t heir values.

Example Consider t he discr et e-t ime SISO t r ansfer funct ion defined by

h = tf(1,[1 2],0.1,'inputname','voltage','user','hello');

You can display all LTI pr oper t ies of h wit h

get(h)

num: {[0 1]}

den: {[1 2]}

Variable: 'z'

Ts: 0.1

InputDelay: 0

OutputDelay: 0

ioDelayMatrix: 0

InputName: {'voltage'}

OutputName: {''}

InputGroup: {0x2 cell}

OutputGroup: {0x2 cell}

Notes: {}

UserData: 'hello'

get

11-90

or quer y only about t he numer at or and sample t ime values by

get(h,'num')

ans =

[1x2 double]

and

get(h,'ts')

ans =

0.1000

Because t he numer at or dat a (num pr oper t y) is always st or ed as a cell ar r ay, t he

fir st command evaluat es t o a cell ar r ay cont aining t he r ow vect or [0 1].

Remark An alt er nat ive t o t he synt ax

Value = get(sys,'PropertyName')

is t he st r uct ur e-like r efer encing

Value = sys.PropertyName

For example,

sys.Ts

sys.a

sys.user

r et ur n t he values of t he sample t ime, mat r ix, and UserData pr oper t y of t he

(st at e-space) model sys.

See Also frdata Quick access t o fr equency r esponse dat a

set Set /modify LTI pr oper t ies

ssdata Quick access t o st at e-space dat a

tfdata Quick access t o t r ansfer funct ion dat a

zpkdata Quick access t o zer o-pole-gain dat a

A

gram

11-91

11gr am

Purpose Comput e cont r ollabilit y and obser vabilit y gr amians

Syntax Wc = gram(sys,'c')

Wo = gram(sys,'o')

Description gram calculat es cont r ollabilit y and obser vabilit y gr amians. You can use

gr amians t o st udy t he cont r ollabilit y and obser vabilit y pr oper t ies of

st at e-space models and for model r educt ion [1,2]. They have bet t er numer ical

pr oper t ies t han t he cont r ollabilit y and obser vabilit y mat r ices for med by ctrb

and obsv.

Given t he cont inuous-t ime st at e-space model

t he cont r ollabilit y gr amian is defined by

and t he obser vabilit y gr amian by

The discr et e-t ime count er par t s ar e

The cont r ollabilit y gr amian is posit ive definit e if and only if is

cont r ollable. Similar ly, t he obser vabilit y gr amian is posit ive definit e if and

only if is obser vable.

Use t he commands

Wc = gram(sys,'c') % controllability gramian

Wo = gram(sys,'o') % observability gramian

x

·

Ax Bu + =

y Cx Du + =

W

c

e

Aτ

BB

T

e

A

T

τ

τ d

0

∞

∫

=

W

o

e

A

T

τ

C

T

Ce

Aτ

τ d

0

∞

∫

=

W

c

A

k

BB

T

A

T

( )

k

,

k 0 =

∞

∑

= W

o

A

T

( )

k

C

T

CA

k

k 0 =

∞

∑

=

A B , ( )

C A , ( )

gram

11-92

t o comput e t he gr amians of a cont inuous or discr et e syst em. The LTI model sys

must be in st at e-space for m.

Algorithm The cont r ollabilit y gr amian is obt ained by solving t he cont inuous-t ime

Lyapunov equat ion

or it s discr et e-t ime count er par t

Similar ly, t he obser vabilit y gr amian solves t he Lyapunov equat ion

in cont inuous t ime, and t he Lyapunov equat ion

in discr et e t ime.

Limitations The mat r ix must be st able (all eigenvalues have negat ive r eal par t in

cont inuous t ime, and magnit ude st r ict ly less t han one in discr et e t ime).

See Also balreal Gr amian-based balancing of st at e-space r ealizat ions

ctrb Cont r ollabilit y mat r ix

lyap, dlyap Lyapunov equat ion solver s

obsv Obser vabilit y mat r ix

References [1] Kailat h, T., Linear S ystems, Pr ent ice-Hall, 1980.

W

c

AW

c

W

c

A

T

BB

T

+ + 0 =

AW

c

A

T

W

c

– BB

T

+ 0 =

W

o

A

T

W

o

W

o

A C

T

C + + 0 =

A

T

W

o

A W

o

– C

T

C + 0 =

A

hasdelay

11-93

11hasdelay

Purpose Test if an LTI model has t ime delays

Syntax hasdelay(sys)

Description hasdelay(sys) r et ur ns 1 (t r ue) if t he LTI model sys has input delays, out put

delays, or I/O delays, and 0 (false) ot her wise.

See Also delay2z Changes t r ansfer funct ions of discr et e-t ime LTI models

wit h delays t o r at ional funct ions or absor bs FRD delays

int o t he fr equency r esponse phase infor mat ion

totaldelay Combines delays for an LTI model

impulse

11-94

11impulse

Purpose Comput e t he impulse r esponse of LTI models

Syntax impulse(sys)

impulse(sys,t)

impulse(sys1,sys2,...,sysN)

impulse(sys1,sys2,...,sysN,t)

impulse(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

[y,t,x] = impulse(sys)

Description impulse calculat es t he unit impulse r esponse of a linear syst em. The impulse

r esponse is t he r esponse t o a Dir ac input for cont inuous-t ime syst ems and

t o a unit pulse at for discr et e-t ime syst ems. Zer o init ial st at e is assumed

in t he st at e-space case. When invoked wit hout left -hand ar gument s, t his

funct ion plot s t he impulse r esponse on t he scr een.

impulse(sys) plot s t he impulse r esponse of an ar bit r ar y LTI model sys. This

model can be cont inuous or discr et e, and SISO or MIMO. The impulse r esponse

of mult i-input syst ems is t he collect ion of impulse r esponses for each input

channel. The dur at ion of simulat ion is det er mined aut omat ically t o display t he

t r ansient behavior of t he r esponse.

impulse(sys,t) set s t he simulat ion hor izon explicit ly. You can specify eit her

a final t ime t = Tfinal (in seconds), or a vect or of evenly spaced t ime samples

of t he for m

t = 0:dt:Tfinal

For discr et e syst ems, t he spacing dt should mat ch t he sample per iod. For

cont inuous syst ems, dt becomes t he sample t ime of t he discr et ized simulat ion

model (see “Algor it hm”), so make sur e t o choose dt small enough t o capt ur e

t r ansient phenomena.

To plot t he impulse r esponses of sever al LTI models sys1,..., sysN on a single

figur e, use

impulse(sys1,sys2,...,sysN)

impulse(sys1,sys2,...,sysN,t)

δ t ( )

t 0 =

impulse

11-95

As wit h bode or plot, you can specify a par t icular color , linest yle, and/or

mar ker for each syst em, for example,

impulse(sys1,'y:',sys2,'g--')

See “Plot t ing and Compar ing Mult iple Syst ems” on page 5-13 and t he bode

ent r y in t his chapt er for mor e det ails.

When invoked wit h left hand ar gument s,

[y,t] = impulse(sys)

[y,t,x] = impulse(sys) % for state-space models only

y = impulse(sys,t)

r et ur n t he out put r esponse y, t he t ime vect or t used for simulat ion, and t he

st at e t r aject or ies x (for st at e-space models only). No plot is dr awn on t he

scr een. For single-input syst ems, y has as many r ows as t ime samples (lengt h

of t), and as many columns as out put s. In t he mult i-input case, t he impulse

r esponses of each input channel ar e st acked up along t he t hir d dimension of y.

The dimensions of y ar e t hen

and y(:,:,j) gives t he r esponse t o an impulse dist ur bance ent er ing t he jt h

input channel. Similar ly, t he dimensions of x ar e

Example To plot t he impulse r esponse of t he second-or der st at e-space model

lengt h of t ( ) number of out put s ( ) number of input s ( ) × ×

lengt h of t ( ) number of st at es ( ) number of input s ( ) × ×

x

·

1

x

·

2

0.5572 – 0.7814 –

0.7814 0

x

1

x

2

1 1 –

0 2

u

1

u

2

+ =

y

1.9691 6.4493

x

1

x

2

=

impulse

11-96

use t he following commands.

a = [–0.5572 –0.7814;0.7814 0];

b = [1 –1;0 2];

c = [1.9691 6.4493];

sys = ss(a,b,c,0);

impulse(sys)

The left plot shows t he impulse r esponse of t he fir st input channel, and t he

r ight plot shows t he impulse r esponse of t he second input channel.

You can st or e t he impulse r esponse dat a in MATLAB ar r ays by

[y,t] = impulse(sys)

Time (sec.)

A

m

p

l

i

t

u

d

e

Impulse Response

0 5 10 15 20

−6

−4

−2

0

2

4

6

8

10

12

From: U1

0 5 10 15 20

From: U2

impulse

11-97

Because t his syst em has t wo input s, y is a 3-D ar r ay wit h dimensions

size(y)

ans =

101 1 2

(t he fir st dimension is t he lengt h of t). The impulse r esponse of t he fir st input

channel is t hen accessed by

y(:,:,1)

Algorithm Cont inuous-t ime models ar e fir st conver t ed t o st at e space. The impulse

r esponse of a single-input st at e-space model

is equivalent t o t he following unfor ced r esponse wit h init ial st at e .

To simulat e t his r esponse, t he syst em is discr et ized using zer o-or der hold on

t he input s. The sampling per iod is chosen aut omat ically based on t he syst em

dynamics, except when a t ime vect or t = 0:dt:Tf is supplied (dt is t hen used

as sampling per iod).

Limitations The impulse r esponse of a cont inuous syst em wit h nonzer o mat r ix is infinit e

at . impulse ignor es t his discont inuit y and r et ur ns t he lower cont inuit y

value at .

See Also ltiview LTI syst em viewer

step St ep r esponse

initial Fr ee r esponse t o init ial condit ion

lsim Simulat e r esponse t o ar bit r ar y input s

x

·

Ax bu + =

y Cx =

b

x

·

Ax , = x 0 ( ) b =

y Cx =

D

t 0 =

Cb t 0 =

initial

11-98

11init ial

Purpose Comput e t he init ial condit ion r esponse of st at e-space models

Syntax initial(sys,x0)

initial(sys,x0,t)

initial(sys1,sys2,...,sysN,x0)

initial(sys1,sys2,...,sysN,x0,t)

initial(sys1,'PlotStyle1',...,sysN,'PlotStyleN',x0)

[y,t,x] = initial(sys,x0)

Description initial calculat es t he unfor ced r esponse of a st at e-space model wit h an init ial

condit ion on t he st at es.

This funct ion is applicable t o eit her cont inuous- or discr et e-t ime models. When

invoked wit hout left hand ar gument s, initial plot s t he init ial condit ion

r esponse on t he scr een.

initial(sys,x0) plot s t he r esponse of sys t o an init ial condit ion x0 on t he

st at es. sys can be any state-space model (cont inuous or discr et e, SISO or

MIMO, wit h or wit hout input s). The dur at ion of simulat ion is det er mined

aut omat ically t o r eflect adequat ely t he r esponse t r ansient s.

initial(sys,x0,t) explicit ly set s t he simulat ion hor izon. You can specify

eit her a final t ime t = Tfinal (in seconds), or a vect or of evenly spaced t ime

samples of t he for m

t = 0:dt:Tfinal

For discr et e syst ems, t he spacing dt should mat ch t he sample per iod. For

cont inuous syst ems, dt becomes t he sample t ime of t he discr et ized simulat ion

model (see impulse), so make sur e t o choose dt small enough t o capt ur e

t r ansient phenomena.

x

·

Ax , = x 0 ( ) x

0

=

y Cx =

initial

11-99

To plot t he init ial condit ion r esponses of sever al LTI models on a single figur e,

use

initial(sys1,sys2,...,sysN,x0)

initial(sys1,sys2,...,sysN,x0,t)

(see impulse for det ails).

When invoked wit h left hand ar gument s,

[y,t,x] = initial(sys,x0)

[y,t,x] = initial(sys,x0,t)

r et ur n t he out put r esponse y, t he t ime vect or t used for simulat ion, and t he

st at e t r aject or ies x. No plot is dr awn on t he scr een. The ar r ay y has as many

r ows as t ime samples (lengt h of t) and as many columns as out put s. Similar ly,

x has length(t) r ows and as many columns as st at es.

Example Plot t he r esponse of t he st at e-space model

x

·

1

x

·

2

0.5572 – 0.7814 –

0.7814 0

x

1

x

2

=

y

1.9691 6.4493

x

1

x

2

=

initial

11-100

t o t he init ial condit ion

a = [–0.5572 –0.7814;0.7814 0];

c = [1.9691 6.4493];

x0 = [1 ; 0]

sys = ss(a,[],c,[]);

initial(sys,x0)

See Also impulse Impulse r esponse

lsim Simulat e r esponse t o ar bit r ar y input s

ltiview LTI syst em viewer

step St ep r esponse

x 0 ( )

1

0

=

Time (sec.)

A

m

p

l

i

t

u

d

e

Initial Condition Results

0 2 4 6 8 10 12 14 16 18 20

−2

−1

0

1

2

3

4

5

inv

11-101

11inv

Purpose Inver t LTI syst ems

Syntax isys = inv(sys)

Description inv inver t s t he input /out put r elat ion

t o pr oduce t he LTI syst em wit h t he t r ansfer mat r ix .

This oper at ion is defined only for squar e syst ems (same number of input s and

out put s) wit h an inver t ible feedt hr ough mat r ix . inv handles bot h

cont inuous- and discr et e-t ime syst ems.

Example Consider

At t he MATLAB pr ompt , t ype

H = [1 tf(1,[1 1]);0 1]

Hi = inv(H)

t o inver t it . MATLAB r et ur ns

Transfer function from input 1 to output...

#1: 1

#2: 0

Transfer function from input 2 to output...

–1

#1: -----

s + 1

#2: 1

y G s ( )u =

H s ( ) G s ( )

1 –

=

u H s ( )y =

D

H s ( )

1

1

s 1 +

------------

0 1

=

inv

11-102

You can ver ify t hat

H * Hi

is t he ident it y t r ansfer funct ion (st at ic gain I).

Limitations Do not use inv t o model feedback connect ions such as

While it seems r easonable t o evaluat e t he cor r esponding closed-loop t r ansfer

funct ion as

inv(1+g*h) * g

t his t ypically leads t o nonminimal closed-loop models. For example,

g = zpk([],1,1)

h = tf([2 1],[1 0])

cloop = inv(1+g*h) * g

yields a t hir d-or der closed-loop model wit h an unst able pole-zer o cancellat ion

at s = 1.

cloop

Zero/pole/gain:

s (s–1)

-------------------

(s–1) (s^2 + s + 1)

–

+

G

H

I GH + ( )

1 –

G

inv

11-103

Use feedback or star t o avoid such pit falls.

cloop = feedback(g,h)

Zero/pole/gain:

s

-------------

(s^2 + s + 1)

isct, isdt

11-104

11isct , isdt

Purpose Det er mine whet her an LTI model is cont inuous or discr et e

Syntax boo = isct(sys)

boo = isdt(sys)

Description boo = isct(sys) r et ur ns 1 (t r ue) if t he LTI model sys is cont inuous and 0

(false) ot her wise. sys is cont inuous if it s sample t ime is zer o, t hat is, sys.Ts=0.

boo = isdt(sys) r et ur ns 1 (t r ue) if sys is discr et e and 0 (false) ot her wise.

Discr et e-t ime LTI models have a nonzer o sample t ime, except for empt y models

and st at ic gains, which ar e r egar ded as eit her cont inuous or discr et e as long as

t heir sample t ime is not explicit ly set t o a nonzer o value. Thus bot h

isct(tf(10))

isdt(tf(10))

ar e t r ue. However , if you explicit ly label a gain as discr et e, for example, by

t yping

g = tf(10,'ts',0.01)

isct(g) now r et ur ns false and only isdt(g) is t r ue.

See Also isa Det er mine LTI model t ype

isempty Tr ue for empt y LTI models

isproper Tr ue for pr oper LTI models

isempty

11-105

11isempt y

Purpose Test if an LTI model is empt y

Syntax boo = isempty(sys)

Description isempty(sys) r et ur ns 1 (t r ue) if t he LTI model sys has no input or no out put ,

and 0 (false) ot her wise.

Example Bot h commands

isempty(tf) % tf by itself returns an empty transfer function

isempty(ss(1,2,[],[]))

r et ur n 1 (t r ue) while

isempty(ss(1,2,3,4))

r et ur ns 0 (false).

See Also issiso Tr ue for SISO syst ems

size I/O dimensions and ar r ay dimensions of LTI models

isproper

11-106

11ispr oper

Purpose Test if an LTI model is pr oper

Syntax boo = isproper(sys)

Description isproper(sys) r et ur ns 1 (t r ue) if t he LTI model sys is pr oper and 0 (false)

ot her wise.

St at e-space models ar e always pr oper . SISO t r ansfer funct ions or

zer o-pole-gain models ar e pr oper if t he degr ee of t heir numer at or is less t han

or equal t o t he degr ee of t heir denominat or . MIMO t r ansfer funct ions ar e

pr oper if all t heir SISO ent r ies ar e pr oper .

Example The following commands

isproper(tf([1 0],1)) % transfer function s

isproper(tf([1 0],[1 1])) % transfer function s/(s+1)

r et ur n false and t r ue, r espect ively.

issiso

11-107

11issiso

Purpose Test if an LTI model is single-input /single-out put (SISO)

Syntax boo = issiso(sys)

Description issiso(sys) r et ur ns 1 (t r ue) if t he LTI model sys is SISO and 0 (false)

ot her wise.

See Also isempty Tr ue for empt y LTI models

size I/O dimensions and ar r ay dimensions of LTI models

kalman

11-108

11kalman

Purpose Design cont inuous- or discr et e-t ime Kalman est imat or

Syntax [kest,L,P] = kalman(sys,Qn,Rn,Nn)

[kest,L,P,M,Z] = kalman(sys,Qn,Rn,Nn) % discrete time only

[kest,L,P] = kalman(sys,Qn,Rn,Nn,sensors,known)

Description kalman designs a Kalman st at e est imat or given a st at e-space model of t he

plant and t he pr ocess and measur ement noise covar iance dat a. The Kalman

est imat or is t he opt imal solut ion t o t he following cont inuous or discr et e

est imat ion pr oblems.

Continuous-Time Estimation

Given t he cont inuous plant

wit h known input s and pr ocess and measur ement whit e noise

sat isfying

const r uct a st at e est imat e t hat minimizes t he st eady-st at e er r or

covar iance

The opt imal solut ion is t he Kalman filt er wit h equat ions

wher e t he filt er gain is det er mined by solving an algebr aic Riccat i equat ion.

This est imat or uses t he known input s and t he measur ement s t o gener at e

x

·

Ax Bu Gw + + = (st at e equat ion)

y

v

Cx Du Hw v + + + = (measur ement equat ion)

u w v ,

E w ( ) E v ( ) 0 , E ww

T

( ) Q , = E v v

T

( ) R = , E wv

T

( ) N = = =

xˆ t ( )

P E x xˆ – { } x xˆ – { }

T

( )

t ∞ →

lim =

x

ˆ

·

Axˆ Bu L y

v

Cxˆ – Du – ( ) + + =

yˆ

xˆ

C

I

xˆ

D

0

u + =

L

u y

v

kalman

11-109

t he out put and st at e est imat es and . Not e t hat est imat es t he t r ue plant

out put

Discrete-Time Estimation

Given t he discr et e plant

and t he noise covar iance dat a

t he Kalman est imat or has equat ions

yˆ xˆ yˆ

y Cx Du Hw + + =

w

u

v

+

y

v

xˆ

Plant

y

Kalman

filt er

u

yˆ

(Measur ement noise)

Kalman estimator

x n 1 + [ ] Ax n [ ] Bu n [ ] Gw n [ ] + + =

y

v

n [ ] Cx n [ ] Du n [ ] Hw n [ ] v n [ ] + + + =

E w n [ ]w n [ ]

T

( ) Q , = E v n [ ]v n [ ]

T

( ) R = , E w n [ ]v n [ ]

T

( ) N =

xˆ n 1 n + [ ] Axˆ n n 1 – [ ] Bu n [ ] L y

v

n [ ] Cxˆ n n 1 – [ ] Du n [ ] – – ( ) + + =

yˆ n n [ ]

xˆ n n [ ]

C I MC – ( )

I MC –

xˆ n n 1 – [ ]

I CM – ( )D CM

MD – M

u n [ ]

y

v

n [ ]

+ =

kalman

11-110

and gener at es opt imal “cur r ent ” out put and st at e est imat es and

using all available measur ement s including . The gain mat r ices and

ar e der ived by solving a discr et e Riccat i equat ion. The innovation gain

is used t o updat e t he pr edict ion using t he new measur ement .

Usage [kest,L,P] = kalman(sys,Qn,Rn,Nn) r et ur ns a st at e-space model kest of t he

Kalman est imat or given t he plant model sys and t he noise covar iance dat a Qn,

Rn, Nn (mat r ices above). sys must be a st at e-space model wit h mat r ices

The r esult ing est imat or kest has as input s and (or t heir

discr et e-t ime count er par t s) as out put s. You can omit t he last input ar gument

Nn when .

The funct ion kalman handles bot h cont inuous and discr et e pr oblems and

pr oduces a cont inuous est imat or when sys is cont inuous, and a discr et e

est imat or ot her wise. In cont inuous t ime, kalman also r et ur ns t he Kalman gain

L and t he st eady-st at e er r or covar iance mat r ix P. Not e t hat P is t he solut ion of

t he associat ed Riccat i equat ion. In discr et e t ime, t he synt ax

[kest,L,P,M,Z] = kalman(sys,Qn,Rn,Nn)

r et ur ns t he filt er gain and innovat ions gain , as well as t he st eady-st at e

er r or covar iances

Finally, use t he synt axes

[kest,L,P] = kalman(sys,Qn,Rn,Nn,sensors,known)

[kest,L,P,M,Z] = kalman(sys,Qn,Rn,Nn,sensors,known)

yˆ n n [ ] xˆ n n [ ]

y

v

n [ ] L

M M

xˆ n n 1 – [ ] y

v

n [ ]

xˆ n n [ ] xˆ n n 1 – [ ] M y

v

n [ ] Cxˆ n n 1 – [ ] – Du n [ ] –

¸ ,

¸ _

+ =

innovat ion

¹ ¹ ¹ ¹ ¹ ¹ ' ¹ ¹ ¹ ¹ ¹ ¹

Q R N , ,

A

B G

C

D H

, , ,

u y

v

; [ ] yˆ ; xˆ [ ]

N 0 =

L M

P E e n n 1 – [ ]e n n 1 – [ ]

T

( ) ,

n ∞ →

lim = e n n 1 – [ ] x n [ ] x n n 1 – [ ] – =

Z E e n n [ ]e n n [ ]

T

( ) ,

n ∞ →

lim = e n n [ ] x n [ ] x n n [ ] – =

kalman

11-111

for mor e gener al plant s sys wher e t he known input s and st ochast ic input s

ar e mixed t oget her , and not all out put s ar e measur ed. The index vect or s

sensors and known t hen specify which out put s of sys ar e measur ed and

which input s ar e known. All ot her input s ar e assumed st ochast ic.

Example See examples on “Cont r ol Design Tools” on page 1-20, “LQG Design for t he

x-Axis” on page 9-34, and “Kalman Filt er ing” on page 9-50.

Limitations The plant and noise dat a must sat isfy:

• det ect able

• and

• has no uncont r ollable mode on t he imaginar y

axis (or unit cir cle in discr et e t ime)

wit h t he not at ion

See Also care Solve cont inuous-t ime Riccat i equat ions

dare Solve discr et e-t ime Riccat i equat ions

estim For m est imat or given est imat or gain

kalmd Discr et e Kalman est imat or for cont inuous plant

lqgreg Assemble LQG r egulat or

lqr Design st at e-feedback LQ r egulat or

References [1] Fr anklin, G.F., J .D. Powell, and M.L. Wor kman, Digital Control of Dynamic

S ystems, Second Edit ion, Addison-Wesley, 1990.

u

w

y

u

C A , ( )

R 0 > Q N R

1 –

N

T

– 0 ≥

A N R

1 –

C – Q N R

1 –

N

T

– , ( )

Q GQG

T

=

R R HN N

T

H

T

HQH

T

+ + + =

N G QH

T

N + ( ) =

kalmd

11-112

11kalmd

Purpose Design discr et e Kalman est imat or for cont inuous plant

Syntax [kest,L,P,M,Z] = kalmd(sys,Qn,Rn,Ts)

Description kalmd designs a discr et e-t ime Kalman est imat or t hat has r esponse

char act er ist ics similar t o a cont inuous-t ime est imat or designed wit h kalman.

This command is useful t o der ive a discr et e est imat or for digit al

implement at ion aft er a sat isfact or y cont inuous est imat or has been designed.

[kest,L,P,M,Z] = kalmd(sys,Qn,Rn,Ts) pr oduces a discr et e Kalman

est imat or kest wit h sample t ime Ts for t he cont inuous-t ime plant

wit h pr ocess noise and measur ement noise sat isfying

The est imat or kest is der ived as follows. The cont inuous plant sys is fir st

discr et ized using zer o-or der hold wit h sample t ime Ts (see c2d ent r y), and t he

cont inuous noise covar iance mat r ices and ar e r eplaced by t heir discr et e

equivalent s

The int egr al is comput ed using t he mat r ix exponent ial for mulas in [2]. A

discr et e-t ime est imat or is t hen designed for t he discr et ized plant and noise. See

kalman for det ails on discr et e-t ime Kalman est imat ion.

kalmd also r et ur ns t he est imat or gains L and M, and t he discr et e er r or

covar iance mat r ices P and Z (see kalman for det ails).

Limitations The discr et ized pr oblem dat a should sat isfy t he r equir ement s for kalman.

See Also kalman Design Kalman est imat or

x

·

Ax Bu Gw + + = (st at e equat ion)

y

v

Cx Du v + + = (measur ement equat ion)

w v

E w ( ) E v ( ) 0 , E ww

T

( ) Q

n

, = E v v

T

( ) R

n

= , E wv

T

( ) 0 = = =

Q

n

R

n

Q

d

e

Aτ

GQG

T

e

A

T

τ

τ d

0

T

s

∫

=

R

d

R T

s

⁄ =

kalmd

11-113

lqgreg Assemble LQG r egulat or

lqrd Discr et e LQ-opt imal gain for cont inuous plant

References [1] Fr anklin, G.F., J .D. Powell, and M.L. Wor kman, Digital Control of Dynamic

S ystems, Second Edit ion, Addison-Wesley, 1990.

[2] Van Loan, C.F., “Comput ing Int egr als Involving t he Mat r ix Exponent ial,”

IEEE Trans. Automatic Control, AC-15, Oct ober 1970.

kalmd

11-114

lft

11-115

11lft

Purpose Redheffer st ar pr oduct (linear fr act ional t r ansfor mat ion) of t wo LTI models

Syntax sys = lft(sys1,sys2)

sys = lft(sys1,sys2,nu,ny)

Description lft for ms t he st ar pr oduct or linear fr act ional t r ansfor mat ion (LFT) of t wo LTI

models or LTI ar r ays. Such int er connect ions ar e widely used in r obust cont r ol

t echniques.

sys = lft(sys1,sys2,nu,ny) for ms t he st ar pr oduct sys of t he t wo LTI

models (or LTI ar r ays) sys1 and sys2. The st ar pr oduct amount s t o t he

following feedback connect ion for single LTI models (or for each model in an

LTI ar r ay).

This feedback loop connect s t he fir st nu out put s of sys2 t o t he last nu input s of

sys1 (signals ), and t he last ny out put s of sys1 t o t he fir st ny input s of sys2

(signals ). The r esult ing syst em sys maps t he input vect or t o t he

out put vect or .

sys1

sys2

sys

z

1

z

2

w

2

w

1

u

u

y

y

u

y w

1

; w

2

[ ]

z

1

; z

2

[ ]

lft

11-116

The abbr eviat ed synt ax

sys = lft(sys1,sys2)

pr oduces:

• The lower LFT of sys1 and sys2 if sys2 has fewer input s and out put s t han

sys1. This amount s t o delet ing and in t he above diagr am.

• The upper LFT of sys1 and sys2 if sys1 has fewer input s and out put s t han

sys2. This amount s t o delet ing and in t he above diagr am.

Algorithm The closed-loop model is der ived by element ar y st at e-space manipulat ions.

Limitations Ther e should be no algebr aic loop in t he feedback connect ion.

See Also connect Der ive st at e-space model for block diagr am

int er connect ion

feedback Feedback connect ion

w

2

z

2

w

1

z

1

sys1

sys2

u

y

u

y

z

1

z

2

w

2

w

1

sys1

sys2

Lower LFT connection Upper LFT connection

lqgreg

11-117

11lqgr eg

Purpose For m LQG r egulat or given st at e-feedback gain and Kalman est imat or

Syntax rlqg = lqgreg(kest,k)

rlqg = lqgreg(kest,k,'current') % discrete-time only

rlqg = lqgreg(kest,k,controls)

Description lqgreg for ms t he LQG r egulat or by connect ing t he Kalman est imat or designed

wit h kalman and t he opt imal st at e-feedback gain designed wit h lqr, dlqr, or

lqry. The LQG r egulat or minimizes some quadr at ic cost funct ion t hat t r ades

off r egulat ion per for mance and cont r ol effor t . This r egulat or is dynamic and

r elies on noisy out put measur ement s t o gener at e t he r egulat ing commands (see

“LQG Regulat or ” on page 7-10 for det ails).

In cont inuous t ime, t he LQG r egulat or gener at es t he commands

wher e is t he Kalman st at e est imat e. The r egulat or st at e-space equat ions ar e

wher e is t he vect or of plant out put measur ement s (see kalman for

backgr ound and not at ion). The diagr am below shows t his dynamic r egulat or in

r elat ion t o t he plant .

u Kxˆ – =

xˆ

x

ˆ

·

A L C – B L D – ( )K –

xˆ L y

v

+ =

u Kxˆ – =

y

v

lqgreg

11-118

In discr et e t ime, you can for m t he LQG r egulat or using eit her t he pr edict ion

of based on measur ement s up t o , or t he cur r ent st at e

est imat e based on all available measur ement s including . While

t he r egulat or

is always well-defined, t he current regulator

is causal only when is inver t ible (see kalman for t he not at ion). In

addit ion, pr act ical implement at ions of t he cur r ent r egulat or should allow for

t he pr ocessing t ime r equir ed t o comput e once t he measur ement s

become available (t his amount s t o a t ime delay in t he feedback loop).

Usage rlqg = lqgreg(kest,k) r et ur ns t he LQG r egulat or rlqg (a st at e-space model)

given t he Kalman est imat or kest and t he st at e-feedback gain mat r ix k. The

same funct ion handles bot h cont inuous- and discr et e-t ime cases. Use

consist ent t ools t o design kest and k:

u

y

+

+

xˆ

K –

LQG regulator

u

Plant

Measur ement

noise

Kalman

filt er

Pr ocess

noise

y

v

xˆ n n 1 – [ ] x n [ ] y

v

n 1 – [ ]

xˆ n n [ ] y

v

n [ ]

u n [ ] Kxˆ n n 1 – [ ] – =

u n [ ] Kxˆ n n [ ] – =

I KMD –

u n [ ] y

v

n [ ]

lqgreg

11-119

•Cont inuous r egulat or for cont inuous plant : use lqr or lqry and kalman.

•Discr et e r egulat or for discr et e plant : use dlqr or lqry and kalman.

•Discr et e r egulat or for cont inuous plant : use lqrd and kalmd.

In discr et e t ime, lqgreg pr oduces t he r egulat or

by default (see “Descr ipt ion”). To for m t he “cur r ent ” LQG r egulat or inst ead, use

t he synt ax

rlqg = lqgreg(kest,k,'current')

This synt ax is meaningful only for discr et e-t ime pr oblems.

rlqg = lqgreg(kest,k,controls) handles est imat or s t hat have access t o

addit ional known plant input s . The index vect or controls t hen specifies

which est imat or input s ar e t he cont r ols , and t he r esult ing LQG r egulat or

rlqg has and as input s (see figur e below).

Note: Always use positive feedback t o connect t he LQG r egulat or t o t he

plant .

u n [ ] Kxˆ n n 1 – [ ] – =

u n [ ] Kxˆ n n [ ] – =

u

d

u

u

d

y

v

lqgreg

11-120

Example See t he examples “Cont r ol Design Tools” on page 1-20 and “LQG Regulat ion”

on page 9-31.

See Also kalman Kalman est imat or design

kalmd Discr et e Kalman est imat or for cont inuous plant

lqr, dlqr St at e-feedback LQ r egulat or

lqrd Discr et e LQ r egulat or for cont inuous plant

lqry LQ r egulat or wit h out put weight ing

reg For m r egulat or given st at e-feedback and est imat or

gains

xˆ

u

y

v

Kalman

est imat or

u

d K – u

LQG regulator

lqr

11-121

11lqr

Purpose Design linear -quadr at ic (LQ) st at e-feedback r egulat or for cont inuous plant

Syntax [K,S,e] = lqr(A,B,Q,R)

[K,S,e] = lqr(A,B,Q,R,N)

Description [K,S,e] = lqr(A,B,Q,R,N) calculat es t he opt imal gain mat r ix K such t hat t he

st at e-feedback law

minimizes t he quadr at ic cost funct ion

for t he cont inuous-t ime st at e-space model

The default value N=0 is assumed when N is omit t ed.

In addit ion t o t he st at e-feedback gain K, lqr r et ur ns t he solut ion S of t he

associat ed Riccat i equat ion

and t he closed-loop eigenvalues e = eig(A–B*K). Not e t hat is der ived fr om

by

Limitations The pr oblem dat a must sat isfy:

•The pair is st abilizable.

• and .

• has no unobser vable mode on t he imaginar y

axis.

u Kx – =

J u ( ) x

T

Qx u

T

R u 2x

T

N u + + ( ) t d

0

∞

∫

=

x

·

Ax Bu + =

A

T

S S A S B N + ( )R

1 –

B

T

S N

T

+ ( ) – Q + + 0 =

K

S

K R

1 –

B

T

S N

T

+ ( ) =

A B , ( )

R 0 > Q N R

1 –

N

T

– 0 ≥

Q N R

1 –

N

T

– A BR

1 –

N

T

– , ( )

lqr

11-122

See Also care Solve cont inuous Riccat i equat ions

dlqr St at e-feedback LQ r egulat or for discr et e plant

lqgreg For m LQG r egulat or

lqrd Discr et e LQ r egulat or for cont inuous plant

lqry St at e-feedback LQ r egulat or wit h out put weight ing

lqrd

11-123

11lqr d

Purpose Design discr et e LQ r egulat or for cont inuous plant

Syntax [Kd,S,e] = lqrd(A,B,Q,R,Ts)

[Kd,S,e] = lqrd(A,B,Q,R,N,Ts)

Description lqrd designs a discr et e full-st at e-feedback r egulat or t hat has r esponse

char act er ist ics similar t o a cont inuous st at e-feedback r egulat or designed using

lqr. This command is useful t o design a gain mat r ix for digit al implement at ion

aft er a sat isfact or y cont inuous st at e-feedback gain has been designed.

[Kd,S,e] = lqrd(A,B,Q,R,Ts) calculat es t he discr et e st at e-feedback law

t hat minimizes a discr et e cost funct ion equivalent t o t he cont inuous cost

funct ion

The mat r ices A and B specify t he cont inuous plant dynamics

and Ts specifies t he sample t ime of t he discr et e r egulat or . Also r et ur ned ar e t he

solut ion S of t he discr et e Riccat i equat ion for t he discr et ized pr oblem and t he

discr et e closed-loop eigenvalues e = eig(Ad–Bd*Kd).

[Kd,S,e] = lqrd(A,B,Q,R,N,Ts) solves t he mor e gener al pr oblem wit h a

cr oss-coupling t er m in t he cost funct ion.

Algorithm The equivalent discr et e gain mat r ix Kd is det er mined by discr et izing t he

cont inuous plant and weight ing mat r ices using t he sample t ime Ts and t he

zer o-or der hold appr oximat ion.

u n [ ] K

d

x n [ ] – =

J x

T

Qx u

T

R u + ( ) t d

0

∞

∫

=

x

·

Ax Bu + =

J x

T

Qx u

T

R u 2x

T

N u + + ( ) t d

0

∞

∫

=

lqrd

11-124

Wit h t he not at ion

t he discr et ized plant has equat ions

and t he weight ing mat r ices for t he equivalent discr et e cost funct ion ar e

The int egr als ar e comput ed using mat r ix exponent ial for mulas due t o Van

Loan (see [2]). The plant is discr et ized using c2d and t he gain mat r ix is

comput ed fr om t he discr et ized dat a using dlqr.

Limitations The discr et ized pr oblem dat a should meet t he r equir ement s for dlqr.

See Also c2d Discr et izat ion of LTI model

dlqr St at e-feedback LQ r egulat or for discr et e plant

kalmd Discr et e Kalman est imat or for cont inuous plant

lqr St at e-feedback LQ r egulat or for cont inuous plant

References [1] Fr anklin, G.F., J .D. Powell, and M.L. Wor kman, Digital Control of Dynamic

S ystems, Second Edit ion, Addison-Wesley, 1980, pp. 439–440

[2] Van Loan, C.F., “Comput ing Int egr als Involving t he Mat r ix Exponent ial,”

IEEE Trans. Automatic Control, AC-15, Oct ober 1970.

Φ τ ( ) e

Aτ

, = A

d

Φ T

s

( ) =

Γ τ ( ) e

Aη

B η , d

0

τ

∫

= B

d

Γ T

s

( ) =

x n 1 + [ ] A

d

x n [ ] B

d

u n [ ] + =

Q

d

N

d

N

d

T

R

d

Φ

T

τ ( ) 0

Γ

T

τ ( ) I

Q N

N

T

R

Φ τ ( ) Γ τ ( )

0 I

τ d

0

T

s

∫

=

lqry

11-125

11lqr y

Purpose Linear -quadr at ic (LQ) st at e-feedback r egulat or wit h out put weight ing

Syntax [K,S,e] = lqry(sys,Q,R)

[K,S,e] = lqry(sys,Q,R,N)

Description Given t he plant

or it s discr et e-t ime count er par t , lqry designs a st at e-feedback cont r ol

t hat minimizes t he quadr at ic cost funct ion wit h out put weight ing

(or it s discr et e-t ime count er par t ). The funct ion lqry is equivalent t o lqr or

dlqr wit h weight ing mat r ices:

[K,S,e] = lqry(sys,Q,R,N) r et ur ns t he opt imal gain mat r ix K, t he Riccat i

solut ion S, and t he closed-loop eigenvalues e = eig(A-B*K). The st at e-space

model sys specifies t he cont inuous- or discr et e-t ime plant dat a .

The default value N=0 is assumed when N is omit t ed.

Example See “LQG Design for t he x-Axis” on page 9-34 for an example.

Limitations The dat a must sat isfy t he r equir ement s for lqr or dlqr.

See Also lqr St at e-feedback LQ r egulat or for cont inuous plant

dlqr St at e-feedback LQ r egulat or for discr et e plant

kalman Kalman est imat or design

lqgreg For m LQG r egulat or

x

·

Ax Bu + =

y Cx Du + =

u Kx – =

J u ( ) y

T

Qy u

T

R u 2y

T

N u + + ( ) t d

0

∞

∫

=

Q N

N

T

R

C

T

0

D

T

I

Q N

N

T

R

C D

0 I

=

A B C D , , , ( )

A B Q R N , , , ,

lsim

11-126

11lsim

Purpose Simulat e LTI model r esponse t o ar bit r ar y input s

Syntax lsim(sys,u,t)

lsim(sys,u,t,x0)

lsim(sys1,sys2,...,sysN,u,t)

lsim(sys1,sys2,...,sysN,u,t,x0)

lsim(sys1,'PlotStyle1',...,sysN,'PlotStyleN',u,t)

[y,t,x] = lsim(sys,u,t,x0)

Description lsim simulat es t he (t ime) r esponse of cont inuous or discr et e linear syst ems t o

ar bit r ar y input s. When invoked wit hout left -hand ar gument s, lsim plot s t he

r esponse on t he scr een.

lsim(sys,u,t) pr oduces a plot of t he zer o-init ial condit ion t ime r esponse of t he

LTI model sys t o t he input t ime hist or y t,u. The vect or t specifies t he t ime

samples for t he simulat ion and consist s of r egular ly spaced t ime samples

t = T0:dt:Tfinal

The mat r ix u must have as many r ows as t ime samples (length(t)) and as

many columns as syst em input s. Each r ow u(i,:) specifies t he input value(s)

at t he t ime sample t(i).

The LTI model sys can be cont inuous or discr et e, SISO or MIMO. In discr et e

t ime, u must be sampled at t he same r at e as t he syst em (t is t hen r edundant

and can be omit t ed or set t o t he empt y mat r ix). In cont inuous t ime, t he t ime

sampling dt=t(2)–t(1) is used t o discr et ize t he cont inuous model. Aut omat ic

r esampling is per for med if dt is t oo lar ge (under sampling) and may give r ise t o

hidden oscillat ions (see “Algor it hm”).

lsim(sys,u,t,x0) specifies a nonzer o init ial condit ion x0 for t he syst em

st at es. This init ial condit ion is applied at t(1). This synt ax applies only t o

st at e-space models.

Finally,

lsim(sys1,sys2,...,sysN,u,t)

lsim

11-127

simulat es t he r esponses of sever al LTI models t o t he same input hist or y t,u and

plot s t hese r esponses on a single figur e. As wit h bode or plot, you can specify

a par t icular color , linest yle, and/or mar ker for each syst em, for example,

lsim(sys1,'y:',sys2,'g--',u,t,x0)

The mult isyst em behavior is similar t o t hat of bode or step.

When invoked wit h left -hand ar gument s,

[y,t] = lsim(sys,u,t)

[y,t,x] = lsim(sys,u,t) % for state-space models only

[y,t,x] = lsim(sys,u,t,x0) % with initial state

r et ur n t he out put r esponse y, t he t ime vect or t used for simulat ion, and t he

st at e t r aject or ies x (for st at e-space models only). No plot is dr awn on t he

scr een. The mat r ix y has as many r ows as t ime samples (length(t)) and as

many columns as syst em out put s. The same holds for x wit h “out put s” r eplaced

by st at es. Not e t hat t he out put t may differ fr om t he specified t ime vect or when

t he input dat a is under sampled (see “Algor it hm”).

Example Simulat e and plot t he r esponse of t he syst em

t o a squar e wave wit h per iod of four seconds. Fir st gener at e t he squar e wave

wit h gensig. Sample ever y 0.1 second dur ing 10 seconds:

[u,t] = gensig('square',4,10,0.1);

H s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

-------------------------------

s 1 –

s

2

s 5 + +

------------------------

=

lsim

11-128

Then simulat e wit h lsim.

H = [tf([2 5 1],[1 2 3]) ; tf([1 –1],[1 1 5])];

lsim(H,u,t)

lsim

11-129

Not e t hat if you begin t he simulat ion wit h a nonzer o value for t (1), t hen t he

zer o-init ial condit ion r esponse is shift ed in t ime, as shown below.

lsim(H,u,t+4)

Algorithm Discr et e-t ime syst ems ar e simulat ed wit h ltitr (st at e space) or filter

(t r ansfer funct ion and zer o-pole-gain).

Cont inuous-t ime syst ems ar e discr et ized wit h c2d using eit her t he 'zoh' or

'foh' met hod ('foh' is used for smoot h input signals and 'zoh' for

discont inuous signals such as pulses or squar e waves). By default , t he

sampling per iod is set t o t he spacing dt bet ween t he user -supplied t ime

samples t. However , if dt is not small enough t o capt ur e int er sample behavior ,

lsim select s a smaller sampling per iod and r esamples t he input dat a using

linear int er polat ion for smoot h signals and zer o-or der hold for squar e signals.

The t ime vect or r et ur ned by lsim is t hen differ ent fr om t he specified t vect or .

lsim

11-130

To illust r at e why r esampling is somet imes necessar y, consider t he

second-or der model

To simulat e it s r esponse t o a squar e wave wit h per iod 1 second, you can pr oceed

as follows:

w2 = 62.83^2

h = tf(w2,[1 2 w2]);

t = 0:0.1:5; % vector of time samples

u = (rem(t,1)>=0.5); % square wave values

lsim(h,u,t)

H s ( )

ω

2

s

2

2s ω

2

+ +

------------------------------- , = ω 62.83 =

lsim

11-131

The r esponse exhibit s st r ong oscillat ions. Less obvious fr om t his plot is t he fact

t hat lsim has r esampled t he input t o r eveal t he oscillat or y behavior . To see

t his, discr et ize using t he sampling per iod 0.1 second (spacing in your t

vect or ) and simulat e t he r esponse of t he discr et ized model:

hd = c2d(h,0.1);

lsim(hd,u,t)

H s ( )

lsim

11-132

The t wo r esponses look quit e differ ent . To clar ify t his discr epancy,

super impose t he t wo plot s by

lsim(h,'b--',hd,'r-',u,t)

The cause is now obvious: hd is under sampled and it s r esponse (solid line)

masks t he int er sample oscillat ions of t he cont inuous model .

By compar ing t he suggest ed sampling dt=t(2)–t(1) against t he syst em

dynamics, lsim det ect s such under sampling and r esamples t he input t o

pr oduce accur at e cont inuous-t ime simulat ions.

See Also gensig Gener at e t est input signals for lsim

impulse Impulse r esponse

initial Fr ee r esponse t o init ial condit ion

ltiview LTI syst em viewer

step St ep r esponse

H s ( )

ltiview

11-133

11lt iview

Purpose Init ialize an LTI Viewer for LTI syst em r esponse analysis

Syntax ltiview

ltiview(plottype,sys)

ltiview(plottype,sys,extras)

ltiview(plottype,sys1,sys2,...sysN)

ltiview(plottype,sys1,sys2,...sysN,extras)

ltiview(plottype,sys1,PlotStyle1,sys2,PlotStyle2,...)

Description ltiview when invoked wit hout input ar gument s, init ializes a new LTI Viewer

for LTI syst em r esponse analysis.

Only fr equency-domain analysis funct ions can be applied t o FRDs.

ltiview(plottype,sys) init ializes an LTI Viewer cont aining t he LTI

r esponse t ype indicat ed by plottype for t he LTI model sys. The st r ing

plottype can be any one of t he following:

'step'

'impulse'

'initial'

'lsim'

'pzmap'

'bode'

'nyquist'

'nichols'

'sigma'

or , plottype can be a cell vect or cont aining up t o six of t hese plot t ypes.

For example,

ltiview({'step';'nyquist'},sys)

displays t he plot s of bot h of t hese r esponse t ypes for a given syst em sys.

ltiview(plottype,sys,extras) allows t he addit ional input ar gument s

suppor t ed by t he var ious LTI model r esponse funct ions t o be passed t o t he

lt iview command.

ltiview

11-134

extras is one or mor e input ar gument s as specified by t he funct ion named in

plottype. These ar gument s may be r equir ed or opt ional, depending on t he t ype

of LTI r esponse. For example, if plottype is 'step' t hen extras may be t he

desir ed final t ime, Tfinal, as shown below.

ltiview('step',sys,Tfinal)

However , if plottype is 'initial', t he extras ar gument s must cont ain t he

init ial condit ions x0 and may cont ain ot her ar gument s, such as Tfinal.

ltiview('initial',sys,x0,Tfinal)

See t he individual r efer ences pages of each possible plottype commands for a

list of appr opr iat e ar gument s for extras.

Finally,

ltiview(plottype,sys1,sys2,...sysN)

ltiview(plottype,sys1,sys2,...sysN,extras)

ltiview(plottype,sys1,PlotStyle1,sys2,PlotStyle2,...)

init ializes an LTI Viewer cont aining t he r esponses of mult iple LTI models,

using t he plot st yles in PlotStyle, when applicable. See t he individual

r efer ence pages of t he LTI r esponse funct ions for mor e infor mat ion on

specifying plot st yles.

Example See Chapt er 6, “The LTI Viewer .”

See Also bode Bode r esponse

impulse Impulse r esponse

initial Response t o init ial condit ion

lsim Simulat e LTI model r esponse t o ar bit r ar y input s

nichols Nichols r esponse

nyquist Nyquist r esponse

pzmap Pole/zer o map

sigma Singular value r esponse

step St ep r esponse

lyap

11-135

11lyap

Purpose Solve cont inuous-t ime Lyapunov equat ions

Syntax X = lyap(A,Q)

X = lyap(A,B,C)

Description lyap solves t he special and gener al for ms of t he Lyapunov mat r ix equat ion.

Lyapunov equat ions ar ise in sever al ar eas of cont r ol, including st abilit y t heor y

and t he st udy of t he RMS behavior of syst ems.

X = lyap(A,Q) solves t he Lyapunov equat ion

wher e and ar e squar e mat r ices of ident ical sizes. The solut ion X is a

symmet r ic mat r ix if is.

X = lyap(A,B,C) solves t he gener alized Lyapunov equat ion (also called

Sylvest er equat ion).

The mat r ices must have compat ible dimensions but need not be

squar e.

Algorithm lyap t r ansfor ms t he and mat r ices t o complex Schur for m, comput es t he

solut ion of t he r esult ing t r iangular syst em, and t r ansfor ms t his solut ion back

[1].

Limitations The cont inuous Lyapunov equat ion has a (unique) solut ion if t he eigenvalues

of and of sat isfy

If t his condit ion is violat ed, lyap pr oduces t he er r or message

Solution does not exist or is not unique.

See Also covar Covar iance of syst em r esponse t o whit e noise

dlyap Solve discr et e Lyapunov equat ions

AX XA

T

Q + + 0 =

A Q

Q

AX XB C + + 0 =

A B C , ,

A B

α

1

α

2

... α

n

, , , A β

1

β

2

... β

n

, , , B

α

i

β

j

0 ≠ + for all pair s i j , ( )

lyap

11-136

References [1] Bar t els, R.H. and G.W. St ewar t , “Solut ion of t he Mat r ix Equat ion AX + XB

= C,” Comm. of the ACM, Vol. 15, No. 9, 1972.

[2] Br yson, A.E. and Y.C. Ho, Applied Optimal Control, Hemispher e

Publishing, 1975. pp. 328–338.

margin

11-137

11mar gin

Purpose Comput e gain and phase mar gins and associat ed cr ossover fr equencies

Syntax [Gm,Pm,Wcg,Wcp] = margin(sys)

[Gm,Pm,Wcg,Wcp] = margin(mag,phase,w)

margin(sys)

Description margin calculat es t he gain mar gin, phase mar gin, and associat ed cr ossover

fr equencies of SISO open-loop models. The gain and phase mar gins indicat e

t he r elat ive st abilit y of t he cont r ol syst em when t he loop is closed. When

invoked wit hout left -hand ar gument s, margin pr oduces a Bode plot and

displays t he mar gins on t his plot .

The gain mar gin is t he amount of gain incr ease r equir ed t o make t he loop gain

unit y at t he fr equency wher e t he phase angle is –180°. In ot her wor ds, t he gain

mar gin is if is t he gain at t he –180° phase fr equency. Similar ly, t he

phase mar gin is t he differ ence bet ween t he phase of t he r esponse and –180°

when t he loop gain is 1.0. The fr equency at which t he magnit ude is 1.0 is called

t he unit y-gain fr equency or cr ossover fr equency. It is gener ally found t hat gain

mar gins of t hr ee or mor e combined wit h phase mar gins bet ween 30 and 60

degr ees r esult in r easonable t r ade-offs bet ween bandwidt h and st abilit y.

[Gm,Pm,Wcg,Wcp] = margin(sys) comput es t he gain mar gin Gm, t he phase

mar gin Pm, and t he cor r esponding cr ossover fr equencies Wcg and Wcp, given t he

SISO open-loop model sys. This funct ion handles bot h cont inuous- and

discr et e-t ime cases. When faced wit h sever al cr ossover fr equencies, margin

r et ur ns t he smallest gain and phase mar gins.

[Gm,Pm,Wcg,Wcp] = margin(mag,phase,w) der ives t he gain and phase

mar gins fr om t he Bode fr equency r esponse dat a (magnit ude, phase, and

fr equency vect or ). Int er polat ion is per for med bet ween t he fr equency point s t o

est imat e t he mar gin values. This appr oach is gener ally less accur at e.

When invoked wit hout left -hand ar gument ,

margin(sys)

plot s t he open-loop Bode r esponse wit h t he gain and phase mar gins mar ked by

ver t ical lines.

1 g ⁄ g

margin

11-138

Example You can comput e t he gain and phase mar gins of t he open-loop discr et e-t ime

t r ansfer funct ion. Type

hd = tf([0.04798 0.0464],[1 –1.81 0.9048],0.1)

MATLAB r esponds wit h

Transfer function:

0.04798 z + 0.0464

---------------------

z^2 – 1.81 z + 0.9048

Sampling time: 0.1

Type

[Gm,Pm,Wcg,Wcp] = margin(hd);

[Gm,Pm,Wcg,Wcp]

and MATLAB r et ur ns

ans =

2.0517 13.5712 5.4374 4.3544

margin

11-139

You can also display t hese mar gins gr aphically.

margin(hd)

Algorithm The phase mar gin is comput ed using t heor y, and t he gain mar gin by

solving for t he fr equency .

See Also bode Bode fr equency r esponse

ltiview LTI syst em viewer

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−100

−50

0

50

Gm=6.3 dB (Wcg=5.4); Pm=13.6 deg. (Wcp=4.4)

10

0

10

1

10

2

−300

−250

−200

−150

−100

−50

0

H

∞

H j ω ( ) H j ω ( ) = ω

minreal

11-140

11minreal

Purpose Minimal r ealizat ion or pole-zer o cancellat ion

Syntax sysr = minreal(sys)

sysr = minreal(sys,tol)

Description sysr = minreal(sys) eliminat es uncont r ollable or unobser vable st at e in

st at e-space models, or cancels pole-zer o pair s in t r ansfer funct ions or

zer o-pole-gain models. The out put sysr has minimal or der and t he same

r esponse char act er ist ics as t he or iginal model sys.

sysr = minreal(sys,tol) specifies t he t oler ance used for st at e eliminat ion or

pole-zer o cancellat ion. The default value is tol = sqrt(eps) and incr easing

t his t oler ance for ces addit ional cancellat ions.

Example The commands

g = zpk([],1,1)

h = tf([2 1],[1 0])

cloop = inv(1+g*h) * g

pr oduce t he nonminimal zer o-pole-gain model by t yping cloop.

Zero/pole/gain:

s (s–1)

-------------------

(s–1) (s^2 + s + 1)

To cancel t he pole-zer o pair at , t ype

cloop = minreal(cloop)

and MATLAB r et ur ns

Zero/pole/gain:

s

-------------

(s^2 + s + 1)

Algorithm Pole-zer o cancellat ion is a st r aight for war d sear ch t hr ough t he poles and zer os

looking for mat ches t hat ar e wit hin t oler ance. Tr ansfer funct ions ar e fir st

conver t ed t o zer o-pole-gain for m.

s 1 =

minreal

11-141

See Also balreal Gr amian-based input /out put balancing

modred Model or der r educt ion

sminreal St r uct ur ed model r educt ion

modred

11-142

11modred

Purpose Model or der r educt ion

Syntax rsys = modred(sys,elim)

rsys = modred(sys,elim,'mdc')

rsys = modred(sys,elim,'del')

Description modred r educes t he or der of a cont inuous or discr et e st at e-space model sys.

This funct ion is usually used in conjunct ion wit h balreal. Two or der r educt ion

t echniques ar e available:

•rsys = modred(sys,elim) or rsys = modred(sys,elim,'mdc') pr oduces a

r educed-or der model rsys wit h mat ching DC gain (or equivalent ly, mat ching

st eady st at e in t he st ep r esponse). The index vect or elim specifies t he st at es

t o be eliminat ed. The r esult ing model rsys has length(elim) fewer st at es.

This t echnique consist s of set t ing t he der ivat ive of t he eliminat ed st at es t o

zer o and solving for t he r emaining st at es.

•rsys = modred(sys,elim,'del')simply delet es t he st at es specified by elim.

While t his met hod does not guar ant ee mat ching DC gains, it t ends t o

pr oduce bet t er appr oximat ions in t he fr equency domain (see example below).

If t he st at e-space model sys has been balanced wit h balreal and t he gr amians

have small diagonal ent r ies, you can r educe t he model or der by eliminat ing

t he last st at es wit h modred.

Example Consider t he cont inuous four t h-or der model

To r educe it s or der , fir st comput e a balanced st at e-space r ealizat ion wit h

balreal by t yping

h = tf([1 11 36 26],[1 14.6 74.96 153.7 99.65])

[hb,g] = balreal(h)

g'

MATLAB r et ur ns

ans =

1.3938e–01 9.5482e–03 6.2712e–04 7.3245e–06

m

m

h s ( )

s

3

11s

2

36s 26 + + +

s

4

14.6 + s

3

74.96s

2

153.7s 99.65 + + +

------------------------------------------------------------------------------------------------------ =

modred

11-143

The last t hr ee diagonal ent r ies of t he balanced gr amians ar e small, so

eliminat e t he last t hr ee st at es wit h modred using bot h mat ched DC gain and

dir ect delet ion met hods.

hmdc = modred(hb,2:4,'mdc')

hdel = modred(hb,2:4,'del')

Bot h hmdc and hdel ar e fir st -or der models. Compar e t heir Bode r esponses

against t hat of t he or iginal model .

bode(h,'-',hmdc,'x',hdel,'*')

h s ( )

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−80

−60

−40

−20

0

10

−1

10

0

10

1

10

2

10

3

−200

−150

−100

−50

0

modred

11-144

The r educed-or der model hdel is clear ly a bet t er fr equency-domain

appr oximat ion of . Now compar e t he st ep r esponses.

step(h,'-',hmdc,'-.',hdel,'--')

While hdel accur at ely r eflect s t he t r ansient behavior , only hmdc gives t he t r ue

st eady-st at e r esponse.

Algorithm The algor it hm for t he mat ched DC gain met hod is as follows. For

cont inuous-t ime models

t he st at e vect or is par t it ioned int o , t o be kept , and , t o be eliminat ed.

h s ( )

Time (sec.)

A

m

p

l

i

t

u

d

e

Step Response

0 0.5 1 1.5 2 2.5 3

−0.05

0

0.05

0.1

0.15

0.2

0.25

0.3

x

·

Ax Bu + =

y Cx Du + =

x

1

x

2

modred

11-145

Next , t he der ivat ive of is set t o zer o and t he r esult ing equat ion is solved for

. The r educed-or der model is given by

The discr et e-t ime case is t r eat ed similar ly by set t ing

Limitations Wit h t he mat ched DC gain met hod, must be inver t ible in cont inuous t ime,

and must be inver t ible in discr et e t ime.

See Also balreal Input /out put balancing of st at e-space models

minreal Minimal st at e-space r ealizat ions

x

·

1

x

·

2

A

11

A

12

A

21

A

22

x

1

x

2

B

1

B

2

u + =

y C

1

C

2

x Du + =

x

2

x

1

x

·

1

A

11

A

12

A

22

1 –

A

21

– [ ]x

1

B

1

A

12

A

22

1 –

B

2

– [ ]u + =

y C

1

C

2

A

22

1 –

A

21

– [ ]x D C

2

A

22

1 –

B

2

– [ ]u + =

x

2

n 1 + [ ] x

2

n [ ] =

A

22

I A

22

–

ndims

11-146

11ndims

Purpose Pr ovide t he number of t he dimensions of an LTI model or LTI ar r ay

Syntax n = ndims(sys)

Description n = ndims(sys) is t he number of dimensions of an LTI model or an ar r ay of

LTI models sys. A single LTI model has t wo dimensions (one for out put s, and

one for input s). An LTI ar r ay has 2+p dimensions, wher e is t he number

of ar r ay dimensions. For example, a 2-by-3-by-4 ar r ay of models has 2+3=5

dimensions.

ndims(sys) = length(size(sys))

Example sys = rss(3,1,1,3);

ndims(sys)

ans =

4

ndims r et ur ns 4 for t his 3-by-1 ar r ay of SISO models.

See Also size Ret ur ns a vect or cont aining t he lengt hs of t he

dimensions of an LTI ar r ay or model

p 2 ≥

ngrid

11-147

11ngr id

Purpose Super impose a Nichols char t on a Nichols plot

Syntax ngrid

Description ngrid super imposes Nichols char t gr id lines over t he Nichols fr equency

r esponse of a SISO LTI syst em. The r ange of t he Nichols gr id lines is set t o

encompass t he ent ir e Nichols fr equency r esponse.

The char t r elat es t he complex number t o , wher e is any

complex number . For SISO syst ems, when is a point on t he open-loop

fr equency r esponse, t hen

is t he cor r esponding value of t he closed-loop fr equency r esponse assuming unit

negat ive feedback.

If t he cur r ent axis is empt y, ngrid gener at es a new Nichols char t gr id in t he

r egion –40 dB t o 40 dB in magnit ude and –360 degr ees t o 0 degr ees in phase.

If t he cur r ent axis does not cont ain a SISO Nichols fr equency r esponse, ngrid

r et ur ns a war ning.

Example Plot t he Nichols r esponse wit h Nichols gr id lines for t he syst em.

Type

H = tf([–4 48 –18 250 600],[1 30 282 525 60])

MATLAB r et ur ns

Transfer function:

– 4 s^4 + 48 s^3 – 18 s^2 + 250 s + 600

---------------------------------------

s^4 + 30 s^3 + 282 s^2 + 525 s + 60

H 1 H + ( ) ⁄ H H

H

H

1 H +

--------------

H s ( )

4s

4

– 48s

3

18s

2

– 250s 600 + + +

s

4

30s

3

282s

2

525s 60 + + + +

--------------------------------------------------------------------------------------- =

ngrid

11-148

Type

nichols(H)

ngrid

See Also nichols Nichols plot s

Open−Loop Phase (deg)

O

p

e

n

−

L

o

o

p

G

a

i

n

(

d

B

)

Nichols Charts

−500 −450 −400 −350 −300 −250 −200 −150 −100 −50

−40

−30

−20

−10

0

10

20

30

40

6 dB

3 dB

1 dB

0.5 dB

0.25 dB

0 dB

−1 dB

−3 dB

−6 dB

−12 dB

−20 dB

−40 dB

nichols

11-149

11nichols

Purpose Comput e Nichols fr equency r esponse of LTI models

Syntax nichols(sys)

nichols(sys,w)

nichols(sys1,sys2,...,sysN)

nichols(sys1,sys2,...,sysN,w)

nichols(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

[mag,phase,w] = nichols(sys)

[mag,phase] = nichols(sys,w)

Description nichols comput es t he fr equency r esponse of an LTI model and plot s it in t he

Nichols coor dinat es. Nichols plot s ar e useful t o analyze open- and closed-loop

pr oper t ies of SISO syst ems, but offer lit t le insight int o MIMO cont r ol loops.

Use ngrid t o super impose a Nichols char t on an exist ing SISO Nichols plot .

nichols(sys) pr oduces a Nichols plot of t he LTI model sys. This model can be

cont inuous or discr et e, SISO or MIMO. In t he MIMO case, nichols pr oduces

an ar r ay of Nichols plot s, each plot showing t he r esponse of one par t icular I/O

channel. The fr equency r ange and gr idding ar e det er mined aut omat ically

based on t he syst em poles and zer os.

nichols(sys,w) explicit ly specifies t he fr equency r ange or fr equency point s t o

be used for t he plot . To focus on a par t icular fr equency int er val [wmin,wmax],

set w = {wmin,wmax}. To use par t icular fr equency point s, set w t o t he vect or of

desir ed fr equencies. Use logspace t o gener at e logar it hmically spaced

fr equency vect or s. Fr equencies should be specified in r adians/sec.

nichols(sys1,sys2,...,sysN) or nichols(sys1,sys2,...,sysN,w)

super imposes t he Nichols plot s of sever al LTI models on a single figur e. All

syst ems must have t he same number of input s and out put s, but may ot her wise

be a mix of cont inuous- and discr et e-t ime syst ems. You can also specify a

dist inct ive color , linest yle, and/or mar ker for each syst em plot wit h t he synt ax

nichols(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

See bode for an example.

nichols

11-150

When invoked wit h left -hand ar gument s,

[mag,phase,w] = nichols(sys)

[mag,phase] = nichols(sys,w)

r et ur n t he magnit ude and phase (in degr ees) of t he fr equency r esponse at t he

fr equencies w (in r ad/sec). The out put s mag and phase ar e 3-D ar r ays similar t o

t hose pr oduced by bode (see bode on page 11-19). They have dimensions

Remark If sys is an FRD model, nichols(sys,w), w can only include fr equencies in

sys.frequency.

Example Plot t he Nichols r esponse of t he syst em

num = [–4 48 –18 250 600];

den = [1 30 282 525 60];

H = tf(num,den)

nichols(H); ngrid

number of out put s ( ) number of input s ( ) × lengt h of w ( ) ×

H s ( )

4s

4

– 48s

3

18s

2

– 250s 600 + + +

s

4

30s

3

282s

2

525s 60 + + + +

--------------------------------------------------------------------------------------- =

nichols

11-151

Algorithm See bode.

See Also bode Bode plot

evalfr Response at single complex fr equency

freqresp Fr equency r esponse comput at ion

ltiview LTI syst em viewer

ngrid Gr id on Nichols plot

nyquist Nyquist plot

sigma Singular value plot

Open−Loop Phase (deg)

O

p

e

n

−

L

o

o

p

G

a

i

n

(

d

B

)

Nichols Charts

−500 −450 −400 −350 −300 −250 −200 −150 −100 −50

−40

−30

−20

−10

0

10

20

30

40

6 dB

3 dB

1 dB

0.5 dB

0.25 dB

0 dB

−1 dB

−3 dB

−6 dB

−12 dB

−20 dB

−40 dB

norm

11-152

11nor m

Purpose Comput e LTI model nor ms

Syntax norm(sys)

norm(sys,2)

norm(sys,inf)

norm(sys,inf,tol)

[ninf,fpeak] = norm(sys)

Description norm comput es t he or nor m of a cont inuous- or discr et e-t ime LTI model.

H

2

Norm

The nor m of a st able cont inuous syst em wit h t r ansfer funct ion , is t he

r oot -mean-squar e of it s impulse r esponse, or equivalent ly

This nor m measur es t he st eady-st at e covar iance (or power ) of t he out put

r esponse t o unit whit e noise input s .

Infinity Norm

The infinit y nor m is t he peak gain of t he fr equency r esponse, t hat is,

wher e denot es t he lar gest singular value of a mat r ix.

H

2

L

∞

H

2

H s ( )

H

2

1

2π

------ Tr ace H j ω ( )

H

H j ω ( ) ( ) ω d

∞ –

∞

∫

=

y Hw = w

H

2

2

E y t ( )

T

y t ( ) { } ,

t ∞ →

lim = E w t ( )w τ ( )

T

( ) δ t τ – ( )I =

H s ( )

∞

max H j ω ( ) =

ω

(SISO case)

H s ( )

∞

max σ

max

H j ω ( ) ( ) =

ω

(MIMO case)

σ

max

. ( )

norm

11-153

The discr et e-t ime count er par t is

Usage norm(sys) or norm(sys,2) bot h r et ur n t he nor m of t he TF, SS, or ZPK

model sys. This nor m is infinit e in t he following cases:

•sys is unst able.

•sys is cont inuous and has a nonzer o feedt hr ough (t hat is, nonzer o gain at t he

fr equency ).

Not e t hat norm(sys) pr oduces t he same r esult as

sqrt(trace(covar(sys,1)))

norm(sys,inf) comput es t he infinit y nor m of any t ype of LTI model sys. This

nor m is infinit e if sys has poles on t he imaginar y axis in cont inuous t ime, or on

t he unit cir cle in discr et e t ime.

norm(sys,inf,tol) set s t he desir ed r elat ive accur acy on t he comput ed

infinit y nor m (t he default value is tol=1e–2).

[ninf,fpeak] = norm(sys,inf) also r et ur ns t he fr equency fpeak wher e t he

gain achieves it s peak value.

Example Consider t he discr et e-t ime t r ansfer funct ion

wit h sample t ime 0.1 second. Comput e it s nor m by t yping

H = tf([1 –2.841 2.875 –1.004],[1 –2.417 2.003 –0.5488],0.1)

norm(H)

ans =

1.2438

H z ( )

∞

max σ

max

H e

j θ

( ) ( ) =

θ 0 π , [ ] ∈

H

2

ω ∞ =

H z ( )

z

3

2.841z

2

– 2.875z 1.004 – +

z

3

2.417z

2

– 2.003z 0.5488 – +

--------------------------------------------------------------------------------- =

H

2

norm

11-154

Comput e it s infinit y nor m by t yping

[ninf,fpeak] = norm(H,inf)

ninf =

2.5488

fpeak =

3.0844

These values ar e confir med by t he Bode plot of .

bode(H)

The gain indeed peaks at appr oximat ely 3 r ad/sec and it s peak value in dB is

found by t yping

20*log10(ninf)

H z ( )

Frequency (rad/sec)

P

h

a

s

e

(

d

e

g

)

;

M

a

g

n

i

t

u

d

e

(

d

B

)

Bode Diagrams

−5

0

5

10

10

−1

10

0

10

1

10

2

−400

−300

−200

−100

0

100

200

norm

11-155

MATLAB r et ur ns

ans =

8.1268

Algorithm norm uses t he same algor it hm as covar for t he nor m, and t he algor it hm of

[1] for t he infinit y nor m. sys is fir st conver t ed t o st at e space.

See Also bode Bode plot

freqresp Fr equency r esponse comput at ion

sigma Singular value plot

References [1] Br uisma, N.A. and M. St einbuch, “A Fast Algor it hm t o Comput e t he

-Nor m of a Tr ansfer Funct ion Mat r ix,” S ystem Control Letters, 14 (1990),

pp. 287–293.

H

2

H

∞

nyquist

11-156

11nyquist

Purpose Comput e Nyquist fr equency r esponse of LTI models

Syntax nyquist(sys)

nyquist(sys,w)

nyquist(sys1,sys2,...,sysN)

nyquist(sys1,sys2,...,sysN,w)

nyquist(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

[re,im,w] = nyquist(sys)

[re,im] = nyquist(sys,w)

Description nyquist calculat es t he Nyquist fr equency r esponse of LTI models. When

invoked wit hout left -hand ar gument s, nyquist pr oduces a Nyquist plot on t he

scr een. Nyquist plot s ar e used t o analyze syst em pr oper t ies including gain

mar gin, phase mar gin, and st abilit y.

nyquist(sys) plot s t he Nyquist r esponse of an ar bit r ar y LTI model sys. This

model can be cont inuous or discr et e, and SISO or MIMO. In t he MIMO case,

nyquist pr oduces an ar r ay of Nyquist plot s, each plot showing t he r esponse of

one par t icular I/O channel. The fr equency point s ar e chosen aut omat ically

based on t he syst em poles and zer os.

nyquist(sys,w) explicit ly specifies t he fr equency r ange or fr equency point s t o

be used for t he plot . To focus on a par t icular fr equency int er val [wmin,wmax],

set w = {wmin,wmax}. To use par t icular fr equency point s, set w t o t he vect or of

desir ed fr equencies. Use logspace t o gener at e logar it hmically spaced

fr equency vect or s. Fr equencies should be specified in r ad/sec.

nyquist(sys1,sys2,...,sysN) or nyquist(sys1,sys2,...,sysN,w)

super imposes t he Nyquist plot s of sever al LTI models on a single figur e. All

syst ems must have t he same number of input s and out put s, but may ot her wise

be a mix of cont inuous- and discr et e-t ime syst ems. You can also specify a

dist inct ive color , linest yle, and/or mar ker for each syst em plot wit h t he synt ax

nyquist(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

See bode for an example.

nyquist

11-157

When invoked wit h left -hand ar gument s

[re,im,w] = nyquist(sys)

[re,im] = nyquist(sys,w)

r et ur n t he r eal and imaginar y par t s of t he fr equency r esponse at t he

fr equencies w (in r ad/sec). re and im ar e 3-D ar r ays wit h t he fr equency as last

dimension (see “Ar gument s” below for det ails).

Remark If sys is an FRD model, nyquist(sys,w), w can only include fr equencies in

sys.frequency.

Arguments The out put ar gument s re and im ar e 3-D ar r ays wit h dimensions

For SISO syst ems, t he scalar s re(1,1,k) and im(1,1,k) ar e t he r eal and

imaginar y par t s of t he r esponse at t he fr equency .

For MIMO syst ems wit h t r ansfer funct ion , re(:,:,k) and im(:,:,k)

give t he r eal and imaginar y par t s of (bot h ar r ays wit h as many r ows

as out put s and as many columns as input s). Thus,

wher e is t he t r ansfer funct ion fr om input t o out put .

Example Plot t he Nyquist r esponse of t he syst em

number of out put s ( ) number of input s ( ) × lengt h of w ( ) ×

ω

k

w(k) =

re(1,1,k) Re h j ω

k

( ) ( ) =

im(1,1,k) Im h j ω

k

( ) ( ) =

H s ( )

H j ω

k

( )

re(i,j,k) Re h

i j

j ω

k

( ) ( ) =

im(i,j,k) Im h

i j

j ω

k

( ) ( ) =

h

i j

j i

nyquist

11-158

H = tf([2 5 1],[1 2 3])

nyquist(H)

See Also bode Bode plot

evalfr Response at single complex fr equency

freqresp Fr equency r esponse comput at ion

ltiview LTI syst em viewer

nichols Nichols plot

sigma Singular value plot

H s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

------------------------------- =

Real Axis

I

m

a

g

i

n

a

r

y

A

x

i

s

Nyquist Diagrams

−1 −0.5 0 0.5 1 1.5 2 2.5 3

−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

obsv

11-159

11obsv

Purpose For m t he obser vabilit y mat r ix

Syntax Ob = obsv(A,B)

Ob = obsv(sys)

Description obsv comput es t he obser vabilit y mat r ix for st at e-space syst ems. For an n-by-n

mat r ix A and a p-by-n mat r ix C, obsv(A,C) r et ur ns t he obser vabilit y mat r ix

wit h n columns and np r ows.

Ob = obsv(sys) calculat es t he obser vabilit y mat r ix of t he st at e-space model

sys. This synt ax is equivalent t o execut ing

Ob = obsv(sys.A,sys.C)

The model is obser vable if Ob has full r ank n.

Example Det er mine if t he pair

A =

1 1

4 –2

C =

1 0

0 1

is obser vable. Type

Ob = obsv(A,C);

% Number of unobservable states

unob = length(A)–rank(Ob)

Ob

C

CA

CA

2

:

CA

n 1 –

=

obsv

11-160

MATLAB r esponds wit h

unob =

0

See Also obsvf Comput e t he obser vabilit y st air case for m

obsvf

11-161

11obsvf

Purpose Comput e t he obser vabilit y st air case for m

Syntax [Abar,Bbar,Cbar,T,k] = obsvf(A,B,C)

[Abar,Bbar,Cbar,T,k] = obsvf(A,B,C,tol)

Description If t he obser vabilit y mat r ix of (A,C) has r ank , wher e n is t he size of A, t hen

t her e exist s a similar it y t r ansfor mat ion such t hat

wher e is unit ar y and t he t r ansfor med syst em has a staircase for m wit h t he

unobser vable modes, if any, in t he upper left cor ner .

wher e is obser vable, and t he eigenvalues of ar e t he unobser vable

modes.

[Abar,Bbar,Cbar,T,k] = obsvf(A,B,C) decomposes t he st at e-space syst em

wit h mat r ices A, B, and C int o t he obser vabilit y st air case for m Abar, Bbar, and

Cbar, as descr ibed above. T is t he similar it y t r ansfor mat ion mat r ix and k is a

vect or of lengt h n, wher e n is t he number of st at es in A. Each ent r y of k

r epr esent s t he number of obser vable st at es fact or ed out dur ing each st ep of t he

t r ansfor mat ion mat r ix calculat ion [1]. The number of nonzer o element s in k

indicat es how many it er at ions wer e necessar y t o calculat e T, and sum(k) is t he

number of st at es in , t he obser vable por t ion of Abar.

obsvf(A,B,C,tol) uses t he t oler ance tol when calculat ing t he obser vable/

unobser vable subspaces. When t he t oler ance is not specified, it default s t o

10*n*norm(a,1)*eps.

r n ≤

A T AT

T

, = B T B , = C CT

T

=

T

A

A

n o

A

12

0 A

o

, =

B

B

n o

B

o

, = C 0 C

o

=

C

o

A

o

, ( ) A

n o

A

o

obsvf

11-162

Example For m t he obser vabilit y st air case for m of

A =

1 1

4 –2

B =

1 –1

1 –1

C =

1 0

0 1

by t yping

[Abar,Bbar,Cbar,T,k] = obsvf(A,B,C)

Abar =

1 1

4 –2

Bbar =

1 1

1 –1

Cbar =

1 0

0 1

T =

1 0

0 1

k =

2 0

Algorithm obsvf is an M-file t hat implement s t he St air case Algor it hm of [1] by calling

ctrbf and using dualit y.

See Also ctrbf Comput e t he cont r ollabilit y st air case for m

obsv Calculat e t he obser vabilit y mat r ix

References [1] Rosenbr ock, M.M., S tate-S pace and Multivariable Theory, J ohn Wiley,

1970.

ord2

11-163

11or d2

Purpose Gener at e cont inuous second-or der syst ems

Syntax [A,B,C,D] = ord2(wn,z)

[num,den] = ord2(wn,z)

Description [A,B,C,D] = ord2(wn,z) gener at es t he st at e-space descr ipt ion (A,B,C,D) of

t he second-or der syst em

given t he nat ur al fr equency wn ( ) and damping fact or z ( ). Use ss t o t ur n

t his descr ipt ion int o a st at e-space object .

[num,den] = ord2(wn,z) r et ur ns t he numer at or and denominat or of t he

second-or der t r ansfer funct ion. Use tf t o for m t he cor r esponding t r ansfer

funct ion object .

Example To gener at e an LTI model of t he second-or der t r ansfer funct ion wit h damping

fact or and nat ur al fr equency , t ype

[num,den] = ord2(2.4,0.4)

num =

1

den =

1.0000 1.9200 5.7600

sys = tf(num,den)

Transfer function:

1

-------------------

s^2 + 1.92 s + 5.76

See Also rmodel, rss Gener at e r andom st able cont inuous models

ss Cr eat e a st at e-space LTI model

tf Cr eat e a t r ansfer funct ion LTI model

h s ( )

1

s

2

2ζω

n

s ω

n

2

+ +

--------------------------------------------- =

ω

n

ζ

ζ 0.4 = ω

n

2.4 r ad/sec. =

pade

11-164

11pade

Purpose Comput e t he Padé appr oximat ion of models wit h t ime delays

Syntax [num,den] = pade(T,N)

pade(T,N)

sysx = pade(sys,N)

sysx = pade(sys,NI,NO,Nio)

Description pade appr oximat es t ime delays by r at ional LTI models. Such appr oximat ions

ar e useful t o model t ime delay effect s such as t r anspor t and comput at ion

delays wit hin t he cont ext of cont inuous-t ime syst ems. The Laplace t r ansfor m

of an t ime delay of seconds is . This exponent ial t r ansfer funct ion

is appr oximat ed by a r at ional t r ansfer funct ion using t he Padé appr oximat ion

for mulas [1].

[num,den] = pade(T,N) r et ur ns t he Nt h-or der (diagonal) Padé appr oximat ion

of t he cont inuous-t ime I/O delay in t r ansfer funct ion for m. The r ow

vect or s num and den cont ain t he numer at or and denominat or coefficient s in

descending power s of . Bot h ar e Nt h-or der polynomials.

When invoked wit hout out put ar gument s,

pade(T,N)

plot s t he st ep and phase r esponses of t he Nt h-or der Padé appr oximat ion and

compar es t hem wit h t he exact r esponses of t he model wit h I/O delay T. Not e

t hat t he Padé appr oximat ion has unit gain at all fr equencies.

sysx = pade(sys,N) pr oduces a delay-fr ee appr oximat ion sysx of t he

cont inuous delay syst em sys. All delays ar e r eplaced by t heir Nt h-or der Padé

appr oximat ion. See “Time Delays” on page 2-45 for det ails on LTI models wit h

delays.

T s T – ( ) exp

sT – ( ) exp

s

pade

11-165

sysx = pade(sys,NI,NO,Nio) specifies independent appr oximat ion or der s for

each input , out put , and I/O delay. These appr oximat ion or der s ar e given by t he

ar r ays of int eger s NI, NO, and Nio, such t hat :

•NI(j) is t he appr oximat ion or der for t he j-t h input channel.

•NO(i) is t he appr oximat ion or der for t he i-t h out put channel.

•Nio(i,j) is t he appr oximat ion or der for t he I/O delay fr om input j t o out put

i.

You can use scalar values t o specify unifor m appr oximat ion or der s, and [] if

t her e ar e no input , out put , or I/O delays.

pade

11-166

Example Comput e a t hir d-or der Padé appr oximat ion of a 0.1 second I/O delay and

compar e t he t ime and fr equency r esponses of t he t r ue delay and it s

appr oximat ion. To do t his, t ype

pade(0.1,3)

Limitations High-or der Padé appr oximat ions pr oduce t r ansfer funct ions wit h clust er ed

poles. Because such pole configur at ions t end t o be ver y sensit ive t o

per t ur bat ions, Padé appr oximat ions wit h or der N>10 should be avoided.

See Also c2d Discr et izat ion of cont inuous syst em

delay2z Changes t r ansfer funct ions of discr et e-t ime LTI models

wit h delays t o r at ional funct ions or absor bs FRD delays

int o t he fr equency r esponse phase infor mat ion

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

−1

−0.5

0

0.5

1

1.5

Time (secs)

A

m

p

l

i

t

u

d

e

Step response of 3rd−order Pade approximation

10

1

10

2

10

3

−1000

−800

−600

−400

−200

0

Frequency (rad/s)

P

h

a

s

e

(

d

e

g

.

)

Phase response

pade

11-167

References [1] Golub, G. H. and C. F. Van Loan, Matrix Computations, J ohns Hopkins

Univer sit y Pr ess, Balt imor e, 1989, pp. 557–558.

parallel

11-168

11par allel

Purpose Par allel connect ion of t wo LTI models

Syntax sys = parallel(sys1,sys2)

sys = parallel(sys1,sys2,inp1,inp2,out1,out2)

Description parallel connect s t wo LTI models in par allel. This funct ion accept s any t ype

of LTI model. The t wo syst ems must be eit her bot h cont inuous or bot h discr et e

wit h ident ical sample t ime. St at ic gains ar e neut r al and can be specified as

r egular mat r ices.

sys = parallel(sys1,sys2) for ms t he basic par allel connect ion shown below.

This command is equivalent t o t he dir ect addit ion

sys = sys1 + sys2

(See “Addit ion and Subt r act ion” on page 3-11 for det ails on LTI syst em

addit ion.)

sys1

sys2

u y

+

+

sys

parallel

11-169

sys = parallel(sys1,sys2,inp1,inp2,out1,out2) for ms t he mor e gener al

par allel connect ion.

The index vect or s inp1 and inp2 specify which input s of sys1 and which

input s of sys2 ar e connect ed. Similar ly, t he index vect or s out1 and out2

specify which out put s of sys1 and which out put s of sys2 ar e summed.

The r esult ing model sys has as input s and as

out put s.

Example See “St eady-St at e Design” on page 9-51 for an example.

See Also append Append LTI syst ems

feedback Feedback connect ion

series Ser ies connect ion

sys1

sys2

+

+

sys

u

u

2

u

1

y

2

y

1

y

z

1

v

1

z

2

v

2

u

1

u

2

y

1

y

2

v

1

u v

2

; ; [ ] z

1

y z

2

; ; [ ]

place

11-170

11place

Purpose Pole placement design

Syntax K = place(A,B,p)

[K,prec,message] = place(A,B,p)

Description Given t he single- or mult i-input syst em

and a vect or p of desir ed self-conjugat e closed-loop pole locat ions, place

comput es a gain mat r ix K such t hat t he st at e feedback places t he

closed-loop poles at t he locat ions p. In ot her wor ds, t he eigenvalues of

mat ch t he ent r ies of p (up t o t he or der ing).

K = place(A,B,p) comput es a feedback gain mat r ix K t hat achieves t he

desir ed closed-loop pole locat ions p, assuming all t he input s of t he plant ar e

cont r ol input s. The lengt h of p must mat ch t he r ow size of A. place wor ks for

mult i-input syst ems and is based on t he algor it hm fr om [1]. This algor it hm

uses t he ext r a degr ees of fr eedom t o find a solut ion t hat minimizes t he

sensit ivit y of t he closed-loop poles t o per t ur bat ions in or .

[K,prec,message] = place(A,B,p) also r et ur ns prec, an est imat e of how

closely t he eigenvalues of mat ch t he specified locat ions p (prec

measur es t he number of accur at e decimal digit s in t he act ual closed-loop

poles). If some nonzer o closed-loop pole is mor e t han 10% off fr om t he desir ed

locat ion, message cont ains a war ning message.

You can also use place for est imat or gain select ion by t r ansposing t he A mat r ix

and subst it ut ing C' for B.

l = place(A',C',p).'

Example Consider a st at e-space syst em (a,b,c,d) wit h t wo input s, t hr ee out put s, and

t hr ee st at es. You can comput e t he feedback gain mat r ix needed t o place t he

closed-loop poles at p = [1.1 23 5.0] by

p = [1 1.23 5.0];

K = place(a,b,p)

x

·

Ax Bu + =

u Kx – =

A B K –

A B

A BK –

place

11-171

Algorithm place uses t he algor it hm of [1] which, for mult i-input syst ems, opt imizes t he

choice of eigenvect or s for a r obust solut ion. We r ecommend place r at her t han

acker even for single-input syst ems.

In high-or der pr oblems, some choices of pole locat ions r esult in ver y lar ge

gains. The sensit ivit y pr oblems at t ached wit h lar ge gains suggest caut ion in

t he use of pole placement t echniques. See [2] for r esult s fr om numer ical t est ing.

See Also acker Pole placement using Acker mann’s for mula

lqr St at e-feedback LQ r egulat or design

rlocus, rlocfind Root locus design

References [1] Kaut sky, J . and N.K. Nichols, “Robust Pole Assignment in Linear St at e

Feedback,” Int. J . Control, 41 (1985), pp. 1129–1155.

[2] Laub, A.J . and M. Wet t e, Algorithms and S oftware for Pole Assignment and

Observers, UCRL-15646 Rev. 1, EE Dept ., Univ. of Calif., Sant a Bar bar a, CA,

Sept . 1984.

pole

11-172

11pole

Purpose Comput e t he poles of an LTI syst em

Syntax p = pole(sys)

Description pole comput es t he poles p of t he SISO or MIMO LTI model sys.

Algorithm For st at e-space models, t he poles ar e t he eigenvalues of t he mat r ix, or t he

gener alized eigenvalues of in t he descr ipt or case.

For SISO t r ansfer funct ions or zer o-pole-gain models, t he poles ar e simply t he

denominat or r oot s (see roots).

For MIMO t r ansfer funct ions (or zer o-pole-gain models), t he poles ar e

comput ed as t he union of t he poles for each SISO ent r y. If some columns or

r ows have a common denominat or , t he r oot s of t his denominat or ar e count ed

only once.

Limitations Mult iple poles ar e numer ically sensit ive and cannot be comput ed t o high

accur acy. A pole wit h mult iplicit y t ypically gives r ise t o a clust er of

comput ed poles dist r ibut ed on a cir cle wit h cent er and r adius of or der

See Also damp Damping and nat ur al fr equency of syst em poles

esort, dsort Sor t syst em poles

pzmap Pole-zer o map

zero Comput e (t r ansmission) zer os

A

A λE –

λ m

λ

ρ eps

1 m ⁄

≈

pzmap

11-173

11pzmap

Purpose Comput e t he pole-zer o map of an LTI model

Syntax pzmap(sys)

[p,z] = pzmap(sys)

Description pzmap(sys) plot s t he pole-zer o map of t he cont inuous- or discr et e-t ime LTI

model sys. For SISO syst ems, pzmap plot s t he t r ansfer funct ion poles and zer os.

For MIMO syst ems, it plot s t he syst em poles and t r ansmission zer os. The poles

ar e plot t ed as x’s and t he zer os ar e plot t ed as o’s.

When invoked wit hout left -hand ar gument s,

[p,z] = pzmap(sys)

r et ur ns t he syst em poles and (t r ansmission) zer os in t he column vect or s p and

z. No plot is dr awn on t he scr een.

You can use t he funct ions sgrid or zgrid t o plot lines of const ant damping r at io

and nat ur al fr equency in t he - or -plane. s z

pzmap

11-174

Example Plot t he poles and zer os of t he cont inuous-t ime syst em.

H = tf([2 5 1],[1 2 3])

pzmap(H)

Algorithm pzmap uses a combinat ion of pole and zero.

See Also damp Damping and nat ur al fr equency of syst em poles

esort, dsort Sor t syst em poles

pole Comput e syst em poles

rlocus Root locus

H s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

------------------------------- =

−2.5 −2 −1.5 −1 −0.5 0

−1.5

−1

−0.5

0

0.5

1

1.5

Real Axis

I

m

a

g

A

x

i

s

Pole−zero map

pzmap

11-175

sgrid, zgrid Plot lines of const ant damping and nat ur al fr equency

zero Comput e syst em (t r ansmission) zer os

reg

11-176

11r eg

Purpose For m r egulat or given st at e-feedback and est imat or gains

Syntax rsys = reg(sys,K,L)

rsys = reg(sys,K,L,sensors,known,controls)

Description rsys = reg(sys,K,L) for ms a dynamic r egulat or or compensat or rsys given a

st at e-space model sys of t he plant , a st at e-feedback gain mat r ix K, and an

est imat or gain mat r ix L. The gains K and L ar e t ypically designed using pole

placement or LQG t echniques. The funct ion reg handles bot h cont inuous- and

discr et e-t ime cases.

This synt ax assumes t hat all input s of sys ar e cont r ols, and all out put s ar e

measur ed. The r egulat or rsys is obt ained by connect ing t he st at e-feedback law

and t he st at e est imat or wit h gain mat r ix L (see estim). For a plant

wit h equat ions

t his yields t he r egulat or

u K – x =

x

·

Ax Bu + =

y Cx Du + =

x

ˆ

·

A L C – B L D – ( )K –

xˆ L y + =

u Kxˆ – =

reg

11-177

This r egulat or should be connect ed t o t he plant using positive feedback.

rsys = reg(sys,K,L,sensors,known,controls) handles mor e gener al

r egulat ion pr oblems wher e:

•The plant input s consist of cont r ols , known input s , and st ochast ic

input s .

•Only a subset of t he plant out put s is measur ed.

The index vect or s sensors, known, and controls specify , , and as

subset s of t he out put s and input s of sys. The r esult ing r egulat or uses

as input s t o gener at e t he commands (see figur e below).

u

y

xˆ

K –

Regulator

u

Plant

y

St at e

Est imat or

u u

d

w

y

y u

d

u

u

d

; y [ ]

u

xˆ

u

y

u

d K – u

Regulator rsys

Est imat or

(gain L)

(known)

(sensor s)

reg

11-178

Example Given a cont inuous-t ime st at e-space model

sys = ss(A,B,C,D)

wit h seven out put s and four input s, suppose you have designed:

• A st at e-feedback cont r oller gain K using input s 1, 2, and 4 of t he plant as

cont r ol input s

• A st at e est imat or wit h gain L using out put s 4, 7, and 1 of t he plant as

sensor s, and input 3 of t he plant as an addit ional known input

You can t hen connect t he cont r oller and est imat or and for m t he complet e

r egulat ion syst em by

controls = [1,2,4];

sensors = [4,7,1];

known = [3];

regulator = reg(sys,K,L,sensors,known,controls)

See Also estim For m st at e est imat or given est imat or gain

kalman Kalman est imat or design

lqgreg For m LQG r egulat or

lqr, dlqr St at e-feedback LQ r egulat or

place Pole placement

reshape

11-179

11r eshape

Purpose Change t he shape of an LTI ar r ay

Syntax sys = reshape(sys,s1,s2,...,sk)

sys = reshape(sys,[s1 s2 ... sk])

Description sys = reshape(sys,s1,s2,...,sk) (or , equivalent ly, sys = reshape(sys,[s1

s2 ... sk])) r eshapes t he LTI ar r ay sys int o an s1-by-s2-by...-sk ar r ay of LTI

models. Equivalent ly, sys = reshape(sys,[s1 s2 ... sk]) r eshapes t he LTI

ar r ay sys int o an s1-by-s2-by...-sk ar r ay of LTI models. Wit h eit her synt ax,

t her e must be s1*s2*...*sk models in sys t o begin wit h.

Example sys = rss(4,1,1,2,3);

size(sys)

2x3 array of state-space models

Each model has 1 output, 1 input, and 4 states.

sys1 = reshape(sys,6);

size(sys1)

6x1 array of state-space models

Each model has 1 output, 1 input, and 4 states.

See Also ndims Pr ovide t he number of dimensions of an LTI ar r ay

size Pr ovide t he lengt hs of each dimension of an LTI ar r ay

rlocfind

11-180

11r locfind

Purpose Select feedback gain fr om r oot locus plot

Syntax [k,poles] = rlocfind(sys)

[k,poles] = rlocfind(sys,p)

Description rlocfind r et ur ns t he feedback gain associat ed wit h a par t icular set of poles on

t he r oot locus. rlocfind wor ks wit h bot h cont inuous- and discr et e-t ime SISO

syst ems.

[k,poles] = rlocfind(sys) is used for int er act ive gain select ion fr om t he

r oot locus plot of t he SISO syst em sys gener at ed by rlocus. The funct ion

rlocfind put s up a cr osshair cur sor on t he r oot locus plot t hat you use t o select

a par t icular pole locat ion. The r oot locus gain associat ed wit h t his point is

r et ur ned in k and t he column vect or poles cont ains t he closed-loop poles for

t his gain. To use t his command, t he r oot locus of t he SISO open-loop model sys

must be pr esent in t he cur r ent figur e window.

[k,poles] = rlocfind(sys,p) t akes a vect or p of desir ed r oot locat ions and

comput es a r oot locus gain for each of t hese locat ions (t hat is, a gain for which

one of t he closed-loop r oot s is near t he desir ed locat ion). The jt h ent r y of t he

vect or k gives t he comput ed gain for t he pole locat ion p(j), and t he jt h column

of t he mat r ix poles list s t he r esult ing closed-loop poles.

Example Det er mine a feedback gain such t hat t he closed-loop poles of t he syst em

have damping r at io ζ = 0.707.

h = tf([2 5 1],[1 2 3]);

rlocus(h) % Plot the root locus

k = rlocfind(h) % Select pole with ζ=.707 graphically

Algorithm [k,poles] = rlocfind(sys,p) calculat es t he gain k fr om t he following

for mula.

k = abs(d(p)/n(p))

h s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

------------------------------- =

rlocfind

11-181

wher e p is t he complex point you supply as an input ar gument t o rlocfind (or

wher e you point t o wit h t he mouse), and n and d ar e r espect ively t he numer at or

and denominat or polynomials of t he t r ansfer funct ion associat ed wit h sys. The

poles associat ed wit h t he gain k ar e t hen comput ed as

poles = roots(k*n(s) + d(s))

Limitations rlocfind assumes t hat a r oot locus is in t he cur r ent figur e window when t his

funct ion is called wit hout second input ar gument .

See Also rlocus Plot r oot locus

rltool Root Locus Design GUI

References [1] Ogot a, K., Modern Control Engineering, Pr ent ice Hall, 1970.

rlocus

11-182

11r locus

Purpose Evans r oot locus

Syntax rlocus(sys)

rlocus(sys,k)

[r,k] = rlocus(sys)

r = rlocus(sys,k)

Description rlocus comput es t he Evans r oot locus of a SISO open-loop model. The r oot

locus gives t he closed-loop pole t r aject or ies as a funct ion of t he feedback gain

(assuming negat ive feedback). Root loci ar e used t o st udy t he effect s of

var ying feedback gains on closed-loop pole locat ions. In t ur n, t hese locat ions

pr ovide indir ect infor mat ion on t he t ime and fr equency r esponses.

rlocus(sys) calculat es and plot s t he r oot locus of t he open-loop SISO model

sys. This funct ion can be applied t o any of t he following negative feedback loops

by set t ing sys appr opr iat ely.

If sys has t r ansfer funct ion

k

G

k

G

F k

sys = G sys = F * G

C

k

G

sys = G * C

–

–

–

+

+

+

h s ( )

n s ( )

d s ( )

----------- =

rlocus

11-183

t he closed-loop poles ar e t he r oot s of

rlocus adapt ively select s a set of posit ive gains t o pr oduce a smoot h plot .

Alt er nat ively,

rlocus(sys,k)

uses t he user -specified vect or k of gains t o plot t he r oot locus.

When invoked wit h out put ar gument s,

[r,k] = rlocus(sys)

r = rlocus(sys,k)

r et ur n t he vect or k of select ed gains and t he complex r oot locat ions r for t hese

gains. The mat r ix r has length(k) columns and it s jt h column list s t he

closed-loop r oot s for t he gain k(j).

Example Find and plot t he r oot -locus of t he following syst em.

d s ( ) k n s ( ) + 0 =

k

rlocus

11-184

h = tf([2 5 1],[1 2 3]);

rlocus(h)

For examples, see “Root Locus Design” on page 9-9 and “Har d-Disk Read/Wr it e

Head Cont r oller ” on page 9-20.

See Also rlocfind Select gain fr om r oot locus plot

rltool Root Locus Design GUI

pole Syst em poles

pzmap Pole-zer o map

h s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

------------------------------- =

−3 −2.5 −2 −1.5 −1 −0.5 0 0.5 1

−1.5

−1

−0.5

0

0.5

1

1.5

Real Axis

I

m

a

g

A

x

i

s

rltool

11-185

11r lt ool

Purpose Init ialize t he Root Locus Design GUI

Syntax rltool

rltool(sys)

rltool(sys,comp)

rltool(sys,comp,LocationFlag,FeedbackSign)

Description When invoked wit hout input ar gument s, rltool init ializes a new Root Locus

Design GUI for int er act ive compensat or design. This GUI allows you t o design

a single-input /single-out put (SISO) compensat or using r oot locus t echniques.

rltool

11-186

The Root Locus Design GUI looks like t his.

Edit the gain set

point to change the

closed-loop pole

locations.

Compensator descrip-

tion: The default

compensator is K=1.

Root locus toolbar buttons to

drag, add, or erase compensa-

tor poles and zeros, or to drag

the closed-loop poles

Plot region to display

the root locus

Toggle between

positive/negative

feedback.

Save/retrieve root locus axes

limits and aspect ratios.

Status bar for providing

information

These are the main menus for importing/exporting of

models, and editing them. You can also perform discrete/

continuous conversion.

The feedback structure: Click on K to

view/change the compensator, and on P,

F, or H to view the design model

characteristics.

Zoom into or out of

the root locus plot.

Click on these boxes to open system

response analysis tools.

rltool

11-187

This t ool can be applied t o SISO LTI syst ems whose feedback st r uct ur e is in

one of t he following t wo configur at ions.

In eit her configur at ion, F is a pr e-filt er , P is t he plant model, H is t he sensor

dynamics, and K is t he compensat or t o be designed. In t er ms of t he GUI design

pr ocedur e, once you specify t hem, F, P, and H ar e fixed in t he feedback

st r uct ur e. This t r iple, along wit h t he feedback st r uct ur e, is called t he design

model.

A design model can be const r uct ed for t he GUI by select ing t he Import Model

menu it em fr om t he Fi le menu of t he Root Locus Design GUI. Once you select

t he it em, t he Import De si gn Model window opens. You can t hen impor t SISO

LTI models t hat have been cr eat ed wit h ss, tf, or zpk in your wor kspace or on

your disk (or SISO LTI blocks cont ained in open or saved Simulink models) int o

F, P, and H. Ot her wise, you can specify your design model by defining F, P, and

H manually wit h LTI models cr eat ed using ss, tf, or zpk in t he t ext boxes

pr ovided on t he Import De si gn Mode l window.

If sys is any SISO LTI object (cr eat ed wit h ss, tf, or zpk) t hat exist s in t he

MATLAB wor kspace, rltool(sys) init ializes a Root Locus Design GUI, by

set t ing t he plant model P t o sys.

rltool(sys,comp) also init ializes a Root Locus Design GUI for t he plant model

sys. In addit ion, t he r oot locus compensat or is init ialized t o comp, wher e comp

is any SISO LTI object t hat exist s in t he MATLAB wor kspace.

When eit her t he plant , or bot h t he plant and t he compensat or ar e pr ovided as

ar gument s t o rltool, t he r oot locus of t he closed-loop poles and t heir locat ions

for t he cur r ent compensat or gain ar e dr awn on t he Root Locus Design GUI. The

closed-loop model is gener at ed by placing t he compensat or (comp) and plant

rltool

11-188

model (sys) in t he for war d loop of a negat ive unit y feedback syst em, as shown

in t he diagr am below.

In t his case, F and H ar e t aken t o be 1, while P is sys. If you want t o include F

and H in t he design model aft er loading rltool(sys) or rltool(sys,comp),

select t he Import Mode l menu it em fr om t he Fi le menu of t he Root Locus

Design GUI t o load F and H.

rltool(sys,comp,LocationFlag,FeedbackSign) allows you t o over r ide t he

default compensat or locat ion and feedback sign. LocationFlag can be eit her 1

or 2:

•LocationFlag = 1: Places t he compensat or in t he for war d pat h (t his is t he

default )

•LocationFlag = 2: Places t he compensat or in t he feedback pat h

•FeedbackSign can be eit her 1 or -1:

- FeedbackSign = —1 for negat ive feedback (t his is t he default )

- FeedbackSign = 1 for posit ive feedback

See Also rlocus Plot r oot locus

rlocfind Select gain fr om t he r oot locus plot

sys

comp

+_

y

u

rmodel, rss

11-189

11r model, r ss

Purpose Gener at e st able r andom cont inuous t est models

Syntax sys = rss(n)

sys = rss(n,p)

sys = rss(n,p,m)

sys = r ss(n,p,m,s1,...,sn)

[num,den] = rmodel(n)

[A,B,C,D] = rmodel(n)

[A,B,C,D] = rmodel(n,p,m)

Description rss(n) pr oduces a st able r andom n-t h or der model wit h one input and one

out put and r et ur ns t he model in t he st at e-space object sys.

rss(n,p) pr oduces a r andom nt h or der st able model wit h one input and p

out put s, and rss(n,m,p) pr oduces a r andom n-t h or der st able model wit h m

input s and p out put s. The out put sys is always a st at e-space model.

rss(n,p,m,s1,...,sn)pr oduces an s1-by-...-by-sn ar r ay of r andom n-t h

or der st able st at e-space models wit h m input s and p out put s.

Use tf, frd, or zpk t o conver t t he st at e-space object sys t o t r ansfer funct ion,

fr equency r esponse, or zer o-pole-gain for m.

rmodel(n) pr oduces a r andom n-t h or der st able model and r et ur ns eit her t he

t r ansfer funct ion numer at or num and denominat or den or t he st at e-space

mat r ices A, B, C, and D, depending on t he number of out put ar gument s. The

r esult ing model always has one input and one out put .

[A,B,C,D] = rmodel(n,m,p) pr oduces a st able r andom nt h or der st at e-space

model wit h m input s and p out put s.

rmodel, rss

11-190

Example Obt ain a st able r andom cont inuous LTI model wit h t hr ee st at es, t wo input s,

and t wo out put s by t yping

sys = rss(3,2,2)

a =

x1 x2 x3

x1 –0.54175 0.09729 0.08304

x2 0.09729 –0.89491 0.58707

x3 0.08304 0.58707 –1.95271

b =

u1 u2

x1 –0.88844 –2.41459

x2 0 –0.69435

x3 –0.07162 –1.39139

c =

x1 x2 x3

y1 0.32965 0.14718 0

y2 0.59854 –0.10144 0.02805

d =

u1 u2

y1 –0.87631 –0.32758

y2 0 0

Continuous-time system.

See Also drmodel, drss Gener at e st able r andom discr et e t est models

frd Conver t LTI syst ems t o fr equency r esponse for m

tf Conver t LTI syst ems t o t r ansfer funct ion for m

zpk Conver t LTI syst ems t o zer o-pole-gain for m

series

11-191

11ser ies

Purpose Ser ies connect ion of t wo LTI models

Syntax sys = series(sys1,sys2)

sys = series(sys1,sys2,outputs1,inputs2)

Description series connect s t wo LTI models in ser ies. This funct ion accept s any t ype of

LTI model. The t wo syst ems must be eit her bot h cont inuous or bot h discr et e

wit h ident ical sample t ime. St at ic gains ar e neut r al and can be specified as

r egular mat r ices.

sys = series(sys1,sys2) for ms t he basic ser ies connect ion shown below.

This command is equivalent t o t he dir ect mult iplicat ion

sys = sys2 * sys1

See “Mult iplicat ion” on page 3-13 for det ails on mult iplicat ion of LTI models.

sys = series(sys1,sys2,outputs1,inputs2) for ms t he mor e gener al ser ies

connect ion.

sys1

sys2

u

y

sys

sys1

sys2

y

1

u

2

v

2

z

1

sys

u

y

series

11-192

The index vect or s outputs1 and inputs2 indicat e which out put s of sys1 and

which input s of sys2 should be connect ed. The r esult ing model sys has

as input and as out put .

Example Consider a st at e-space syst em sys1 wit h five input s and four out put s and

anot her syst em sys2 wit h t wo input s and t hr ee out put s. Connect t he t wo

syst ems in ser ies by connect ing out put s 2 and 4 of sys1 wit h input s 1 and 2 of

sys2.

outputs1 = [2 4];

inputs2 = [1 2];

sys = series(sys1,sys2,outputs2,inputs1)

See Also append Append LTI syst ems

feedback Feedback connect ion

parallel Par allel connect ion

y

1

u

2

u

y

set

11-193

11set

Purpose Set or modify LTI model pr oper t ies

Syntax set(sys,'Property',Value)

set(sys,'Property1',Value1,'Property2',Value2,...)

set(sys,'Property')

set(sys)

Description set is used t o set or modify t he pr oper t ies of an LTI model (see “LTI Pr oper t ies”

on page 2-26 for backgr ound on LTI pr oper t ies). Like it s Handle Gr aphics

count er par t , set uses pr oper t y name/pr oper t y value pair s t o updat e pr oper t y

values.

set(sys,'Property',Value) assigns t he value Value t o t he pr oper t y of t he

LTI model sys specified by t he st r ing 'Property'. This st r ing can be t he full

pr oper t y name (for example, 'UserData') or any unambiguous case-insensit ive

abbr eviat ion (for example, 'user'). The specified pr oper t y must be compat ible

wit h t he model t ype. For example, if sys is a t r ansfer funct ion, Variable is a

valid pr oper t y but StateName is not (see “Model-Specific Pr oper t ies” on page

2-28 for det ails).

set(sys,'Property1',Value1,'Property2',Value2,...) set s mult iple

pr oper t y values wit h a single st at ement . Each pr oper t y name/pr oper t y value

pair updat es one par t icular pr oper t y.

set(sys,'Property') displays admissible values for t he pr oper t y specified by

'Property'. See “Pr oper t y Values” below for an over view of legit imat e LTI

pr oper t y values.

set(sys) displays all assignable pr oper t ies of sys and t heir admissible values.

Example Consider t he SISO st at e-space model cr eat ed by

sys = ss(1,2,3,4);

You can add an input delay of 0.1 second, label t he input as torque, r eset t he

mat r ix t o zer o, and st or e it s DC gain in t he 'Userdata' pr oper t y by

set(sys,'inputd',0.1,'inputn','torque','d',0,'user',dcgain(sys))

D

set

11-194

Not e t hat set does not r equir e any out put ar gument . Check t he r esult wit h get

by t yping

get(sys)

a: 1

b: 2

c: 3

d: 0

e: []

StateName: {''}

Ts: 0

InputDelay: 0.1

OutputDelay: 0

ioDelayMatrix: 0

InputName: {'torque'}

OutputName: {''}

InputGroup: {0x2 cell}

OutputGroup: {0x2 cell}

Notes: {}

UserData: -2

Property

Values

The following t able list s t he admissible values for each LTI pr oper t y. and

denot es t he number of input s and out put s of t he under lying LTI model. For

K-dimensional LTI ar r ays, let denot e t he ar r ay dimensions.

N

u

N

y

S

1

S

2

… S

K

, , ,

set

11-195

Table 11-15: LTI Properties

Property Name Admissible Property Values

Ts •0 (zer o) for cont inuous-t ime syst ems

•Sample t ime in seconds for discr et e-t ime syst ems

•–1 or [] for discr et e syst ems wit h unspecified sample t ime

Note : Reset t ing t he sample t ime pr oper t y does not alt er t he model dat a. Use

c2d, d2c, or d2d for discr et e/cont inuous and discr et e/discr et e conver sions.

ioDelayMatrix Input /Out put delays specified wit h

•Nonnegat ive r eal number s for cont inuous-t ime models (seconds)

•Int eger s for discr et e-t ime models (number of sample per iods)

•Scalar when all I/O pair s have t he same delay

• -by- mat r ix t o specify independent delay t imes for each I/O pair

•Ar r ay of size -by- -by- -by-. . .-by- t o specify differ ent I/O delays

for each model in an LTI ar r ay.

InputDelay Input delays specified wit h

•Nonnegat ive r eal number s for cont inuous-t ime models (seconds)

•Int eger s for discr et e-t ime models (number of sample per iods)

•Scalar when or syst em has unifor m input delay

•Vect or of lengt h t o specify independent delay t imes for each input

channel

•Ar r ay of size -by- -by- -by-. . .-by- t o specify differ ent input

delays for each model in an LTI ar r ay.

N

y

N

u

N

y

N

u

S

1

S

n

N

u

1 =

N

u

N

y

N

u

S

1

S

n

set

11-196

OutputDelay Out put delays specified wit h

•Nonnegat ive r eal number s for cont inuous-t ime models (seconds)

•Int eger s for discr et e-t ime models (number of sample per iods)

•Scalar when or syst em has unifor m out put delay

•Vect or of lengt h t o specify independent delay t imes for each out put

channel

•Ar r ay of size -by- -by- -by-. . .-by- t o specify differ ent out put

delays for each model in an LTI ar r ay.

Notes St r ing, ar r ay of st r ings, or cell ar r ay of st r ings

UserData Ar bit r ar y MATLAB var iable

InputName •St r ing for single-input syst ems, for example, 'thrust'

•Cell vect or of st r ings for mult i-input syst ems (wit h as many cells as input s),

for example, {'u';'w'} for a t wo-input syst em

•Padded ar r ay of st r ings wit h as many r ows as input s, for example,

['rudder ' ; 'aileron']

OutputName Same as InputName (wit h “input ” r eplaced by “out put ”)

InputGroup Cell ar r ay. See “Input Gr oups and Out put Gr oups” on page 2-37.

OutputGroup Same as InputGroup

Table 11-15: LTI Properties (Continued)

Property Name Admissible Property Values

N

y

1 =

N

y

N

y

N

u

S

1

S

n

Table 11-16: State-Space Model Properties

Property Name Admissible Property Values

StateName Same as InputName (wit h Input r eplaced by State)

a, b, c, d, e Real-valued st at e-space mat r ices (mult idimensional ar r ays, in t he case of

LTI ar r ays) wit h compat ible dimensions for t he number of st at es, input s,

and out put s. See “The Size of LTI Ar r ay Dat a for SS Models” on page 4-18.

set

11-197

Table 11-17: TF Model Properties

Property Name Admissible Property Values

num, den • Real-valued r ow vect or s for t he coefficient s of t he numer at or or

denominat or polynomials in t he SISO case. List t he coefficient s in

descending power s of t he var iable or by default , and in ascending

power s of when t he Variable pr oper t y is set t o 'q' or 'z^–1' (see

not e below).

• -by- cell ar r ays of r eal-valued r ow vect or s in t he MIMO case, for

example,

{[1 2];[1 0 3]} for a t wo-out put /one-input t r ansfer funct ion

• -by- -by- -by- -by- -dimensional r eal-valued cell ar r ays for

MIMO LTI ar r ays

Variable • St r ing 's' (default ) or 'p' for cont inuous-t ime syst ems

• St r ing 'z' (default ), 'q', or 'z^–1' for discr et e-t ime syst ems

s z

q z

1 –

=

N

y

N

u

N

y

N

u

S

1

… S

K

Table 11-18: ZPK Model Properties

Property Name Admissible Property Values

z, p • Vect or s of zer os and poles (eit her r eal-valued or complex conjugat e pair s of

t hem) in SISO case

• -by- cell ar r ays of vect or s (ent r ies ar e r eal-valued or in complex

conjugat e pair s) in MIMO case, for example, z = {[],[–1 0]} for a model

wit h t wo input s and one out put

• -by- -by- -by- -by- -dimensional cell ar r ays for MIMO LTI

ar r ays

Variable • St r ing 's' (default ) or 'p' for cont inuous-t ime syst ems

• St r ing 'z' (default ), 'q', or 'z^–1' for discr et e-t ime syst ems

N

y

N

u

N

y

N

u

S

1

… S

K

set

11-198

Remark For discr et e-t ime t r ansfer funct ions, t he convent ion used t o r epr esent t he

numer at or and denominat or depends on t he choice of var iable (see t he tf ent r y

for det ails). Like tf, t he synt ax for set changes t o r emain consist ent wit h t he

choice of var iable. For example, if t he Variable pr oper t y is set t o 'z' (t he

default ),

set(h,'num',[1 2],'den',[1 3 4])

pr oduces t he t r ansfer funct ion

However , if you change t he Variable t o 'z^–1' (or 'q') by

set(h,'Variable','z^–1'),

t he same command

set(h,'num',[1 2],'den',[1 3 4])

now int er pr et s t he r ow vect or s [1 2] and [1 3 4] as t he polynomials

and and pr oduces:

Table 11-19: FRD Model Properties

Property Name Admissible Property Values

Frequency Real-valued vect or of lengt h -by-1, wher e is t he number of

fr equencies

Response • -by- -by- -dimensional ar r ay of complex dat a for single LTI models

• -by- -by- -by- -by- -by- -dimensional ar r ay for LTI ar r ays

Units St r ing 'rad/s' (default ), or 'Hz'

N

f

N

f

N

y

N

u

N

f

N

y

N

u

N

f

S

1

… S

K

h z ( )

z 2 +

z

2

3z 4 + +

---------------------------- =

1 2z

1 –

+

1 3z

1 –

4z

2 –

+ +

set

11-199

Because t he r esult ing t r ansfer funct ions ar e differ ent , make sur e t o use t he

convent ion consist ent wit h your choice of var iable.

See Also get Access/quer y LTI model pr oper t ies

frd Specify a fr equency r esponse dat a model

ss Specify a st at e-space model

tf Specify a t r ansfer funct ion

zpk Specify a zer o-pole-gain model

h z

1 –

( )

1 2z

1 –

+

1 3z

1 –

4z

2 –

+ +

--------------------------------------- - z h z ( ) = =

sgrid

11-200

11sgrid

Purpose Gener at e an s-plane gr id of const ant damping fact or s and nat ur al fr equencies

Syntax sgrid

sgrid(z,wn)

Description sgrid gener at es a gr id of const ant damping fact or s fr om zer o t o one in st eps of

0.1 and nat ur al fr equencies fr om zer o t o 10 r ad/sec in st eps of one r ad/sec, and

plot s t he gr id over t he cur r ent axis. If t he cur r ent axis cont ains a cont inuous

s-plane r oot locus diagr am or pole-zer o map, sgrid dr aws t he gr id over t he plot .

sgrid(z,wn) plot s a gr id of const ant damping fact or and nat ur al fr equency

lines for t he damping fact or s and nat ur al fr equencies in t he vect or s z and wn,

r espect ively. If t he cur r ent axis cont ains a cont inuous s-plane r oot locus

diagr am or pole-zer o map, sgrid(z,wn) dr aws t he gr id over t he plot .

Example Plot s-plane gr id lines on t he r oot locus for t he following syst em.

You can do t his by t yping

H = tf([2 5 1],[1 2 3])

Transfer function:

2 s^2 + 5 s + 1

---------------

s^2 + 2 s + 3

rlocus(H)

sgrid

H s ( )

2s

2

5s 1 + +

s

2

2s 3 + +

------------------------------- =

sgrid

11-201

Limitations sgrid plot s t he gr id over t he cur r ent axis r egar dless of whet her t he axis

cont ains a r oot locus diagr am or pole-zer o map. Ther efor e, if t he cur r ent axes

cont ains, for example, a st ep r esponse, you may super impose a meaningless

s-plane gr id over t he plot . In addit ion, sgrid does not r escale t he axis limit s of

t he cur r ent axis. Ther efor e, t he s-plane gr id may not appear in t he plot if t he

left half of t he s-plane is not encompassed by t he axis limit s.

See Also pzmap Plot pole-zer o map

rlocus Plot r oot locus

zgrid Gener at e z-plane gr id lines

−3 −2.5 −2 −1.5 −1 −0.5 0 0.5 1

−1.5

−1

−0.5

0

0.5

1

1.5

Real Axis

I

m

a

g

A

x

i

s

sigma

11-202

11sigma

Purpose Singular values of t he fr equency r esponse of LTI models

Syntax sigma(sys)

sigma(sys,w)

sigma(sys,w,type)

sigma(sys1,sys2,...,sysN)

sigma(sys1,sys2,...,sysN,w)

sigma(sys1,sys2,...,sysN,w,type)

sigma(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

[sv,w] = sigma(sys)

sv = sigma(sys,w)

Description sigma calculat es t he singular values of t he fr equency r esponse of an LTI model.

For an FRD model, sys, sigma comput es t he singular values of sys.Response

at t he fr equencies, sys.frequency. For cont inuous-t ime TF, SS, or ZPK models

wit h t r ansfer funct ion , sigma comput es t he singular values of as

a funct ion of t he fr equency . For discr et e-t ime TF, SS, or ZPK models wit h

t r ansfer funct ion and sample t ime , sigma comput es t he singular

values of

for fr equencies bet ween 0 and t he Nyquist fr equency .

The singular values of t he fr equency r esponse ext end t he Bode magnit ude

r esponse for MIMO syst ems and ar e useful in r obust ness analysis. The

singular value r esponse of a SISO syst em is ident ical t o it s Bode magnit ude

r esponse. When invoked wit hout out put ar gument s, sigma pr oduces a singular

value plot on t he scr een.

sigma(sys) plot s t he singular values of t he fr equency r esponse of an ar bit r ar y

LTI model sys. This model can be cont inuous or discr et e, and SISO or MIMO.

The fr equency point s ar e chosen aut omat ically based on t he syst em poles and

zer os, or fr om sys.frequency if sys is an FRD.

sigma(sys,w) explicit ly specifies t he fr equency r ange or fr equency point s t o be

used for t he plot . To focus on a par t icular fr equency int er val [wmin,wmax], set

H s ( ) H j ω ( )

ω

H z ( ) T

s

H e

j ωT

s

( )

ω ω

N

π T

s

⁄ =

sigma

11-203

w = {wmin,wmax}. To use par t icular fr equency point s, set w t o t he

cor r esponding vect or of fr equencies. Use logspace t o gener at e logar it hmically

spaced fr equency vect or s. The fr equencies must be specified in r ad/sec.

sigma(sys,[],type) or sigma(sys,w,type) plot s t he following modified

singular value r esponses:

These opt ions ar e available only for squar e syst ems, t hat is, wit h t he same

number of input s and out put s.

To super impose t he singular value plot s of sever al LTI models on a single

figur e, use

sigma(sys1,sys2,...,sysN)

sigma(sys1,sys2,...,sysN,[],type) % modified SV plot

sigma(sys1,sys2,...,sysN,w) % specify frequency range/grid

The models sys1,sys2,...,sysN need not have t he same number of input s

and out put s. Each model can be eit her cont inuous- or discr et e-t ime. You can

also specify a dist inct ive color , linest yle, and/or mar ker for each syst em plot

wit h t he synt ax

sigma(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

See bode for an example.

When invoked wit h out put ar gument s,

[sv,w] = sigma(sys)

sv = sigma(sys,w)

r et ur n t he singular values sv of t he fr equency r esponse at t he fr equencies w.

For a syst em wit h Nu input and Ny out put s, t he ar r ay sv has min(Nu,Ny) r ows

and as many columns as fr equency point s (lengt h of w). The singular values at

t he fr equency w(k) ar e given by sv(:,k).

type = 1 Singular values of t he fr equency r esponse , wher e is

t he fr equency r esponse of sys.

type = 2 Singular values of t he fr equency r esponse .

type = 3 Singular values of t he fr equency r esponse .

H

1 –

H

I H +

I H

1 –

+

sigma

11-204

Remark If sys is an FRD model, sigma(sys,w), w can only include fr equencies in

sys.frequency.

Example Plot t he singular value r esponses of

and .

H s ( )

0

3s

s

2

s 10 + +

---------------------------

s 1 +

s 5 +

------------

2

s 6 +

------------

=

I H s ( ) +

sigma

11-205

You can do t his by t yping

H = [0 tf([3 0],[1 1 10]) ; tf([1 1],[1 5]) tf(2,[1 6])]

subplot(211)

sigma(H)

subplot(212)

sigma(H,[],2)

Algorithm sigma uses t he svd funct ion in MATLAB t o comput e t he singular values of a

complex mat r ix.

See Also bode Bode plot

evalfr Response at single complex fr equency

freqresp Fr equency r esponse comput at ion

ltiview LTI syst em viewer

Frequency (rad/sec)

S

i

n

g

u

l

a

r

V

a

l

u

e

s

(

d

B

)

Singular Values

10

−2

10

−1

10

0

10

1

10

2

−60

−40

−20

0

20

Frequency (rad/sec)

S

i

n

g

u

l

a

r

V

a

l

u

e

s

(

d

B

)

Singular Values

10

−2

10

−1

10

0

10

1

10

2

−40

−30

−20

−10

0

10

20

sigma

11-206

nichols Nichols plot

nyquist Nyquist plot

size

11-207

11size

Purpose Pr ovide t he out put /input /ar r ay dimensions of LTI models, t he model or der of

TF, SS, and ZPK models, and t he number of fr equencies of FRD models

Syntax size(sys)

d = size(sys)

Ny = size(sys,1)

Nu = size(sys,2)

Sk = size(sys,2+k)

Ns = size(sys,'order')

Nf = size(sys,'frequency')

Description When invoked wit hout out put ar gument s, size(sys) r et ur ns a vect or of t he

number of out put s and input s for a single LTI model. The lengt hs of t he ar r ay

dimensions ar e also included in t he r esponse t o size when sys is an LTI ar r ay.

size is t he over loaded ver sion of t he MATLAB funct ion size for LTI object s.

d = size(sys) r et ur ns:

•The r ow vect or d = [Ny Nu] for a single LTI model sys wit h Ny out put s and

Nu input s

•The r ow vect or d = [Ny Nu S1 S2 ... Sp] for an S1-by-S2-by-...-by-Sp ar r ay

of LTI models wit h Ny out put s and Nu input s

Ny = size(sys,1) r et ur ns t he number of out put s of sys.

Nu = size(sys,2) r et ur ns t he number of input s of sys.

Sk = size(sys,2+k) r et ur ns t he lengt h of t he k-t h ar r ay dimension when sys

is an LTI ar r ay.

Ns = size(sys,'order') r et ur ns t he model or der of a TF, SS, or ZPK model.

This is t he same as t he number of st at es for st at e-space models. When sys is

an LTI ar r ay of SS models wit h differ ing number s of st at es in each model:

•Ns is t he mult idimensional ar r ay of t he or der s of each of t he models in t he

LTI ar r ay.

•The dimensions of Ns ar e given by t he ar r ay dimensions of t he LTI ar r ay sys.

Nf = size(sys,'frequency') r et ur ns t he number of fr equencies when sys is

an FRD. This is t he same as t he lengt h of sys.frequency.

size

11-208

Example Consider t he r andom LTI ar r ay of st at e-space models

sys = rss(5,3,2,3);

It s dimensions ar e obt ained by t yping

size(sys)

3x1 array of state-space models

Each model has 3 outputs, 2 inputs, and 5 states.

See Also isempty Test if LTI model is empt y

issiso Test if LTI model is SISO

ndims Number of dimensions of an LTI ar r ay

sminreal

11-209

11sminr eal

Purpose Per for m model r educt ion based on st r uct ur e

Syntax msys = sminreal(sys)

Description msys = sminreal(sys) eliminat es t he st at es of t he st at e-space model sys t hat

don’t affect t he input /out put r esponse. All of t he st at es of t he r esult ing

st at e-space model msys ar e also st at es of sys and t he input /out put r esponse of

msys is equivalent t o t hat of sys.

sminreal eliminat es only st r uct ur ally non minimal st at es, i.e., st at es t hat can

be discar ded by looking only at har d zer o ent r ies in t he A, B, and C mat r ices.

Such st r uct ur ally nonminimal st at es ar ise, for example, when linear izing a

Simulink model t hat includes some unconnect ed st at e-space or t r ansfer

funct ion blocks.

Remark The model r esult ing fr om sminreal(sys) is not necessar ily minimal, and may

have a higher or der t han one r esult ing fr om minreal(sys). However ,

sminreal(sys) r et ains t he st at e st r uct ur e of sys, while, in gener al,

minreal(sys) does not .

Example Suppose you concat enat e t wo SS models, sys1 and sys2.

sys = [sys1,sys2];

This oper at ion is depict ed in t he diagr am below.

If you ext r act t he subsyst em sys1 fr om sys, wit h

sys(1,1)

+

y

u

v

sys1

sys2

sminreal

11-210

all of t he st at es of sys, including t hose of sys2 ar e r et ained. To eliminat e t he

unobser vable st at es fr om sys2, while r et aining t he st at es of sys1, t ype

sminreal(sys(1,1))

See Also minreal Model r educt ion by r emoving unobser vable/

uncont r ollable st at es or cancelling pole/zer o pair s

ss

11-211

11ss

Purpose Specify st at e-space models or conver t an LTI model t o st at e space

Syntax sys = ss(a,b,c,d)

sys = ss(a,b,c,d,Ts)

sys = ss(d)

sys = ss(a,b,c,d,ltisys)

sys = ss(a,b,c,d,'Property1',Value1,...,'PropertyN',ValueN)

sys = ss(a,b,c,d,Ts,'Property1',Value1,...,'PropertyN',ValueN)

sys_ss = ss(sys)

sys_ss = ss(sys,'minimal')

Description ss is used t o cr eat e r eal-valued st at e-space models (SS object s) or t o conver t

t r ansfer funct ion or zer o-pole-gain models t o st at e space.

Creation of State-Space Models

sys = ss(a,b,c,d) cr eat es t he cont inuous-t ime st at e-space model

For a model wit h Nx st at es, Ny out put s, and Nu input s:

•a is an Nx-by-Nx r eal-valued mat r ix.

•b is an Nx-by-Nu r eal-valued mat r ix.

•c is an Ny-by-Nx r eal-valued mat r ix.

•d is an Ny-by-Nu r eal-valued mat r ix.

The out put sys is an SS model t hat st or es t he model dat a (see “St at e-Space

Models” on page 2-14). If , you can simply set d t o t he scalar 0 (zer o),

r egar dless of t he dimension.

sys = ss(a,b,c,d,Ts) cr eat es t he discr et e-t ime model

x

·

Ax Bu + =

y Cx Du + =

D 0 =

x n 1 + [ ] Ax n [ ] Bu n [ ] + =

y n [ ] Cx n [ ] Du n [ ] + =

ss

11-212

wit h sample t ime Ts (in seconds). Set Ts = –1 or Ts = [] t o leave t he sample

t ime unspecified.

sys = ss(d) specifies a st at ic gain mat r ix and is equivalent t o

sys = ss([],[],[],d)

sys = ss(a,b,c,d,ltisys) cr eat es a st at e-space model wit h gener ic LTI

pr oper t ies inher it ed fr om t he LTI model ltisys (including t he sample t ime).

See “Gener ic Pr oper t ies” on page 2-26 for an over view of gener ic LTI

pr oper t ies.

See “Building LTI Ar r ays” on page 4-12 for infor mat ion on how t o build ar r ays

of st at e-space models.

Any of t he pr evious synt axes can be followed by pr oper t y name/pr oper t y value

pair s.

'PropertyName',PropertyValue

Each pair specifies a par t icular LTI pr oper t y of t he model, for example, t he

input names or some not es on t he model hist or y. See t he set ent r y and t he

example below for det ails. Not e t hat

sys = ss(a,b,c,d,'Property1',Value1,...,'PropertyN',ValueN)

is equivalent t o t he sequence of commands.

sys = ss(a,b,c,d)

set(sys,'Property1',Value1,...,'PropertyN',ValueN)

Conversion to State Space

sys_ss = ss(sys) conver t s an ar bit r ar y TF or ZPK model sys t o st at e space.

The out put sys_ss is an equivalent st at e-space model (SS object ). This

oper at ion is known as state-space realization.

sys_ss = ss(sys,'minimal') pr oduces a st at e-space r ealizat ion wit h no

uncont r ollable or unobser vable st at es. This is equivalent t o sys_ss =

minreal(ss(sys)).

D

ss

11-213

Examples Example 1

The command

sys = ss(A,B,C,D,0.05,'statename',{'position' 'velocity'},...

'inputname','force',...

'notes','Created 10/15/96')

cr eat es a discr et e-t ime model wit h mat r ices and sample t ime 0.05

second. This model has t wo st at es labeled position and velocity, and one

input labeled force (t he dimensions of should be consist ent wit h

t hese number s of st at es and input s). Finally, a not e is at t ached wit h t he dat e

of cr eat ion of t he model.

Example 2

Comput e a st at e-space r ealizat ion of t he t r ansfer funct ion

by t yping

H = [tf([1 1],[1 3 3 2]) ; tf([1 0 3],[1 1 1])];

sys = ss(H);

size(sys)

State-space model with 2 outputs, 1 input, and 5 states.

Not e t hat t he number of st at es is equal t o t he cumulat ive or der of t he SISO

ent r ies of H(s).

To obt ain a minimal r ealizat ion of H(s), t ype

sys = ss(H,'min');

size(sys)

State-space model with 2 outputs, 1 input, and 3 states.

A B C D , , ,

A B C D , , ,

H s ( )

s 1 +

s

3

3s

2

3s 2 + + +

-------------------------------------------

s

2

3 +

s

2

s 1 + +

------------------------

=

ss

11-214

The r esult ing st at e-space model or der has or der t hr ee, t he minimum number

of st at es needed t o r epr esent H(s). This can be seen dir ect ly by fact or ing H(s)

as t he pr oduct of a fir st or der syst em wit h a second or der one.

See Also dss Specify descr ipt or st at e-space models.

frd Specify FRD models or conver t t o an FRD.

get Get pr oper t ies of LTI models.

set Set pr oper t ies of LTI models.

ssdata Ret r ieve t he mat r ices of st at e-space model.

tf Specify t r ansfer funct ions or conver t t o TF.

zpk Specify zer o-pole-gain models or conver t t o ZPK.

H s ( )

1

s 2 +

------------ 0

0 1

s 1 +

s

2

s 1 + +

------------------------

s

2

3 +

s

2

s 1 + +

------------------------

=

A B C D , , ,

ss2ss

11-215

11ss2ss

Purpose St at e coor dinat e t r ansfor mat ion for st at e-space models

Syntax sysT = ss2ss(sys,T)

Description Given a st at e-space model sys wit h equat ions

(or t heir discr et e-t ime count er par t ), ss2ss per for ms t he similar it y

t r ansfor mat ion on t he st at e vect or and pr oduces t he equivalent

st at e-space model sysT wit h equat ions.

sysT = ss2ss(sys,T) r et ur ns t he t r ansfor med st at e-space model sysT given

sys and t he st at e coor dinat e t r ansfor mat ion T. The model sys must be in

st at e-space for m and t he mat r ix T must be inver t ible. ss2ss is applicable t o

bot h cont inuous- and discr et e-t ime models.

Example Per for m a similar it y t r ansfor m t o impr ove t he condit ioning of t he mat r ix.

T = balance(sys.a)

sysb = ss2ss(sys,inv(T))

See ssbal for a mor e dir ect appr oach.

See Also balreal Gr amian-based I/O balancing

canon Canonical st at e-space r ealizat ions

ssbal Balancing of st at e-space models using diagonal

similar it y t r ansfor mat ions

x

·

Ax Bu + =

y Cx Du + =

x T x = x

x

·

T AT

1 –

x T Bu + =

y CT

1 –

x Du + =

A

ssbal

11-216

11ssbal

Purpose Balance st at e-space models using a diagonal similar it y t r ansfor mat ion

Syntax [sysb,T] = ssbal(sys)

[sysb,T] = ssbal(sys,condT)

Description Given a st at e-space model sys wit h mat r ices ,

[sysb,T] = ssbal(sys)

comput es a diagonal similar it y t r ansfor mat ion and a scalar such t hat

has appr oximat ely equal r ow and column nor ms. ssbal r et ur ns t he balanced

model sysb wit h mat r ices

and t he st at e t r ansfor mat ion wher e is t he new st at e.

[sysb,T] = ssbal(sys,condT) specifies an upper bound condT on t he

condit ion number of . Since balancing wit h ill-condit ioned can

inadver t ent ly magnify r ounding er r or s, condT gives cont r ol over t he wor st -case

r oundoff amplificat ion fact or . The default value is condT=1/eps.

Example Consider t he cont inuous-t ime st at e-space model wit h t he following dat a.

a = [1 1e4 1e2;0 1e2 1e5;10 1 0];

b = [1;1;1];

c = [0.1 10 1e2];

sys = ss(a,b,c,0)

A B C D , , , ( )

T α

T AT

1 –

T B α ⁄

αCT

1 –

0

T AT

1 –

T B α ⁄ αCT

1 –

D , , , ( )

x T x = x

T T

A

1 10

4

10

2

0 10

2

10

5

10 1 0

, = B

1

1

1

, = C

0.1 10 100

=

ssbal

11-217

Balance t his model wit h ssbal by t yping

ssbal(sys)

a =

x1 x2 x3

x1 1 2500 0.39063

x2 0 100 1562.5

x3 2560 64 0

b =

u1

x1 0.125

x2 0.5

x3 32

c =

x1 x2 x3

y1 0.8 20 3.125

d =

u1

y1 0

Continuous-time system.

Dir ect inspect ion shows t hat t he r ange of numer ical values has been

compr essed by a fact or 100 and t hat t he and mat r ices now have near ly

equal nor ms.

Algorithm ssbal uses t he MATLAB funct ion balance t o comput e and .

See Also balreal Gr amian-based I/O balancing

ss2ss St at e coor dinat e t r ansfor mat ion

B C

T α

ssdata

11-218

11ssdat a

Purpose Quick access t o st at e-space model dat a

Syntax [a,b,c,d] = ssdata(sys)

[a,b,c,d,Ts] = ssdata(sys)

Description [a,b,c,d] = ssdata(sys) ext r act s t he mat r ix (or mult idimensional ar r ay)

dat a fr om t he st at e-space model (LTI ar r ay) sys. If sys is a

t r ansfer funct ion or zer o-pole-gain model (LTI ar r ay), it is fir st conver t ed t o

st at e space. See Table 11-16, “St at e-Space Model Pr oper t ies,” on page 11-196

for mor e infor mat ion on t he for mat of st at e-space model dat a.

[a,b,c,d,Ts] = ssdata(sys) r et ur ns t he sample t ime Ts in addit ion t o a, b,

c, and d.

You can access t he r emaining LTI pr oper t ies of sys wit h get or by dir ect

r efer encing, for example,

sys.statename

See Also dssdata Quick access t o descr ipt or st at e-space dat a

get Get pr oper t ies of LTI models

set Set model pr oper t ies

ss Specify st at e-space models

tfdata Quick access t o t r ansfer funct ion dat a

zpkdata Quick access t o zer o-pole-gain dat a

A B C D , , , ( )

stack

11-219

11st ack

Purpose Build an LTI ar r ay by st acking LTI models or LTI ar r ays along ar r ay

dimensions of an LTI ar r ay

Syntax sys = stack(arraydim,sys1,sys2,...)

Description sys = stack(arraydim,sys1,sys2,...) pr oduces an ar r ay of LTI models sys

by st acking (concat enat ing) t he LTI models (or LTI ar r ays) sys1,sys2,...

along t he ar r ay dimension arraydim. All models must have t he same number

of input s and out put s (t he same I/O dimensions). The I/O dimensions ar e not

count ed in t he ar r ay dimensions. See “Dimensions, Size, and Shape of an LTI

Ar r ay” on page 4-7, and “Building LTI Ar r ays Using t he st ack Funct ion” on

page 4-15 for mor e infor mat ion.

Example If sys1 and sys2 ar e t wo LTI models wit h t he same I/O dimensions:

•stack(1,sys1,sys2) pr oduces a 2-by-1 LTI ar r ay.

•stack(2,sys1,sys2) pr oduces a 1-by-2 LTI ar r ay.

•stack(3,sys1,sys2) pr oduces a 1-by-1-by-2 LTI ar r ay.

step

11-220

11st ep

Purpose St ep r esponse of LTI syst ems

Syntax step(sys)

step(sys,t)

step(sys1,sys2,...,sysN)

step(sys1,sys2,...,sysN,t)

step(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

[y,t,x] = step(sys)

Description step calculat es t he unit st ep r esponse of a linear syst em. Zer o init ial st at e is

assumed in t he st at e-space case. When invoked wit h no out put ar gument s, t his

funct ion plot s t he st ep r esponse on t he scr een.

step(sys) plot s t he st ep r esponse of an ar bit r ar y LTI model sys. This model

can be cont inuous or discr et e, and SISO or MIMO. The st ep r esponse of

mult i-input syst ems is t he collect ion of st ep r esponses for each input channel.

The dur at ion of simulat ion is det er mined aut omat ically based on t he syst em

poles and zer os.

step(sys,t) set s t he simulat ion hor izon explicit ly. You can specify eit her a

final t ime t = Tfinal (in seconds), or a vect or of evenly spaced t ime samples

of t he for m

t = 0:dt:Tfinal

For discr et e syst ems, t he spacing dt should mat ch t he sample per iod. For

cont inuous syst ems, dt becomes t he sample t ime of t he discr et ized simulat ion

model (see “Algor it hm”), so make sur e t o choose dt small enough t o capt ur e

t r ansient phenomena.

To plot t he st ep r esponses of sever al LTI models sys1,..., sysN on a single

figur e, use

step(sys1,sys2,...,sysN)

step(sys1,sys2,...,sysN,t)

step

11-221

All syst ems must have t he same number of input s and out put s but may

ot her wise be a mix of cont inuous- and discr et e-t ime syst ems. This synt ax is

useful t o compar e t he st ep r esponses of mult iple syst ems.

You can also specify a dist inct ive color , linest yle, and/or mar ker for each

syst em. For example,

step(sys1,'y:',sys2,'g--')

plot s t he st ep r esponse of sys1 wit h a dot t ed yellow line and t he st ep r esponse

of sys2 wit h a gr een dashed line.

When invoked wit h out put ar gument s,

[y,t] = step(sys)

[y,t,x] = step(sys) % for state-space models only

y = step(sys,t)

r et ur n t he out put r esponse y, t he t ime vect or t used for simulat ion, and t he

st at e t r aject or ies x (for st at e-space models only). No plot is dr awn on t he

scr een. For single-input syst ems, y has as many r ows as t ime samples (lengt h

of t), and as many columns as out put s. In t he mult i-input case, t he st ep

r esponses of each input channel ar e st acked up along t he t hir d dimension of y.

The dimensions of y ar e t hen

and y(:,:,j) gives t he r esponse t o a unit st ep command inject ed in t he jt h

input channel. Similar ly, t he dimensions of x ar e

Example Plot t he st ep r esponse of t he following second-or der st at e-space model.

lengt h of t ( ) number of out put s ( ) number of input s ( ) × ×

lengt h of t ( ) number of st at es ( ) number of input s ( ) × ×

step

11-222

a = [–0.5572 –0.7814;0.7814 0];

b = [1 –1;0 2];

c = [1.9691 6.4493];

sys = ss(a,b,c,0);

step(sys)

The left plot shows t he st ep r esponse of t he fir st input channel, and t he r ight

plot shows t he st ep r esponse of t he second input channel.

x

·

1

x

·

2

0.5572 – 0.7814 –

0.7814 0

x

1

x

2

1 1 –

0 2

u

1

u

2

+ =

y

1.9691 6.4493

x

1

x

2

=

Time (sec.)

A

m

p

l

i

t

u

d

e

Step Response

0 5 10 15 20

−4

−2

0

2

4

6

8

10

12

From: U1

0 5 10 15 20

From: U2

step

11-223

Algorithm Cont inuous-t ime models ar e conver t ed t o st at e space and discr et ized using

zer o-or der hold on t he input s. The sampling per iod is chosen aut omat ically

based on t he syst em dynamics, except when a t ime vect or t = 0:dt:Tf is

supplied (dt is t hen used as sampling per iod).

See Also impulse Impulse r esponse

initial Fr ee r esponse t o init ial condit ion

lsim Simulat e r esponse t o ar bit r ar y input s

ltiview LTI syst em viewer

tf

11-224

11t f

Purpose Specify t r ansfer funct ions or conver t LTI model t o t r ansfer funct ion for m

Syntax sys = tf(num,den)

sys = tf(num,den,Ts)

sys = tf(M)

sys = tf(num,den,ltisys)

sys = tf(num,den,'Property1',Value1,...,'PropertyN',ValueN)

sys = tf(num,den,Ts,'Property1',Value1,...,'PropertyN',ValueN)

sys = tf('s')

sys = tf('z')

tfsys = tf(sys)

tfsys = tf(sys,'inv') % for state-space sys only

Description tf is used t o cr eat e r eal-valued t r ansfer funct ion models (TF object s) or t o

conver t st at e-space or zer o-pole-gain models t o t r ansfer funct ion for m.

Creation of Transfer Functions

sys = tf(num,den) cr eat es a cont inuous-t ime t r ansfer funct ion wit h

numer at or (s) and denominat or (s) specified by num and den. The out put sys is a

TF object st or ing t he t r ansfer funct ion dat a (see “Tr ansfer Funct ion Models” on

page 2-8).

In t he SISO case, num and den ar e t he r eal-valued r ow vect or s of numer at or and

denominat or coefficient s or der ed in descending power s of . These t wo vect or s

need not have equal lengt h and t he t r ansfer funct ion need not be pr oper . For

example, h = tf([1 0],1) specifies t he pur e der ivat ive .

To cr eat e MIMO t r ansfer funct ions, specify t he numer at or and denominat or of

each SISO ent r y. In t his case:

•num and den ar e cell ar r ays of r ow vect or s wit h as many r ows as out put s and

as many columns as input s.

• The r ow vect or s num{i,j} and den{i,j} specify t he numer at or and

denominat or of t he t r ansfer funct ion fr om input j t o out put i (wit h t he SISO

convent ion).

s

h s ( ) s =

tf

11-225

If all SISO ent r ies of a MIMO t r ansfer funct ion have t he same denominat or ,

you can set den t o t he r ow vect or r epr esent at ion of t his common denominat or .

See “Examples” for mor e det ails.

sys = tf(num,den,Ts) cr eat es a discr et e-t ime t r ansfer funct ion wit h sample

t ime Ts (in seconds). Set Ts = –1 or Ts = [] t o leave t he sample t ime

unspecified. The input ar gument s num and den ar e as in t he cont inuous-t ime

case and must list t he numer at or and denominat or coefficient s in descending

power s of .

sys = tf(M) cr eat es a st at ic gain M (scalar or mat r ix).

sys = tf(num,den,ltisys) cr eat es a t r ansfer funct ion wit h gener ic LTI

pr oper t ies inher it ed fr om t he LTI model ltisys (including t he sample t ime).

See “Gener ic Pr oper t ies” on page 2-26 for an over view of gener ic LTI

pr oper t ies.

Ther e ar e sever al ways t o cr eat e LTI ar r ays of t r ansfer funct ions. To cr eat e

ar r ays of SISO or MIMO TF models, eit her specify t he numer at or and

denominat or of each SISO ent r y using mult idimensional cell ar r ays, or use a

for loop t o successively assign each TF model in t he ar r ay. See “Building LTI

Ar r ays” on page 4-12 for mor e infor mat ion.

Any of t he pr evious synt axes can be followed by pr oper t y name/pr oper t y value

pair s

'Property',Value

Each pair specifies a par t icular LTI pr oper t y of t he model, for example, t he

input names or t he t r ansfer funct ion var iable. See set ent r y and t he example

below for det ails. Not e t hat

sys = tf(num,den,'Property1',Value1,...,'PropertyN',ValueN)

is a shor t cut for

sys = tf(num,den)

set(sys,'Property1',Value1,...,'PropertyN',ValueN)

Transfer Functions as Rational Expressions in s or z

You can also use r eal-valued r at ional expr essions t o cr eat e a TF model. To do

so, fir st t ype eit her :

z

tf

11-226

•s = tf('s') t o specify a TF model using a r at ional funct ion in t he Laplace

var iable, s.

•z = t f('z',Ts) t o specify a TF model wit h sample t ime Ts using a r at ional

funct ion in t he discr et e-t ime var iable, z.

Once you specify eit her of t hese var iables, you can specify TF models dir ect ly

as r at ional expr essions in t he var iable s or z by ent er ing your t r ansfer funct ion

as a r at ional expr ession in eit her s or z.

Conversion to Transfer Function

tfsys = tf(sys) conver t s an ar bit r ar y SS or ZPK LTI model sys t o t r ansfer

funct ion for m. The out put tfsys (TF object ) is t he t r ansfer funct ion of sys. By

default , tf uses zero t o comput e t he numer at or s when conver t ing a st at e-space

model t o t r ansfer funct ion for m. Alt er nat ively,

tfsys = tf(sys,'inv')

uses inver sion for mulas for st at e-space models t o der ive t he numer at or s. This

algor it hm is fast er but less accur at e for high-or der models wit h low gain at

.

Examples Example 1

Cr eat e t he t wo-out put /one-input t r ansfer funct ion

wit h input current and out put s torque and ang velocity.

s 0 =

H p ( )

p 1 +

p

2

2p 2 + +

-----------------------------

1

p

---

=

tf

11-227

To do t his, t ype

num = {[1 1] ; 1}

den = {[1 2 2] ; [1 0]}

H = tf(num,den,'inputn','current',...

'outputn',{'torque' 'ang. velocity'},...

'variable','p')

Transfer function from input "current" to output...

p + 1

torque: -------------

p^2 + 2 p + 2

1

ang. velocity: -

p

Not e how set t ing t he 'variable' pr oper t y t o 'p' causes t he r esult t o be

displayed as a t r ansfer funct ion of t he var iable .

Example 2

To use a r at ional expr ession t o cr eat e a SISO TF model, t ype

s = tf('s');

H = s/(s^2 + 2*s +10);

This pr oduces t he same t r ansfer funct ion as

h = t f([1 0],[1 2 10]);

Example 3

Specify t he discr et e MIMO t r ansfer funct ion

p

H z ( )

1

z 0.3 +

-----------------

z

z 0.3 +

-----------------

z – 2 +

z 0.3 +

-----------------

3

z 0.3 +

-----------------

=

tf

11-228

wit h common denominat or and sample t ime of 0.2 seconds.

nums = {1 [1 0];[–1 2] 3}

Ts = 0.2

H = tf(nums,[1 0.3],Ts) % Note: row vector for common den. d(z)

Example 4

Comput e t he t r ansfer funct ion of t he st at e-space model wit h t he following dat a.

To do t his, t ype

sys = ss([–2 –1;1 –2],[1 1;2 –1],[1 0],[0 1])

tf(sys)

Transfer function from input 1 to output:

s

-------------

s^2 + 4 s + 5

Transfer function from input 2 to output:

s^2 + 5 s + 8

-------------

s^2 + 4 s + 5

Example 5

You can use a for loop t o specify a 10-by-1 ar r ay of SISO TF models.

s = tf('s')

H = tf(zeros(1,1,10));

for k=1:10,

H(:,:,k) = k/(s^2+s+k);

end

The fir st st at ement pr e-allocat es t he TF ar r ay and fills it wit h zer o t r ansfer

funct ions.

Discrete-Time

Conventions

The cont r ol and digit al signal pr ocessing (DSP) communit ies t end t o use

differ ent convent ions t o specify discr et e t r ansfer funct ions. Most cont r ol

d z ( ) z 0.3 + =

A

2 – 1 –

1 2 –

, = B

1 1

2 1 –

, = C

1 0

, = D

0 1

=

tf

11-229

engineer s use t he var iable and or der t he numer at or and denominat or t er ms

in descending power s of , for example,

The polynomials and ar e t hen specified by t he r ow vect or s

[1 0 0] and [1 2 3], r espect ively. By cont r ast , DSP engineer s pr efer t o wr it e

t his t r ansfer funct ion as

and specify it s numer at or as 1 (inst ead of [1 0 0]) and it s denominat or as

[1 2 3].

tf swit ches convent ion based on your choice of var iable (value of t he

'Variable' pr oper t y).

For example,

g = tf([1 1],[1 2 3],0.1)

specifies t he discr et e t r ansfer funct ion

because is t he default var iable. In cont r ast ,

h = tf([1 1],[1 2 3],0.1,'variable','z^–1')

Variable Convention

'z' (default ) Use t he r ow vect or [ak ... a1 a0] t o specify t he

polynomial (coefficient s or der ed in

descending power s of ).

'z^–1', 'q' Use t he r ow vect or [b0 b1 ... bk] t o specify t he

polynomial (coefficient s in

ascending power s of or ).

z

z

h z ( )

z

2

z

2

2z 3 + +

---------------------------- =

z

2

z

2

2z 3 + +

h z

1 –

( )

1

1 2z

1 –

3z

2 –

+ +

--------------------------------------- - =

a

k

z

k

... a

1

z a

0

+ + +

z

b

0

b

1

z

1 –

... b

k

z

k –

+ + +

z

1 –

q

g z ( )

z 1 +

z

2

2z 3 + +

---------------------------- =

z

tf

11-230

uses t he DSP convent ion and cr eat es

See also filt for dir ect specificat ion of discr et e t r ansfer funct ions using t he

DSP convent ion.

Not e t hat tf st or es dat a so t hat t he numer at or and denominat or lengt hs ar e

made equal. Specifically, tf st or es t he values

num = [0 1 1]; den = [1 2 3]

for g (t he numer at or is padded wit h zer os on t he left ) and t he values

num = [1 1 0]; den = [1 2 3]

for h (t he numer at or is padded wit h zer os on t he r ight ).

Algorithm tf uses t he MATLAB funct ion poly t o conver t zer o-pole-gain models, and t he

funct ions zero and pole t o conver t st at e-space models.

See Also filt Specify discr et e t r ansfer funct ions in DSP for mat

frd Specify a fr equency r esponse dat a model

get Get pr oper t ies of LTI models

set Set pr oper t ies of LTI models

ss Specify st at e-space models or conver t t o st at e space

tfdata Ret r ieve t r ansfer funct ion dat a

zpk Specify zer o-pole-gain models or conver t t o ZPK

h z

1 –

( )

1 z

1 –

+

1 2z

1 –

3z

2 –

+ +

--------------------------------------- - z g z ( ) = =

tfdata

11-231

11t fdat a

Purpose Quick access t o t r ansfer funct ion dat a

Syntax [num,den] = tfdata(sys)

[num,den] = tfdata(sys,'v')

[num,den,Ts] = tfdata(sys)

Description [num,den] = tfdata(sys) r et ur ns t he numer at or (s) and denominat or (s) of

t he t r ansfer funct ion for t he TF, SS or ZPK model (or LTI ar r ay of TF, SS or

ZPK models) sys. For single LTI models, t he out put s num and den of tfdata ar e

cell ar r ays wit h t he following char act er ist ics:

•num and den have as many r ows as out put s and as many columns as input s.

•The (i,j) ent r ies num{i,j} and den{i,j} ar e r ow vect or s specifying t he

numer at or and denominat or coefficient s of t he t r ansfer funct ion fr om input

j t o out put i. These coefficient s ar e or der ed in descending power s of or .

For ar r ays sys of LTI models, num and den ar e mult idimensional cell ar r ays

wit h t he same sizes as sys.

If sys is a st at e-space or zer o-pole-gain model, it is fir st conver t ed t o t r ansfer

funct ion for m using tf. See Table 11-15, “LTI Pr oper t ies,” on page 11-195 for

mor e infor mat ion on t he for mat of t r ansfer funct ion model dat a.

For SISO t r ansfer funct ions, t he synt ax

[num,den] = tfdata(sys,'v')

for ces tfdata t o r et ur n t he numer at or and denominat or dir ect ly as r ow vect or s

r at her t han as cell ar r ays (see example below).

[num,den,Ts] = tfdata(sys) also r et ur ns t he sample t ime Ts.

You can access t he r emaining LTI pr oper t ies of sys wit h get or by dir ect

r efer encing, for example,

sys.Ts

sys.variable

Example Given t he SISO t r ansfer funct ion

h = tf([1 1],[1 2 5])

s z

tfdata

11-232

you can ext r act t he numer at or and denominat or coefficient s by t yping

[num,den] = tfdata(h,'v')

num =

0 1 1

den =

1 2 5

This synt ax r et ur ns t wo r ow vect or s.

If you t ur n h int o a MIMO t r ansfer funct ion by t yping

H = [h ; tf(1,[1 1])]

t he command

[num,den] = tfdata(H)

now r et ur ns t wo cell ar r ays wit h t he numer at or /denominat or dat a for each

SISO ent r y. Use celldisp t o visualize t his dat a. Type

celldisp(num)

and MATLAB r et ur ns t he numer at or vect or s of t he ent r ies of H.

num{1} =

0 1 1

num{2} =

0 1

Similar ly, for t he denominat or s, t ype

celldisp(den)

den{1} =

1 2 5

den{2} =

1 1

See Also get Get pr oper t ies of LTI models

ssdata Quick access t o st at e-space dat a

tfdata

11-233

tf Specify t r ansfer funct ions

zpkdata Quick access t o zer o-pole-gain dat a

totaldelay

11-234

11t ot aldelay

Purpose Ret ur n t he t ot al combined I/O delays for an LTI model

Syntax td = totaldelay(sys)

Description td = totaldelay(sys) r et ur ns t he t ot al combined I/O delays for an LTI model

sys. The mat r ix td combines cont r ibut ions fr om t he InputDelay, OutputDelay,

and ioDelayMatrix pr oper t ies, (see set on page 11-193 or t ype ltiprops for

det ails on t hese pr oper t ies).

Delays ar e expr essed in seconds for cont inuous-t ime models, and as int eger

mult iples of t he sample per iod for discr et e-t ime models. To obt ain t he delay

t imes in seconds, mult iply td by t he sample t ime sys.Ts.

Example sys = tf(1,[1 0]); % TF of 1/s

sys.inputd = 2; % 2 sec input delay

sys.outputd = 1.5; % 1.5 sec output delay

td = totaldelay(sys)

td =

3.5000

The r esult ing I/O map is

This is equivalent t o assigning an I/O delay of 3.5 seconds t o t he or iginal model

sys.

See Also delay2z Change t r ansfer funct ions of discr et e-t ime LTI models

wit h delays t o r at ional funct ions or absor bs FRD delays

int o t he fr equency r esponse phase infor mat ion

hasdelay Tr ue for LTI models wit h delays

e

2s – 1

s

---e

1.5s –

× e

3.5s – 1

s

--- =

zero

11-235

11zer o

Purpose Tr ansmission zer os of LTI models

Syntax z = zero(sys)

[z,gain] = zero(sys)

Description zero comput es t he zer os of SISO syst ems and t he t r ansmission zer os of MIMO

syst ems. For a MIMO syst em wit h mat r ices , t he t r ansmission

zer os ar e t he complex values for which t he nor mal r ank of

dr ops.

z = zero(sys) r et ur ns t he (t r ansmission) zer os of t he LTI model sys as a

column vect or .

[z,gain] = zero(sys) also r et ur ns t he gain (in t he zer o-pole-gain sense) if

sys is a SISO syst em.

Algorithm The t r ansmission zer os ar e comput ed using t he algor it hm in [1].

See Also pole Comput e t he poles of an LTI model

pzmap Comput e t he pole-zer o map

References [1] Emami-Naeini, A. and P. Van Door en, “Comput at ion of Zer os of Linear

Mult ivar iable Syst ems,” Automatica, 18 (1982), pp. 415–430.

A B C D , , , ( )

λ

A λI – B

C D

zgrid

11-236

11zgr id

Purpose Gener at e a z-plane gr id of const ant damping fact or s and nat ur al fr equencies

Syntax zgrid

zgrid(z,wn)

Description zgrid gener at es a gr id of const ant damping fact or s fr om zer o t o one in st eps of

0.1 and nat ur al fr equencies fr om zer o t o in st eps of , and plot s t he gr id

over t he cur r ent axis. If t he cur r ent axis cont ains a discr et e z-plane r oot locus

diagr am or pole-zer o map, zgrid dr aws t he gr id over t he plot wit hout alt er ing

t he cur r ent axis limit s.

zgrid(z,wn) plot s a gr id of const ant damping fact or and nat ur al fr equency

lines for t he damping fact or s and nor malized nat ur al fr equencies in t he vect or s

z and wn, r espect ively. If t he cur r ent axis cont ains a discr et e z-plane r oot locus

diagr am or pole-zer o map, zgrid(z,wn) dr aws t he gr id over t he plot . The

fr equency lines for unnor malized (t r ue) fr equencies can be plot t ed using

zgrid(z,wn/Ts)

wher e Ts is t he sample t ime.

zgrid([],[]) dr aws t he unit cir cle.

Example Plot z-plane gr id lines on t he r oot locus for t he syst em

by t yping

H = tf([2 –3.4 1.5],[1 –1.6 0.8],–1)

Transfer function:

2 z^2 – 3.4 z + 1.5

-------------------

z^2 – 1.6 z + 0.8

Sampling time: unspecified

π π 10 ⁄

H z ( )

2z

2

3.4z – 1.5 +

z

2

1.6z – 0.8 +

----------------------------------------- =

zgrid

11-237

To see t he z-plane gr id on t he r oot locus plot , t ype

rlocus(H)

zgrid

axis('square')

Limitations zgrid plot s t he gr id over t he cur r ent axis r egar dless of whet her t he axis

cont ains a r oot locus diagr am or pole-zer o map. Ther efor e, if t he cur r ent axis

cont ains, for example, a st ep r esponse, you may super impose a meaningless

z-plane gr id over t he plot .

See Also pzmap Plot pole-zer o map of LTI syst ems

rlocus Plot r oot locus

sgrid Gener at e s-plane gr id lines

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Real Axis

I

m

a

g

A

x

i

s

zpk

11-238

11zpk

Purpose Specify zer o-pole-gain models or conver t LTI model t o zer o-pole-gain for m

Syntax sys = zpk(z,p,k)

sys = zpk(z,p,k,Ts)

sys = zpk(M)

sys = zpk(z,p,k,ltisys)

sys = zpk(z,p,k,'Property1',Value1,...,'PropertyN',ValueN)

sys = zpk(z,p,k,Ts,'Property1',Value1,...,'PropertyN',ValueN)

sys = zpk('s')

sys = zpk('z')

zsys = zpk(sys)

zsys = zpk(sys,'inv') % for state-space sys only

Description zpk is used t o cr eat e zer o-pole-gain models (ZPK object s) or t o conver t TF or SS

models t o zer o-pole-gain for m.

Creation of Zero-Pole-Gain Models

sys = zpk(z,p,k) cr eat es a cont inuous-t ime zer o-pole-gain model wit h zer os

z, poles p, and gain(s) k. The out put sys is a ZPK object st or ing t he model dat a

(see “LTI Object s” on page 2-3).

In t he SISO case, z and p ar e t he vect or s of r eal or complex conjugat e zer os and

poles, and k is t he r eal-valued scalar gain.

Set z or p t o [] for syst ems wit hout zer os or poles. These t wo vect or s need not

have equal lengt h and t he model need not be pr oper (t hat is, have an excess of

poles).

You can also use r at ional expr essions t o cr eat e a ZPK model. To do so, use

eit her :

h s ( ) k

s z 1 ( ) – ( ) s z 2 ( ) – ( )... s z m ( ) – ( )

s p 1 ( ) – ( ) s p 2 ( ) – ( )... s p n ( ) – ( )

---------------------------------------------------------------------------------- =

zpk

11-239

•s = zpk('s') t o specify a ZPK model fr om a r at ional t r ansfer funct ion of t he

Laplace var iable, s.

•z = zpk('z',Ts) t o specify a ZPK model wit h sample t ime Ts fr om a r at ional

t r ansfer funct ion of t he discr et e-t ime var iable, z.

Once you specify eit her of t hese var iables, you can specify ZPK models dir ect ly

as r eal-valued r at ional expr essions in t he var iable s or z.

To cr eat e a MIMO zer o-pole-gain model, specify t he zer os, poles, and gain of

each SISO ent r y of t his model. In t his case:

•z and p ar e cell ar r ays of vect or s wit h as many r ows as out put s and as many

columns as input s, and k is a mat r ix wit h as many r ows as out put s and as

many columns as input s.

•The vect or s z{i,j} and p{i,j} specify t he zer os and poles of t he t r ansfer

funct ion fr om input j t o out put i.

•k(i,j) specifies t he (scalar ) gain of t he t r ansfer funct ion fr om input j t o

out put i.

See below for a MIMO example.

sys = zpk(z,p,k,Ts) cr eat es a discr et e-t ime zer o-pole-gain model wit h

sample t ime Ts (in seconds). Set Ts = –1 or Ts = [] t o leave t he sample t ime

unspecified. The input ar gument s z, p, k ar e as in t he cont inuous-t ime case.

sys = zpk(M) specifies a st at ic gain M.

sys = zpk(z,p,k,ltisys) cr eat es a zer o-pole-gain model wit h gener ic LTI

pr oper t ies inher it ed fr om t he LTI model ltisys (including t he sample t ime).

See “Gener ic Pr oper t ies” on page 2-26 for an over view of gener ic LTI

pr oper t ies.

To cr eat e an ar r ay of ZPK models, use a for loop, or use mult idimensional cell

ar r ays for z and p, and a mult idimensional ar r ay for k.

Any of t he pr evious synt axes can be followed by pr oper t y name/pr oper t y value

pair s.

'PropertyName',PropertyValue

zpk

11-240

Each pair specifies a par t icular LTI pr oper t y of t he model, for example, t he

input names or t he input delay t ime. See set ent r y and t he example below for

det ails. Not e t hat

sys = zpk(z,p,k,'Property1',Value1,...,'PropertyN',ValueN)

is a shor t cut for t he following sequence of commands.

sys = zpk(z,p,k)

set(sys,'Property1',Value1,...,'PropertyN',ValueN)

Zero-Pole-Gain Models as Rational Expressions in s or z

You can also use r at ional expr essions t o cr eat e a ZPK model. To do so, fir st t ype

eit her :

•s = zpk('s') t o specify a ZPK model using a r at ional funct ion in t he Laplace

var iable, s.

•z = zpk('z',Ts) t o specify a ZPK model wit h sample t ime Ts using a

r at ional funct ion in t he discr et e-t ime var iable, z.

Once you specify eit her of t hese var iables, you can specify ZPK models dir ect ly

as r at ional expr essions in t he var iable s or z by ent er ing your t r ansfer funct ion

as a r at ional expr ession in eit her s or z.

Conversion to Zero-Pole-Gain Form

zsys = zpk(sys) conver t s an ar bit r ar y LTI model sys t o zer o-pole-gain for m.

The out put zsys is a ZPK object . By default , zpk uses zero t o comput e t he zer os

when conver t ing fr om st at e-space t o zer o-pole-gain. Alt er nat ively,

zsys = zpk(sys,'inv')

uses inver sion for mulas for st at e-space models t o comput e t he zer os. This

algor it hm is fast er but less accur at e for high-or der models wit h low gain at

.

Variable

Selection

As for t r ansfer funct ions, you can specify which var iable t o use in t he display

of zer o-pole-gain models. Available choices include (default ) and for

cont inuous-t ime models, and (default ), , or for discr et e-t ime

models. Reassign t he 'Variable' pr oper t y t o over r ide t he default s. Changing

t he var iable affect s only t he display of zer o-pole-gain models.

s 0 =

s p

z z

1 –

q z

1 –

=

zpk

11-241

Example Example 1

Specify t he following zer o-pole-gain model.

To do t his, t ype

z = {[] ; –0.5}

p = {0.3 ; [0.1+i 0.1–i]}

k = [1 ; 2]

H = zpk(z,p,k,–1) % unspecified sample time

Example 2

Conver t t he t r ansfer funct ion

h = tf([–10 20 0],[1 7 20 28 19 5])

Transfer function:

–10 s^2 + 20 s

----------------------------------------

s^5 + 7 s^4 + 20 s^3 + 28 s^2 + 19 s + 5

t o zer o-pole-gain for m by t yping

zpk(h)

Zero/pole/gain:

–10 s (s–2)

----------------------

(s+1)^3 (s^2 + 4s + 5)

H z ( )

1

z 0.3 –

-----------------

2 z 0.5 + ( )

z 0. 1 – j + ( ) z 0.1 – j – ( )

------------------------------------------------------------

=

zpk

11-242

Example 3

Cr eat e a discr et e-t ime ZPK model fr om a r at ional expr ession in t he var iable z,

by t yping

z = zpk('z',0.1);

H = (z+.1)*(z+.2)/(z^2+.6*z+.09)

Zero/pole/gain:

(z+0.1) (z+0.2)

---------------

(z+0.3)^2

Sampling time: 0.1

Algorithm zpk uses t he MATLAB funct ion roots t o conver t t r ansfer funct ions and t he

funct ions zero and pole t o conver t st at e-space models.

See Also frd Conver t t o fr equency r esponse dat a models

get Get pr oper t ies of LTI models

set Set pr oper t ies of LTI models

ss Conver t t o st at e-space models

tf Conver t t o TF t r ansfer funct ion models

zpkdata Ret r ieve zer o-pole-gain dat a

zpkdata

11-243

11zpkdat a

Purpose Quick access t o zer o-pole-gain dat a

Syntax [z,p,k] = zpkdata(sys)

[z,p,k] = zpkdata(sys,'v')

[z,p,k,Ts,Td] = zpkdata(sys)

Description [z,p,k] = zpkdata(sys) r et ur ns t he zer os z, poles p, and gain(s) k of t he zer o-

pole-gain model sys. The out put s z and p ar e cell ar r ays wit h t he following

char act er ist ics:

•z and p have as many r ows as out put s and as many columns as input s.

•The (i,j) ent r ies z{i,j} and p{i,j} ar e t he (column) vect or s of zer os and

poles of t he t r ansfer funct ion fr om input j t o out put i.

The out put k is a mat r ix wit h as many r ows as out put s and as many columns

as input s such t hat k(i,j) is t he gain of t he t r ansfer funct ion fr om input j t o

out put i. If sys is a t r ansfer funct ion or st at e-space model, it is fir st conver t ed

t o zer o-pole-gain for m using zpk. See Table 11-15, “LTI Pr oper t ies,” on page

11-195 for mor e infor mat ion on t he for mat of st at e-space model dat a.

For SISO zer o-pole-gain models, t he synt ax

[z,p,k] = zpkdata(sys,'v')

for ces zpkdata t o r et ur n t he zer os and poles dir ect ly as column vect or s r at her

t han as cell ar r ays (see example below).

[z,p,k,Ts,Td] = zpkdata(sys) also r et ur ns t he sample t ime Ts and t he

input delay dat a Td. For cont inuous-t ime models, Td is a r ow vect or wit h one

ent r y per input channel (Td(j) indicat es by how many seconds t he jt h input is

delayed). For discr et e-t ime models, Td is t he empt y mat r ix [] (see d2d for

delays in discr et e syst ems).

You can access t he r emaining LTI pr oper t ies of sys wit h get or by dir ect

r efer encing, for example,

sys.Ts

sys.inputname

zpkdata

11-244

Example Given a zer o-pole-gain model wit h t wo out put s and one input

H = zpk({[0];[–0.5]},{[0.3];[0.1+i 0.1–i]},[1;2],–1)

Zero/pole/gain from input to output...

1

#1: -------

(z–0.3)

2 (z+0.5)

#2: -------------------

(z^2 – 0.2z + 1.01)

Sampling time: unspecified

you can ext r act t he zer o/pole/gain dat a embedded in H wit h

[z,p,k] = zpkdata(H)

z =

[ 0]

[-0.5000]

p =

[ 0.3000]

[2x1 double]

k =

1

2

To access t he zer os and poles of t he second out put channel of H, get t he cont ent

of t he second cell in z and p by t yping

z{2,1}

ans =

–0.5000

p{2,1}

ans =

0.1000+ 1.0000i

0.1000– 1.0000i

zpkdata

11-245

See Also get Get pr oper t ies of LTI models

ssdata Quick access t o st at e-space dat a

tfdata Quick access t o t r ansfer funct ion dat a

zpk Specify zer o-pole-gain models

zpkdata

11-246

I-1

Index

A

acker 11-11

addit ion of LTI models 3-11

scalar 3-12

adjoint . S ee per t r ansposit ion

algebr aic loop 11-76

aliasing 5-13

analysis models

specifying 6-56

S ee also Simulink LTI Viewer

append 3-16, 3-17, 4-29, 11-12

ar r ay dimensions 4-7

ar r ays. S ee LTI ar r ays

augstate 11-15

axes gr ouping menu 6-23

B

balancing r ealizat ions 5-7, 11-16, 11-216

balreal 11-16

block diagr am. S ee model building

bode (Bode Plot s) 11-19

unit s for plot s 5-12

building LTI ar r ays 4-12

C

c2d 11-24

cancellat ion 11-140

canon 11-27

canonical r ealizat ions 5-7, 11-27

care 11-29

cell ar r ay 2-11, 2-14, 11-90, 11-231

chgunits 11-33

classical cont r ol 9-3, 9-20

closed loop. S ee feedback

companion r ealizat ions 11-27

compar ing models 5-13, 11-19, 11-94, 11-127,

11-134

compensat or s

feedback 7-6

Root Locus Design GUI 8-28, 8-31, 8-41

concat enat ion, model 2-10

hor izont al 3-17

LTI ar r ays 4-15, 11-219

st at e-space model or der , effect s on 3-10

ver t ical 3-17

condit ioning, st at e-space models 10-4

connect 11-33, 11-34

connect ion

feedback 9-11, 11-73

par allel 3-12, 9-54, 11-168

ser ies 3-13, 9-15, 11-191

st ar pr oduct (LFT) 11-115

const r uct or funct ions, LTI object s 2-4

cont inuous-t ime 5-2, 11-104

conver sion t o. S ee conver sion, model

r andom model 11-189

cont r ol design. S ee design

cont r ollabilit y

gr amian 11-91

mat r ix (ctrb) 11-43

st air case for m 11-45

conver sion, model

aut omat ic 2-43

bet ween model t ypes 2-42, 3-3, 11-212, 11-226,

11-240

cont inuous t o discr et e (c2d) 3-20, 11-24

discr et e t o cont inuous (d2c) 2-36, 3-20, 11-48

wit h negat ive r eal poles 3-21, 11-49

FRD model, t o 2-42

r esampling 3-27

discr et e models 11-51

Index

I-2

SS model, t o 2-42

st at e-space, t o 2-44, 11-212

TF model, t o 2-42

ZPK model, t o 2-42

covar 11-40

covar iance

er r or 9-56, 9-62, 11-110

noise 7-9, 11-110

out put 11-40, 11-110

st at e 11-40, 11-110

ctrb 11-43

ctrbf 11-45

D

d2c 11-48

d2d 3-27, 11-51

damp 11-52

damping 11-52, 11-200, 11-236

dare 11-54

dcgain 11-57, 11-58

delay2z 11-58

delays

ar it hmet ic oper at ions 3-15

c2d and d2c conver sions 3-25

combining 2-54, 11-234

conver sion 11-58

conver sion t o SS 2-54

delay2z 11-58

discr et e-t ime models 2-52

discr et izat ion 3-24

exist ence of, t est for 11-93

hasdelay 11-93

I/O 2-26, 2-45, 2-46, 11-195

infor mat ion, r et r ieving 2-54

input 2-26, 2-50, 11-195

out put 2-26, 2-45, 2-50, 11-196

Padé appr oximat ion 2-55, 11-164

suppor t ed funct ionalit y 2-45

t ime 11-195

delays input 2-45

delet ion

par t s of LTI ar r ays 4-23

par t s of LTI models 3-9

denominat or

common denominat or 11-78, 11-225

pr oper t y 2-28, 11-197

specificat ion 2-8, 2-10, 2-11, 2-22, 11-77

value 2-25

descr ipt or syst ems. S ee st at e-space models,

descr ipt or

deselect ion of it ems in a window 6-11

design 1-20

classical 9-3, 9-20

compensat or s 7-6

Kalman est imat or 7-9, 9-36, 9-57, 11-108,

11-112

LQG 1-20, 7-8, 7-10, 9-31, 11-59, 11-117

pole placement 7-5, 11-11, 11-170

r egulat or s 7-6, 7-10, 9-31, 11-117, 11-176

r obust ness 9-29

r oot locus 7-3, 9-9, 9-24

st at e est imat or 7-5, 7-9, 11-70, 11-108, 11-112

design model 8-11, 11-187

compensat or for 8-11

diagonal r ealizat ions 11-27

digit al filt er

filt 2-23

specificat ion 2-22, 11-77

dimensions

ar r ay 4-7

I/O 4-7

Dir ac impulse 11-94

discr et e-t ime models 5-2, 11-104

Index

I-3

cont r ol design 9-20

equivalent cont inuous poles 11-52

fr equency 5-13, 11-23

Kalman est imat or 9-50, 11-108

r andom 11-62

r esampling 3-27

S ee also LTI models

discr et izat ion 2-36, 3-20, 9-21, 11-24

available met hods 11-24

delay syst ems 3-24

fir st -or der hold 3-22

int er sample behavior 11-129

mat ched poles/zer os 3-23

Tust in met hod 3-22

zer o-or der hold 3-20

dlqr 11-59

dlyap 11-61

drmodel 11-62

drss 11-62

dsort 11-64

DSP convent ion 11-77, 11-198, 11-228

dss 11-65

dssdata 11-67

dual. S ee t r ansposit ion

E

er r or covar iance 9-56, 9-62, 11-110

esort 11-68

estim 11-70

est imat or 7-5, 7-9, 11-70, 11-108, 11-112

cur r ent 11-110

discr et e 11-108

discr et e for cont inuous plant 11-112

gain 7-6

evalfr 11-72

ext r act ion

LTI ar r ays, in 4-21

LTI models, in 3-5

F

feedback 11-73

feedback 9-11, 11-73

algebr aic loop 11-76

negat ive 11-73

posit ive 11-73

feedt hr ough gain 2-28

filt 2-23, 11-77, 11-79, 11-82

filt er ing. S ee Kalman est imat or

final t ime. S ee t ime r esponse

fir st -or der hold (FOH) 3-22, 11-24

wit h delays 3-24

frd 11-79

FRD (fr equency r esponse dat a) object s 2-3, 2-18,

11-79

conver sion t o 2-42

dat a 11-82

frdata 11-82

fr equencies

indexing by 3-7

r efer encing by 3-7

unit s, conver sion 11-33

singular value plot s 11-202

uses 2-3

frdata 11-82

freqresp 11-84

fr equency

cr ossover 11-137

for discr et e syst ems 5-13, 11-23

gr id 5-12

linear ly spaced fr equencies 5-13

logar it hmically spaced fr equencies 5-13, 11-19

nat ur al 11-52, 11-200, 11-236

Index

I-4

Nyquist 5-13, 11-23

r ange 5-12

fr equency r esponse 2-18, 5-11

at single fr equency (evalfr) 11-72

Bode plot 11-19

cust omized plot s 5-17

discr et e-t ime fr equency 5-13, 11-23

freqresp 11-84

magnit ude 11-19

MIMO 5-12, 11-19, 11-149, 11-156

Nichols char t (ngrid) 11-147

Nichols plot 11-149

Nyquist plot 11-156

phase 11-19

plot t ing 5-13, 11-19, 11-134

singular value plot 11-202

viewing t he gain and phase mar gins 11-137

G

gain 2-11

est imat or gain 7-6, 7-9

feedt hr ough 2-28

low fr equency (DC) 11-57

pr oper t y

LTI pr oper t ies gain 2-28

select ion 7-3, 7-6, 7-9

st at e-feedback gain 7-9, 11-59

gain mar gins 9-29, 11-19, 11-137

gensig 11-87

get 2-31, 11-89

gram 11-91, 11-93

gr amian (gram) 11-16, 11-91

gr oup. S ee I/O gr oups

GUI 8-2

H

Hamilt onian mat r ix and pencil 11-29

hasdelay 2-54, 11-93

hidden oscillat ions 11-129

I

I/O

concat enat ion 3-16

delays 2-26, 2-45, 2-46, 11-195

dimensions 5-2, 11-207

LTI ar r ays 4-7

gr oups 2-26

r efer encing models by gr oup name 3-8

names 2-26, 2-37

conflict s, naming 3-4

r efer encing models by 3-8

r elat ion 3-5

impulse 11-94

impulse r esponse 11-94

indexing int o LTI ar r ays 4-20

single index access 4-20

inher it ance 3-3, 11-65, 11-212

initial 11-98

init ial condit ion 11-98

innovat ion 11-110

input 2-2

delays 2-26, 2-45, 2-50, 11-195

Dir ac impulse 11-94

gener at e t est input signals 11-87

gr oups 2-26

names 2-26, 11-196

S ee also InputName

number of input s 5-2, 11-207

pulse 11-87, 11-94

r esampling 11-129

sine wave 11-87

Index

I-5

squar e wave 11-87

input point block 6-56

S ee also Simulink LTI Viewer

InputDelay. S ee delays

InputGroup 2-26, 2-27

conflict s, naming 3-4

S ee also I/O gr oups

InputName 2-34, 2-36

conflict s, naming 3-4

S ee also I/O names

int er connect ion. S ee model building

int er sample behavior 11-129

inv 11-101

inver sion 11-101

limit at ions 11-102

model 3-13

ioDelayMatrix. S ee delay

isct 11-104

isdt 11-104

isempty 11-105

isproper 11-106

issiso 11-107

K

Kalman

filt er . S ee Kalman est imat or

filt er ing 7-11, 9-50

gain 7-9

kalman 11-108

Kalman est imat or

cont inuous 7-9, 9-36

cur r ent 11-110

discr et e 9-50, 11-108

discr et e for cont inuous plant 11-112

innovat ion 11-110

st eady-st at e 7-9, 11-108

t ime-var ying 9-57

kalmd 11-112

L

LFT (linear -fr act ional t r ansfor mat ion) 11-115

LQG (linear quadr at ic-gaussian) met hod

cont inuous LQ r egulat or 7-9, 9-36, 11-121

cost funct ion 9-36, 11-59, 11-121

cur r ent r egulat or 11-118

design 1-20, 7-8, 7-10, 9-31, 9-47

discr et e LQ r egulat or 11-59, 11-123

Kalman st at e est imat or 7-9, 11-108, 11-112

LQ-opt imal gain 7-9, 9-36, 11-121, 11-123,

11-125

opt imal st at e-feedback gain 7-9, 11-121, 11-123,

11-125

out put weight ing 11-125

r egulat or 1-21, 7-10, 9-31, 11-117

weight ing mat r ices 7-9

lqr 11-121

lqrd 11-123

lqry 11-125

lsim 11-126

LTI (linear t ime-invar iant ) 2-2

LTI ar r ays 4-1

accessing models 4-20

analysis funct ions 4-30

ar r ay dimensions 4-7

building 4-15, 11-219

building LTI ar r ays 4-12

building wit h rss 4-12

building wit h tf, zpk, ss, and frd 4-17

concat enat ion 4-15, 11-219

conver sion, model.S ee conver sion

delet ing par t s of 4-23

dimensions, size, and shape 4-7

Index

I-6

ext r act ing subsyst ems 4-21

indexing int o 4-20

int er connect ion funct ions 4-25

LTI Viewer , model select or 6-28, 6-31

model dimensions 4-7

oper at ions on 4-25

dimension r equir ement s 4-27

special cases 4-27

r eassigning par t s of 4-22

SS models 4-23

shape, changing 11-179

size 4-7

stack 4-15, 11-219

LTI models

addit ion 3-11

scalar 3-12

building 3-16

char act er ist ics 5-2

compar ing mult iple models 5-13, 11-19, 11-94,

11-127, 11-134

concat enat ion

effect s on model or der 3-10

hor izont al 3-17

ver t ical 3-17

cont inuous 5-2

conver sion 2-42, 3-3

cont inuous/discr et e 3-20

S ee also conver sion, model

cr eat ing 2-8

dimensions 11-146

discr et e 2-20, 5-2, 11-104

discr et izat ion, mat ched poles/zer os 3-23

empt y 2-12, 5-2, 11-105

frd 11-79

fr equency r esponse. S ee fr equency r esponse

funct ions, analysis 5-4

I/O gr oup or channel name, r efer encing by 3-8

int er connect ion funct ions 3-16

inver sion 3-13

model dat a, accessing 2-24, 11-218

model or der r educt ion 5-20, 11-16, 11-142

modifying 3-5

mult iplicat ion 3-13

ndims 11-146

nor ms 11-152

oper at ions 3-1, 3-2

pr ecedence r ules 3-3

S ee also oper at ions

pr oper t r ansfer funct ion 5-2, 11-106

r andom 11-62, 11-189

r esizing 3-9

second-or der 11-163

SISO 11-107

ss 11-211

subsyst em, modifying 3-10

subt r act ion 3-12

t ime r esponse. S ee t ime r esponse

t ype 5-2

zpk 11-238

LTI object s 2-26, 2-33

const r uct ing 2-4

met hods 2-4

pr oper t ies. S ee LTI pr oper t ies

S ee also LTI models

LTI pr oper t ies 2-4, 2-26, 2-34

accessing pr oper t y values (get) 2-31, 2-33,

11-89

admissible values 11-194

displaying pr oper t ies 2-32, 11-89

gener ic pr oper t ies 2-26

I/O gr oups. S ee I/O, gr oups

I/O names. S ee I/O, names

inher it ance 3-3, 11-65, 11-212

Index

I-7

model-specific pr oper t ies 2-28

online help (ltiprops) 2-26

pr oper t y names 2-26, 2-30, 11-89, 11-193

pr oper t y values 2-26, 2-31, 11-89, 11-193

set t ing 2-30, 11-193, 11-212, 11-225, 11-240

sample t ime 3-3

var iable pr oper t y 3-4

LTI Viewer 11-133

axes gr ouping menu 6-23

command line init ializing 6-5

file menu 6-15

fr equency domain plot unit s 6-44

get t ing help 6-16

impor t ing models 6-11, 6-15

mult iselect ion and deselect ion 6-11

line pr oper t ies, or der 6-47

linest yle pr oper t ies 6-46

LTI ar r ay select or 6-28

LTI ar r ays 6-28, 6-31

model select ion 6-32, 6-35

menu it ems, select ion 6-20

menus, LTI Viewer 6-15

Model Select or for LTI Ar r ays window 6-28

opening a new 6-16

plot opt ions 6-7, 6-9

plot t ypes

changing 6-19

select ion 6-20

pr int ing 6-16

r efr eshing syst ems 6-16

r esponse char act er ist ics 6-9, 6-43

r esponse pr efer ences, set t ing 6-40

r ight -click menus 6-7

MIMO models 6-21

select ing a menu it em 6-20

SISO models 6-18

r ise t ime 6-43

select I/Os menu 6-26

set t ling t ime 6-43

Simulink models. S ee Simulink LTI Viewer

syst ems, deselect ing 6-19

syst ems, select ing 6-19

Tools menu 6-39

Viewer Configur at ion menu 6-39

zooming 6-12

ltiview 11-133

lyap 11-135

Lyapunov equat ion 11-41, 11-92

cont inuous 11-135

discr et e 11-61

M

map, I/O 3-5

margin 11-137

mar gins, gain and phase 9-29, 11-19, 11-137

mat ched pole-zer o 11-24

met hods 2-4

MIMO 2-2, 3-17, 5-10, 5-12, 11-94

minreal 11-140

model building 3-16

appending LTI models 11-12

feedback connect ion 9-11, 11-73

LFT connect ion 11-115

modeling block diagr ams (connect) 11-34

par allel connect ion 3-12, 9-54, 11-168

ser ies connect ion 3-13, 9-15, 11-191

model dynamics, funct ion list 5-4

Model Input s and Out put s block set 6-51

model or der r educt ion 5-20, 11-16, 11-142,

11-209

Model Select or for LTI Ar r ays window 6-28

modeling. S ee model building

modred 11-142

Index

I-8

mult iplicat ion 3-13

scalar 3-13

mult iselect ion of it ems in a window 6-11

N

nat ur al fr equency 11-52

ndims 11-146

ngrid 11-147

Nichols

char t 11-147

plot (nichols) 11-149

nichols 11-149

noise

covar iance 7-9, 11-110

measur ement 7-8, 11-70

pr ocess 7-8, 11-70

whit e 5-9, 7-8, 11-40

norm 11-152

nor ms of LTI syst ems (norm) 11-152

Notes 2-27

numer at or

pr oper t y 2-28, 11-197

specificat ion 2-8, 2-10, 2-11, 2-22, 11-77

value 2-25, 11-90

numer ical st abilit y 10-6

Nyquist

fr equency 5-13, 11-23

plot (nyquist) 11-156

nyquist 11-156

O

object -or ient ed pr ogr amming 2-4

object s. S ee LTI object s

obser vabilit y

gr amian 11-91

mat r ix (ctrb) 11-159

st air case for m 11-161

obsv 11-159

obsvf 11-161

oper at ions on LTI models

addit ion 3-11

append 3-17

append 11-12

ar it hmet ic 3-11

augment ing st at e wit h out put s 11-15

concat enat ion 2-10, 3-10, 3-17

diagonal building 11-12

ext r act ing a subsyst em 2-6

inver sion 3-13, 11-101

mult iplicat ion 3-13

over loaded 2-4

per t r ansposit ion 3-14

pr ecedence 3-3

r esizing 3-9

sor t ing t he poles 11-64, 11-68

subsyst em, ext r act ion 3-5

subt r act ion 3-12

t r ansposit ion 3-14

ord2 11-163

out put 2-2

covar iance 11-40, 11-110

delays 2-26, 2-45, 2-50, 11-196

gr oups 2-26

names 2-26, 11-196

names. S ee also OutputName

number of out put s 5-2, 11-207

out put point block 6-56

S ee also Simulink LTI Viewer

OutputDelay. S ee delays

OutputGroup 2-26, 2-27

gr oup names, conflict s 3-4

Index

I-9

S ee also I/O, gr oups

OutputName 2-34

conflict s, naming 3-4

S ee also I/O, names

over shoot 5-9

P

pade 11-164

Padé appr oximat ion (pade) 2-55, 11-164

parallel 11-168

par allel connect ion 3-12, 9-54, 11-168

per t r ansposit ion 3-14

phase mar gins 9-29, 11-19, 11-137

place 11-170

plot configur at ion, LTI Viewer 6-39

plot t ing

cust omized plot s 5-17

fr equency r esponse. S ee fr equency r esponse

mult iple syst ems 5-13, 11-19, 11-94, 11-127,

11-134

Nichols char t (ngrid) 11-147

s-plane gr id (sgrid) 11-200

t ime r esponses 5-9

S ee also t ime r esponse 5-9

z-plane gr id (zgrid) 11-236

pole 11-172

pole placement 7-5, 11-11, 11-170

condit ioning 7-7

poles 2-12

comput ing 11-172

damping 11-52, 11-200, 11-236

equivalent cont inuous poles 11-52

mult iple 11-172

nat ur al fr equency 11-52, 11-200, 11-236

pole-zer o map 11-173

pr oper t y 2-28

sor t ing by magnit ude (dsort) 11-64

sor t ing by r eal par t (esort) 11-68

s-plane gr id (sgrid) 11-200

z-plane gr id (zgrid) 11-236

pole-zer o

cancellat ion 11-140

map (pzmap) 11-173

pr ecedence r ules 2-5, 3-3

pr oper t r ansfer funct ion 5-2, 11-106

pr oper t ies

sample t ime 3-3

var iable 3-4

pr oper t ies. S ee LTI pr oper t ies

pulse 11-87, 11-94

pzmap 11-173

R

r andom models 11-62, 11-189

r ealizat ion

st at e coor dinat e t r ansfor mat ion 5-7, 11-28,

11-215

r ealizat ions 5-7, 11-212

balanced 5-7, 11-16, 11-216

canonical 5-7, 11-27

companion for m 11-27

minimal 11-140

modal for m 11-27

Redheffer st ar pr oduct 11-115

S ee also LFT

r educed-or der models 5-20, 11-16, 11-142

r egulat ion 1-20, 7-8, 9-31, 11-176

per for mance 7-9

r esampling 3-27

r esampling (d2d) 11-51

reshape 11-179

r esponse char act er ist ics 6-43

Index

I-10

S ee also LTI Viewer

r esponse pr efer ences, set t ing 6-40

r esponse, I/O 3-5

Riccat i equat ion 7-9

cont inuous (care) 11-29

discr et e (dare) 11-54

for LQG design 11-110, 11-121

Η∞-like 11-31

st abilizing solut ion 11-29, 11-54

r ight -click menus

LTI ar r ays 6-28

r ight -click menus, LTI Viewer 6-7

S ee also LTI Viewer , r ight -click menus

r ise t ime 5-9

rlocfind 11-180

rlocus 11-182

rltool 11-179, 11-185

rmodel 11-189

r obust ness 9-29

r oot locus

design 7-3, 9-9, 9-24

plot (rlocus) 11-182

select gain fr om 11-180

S ee also Root Locus Design GUI

Root Locus Design GUI 7-3, 8-1, 11-185

add gr id/boundar y 8-24

axes set t ings 8-19

clear ing model and compensat or dat a 8-46

compensat or s 8-11, 11-187

edit ing 8-3, 8-28, 8-31, 8-41

configur at ion, design model 8-10, 11-187

cont inuous t o discr et e model conver sion 8-3,

8-38, 8-45

cont r oller design 8-6

design model 8-11

design r egion boundar ies 8-24

design specificat ions 8-35

discr et e t o cont inuous model conver sion 8-3,

8-38, 8-45

dr awing a Simulink diagr am fr om 8-44

feedback st r uct ur e 8-10, 11-187

gain set point 8-13

impor t ing models 8-7, 8-9

list ing poles and zer os 8-41

model sour ce 8-38, 8-39

opening 8-6

pr int ing 8-28

t oolbar 8-28

zoom t ools 8-16

zooming 8-15

Root Locus Design GUI compensat or s edit ing 8-3

rss 11-189

building an LTI ar r ay wit h 4-12

S

sample t ime 2-20, 2-26, 2-27, 2-34, 3-3

accessing 2-24, 11-218

choices of for plot t ing 5-11

r esampling 3-27, 11-51

set t ing 2-36, 11-195, 11-225, 11-239

unspecified 2-27, 11-23

scaling 10-15

second-or der model 11-163

select fr om LTI ar r ay menu 6-28

select I/Os menu 6-26

series 11-191

ser ies connect ion 3-13, 9-15, 11-191

set 2-30, 11-193

set t ling t ime 5-9

signal gener at or 11-87

simulat ion of linear syst ems. S ee t ime r esponse

Simulink LTI Viewer 6-48, 6-50

Index

I-11

analysis models 6-50

clear ing 6-53

open and closed loop 6-56

saving 6-65

specifying 6-53, 6-56

input point blocks 6-53

linear izing models 6-53, 6-63

opening 6-50

oper at ing condit ions, changing 6-61

oper at ing condit ions, set t ing 6-58

oper at ing point s 6-53

out put point blocks 6-53

Simulink menu 6-53

specifying models for 6-51

sine wave 11-87

singular value plot (bode) 11-202

SISO 2-2, 5-2, 8-2, 11-107

size 11-207

sminreal 11-209

squar e wave 11-87

ss 2-15, 11-211

SS object s. S ee st at e-space models

st abilit y

numer ical 10-6

st abilizable 11-31

st abilizing, Riccat i equat ion 11-29, 11-54

stack 4-15, 11-219

st ar pr oduct 11-115

st at e 2-14

augment ing wit h out put s 11-15

covar iance 11-40, 11-110

est imat or 7-5, 7-9, 11-70, 11-108, 11-112

feedback 7-5, 11-59

mat r ix 2-28

names 2-29, 11-196

number of st at es 4-10, 11-207

t r ansfor mat ion 5-7, 11-28, 11-215

uncont r ollable 11-140

unobser vable 11-140, 11-161

vect or 2-2

st at e-space models 2-2, 2-3, 10-8

balancing 5-7, 11-16, 11-216

condit ioning 10-4

conver sion t o 2-42

S ee also conver sion

descr ipt or 2-16, 2-24, 11-65, 11-67

dss 11-65

init ial condit ion r esponse 11-98

mat r ices 2-15

model dat a 2-15

or der r educt ion. S ee model or der r educt ion

quick dat a r et r ieval 2-24, 11-67, 11-218

r andom

cont inuous-t ime 11-189

discr et e-t ime models 11-62

r ealizat ions 5-7, 11-212

scaling 10-15

specificat ion 2-14, 11-211

ss 2-15, 11-211

t r ansfer funct ions of 2-42

st eady st at e er r or 5-9

st ep r esponse 11-220

subsyst em 2-6, 3-5

subsyst em oper at ions on LTI models

subsyst em, modifying 3-10

subt r act ion 3-12

Sylvest er equat ion 11-135

symplect ic pencil 11-55

T

Td. S ee delays

tf 2-8, 11-224

TF object s. S ee t r ansfer funct ions

Index

I-12

tfdata

out put , for m of 2-24

t ime delays. S ee delays

t ime r esponse 5-9

cust omized plot s 5-17

final t ime 5-10, 11-94

impulse r esponse (impulse) 11-94

init ial condit ion r esponse (initial) 11-98

MIMO 5-10, 11-94, 11-126

plot t ing 5-13, 11-94, 11-127, 11-134

r esponse t o ar bit r ar y input s (lsim) 11-87,

11-126

st ep r esponse (step) 11-220

t ime r ange

t o whit e noise 5-9, 11-40

vect or of t ime samples 5-10

t ime-var ying Kalman filt er 9-57

totaldelay 2-54, 11-234

t r ansfer funct ions 2-2, 2-3, 10-8

common denominat or 11-78, 11-225

const r uct ing wit h r at ional expr essions 2-9

conver sion t o 2-42

denominat or 2-8

discr et e-t ime 2-20, 2-22, 11-77, 11-198,

11-228

DSP convent ion 2-22, 11-77, 11-198, 11-228

filt 2-23, 11-77

MIMO 2-10, 3-17, 11-224

numer at or 2-8

quick dat a r et r ieval 2-24, 11-231

r andom 11-62, 11-189

specificat ion 2-8, 11-224

st at ic gain 2-11, 11-225

tf 2-8, 11-224

TF object , display for 2-9

var iable pr oper t y 2-28, 3-4, 11-198, 11-228

t r ansmission zer os. S ee zer os

t r ansposit ion 3-14

t r iangle appr oximat ion 3-22, 11-24

Ts. S ee sample t ime

Tust in appr oximat ion 3-22, 11-24

wit h fr equency pr ewar ping 3-23, 11-24

t ypogr aphic convent ions 5

tzero. S ee zero

U

under sampling 11-129

Userdata 2-27

V

var iable pr oper t y 3-4

Viewer Configur at ion 6-39

W

whit e noise 5-9

S ee also noise

Z

zero 11-235

zer o-or der hold (ZOH) 3-20, 9-21, 11-24

wit h delays 3-24

zer o-pole-gain (ZPK) models 2-2, 2-3, 10-14

conver sion t o 2-42

MIMO 2-13, 3-17, 11-239

quick dat a r et r ieval 2-24, 11-243

specificat ion 2-12, 11-238

st at ic gain 11-239

zpk 2-12, 11-238

zer os 2-12

comput ing 11-235

Index

I-13

pole-zer o map 11-173

pr oper t y 2-28

t r ansmission 11-235

zooming

LTI Viewer 6-12

Root Locus Design GUI 8-15

zpk 2-12, 11-238

ZPK object s. S ee zer o-pole-gain (ZPK) models

zpkdata

out put , for m of 2-24

- Lecture on Stochastic Programming - Shapiro.pdf
- Lecture on Stochastic Programming - Shapiro.pdf
- La Regulación del Segmento Transmisión en Chile - CNE.pdf
- Macroeconomics
- Set Fuzzy Linear
- Econometrics
- A Mathematical Introduction to Control Theory
- Programming Optimization Techniques
- Probabilidad y Estadística
- A First Course in Complex Analysis
- Elementary Discrete Probability
- Communication System

Sign up to vote on this title

UsefulNot useful- MATLAB Symbolic Math Toolbox
- MathWorks. Symbolic Math Toolbox for Use With MATLAB - User's Guide (1998)(300s)_S
- MATLAB
- MATLAB
- Matlab Vit
- Finance engineering
- Continuous & Discreate Control Systems
- Introduction to MATLAB
- Tutorial Matlab
- Multilinear Form
- Introduction to Matlab
- Chapter_1_2016
- Introduction to Matlab.ppt
- fisika komputasi matlab
- MatLab Guide Wikibooks
- Matlab Ttutorial 1
- Installing and Configuring Simulink
- Computer+Fundamentals-lab+manual-MATLAB
- An Introduction to MATLAB
- Curs 0 Introducere in Matlab
- Stakeholders Analysis Guidelines
- Introduction to Matlab
- IntroMatlab (2)
- zerolab
- Lecture 19
- Introduction to Matlab.ppt
- matlab_intro.pdf
- Slides 1
- Control Toolbox and Simulink Tutorial
- Mc for Thesis
- Control Tb