Index exceeds matrix dimensions. Error in UyUzCalc (line 71) u_y2(i+1)=u_y(i)+... Error in Assignment3 (line 150) [u_y2,u_z2]=UyUzCalc(x,py2,pz2,EI1,EI2,B2)
    조회 수: 3 (최근 30일)
  
       이전 댓글 표시
    
i am trying to calculate the deflection of a turbine blade.
%%Assignment 3 - Strukturel
clc
clear all
%Konstanter
%
x=[3.00 6.46 9.46 12.46 15.46 18.46...
    21.46 24.46 27.46 28.96 29.86 30.55];    %Definer længder
py=[0 170 170 170 170 170 170 ... 
    170 170 170 170 170];    %Definer loads
pz=zeros(1,length(py));           
B=[0 0 0 0 0 0 0 0 0 0 0 0];       %Definer twist i grader
EI=[1.7e9]
EI1=[1.7e9 5.6657e8 2.3568e8 1.1916e8 5.9832e7 2.9763e7...
    1.3795e7 5.3929e6 1.5133e6 6.3600e5 3.5733e5 1.5917e5];
EI2=[1.7e9 1.4003e9 8.5164e8 5.2511e8 3.2937e8 2.0720e8...
      1.2099e8  5.9935e7 2.4543e7 1.4047e7 1.0060e7  7.2248e6];%Definer materialekonstant
%
N=length(x);
%Udregn interne krafter på vinge
% T(shear)
% Initier Ty, Tz, My og Mz
Ty=zeros(1,length(x));Tz=zeros(1,length(x));
My=zeros(1,length(x));Mz=zeros(1,length(x));
%--Find Tz og Ty--
for i=N:-1:2
    Ty(i-1)=Ty(i)+0.5*(py(i-1)+py(i))*(x(i)-x(i-1));
    Tz(i-1)=Tz(i)+0.5*(pz(i-1)+pz(i))*(x(i)-x(i-1));
end
Tz; Ty;
%--Find My og Mz--
for i=N:-1:2
    My(i-1)=My(i)-...
        Tz(i)*(x(i)-x(i-1))-...
        ((1/6)*pz(i-1)+(1/3)*pz(i))*(x(i)-x(i-1))^2;
    Mz(i-1)=Mz(i)+...
        Ty(i)*(x(i)-x(i-1))+...
        ((1/6)*py(i-1)+(1/3)*py(i))*(x(i)-x(i-1))^2;
end
My; Mz;
%--Brug interne loads til at beregne deflektion--
M1=zeros(1,length(x));M2=zeros(1,length(x));    %Initiate M1 og M2
k1=zeros(1,10); k2=zeros(1,10);                 %Initiate k1 og k2
theta_y=zeros(1,10); theta_z=zeros(1,10);       %Initate theta_y og theta_z
u_y=zeros(1,10); u_z=zeros(1,10);               %Inititate u_y og u_z
v=zeros(1,12);                                  %Can assume v=~0
%--Find M1 og M2--
for i=1:N
    M1(i)=My(i)*cos(B(i)+v(i))-Mz(i)*sin(B(i)+v(i));
    M2(i)=My(i)*sin(B(i)+v(i))+Mz(i)*cos(B(i)+v(i));
end
M1; M2;
%--Find k1 og k2--
for i=1:N
    k1(i)=M1(i)/EI;
    k2(i)=M2(i)/EI;
end
k1; k2;
%--Find kz og ky--
for i=1:N
    kz(i)=-k1(i)*sin(B(i)+v(i))+...
        k2(i)*cos(B(i)+v(i));
      ky(i)=k1(i)*cos(B(i)+v(i))+...
          k2(i)*sin(B(i)+v(i));
  end
  kz; ky;
%--Find theta_y og theta_z--
for i=1:N-1
    theta_y(i+1)=theta_y(i)+...
        0.5*(ky(i+1)+ky(i))*(x(i+1)-x(i));
      theta_z(i+1)=theta_z(i)+...
          0.5*(kz(i+1)+kz(i))*(x(i+1)-x(i));
  end
  theta_y; theta_z;
