Main Content

rncf

Right normalized coprime factorization

Description

example

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

sys=NrMr1,Mr*Mr+Nr*Nr=I.

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

example

[fact,Mr,Nr] = rncf(sys) also returns the coprime factors Mr and Nr.

Examples

collapse all

Compute the right normalized coprime factorization of a SISO system.

sys = zpk([1 -1+2i -1-2i],[-1 2+1i 2-1i],1);
[fact,Mr,Nr] = rncf(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(Mr)
ans =
 
  0.70711 (s+1) (s^2 - 4s + 5)
  ----------------------------
    (s+1) (s^2 + 3.162s + 5)
 
Continuous-time zero/pole/gain model.
zpk(Nr)
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 Mr and Nr are the denominator and numerator of sys, respectively. Thus, sys = Nr/Mr. rncf chooses the denominators of the factors such that the system [Mr(jω);Nr(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 [Mr(jω);Nr(jω)].

sigma(fact)

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

Compute the right 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,Mr,Nr] = rncf(sys);

fact is a stable minimal realization of the factorization given by [Mr;Nr].

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)

Confirm that the factors satisfy sys = Nr/Mr by examining the singular values of both.

sigma(sys,'b-',Nr/Mr,'r--')

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 [Mr;Nr], 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 m+p outputs and m inputs. fact has the same number of states as sys.

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

  • Mr has m outputs and m inputs.

  • Nr has p outputs and m inputs.

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

Tips

  • fact is a minimal realization of [Mr;Nr]. If you need to use [Mr;Nr] or [Mr;Nr]' 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

| |