36
Appendix B MATLAB Aided Control System Design: Conventional Control theory, at the introductory level, deals primarily with linear time-invari- ant systems. Few real systems are exactly linear over their whole operating range, and few systems have parameter values that are precisely constant forever. But many systems approximately satisfy these conditions over a sufficiently narrow operating range. Our focus here is on a design procedure which is applicable to linear time-invariant systems. Control system design begins with a proposed plant or process whose satisfactory dynamic performance depends on feedback for stability, distur- bance regulation, tracking accuracy or reduction of the effects of parameter variations. We give here an outline of the design process that is general enough to be useful whether the plant is an electronic amplifier or a large structure to be placed in earth orbit. Obviously, to be widely applicable, our outline has to be vague with respect to physical details and specific only with respect to feedback-control problems. To present our outline, we divide the control design problem into a sequence of characteristic steps. This sequence of steps is an approximation of good design practice; there will certainly be variations in the sequence depending upon the problem in hand. In some cases, we may carry out the steps in a different order; in others, we may omit a step or add one. Also, the design methods covered in our sequence of steps are not the only methods available in control engineers toolbox. There are other powerful methods available in the literature. Our selection in the outline is based on the design methods covered in the present text. This appendix also provides guidance to the reader to integrate the learning of control system analysis and design material with the learning of how one computes the answers with MATLAB software package. The appendix is not meant to be a substitute for the MATLAB software manuals; rather, it will help

Matlab Aided Control System Design_Conventional

Embed Size (px)

DESCRIPTION

Control systems

Citation preview

Appendix BMATLAB Aided Control

System Design: Conventional

Control theory, at the introductory level, deals primarily with linear time-invari-ant systems. Few real systems are exactly linear over their whole operatingrange, and few systems have parameter values that are precisely constantforever. But many systems approximately satisfy these conditions over asufficiently narrow operating range. Our focus here is on a design procedurewhich is applicable to linear time-invariant systems.

Control system design begins with a proposed plant or process whosesatisfactory dynamic performance depends on feedback for stability, distur-bance regulation, tracking accuracy or reduction of the effects of parametervariations. We give here an outline of the design process that is general enoughto be useful whether the plant is an electronic amplifier or a large structure tobe placed in earth orbit. Obviously, to be widely applicable, our outline has tobe vague with respect to physical details and specific only with respect tofeedback-control problems.

To present our outline, we divide the control design problem into a sequenceof characteristic steps. This sequence of steps is an approximation of gooddesign practice; there will certainly be variations in the sequence dependingupon the problem in hand. In some cases, we may carry out the steps in adifferent order; in others, we may omit a step or add one. Also, the designmethods covered in our sequence of steps are not the only methods available incontrol engineer�s toolbox. There are other powerful methods available in theliterature. Our selection in the outline is based on the design methods covered inthe present text.

This appendix also provides guidance to the reader to integrate the learningof control system analysis and design material with the learning of how onecomputes the answers with MATLAB software package. The appendix is notmeant to be a substitute for the MATLAB software manuals; rather, it will help

Digital Control and State Variable Methods876

guide the reader to the appropriate place in the manuals for specific calcula-tions. The manuals are the best source of learning the package; our attempthere is only to expedite the process of making full use of the power of thepackage for control system design problems.

The MATLAB statements/responses given in this appendix are fromMATLAB version 6 and Control System Toolbox version 5, on the Windowsplatform. Refer [180] for an introduction to the MATLAB environment.

A sequence of characteristic steps of MATLAB-aided control system designfollows.

1. Make a system model

When a control engineer is given a control problem, often one of the first tasksthat he undertakes is the development of the mathematical model of the processto be controlled, in order to gain a clear understanding of the problem.Basically, there are only a few ways to actually generate the model. We can usethe first principles of physics to write down a model. Another way is toperform �system identification� via the use of real plant data to produce amodel of the system. Sometimes, a combined approach is used where we usephysics to write down a general differential equation we believe representsplant behaviour, and then we perform experiments on the plant to determinecertain model parameters or functions.

For time-invariant systems, mathematical model building based on physicallaws normally results in a set of differential equations. These equations, whenrearranged as a set of first-order differential equations, result in a state-spacemodel of the following form:

&x = f (x, u)(B.1)

y = h(x, u)

where f(◊) and h(◊) are nonlinear functions of their arguments; x(t) is the n × 1internal state vector, u(t) is the p × 1 control input vector, and y(t) is the q × 1measured output vector. Overdot represents differentiation with respect totime t. The first equation, called the state equation, captures the dynamicalportion of the system and has memory inherent in the n integrators. The secondequation, called the output or measurement equation, represents how we choseto measure the system variables; it depends on the type and availability ofsensors.

Model-building and its validation will require simulation of the model. Thenonlinear state-space equations of the form (B.1) are very easy to simulate on adigital computer. MATLAB provides many Runge-Kutta numerical integrationroutines for solving ordinary differential equations; the function ode23 usuallysufffices for our applications. Use of ode23 function for solvingordinary differential equations of the type (B.1) will be demonstrated later.

Appendix B: MATLAB Aided Control System Design: Conventional 877

2. Determine the required performance specifications

This step requires an understanding of the process: what it is intended to do,how much error is permissible, how to describe the class of command anddisturbance signals to be expected, what the physical capabilities and limita-tions are, etc. A control system normally operates in one of the two fashions:

(i) The system is designed to regulate the output at a fixed level prescribedby a constant input (called the set-point) in the face of uncertainties inthe plant behaviour and environmental disturbances to the plant.

(ii) The system is designed to drive the output to track a changing input inthe face of uncertainties in the plant behaviour and environmental distur-bances to the plant. A system will be required to follow in practice afamily of tracking functions.

As the nature of the transient response of a control system is dependent uponthe system poles only and not on the type of the input, it is sufficient to analysethe transient response to one of the standard test signals; a step is generallyused for this purpose.

In specifying the steady-state response characteristics, it is common tospecify the steady-state error of the system to one or more of the standard testsignals�step, ramp and parabola. Theoretically, it is desirable for a controlsystem to have the capability of responding with zero error to all the polynomialinputs of degree k : r(t) = (t k/k!); t ≥ 0, k = 0, 1, 2, … . The higher the value ofk, the more stringent is the steady-state requirement, making it difficult tosatisfy other specifications on the performance of the system. It is thereforenecessary that tracking commands which a control system is expected to besubjected to, be carefully examined and steady-state specifications be formu-lated for inputs with minimum possible value of k.

Typical results of the second step in the design process are specificationsthat the system have (when subjected to command/disturbance inputs)

(i) a step response inside some constraint boundaries�specified by risetime, settling time, peak overshoot, etc.; and

(ii) steady-state error to step/ramp/parabolic input within prescribed limitsunder the constraints imposed by physical limitations of the selectedplant, actuator, and sensor.

Another standard test signal of great importance is the sinusoidal signal: asinusoidal function with variable frequency is used as input function; inputfrequency is swept from zero to beyond the significant range of systemcharacteristics. Curves in terms of amplitude ratio and phase between input andoutput as a function of frequency, display the frequency response of the sys-tem.

Requirements that a system have a step response inside some constraintboundaries�specified by rise time, settling time, peak overshoot, etc., canequivalently be represented as requirements that the system have a frequencyresponse satisfying certain constraints�specified by gain margin, phase mar-gin, bandwidth, etc.

Digital Control and State Variable Methods878

3. Make a linear model

From the specifications, identify the equilibrium point of interest and constructa small-signal dynamic model. Validate the model with experimental data wherepossible. Regrettably, we have a tendency to view the process as a lineartime-invariant model, capable of responding to inputs of arbitrary size, and wetend to overlook the fact that the linear model is a very limited representation ofthe system, valid only for small signals, short times, and particular environ-mental conditions. We should not confuse the approximation with reality. Wemust be able to use the simplified model for the intended purpose and to returnto an accurate model or the actual physical system to really verify the designperformance.