%--Find u_y og u_z--
for i=1:N-1
    u_y(i+1)=u_y(i)+...
        theta_z(i)*(x(i+1)-x(i))+...
        ((1/6)*kz(i+1)+(1/3)*kz(i))*(x(i+1)-x(i))^2;
      u_z(i+1)=u_z(i)-...
          theta_y(i)*(x(i+1)-x(i))-...
          ((1/6)*ky(i+1)+(1/3)*ky(i))*(x(i+1)-x(i))^2;
  end
  u_y;
  u_z;
x2=[0 3.00 6.46 9.46 12.46 15.46 18.46...
    21.46 24.46 27.46 28.96 29.86 30.55];    %Definer længder
R=30.55;
zeta=((R)-(x2))/(R)
Uy_ana1=((py*(R-3)^4)/(24*EI).*(zeta(2:end).^4-4*zeta(2:end)+3));
% Uz_ana1=((pz*R^4)./(24.*EI2).*(zeta(2:end).^4-4.*zeta(2:end)+3));
% for c=2:length(x2) 
% Uy_ana(c)=((py(c-1)*R^4)/(24*EI1(c-1))*(zeta(c-1)^4-4*zeta(c-1)+3));
% end
% Uy_ana;%mm
% Uy_anaM=Uy_ana*10^-3;%mm
% for c=2:length(x2) 
% Uz_ana(c)=(pz(c-1)*R^4/(24*EI2(c-1))*(zeta(c-1)^4-4*zeta(c-1)+3))
% end
% Uz_ana;%mm
% Uz_anaM=Uz_ana*10^-3;%mm
figure
hold on
grid on
plot (x,u_y)
plot(x,Uy_ana1)
legend('calculated','analytical')
Uy_comp=[u_y;Uy_ana1];
%Exercise 2
%table given:
TBL=[8 0 170 2000;12 0 490 3000;20 15.37 200 1200];
py2=zeros(1,length(x)); py3=zeros(1,length(x)); py4=zeros(1,length(x));  
pz2=zeros(1,length(x)); pz3=zeros(1,length(x)); pz4=zeros(1,length(x));
py2(2:length(x))=TBL(1,3); py3(2:length(x))=TBL(2,3); py4(2:length(x))=TBL(3,3);
pz2(2:length(x))=TBL(1,4); pz3(2:length(x))=TBL(2,4); pz4(2:length(x))=TBL(3,4);
B2=zeros(1,length(x));
B2(2:length(x))=TBL(1,2); B3=TBL(2,2); B4=TBL(3,2);
[u_y2,u_z2]=UyUzCalc(x,py2,pz2,EI1,EI2,B2)
function [u_y2,u_z2]=UyUzCalc(x,py2,pz2,EI1,EI2,B2)
N=length(x);
%Udregn interne krafter på vinge
% T(shear)
% Initier Ty, Tz, My og Mz
Ty=zeros(1,length(x));Tz=zeros(1,length(x));
My=zeros(1,length(x));Mz=zeros(1,length(x));
%--Find Tz og Ty--
for i=N:-1:2
    Ty(i-1)=Ty(i)+0.5*(py2(i-1)+py2(i))*(x(i)-x(i-1));
    Tz(i-1)=Tz(i)+0.5*(pz2(i-1)+pz2(i))*(x(i)-x(i-1));
end
Tz; Ty;
%--Find My og Mz--
for i=N:-1:2
    My(i-1)=My(i)-...
        Tz(i)*(x(i)-x(i-1))-...
        ((1/6)*pz2(i-1)+(1/3)*pz2(i))*(x(i)-x(i-1))^2;
    Mz(i-1)=Mz(i)+...
        Ty(i)*(x(i)-x(i-1))+...
        ((1/6)*py2(i-1)+(1/3)*py2(i))*(x(i)-x(i-1))^2;
