Matlab - S.O.S, Iteraciones de error cuadrático para mecanismo biela manivela

 
Vista:

S.O.S, Iteraciones de error cuadrático para mecanismo biela manivela

Publicado por Pedro Ramiro (1 intervención) el 23/05/2015 11:46:17
Hola, estoy haciendo el trabajo del titulo del foro. Consta de 10 puntos de precision de la biela manivela, y unas posiciones y angulos iniciales de que partimos. Se busca una matriz de 13 por 13 que nos de los vectores incrementos
de las tres dimensiones de que consta la biela (ya se que son dos barras pero tiene en este caso una tercera fija a 90 grados del piston cuya punta es el punto de precisión que buscamos), Una vez tengamos los incrementos toca iterar para sacar el resultado más optimo (que cumpla norma). Hasta aqui parece que controlo pero ese es el problema. Entiendo que hay que hacer pero no controlo matlab asi que que nadie se asuste si ve algo raro en la programación que voy a poner. Necesito que me diga alguien como hacer para que Matlab no me de que no esta definido B2 y B3 en este bucle for con If. Intento guardar resultados del bucle end eriv_dmixtocona1, 2 y 3.

Un saludo Foro.

for i=1:3



%los divido segun filas donde fila1 para a1, es decir i=1 y los demas
%igual.
if i==1
B1=zeros(1,10);
for i=1:N
dx_da1=(cosd(vector_Ang(i)))-((a1*(sind(vector_Ang(i)))^2)/(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(i)))^2))))+((a3/a2)*sind(vector_Ang(i)));
dy_da1=-((a1*a3*(sind(vector_Ang(i)))^2)/(a2*(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(i)))^2)))));
dx_dAng1=-(a1*sind(vector_Ang(1,i))-((a1^2*(sind(vector_Ang(1,i))*cosd(vector_Ang(1,i)))/(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(1,i)))^2)))))+((a3.*a1/a2).*cosd(vector_Ang(1,i))));
dy_dAng1=-((a1^2*a3*(sind(vector_Ang(1,i))*cosd(vector_Ang(1,i))))/(a2*(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(1,i)))^2)))));
%Valores de la fila 1 de la matriz A desde 4 hasta 13, Al ser
%simetrica tambien de la columna 1 desde 4 a 13.
B1(1,i)=dx_da1*dx_dAng1+dy_da1*dy_dAng1;

end

end

deriv_dmixtocona1=B1;
if i==2
B2=zeros(1,10);

for i=1:N
dx_da2=(a2/(sqrt((a2^2)-((a1^2).*(sind(vector_Ang(i)))^2))))-(((a1*a3)/(a2^2))*sind(vector_Ang(i)));
dy_da2=((a1^2)*a3*(sind(vector_Ang(i)))^2)/((a2^2)*(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(i)))^2))));
dx_dAng2=-(a1*sind(vector_Ang(1,i))-((a1^2*(sind(vector_Ang(1,i)).*cosd(vector_Ang(1,i)))/(sqrt((a2^2)-((a1^2).*(sind(vector_Ang(1,i)))^2)))))+((a3.*a1/a2).*cosd(vector_Ang(1,i))));
dy_dAng2=-((a1^2*a3*(sind(vector_Ang(1,i))*cosd(vector_Ang(1,i))))/(a2*(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(1,i)))^2)))));
B2(1,i)=dx_da2*dx_dAng2+dy_da2*dy_dAng2;


end

end

deriv_dmixtocona2=B2;

if i==3
B3=zeros(1,10);
for i=1:N
dx_da3=(a1/a2)*sind(vector_Ang(i));
dy_da3=sqrt((a2^2)-((a1^2)*(sind(vector_Ang(i)))^2))/a2;
dx_dAng3=-(a1*sind(vector_Ang(1,i))-((a1^2*(sind(vector_Ang(1,i))*cosd(vector_Ang(1,i)))/(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(1,i)))^2)))))+((a3*a1/a2)*cosd(vector_Ang(1,i))));
dy_dAng3=-((a1^2*a3*(sind(vector_Ang(1,i))*cosd(vector_Ang(1,i))))/(a2*(sqrt((a2^2)-((a1^2)*(sind(vector_Ang(1,i)))^2)))));
B3(1,i)=dx_da3*dx_dAng3+dy_da3*dy_dAng3;

end



end
deriv_dmixtocona3=B3;


end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder