Index in position 1 exceeds array bounds.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
TheIOzikI
el 22 de En. de 2024
Comentada: TheIOzikI
el 23 de En. de 2024
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 comentarios
Respuesta aceptada
Voss
el 22 de En. de 2024
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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Startup and Shutdown en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!