I am doing math for a closed loop equation. I know the transfer function for a closed loop system is:
(Image copied from "Loop Gain and its Effect on Analog Control Systems" by Gabino Alonso and Simon Bramble)
$$ V_{out} = G \times V_{in} \tag {Eq 1} $$
$$ G = \frac {A}{1 + \beta A_0} $$
\$ A \$ - open loop gain
\$ \beta \$ - Feedback factor.
Now when I do the math like
$$ V_{out} = A(V_{in} - \beta V_{out}) \tag {Eq 2} $$
What is the initial of Vout to start with?
Vout numbers with 1 & 2 do not match and initial value of Vout is making a lot of difference.
Why are they not matching?
If A = 1000, B = 0.25, Vin =1, Vout =3.98;
>From Eq 1
Vout = 1000/(1+0.25*1000) = 3.98
From Eq2
Vout_initial = 0
Vout = 1000*(1-0.25 x 0) = 1000
Vout = 1000*(1-0.25 x 1000) = -249000
Vout = 1000*(1-0.25 x -249000) = 62251000
Never settles, what am I doing wrong?
If I chose A = 1; B =0.1, Eq1 and Eq2 numbers match eventually to 0.91
Vout = 1*(1-0.1 x 0) = 1
Vout = 1*(1-0.1 x 1) = 0.9
Vout = 1*(1-0.1 x 0.9) = 0.91
and
Vout = 1/(1+0.1*1) = 0.909
What's going on? What fundamentals am I missing?
1 Answer 1
You're trying to form an iterative equation. There are many ways of going about it, sometimes it works, sometimes it doesn't.
This way works:
$$\small V_o=\frac{A}{1+AB}V_i $$
add \$\small V_o\$ to both sides:
$$\small 2V_o=\frac{A}{1+AB}V_i +V_o$$
Divide by 2: $$\small V_o=\frac{1}{2}\left(\frac{A}{1+AB}V_i +V_o\right)$$ Make it iterative: $$\small V_o[k]=\frac{1}{2}\left(\frac{A}{1+AB}V_i +V_o[k-1]\right)$$
Let \$\small A=1000; B=0.25; V_i=1\$ $$\small V_o[k]=\frac{1}{2}\left(\frac{1000}{251} +V_o[k-1]\right)$$ hence:
$$\small V_o[k]=\frac{500}{251} +\frac{V_o[k-1]}{2}$$
Let \$\small V_o[0]=0\$, then solve iteratively:
$$\small V_o[1]=1.992$$ $$\small V_o[2]=2.988$$ $$\small V_o[3]=3.486$$ $$\small V_o[4]=3.735$$ This converges to \$\small V_o[k]=3.984\$ at 17 iterations.
Interestingly(?), a square root algorithm can be formulated in a similar way:
Let \$\small y=\sqrt{x}\$ $$\small y^2=x$$ $$\small y=\frac{x}{y}$$ $$\small 2y=\frac{x}{y}+y$$ $$\small y=\frac{1}{2}\left(\frac{x}{y}+y\right)$$ Make iterative: $$\small y[k]=\frac{1}{2}\left(\frac{x}{y[k-1]}+y[k-1]\right)$$
e.g. let \$\small x=9,\:y[0]=1\$ $$\small y[1]=\frac{1}{2}\left(\frac{9}{1}+1\right)=5$$ $$\small y[2]=\frac{1}{2}\left(\frac{9}{5}+5\right)=3.4$$ $$\small y[3]=\frac{1}{2}\left(\frac{9}{3.4}+3.4\right)=3.0235$$ $$\small y[4]=\frac{1}{2}\left(\frac{9}{3.0235}+3.0235\right)=3.00009$$
-
\$\begingroup\$ "There are many ways of going about it, sometimes it works, sometimes it doesn't", what you are looking for is a contraction map (like the new formulation for the iteration you found), and the use of such contraction map is to find a fixed point of the system \$f(x^*)=x^*\$. If \$f()\$ is a contraction mapping "any" initial guess converges to the fixed-point. \$\endgroup\$jDAQ– jDAQ2020年03月20日 01:05:39 +00:00Commented Mar 20, 2020 at 1:05
-
1\$\begingroup\$ What @Chu is pointing out is not how the system will behave, but a way to calculate \$V_{out}\$. As you have said yourself, the output will be \$V_{out}(t) = V_{in}(t) \frac {A}{1 + \beta A_0}\$. Your second "method", comes from your perception that \$V_{out} = A(V_{in} - \beta V_{out})\$ is different than \$V_{out}(t) = V_{in}(t) \frac {A}{1 + \beta A_0}\$ (and it is not), you do not have to guess \$V_{out}(t)\$ at any moment, just calculate it using \$V_{in}\$. \$\endgroup\$jDAQ– jDAQ2020年03月20日 02:51:13 +00:00Commented Mar 20, 2020 at 2:51
-
\$\begingroup\$ Cool, thanks guys, I think the math works just fine. I am curious what will happen to control loop Vo at the instant an Vi in applied. There must be some delay before the loop can react. What is this delay called? How do I learn about this delay? \$\endgroup\$Aakash– Aakash2020年03月20日 03:21:52 +00:00Commented Mar 20, 2020 at 3:21
-
\$\begingroup\$ There needn't be a delay there (in the model), specially for Op Amp and similarly fast circuits, modelling that delay and the behavior at the very moment you start applying \$V_i\$ might show that it quickly goes to the value the equation tells you, probably without even oscillating. But if you are interested in bigger delays that actually create instabilities and odd behaviors, look at discrete-time systems and users.ece.utexas.edu/~buckman/H3.pdf \$\endgroup\$jDAQ– jDAQ2020年03月20日 05:13:10 +00:00Commented Mar 20, 2020 at 5:13
-
\$\begingroup\$ Cool, makes sense. If any of the blocks in the loop is a complex unit (mathematically speaking), we will start noticing delays and their effects Thank you @jDAQ. \$\endgroup\$Aakash– Aakash2020年03月20日 14:29:50 +00:00Commented Mar 20, 2020 at 14:29
Explore related questions
See similar questions with these tags.
( )
in Eq. 1 and converted a couple of lines to MathJAX which I suspect you'll love. You can continue on with the remainder of the post, if you wish. \$\endgroup\$