Debugging code for matrix dimensions
Mostrar comentarios más antiguos
I am trying to calculate the velocity and accelerations of a slider in a crank slider mechanism.
The code below gives the error:
Error using /
Matrix dimensions must agree.
Error in olaitan_2 (line 9)
w=theta/t;
The crank motion is constrained to move from 90 degrees to 60 degrees
How do I fix this ?
Thanks.
%calculation of accelaration of pressing block in crank slider mechanism
L=0.36;
R=0.12;
theta=pi/2:pi/180:(1/3)*pi;
phi=(1/6)*pi:pi/180:(1/18)*pi;
X=L*cos(phi)+R*cos(theta);
%cos(phi)=sqrt[1-(R/L).^2*sin(theta).^2;
t=0:(5/30):5;
w=theta/t;
Dphi= w*[((R/L)*cos(phi))/(1-(R/L).^2*sin (theta).^2).^0.5];
DDphi=(w.^2*(R/L)*sin(theta)*[(R/L.^2)-1])/[1-(R/L.^2)*sin(theta).^2].^1.5;
DX= -w*((1+Dphi)/w)*(R/L)*sin(theta)*L;
DDX= -w.^2*(R/L)*[cos(theta)+((DDphi/w.^2)*sin(theta))+((Dphi/w)*cos(theta))]*L;
plot(t,DX,t,DDX)
grid on;
Respuestas (1)
KALYAN ACHARJYA
el 25 de Jul. de 2019
Editada: KALYAN ACHARJYA
el 25 de Jul. de 2019
t=linspace(0,5,length(theta));
t and theta length must be same, thats why I have changed t with linspace, its creates the same length vector as theta.
Also please note on the following
theta=pi/2:pi/180:(1/3)*pi;
^.....initial:step (increment):final
The last (1/3)*pi is less than initial (pi/2), same case for phi also
See example:
>> a=1:1:4
a =
1 2 3 4
>> b=4:2:3
b =
1×0 empty double row vector
Now modify the code accordingly, any issue let me know.
3 comentarios
KALYAN ACHARJYA
el 25 de Jul. de 2019
Editada: KALYAN ACHARJYA
el 25 de Jul. de 2019
Please note I have changed the phi and t to linearly spaced vector. Also [ ] represents vector in matlab, not multiplication, you can use multiple brackets, like ((a*b)*c), also .* reperesents vector multiplecation, read the Matlab documentation for details.
L=0.36;
R=0.12;
theta=pi/2:pi/180:pi;
phi=linspace((1/6)*pi,pi,length(theta));
X=L*cos(phi)+R*cos(theta);
%cos(phi)=sqrt[1-(R/L).^2*sin(theta).^2;
t=linspace(0,5,length(theta));
w=theta./t;
Dphi= w*(((R/L)*cos(phi))/(1-(R/L).^2*sin (theta).^2).^0.5);
DDphi=((w.^2).*(R/L).*sin(theta)*((R/L.^2)-1))/(1-(R/L.^2)*sin(theta).^2).^1.5;
DX= -w.*((1+Dphi)./w).*(R/L).*sin(theta).*L;
DDX= -(w.^2).*(R/L).*(cos(theta)+((DDphi./(w.^2)).*sin(theta))+((Dphi./w).*cos(theta)))*L;
plot(t,DX,t,DDX)
grid on;

Akintunde Akinneye
el 25 de Jul. de 2019
KALYAN ACHARJYA
el 26 de Jul. de 2019
Yes, but length must be same to do further calculation.
Categorías
Más información sobre Statics and Dynamics en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!