Mathematica: Simplifying a feedback system

Tags:
1. Nov 23, 2013

divB

Hi,

I have given a complex feedback system in z domain like:

Y = 2*W2 + E
W2 = z^-1/(1-z^-1) * (W1 + (1-z^-1)*W2 - 1/2*(1-z^-1)*Y)
W1 = V - Y + z^-1/(1-z^-1) * 1/2 * (V - Y)

where Y is the system output, V is the system input, W1 and W2 are intermediate nodes and E is an error input

I and want to get an expression like

Y(z) = E(z)*(...) + X(z)*(...)

i.e., the system output as a sum of the error input and the input. Alternatively: signal transfer function and error transfer function.

Just defining the terms as above and using Solve[] or so is not really successful.

Anyone a hint how to do that?

Thanks
divB

2. Nov 24, 2013

Hepth

Does this get what you want?:

Code (Text):

Solve[{Y == 2*W2 + e, W2 == z^(-1)/(1 - z^(-1))*(W1 + (1 - z^(-1))*W2 - 1/2*(1 - z^(-1))*Y),
W1 == V - Y + z^(-1)/(1 - z^(-1))*1/2*(V - Y)}, {Y, W1, W2}];

Collect[Expand[%], e, Simplify]

Gives : (where I use little "e" as E, since E is the Exp[1] exponential.

$$Y\to \frac{e (-1+z)^3}{z^3}+\frac{V (-1+2 z)}{z^2}$$

3. Nov 24, 2013

divB

Woow! Thanks a lot.
It doesn't match with my hand calculations :-( - buts that's the reason I wanted to check it.

So the key here is to supply Solve[] a list of the indendent set of equations and a list of all inter connected variables?

4. Nov 25, 2013

Hepth

You need to supply it with N equations and solve for N independent variables. I don't know if i put in enough assumptions to let MM know if z was compelx or not, of it it just assumes it.