Solve two equations for one variable
Afficher commentaires plus anciens
Hello everyone!
I am having problems to solve a simple system of two equations for a single variable. The equations look like:

It is possible to analytically calculate the solution for
through the following steps:
- Isolate
in the second equation and replace it in the first equation:

- Then using the fact that


- Then, isolating
:
- Finally:

Using MATLAB Symbolic Toolbox, I wrote the following piece of code in order to find the same analytical solution:
syms P_st vdq_st_abs Vabs delta_st Vangle Xg Q_st
eq1 = P_st - vdq_st_abs * Vabs * sin(delta_st - Vangle) / Xg == 0;
eq2 = (Q_st * Xg - Vabs^2)/(Vabs * cos(delta_st - Vangle)) - vdq_st_abs == 0;
eqs = [eq1; eq2];
sol = solve(eqs, delta_st);
disp(sol)
However, the output is parameterized, and I do not understand it very well. Could someone explain me this parametrization? Also, why can't MATLAB output the same analytical solution I just mentioned?
Thank you very much in advance!
Réponses (1)
syms P_st vdq_st_abs Vabs delta_st Vangle Xg Q_st real
eq1 = P_st - vdq_st_abs * Vabs * sin(delta_st - Vangle) / Xg == 0;
eq2 = (Q_st * Xg - Vabs^2)/(Vabs * cos(delta_st - Vangle)) == vdq_st_abs;
eqn = lhs(eq1) * lhs(eq2) == 0;
sol = solve(eqn,delta_st,'ReturnConditions',1)
sol.delta_st
sol.conditions
4 commentaires
Vitor Eiti Uekawa
le 19 Juil 2023
sin^2 and 1-cos^2 also look different, but are equal ...
Did you test the results with numerical values for the parameters ?
I wonder how the two equations can have a common solution for delta_st. You can solve each equation separately and you get two different results. I think you must have misunderstood something:
P_st = 1.0;
vdq_st_abs = 1.0;
Vabs = 1.0;
Vangle = 1.0;
Xg = 1.0;
Q_st = 1.0;
delta_st = Vangle + atan(P_st/(Q_st+Vabs^2/Xg))
P_st - vdq_st_abs * Vabs * sin(delta_st - Vangle) / Xg
(Q_st * Xg - Vabs^2)/(Vabs * cos(delta_st - Vangle)) - vdq_st_abs
Thus none of the equations gives 0 for delta_st = Vangle + atan(P_st/(Q_st+Vabs^2/Xg))
My guess is this is what you want:
syms P_st vdq_st_abs Vabs delta_st Vangle Xg Q_st real
eq1 = P_st - vdq_st_abs * Vabs * sin(delta_st - Vangle) / Xg == 0;
eq2 = (Q_st * Xg - Vabs^2)/(Vabs * cos(delta_st - Vangle)) == vdq_st_abs;
S = solve([eq1,eq2],[delta_st,vdq_st_abs])
simplify(S.delta_st(1))
simplify(S.delta_st(2))
Catégories
En savoir plus sur Calculus dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




