Skip to Main Content Skip to Search
Product Documentation

isproper - Determine if dynamic system model is proper

Syntax

isproper(sys)
[isprop, sysr] = isproper(sys)

Description

isproper(sys) returns TRUE (logical 1) if the dynamic system model sys is proper (relative degree <= 0) and FALSE (logical 0) otherwise.

SISO transfer functions and zero-pole-gain models are proper if the degree of their numerator is less than or equal to the degree of their denominator (in other words, if they have at least as many poles as zeroes). Regular state-space models (state-space models having no E matrix) are always proper. A descriptor state-space model that has an invertible E matrix is always proper. A descriptor state-space model having a singular (non-invertible) E matrix is proper if the model has at least as many poles as zeroes.

MIMO transfer functions are proper if all their SISO entries are proper. If sys is a model array, isproper(sys) is TRUE if all models in the array are proper.

If sys is a proper descriptor state-space model with a non-invertible E matrix, [isprop, sysr] = isproper(sys) returns the Boolean isprop and an equivalent model sysr with fewer states (reduced order) and a non-singular E matrix. If sys is not proper, sysr = sys.

Examples

Example 1

The following commands

isproper(tf([1 0],1))         % transfer function s
isproper(tf([1 0],[1 1]))    % transfer function s/(s+1)

return FALSE (logical 0) and TRUE (logical 1), respectively.

Example 2

Combining state-space models can yield results that include more states than necessary. Use isproper to compute an equivalent lower-order model.

H1 = ss(tf([1 1],[1 2 5]));
H2 = ss(tf([1 7],[1]));
H = H1*H2
 
a = 
         x1    x2    x3    x4
   x1    -2  -2.5   0.5  1.75
   x2     2     0     0     0
   x3     0     0     1     0
   x4     0     0     0     1
 
b = 
       u1
   x1   0
   x2   0
   x3   0
   x4  -4
 
c = 
        x1   x2   x3   x4
   y1    1  0.5    0    0
 
d = 
       u1
   y1   0
 
e = 
        x1   x2   x3   x4
   x1    1    0    0    0
   x2    0    1    0    0
   x3    0    0    0  0.5
   x4    0    0    0    0

H is proper and reducible:

[isprop, Hr] = isproper(H)

isprop =

     1

 
a = 
             x1        x2
   x1         0    0.1398
   x2  -0.06988   -0.0625
 
b = 
            u1
   x1   -0.125
   x2  -0.1398
 
c = 
           x1      x2
   y1    -0.5  -1.118
 
d = 
       u1
   y1   1
 
e = 
            x1       x2
   x1   0.0625        0
   x2        0  0.03125
 
Continuous-time model.

H and Hr are equivalent, as a Bode plot demonstrates:

bode(H, Hr)

See Also

dss | ss

  


Free Control Systems Interactive Kit

Learn more about resources for designing, testing, and implementing control systems.

Get free kit

Trials Available

Try the latest control systems products.

Get trial software
 © 1984-2012- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS