Why do i get the error "Dimensions of arrays being concatenated are not consistent"
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Umut Ayyildiz
am 23 Mär. 2021
Kommentiert: Umut Ayyildiz
am 23 Mär. 2021
Why do I get this error for one but not the other even though the two codes are the exact same.
This one runs fine:
clear all; close all
% Initial Conditions
th= 0.01*pi/180; % initial theta position (rad)
w=0; % inital theta velocity (rad/s)
g=9.81; %gravity constant (m/s^2)
L=0.3; % length of bar (m)
mB=2; % mass of bar (kg)
mA=1; %mass of collar (kg)
dt=.001;
I = (mB*L^2)/12;
Wa=mA*g;
Wb=mB*g;
x=(mB*L)/2;
z=(L/2);
for ii = 1:5000
A = [-1 0 0 -mA 0
0 -1 1 0 0
1 0 0 -mB -x*cos(th)
0 1 0 0 x*sin(th)
sin(th)*z -cos(th)*z 0 0 -I];
B = [0; Wa; x*(w)^2*sin(th); Wb-x*(w)^2*cos(th); 0];
X=inv(A)*B;
w = w + X(5)*dt;
th=th + w*dt;
time(ii)= ii*dt;
theta(ii)=th;
alpha(ii)= X(5);
omega(ii)=w;
Rx(ii)=X(1);
Ry(ii)=X(2);
N(ii)=X(3);
d_acc(ii)=X(4);
end
But this one gives me an error:
clear all; close all
% Initial Conditions
theta= 0.01*pi/180; % initial theta position (rad)
theta_V=0; % inital theta velocity (rad/s)
g=9.81; %gravity constant (m/s^2)
L=0.3; % length of bar (m)
mB=2; % mass of bar (kg)
mA=1; %mass of collar (kg)
dt=.001;
I = (mB*L^2)/12;
Wa=mA*g;
Wb=mB*g;
x=(mB*L)/2;
z=(L/2);
for i = 1:5000
A = [-1 0 0 -mA 0;
0 -1 1 0 0;
1 0 0 -mB (-x*cos(theta))
0 1 0 0 x*sin(theta)
(sin(theta)*z) (-cos(theta)*z) 0 0 -I];
B = [0; Wa; x*(theta_V)^2*sin(theta); Wb-x*(theta_V)^2*cos(theta); 0];
X=inv(A)*B;
theta_V = theta_V + X(5)*dt;
theta=theta + theta_V*dt;
time(i)= i*dt;
theta(i)=theta;
theta_a(i)= X(5);
omega(i)=theta_V;
Rx(i)=X(1);
Ry(i)=X(2);
N(i)=X(3);
d_acc(i)=X(4);
end
I was changing my code from the one that worked because I realized I messed up my dynamic equations and I ended up with the same error I mention in the title When I was trying to debug it by backtracking I realized that even my original code was giving me an error. I had another file saved with my orignal code and it runs.
0 Kommentare
Akzeptierte Antwort
William
am 23 Mär. 2021
The problem in the second program is the statement 'theta(i) = theta', which is changing theta from a scalar into a vector. Then on the second iteration for the for-loop, the matrix A has some elements that are now vectors.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Inertias and Loads finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!