Worldwide Technical Support and Product Information
ni.com
National Instruments Corporate Headquarters
11500 North Mopac Expressway Austin, Texas 78759-3504 USA Tel: 512 683 0100
Worldwide Offices
Australia 1800 300 800, Austria 43 662 457990-0, Belgium 32 (0) 2 757 0020, Brazil 55 11 3262 3599,
Canada 800 433 3488, China 86 21 5050 9800, Czech Republic 420 224 235 774, Denmark 45 45 76 26 00,
Finland 385 (0) 9 725 72511, France 33 (0) 1 48 14 24 24, Germany 49 89 7413130, India 91 80 41190000,
Israel 972 3 6393737, Italy 39 02 413091, Japan 81 3 5472 2970, Korea 82 02 3451 3400,
Lebanon 961 (0) 1 33 28 28, Malaysia 1800 887710, Mexico 01 800 010 0793, Netherlands 31 (0) 348 433 466,
New Zealand 0800 553 322, Norway 47 (0) 66 90 76 60, Poland 48 22 3390150, Portugal 351 210 311 210,
Russia 7 495 783 6851, Singapore 1800 226 5886, Slovenia 386 3 425 42 00, South Africa 27 0 11 805 8197,
Spain 34 91 640 0085, Sweden 46 (0) 8 587 895 00, Switzerland 41 56 2005151, Taiwan 886 02 2377 2222,
Thailand 662 278 6777, Turkey 90 212 279 3031, United Kingdom 44 (0) 1635 523545
For further support information, refer to the Technical Support and Professional Servicesappendix. o comment
on National Instruments documentation, refer to the National Instruments Web site at ni.com/info and enter
the info code feedback.
The media on which you receive National Instruments software are warranted not to fail to execute programming instructions, due to defects
in materials and workmanship, for a period of 90 days from date of shipment, as evidenced by receipts or other documentation. National
Instruments will, at its option, repair or replace software media that do not execute programming instructions if National Instruments receives
notice of such defects during the warranty period. National Instruments does not warrant that the operation of the software shall be
uninterrupted or error free.
A Return Material Authorization (RMA) number must be obtained from the factory and clearly marked on the outside of the package before any
equipment will be accepted for warranty work. National Instruments will pay the shipping costs of returning to the owner parts which are covered by
warranty.
National Instruments believes that the information in this document is accurate. The document has been carefully reviewed for technical accuracy. In
the event that technical or typographical errors exist, National Instruments reserves the right to make changes to subsequent editions of this document
without prior notice to holders of this edition. The reader should consult National Instruments if errors are suspected. In no event shall National
Instruments be liable for any damages arising out of or related to this document or the information contained in it.
E
XCEPTASSPECIFIEDHEREIN, NATIONAL INSTRUMENTSMAKESNOWARRANTIES, EXPRESSORIMPLIED, ANDSPECIFICALLYDISCLAIMSANYWARRANTYOF
MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE. CUSTOMER’SRIGHTTORECOVERDAMAGESCAUSEDBYFAULTORNEGLIGENCEONTHEPARTOF NATIONAL
I
NSTRUMENTSSHALLBELIMITEDTOTHEAMOUNTTHERETOFOREPAIDBYTHECUSTOMER. NATIONAL INSTRUMENTSWILLNOTBELIABLEFORDAMAGESRESULTING
FROMLOSSOFDATA, PROFITS, USEOFPRODUCTS, ORINCIDENTALORCONSEQUENTIALDAMAGES, EVENIFADVISEDOFTHEPOSSIBILITYTHEREOF. This limitation of
the liability of National Instruments will apply regardless of the form of action, whether in contract or tort, including negligence. Any action against
National Instruments must be brought within one year after the cause of action accrues. National Instruments shall not be liable for any delay in
performance due to causes beyond its reasonable control. The warranty provided herein does not cover damages, defects, malfunctions, or service
failures caused by owner’s failure to follow the National Instruments installation, operation, or maintenance instructions; owner’s modification of the
product; owner’s abuse, misuse, or negligent acts; and power failure or surges, fire, flood, accident, actions of third parties, or other events outside
reasonable control.
Copyright
Under the copyright laws, this publication may not be reproduced or transmitted in any form, electronic or mechanical, including photocopying,
recording, storing in an information retrieval system, or translating, in whole or in part, without the prior written consent of National
Instruments Corporation.
National Instruments respects the intellectual property of others, and we ask our users to do the same. NI software is protected by copyright and other
intellectual property laws. Where NI software may be used to reproduce software or other materials belonging to others, you may use NI software only
to reproduce materials that you may reproduce in accordance with the terms of any applicable license or other legal restriction.
Trademarks
MATRIXx™, National Instruments™, NI™, ni.com™, and Xmath™ are trademarks of National Instruments Corporation. Refer to the Terms of
Use section on ni.com/legal for more information about National Instruments trademarks.
Other product and company names mentioned herein are trademarks or trade names of their respective companies.
Members of the National Instruments Alliance Partner Program are business entities independent from National Instruments and have no agency,
partnership, or joint-venture relationship with National Instruments.
Patents
For patents covering National Instruments products, refer to the appropriate location: Help»Patents in your software, the patents.txt file
on your CD, or
ni.com/patents.
WARNING REGARDING USE OF NATIONAL INSTRUMENTS PRODUCTS
(1) NATIONAL INSTRUMENTS PRODUCTS ARE NOT DESIGNED WITH COMPONENTS AND TESTING FOR A LEVEL OF
RELIABILITY SUITABLE FOR USE IN OR IN CONNECTION WITH SURGICAL IMPLANTS OR AS CRITICAL COMPONENTS IN
ANY LIFE SUPPORT SYSTEMS WHOSE FAILURE TO PERFORM CAN REASONABLY BE EXPECTED TO CAUSE SIGNIFICANT
INJURY TO A HUMAN.
(2) IN ANY APPLICATION, INCLUDING THE ABOVE, RELIABILITY OF OPERATION OF THE SOFTWARE PRODUCTS CAN BE
IMPAIRED BY ADVERSE FACTORS, INCLUDING BUT NOT LIMITED TO FLUCTUATIONS IN ELECTRICAL POWER SUPPLY,
COMPUTER HARDWARE MALFUNCTIONS, COMPUTER OPERATING SYSTEM SOFTWARE FITNESS, FITNESS OF COMPILERS
AND DEVELOPMENT SOFTWARE USED TO DEVELOP AN APPLICATION, INSTALLATION ERRORS, SOFTWARE AND HARDWARE
COMPATIBILITY PROBLEMS, MALFUNCTIONS OR FAILURES OF ELECTRONIC MONITORING OR CONTROL DEVICES,
TRANSIENT FAILURES OF ELECTRONIC SYSTEMS (HARDWARE AND/OR SOFTWARE), UNANTICIPATED USES OR MISUSES, OR
ERRORS ON THE PART OF THE USER OR APPLICATIONS DESIGNER (ADVERSE FACTORS SUCH AS THESE ARE HEREAFTER
COLLECTIVELY TERMED “SYSTEM FAILURES”). ANY APPLICATION WHERE A SYSTEM FAILURE WOULD CREATE A RISK OF
HARM TO PROPERTY OR PERSONS (INCLUDING THE RISK OF BODILY INJURY AND DEATH) SHOULD NOT BE RELIANT SOLELY
UPON ONE FORM OF ELECTRONIC SYSTEM DUE TO THE RISK OF SYSTEM FAILURE. TO AVOID DAMAGE, INJURY, OR DEATH,
THE USER OR APPLICATION DESIGNER MUST TAKE REASONABLY PRUDENT STEPS TO PROTECT AGAINST SYSTEM FAILURES,
INCLUDING BUT NOT LIMITED TO BACK-UP OR SHUT DOWN MECHANISMS. BECAUSE EACH END-USER SYSTEM IS
CUSTOMIZED AND DIFFERS FROM NATIONAL INSTRUMENTS' TESTING PLATFORMS AND BECAUSE A USER OR APPLICATION
DESIGNER MAY USE NATIONAL INSTRUMENTS PRODUCTS IN COMBINATION WITH OTHER PRODUCTS IN A MANNER NOT
EVALUATED OR CONTEMPLATED BY NATIONAL INSTRUMENTS, THE USER OR APPLICATION DESIGNER IS ULTIMATELY
RESPONSIBLE FOR VERIFYING AND VALIDATING THE SUITABILITY OF NATIONAL INSTRUMENTS PRODUCTS WHENEVER
NATIONAL INSTRUMENTS PRODUCTS ARE INCORPORATED IN A SYSTEM OR APPLICATION, INCLUDING, WITHOUT
LIMITATION, THE APPROPRIATE DESIGN, PROCESS AND SAFETY LEVEL OF SUCH SYSTEM OR APPLICATION.
Conventions
The following conventions are used in this manual:
»The » symbol leads you through nested menu items and dialog box options
to a final action. The sequence File»Page Setup»Options directs you to
pull down the File menu, select the Page Setup item, and select Options
from the last dialog box.
This icon denotes a note, which alerts you to important information.
boldBold text denotes items that you must select or click in the software, such
as menu items and dialog box options. Bold text also denotes parameter
names.
italicItalic text denotes variables, emphasis, a cross-reference, or an introduction
to a key concept. Italic text also denotes text that is a placeholder for a word
or value that you must supply.
monospaceText in this font denotes text or characters that you should enter from the
keyboard, sections of code, programming examples, and syntax examples.
This font is also used for the proper names of disk drives, paths, directories,
programs, subprograms, subroutines, device names, functions, operations,
variables, filenames, and extensions.
monospace boldBold text in this font denotes the messages and responses that the computer
automatically prints to the screen. This font also emphasizes lines of code
that are different from the other examples.
monospace italic
Italic text in this font denotes text that is a placeholder for a word or value
that you must supply.
Contents
Chapter 1
Introduction
Using This Manual.........................................................................................................1-1
Selecting and Deselecting Loops .................................................................... 13-7
Editing and Deleting Loops ............................................................................ 13-8
Loop Gain Magnitude and Phase .................................................................... 13-8
Appendix A
Using an Xmath GUI Tool
Appendix B
Technical Support and Professional Services
Index
Xmath Interactive Control Design Modulexni.com
Introduction
The Xmath Interactive Control Design Module (ICDM) is a complete
library of classical and modern interactive control design functions that
takes full advantage of Xmath’s powerful, object-oriented, graphical
environment. It provides a flexible, intuitive interactive control design
framework. This manual provides an overview of different aspects of linear
systems analysis, describes the Xmath Interactive Control Design function
library, and gives examples of how you can use Xmath to solve problems
rapidly.
Using This Manual
This manual is meant to complement the Xmath Help system. The Xmath
Help system can be used to find answers to specific questions such as, “In
the Root Locus window, how can I add a new pair of complex poles to the
controller?” In contrast, this manual is intended for describing the general
concepts and operation of the ICDM.
1
Document Organization
This manual includes the following chapters:
•Chapter 1, Introduction, starts with an outline of the manual and some
use notes. It also contains an overview of the Interactive Control
Design Module.
•Chapter 2, Introduction to SISO Design, outlines the types of linear
systems the system object represents and then discusses the
implementation of a system within Xmath.
•Chapter 3, ICDM Main Window, describes the use of the ICDM Main
Window, which includes communication with Xmath, displaying
warning and log messages, displaying a variety of standard plots,
selecting a synthesis method for controller design, and controlling
auxiliary windows.
•Chapter 4, PID Synthesis, discusses the PID synthesis window. This
window is used to synthesize various types of standard classical SISO
controllers such as P, PI, PD, PID, lead-lag, and lag-lead.
•Chapter 5, Root Locus Synthesis, describes the user interface,
terminology, and parameters used for root locus synthesis.
•Chapter 6, Pole Place Synthesis, discusses the Pole Place synthesis
window, which is used to design a SISO controller by assigning the
closed-loop poles.
•Chapter 7, LQG Synthesis, discusses the LQG synthesis window
which is used to synthesize a linear quadratic Gaussian (LQG)
controller for a SISO plant.
•Chapter 8, H-Infinity Synthesis, describes the H∞ synthesis window
used for SISO plants. The H∞ synthesis window is used to synthesize
a central controller. Such controllers are sometimes called linear
exponential quadratic Gaussian (LEQG) or minimum entropy
controllers.
•Chapter 9, History Window, describes the History window used for
SISO plants. The History window is used to display and manipulate the
design history list, which is a list of controllers that have been
explicitly saved during the design process.
•Chapter 10, Alternate Plant Window, describes the form of the
Alternate Plant window used for SISO design.
•Chapter 11, Introduction to MIMO Design, provides an introduction
to MIMO design building on the earlier discussions of SISO design.
ICDM automatically switches between SISO and MIMO modes
depending on the plant that is read in.
•Chapter 12, LQG/H-Infinity Synthesis, describes the MIMO LQG/H∞
synthesis window. The LQG/H∞ window is used to synthesize both
LQG and H∞ controllers. The two design methods have been
combined in a single window because of the similarity regarding the
use of weights: constant weights, frequency-dependent weights, and
integrators.
•Chapter 13, Multi-Loop Synthesis, describes multi-loop synthesis. The
multi-loop window is used to synthesize a MIMO controller using PID
and Root Locus methods, applying them one loop at a time. In many
practical industrial applications, this is the way control systems are
designed for complex multivariable plants.
•Appendix A, Using an Xmath GUI Tool, describes the basics of using
an Xmath GUI tool. Throughout this manual, extended examples
following each function discussion help pinpoint the flexibility and
applicability of the Interactive Control Design function library. This
appendix describes the basics of using an Xmath GUI tool.
Xmath Interactive Control Design Module1-2ni.com
Commonly-Used Nomenclature
This manual uses the following general nomenclature:
•Matrix variables are generally denoted with capital letters; vectors are
represented in lowercase.
•G(s) is used to denote a transfer function of a system where s is the
Laplace variable. G(q) is used when both continuous and discrete
systems are allowed.
•H(s) is used to denote the frequency response, over some range of
frequencies of a system where s is the Laplace variable. H(q) is used to
indicate that the system can be continuous or discrete.
•A single apostrophe following a matrix variable, for example, x',
denotes the transpose of that variable. An asterisk following a matrix
variable (for example, A*) indicates the complex conjugate, or
Hermitian, transpose of that variable.
Related Publications
For a complete list of MATRIXx publications, refer to Chapter 2,
MATRIXx Publications, Help, and Customer Support, of the MATRIXx
Getting Started Guide. The following documents are particularly useful for
topics covered in this manual:
•MATRIXx Getting Started Guide
•Xmath User Guide
•Xmath Control Design Module
•Xmath Interactive Control Design Module
•Xmath Interactive System Identification Module, Part 1
•Xmath Interactive System Identification Module, Part 2
Interactive Control Design Module function reference information
is available in the MATRIXx Help. The MATRIXx Help includes all
Interactive Control Design functions. Each topic explains a function’s
inputs, outputs, and keywords in detail. Refer to Chapter 2, MATRIXx
Publications, Help, and Customer Support, of the MATRIXx Getting
Started Guide for complete instructions on using the MATRIXx Help
feature.
ICDM Overview
This section provides an overview of the Interactive Control Design
Module, a tool for interactive design of continuous-time linear
time-invariant controllers. ICDM runs under Xmath, using the Xmath
Graphical User Interface (GUI).
SISO Versus MIMO Design
Version 2.0 of ICDM handles full multivariable design, that is, design of
multi-input multi-output (MIMO) controllers for MIMO plants. Thus
ICDM 2.0 operates in two basic modes: SISO design (single input, single
output) and MIMO design. The mode is determined automatically by the
plant you read into ICDM. The two different modes feature somewhat
different plot options, different synthesis options, and so on.
NI has made the notation, conventions, and windows used for MIMO
design as similar as possible to those used for SISO design. Therefore a
user familiar with version 1.0 of ICDM (which handled only SISO design)
should have little trouble using the new MIMO synthesis tools. NI also
recommends that the user who wishes to use ICDM for MIMO design start
by becoming familiar with its features for SISO design.
Chapters 2 through 10 discuss SISO design. Chapters 11 through 13 discuss
MIMO design. The MIMO descriptions have been written for the user who
is familiar with SISO design features.
Starting ICDM
To use ICDM, you should:
•Have a user’s understanding of Microsoft Windows or X Windows and
the window manager that you use. For example, you should be able to
move, resize, and iconify windows; use a pull-down menu; and use a
scrollbar.
Xmath Interactive Control Design Module1-4ni.com
Chapter 1Introduction
•Have a user’s understanding of Xmath (enough to create a plant
transfer function).
•Know the basics of how to interact with an Xmath GUI
application—for example, using a slider to set a parameter value, a
variable-edit box for typing in values, data-viewing, and plot zooming.
•Know the basics of classical control system design (for SISO design)
and state-space design (for MIMO design).
An introduction to Xmath and a basic introduction to X Windows can be
found in the Xmath User Guide. There are several ways you can find out
about the basics of interacting with an Xmath GUI application:
•Refer to Appendix A, Using an Xmath GUI Tool.
•Enter
guidemo in the Xmath Command window to start up the GUI
demo applications; this allows you to try out sliders, push buttons,
scrollbars, data-viewing, and so on.
After you have mastered the basic mechanics of using an Xmath GUI
application, you should be ready to get started.
To start up ICDM, enter
icdm in the Xmath Command window:
Your window manager may require you to position a window that is created
using the left or middle mouse button. After the ICDM Main Window
appears, the Xmath command prompt will return. You now can use Xmath
and ICDM simultaneously.
The user interface for ICDM is designed to be intuitive; that is, things
mostly work the way you would assume that they should work, so you
should be able to start using ICDM immediately. NI recommends that you
read Chapter 2, Introduction to SISO Design, before using the module.
ICDM includes a complete Help system. In the menu bar of every ICDM
window there is a Help menu. The Help messages contain detailed
descriptions of every feature and function of ICDM. You can get a good
overview of the features of ICDM by scanning the entries in the menu bars
and reading the Help messages in the various windows.
ICDM function reference material is available in the MATRIXx Help. Refer
to Chapter 2, MATRIXx Publications, Help, and Customer Support, of the
MATRIXx Getting Started Guide for additional instructions on using the
MATRIXx Help.
Xmath provides a structure for system representation called a system
object. This object includes system parameters in a data structure designed
to reflect the way these systems are analyzed mathematically. Operations
on these systems are likewise defined using operators that mirror as closely
as possible the notation control engineers use. This chapter outlines the
types of linear systems the system object represents and then discusses the
implementation of a system within Xmath. The functions used to create a
system object and to extract data from this object are an intrinsic part of the
object class and are also described. Finally, this chapter discusses the
functions check, discretize, and makecontinuous, which use information
stored in the system object to convert systems from one particular
representation to another.
SISO Design Overview
This section provides an overview of what ICDM does and how it works,
restricting the discussion to SISO design. If your interest is MIMO design,
you first should read this chapter and then Chapter 11, Introduction to
MIMO Design.
2
Basic SISO Terminology
This section describes the basic terminology and notation for SISO plants
and controllers used in ICDM and this manual. ICDM uses the standard
classical feedback configuration shown in Figure 2-1.
r
Figure 2-1. Standard Classical Feedback Configuration Used in ICDM
The equations describing this system are as follows:
wherey denotes the plant output or sensor signal
In ICDM, the plant and controller transfer function are required to be
rational, that is, the ratio of two polynomials:
yPu=
uCe=
ery–=
u denotes the plant input or actuator signal
r denotes the reference or command input signal
e denotes the error signal
P denotes the plant transfer function
C denotes the controller transfer function
n
Ps()
s()
p
-----------=Cs()
s()
d
p
s()
n
c
-----------=
s()
d
c
where n
, dp, nc, and dc are polynomials called the plant numerator,
p
plant denominator, controller numerator, and controller denominator,
respectively. The symbols n and d are mnemonics for numerator and
denominator. The degree of d
the degree of d
is the controller order or controller degree.
c
is the plant order or plant degree. Similarly,
p
The poles and zeros of these transfer functions are the zeros (roots) of the
denominator and numerator polynomials, respectively.
In ICDM, P and C are required to be proper polynomials; that is, they have
at least as many poles as zeros. In other words, the degree of n
or equal to the degree of d
(which is N) and similarly for nc and dc. In some
p
is less than
p
situations, the plant and controller are required to be strictly proper, which
means that there are more poles than zeros.
Other important terms include:
•The loop transfer function L is defined as L = PC. The loop gain is the
magnitude of the loop transfer function.
•The sensitivity transfer function is denoted as S and given by
S =1/(1+PC). The sensitivity transfer function is the transfer function
from the reference input r to the error signal e.
Xmath Interactive Control Design Module2-2ni.com
•The closed-loop transfer function T is given by T = PC/(1 + PC). T is
the transfer function from r to y.
•The characteristic polynomial of the system is defined as
X = n
plus the order of the controller.
•The closed-loop poles are the zeros of the characteristic polynomial.
This definition avoids any problem with unstable pole-zero
cancellations between the plant and controller. The closed-loop zeros
are the zeros of n
•The output response to a unit step input (or just, the step response),
is the step response of the transfer function T; that is, the response of
y when the command input r is a unit step.
•The actuator step response is the step response of the transfer function
C/(1 + PC), which is the transfer function from r to u.
•Integral action means that the controller C has a pole at s = 0. Roughly
speaking, this means that the loop gain is very large at low frequencies.
Integral action implies that S(0) = 0, so if r is constant, the error e
converges to zero, that is, the output y(t) approaches r as t →∞.
Overview of ICDM
Chapter 2Introduction to SISO Design
+ dcdp. Its degree is equal to the order of the plant
cnp
.
cnp
This section provides a broad overview of the architecture, concepts, and
major functions of ICDM, restricting our discussion to the case of SISO
plants and controllers. This section also provides a summary of how ICDM
works and what it does.
ICDM Windows
ICDM supports many windows that serve a variety of functions. The most
important windows are:
These are briefly described in the following sections, and in more detail in
later chapters. Several of these windows have different forms for SISO and
MIMO design. This chapter restricts the discussion to the SISO forms.
Refer to Chapter 11, Introduction to MIMO Design, for a discussion of the
MIMO forms.
ICDM Main Window
The most important window is the ICDM Main window, which is used to:
•Communicate with Xmath (for example, transfer plants/controllers
from/to Xmath).
•Display warning and log messages.
•Display a variety of standard plots.
•Select a synthesis method for controller design.
•Control several auxiliary windows.
PID Synthesis Window
The PID Synthesis window is used to synthesize a PID controller, with up
to two additional poles (usually used for high frequency rolloff). Each term
can be separately toggled on and off, so the PID
synthesize P, PD, PI, PID, lead-lag, and lag-lead controllers. The design
parameters can be typed in, manipulated graphically by slider controls, or
manipulated graphically on a Bode plot of the controller transfer function.
window can be used to
Root Locus Synthesis Window
The Root Locus window can be used in many ways for synthesis and
analysis of controllers. It can display a conventional root locus in near
real-time, while the user drags controller poles and zeros. The user can
graphically create or destroy controller poles and zeros. The closed-loop
poles can be dragged along the root locus plot, which causes the gain
parameter to be set automatically. Nonconventional phase and gain
contours can be plotted as an aid to controller synthesis or robustness
analysis.
Pole Place Synthesis Window
The Pole Place Synthesis window is used to design a controller by
assigning the closed-loop poles. The closed-loop poles can be typed in, or
dragged on a plot. The closed-loop poles can be scaled in frequency or time
by graphical input, or assigned to a Butterworth configuration. The pole
place window supports integral action as an option.
Xmath Interactive Control Design Module2-4ni.com
Chapter 2Introduction to SISO Design
LQG Synthesis Window
The LQG Synthesis window synthesizes LQG controllers, and therefore
can be used only with strictly proper plants. The user can vary weights for
the ratio of control (input) to regulation (output) cost and the ratio of sensor
(output) noise power to process (input) noise power. Optionally, the user
can specify a guaranteed decay rate and integral time constant. By dragging
zeros on a symmetric root locus plot, the user can vary the state weighting
or perform LTR design.
There also is a MIMO LQG window, described in Chapter 12,
LQG/H-Infinity Synthesis.
H-Infinity Synthesis Window
The H∞ Synthesis window synthesizes central H∞ controllers (also called
minimum entropy, risk sensitive, or LEQG controllers). The user can vary
weights for the ratio of control (input) to regulation (output) cost, the ratio
of sensor (output) noise power to process (input) noise power, and the risk
sensitivity or H∞ bound parameter γ. The user can vary the state weighting,
or equivalently, the output weight transfer function, by dragging zeros.
History Window
The History window is used to display and manipulate the design history
list, which is a list of controllers that have been explicitly saved during the
design process. The History window can be used to rapidly cycle through
and compare a subset of the saved designs. Any controller on the history
list can be recalled, and the design process continued.
Alternate Plant Window
The Alternate Plant window is used to study the robustness of a controller
to variations or changes in the plant. The user can interactively vary the
plant gain or dynamics, or add extra parasitic dynamics to the plant, see the
effect on the closed-loop system, and compare it to the nominal system.
The plant and the alternate plant have very different uses in ICDM, and
therefore different data flow characteristics.
The plant transfer function is read from Xmath into the ICDM Main
window, and is then exported to the synthesis windows that need it—Pole
Place, LQG, and H∞. In other words, the controllers designed using the
Pole Place, LQG, or H∞ Synthesis windows are based on the plant transfer
function. You cannot change the plant transfer function in ICDM except by
reading in a new plant from Xmath.
The alternate plant transfer function can be read into ICDM from Xmath,
or set equal to the plant transfer function. Its properties are very different
from the plant transfer function, however:
•Using the Alternate Plant window, the user can graphically manipulate
the alternate plant transfer function.
•The alternate plant transfer function is never exported to—that is, used
by—the synthesis windows that need to know the plant: Pole Place,
LQG, H∞.
The alternate plant transfer function is used to verify a controller design
that was based on the plant transfer function. The alternate plant transfer
function is used only to show the alternate plant plots in the ICDM Main
window. Refer to the What the ICDM Main Window Plots Show section.
Summary
The plant transfer function is used for design; the alternate plant transfer
function is used for (robustness) analysis or validation.
The distinction is not so important for PID and root locus design, because
the controller does not depend on the plant.
Origin of the Controller
The controller can originate from—that is, be designed by—several
possible sources:
•An Open Synthesis window—For example, if the Pole Place Synthesis
window is open, then the current controller is determined by the Pole
Place Synthesis window. When you interact with the Pole Place
window by dragging a closed-loop pole to a new location, you will
be changing the current controller transfer function C.
•The History window—If the History window is open, the controller
comes from the list of controllers that have been saved on the history
Xmath Interactive Control Design Module2-6ni.com
Chapter 2Introduction to SISO Design
list. The current controller is the active or selected entry on the list of
saved controllers.
Only one synthesis window, or the History window, is allowed to be open
at any given time, which eliminates any possible confusion over the source
of the current controller. Remember the simple rule: If any synthesis
window, or the History window, is open, it is the source of the current
controller.
What the ICDM Main Window Plots Show
The plots in the ICDM Main window always use the plant and the current
controller. For example, the step response plot shows the step response of
the closed-loop system formed by the plant transfer function and the
current controller transfer function.
Optionally, the plots also can show the response of the alternate plant
connected with the current controller. In this case, the responses with the
plant and the alternate plant are shown in different line types or colors, and
can always be distinguished by data-viewing. Refer to the Data-Viewing
Plots section.
Controller/Synthesis Window Compatibilities
As much as possible, ICDM allows you to switch from one synthesis
method to another while keeping the current controller the same. As an
example, suppose the LQG Synthesis window is open, so the current
controller is an LQG controller. You then can open the Root Locus
Synthesis window, which will be initialized with the current (LQG)
controller. Moreover, opening the Root Locus window will cause the LQG
synthesis window to close. You now can continue the design using the Root
Locus
window. For example, you might delete some controller poles and
zeros—that is, do some interactive controller model reduction. When you
have deleted some controller poles and zeros, the controller will no longer
be an LQG controller, so you cannot expect to be able to open the LQG
window and retain the current controller.
There are some restrictions on the controllers that each synthesis window
can accept (read):
•The PID Synthesis window can accept any PID controller. The PID
Synthesis window is intuitive enough to figure out if a given controller
has PID form and, if so, set its parameters appropriately.
•The Root Locus window accepts all controllers, so it can be opened at
any time. The current controller will be read into the Root Locus
window. Thus, the Root Locus Synthesis window can be used to
interactively tweak or model-reduce a controller designed by another
method such as LQG.
•The Pole Place window accepts any controller with the same number
of poles as the plant, or one more pole than the plant if it has integral
action. In particular, the Pole Place window can accept any LQG or H∞
controller with or without integral action. This allows the user to
manually tune the closed-loop poles in a design that was originally
LQG or H∞.
•The LQG window only accepts controllers that were generated by the
LQG synthesis window.
•The H∞ Synthesis window only accepts controllers that were generated
by the H∞ Synthesis window.
•The History window, which can be considered as a synthesis window
since it exports a controller to the ICDM Main window, is compatible
with all controllers. If the current controller has been saved on the
history list, then the History window opens, with the current controller
the active controller on the history list. If the current controller has not
been saved on the history list, it is first automatically saved on the
history list, then the History window opens with the current controller
active.
These restrictions are important when you select a new synthesis window
or read a controller from Xmath into ICDM. If the controller is not
compatible with the synthesis window, the user is warned and given several
options about how to proceed. In general, these restrictions on controllers
and synthesis windows should be transparent to the user. ICDM is designed
to do something sensible whenever a conflict can arise, and to warn the user
before any damaging actions are taken.
When the new controller and synthesis window will be compatible, the new
synthesis window is initialized with the controller. The user can simply
start designing, using the new synthesis window, from the current design.
Roughly speaking, ICDM tries to keep the current controller when you
select a new synthesis window.
As an example, suppose the LQG
window is used to design an LQG
controller. The user then can open the Pole Place window, which will be
initialized with the LQG controller, and continue the design by dragging the
closed-loop poles to new locations. At this point, the user cannot expect to
import the current controller back into the LQG Synthesis window because
the controller is no longer an LQG controller. The user can, however, open
the Root Locus window, which will be initialized with the current
Xmath Interactive Control Design Module2-8ni.com
Using ICDM
Chapter 2Introduction to SISO Design
controller. Using the Root Locus window, the user could reduce the
controller to a PI controller by deleting poles and zeros, at which point
the PID window can be opened, initialized at the current controller.
ICDM can be used in many ways. For example, you might:
•Interactively design a controller.
•Switch synthesis methods and continue designing.
•Review and compare your best designs, and perhaps start designing
again from a previous design.
•Analyze the robustness of one or more controllers, with respect to
variations in the plant transfer function, export one or more controllers
to Xmath, such as for a nonlinear simulation or downloading to an
AC-100 for real-time testing.
The most common tasks are interactively designing a controller, and
interactively studying the robustness of a given controller. Figure 2-2
shows a simplified schematic representation of the interactive design loop.
Designer
ICDM Synthesis
Window
C(s)
ICDM Main
Window
G
Figure 2-2. Simple Representation of the Interactive Design Loop
The solid lines indicate graphical or alpha-numeric communication. The
dashed line shows the automatic export of the controller from the synthesis
window to the ICDM Main window. Notice that only one synthesis window
can be open at any given time. Also notice that for the purposes of design,
the user interacts only with the synthesis window and not with the ICDM
Main
Figure 2-3 shows a simplified schematic representation of the interactive
robustness analysis loop. Here, the user interacts with the Alternate Plant
window, interactively changing the alternate plant transfer function P
which is automatically exported to the ICDM Main window for analysis
and display. The user receives graphical information from the Alternate
Plant window displays and also the ICDM Main window.
Figure 2-3 shows a simplified schematic representation of the interactive
design loop.
Figure 2-3. Simple Representation of the Interactive Robustness Analysis
Designer
Alternate
Plant
Window
G
,
alt
P
alt
(s)
ICDM Main
Window
Figure 2-4 shows a simple ICDM session. The ICDM Main window is
shown at upper left, and the Pole Place Synthesis window is at lower right.
The user can drag the closed-loop poles in the Pole Place window. The
controller that is synthesized is automatically exported to the ICDM Main
window for analysis and plotting. Notice that the user’s graphical input is
mostly through the Pole Place window. The ICDM Main window is used
mostly for graphical output.
Xmath Interactive Control Design Module2-10ni.com
Chapter 2Introduction to SISO Design
Figure 2-4. Simple ICDM Session
General Plotting Features
All of the plots in the ICDM Main and other windows support several
useful features: arbitrary re-ranging, zooming, data-viewing, and
interactive (graphical) re-ranging.
Ranges of Plots and Sliders
Every ICDM window has an associated Ranges window that can be used to
set the ranges of the sliders and plots appearing in the window, as well as
other parameters such as numbers of points plotted. The Ranges window
can be opened by selecting Ranges on the View or Plot menu, or by
pressing <Ctrl-R>
in the window in question. In addition, every ICDM
Chapter 2Introduction to SISO Design
window has an autoscale feature, which can be invoked by selecting
Autoscale on the View or Plot menu of the window. When you invoke
Autoscale, ICDM tries to assign some reasonable values to the slider and
plot scales.
Zooming
You can enlarge any portion of an ICDM plot using plot zooming. Clicking
the middle mouse button with the cursor anywhere in the plot creates a
small box containing a magnified version of the plot near the cursor. The
middle mouse button can be held down and dragged, which creates an
effect similar to dragging a magnifying glass across the plot.
Pressing <Ctrl> along with the middle mouse
the size of the magnified box. Clicking with the middle mouse
increases the zoom factor. Pressing <Shift-Ctrl> along with middle mouse
button yields a large zoom box with a large magnification factor.
Zooming is a good way to read text in ICDM plots—for example, titles,
axis labels, and so on. These were intentionally made small because
zooming is easy.
button (on UNIX) increases
button
Data-Viewing Plots
Pointing at or near plotted information within the ICDM windows and
clicking the right mouse button causes a small window to appear that
identifies the plot and gives the coordinates of the nearest data point
(for example, Loop Gain, L(10.1Hz) |=+11.2dB), along with its index.
This feature is called data-viewing.
If the right mouse button is clicked and dragged, the selected plot is tracked,
even if another plot comes close.
Pressing <Shift> along with the right mouse button allows the user to get
values on the piecewise linear plot that interpolates the data values. In this
case, index = 45.7 means that the selected plot point is between the 45th and
46th X-coordinate entries.
Because all ICDM plots have extensive data-viewing features, the number
of labels used to identify plots are minimal. For example, the Root Locus
plot has red and black poles and zeros shown, but no indication or label in
the plot saying what these colors mean. On a black-and-white display, you
cannot distinguish between the red and black poles/zeros. You can read in
the Help file message that the red ones correspond to the plant, and the
black ones to the controller. However, the easiest way to find out what the
Xmath Interactive Control Design Module2-12ni.com
Chapter 2Introduction to SISO Design
poles and zeros are (and indeed, the only way on a black-and-white display)
is to use data-viewing.
As a general rule: To find out the meaning, purpose, or value of an object
(pole, zero, curve, and so on.) in an ICDM plot, use data-viewing.
Most objects in the ICDM Plot windows support data-viewing.
Interactive Plot Re-ranging
The range for any plot can be set in the appropriate Ranges window.
Alternatively, the ranges for plots can be interactively changed by grabbing
and dragging the axes of the plots. To make the plot range smaller, grab and
drag the appropriate axis to the desired location. A dashed line shows what
the new plot range will be. To make the plot range larger, click the left
mouse
button on the appropriate axis and, while holding the button down,
move the cursor away from the plot axis. In this case you will not see a
dashed line showing the new plot range. Instead, a small box will appear
that tells you what the new range will be. The new range is given by
extrapolation of the cursor position. You can move the cursor over other
plots, and even out of the plotting window, while increasing the range of
aplot.
If a plot range is symmetric, then the new range also will be symmetric.
That is, for a symmetric plot range the minimum and maximum values for
X or Y are the same except for sign. Changing the maximum will also
change the minimum.
These changes will be exported to the Ranges window.
Graphically Manipulating Poles and Zeros
In many of the ICDM windows, the user can grab and drag poles and zeros
graphically. The paradigm of grabbing and dragging poles and zeros is
uniform across windows. Remember that you cannot always grab and drag
every pole or zero you see in an ICDM plot—for example, in the Root
Locus window, you can grab and drag any controller pole or zero, but you
cannot grab or drag a plant pole or zero.
Editing Poles and Zeros
If there is a push button labeled Edit near the plotting area, you can use it
to edit poles and zeros. If you click the Edit button, the cursor will become
a pencil symbol. Select a pole or zero by clicking the left mouse
the cursor positioned at the desired pole or zero. A dialog box will open that
contains variable edit boxes for the value of the pole or zero (the real and
imaginary part when the pole or zero is complex) and, if appropriate, its
multiplicity. After you enter new values, you can select OK, which will
make the changes and dismiss the dialog box, or Cancel, which will
dismiss the dialog box without making the changes.
The values you type in will not be accepted if they are invalid—for
example, a negative multiplicity for a pole or zero.
Editing Poles and Zeros Graphically
The easiest way to change a pole or zero is to grab it by clicking the left
mouse button and dragging it to the desired location. You can only drag
poles and zeros in “sensible” ways. For example, you cannot drag a single
real pole or zero off the real axis to a complex location. More precisely, the
dragging of poles and zeros works as described in the following sections.
Complex Poles and Zeros
If the pole or zero that you grab is complex, then the complex conjugate
pole or zero will automatically move as required. In this case you can drag
the pole or zero in any direction.
Isolated Real Poles and Zeros
If the pole or zero that you grab is real and not very close to another real
pole or zero, then the pole or zero motion will be constrained to the real
axis. You cannot drag the pole or zero off the real axis.
Nonisolated Real Poles and Zeros and Almost Real
Pairs
If a pair of nearby poles or zeros is very near the real axis—that is, two
nearby real poles or zeros, or a pair of complex poles and zeros with very
small imaginary part—then the dragging motion will depend on how you
originally drag the poles or zeros. If you drag it up or down, then the pair
acts as a complex pair and there is no constraint on how you can drag it. For
example, two real poles that are very close to each other can be split into a
complex pair by grabbing either one and dragging it away from the real
axis. On the other hand, if you drag the selected pole or zero left or right,
then the pair act as a real pair—the selected pole or zero then can be
dragged only along the real axis, and the other pole or zero becomes real
Xmath Interactive Control Design Module2-14ni.com
Chapter 2Introduction to SISO Design
(if it was not already) but otherwise does not move. Thus, to make a pair of
complex poles real, you first drag one of them near the real axis and release.
Then you select one of these poles again, and this time drag it left or right.
This will cause the pair to become real.
Adding/Deleting Poles and Zeros
This section describes how you are allowed to add or delete poles or zeros
in some windows. Bear in mind that ICDM may not allow you to add or
delete a zero or pole in certain cases—for example, if the action would
result in a nonproper controller. In this situation, you will be warned with
a dialog box which opens.
To add a zero, click the Add Zero button that is near the plotting area, or
select the Add Zero entry from the Edit menu. In some cases there is an
accelerator for this, such as typing
cause the cursor to become a crosshairs symbol. If you click the left mouse
button with the cursor very near the real axis, then you will create one real
zero. If you click the left mouse button with the cursor farther from the real
axis, then you will create a pair of complex conjugate zeros. Creating a pole
is similar; typing
complex conjugate pole pair. To abort a pole or zero add operation, click
the left mouse button with the cursor outside the plot area.
p in the window is the accelerator for creating a pole or
z in the window. These actions will
To delete a pole or zero, press the <Ctrl> key near the plotting area, select
the Delete entry from the Edit menu, or enter
actions will cause the cursor to become a skull and crossbones symbol.
Then click the left mouse button with the cursor near the pole or zero that
you want to delete. If the pole or zero is complex, then its complex
conjugate also will be destroyed.
You always can select Undo in the Edit menu to restore deleted poles or
zeros back, provided you have not made any other changes since deleting.
To abort a delete operation, click the left mouse button with the skull and
crossbones cursor in a free area of the plot.
d in the window. These
Adding/Deleting Pole-Zero Pairs
When you add (or delete) a pole or zero, you can drastically change the
transfer function that you are editing. In some cases, it may be better to add
(or delete) a pole-zero pair—that is, a pole and zero in exactly the same
location. Adding a pole-zero pair does not change the transfer function at
all until the pole and zero are moved apart.