Linearization of equations of the form (B.1) leads to a model of the formgiven below:

&x = Ax + Bu

y = Cx + Du(B.2)

The n × 1 vector x is the state of the system, A is the constant n × n systemmatrix, B is the constant n × p input matrix, C is the constant q × n outputmatrix, and D is the constant q × p matrix.

While considering only single-input, single-output (SISO) problems, we takenumber of inputs, p, and the number of outputs, q, to be one. For SISO prob-lems, the state variable model may be expressed as

&x = Ax + bu(B.3)y = cx + du

Note that matrices B, C, and D of the MIMO (multi-input, multi-output)representation now become vectors b and c, and scalar d respectively; and theinput vector u and output vector y of the MIMO representation now becomescalar variables u and y respectively.

Validation of the linear model with experimental data or simulation dataobtained from (B.1) will require simulation of Eqns (B.2)/(B.3). MATLABprovides many functions for simulation of linear models. We consider heresome functions important from the control-engineering perspective.

For the state-space representation (B.2)/(B.3), the data for the modelconsists of four matrices. For convenience, the MATLAB provides customizeddata structure (LTI object). This is called the SS object. This object encapsu-lates the model data and enables you to manipulate the LTI system as a singleentity, rather than as a collection of data vectors and matrices.

An LTI object of the type SS is created whenever you invoke the construc-tion function ss.

sys = ss(A,B, C,D) (B.4)creates the state-space model (B.2).

When the four matrices of the model (B.3) are entered,sys = ss(A,b,c,d) (B.5)

creates a state-space model for SISO systems.

Appendix B: MATLAB Aided Control System Design: Conventional 879

For model sys in (B.5), step(sys) will generate a plot of unit-step responsey(t) (with zero initial conditions). The time vector is automatically selectedwhen t is not explicitly included in the step command.

If you wish to supply the time vector t at which the response will be com-puted, the following command is used.

step(sys,t)

You can specify either a final time t = Tfinal or a vector of evenly spacedtime samples of the form

t = 0: dt : Tfinal

When invoked with left-hand arguments such as

[y,t] = step(sys)

[y,t,X] = step(sys)

y = step(sys,t)

no plot is generated on the screen. Hence it is necessary to use a plot commandto see the response curves. The vector y and matrix X contain the output andstate response of the system respectively, evaluated at the computation pointsreturned in the time vector t (X has as many columns as states and one row foreach element in vector t).Other time-response functions of interest to us are

impulse(sys) % impulse response

initial(sys,x0) % free response to initial state vector x0

Isim(sys,u,t) % response to input time history in vector u

Isim(sys,u,t,x0) % having length (t) rows

For MIMO models (B.4), these functions produce an array of plots.

4. Make a design model

Complex processes and machines often have several variables (outputs) thatwe wish to control, and several manipulated inputs are available to provide thiscontrol. In many situations, one input affects primarily one output and has onlya weak effect on other outputs; it becomes possible to ignore weak interactions(coupling) and design controllers under the assumption that one input affectsonly one output. Input-output pairing, to minimize the effect of interactions andapplication of SISO control schemes to obtain separate controllers foreach input-output pair, results in an acceptable performance. This, in fact,amounts to considering the multivariable system as consisting of an appropriatenumber of separate SISO systems. Coupling effects are considered asdisturbances to the separate control systems. We will limit our discussion toSISO design models.

Digital Control and State Variable Methods880

Depending on the type of model you use, the data for your model mayconsist of a simple numerator/denominator pair for transfer functions or fourmatrices for state-space models. MATLAB provides LTI objects TF and SS fortransfer functions and state-space models respectively. We have alreadydiscussed the creation of LTI object of the type SS.

An LTI object of the type TF is created whenever you invoke the construc-tion function tf.

sys = tf(num,den) (B.6)

num and den vectors specify n(s) and d(s) respectively, of the transferfunction G(s) = n(s)/d(s).

MATLAB has the means to perform model conversions. Given the SS modelsys_ss, the syntax for conversion to TF model is

sys_tf = tf(sys_ss)

Common pole-zero factors of G(s) must be cancelled before we can claimthat we have the transfer function representation of the system. To assist us inpole-zero cancellation, MATLAB provides minreal function.

sysr = minreal(sys_tf)

Given the TF model sys_tf, the syntax for conversion to SS model is

sys_ss = ss(sys_tf)

MATLAB provides many functions for simulation of transfer functions. Forthe transfer function model sys = tf(num,den), step(sys) will generate a plotof unit-step response y(t) from the transfer function

Y s

U s

( )

( ) = G(s) =

num

den

The time vector is automatically selected when t is not explicitly included inthe step command. If you wish to supply the time vector t at which theresponse will be computed, the following command is used.

step(sys,t)

When invoked with left-hand arguments such as

[y,t] = step(sys)

y = step(sys,t)

no plot is generated on the screen. Hence, it is necessary to use a plot

command to see the response curve. The vector y has one column and one rowfor each element in time vector t.Other time-response functions of interest to us are

impulse(sys) % imulse response

Isim(sys,u,t) % response to input time history in

% vector u having length (t) rows.

Appendix B: MATLAB Aided Control System Design: Conventional 881

Select sensor and actuator and construct a design model for the feedbacksystem. Process transfer function models frequently have deadtime (input-output delay). TF object for transfer functions with deadtime can be createdusing the syntax

sys = tf(num,den,�InputDelay�, value)

5. Discretize the design model

Various forms of devices have been used for mechanization of industrialautomatic controllers. Electronic controllers (based on op amp circuits) andcomputer-based controllers are commonly used in industrual applications.

Opting for computer-based controllers leads to two design alternatives.

(i) Design using emulation: The design is done in the continuous-time do-main totally ignoring the fact that a sampler and a digital computer willeventually be used. Having the continuous-time controller, we then con-vert the design to a digital control.This method produces a good controller for the case when the samplingrate is about 30 times faster than the bandwidth, but produces a control-ler needing further refinement for the case when the sampling rate isabout 6 times the bandwidth. For a sampling period of T sec, sample-and-hold introduce a time delay of approximately T/2 sec.A method that has been frequently used by practising engineers is basedon approximation of sampled-data system by a continuous-time systemthat includes the transfer function e� sT/2 in the forward path in cascadewith the plant transfer function G(s). An analog controller D(s) is thendesigned for the plant G(s)e�sT/2; this design is then converted to a digitalcontrol.Carrying out the initial design using continuous-time methods is a goodidea, independent of whether it will be used in a subsequent emulationstep or merely as a guide for direct digital design. Knowing how thesystem could perform if implemented with analog hardware provides atarget for how well the digital system should perform, and helps inselecting the sampling rate.

(ii) Direct digital design: The other alternative is to design the controllerdirectly in discrete-time domain. At the outset, the plant model is trans-formed into a discrete-time system and the design iterations to achievethe desired system performance are carried out in discrete-time domain.By carrying out the digitization on the plant model, instead of on continu-ous-time controller as was done for the emulation design method, theapproximate nature of the process can be eliminated. This is sobecause the actual plant must be preceded by a hold (usually a zero-order hold) and, therefore, has an exact discrete equivalent that includesthe lagging effect of the hold. The impact of using an exact discreteequivalent of the plant is that a digital controller found using direct digitaldesign methods may yield performance close to the desired specifica-tions for slow sample rates.

Digital Control and State Variable Methods882

There are various standard methods for discretization of continuous-timemodels. None of these methods is exact for all types of input because nosampled system has access to the input time history between samples. Inessence, each approximation makes a different assumption about what thecontinuous input is doing between samples. MATLAB software has functionsthat allow use of various approximations. We consider here couple of functionsimportant from control-engineering perspective.

