Borrar filtros
Borrar filtros

Index in position 1 exceeds array bounds.

1 visualización (últimos 30 días)
TheIOzikI
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

Respuesta aceptada

Voss
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.
  1 comentario
TheIOzikI
TheIOzikI el 23 de En. de 2024
i doubled the 17,18,19,20 EST. I'm blind thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by