Finding the Transfer Function of resonance system
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Saulius Janusauskas
le 18 Mar 2016
Commenté : Star Strider
le 19 Mar 2016
How can I obtain a transfer function of uout(t) and uin(t) ? Is there any way to find it using MATLAB/Simulink ?
Any help would be appreciated. Thanks!
0 commentaires
Réponse acceptée
Star Strider
le 19 Mar 2016
If you have the Symboli cMath Toolbox, the analysis of that circuit is straightforward:
syms R1 Ramp L C vi vo f t A
iR1 = (vi - vo)/R1;
iL = vo/s*L;
iC = vo*s*C;
iRa = vo/Ramp;
Node1 = iR1 == (iL + iC + iRa);
vo = solve(Node1, vo);
H = simplify(collect(vo/vi, s), 'steps',10)
Hsub = vpa(subs(H, {R1, L, C}, {60E+3, 2E-3, 5.3E-12}), 6) % Transfer Function
H =
(Ramp*s)/(C*R1*Ramp*s^2 + (R1 + Ramp)*s + L*R1*Ramp)
Hsub =
(Ramp*s)/(3.18e-7*Ramp*s^2 + (Ramp + 60000.0)*s + 120.0*Ramp)
Without knowing what ‘Ramp’ is, a plot is impossible.
Note that:
Vin = A*cos(2*pi*f*t);
so to solve for the output voltage given the input voltage, you have to take the Laplace transform of ‘Vin’ and substitute it in the ‘Node1’ equation:
Node1 = iR1 == (iL + iC + iRa);
Vins = laplace(A*cos(2*pi*f*t)); % Laplace Transform Of ‘Vin’
Node1 = subs(Node1, {R1, L, C, vi}, {60E+3, 2E-3, 5.3E-12, Vins}); % Substitute Component Values & ‘Vin’
Vout = solve(Node1, vo);
Vout = vpa(collect(Vout.vo, s), 6) % Vout
Vout =
(3.86856e25*A*Ramp*s^2)/(s*(1.52725e27*Ramp*f^2 + 9.16348e31*f^2) + 1.8327e29*Ramp*f^2 + 1.2302e19*Ramp*s^4 + s^2*(4.85665e20*Ramp*f^2 + 4.64228e27*Ramp) + s^3*(3.86856e25*Ramp + 2.32114e30))
2 commentaires
Star Strider
le 19 Mar 2016
Thank you.
First, I have to admit to a typographical error of a dropped parenthesis. My analysis is correct, but my typing wasn’t. The ‘iL’ equation should be:
iL = vo/(s*L);
That should have occurred to me when ‘L’ and ‘C’ did not end up as a product, but I didn’t catch it last night.
You have to solve the whole circuit! If you need to calculate the branch currents or node voltages later, you can solve for them by rearranging the equation or substituting in for the individual branch currents.
If ‘Ramp’ is infinity, it disappears from the circuit. It’s an open circuit with respect to ‘Ramp’, and the output is then taken across the parallel LC network. The transfer functions and ‘Vout’ then become (with the correct ‘iL’):
H =
(L*s)/(C*L*R1*s^2 + L*s + R1)
Hsub =
(0.002*s)/(6.36e-10*s^2 + 0.002*s + 60000.0)
Vout =
(3.86856e25*A*s^2)/(s^2*(4.85665e20*f^2 + 1.16057e33) + 1.52725e27*f^2*s + 4.58174e34*f^2 + 3.86856e25*s^3 + 1.2302e19*s^4)
The equations you posted are essentially the same as in my node-voltage analysis (the easiest way to do circuit analysis in my opinion, although I’ve not studied the ‘cut-set’ analysis that came along years after I completed my M.S. in Biomedical Engineering). Taking their Laplace transforms are straightforward. Your branch equations are in units of both current and voltage, while mine are in units of current only. Your equations should look the same as mine when you complete your analysis.
If you have access to the Symbolic Math Toolbox, set up your equations to correspond to the sort of analysis you’re supposed to do. It has the advantage of eliminating algebra errors, and will make the circuit analysis much less frustrating (providing you remember the parentheses).
Plus de réponses (1)
Ced
le 18 Mar 2016
There are several ways of doing this, but I'm guessing you would like to actually build the circuit and get the transfer function directly, i.e. without mathematically describing the circuit yourself?
I've never done this, but if you have Simscape and the Control Systems Toolbox, I think it should work. There is a tutorial here:
0 commentaires
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!