State-space model of a discrete-time SISO system is of the form

x(k + 1) = Fx(k) + gu(k)

y(k) = cx(k) + du(k)

Construction of the SS object for this discrete-time model requires fourmatrices F, g, c and d, and the sampling interval T.

sysd = ss(F,g,c,d,�T�)

Transfer function model of a discrete-time SISO system is of the form

G(z) = n z

d z

( )

( ) =

num

den

Construction of the TF object for this discrete-time model requires num and denpolynomials in z, and the sampling interval T.

sysd = tf(num, den,�T�)

For a continuous-time model sysc, the command

sysd = c2d(sysc,T) % T is sampling period in seconds

performs ZOH conversion by default.sysc is continuous-time state-space system (B.3) and sysd is the discrete-

time system

x(k + 1) = Fx(k) + gu(k)

y(k) = cx(k) + du(k)

assuming a zero-order hold on the input�the control input is assumedpiecewise constant over the sample time T.

[F,g,c,d] = ssdata(sysd)

c2d can also be used with transfer function models. Continuous-time systemsysc representing

G(s) = num

den

gets converted to the discrete-time system sysd, representing

Gh0G(z) = numz

denz

[numd,dend] = tfdata(sysd,�v�)

returns numerator and denominator of transfer function as row vectors.

Appendix B: MATLAB Aided Control System Design: Conventional 883

To use alternative conversion schemes, specify the method

sysd = c2d(sysc,T,�tustin�) % Use Tustin approximation

The function c2d(sysc,T,�tustin�) converts a continuous-time system to dis-crete-time system using trapezoidal rule for integration, also called the bilineartransformation. (The function d2c is an inverse operation�it converts dis-crete-time models to continuous-time form).

MATLAB provides many functions for simulation of discrete-time systems.step(sys) will generate a plot of unit-step response y(k) of the discrete-timesystem (transfer function model or state-space model) sys. Zero initial state isassumed if sys represents a state-space model. The number of sample points isautomatically determined when time is not explicitly included in the command.

If you wish to supply the sample points vector k at which the response willbe computed, the following command is used.

step(sys,t)

You can specify t as a vector of sample points:

t = 0:T:tfinal

When invoked with left-hand arguments, no plot is generated on the screen; itis necessary to use a plot command to see the response curves.

Other time-response functions of interest to us are

impulse(sys) % impulse response

initial(sys,x0) % free response to initial state vector x0

Isim(sys,u,t) % response to input time history in

Isim(sys,u,t,x0) % vector u having length (t) rows

You can analyze the time response using the LTI Viewer, which is a graphicaluser interface for viewing and manipulating response plots of LTI models. Forexample

Itiview(�step�,sys)

will open a window displaying the step response of the LTI model sys. Onceinitialized, the LTI Viewer assists you with the analysis of the response byfacilitating such functions as zooming into regions of the response plots,calculating response characteristics such as peak response, settling time, risetime, steady-state, toggling the grid on or off the plot, and many other usefulfeatures.

6. Try a simple lag-lead design

To form an initial estimate of the complexity of the design problem, sketchfrequency response plot (Bode plot) and root-locus plot with respect to plantgain. Try to meet the specifications with a simple controller of lag-leadvariety. Do not overlook feedforward of the disturbances if the necessary sen-sor information is available. Consider the effect of sensor noise, and compare a

Digital Control and State Variable Methods884

lead network in the forward path to minor-loop feedback structure havingdirect feedback from velocity sensor, to see which gives a better design.

For design by root-locus method, the design specifications are translatedinto desired dominant closed-loop poles. Other closed-loop poles are requiredto be located at a large distance from the jw -axis. It may be noted that pole-placement methods do not allow the designer to judge how close the systemperformance is to the best possible. Also, there is lack of visibility intolow-frequency disturbance rejection. This can cause many problems: thedisturbance rejection may not be optimized, and the plant-parameter variationsmay cause large closed-loop response variations. Stability margins on Nyquist/Bode plots give a better robustness measure. For this reason, though the speci-fications on the closed-loop performance are often formulated in time domain,it is worthwhile to convert them into frequency-domain specifications and thendesign the compensator with frequency-domain methods. Root-locus plots arevery impressive analysis tools for systems that have been designed byfrequency-domain methods. For example, these plots can be valuable for theanalysis of the effects of certain parameter variations on stability.

Note that the above comments reflect the opinion of practising engineers.Teaching in universities relies heavily on both the methods; our textbook alsofollows the standard pattern.

The function bode(sys) generates the Bode frequency-response plot for LTImodel sys. This function automatically selects the frequency values by placingmore points in regions where the frequency response is changing quickly. Thisrange is user-selectable utilizing the logspace function. When invoked withleft-hand arguments,

[mag,phase,w] = bode(sys)

[mag,phase] = bode(sys,w)

return the magnitude and phase of the frequency response at the frequencies w.The function margin determines gain margin, phase margin, gain crossover

frequency and phase crossover frequency.The function bode handles both continuous-time and discrete-time models.

For continuous-time models, it computes the frequency response by evaluatingthe transfer function G(s) on the imaginary axis s = jw. For discrete-timemodels, the frequency response is obtained by evaluating the transfer functionGh0G(z) on the unit circle z = e jwT; where T is the sample time.

mag(w) = |Gh0G(e jwT)|

phase(w) = – Gh0G(e jwT)

These magnitude and phase relationship make useless the hand-plotting proce-dures developed by Bode. Also the ease with which a designer can predict theeffect of pole and zero changes on the frequency response is lost.

The w-transform approach was developed so that Bode-plots plotting andinterpretation are almost as easy for discrete-time systems as they are for

Appendix B: MATLAB Aided Control System Design: Conventional 885

continuous-time ones. Therefore, in practice, frequency-response design ofsystems using a discrete-time model is often carried out using thew-transformation; however, the need to replace the z-plane with the w-plane isless obvious in today�s environment where good software tools are universallyavailable for the designer to perform the plotting. The essential idea of thismethod is to retain many design features from the continuous-time systems.

The discrete-time model of the plant Gh0G(z) = num/den is transformed withbilinear mapping using the MATLAB function d2c. Construction of discrete-time model requires numerator polynomial num in z, denominator polynomialden in z and value of the sampling interval T.

sysd = tf(num,den,�T�)

Conversion to w-domain is given by

sysw = d2c(sysd,�tustin�)

The Nichols frequency-response plot can be generated using nichols

function; the frequency range is user-selectable. A Nichols chart grid is drawnon the existing plot with the ngird function. These functions are applicable toboth continuous-time and discrete-time systems.

You can analyze the frequency response using the LTI Viewer, which is agraphical user interface for viewing and manipulating response plots of LTImodels. For example,

Itiview(�nichols�,sys)

will open a window displaying the Nichols plot of the LTI system sys. Onceinitialized, the LTI Viewer assists you with the analysis of the response byfacilitating such functions as zooming into regions of response plot; calculatingresponse characteristics such as resonance peak, resonance frequency, band-width, stability margins, and many other useful features.

MATLAB function rlocus(sys) calculates and plots the root locus of theopen-loop SISO model sys. If sys has transfer function

G(s) = n s

d s

( )

( )

rlocus adaptively selects a set of positive gains K and produces a smooth plotof the roots of

d(s) + Kn(s) = 0

Alternatively, rlocus(sys,K) uses the user-specified vector K of gains toplot the root locus.

The function rlocfind returns the feedback gain associated with a particularset of poles on the root locus. [K,poles] = rlocfind(sys) is used forinteractive gain selection. The function rlocfind puts up a crosshair cursor onthe root locus plot that you use to select a particular pole location. The rootlocus gain associated with this point is returned in K and the column vectorpoles contains the closed-loop poles for this gain. To use this command, theroot locus must be present in the current figure window.

