Main Content

ltiarray2uss

Compute uncertain system bounding given LTI ss array

Compatibility

Note

ltiarray2uss will be removed in a future release. Use ucover instead.

Synopsis

usys = ltiarray2uss(P,Parray,ord)

[usys,wt] = ltiarray2uss(P,Parray,ord)

[usys,wt,diffdata] = ltiarray2uss(P,Parray,ord)

[usys,wt,diffdata] = ltiarray2uss(P,Parray,ord,'InputMult')

[usys,wt,diffdata] = ltiarray2uss(P,Parray,ord,'OutputMult')

[usys,wt,diffdata] = ltiarray2uss(P,Parray,ord,'Additive')

Description

The command ltiarray2uss, calculates an uncertain system usys with nominal value P, and whose range of behavior includes the given array of systems, Parray.

usys = ltiarray2uss(P,Parray,ord), usys is formulated as an input multiplicative uncertainty model,

usys = P*(I + wt*ultidyn('IMult',[size(P,2) size(P,2)])), where wt is a stable scalar system, whose magnitude overbounds the relative difference, (P - Parray)/P. The state order of the weighting function used to bound the multiplicative difference between P and Parray is ord. Both P and Parray must be in the classes ss/tf/zpk/frd. If P is an frd then usys will be a ufrd object, otherwise usys will be a uss object. The ultidyn atom is named based on the variable name of Parray in the calling workspace.

[usys,wt] = ltiarray2uss(P,Parray,ord), returns the weight wt used to bound the infinity norm of ((P - Parray)/P).

[usys,wt] = ltiarray2uss(P,Parray,ord,'OutputMult'), uses multiplicative uncertainty at the plant output (as opposed to input multiplicative uncertainty). The formula for usys is

usys = (I + wt*ultidyn('Name',[size(P,1) size(P,1)])*P).

[usys,wt] = ltiarray2uss(P,Parray,ord,'Additive'), uses additive uncertainty.

usys = P + wt*ultidyn('Name',[size(P,1) size(P,2)]). wt is a frequency domain overbound of the infinity norm of (Parray - P).

[usys,wt] = ltiarray2uss(P,Parray,ord,'InputMult'), uses multiplicative uncertainty at the plant input (this is the default). The formula for usys is usys = P*(I + wt*ultidyn('Name',[size(P,2) size(P,2)])).

[usys,wt,diffdata] = ltiarray2uss(P,Parray,ord,type) returns the norm of the difference (absolute difference for additive, and relative difference for multiplicative uncertainty) between the nominal model P and Parray. wt satisfies diffdata(w_i) < |wt(w_i)| at all frequency points.

Examples

collapse all

Consider a third order transfer function with an uncertain gain, filter time constant and a lightly damped flexible mode. This model is used to represent a physical system from which frequency response data is acquired.

gain = ureal('gain',10,'Perc',20); 
tau = ureal('tau',.6,'Range',[.42 .9]); 
wn = 40; 
zeta = 0.1; 
usys = tf(gain,[tau 1])*tf(wn^2,[1 2*zeta*wn wn^2]); 
sysnom = usys.NominalValue; 
parray = usample(usys,30); 
om = logspace(-1,2,80); 
parrayg = frd(parray,om); 
bode(parrayg)

The frequency response data in parray represents 30 experiments performed on the system. The command ltiarray2uss is used to generate an uncertain model, umod, based on the frequency response data. Initially an input multiplicative uncertain model is used to characterize the collection of 30 frequency responses. First and second order input multiplicative uncertainty weight are calculated from the data.

[umodIn1,wtIn1,diffdataIn] = ltiarray2uss(sysnom,parrayg,1); 
[umodIn2,wtIn2,diffdataIn] = ltiarray2uss(sysnom,parrayg,2); 
bodemag(wtIn1,'b-',wtIn2,'g+',diffdataIn,'r.',om) 
title('Input Multiplicative Uncertainty Model Using ltiarray2uss')
legend('1st order','2nd order','difference','Location','SouthEast')

Alternatively, an additive uncertain model is used to characterize the collection of 30 frequency responses.

[umodAdd1,wtAdd1,diffdataAdd] = ltiarray2uss(sysnom,parrayg,1,'Additive'); 
[umodAdd2,wtAdd2,diffdataAdd] = ltiarray2uss(sysnom,parrayg,2,'Additive'); 
bodemag(wtAdd1,'b-',wtAdd2,'g+',diffdataAdd,'r.',om) 
title('Additive Uncertainty Model Using ltiarray2uss')
legend('1st order','2nd order','difference')

Version History

Introduced in R2006a