DynamicSystems - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Science and Engineering : Dynamic Systems : System Manipulation Tools : DynamicSystems/NormHinf

DynamicSystems

  

NormHinf

  

Compute the H norm of a linear system

 

Calling Sequence

Parameters

Options

Description

Examples

References

Compatibility

Calling Sequence

NormHinf(sys)

NormHinf(sys, eps)

Parameters

sys

-

System; system object

eps

-

(optional) nonnegative; relative accuracy. The default value is 10^(-6).

opts

-

(optional) equation(s) of the form option = value; specify options for the NormHinf command

Options

• 

output = norm or peakfreq or list of these names.

Specifies the returned values. By default, only the H norm is returned. If peakfreq is specified, the angular frequency (rad/s) at which the peak gain of sys occurs is returned.

• 

checkstability = truefalse

True means check whether the system is stable; if it is not stable, raise a warning. False means skip the check. The default is true.

Description

• 

The NormHinf command computes the H norm of a linear system sys, with relative accuracy eps. Both continuous-time and discrete-time systems, and both single-input single-output (SISO) and multiple-input multiple-output (MIMO) systems are supported.

Continuous-time

• 

For a stable SISO linear system with transfer function Gs, the H norm is defined in the frequency domain as:

  

‖G‖ = supωGjω

• 

For a MIMO linear system with transfer function Matrix Gs, the definition of H norm in the frequency domain is generalized to:

  

‖G‖ = supωσmaxGjω

  

where σmax is the maximum singular value.

• 

In the time domain, the H norm of a transfer function is calculated assuming that the stable transfer function Gs has a state-space representation:

  

x.=Ax+Bw

  

y=Cx+Dw

  

where: A ∈ ℝn×n, B ∈ ℝn×m, C ∈ ℝp×n, and D ∈ ℝp×m, and n, m, and p are the number of states, inputs and outputs of the linear system respectively.

  

Gs=YsWs and Gs=C. sIA1. B+D, with A stable (all eigenvalues of A have a negative real part).

  

Then the H norm of the transfer function Matrix Gs is ‖G‖<γ for some 0<γ, not equal to a singular value of Matrix D, if and only if σmaxH<γ has no eigenvalues on the imaginary axis. The Matrix H is defined as:

  

Hγ = ABR1DTC&gamma;BR1BT&gamma;CTS1CAT+CTDR1BT

  

where R=DT·Dγ2Im and S=D·DTγ2Ip (subscripts m and p indicate the dimensions of the respective identity Matrices).

Discrete-time

• 

For a stable SISO linear system with transfer function Gz, the H norm is defined in the frequency domain as:

  

‖G‖ = sup0ω<2πG&ExponentialE;jω

• 

For a MIMO linear system with transfer function Matrix Gz, the definition of H norm in the frequency domain is generalized to:

  

‖G‖ = sup0ω<2πσmaxG&ExponentialE;jω

  

where σmax is the maximum singular value.

• 

In the time domain, the H norm of a transfer function is calculated assuming that the stable transfer function Gz has a state-space representation:

  

xk+1=Axk+Bwk

  

yk=Cxk+Dwk

  

so that Gz=YzWz and Gz=C. zIA1. B+D, with A stable (all eigenvalues of A have a magnitude less than 1).

• 

The H norm of the transfer function Matrix Gz is calculated using the bilinear transformation, since the H norm for a discrete-time LTI system is preserved in the continuous-time domain under such transformation.

• 

The H norm provides a measure of the worst-case system gain, i.e., the largest factor by which any sinusoidal input is magnified by the system. For instance, the H norm of the transfer function G from w (disturbance input) to y (output) provides a measure of the worst-case influence of the noise w on the output y of an LTI system.

• 

For a SISO linear system, the H norm is the maximum gain of the frequency response of the system. In an analogous way, for a MIMO linear system, the H norm is the maximum gain across all inputs and outputs of the system.

• 

The H norm of G equals the peak value on the Bode magnitude plot of G. It also equals the distance from the origin to the farthest point on the Nyquist plot of G.

• 

The H norm is finite if and only if the transfer function G is proper (degree of denominator greater than or equal to degree of numerator) and has no poles on the imaginary axis (continuous-time) or on the unit circle (discrete-time).

Examples

