Effacer les filtres
Effacer les filtres

Index in position 1 exceeds array bounds.

1 vue (au cours des 30 derniers jours)
TheIOzikI
TheIOzikI le 22 Jan 2024
Commenté : TheIOzikI le 23 Jan 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

Réponse acceptée

Voss
Voss le 22 Jan 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 commentaire
TheIOzikI
TheIOzikI le 23 Jan 2024
i doubled the 17,18,19,20 EST. I'm blind thank you.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Produits


Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by