MATLAB: How to solve a set of 32 non-linear equations using symbolic solver

non-linearsymbolic

I'm trying to solve a set of 32 non-linear equations with 32 unknowns using symbolic solver. I was able to solve 13 similar non-linear equations using the symbolic solver. Is there a limit to the number of equations that can be solved using symbolic solver? I tried solving with and without assumptions but I'm getting, 'explicit solution not found' error. Below is my code.
syms M_q1 M_d1 I_qf1 I_df1 V_q1 V_d1 I_qs I_ds I_qs1 I_ds1 M_q2 M_d2 I_qf12 I_df12 V_q2 V_d2 I_qs2 I_ds2 I_qs12 I_ds12 M_q3 M_d3 I_qf13 I_df13 V_q3 V_d3 I_qs3 I_ds3 I_qs23 I_ds23 I_ds21 I_qs21
eq1=(S_20*I_10) - (1/2*(M_q1*I_qf1+M_d1*I_df1));
eq2=(R_f1*I_qf1)-(w_e*L_f1*I_df1)+V_q1-(V_dc10*M_q1);
eq3=(R_f1*I_df1)+(w_e*L_f1*I_qf1)+V_d1-(V_dc10*M_d1);
eq4=I_df1+I_ds-I_ds1-I_ds12-(w_e*C_g1*V_q1);
eq5=I_qf1+I_qs-I_qs1-I_qs12+(w_e*C_g1*V_d1);
eq6=-(w_e*L_s*I_ds) + (R_s*I_qs) + V_q1-V_qs;
eq7=(w_e*L_s*I_qs) + (R_s*I_ds) + V_d1-V_ds;
eq8=-(w_e*L_11*I_ds1) + (R_11*I_qs1) -V_q1;
eq9=(w_e*L_11*I_qs1) + (R_11*I_ds1)-V_d1;
eq10=-(w_e*L_12*I_ds12) + (R_12*I_qs12) + V_q2-V_q1;
eq11= (w_e*L_12*I_qs12) + (R_12*I_ds12) + V_d2-V_d1;
eq12=(S_22*I_20) -(1/2*(M_q2*I_qf12+M_d2*I_df12));
eq13=(R_f12*I_qf12)-(w_e*L_f12*I_df12) + V_q2 - (V_dc02*M_q2);
eq14=(R_f12*I_df12) + (w_e*L_f12*I_qf12) + V_d2 - (V_dc02*M_d2);
eq15=I_df12+I_ds21-I_ds2-I_ds23-(w_e*C_g2*V_q2);
eq16=I_qf12+I_qs21-I_qs2-I_qs23+(w_e*C_g2*V_d2);
eq17=-(w_e*L_22*I_ds2)+ (R_22*I_qs2)-V_q2;
eq18=(w_e*L_22*I_qs2)+ (R_22*I_ds2)-V_d2;
eq19=-(w_e*L_23*I_ds23) + (R_23*I_qs23) + V_q3-V_q2;
eq20=(w_e*L_23*I_qs23) + (R_23*I_ds23) + V_d3 -V_d2;
eq21=(S_23*I_30)-(1/2*(M_q3*I_qf13+M_d3*I_df13));
eq22=(R_f13*I_qf13)-(w_e*L_f13*I_df13)+V_q3-(V_dc03*M_q3);
eq23=(R_f13*I_df13)+(w_e*L_f13*I_qf13)+V_d3-(V_dc03*M_d3);
eq24=I_df13+I_ds23-I_ds3-(w_e*C_g3*V_q3);
eq25=I_qf13+I_qs23-I_qs3+(w_e*C_g3*V_d3);
eq26=R_33*I_qs3-(w_e*L_33*I_ds3)-V_q3;
eq27=R_33*I_ds3+(w_e*L_33*I_qs3)-V_d3;
eq28=R_23*I_qs23-(w_e*L_23*I_ds23)+V_q3-V_q2;
eq29=R_23*I_ds23+(w_e*L_23*I_qs23)+V_d3-V_d2;
eq30=V_q1*I_df1-(V_d1*I_qf1);
eq31=V_q2*I_df12-(V_d2*I_qf12);
eq32=V_q3*I_df13-(V_d3*I_qf13);
sol = solve(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12,eq13,eq14,eq15,eq16,eq17,eq18,eq19,eq20,eq21,eq22,eq23,eq24,eq25,eq26,eq27,eq28,eq29,eq30,eq31,eq32,M_q1,M_d1,I_qf1,I_df1,V_q1,V_d1,I_qs,I_ds,I_qs1,I_ds1,M_q2,M_d2,I_qf12,I_df12,V_q2,V_d2,I_qs2,I_ds2,I_qs12,I_ds12,M_q3,M_d3,I_qf13,I_df13,V_q3,V_d3,I_qs3,I_ds3,I_qs23,I_ds23,I_ds21,I_qs21)

Best Answer

If you try to proceed by solving the first 11 equations for the first 11 variables in your list, you will fail, because the 11th variable in your list does not appear in the first 11 equations. The 11th equation involves some of the first 10 variables, together with V_d2, which is the 16th variable in your list. You would need to solve the first 16 equations for the first 16 variables for that to work out.
The inherent limit on the number of equations that can be solved simultaneously is very big -- large enough that it is certain that you would run out of memory before you hit the limit.