MATLAB: 6 set of equations, 6 unknowns, empty matrix error.

symbolic

Hi
I am trying to solve 6 equations with 6 unknowns. The code used is as follows;
MAx = -0.2376;
MAy = 0.8430;
MAz = -0.7356;
MBx = -0.2376;
MBy = 0.6675;
MBz = -0.3846;
syms r_ax r_ay r_az Fx Fy Fz;
%r_ax = 0.0214834;
%r_ay = 0.0475204;
%r_az = 0.0475204;
%Fx = 20;
%Fy = 10;
%Fz = 5;
r_bx = r_ax +0.0351
r_by = r_ay
r_bz = r_az
eqn1 = ((r_ay*Fz) - (r_az*Fy))- MAx < 0.1 & ((r_ay*Fz) - (r_az*Fy))- MAx > -0.1
eqn2 = ((r_az*Fx) - (r_ax*Fz))- MAy < 0.1 & ((r_az*Fx) - (r_ax*Fz))- MAy > -0.1
eqn3 = ((r_ax*Fy) - (r_ay*Fx))- MAz < 0.1 & ((r_ax*Fy) - (r_ay*Fx))- MAz > -0.1
eqn4 = ((r_by*Fz) - (r_bz*Fy))- MBx < 0.1 & ((r_by*Fz) - (r_bz*Fy))- MBx > -0.1
eqn5 = ((r_bz*Fx) - (r_bx*Fz))- MBy < 0.1 &((r_bz*Fx) - (r_bx*Fz))- MBy > -0.1
eqn6 = ((r_bx*Fy) - (r_by*Fx))- MBz < 0.1 & ((r_bx*Fy) - (r_by*Fx))- MBz > -0.1
Eq = [eqn1, eqn2, eqn3, eqn4, eqn5, eqn6];
vars = [r_ax, r_ay, r_az, Fx, Fy, Fz];
sol = solve(Eq,vars)
A=[sol.r_ax, sol.r_ay, sol.r_az, sol.Fx, sol.Fy, sol.Fz]
I originally had all 6 equations set == to 0 but it returned an empty matrix so i changed it to the above format in case of some inequalities that may cause it not to ==0. Furthermore, I calculated the MAx MAy….MBz by subbing in values of r_ax r_ay r_az and Fx, Fy Fz (which can be seen with a percentage sign next to them in the script above) so the system of equations should give me solutions.
Any help would be greatly appreciated

Best Answer

Hi
which release do you use? The following code sets the 6 equations == 0 and produces a result on R2018b:
MAx = -0.2376;
MAy = 0.8430;
MAz = -0.7356;
MBx = -0.2376;
MBy = 0.6675;
MBz = -0.3846;
syms r_ax r_ay r_az Fx Fy Fz;
%r_ax = 0.0214834;
%r_ay = 0.0475204;
%r_az = 0.0475204;
%Fx = 20;
%Fy = 10;
%Fz = 5;
r_bx = r_ax +0.0351;
r_by = r_ay;
r_bz = r_az;
eqn1 = ((r_ay*Fz) - (r_az*Fy))- MAx == 0;
eqn2 = ((r_az*Fx) - (r_ax*Fz))- MAy == 0;
eqn3 = ((r_ax*Fy) - (r_ay*Fx))- MAz == 0;
eqn4 = ((r_by*Fz) - (r_bz*Fy))- MBx == 0;
eqn5 = ((r_bz*Fx) - (r_bx*Fz))- MBy == 0;
eqn6 = ((r_bx*Fy) - (r_by*Fx))- MBz == 0;
Eq = [eqn1, eqn2, eqn3, eqn4, eqn5, eqn6];
vars = [r_ax, r_ay, r_az, Fx, Fy, Fz];
sol = solve(Eq,vars)
A=double([sol.r_ax; sol.r_ay; sol.r_az; sol.Fx; sol.Fy; sol.Fz])
The values for all M are like the ones you commented out. The calculated r-values differ from your ones.
Best regards
Stephan