1
$\begingroup$

Related to this.

I have been into exploring the world of digital control loop but I have encountered a very simple problem.

The unity negative feedback transforms a system which delays a signal by 1 clock input from : $$\frac{1}{z}\rightarrow \frac{1}{z+1}.$$

However since the pole is exactly on the unit circle we cannot use the z-domain to find anything. So the feedback must be less than unity. Let's say we have a divisor by 2 so the feedback is 0.5.

Great!

Now the negative feedback transforms

$$\frac{1}{z}\rightarrow \frac{1}{z+0.5}.$$

But we still have a 1st order system(1 pole). Now if we feed it forward to the next stage which will be another 1 clock input delay system and we feed some of the signal back the equation which describes the system will be $$\frac{1}{z^{2}+0.5z+K}.$$

The problem is we have to find $K$ such as the poles are not outside the unit circle of the imaginary-real plane. But it is so hard to find such a value for $K$ (I don't think its possible).

So what should I do? Can you give out 1 solution so I can start working on it?

$\endgroup$
9
  • $\begingroup$ Welcome to SE.SP! If I choose $K=0$ then I get poles at 0 and -0.5, both of which are inside the unit circle. What are you trying to find? $\endgroup$
    – Peter K.
    Commented Jan 1 at 18:43
  • $\begingroup$ 0 feedback loop? $\endgroup$ Commented Jan 1 at 20:47
  • $\begingroup$ Try $K \le 0.25$. $\endgroup$
    – TimWescott
    Commented Jan 2 at 4:17
  • $\begingroup$ "since the pole is exactly on the unit circle we cannot use the z-domain to find anything" Why? You either need to choose your region of convergence carefully (i.e. $| z | < 1$) or play fast and loose with the z transform and just treat $z^{-1}$ as a delay operator -- either one works. $\endgroup$
    – TimWescott
    Commented Jan 2 at 4:23
  • 1
    $\begingroup$ Roots are $-0.25 \pm j\sqrt{1.75}/2$ using the quadratic formula: $\frac{-b\pm \sqrt{b^2-4ac}}{2a}$ $\endgroup$ Commented Jan 2 at 14:55

1 Answer 1

2
$\begingroup$

To answer the question specifically, $K=0.95$ is one solution.

I suspect the following will help fill in some of the missing details as to how the above solution would work.

The typical second order system in implementation is the 2nd Order Biquadratic Section (referred to as the "Biquad" and "SOS"). It's classical implementations for two zeros and two poles are given in the following forms (described below as a "filter" but given the negative feedback essentially represents a control loop as well):

Biquad Filter Forms

Thus to implement the OP's case of

$$H(z) = \frac{1}{z^2+0.5z+K}$$

We set the $b$ coefficients to $b_0=0$, $b_1=0$, $b_2=1$, and the $a$ coefficients to $a_1 = 0.5$ and $a_2=K$.

Note in general the relationship between the roots given on the z-plane and the polynomial for those roots is

$$Y(z) = z^2-2r\cos(\theta)z + r^2 \tag{1} \label{1}$$

Where $r$ is the radius of the root from the origin, and $\theta$ is the angle from $z=1$. Thus we can easily determine the coefficients based on any position for the poles inside the unit circle (for stable causal systems) and zeros anywhere on the z-plane:

poles and zeros

From this we easily see how equation $\ref{1}$ and the resulting implementations are derived from desired positions for poles and zeros on the z-plane.

For example consider a simple 2nd order resonator with real coefficients which has 2 complex conjugate poles and no finite zeros (the OP's desired result), with the poles given as follows when expressed using magnitude and angle form:

$$z_p = r_p e^{\pm j\theta_p}$$

The transfer function would be given as:

$$H(z) = \frac{1}{(z-r_pe^{- j\theta_p})(z-r_pe^{+ j\theta_p})}$$

$$ = \frac{1}{z^2 - r_p(e^{j\theta_p}+e^{-j\theta_p} + r_p^2}$$

$$ = \frac{1}{z^2-2r_p\cos(\theta_p)+r_p^2}$$

And thus we get generally the coefficients as: $$a_1=-2r_p\cos(\theta_p)$$ $$a_2 = r_p^2$$

As far as implementation, we can get that directly from the transfer function, most readily by rewriting it in form of negative powers of $z$ (unit sample delays):

$$H(z) = \frac{Y(z)}{X(z)} = \frac{z^{-2}}{1+a_1z^{-1}+a_2z^{-2}}$$

$$Y(z) (1+a_1z^{-1}+a_2z^{-2}) = X(z) z^{-2}$$

$$Y(z) = X(z) z^{-2} -a_1Y(z)z^{-1}- a_2Y(z)z^{-2}$$

With the inverse z-transform:

$$y[n] = x[n-2]- a_1y[n-1]-a_2y[n-2]$$

Which we should then see how it matches the forms introduced above, such as the completed solution below using Direct Form 2. To be stable $K<1$ for positive $K$ since $K$ is the square of the radius to the pole. (And $K>-0.5$ for negative $K$ resulting in real roots).

Direct Form 2 implementation

How do I know this? I teach courses on DSP and Python related to wireless comm through dsprelated.com and the IEEE with new courses running soon!

$\endgroup$
5
  • $\begingroup$ Dan, as usual I appreciate your contribution. I’m wondering whether this answers the OP question: Can you give out 1 solution so I can start working on it? ? $\endgroup$
    – Peter K.
    Commented Jan 2 at 18:09
  • 1
    $\begingroup$ @PeterK. The diagram I closed with together with the acceptable range of values for $K$ is one solution. $\endgroup$ Commented Jan 2 at 21:38
  • $\begingroup$ Right, but I felt the OP was requesting a specific value for $K$. I realize that's easily inferred from what you wrote, but I don't see any actual specific value given. e.g $K=-0.25$. I realize that's spoonfeeding; I just get complaints if I don't explicitly answer precisely the question they ask. YMMV $\endgroup$
    – Peter K.
    Commented Jan 2 at 22:15
  • $\begingroup$ @Peter Got it… thanks for explaining. I updated to open with specifics. $\endgroup$ Commented Jan 2 at 23:12
  • $\begingroup$ Thanks! And sorry for being a pain. :-) $\endgroup$
    – Peter K.
    Commented Jan 2 at 23:40

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