clear all filename='blade10.txt'; fid=fopen(filename,'w+t');%this loads the file with all the data table=(readtable('IEA_15MW_240_RWT_Blade.txt')); X=[table.DistanceAlongZAxis]; mass=(table.Mass_unitLength); neutrx=(table.NeutralAxis_X_); neutry=(table.NeutralAxis_Y_); massaxis=(table.MassAxisOrientation)*pi/180; r=(table.RadiiOfGyrationRatio); inertiaall=table.MassMomentOfInertia_unitLength; thi=table.Thickness EA=table.AxialStiffness_EA_; E_I_XX=(table.BendingStiffnessAboutXP_EIXp_); E_I_YY=(table.BendingStiffnessAboutYP_EIyp_); G_J=table.TorsionalStiffness_GJ_; G_A_xp=table.ShearStiffnessAlongXP_GAxp_; G_A_yp=table.ShearStiffnessAlongYP_GAyp_; beta=table.PrincipalAxisOrientation; ch=table.Chord; I_M=double(zeros(6,6)); I_M_1=double(zeros(6,6)); I_M_2=double(zeros(6,6)); Sx=table.ShearCentre_X__; Sy=table.ShearCentre_Y__; xc=table.CentreOfMass_X__; yc=table.CentreOfMass_Y__;%starting the Mass, Inertia and Ratio interpolation SimTime=200;%time for the simulation tstep=0.03;%timestep n=40 meanx=(0:117/n:117)'; m=interp1(X,mass,meanx); inertia=interp1(X,inertiaall,meanx); thi=interp1(X,thi,meanx) R=interp1(X,r,meanx); v=(0:117/n:(117))'; E_A=interp1(X,EA,v); massaxis=interp1(X,massaxis,meanx); E_I_XX=interp1(X,E_I_XX,v); E_I_YY=interp1(X,E_I_YY,v); G_J=interp1(X,G_J,v); G_A_xp=interp1(X,G_A_xp,v); G_A_yp=interp1(X,G_A_yp,v); neutrx=interp1(X,neutrx,v); neutry=interp1(X,neutry,v); SX=interp1(X,Sx,meanx); SY=interp1(X,Sy,meanx); Sx=interp1(X,Sx,v) Sy=interp1(X,Sy,v) CH=interp1(X,ch,v) beta=interp1(X,beta,v); COS_beta=cosd(beta ); SIN_beta=sind(beta); pitch=270; mu=1 xc=interp1(X,xc,meanx); yc=interp1(X,yc,meanx); ch=interp1(X,ch,meanx'); fprintf(fid,'begin: data;\n');%printing the first part of the code fprintf(fid,'problem: initial value;\n'); fprintf(fid,'end: data;\n'); fprintf(fid,'begin: initial value;\n'); fprintf(fid,' initial time: 0.;\n'); fprintf(fid,' final time:%d.;\n',SimTime); %total time of the simulation fprintf(fid,' time step: %f;\n', tstep);%timestep fprintf(fid,' max iterations: 1000;\n tolerance: %f;\nderivatives coefficient:1.e-6; derivatives tolerance:1.e7;\n output:iterations;nonlinear solver: newton raphson, true;\n',0.1 );%tolerance,derivatives data and outputs fprintf(fid,'\nend: initial value;\n'); fprintf(fid,'begin: control data;\n '); fprintf(fid,'default beam output:position;') fprintf(fid,' structural nodes:\n');%the nodes fprintf(fid,' +%d #clamped nodes\n ',1); fprintf(fid,' +%d # other nodes\n\n ;\n',length(meanx)-1); fprintf(fid,' rigid bodies:\n');%the rigid bodies which includes mass and mass moments of inertia fprintf(fid,' +%d #mass of other nodes \n ;\n',(length(meanx)-1)*mu); fprintf(fid,' joints:\n');%joints fprintf(fid,' +1 # clamp \n ; \n'); fprintf(fid,' beams:\n');%the beams fprintf(fid,' +%d # the whole beam \n ;\n',length(meanx)*0.5); fprintf(fid,' gravity;\n forces:\n 1;');%gravity fprintf(fid,'\nend: control data;\n'); fprintf(fid,'begin: nodes;\n');%starting the nodes analysis fprintf(fid,' structural: 1,static,\n');%first clamped node fprintf(fid,' reference, global,0,%f,%f,\n',0,0); fprintf(fid,' eye,\n'); fprintf(fid,' null,\n'); fprintf(fid,' null;\n \n'); fprintf(fid,'include:"blade.nod10.txt";\n');%external inclusion for nodes fprintf(fid,'end: nodes; \n begin: elements;\n');%starting the elements (beams,bodies, joints,and others) analysis fprintf(fid,' joint: 1, clamp, 1, node, node;\n'); fprintf(fid,'\n include:"blade.elm10.txt";');%external inclusion for bodies and beams fprintf(fid,'\n gravity:uniform,\n'); fprintf(fid,'0.,0.,1., \n'); fprintf(fid,' const,9.81;'); fprintf(fid,'\n end: elements;'); fclose(fid); fid=fopen('blade.nod10.txt','w+t'); K=zeros(6,6); K_1=zeros(6,6); K_2=zeros(6,6); Matrix={}; for i=1:length(v) %starting to build all the 6X6 Matrices,AM is axial and SM is shear A_M(1,1)=E_A(i,1); A_M(1,2)=(neutry(i)-Sy(i)*ch(i)/100)*E_A(i,1); A_M(1,3)=-(neutrx(i)-Sx(i)*ch(i)/100)*E_A(i,1); S_M(1,1)=G_A_xp(i)*COS_beta(i,1)^2+G_A_yp(i)*SIN_beta(i)^2; S_M(1,2)=(G_A_yp(i)-G_A_xp(i))*COS_beta(i)*SIN_beta(i); S_M(2,2)=G_A_yp(i)*COS_beta(i,1)^2+G_A_xp(i)*SIN_beta(i)^2; S_M(1,3)=0; S_M(2,3)=0; S_M(3,3)=G_J(i,1); A_M(2,2)=(E_I_XX(i,1)*COS_beta(i,1)^2 +E_I_YY(i,1)*SIN_beta(i,1)^2)+E_A(i,1)*(neutry(i)-Sy(i)*ch(i)/100)^2; A_M(2,3)=(E_I_XX(i,1)-E_I_YY(i,1))*COS_beta(i,1)*SIN_beta(i,1)-(neutrx(i)-Sx(i)*ch(i)/100)*(neutry(i)-Sy(i)*ch(i)/100)*E_A(i,1); A_M(3,3)=E_I_XX(i,1)*SIN_beta(i,1)^2 +E_I_YY(i,1)*COS_beta(i,1)^2+E_A(i,1)*(neutrx(i)-Sx(i)*ch(i)/100)^2; A_M(2,1)=A_M(1,2); A_M(3,1)=A_M(1,3); A_M(3,2)=A_M(2,3); S_M(2,1)=S_M(1,2); S_M(3,1)=S_M(1,3); S_M(3,2)=S_M(2,3); K([1,5,6],[1,5,6])=A_M; K(2:4,2:4)=S_M; Matrix{i}=K;%saving all the data in a cell array end for i=1:length(Matrix) for j=1:6 for k=1:6 Matrix_I{i}(j,k)=Matrix{i}(j,k); end end end lengthbeam=X(end)/(length(v)-1)*2;%length of each beam for i=1:length(meanx) YC(i)=yc(i)*ch(i)/100 XC(i)=xc(i)*ch(i)/100 end YC=YC' XC=XC' for i=1:length(meanx)-1 %integrating the density (linear) in order to get the mass, required simps.m for simpson integration if i