Main Content

lncf

Left normalized coprime factorization

Description

example

fact = lncf(sys) computes the left normalized coprime factorization of the dynamic system model sys. The factorization is given by:

sys=Ml1Nl,MlMl*+NlNl*=I.

Here, Ml* denotes the conjugate of Ml (see ctranspose). . The returned model fact is a minimal state-space realization of the stable system [Ml,Nl]. This factorization is used in other normalized coprime factor computations such as model reduction (ncfmr) and controller synthesis (ncfsyn).

example

[fact,Ml,Nl] = lncf(sys) also returns the coprime factors Ml and Nl.

Examples

collapse all

Compute the left normalized coprime factorization of a SISO system.

sys = zpk([1 -1+2i -1-2i],[-1 2+1i 2-1i],1);
[fact,Ml,Nl] = lncf(sys);

Examine the original system and its factors.

sys
sys =
 
  (s-1) (s^2 + 2s + 5)
  --------------------
  (s+1) (s^2 - 4s + 5)
 
Continuous-time zero/pole/gain model.
zpk(Ml)
ans =
 
  0.70711 (s+1) (s^2 - 4s + 5)
  ----------------------------
    (s+1) (s^2 + 3.162s + 5)
 
Continuous-time zero/pole/gain model.
zpk(Nl)
ans =
 
  0.70711 (s-1) (s^2 + 2s + 5)
  ----------------------------
    (s+1) (s^2 + 3.162s + 5)
 
Continuous-time zero/pole/gain model.

The numerators of the factors Ml and Nl are the denominator and numerator of sys, respectively. Thus, sys = Ml\Nl. lncf chooses the denominators of the factors such that the system [Ml(jω),Nl(jω)] is a unit vector at all frequencies. To confirm that property of the factorization, examine the singular values of fact, which is a stable minimal realization of [Ml(jω),Nl(jω)].

sigma(fact)

Figure contains an axes object. The axes object contains an object of type line. This object represents fact.

Within a small numerical error, the singular value of fact is 1 (0 dB) at all frequencies.

Compute the left normalized coprime factorization of a state-space model that has two outputs, two inputs, and three states.

rng(0); % for reproducibility
sys = rss(3,2,2);
[fact,Ml,Nl] = lncf(sys);

fact is a stable minimal realization of the factorization given by [Ml,Nl].

isstable(fact)
ans = logical
   1

Another property of fact is that its frequency response F(jω) is an orthogonal matrix at all frequencies (F(jω)’F(jω) = I). Confirm this property by examining the singular values of fact. Within a small numerical error, the singular values are 1 (0 dB) at all frequencies.

sigma(fact)

Figure contains an axes object. The axes object contains 2 objects of type line. This object represents fact.

Confirm that the factors satisfy sys = Ml\Nl by examining the singular values of both.

sigma(sys,'b-',Ml\Nl,'r--')

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent sys, untitled1.

Input Arguments

collapse all

Input system to factorize, specified as a dynamic system model such as a state-space (ss) model. If sys is a generalized state-space model with uncertain or tunable control design blocks, then the function uses the nominal or current value of those elements. sys cannot be an frd model or a model with time delays.

Output Arguments

collapse all

Minimal realization of [Ml,Nl], returned as a state-space model. fact is stable and its frequency response is an orthogonal matrix at all frequencies. If sys has p outputs and m inputs, then fact has p outputs and m+p inputs. fact has the same number of states as sys.

Left coprime factors of sys, returned as state-space models. If sys has p outputs and m inputs, then:

  • Ml has p outputs and p inputs.

  • Nl has p outputs and m inputs.

Both factors have the same number of states as sys and the same A and C matrices as fact.

Tips

  • fact is a minimal realization of [Ml,Nl]. If you need to use [Ml,Nl] or [Ml,Nl]' in a computation, it is better to use fact than to concatenate the factors yourself. Such manual concatenation results in extra (nonminimal) states, which can lead to decreased numerical accuracy.

Version History

Introduced in R2019a

See Also

| |