with( DynamicSystems ):

Example 1 : Find the H norm of a continuous-time system.

sys1 := TransferFunction(100/(s+5)):

PrintSystem(sys1);

Transfer Functioncontinuous1 output(s); 1 input(s)inputvariable&equals;u1soutputvariable&equals;y1stf1,1&equals;100s+5

(1)

hinfnorm1 := NormHinf(sys1, 10^(-10));

hinfnorm120.00000000

(2)

MagnitudePlot(sys1, decibels = false, range = 0.001..100);

mag := MagnitudePlot(sys1, decibels = false, range = 0.001..100, output = data):

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph19.9999996000000

(3)

Example 2: Find the H norm of the system given by the following differential equation. Show the peak frequency and the norm in that order.

sys2 := DiffEquation(diff(diff(x(t),t),t) = -10*x(t) - diff(x(t),t) + w(t), [w(t)], [x(t)]):

PrintSystem(sys2);

Diff. Equationcontinuous1 output(s); 1 input(s)inputvariable&equals;wtoutputvariable&equals;xtde&equals;&DifferentialD;2&DifferentialD;t2xt=10xt&DifferentialD;&DifferentialD;txt+wt

(4)

hinfnorm2 := NormHinf(sys2, 'output' = [peakfreq, norm]);

hinfnorm23.08220698300548&comma;0.320256627866482

(5)

MagnitudePlot(sys2, decibels = false);

mag := MagnitudePlot(sys2, decibels = false, output = data):

member(max(mag(1..-1, 2..2)), mag(1..-1, 2..2), 'p'): fHinf := mag(p);

fHinf3.079785057

(6)

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph0.320252649756933

(7)

Example 3 : Find the H norm of a continuous state-space MIMO system.

sys3 := StateSpace( <<0,0,-3>|<1,0,-4>|<0,1,-7>>, <<0,0,1>>, <<1>|<0>|<0>>, Matrix(1,1) ):

PrintSystem(sys3);

State Spacecontinuous1 output(s); 1 input(s); 3 state(s)inputvariable&equals;u1toutputvariable&equals;y1tstatevariable&equals;x1t&comma;x2t&comma;x3ta&equals;010001−3−4−7b&equals;001c&equals;100d&equals;0

(8)

hinfnorm3 := NormHinf(sys3, 'output' = [norm, peakfreq]);

hinfnorm30.451322261502234&comma;0.559605319105211

(9)

MagnitudePlot(sys3, decibels = false);

mag := MagnitudePlot(sys3, decibels = false, output = data):

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph0.451320291397442

(10)

member(Hinfgraph, mag(1..-1, 2..2), 'p'): fHinf := mag(p);

fHinf0.5590478459

(11)

Example 4: Find the H norm of a continuous transfer function G(s) with .1% of tolerance.

sys4 := TransferFunction(Matrix([[1/(s^3+s^2+5*s+2)],[s/(s^3+s^2+5*s+2)],[(s^2)/(s^3+s^2+5*s+2)]])):

PrintSystem(sys4);

Transfer Functioncontinuous3 output(s); 1 input(s)inputvariable&equals;u1soutputvariable&equals;y1s&comma;y2s&comma;y3stf1,1&equals;1s3+s2+5s+2tf2,1&equals;ss3+s2+5s+2tf3,1&equals;s2s3+s2+5s+2

(12)

hinfnorm4 := NormHinf(sys4, 0.001, 'output' = [norm, peakfreq]);

hinfnorm41.89966130541915&comma;2.180899209

(13)

MagnitudePlot(sys4, decibels = false);

mag := MagnitudePlot(sys4, decibels = false, output = data):

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph1.69438112239631

(14)

member(Hinfgraph, mag[3](1..-1, 2..2), 'p'): fHinf := mag[3](p);

fHinf2.184166359

(15)

Example 5: Find the H norm of a continuous transfer function matrix.

sys5 := TransferFunction(Matrix([[1/(s^2+s+4), 0],[0, 1/(s^2+s+4)]]) ):

PrintSystem(sys5);

Transfer Functioncontinuous2 output(s); 2 input(s)inputvariable&equals;u1s&comma;u2soutputvariable&equals;y1s&comma;y2stf1,1&equals;1s2+s+4tf2,1&equals;0tf1,2&equals;0tf2,2&equals;1s2+s+4