Digital Control and State Variable Methods886

The functions rlocus and rlocfind work with both the continuous-time anddiscrete-time SISO systems. The functions sgrid/spchart and zgrid/zpchart

are used for wn and z grid on continuous-time and discrete-time root locus,respectively.

You can design a compensator using the SISO Design tool, which is aGraphical User Interface (GUI). To initialize this GUI, type

sisotool(sys)

7. Try state-space design

Choices in the design methods are a design variable in the whole process. Manya times, the choice of a design method depends upon our selection of thesensed quantities to be used for feedback. If we decide to sense and feedbackonly the output, then the trial-and-error lead-lag type design methods is a goodchoice. However, if these compensators do not give entirely satisfactory per-formance, we may attempt to install sensors for all the state variables andconsider design methods requiring full state feedback.

The approach we may take at this point is pole placement; that is, havingpicked a state-feedback control law with enough parameters to influence all theclosed-loop poles, we will arbitrarily select the desired pole locations of theclosed-loop system and see if the approach gives satisfactory performance asspecified in Step 2.

Of course, used without thought, the method of pole placement can alsoresult in a design that requires unreasonable levels of control effort, or is verysensitive to changes in plant model. In fact, there is no trial-and-error involvedin calculating the parameters of state-feedback control law for a given set ofdesired closed-loop poles. The trial-and-error in the pole-placement designprocess is in selecting the closed-loop pole locations that meet the performancespecifications of Step 2 under the constraints imposed on plant, actuator andsensors.

The optimal design method can also be used to design a state-feedbackcontrol law. It is based on minimizing a cost function that consists of theweighted sum of squares of the state errors and control. The relativeweightings between the state variables and control are varied by the designer inorder to meet all the system specifications of Step 2.

We use a state estimator to implement state-feedback control law when allthe states cannot be sensed using hardware sensors. The state estimator is asoftware sensor. We select the closed-loop estimator error poles to be abouteight times faster than the control poles. The reason for this is to keep theerror-poles from reducing the robustness of the design; a fast estimator willhave almost the same effect on the response as no estimator at all.

If we opt for optimal design method for the estimator, the relative weightingsin the cost function are properly selected to meet the requirements of fastestimation.

Appendix B: MATLAB Aided Control System Design: Conventional 887

Controllability and observability of a system in state variable form can bechecked using the MATLAB functions ctrb and obsv, respectively. The inputsto be ctrb function are the system matrix A and the input matrix b; the outputof ctrb function is the controllability matrix U. Similarly, the inputs to the obsv

function are the system matrix A and the output matrix c; the output is observ-ability matrix V. The function rank gives the controllability and observabilityproperties.

Pole-placement design may be carried out using the MATLAB functionacker. However, the computation of the controllability matrix has very poornumerical accuracy and this carries over to Ackermann�s formula. Thefunction acker can be used for the design of SISO systems with a small(£ 5) number of state variables. For more complex cases a more reliableformula is available, implemented in MATLAB with the function place.A modest limitation on place is that none of the desired closed-loop poles maybe repeated, that is, the poles must be distinct; a requirement that does notapply to acker.

The MATLAB function lyap solves Lyapunov matrix equation. Thesolution to discrete matrix Lyapunov equation is found with dlyap. The func-tion lqr solves the linear quadratic regulator problem and associated Riccatiequation. Discrete linear quadratic regulator design is carried out using thefunction dlqr.

8. Compute a digital equivalent of the analog controller

After reaching the best compromise on controller design choice, the next stepis to build a computer model, and compute (simulate) the performance of thedesign. At this stage, we are required to compute a digital equivalent of theanalog controller. This allows the final design to be implemented using digitalprocessor logic.

Given the analog controllerD(s) = num /den

the following commands give the discrete equivalentD(z) = numz /denz

of the controller, with T as the sampling period.sysc = tf(num,den)

sysd = c2d(sysc,T,�tustin�)

9. Simulate the performance of the design

After reaching the best compromise among process modification, actuator andsensor selection, and controller design choice, run a computer model of thesystem. This model should include important nonlinearities�such as actuatorsaturation, and the parameter variations you expect to find during operation ofthe system. The simulation will confirm stability and robustness and allow youto predict the true performance you can expect from the system.

Digital Control and State Variable Methods888

To use the MATLAB numerical integration routines, the system dynamicsmust be written into an M-file. The state-space description makes this verydirect; in fact, ordinary differential equation solver function ode23 requires thedynamics in state-space form (B.1).

As an example, consider van der Pol oscillator which has dynamics

&&y + a (y2 � 1) &y + y = u

Defining the states as x1 = position, x2 = velocity, we get

&x1 = x2

&x2 = a(1 � x12 ) x2 � x1 + u

For the van der Pol oscillator, the required M-file is

function xdot = vdpol (t, x)

alpha = 0.8; u = 0;

xdot = [x(2); alpha*(1 � x(1)^2)*x(2) � x(1) + u];

where it is assumed that u(t) = 0. Now the sequence of commands required toinvoke ode23 and obtain time history plots, for instance, over a time horizon of50 sec is

t0 = 0; tf = 50;

x0 = [0.1;0.1];

[t,x] = ode23(�vdpol�, [t0 tf], x0);

plot(t, x)

The phase-plane plot of x2 versus x1 is obtained using the command:

plot(x(:,1), x(:,2))

10. Build a prototype

As a final step before production, it is common to build and test a prototype. Atthis point, we verify the quality of the model, discover unsuspected vibrationand other modes, and consider ways to improve the design. After these tests,we may reconsider the sensor, actuator and process unless time, money orideas have run out.

MATLAB/SIMULINK

In the simulation process, the computer is provided with appropriate input dataand other information about system structure, operates on this input data andgenerates output data, which it subsequently displays. Several softwarepackages that have been produced over the last two decades include computerprograms that allow these simulation operations. Over the years, thesesimulation packages have become quite sophisticated, powerful and very�user-friendly�. The usefulness and importance of these software packages is

Appendix B: MATLAB Aided Control System Design: Conventional 889

undeniable, because they greatly facilitate the analysis and design of controlsystems. They provide a tremendous tool in the hands of control engineers.However, a word of caution must be sounded. The availability of suchpackages and the ease with which one can use them should in no way detractone from learning the underlying concepts. Mastry of the theoretical founda-tion is a prerequisite for its correct implementation.

MATLAB/SIMULINK is one of the most successful software packagescurrently available, and is particularly suited for work in control. It is a power-ful, comprehensive and user-friendly software package for simulation studies.Our objective here is to help the reader gain a basic understanding of thissoftware package by showing how to set up and solve a simulation problem.Interested readers are encouraged to further explore this very complete andversatile mathematical computation package.

A very nice feature of SIMULINK is that it visually represents the simulationprocess by using simulation block diagrams. Especially, functions are repre-sented by �subsystem blocks� that are then interconnected to form aSIMULINK block diagram that defines the system structure. Once the struc-ture is defined, parameters are entered in the individual subsystem blocks thatcorrespond to the given system data. Some additional simulation parametersmust also be set to govern how the numerical computation will be carried outand how the output data will be displayed. As a matter of fact, the SIMULINKblock diagrams are essentially the same we have used in the text to describecontrol system structures and signal flow.

Because Simulink is graphical and interactive, we encourage you to jumpright in and try it. For a technical introduction to Simulink, read the document�Using Simulink�. To help you start using Simulink quickly, we describe herethe simulation process though a demonstration example on MicrosoftWindows platform with MATLAB version 6, Control Toolbox version 5 andSIMULINK version 4.