end
My; Mz;
%--B2rug interne loads til at B2eregne deflektion--
M1=zeros(1,length(x));M2=zeros(1,length(x));    %Initiate M1 og M2
k1=zeros(1,10); k2=zeros(1,10);                 %Initiate k1 og k2
theta_y=zeros(1,10); theta_z=zeros(1,10);       %Initate theta_y og theta_z
u_y=zeros(1,10); u_z=zeros(1,10);               %Inititate u_y og u_z
v=zeros(1,12);                                  %Can assume v=~0
%--Find M1 og M2--
for i=1:N
    M1(i)=My(i)*cos(B2(i)+v(i))-Mz(i)*sin(B2(i)+v(i));
    M2(i)=My(i)*sin(B2(i)+v(i))+Mz(i)*cos(B2(i)+v(i));
end
M1; M2;
%--Find k1 og k2--
for i=1:N
    k1(i)=M1(i)/EI1(i);
    k2(i)=M2(i)/EI2(i);
end
k1; k2;
%--Find kz og ky--
for i=1:N
    kz(i)=-k1(i)*sin(B2(i)+v(i))+...
        k2(i)*cos(B2(i)+v(i));
      ky(i)=k1(i)*cos(B2(i)+v(i))+...
          k2(i)*sin(B2(i)+v(i));
  end
  kz; ky;
%--Find theta_y og theta_z--
for i=1:N-1
    theta_y(i+1)=theta_y(i)+...
        0.5*(ky(i+1)+ky(i))*(x(i+1)-x(i));
      theta_z(i+1)=theta_z(i)+...
          0.5*(kz(i+1)+kz(i))*(x(i+1)-x(i));
  end
  theta_y; theta_z;
%--Find u_y og u_z--
for i=1:N-1
    u_y2(i+1)=u_y(i)+...
        theta_z(i)*(x(i+1)-x(i))+...
        ((1/6)*kz(i+1)+(1/3)*kz(i))*(x(i+1)-x(i))^2;
      u_z2(i+1)=u_z(i)-...
          theta_y(i)*(x(i+1)-x(i))-...
          ((1/6)*ky(i+1)+(1/3)*ky(i))*(x(i+1)-x(i))^2;
  end
  u_y2;
  u_z2;
  end
When running calling the function trying to calculate u_y2 and u_z2 using new loads, i get the following error
Index exceeds matrix dimensions.
Error in UyUzCalc (line 71)
    u_y2(i+1)=u_y(i)+...
Error in Assignment3 (line 150)
[u_y2,u_z2]=UyUzCalc(x,py2,pz2,EI1,EI2,B2)
please find line 70 and onwards for my function
%--Find u_y og u_z--
for i=1:N-1
    u_y2(i+1)=u_y(i)+...
        theta_z(i)*(x(i+1)-x(i))+...
        ((1/6)*kz(i+1)+(1/3)*kz(i))*(x(i+1)-x(i))^2;
      u_z2(i+1)=u_z(i)-...
          theta_y(i)*(x(i+1)-x(i))-...
          ((1/6)*ky(i+1)+(1/3)*ky(i))*(x(i+1)-x(i))^2;
  end
  u_y2;
  u_z2;
  end
댓글 수: 0
채택된 답변
  Walter Roberson
      
      
 2017년 11월 26일
        About line 183 you have
u_y=zeros(1,10)
so u_y is only 10 elements long.
About line 220 you have
for i=1:N-1
  u_y2(i+1)=u_y(i)+...
      theta_z(i)*(x(i+1)-x(i))+...
      ((1/6)*kz(i+1)+(1/3)*kz(i))*(x(i+1)-x(i))^2;
where N = 12. When i becomes 11, this would attempt to access u_y(11) which does not exist.
In the earlier exercise where you have similar code around line 92, you have
for i=1:N-1
  u_y(i+1)=u_y(i)+...
      theta_z(i)*(x(i+1)-x(i))+...
      ((1/6)*kz(i+1)+(1/3)*kz(i))*(x(i+1)-x(i))^2;
which is okay because it extends u_y as it goes.
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

