Index in position 1 exceeds array bounds.
    3 次查看(过去 30 天)
  
       显示 更早的评论
    
Hi, doing uni project and have a problem with some kind of FEM.
clc, clear, close
%%
% Parametry modelu układu nośnego
% Korpusy
% położenie układów lokalnych [mm]
UklLok=[-500    750    0;     % wozek1
        -500    750    100;   % gora wozka               
        -500    750    150;   % podstawa
        -500    650    525;   % ramie 1-1
        -500    1450   525];  % ramie 1-2
%% polożenie środków ciężkości w ukł. lokalnych [mm]
PolSC=[0   70      0;   % wozek1
       0   30      0;   %gorawozka
       0   0.17    0;   %podstawa
       0   0.47    0;   %ramie1
       0   0.47    0];  % ramie2 
%% masy [kg] zgodnie z tablicą 1
Masy=[90;           % wozek
      30;           % gorawozka
      84.62;        %podstawa
      85.8;         %ramie1
      85.8];        %ramie2
%% momenty bezwładności [kg*m^2] zgodnie z tablicą 1
MomBezw=[ 
 %-1--------------------------------------------wózek    
          17325 0           0;
          0     25612.5     0;
          0     0           9187.5;
 %-2--------------------------------------------gorawozka
          1.46  0           0;
          0     2.87        0;
          0     0           1.46;
%-3---------------------------------------------podstawa
          5.26  0           0;
          0     4.15        0;
          0     0           5.91;
%-4---------------------------------------------ramie1
         23.78  0           0;
         0      1.7         0;
         0      0           24.22;
%-5---------------------------------------------ramie2
         23.78  0           0;
         0      1.7         0;
         0      0           24.22];
%-------------------------------------------------
 %% położenie ESTów względem ukl. lokalnych [mm]
 % podawane są numery SESó, które łączy EST (0 - ostoja)
 % [ nr SESa p, nr SESa r, x, y, z]
 PolEST=[ 0 1   -750    500         -17;    % EST 1 ziemia do wozek1
          0 1   -750    -500        -17;    % EST 2 ziemia do wozek2
          0 1    750    -500        -17;    % EST 3 ziemia do wozek3
          0 1    750    500         -17;    % EST 4 ziemia do wozek4
          1 2   -240    415.69      100;    % EST 5 wozek do gorywozka1
          1 2   -240    -415.69     100;    % EST 6 wozek do gorywozka2
          1 2    240    415.69      100;    % EST 7 wozek do gorywozka3
          1 2    240    -415.69     100;    % EST 8 wozek do gorywozka4
          2 3      0    300         50;     % EST 9 gora wozka do podstawy1
          2 3      0    -300        50;     % EST 10 gora wozka do podstawy2
          2 3    300    0           50;     % EST 11 gora wozka do podstawy3
          2 3   -300    0           50;     % EST 12 gora wozka do podstawy4
          3 4    145    0           325;    % EST 13 podstawa do ramie1-1
          3 4   -145    0           325;    % EST 14 podstawa do ramie1-2
          3 4   -425    0           325;    % EST 15 podstawa do ramie1-3
          3 4    425    0           325;    % EST 16  podstawa do ramie1-4
          4 5    145    850         0;      % EST 17 podstawa do ramie2-1
          4 5   -145    850         0;      % EST 18 podstawa do ramie2-2
          4 5    145    950         0;      % EST 19 podstawa do ramie2-3
          4 5   -145    950         0;      % EST 20 podstawa do ramie2-4
          5 6    145    850         0;      % EST 17 ramie 1 do ramie2-1
          5 6   -145    850         0;      % EST 18 ramie 1 do ramie2-2
          5 6    145    950         0;      % EST 19 ramie 1 do ramie2-3
          5 6   -145    950         0;      % EST 20 ramie 1 do ramie2-4
          0 1   -600    500         5;      % EST  - śruba SP1
          0 1   -600    500         5];     % EST  - śruba SP2
%% parametry ESTów k1..6 [N/m], h1..6 [N*s/m] zgodnie z tablicami 2 i 3
ParEST=[0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 1
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 2
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 3
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 4
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 5
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 6
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 7
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 8
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 9
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 10
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 11
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 12
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 13
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 14
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 15
        115.196*10^7 0 115.196*10^7 0 0 0, 287.99*10^2 0 287.99*10^2 0 0 0;     % EST 16
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 17
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 18
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 19
        0 115.196*10^7 115.196*10^7 0 0 0, 0 287.99*10^2 287.99*10^2 0 0 0;     % EST 20
        12.003*10^7 0 0 0 0 0 240.07*10^2 0 0 0 0 0;                            % EST 33 - śruba SP1
        0 10.858*10^7 0 0 0 0 0 217.16*10^2 0 0 0 0];                           % EST 34 - śruba SP2
%% BUDOWA MODELU
%-----------------------------------------------
% agregacja macierzy mas
[Lses, k]=size(Masy);
M=zeros(Lses*6);
for i=1:Lses
    M1=[diag([Masy(i) Masy(i) Masy(i)]), zeros(3);
        zeros(3), MomBezw(((i-1)*3+1):((i-1)*3+3),:)];
    M(((i-1)*6+1):((i-1)*6+6),((i-1)*6+1):((i-1)*6+6))=M1;
