I have a feedback loop with transfer $L(z)= \frac{H(z)C(z)}{1+H(z)C(z)}$.

$$H(z) = h\quad \text{and} \quad C(z) = \frac{K}{z-\alpha}.$$

If I manually calculate the transfer function, I get:

$$L(z) = \frac{Kh}{z-\alpha + Kh}$$

But if I let MATLAB do the calculation I get:

$$L(z) = \frac{z-\alpha}{z-\alpha}\frac{Kh}{z-\alpha + Kh}$$

$L(z)$ is unstable with $\alpha=2$ and $K=\frac{1}{h}$. The second transfer function (calculated with MATLAB) has two poles $(1,2)$ of which one is outside the unit circle. So the second one seems to be correct. What is wrong with the first one?

  • $\begingroup$ What matlab function are you using? There is a pole-zero cancellation in the matlab version of $L(z)$. $\endgroup$
    – Peter K.
    Commented May 5, 2013 at 19:51
  • $\begingroup$ What do you mean by "$L(z)$ is unstable", exactly? The first TF looks correct to me. $\endgroup$
    – lxop
    Commented May 5, 2013 at 20:46
  • $\begingroup$ @PeterK. I create z with tf('z', -1) and then just do C = K/(z-alpha) and L = HC/(1+HC). $\endgroup$
    – i.amniels
    Commented May 5, 2013 at 21:02
  • $\begingroup$ @lxop with given values of K and alpha, the output of L is not bounded. For example step(L) will explode. $\endgroup$
    – i.amniels
    Commented May 5, 2013 at 21:03
  • $\begingroup$ According to the Mathworks z = tf('z',-1) means you've created a discrete time system with a sampling rate of -1. That seems wrong. Quote: z = tf('z',Ts) to specify a TF model with sample time Ts using a rational function in the discrete-time variable, z. $\endgroup$
    – Peter K.
    Commented May 5, 2013 at 21:09

1 Answer 1


Not really an answer, but let's work it out with $H(z) = h$ and $C(z) = \frac{K}{z-\alpha}$.:

$$ \begin{array} \ L(z) &=& \frac{H(z)C(z)}{1+H(Z)C(z)}\\ &=& \frac{h \frac{K}{z-\alpha}}{ 1 + h \frac{K}{z-\alpha}}\\ &=& \frac{h K}{ z - \alpha + h K}\\ &=& \frac{h K}{ z - \alpha + h K}\ \ \frac{z - \beta}{ z - \beta} \end{array} $$

I added the last line to show what I mean by a pole-zero cancellation. $\beta$ can be any value; if the pole and the zero at $\beta$ cancel out, the overall value of $\frac{z - \beta}{ z - \beta}$ is 1.

The trick will be to figure out why matlab inserts the extra $\frac{z - \alpha}{ z - \alpha}$ in there in the first plcae,


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.