To start SIMULINK, enter simulink command at the MATLAB prompt.SIMULINK Library Browser appears which displays tree-structured view ofthe SIMULINK block libraries. It contains several nodes; each of these nodesrepresents a library of subsystem blocks that is used to construct simulationblock diagrams. You can expand/collapse the tree by clicking on the + -boxes beside each node.

Expand the node labeled �Simulink�. Subnodes of this node (Continuous,Discrete, Functions & Tables, Math, Nonlinear, Signals & Systems, Sinks,Sources) are displayed. Expanding the �Sources� subnode displays a long listof Sources library blocks; contents are displayed in the diagram view. Thepurpose of the block �Step� is to generate a step function. The block �Con-stant� generates a specified real or complex value, independent of time.

You may now collapse the Sources subnode, and expand the �Sinks�subnode. A list of Sinks library blocks appears. The purpose of block labeled�XY Graph� is to display an X-Y plot of signals using a MATLAB figurewindow. The block has two scalar inputs; it plots data in the first input (the x

Digital Control and State Variable Methods890

direction) against data in the second input (the y direction). This block is usefulfor phase-plane analysis. The block �Scope� displays its inputs (signals gener-ated during a simulation) with respect to simulation time. The block �ToWorkspace� transfers the data to MATLAB workspace.

You may now collapse the Sinks subnode and expand the �Continuous�subnode. A list of library blocks corresponding to this subnode appears. Thepurpose of the �Derivative� block is to output the time derivative of the input.We will use this block for phase-plane analysis. The �State-Space� block im-plements a linear system whose behaviour is described by a state variablemodel. The �Transfer Fcn� block implements a transfer function.

The �Nonlinear� subnode has blockset of various nonlinearities: Backlash,Coulomb and Viscous Friction, Deadzone, Relay, Saturation, etc.

The �Math� subnode has several blocks. The block �Sum� generates thesum of inputs. It is useful as an error detector for control system simulations.The �Sign� block indicates the sign of the input (The output is 1 when the inputis greater than zero: the output is 0 when the input is equal to zero; and theoutput is �1 when the input is less then zero). We can use this block to repre-sent ideal relay nonlinearity.

Expand now the node �Control System Toolbox�. The block �LTI system�accepts the continuous and discrete objects as defined in the Control SystemToolbox. Transfer functions and state-space formats are supported in thisblock.

We have described some of the subsystem libraries available that contain thebasic building blocks of simulation diagrams. The reader is encouraged toexplore the other libraries as well. You can also customize and create your ownblocks. For information on creating your own blocks, see the MATLAB docu-mentation on �Writing S-Functions�.

We are now ready to proceed to the next step, which is the construction ofa simulation diagram. To do this, we need to open a new window. Click theNew button on the Library Browser�s toolbar. A new window opens up thatwill be used to build up an interconnection of SIMULINK blocks from thesubsystem libraries. This is an �untitled� window; we call it the SimulationWindow. We consider here phase-plane analysis of nonlinear system describedin Review Example 10.5.

With the �Nonlinear� subnode of Simulink node expanded, move the pointerand click the block labeled �Saturation�, and while keeping the mouse buttonpressed down, drag the block and place it inside the Simulation Window, andrelease the mouse button.

With the �Control System Toolbox� node expanded, click the block labeled�LTI system�, drag to the Simulation Window and place it on one side of theSaturation block. Duplicate �LTI system� on the other side of Saturation block.

Drag the block labeled �Sum� from the �Math� subnode of Simulink node,the block �Constant� from the �Sources� subnode of Simulink node, the blocks�XY Graph� and �To Workspace� from �Sinks� subnode of Simulink node,and the block �Derivative� from the �Continuous� subnode of Simulink node.

Appendix B: MATLAB Aided Control System Design: Conventional 891

We have now completed the process of dragging subsystem blocks fromthe appropriate libraries and placing them in the Simulation Window. The nextstep is to interconnect these subsystem blocks and obtain the structure ofsimulation block diagram. To do this, we just need to work in the SimulationWindow.

The first step is to rearrange the blocks in the Simulation Window in a speci-fied structure. This will require moving a block from one place to anotherwithin the Simulation Window. This can be done by clicking inside the block,keeping the mouse button pressed, dragging the block to the new desired loca-tion and releasing mouse button.

Lines are drawn to interconnect these blocks as per the desired structure. Aline can connect the output port of one block with the input port of anotherblock. A line can also connect the output port of one block with input ports ofmany blocks by using branch lines.

To connect the output port of one block to the input port of another block,position the pointer on the first block�s output port; the pointer shape changesto a crosshair. Press and hold down the mouse button. Drag the pointer to thesecond block�s input port. You can position the pointer on or near the port; thepointer shape changes to a double crosshair. Release the mouse button.SIMULINK replaces the port symbols by a connecting line with an arrowshowing the direction of signal flow.

A branch line is a line that starts from an existing line and carries its signal tothe input port of a block. Both the existing line and the branch line carry thesame signal. To add a branch line, position the pointer on the line where youwant the branch line to start. While holding down the Ctrl key, press and holddown the mouse button. Drag the pointer to the input port of the target block,then release the mouse button and the Ctrl key.

SIMULINK draws connecting lines using horizontal and vertical linesegments (To draw a diagonal line, hold down the Shift key while drawing theline). The branch lines are usually an interconnection of line segments. With theCtrl key pressed, identify the branch point and drag the mouse (horizontally/vertically) to an unoccupied area of the diagram and release the mouse button.An arrow appears on the unconnected end of the line. To add another linesegment, position the pointer over the end of the segment and draw anothersegment.

To move a line segment, position the pointer on the segment you want tomove. Press and hold down the left mouse button. Drag the pointer to thedesired location and release.

To disconnect a block from its connecting lines, hold down the Shift key,then drag the block to a new location. You can insert a block in a line bydropping the block on the line.

You can duplicate blocks in a model as follows.While holding down the Ctrl key, select the block with the mouse button,

then drag it to the new location. The duplicated block has the same parametervalues as the original block.

Digital Control and State Variable Methods892

You can cancel the effects of an operation by choosing Undo from the Edit

menu of the Simulation Window. You can thus undo the operations of adding/deleting a line/block. Effects of Undo command may be reversed by choosingRedo from the Edit menu.

To delete a block/line, select a block/line to be deleted and choose Clear orCut from the Edit menu. The Cut command writes the block/line into theclipboard, which enables you to Paste it into a model. Clear command doesnot enable you to paste the block/line later.

This gives us a generic diagram because we have not yet specified the LTIsystem nor set parameter values of saturation, reference input, and errordetector. Our next priority is to go into each of these blocks and set the param-eters that correspond to our specific nonlinear system. In addition, we need toset some simulation parameters.

We begin with the reference input to the feedback system by double-click-ing on the block labeled �Constant� in the Simulation Window. A dialog boxpops up. Only one parameter need to be set: constant value. Set the value to 0since our reference input is zero. When we are done, we click OK.

Next we set the �Sum� block. In the dialog box for this block, we enter Iconshape: round, and list of signs, + �. This gives us an error detector for negativefeedback system.

Next we set the LTI system blocks. There are two blocks on the two sidesof the saturation nonlinearity. The first block has the transfer function1/(s + 1), and the second block has the transfer function 1/s. Since oursimulation study is with respect to initial condition on output, we convert thetransfer functions to state-space form. Enter the initial condition �1.6 in thedialog box of the second block.

Saturation block dialog box requires upper limit and lower limit of saturation.0.4 and �0.4 are the values as per our problem.

Next we need to set the parameters for the �XY Graph� block. Dialog boxrequires x-min, x-max, y-min and y-max. The values [�1 2 �2 1] may beentered.

�To Workspace� block requires variable name and the format. We usematrix format for our data and enter variable names x_1 and x_2 in the dialogboxes.