end
%% agregacja macierzy sztywności i tłumień
K=zeros(Lses*6);
H=zeros(Lses*6);
PolEST(:,3:5)=PolEST(:,3:5)/1000;               % zmiana jednostek
PolSC=PolSC/1000;                               % zmiana jednostek
UklLok=UklLok/1000;                             % zmiana jednostek
[Lest, k]=size(ParEST);
%%
for i=1:Lest
    if PolEST(i,1)==0
        r=PolEST(i,2);
        sa=PolEST(i,3:5);                       % przeliczanie geometrii
        scr=PolSC(r,:);
        sr=UklLok(r,:);
        sra=sa-scr;
        Sr=[0 sra(3) -sra(2); -sra(3) 0 sra(1); sra(2) -sra(1) 0];
        Gr=[eye(3) Sr; zeros(3) eye(3)];
        Ka=diag(ParEST(i,1:6));
        Ha=diag(ParEST(i,7:12));
        Krr=Gr'*Ka*Gr;
        Hrr=Gr'*Ha*Gr;
        Ka=zeros(Lses*6);
        Ka(((r-1)*6+1):((r-1)*6+6),((r-1)*6+1):((r-1)*6+6))=Krr;
        K=K+Ka;
        Ha=zeros(Lses*6);
        Ha(((r-1)*6+1):((r-1)*6+6),((r-1)*6+1):((r-1)*6+6))=Hrr;
        H=H+Ha;
    else
        p=PolEST(i,1);
        r=PolEST(i,2);
        sa=PolEST(i,3:5);                       % przeliczanie geometrii
        scr=PolSC(r,:);
        scp=PolSC(p,:);
        sr=UklLok(r,:);
        sp=UklLok(p,:);
        sra=sa-scr;
        spa=sr+scr+sra-sp-scp;
        Sp=[0 spa(3) -spa(2); -spa(3) 0 spa(1); spa(2) -spa(1) 0];
        Sr=[0 sra(3) -sra(2); -sra(3) 0 sra(1); sra(2) -sra(1) 0];
        Gp=[eye(3) Sp; zeros(3) eye(3)];
        Gr=[eye(3) Sr; zeros(3) eye(3)];
        Ka=diag(ParEST(i,1:6));
        Ha=diag(ParEST(i,7:12));
        Kpp=Gp'*Ka*Gp;
        Krr=Gr'*Ka*Gr;
        Krp=-Gr'*Ka*Gp;
        Kpr=-Gp'*Ka*Gr;
        Hpp=Gp'*Ha*Gp;
        Hrr=Gr'*Ha*Gr;
        Hrp=-Gr'*Ha*Gp;
        Hpr=-Gp'*Ha*Gr;
        Ka=zeros(Lses*6);
        Ka(((p-1)*6+1):((p-1)*6+6),((p-1)*6+1):((p-1)*6+6))=Kpp;
        Ka(((p-1)*6+1):((p-1)*6+6),((r-1)*6+1):((r-1)*6+6))=Kpr;
        Ka(((r-1)*6+1):((r-1)*6+6),((r-1)*6+1):((r-1)*6+6))=Krr;
        Ka(((r-1)*6+1):((r-1)*6+6),((p-1)*6+1):((p-1)*6+6))=Krp;
        K=K+Ka;
        Ha=zeros(Lses*6);
        Ha(((p-1)*6+1):((p-1)*6+6),((p-1)*6+1):((p-1)*6+6))=Hpp;
        Ha(((p-1)*6+1):((p-1)*6+6),((r-1)*6+1):((r-1)*6+6))=Hpr;
        Ha(((r-1)*6+1):((r-1)*6+6),((r-1)*6+1):((r-1)*6+6))=Hrr;
        Ha(((r-1)*6+1):((r-1)*6+6),((p-1)*6+1):((p-1)*6+6))=Hrp;
        H=H+Ha;
    end
end
%% zapis do współrzędnych stanu
Mi=inv(M);
A=[zeros(Lses*6) diag(ones(Lses*6,1)); -Mi*K  -Mi*H];
B=[zeros(Lses*6); Mi];
C=[zeros(6,(Lses-1)*6) diag(ones(6,1)) zeros(6,Lses*6)];
D=zeros(6,Lses*6);
%%
clear p r sa scr scp sr sp sra spa Sp Sr Gp Gr Ka Ha k i Lses Lest
clear Kpp Kpr Krp Krr Hpp Hpr Hrr Hrp M1 Mi
clear Masy Mombezw ParEST PolEST PolSC PolSiskr UklLok MomBezw
0 个评论
采纳的回答
  Voss
      
      
 2024-1-22
        You use values from the second column of PolEST as row indices in PolSC:
r=PolEST(i,2);
% ...
scr=PolSC(r,:);
The values in the second column of PolEST go up to 6, but PolSC only has 5 rows. That's the error.
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Acoustics, Noise and Vibration 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


