Warning: Explicit solution could not be found. > In solve at 169

Hi Everyone,
I've looked through all of the other questions associated with the failure of Matlab to resolve simultaneous equations and haven't found an answer to my problem unfortunately. I have 10 equations and 10 unknowns, 5 unknowns and 5 equations split into their real and imaginary components, code below
clear
syms Itr Iti I2r I2i V2r V2i Inr Ini Vnr Vni;
char eqn1r eqn1i eqn2r eqn2i eqn3r eqn3i eqn4r eqn4i eqn5r eqn5r_lhs eqn5r_rhs eqn5i eqn5i_lhs eqn5i_rhs;
syms Vt n k c beta Rt Xt Rc Xc;
eqn1r = 'I2r*V2r + I2i*V2i = Inr*Vnr + Ini*Vni';
eqn1i = 'I2r*V2i - I2i*V2r = Inr*Vni - Ini*Vnr';
eqn2r = 'Vnr - V2r = (1/2)*k*(I2r*Rc + Inr*Rc - I2i*Xc - Ini*Xc)';
eqn2i = 'Vni - V2i = (1/2)*k*(I2i*Rc + Ini*Rc + I2r*Xc + Inr*Xc)';
eqn3r = 'I2r*Vnr - I2i*Vni = 2*Inr*Vnr - 2*Ini*Vni - Inr*V2r + Ini*V2i';
eqn3i = 'I2i*Vnr + I2r*Vni = 2*Inr*Vni + 2*Ini*Vnr - Inr*V2i - Ini*V2r';
eqn4r = '2*Itr*Rc + Itr*Rt - 2*Iti*Xc - Iti*Xt = V2r - Vt';
eqn4i = '2*Itr*Xc + Itr*Xt + 2*Iti*Rc + ItiRt = V2i';
eqn5r_lhs = ' Itr*V2r - Iti*V2i - Itr^2*Rc + 2*Itr*Iti*Xc + Iti^2*Rc =';
eqn5r_rhs = ' (1/2)*c*(I2r*V2r + I2i*V2i + Inr*Vnr + Ini*Vni) + (1/4)*beta*(I2r^2*Rc - I2i^2*Rc + Inr^2*Rc - Ini^2*Rc - 2*I2r*I2i*Rc + 2*I2r*Inr*Rc - 2*I2r*Ini*Xc - 2*I2i*Inr*Xc - 2*I2i*Ini*Rc - 2*Inr*Ini*Xc)';
eqn5r = strcat(eqn5r_lhs, eqn5r_rhs);
eqn5i_lhs = ' Iti*V2r + Itr*V2i - Itr^2*Xc - 2*Itr*Iti*Rc + Iti^2*Xc =';
eqn5i_rhs = ' (1/2)*c*(-I2i*V2r + I2r*V2i - Ini*Vnr + Inr*Vni) + (1/4)*beta*(I2r^2*Xc - I2i^2*Xc + Inr^2*Xc - Ini^2*Xc + 2*I2r*I2i*Rc + 2*I2r*Inr*Xc + 2*I2r*Ini*Rc + 2*I2i*Inr*Rc - 2*I2i*Ini*Xc + 2*Inr*Ini*Rc)';
eqn5i = strcat(eqn5i_lhs, eqn5i_rhs);
S = solve(eqn1r, eqn1i, eqn2r, eqn2i, eqn3r, eqn3i, eqn4r, eqn4i, eqn5r, eqn5i, Itr, Iti, I2r, I2i, V2r, V2i, Inr, Ini, Vnr, Vni);
Any help much appreciated
Cheers,
Simon

2 commentaires

Could you confirm that Vt n k c beta Rt Xt Rc Xc are all intended to be constants, not to be solved for? For one thing, "n" does not appear in the equations.
Vt n k c beta Rt Xt Rc Xc are all constants. I haven't used n but will later

Connectez-vous pour commenter.

Réponses (1)

In equation 4,
eqn4i = '2*Itr*Xc + Itr*Xt + 2*Iti*Rc + ItiRt = V2i';
you have ItiRt instead of Iti*Rt

7 commentaires

Hi Walter,
Thanks for picking that up. I fixed and ran again but still received the warning. Any other thoughts?
Cheers,
Simon
You can reduce out 6 of the variables without much difficulty, but when you get down to the V* variables, all remaining possibilities involve solving at least quartics. You have not put any restrictions on the range of any of the variables, and with there being those 8 constants of unknown range in the picture, it is necessary to assume that all 4 of the general solutions to the quartics are valid, and to proceed case-by-case with each of them. If you got lucky and everything stayed as tractable as quartics, then you would need to run through 4*4*4*4 combinations (there being 4 equations each generating at least 4 solutions), but even a single general solution of a quartic is terribly long. You would need a lot of memory and a bunch of time to get through all of the possibilities. Even if one assumes that 3/4 of the solutions are redundant, what you would be left with afterwards would be a good 64+ different and very long solutions.
It might take considerably less memory if the constants were available. It would certainly take less effort if the constants were available and a constraint was added that precluded solutions in imaginaries.
Some fooling around with random substituted constants suggest that possibly the final variable to solve might require an order 6 polynomial that does not have a closed form solution. If, that is, everything else is resolved in the right order; otherwise you might end up with two order 6 polynomials.
The constants represent the (known) inputs into the model (the 5 equations, 10 when split into real and imaginary components). The value of these inputs vary so I'd like a solution to the 5(10) equations which gives me the 5(10) unknowns with constants kept as symbols. I hadn't thought about restrictions, I know the range for all the variables and constants so I'll put restrictions on them and see if that helps. Now that I think about it putting in a restrictions should make a big difference
Is this the form for placing restrictions on variables?
syms Itr
assume(Itr > 230 & Itr < 240);
Walter Roberson
Walter Roberson le 27 Sep 2013
Modifié(e) : Walter Roberson le 27 Sep 2013
Yes.
If the 10 equations have already been split into real and imaginary part, then can we assume that all of the variables are real valued ?
Yep, that's right

Connectez-vous pour commenter.

Question posée :

le 27 Sep 2013

Commenté :

le 27 Sep 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by