Finally, we need to set the parameters for the simulation run. We move thepointer to the menu labeled �Simulation�, and enter parameters: start time, stoptime, in the dialog box of submenu �Parameters�. Also we tick against �NormalSimulation� submenu of �Simulation� menu.

All block names in a model must be unique and must contain at least onecharacter. By default, block names appear below blocks. To edit a block name,click on the block name and insert/delete/write text. After you are done, clickthe pointer somewhere else in the model, the name is accepted or rejected. Ifyou try to change the name of a block to a name that already exists, SIMULINKdisplays an error message.

At this point in the simulation process, we have generated the appropriateSIMULINK block diagram (shown in Fig. B.1) and entered the specific

Appendix B: MATLAB Aided Control System Design: Conventional 893

parameters for our system and simulation. We are now ready to execute theprogram, and have the computer perform the simulation. We move the pointerto the �Simulation� menu and choose �Start�. A new window that shows thephase trajectory pops up.

You may now execute the following program in MATLAB workspace.figure (1);

plot (x1,x2); grid;

hold on

Resimulate for an initial condition of � 0.74 and plot the phase trajectory.We have used an example to show how to enter data and carry out a simu-

lation in the SIMULINK environment. The reader will agree that this is a verysimple process.

Reference

0

ss(tf(1, [1 1])) (ss(tf(1, [1 0]))

LTI System1 Saturation

du/dt

LTI System2

X to Workspace

Phase Plane

Y to WorkspaceDerivative

x_2

x_1

Fig. B.1

PROBLEMS

Each problem covers an important area of control system analysis or design.Important MATLAB commands are included as help to MATLAB problems, inthe form of script files. Simulation Diagrams are included as help for theproblems requiring SIMULINK.

Following each problem, one or more what-if�s may be posed to examinethe effect of variations of the key parameters. Comments to alert the reader tothe special features of MATLAB commands are included in the script files toenhance the learning experience. Partial answers to the problems are given inthe text.

The description of the MATLAB functions used in the script files can easilybe accessed from the help file using help command.

B.1 Example 3.1 revisitedConsider a unity-feedback system with open-loop transfer function

G(s) = 1

1s s( )+(a) Plot the step response of the feedback system and determine error

Digital Control and State Variable Methods894

constants Kp, Kv and Ka.(b) Discretize the system (sampling interval T = 1 sec) and plot the step

response of the resulting feedback system. Also determine the error con-stants.

(c) Approximate the sampled system by an equivalent analog system withinput delay of T/2. Plot the step response of the resulting analog feed-back system.

(d) Using LTI Viewer, determine peak overshoot and settling time of analogand sampled systems.

B.2 Example 3.2 revisitedConsider a unity-feedback system with open-loop transfer function

G(s) = K

s s( )+ 2

(a) Sketch root locus plot and determine the range of gain K for which thesystem is stable.

(b) Discretize the system (sampling interval T = 0.4 sec) and sketch rootlocus plot. Find the range of gain K for which the system is stable.

(c) Repeat (b) for T = 3 sec.

B.3 Example 3.3 revisitedConsider a system with transfer function

G(s) = e

s s

s-

+

1 5

1

.

( )

Discretize this system (sampling time T = 1 sec) and report the result inzero-pole-gain form.

B.4 Example 2.10 revisitedA unity-feedback sampled-data system (sampling interval T = 0.04 sec) hasplant transfer function

G(s) = 10

1 0 5 1 0 1 1 0 05( . )( . )( . )+ + +s s s

An approximating analog system is a unity-feedback system with plant transferfunction G(s)e�Ts/2. Show that the analog controller

D(s) = 0 67 1

2 1

.

( )

s

s

++

meets the specification: phase margin ≥ 40º. Determine the bandwidth of thecompensated system.

Discretize the design, and analyze the step response of the digital systemusing LTI Viewer (Ans: Peak overshoot 13%; Settling time 1.16 sec)

B.5 Example 4.3 revisitedA unity-feedback system has open-loop transfer function

Appendix B: MATLAB Aided Control System Design: Conventional 895

G(s) = K

s s( )+ 5It is desired to have the velocity error constant Kv = 10. Furthermore, we

desire that the phase margin of the system be about 40º and bandwidth about5.5 rad/sec. Design a digital control scheme (T = 0.1 sec) to meet thesespecifications.

Using LTI Viewer, determine peak overshoot and settling time from the stepresponse of the feedback system (Ans: Peak overshoot 34%; Settling time3 sec)

Are your results different from the ones given in the text? Why?

B.6 Example 4.4 revisitedRepeat problem B.5 under the constraint that we use phase-lead compensationto achieve the following performance specifications:

(i) Kv = 10(ii) Phase margin = 40º(iii) Bandwidth = 12 rad/sec

(Ans: Peak overshoot 35%; Settling time 1 sec)

B.7 Example 4.7 revisitedA unity-feedback system has open-loop transfer function

G(s) = K

s s( )+ 2It is desired that dominant closed-loop poles provide damping ratio z = 0.5 andhave undamped natural frequency wn = 4 rad/sec. Velocity error constant Kv isrequired to be about 2.5.

Design a digital control scheme (T = 0.2 sec) for the system to meet thesespecifications.

Perform simulation study on the compensated system using LTI Viewer(Ans: Peak overshoot 15%; Settling time 2.2 sec)

B.8 In the following, we point the reader to important matrix functions inMATLAB. Access the description of these functions from the help file, andexecute each function, taking suitable data from the text.

Identity matrix : eye(n)

Dimensions : size(A)

Utility matrices : ones(n), ones(m,n), ones(size(A)),

zeros(n), zeros(m,n), zeros(size(A))

Complex conjugate transpose : ctranspose(A); A¢¢¢¢¢Non-conjugate transpose : transpose(A); A¢¢¢¢¢.Determinant : det(A)

Inverse : inv(A)

Rank : rank(A)

Trace : trace(A)

Digital Control and State Variable Methods896

Spectral norm : norm(A)

(Largest singular value)

Euclidean norm of a vector : norm(x)

Condition number with : cond(A)

respect to inversion

Eigenvalues : eig(A)

Eigenvectors : [P,A1] = eig(A)

Characteristic equation : poly(A)

Matrix exponential : expm(A)

B.9 Given the transfer function

G(s) = s

s s s3 22 2 5 0 5+ + +. .(a) Obtain a state-space model sys, equivalent to the given G(s).(b) Discretize the model sys (sampling interval T = 0.1 sec) to obtain sysd.(c) Simulate and plot the response of the models sys and sysd, when the

input is

u(t) = 2 0 2

0 5 2

;

. ;

£ £≥

RSTt

t

and the initial condition is x(0) = [1 0 2]T.

B.10 Example 7.2 revisitedLinearized equations governing the inverted pendulum system of Fig. 5.16 are

&x = Ax + bu

x = q q& &z zT

A =

0 1 0 0

4 4537 0 0 0

0 0 0 1

0 5809 0 0 0

.

.-

L

N

MMMMM

O

Q

PPPPP; b =

0

0 3947

0

0 9211

-L

N

MMMMM

O

Q

PPPPP

.

.

(a) Show that the open-loop system is unstable.(b) Design state feedback u = �kx that results in closed-loop poles at

�1, �1, �1, �1.(c) Simulate the feedback system. Given initial state

x(0) = [0.1 0 0 0]T

B.11 Example 7.7 revisitedThe plant model of a satellite attitude control system (Refer Figs 7.3�7.4) is

&x = Ax + bu

y = cx

Appendix B: MATLAB Aided Control System Design: Conventional 897

with A = 0 1

0 0

LNM

OQP; b =

0

1

LNMOQP; c = [1 0]

(a) Design state feedback u = �kx that results in closed-loop poles at� 4 ± j4.

(b) Assuming that the state vector x(t) is measurable, simulate the feedbacksystem for x(0) = [1 0]T.

(c) Consider now that state measurements are not practical. Design a state

observer that yields estimated states ~x (t). Place the observer poles at�10, �10.

(d) Obtain state variable model of the compensator by cascading the statefeedback control law and the state observer. Find the transfer functionof the compensator.

(e) Set up state model of the form (7.57) for the observer-based regulatorsystem and simulate the model (Note that x(0) = [1 0]T leads to~x (0) = [1 0]T when $x(0) = 0).

B.12 Example 7.13 revisitedThe plant model of a satellite attitude control system (Refer Figs 7.3�7.4) is

x(k + 1) = Fx(k) + gu(k)

y(k) = cx(k)with

F = 1

0 1

TLNM

OQP; g =

T

T

2 2/LNM

OQP

; T = 0.1 sec

c = [1 0]

The reference input qr is a step function.Design state feedback u = � k1(x1(k) � qr) � k2x2(k) that results is deadbeatresponse.

Simulate the feedback system for a unit-step input qr.

B.13 Reconsider the inverted pendulum regulator problem raised in ProblemB.10, wherein you designed state feedback control based on pole-placement.

Now design a state-feedback control law that minimizes the performanceindex

J = 1

20

z (xTQx + uTRu)dt

with

Q =

100 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

L

N

MMMMM

O

Q

PPPPP; R = 0.01

Digital Control and State Variable Methods898

Simulate the feedback system for initial state x(0) = [0.1 0 0 0]T.B.14 Reconsider the inverted pendulum system of problem B.10.

(a) Discretize the plant model (sampling interval T = 0.1 sec).(b) Introduce integral state in the plant equations (Refer Eqn. (7.109)) and

show that the augmented system is controllable.(c) Design state feedback with integral control that minimizes the perfor-

mance index

J = 1

2 0k =

 [xT(k)Qx(k) + uT(k)Ru(k)]

with

Q =

10 0 0 0 0

0 1 0 0 0

0 0 100 0 0

0 0 0 1 0

0 0 0 0 1

L

N

MMMMMMM

O

Q

PPPPPPP

; R = 1

(d) Simulate the digital servo (Refer Fig. 7.17) for a step input.

B.15 Review Example 10.3 revisitedFigure 10.40a shows the block diagram of a nonlinear system with saturationnonlinearity.

(a) Sketch the Nyquist plot for the linear transfer function

G(s) = 1

1 2 1s s s( )( )+ +(b) Superimpose on this plot, the plot of describing function of saturation

nonlinearity.(c) Show the existence of a stable limit cycle and determine its amplitude

and frequency.(d) Drag the following blocks from SIMULINK block libraries:

(i) �Sum� from Math subnode of Simulink node;(ii) �Saturation� from Nonlinear subnode of Simulink node;(iii) �LTI system� from Control System Toolbox node: and(iv) �Scope� from Sinks subnode of Simulink node.

Setup a simulation block diagram as per the feedback structure given inFig. 10.40a. Simulate the system for an initial condition of x0 = [5 0 0]T.The SIMULINK response shows a limit cycle. Determine the amplitude andfrequency of the limit cycle and compare these parameters with the onesobtained in part (c).

������������� ������������������������������������������ ���

���������

��������������������� ���������������������������������������������������������������������� !����"#�$%����&��'�� ��$�(������������������)����������%�$�*����+��������������,����������-����!��"# ��.�$,-�������-�������!��"# ��.�-$,����������/������*������������(����)�� ������������������0���1��2�� (��$%1����&��'��1 ��$�(����������������*����%1�$�*����+��������������,�1�������1��-1����!��+�# � (��.�13(�$,-1�������-1���1����!��+�# � (��.�-13(�$,�1��������1�/�������4��������������������567����������������2��"���)���2������%�$/����������� !����"# �8��)�4����� (�32�$�������� 2�$%�����&��'��� ��$�����%��$/�������9����:(8�;�<�� �����������'��-���/���

���������������� �����������������������������

�=�����������������������=������������������-�<� ����� % %��

���������

���������$������������ ����������������2���������������������������&��������� !��2�"#�$��)���������)����$��������>)����)���?��������)����������'������'���(����)�� �����������������0���1��2�� (��$��)���2�����)���1�$1��$�����>)��!,� ��#���������1�

��������

��������������������� ��������������������4�����1���������������<�/���+���(��$@��$�����"�A$������ !���# �8��)�4����� ����.(�$�1���2�� ��$�12����� !��"# ��$�1��1�.�12$1�'��1�

���������

��������������������� ��������������2��"���4�����8�����������������������4��������������������������+����������(��"�"B$

������������� ������������������������������������������ ���

������-����-�!"�A��# !"����#� !"�"A��#�$������" �� �8��)�4����� (�32�$�������� 2�$��������4������)�����4����!"�CD��# !2��#�$������4.�����)���2��:(8�;�<����)������������-���&�������)���<��<�5���������������+�E������)��=�����&��<�/����4.��$���$��/�������$�4�����1��������4����41��2�4 (� ��)������"�����" ���$�1��2��" (��$%1����&��'�41.�1 ��$��-�<� ����� %1�

���������

���������$���������$��� ��������������B�����4�����4�����4����������������������9�����������������������A" !��A�"#�$�4�����1�����1��2�� "���$�1��1�'��1�$�4�������<+�����<�2���1 ��)�����$��)�����$�������<�$�����)�������������/�����������������)�����<����������+� � �""�$!��� �/#�&����< <�$������=��/�����������$%�(:�E��)�����������������������������/��������������/�����/����������������)���-��������������/������� �"" ��$�/����/�����/ �"" ��$

���������������� �����������������������������

�F/�+�G"H��������/���������H�������+��"F/���)�� �������/����������F/0���*���������>)�������������������$�)���������������>)�����������������<�2���������/ < F/��<�2����/�����������������-����&������������/ ��� F/�$�9���������������>)��������<�23B�<�)���)�� ������)���������������>)����0����)��3<�)$4<����!��)��# !&���.��)��#��4���������������4��2�4< "�� ��)�����$41�1�'�4���)���2�������/��������������������������������������)���2�������4<.�<�$�E��<�/�)������������=�����������<�!A0"��0�A#$!��� �/ <#�&������&��'��< ���$���E�2".����"�����$<&�������>�+���E < ��!���� �/� <#�&������&��'�4<.�< ���$����E�2".����"������$<&��������>�+����E < ��������������@�/�����/�����)�����$�<��4<.�<$���$��/�����< �<��$�*���+�����������������)����:(8�;�<��%1����&��'�4.�1 ��$��-�<� ����� %1��I������)�����������98