(16)

hinfnorm5 := NormHinf(sys5, 'output' = [norm, peakfreq]);

hinfnorm50.516398295858964&comma;1.87082283018653

(17)

MagnitudePlot(sys5, decibels = false);

mag := MagnitudePlot(sys5, decibels = false, output = data):

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph0.516350854134402

(18)

member(Hinfgraph, mag[1](1..-1, 2..2), 'p'): fHinf := mag[1](p);

fHinf1.863838004

(19)

Example 6: Find the H norm of a continuous state-space SISO system.

sys6 := StateSpace(Matrix([[0,1],[-25,-0.1]]),Matrix([[0],[1]]),Matrix([[1,0]]),Matrix([[0]])):

PrintSystem(sys6);

State Spacecontinuous1 output(s); 1 input(s); 2 state(s)inputvariable&equals;u1toutputvariable&equals;y1tstatevariable&equals;x1t&comma;x2ta&equals;01−25−0.1b&equals;01c&equals;10d&equals;0

(20)

hinfnorm6 := NormHinf(sys6, 'output' = [norm, peakfreq]);

hinfnorm62.00010200760040&comma;4.99949995099030

(21)

MagnitudePlot(sys6, decibels = false);

mag := MagnitudePlot(sys6, decibels = false, output = data):

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph1.99995097863956

(22)

member(Hinfgraph, mag(1..-1, 2..2), 'p'): fHinf := mag(p);

fHinf5.000110374

(23)

Example 7 : Find the H norm of a system with discrete-time transfer function shown below.

sys7 := TransferFunction(10*(2*z+1)/(10*z^2 + 2*z + 5), discrete, sampletime = 0.1):

PrintSystem(sys7);

Transfer Functiondiscrete; sampletime = .11 output(s); 1 input(s)inputvariable&equals;u1zoutputvariable&equals;y1ztf1,1&equals;20z+1010z2+2z+5

(24)

hinfnorm7 := NormHinf(sys7, 10^(-8), 'output' = [norm, peakfreq]);

hinfnorm74.28984428905026&comma;16.6685073027065

(25)

MagnitudePlot(sys7, decibels = false, range = 0.01..Pi/sys7:-sampletime);

mag := MagnitudePlot(sys7, decibels = false, range = 0.01..Pi/sys7:-sampletime, output = data):

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph4.289843575

(26)

member(Hinfgraph, mag(1..-1, 2..2), 'p'): fHinf := mag(p);

fHinf16.66285136

(27)

Example 8 : Find the H norm of a system with discrete-time transfer function shown below.

sys8 := TransferFunction([5, -14.2, 14.4, -5],[5, -12.1, 10, -2.7], discrete, sampletime=0.5):

PrintSystem(sys8);

Transfer Functiondiscrete; sampletime = .51 output(s); 1 input(s)inputvariable&equals;u1zoutputvariable&equals;y1ztf1,1&equals;5.z314.20000000z2+14.40000000z5.5.z312.10000000z2+10.z2.700000000

(28)

hinfnorm8 := NormHinf(sys8, 'output' = [norm, peakfreq]);

hinfnorm84.63571003774221&comma;0.615651253991577

(29)

MagnitudePlot(sys8, decibels = false, range = 0.01..Pi/sys8:-sampletime);

mag := MagnitudePlot(sys8, decibels = false, range = 0.01..Pi/sys8:-sampletime, output = data):

Hinfgraph := max(mag(1..-1, 2..2));

Hinfgraph4.635634989

(30)

member(Hinfgraph, mag(1..-1, 2..2), 'p'): fHinf := mag(p);

fHinf0.6152990634

(31)

References

  

S. Boyd, V. Balakrishnan, P. Kabamba, On computing the H norm of a transfer matrix, 1988.

  

N. A. Bruinsma, M. Steinbuch, A fast algortihm to compute the H-norm of a transfer function matrix, 1990.

Compatibility

• 

The DynamicSystems[NormHinf] command was introduced in Maple 18.

• 

For more information on Maple 18 changes, see Updates in Maple 18.

See Also

DynamicSystems

DynamicSystems[MagnitudePlot]

DynamicSystems[NormH2]

DynamicSystems[ToContinuous]