���������

���������$���������$��� ��������������B�B���4�����4�����4���������I������������9������������������

������������� ������������������������������������������ ���

�����A" !��A�"#�$�4�����1�����1��2�� "���$�4�������<+�����<�2���1 ��)�����$��)������������<�$�����)�������������/�����������������)������F/%���������/���������+)�������������/���������H��������AF/%���)�� ��������>)����/��������0�����/����+���F/%.�3�G"��3��H���F/%.�3�G"��$<����������" 2 �""�$!��� �/#�&����< <�$���E�2".����"�����$���E����/�������E �"" ��$<������������E < +2".����"��3�>������/����$��)��3�<�.�>������/���$4<����!��) �# !���/�.��) �#��4���������������4��2�4< "�� ��)�����$41�1�'�4���)���2�$�����������������/�����������������)���2�������4<.�<�$�E��<�/�)������������=������������<�!A0"��02A#$!��� �/ <#�&������&��'��< ���$���E�2".����"�����$<&�������>�+���E < ��!���� �/� <#�&������&��'�4<.�< ���$����E�2".����"������$<&��������>�+����E < ��������������@�/�����/�����)������<��4<.�<$���$��/�����< �<���*���+�����������������)����:(8�;�<��%1����&��'�4.�1 ��$��-�<� ����� %1��I������)���/�����������98

���������������� �����������������������������

���������

��������������������� ��������������B�D���4�����I����������4���������������)��������F��������������� !��2�"#�$(�"�2$�1��2�� (�$�1��1�'��1�$1����"�A$<��B$�/����<�.(.�>����+1���J2�$��)������9������������������������)���1�$�(�'������+1����-��)������<����1��/�����)���������)���������)����<�����)������)������������)���1��/������� "�A �"��$���������1��/�����������&��1���1��� <�����<��'���<�/�%�(:�E�A���-�����������>)��$/������:��������������������������������/���.!���# !"��# �'��$������K)�����������������������������:���������������1������������������+�������������1�"�CD�(�'����������1����/�����/����)�� �����������-��)��������/�0��41����!��+"�CD# !��+���/�# (�$��)���2�����)��41.�1�$1��/������� 1��� "�"��$�����>)��$/������������/���.!���# !"��# �'��$!,, �����I:#��������41.�1��F������/�������/����)������������������=����'��-1����!��+�# � (�.41.,,.�13($,-1�������-1��F���������)��������)�����������������������)����:(8�;�<���%1����&��'�,,.41.�1 ��$��-�<� ����� %1��I������)���/�����������98�

������������� ������������������������������������������ ���

���������

��������������������� *�����*����������������-�������������)������)��!��"#$���!��2�2�A�"�A#$������)� ����I�����)���������-���&����������������$!� & � #������������4�����1����(�"��$�����2���� (�$!L � � #������������*�)�������!"0"��02"#�$�"�!� " 2#�$�8��)������"M�M2�)��02"��2.�����2" ��$�8��)�������N2�)�2�02"���"�A.������G� ��$!� � O#�������� ) � �"�$!�� � O�#�������� ) � �"�$��)����������� O�0 �� � O��0 �� ����$��$������ �P���$��)���2������� O�0 2� � O��0 2� ����$��$������ �P2��$��)����������� O�0 �� � O��0 �� ����$��$������ �P���$

����������

��������������������� ��������������D�2������)������4�����F���+���������������8�-�����F��)�)��F�����%�����!" � " "$B�BA�D " " "$" " " �$+"�AG"Q " " "#$&�!"$+"��QBD$"$"�Q2��#$

���������������� ����������������������������

��!"�"���"#$�"$�������� & � �$9����&�� &�$I��������&��F��������'�9�����)������4���������6:���������������I:�!+� +� +� +�#$'���'���� & �����I:����)�����F���������+&.'��*�)������"�!"�� " " "#�$��!"0"��02"#$���I:�����+&.' !"$"$"$"# � "�$!� � O#��������I: ".� � �"�$��)������)&�����2 2 ��$������ O�0 ���$��$������ �P���$�)&�����2 2 2�$������ O�0 2��$��$������ �P2��$�)&�����2 2 ��$������ O�0 ���$��$������ �P���$�)&�����2 2 B�$������ O�0 B��$��$������ �PB��

����������

��������������������� ��������������D�D���6&���-��+&�������)����������*������������)��I�������F�����%�����!"��$"�"#$&�!"$�#$��!��"#$����)������4���������I:�!+BHB +B+B#$'�������� & �����I:����)���������������+&.'���������+&.' !"$"# � "�$�*�)�������!"0"�"�0�#$�"�!��"#�$!� � O#��������� �" ��$��)����������� ��$/������6&���-���4���������6E�!+�"�+�"#$''���'����� �� �����6E�$

������������� ������������������������������������������ ��

��''�6&���-������������+�.����������>����D�AG�=�D�AQ����P���������+&.'+�.� � ' "�$4�������P������*�)�������������>���D�AD�����+&.'$�2�&.'$���1������1�����$�B��+�.�$�P���!���� 0� �2�� 0�$���2 0� �2�2 0�$���� 0� �B�� 0�$���2 0� �B�2 0�#$���I:�����P�� !"$"$"$"# !��"�"�"# "�$�"�!��"���"#�$!�����O�#���������I: �" ��$������ �� ����$��$������ 6)��)��<�/�����&���-��� �6)��)��<�/��&���-����/��������)���2������� O��0 �� � O��0 B��$��$������ ����P�� �����P2R�

����������

���������$���������$��� ��������������D������4��&�������������������*������������)��I�������F�����%���(�"��$L�!� ($" �#$��!(J232$(#$��!� "#$�������L � � " (�$�F������������������I:�!" "#$'���'���L � �����I:��*���������������I:����L+�.' �"".� � " �(�� (�$��������I:�

���������

��������������������� ��������������D�2���:�����S)���������)����������8�-�����F��)�)��F�����%���

���������������� �����������������������������

��!" � " "$B�BA�D " " "$" " " �$+"�AG"Q " " "#$&�!"$+"��QBD$"$"�Q2��#$��!� " " "#$�������� & � "�$9����&�� &�$I��������&��F��������'�9��F�����������8���S�!�"" " " "$" � " "$" " � "$" " " �#$��"�"�$�*�����L��&��'!'�F��#��>��� & S ��$F����I:�����%�����'���I:�����+&.' !"$"$"$"# � "�$�*�)������"�!"�� " " "#�$��!"0"��02"#$!� � O#���������I: �" ��$�)&�����2 2 ��$������ O�0 ���$��$������ �P���$�)&�����2 2 2�$������ O�0 2��$��$������ �P2��$�)&�����2 2 ��$������ O�0 ���$��$������ �P���$�)&�����2 2 B�$������ O�0 B��$��$������ �PB��$

����������

��������������������� ��������������D�2���4�����*��-������8�-�����F��)�)��F�����%�����!" � " "$B�BA�D " " "$$" " " �$+"�AG"Q " " "#$&�!"$+"��QBD$"$"�Q2��#$��!" " � "#$�������� & � "�$(�"��$�����2���� (�$!L � � #�����������$�F�����%����<�/����������������������>���D��"Q�L8�!L�� 0� "$L�2 0� "$L�� 0� "$L�B 0� "$�.L �#$�8�!����$��2�$����$��B�$�.�#$�8�!� "#$9����&�L8 �8�$

������������� ������������������������������������������ ���

���'9����'�9��F�����������8���S�!�" " " " "$" � " " "$" " �"" " "$" " " � "$" " " " �#$���$�*�����L��&��'�<�/�8��������I������,��>��L8 �8 S ��$,��!,��� ,�2� ,��� ,�B�#,�,�A��*�)����������������������������>����D���"�=�D��"G�L8P���L8+�8.,$���I:����L8P�� !"$"$"$"$+�# �8 " �(�� (�$��!"0"��02"#$!� � O#���������I: ��$������ ��$��

����������

���������$���������$��� ��������-�<����������"�����4����&���L)��������������@�>)���������������������� ���-����-�!2��# !���#� !��"#��$<�!�0"��0�""#$!�����<#���>)�����$������/������ �����/�<� ��$�����/����� �����/�<� ��$������� ��$����!+A�2�+A�2#�$/������4����&���L)������������������)�������������>�����"�A��+��"�A��*��$��!�0"�A0�"#�$@�!��" "�DG� "�C"Q "�BQA "�B�C "��AQ "���A "�2G� "�2A� ���"�2�" "�2�� "��QA "��G� "��CQ "��AQ "��BQ "��B� "���B "��2D#�$@��+��3@$����@�$���".�����/�@��$�������� �� �����$��$�%�-���/�������������/������������������=����'�!O T#����)����

���������������� �����������������������������

�"��������@� � O�!�����/�<#�&�����$�/����/�����/ �����/�<� ��$<"���������/ < +�G"�

�� �� �����