macmp91

10 Reputation

One Badge

7 years, 33 days

MaplePrimes Activity


These are replies submitted by macmp91

@Carl Love 

My worksheet is a numerical solution based on Element finite method for multilayred beams with partial interaction.

My mechanical problem come up with this equation:

det(K-w^2*M)=0

I have the Stifness matrix(K) and the Mass matrix(M). The w is the eigenvalues of the problem(That`s the why I `m using sqrt). The main question is to find the minimum value of w (that`s the why I use the sort command). In my problem the K matrix decrease after a increment of load in the centroid of the layers of my beam. In consequence, the result decrease the mimimum value of w too. So ,when the minimum value, known as fundamental frequencie, is zero I have a associate load to this frequencie, called as buckling load. For example :

Pr(Increment of load)=-10

Q(load)=0 ----> w[1]=10.3423
+Pr
Q(load)=-10---->w[1]=8.545
+Pr
Q(load)=-20----> w[1]=3.543534
+Pr
Q(load)=-30--->w[1]=0.000321312

That`s the buckling load. So I need this kind of loop,  printing the w[1] and Q loads.

 

@Carl Love 

yes, I see now

But, how can I use this command in the Fn code? After "D:=Eigenvalues(B,C,datatype=float);"? E.g: 

Fn:=proc(N,VS,E,A,In,L,h,k,T,q,ro)
local B,C,D;
B:=KG(N,VS,E,A,In,L,h,k,T,q);
C:=MG(N,VS,E,A,In,L,h,ro,T);

D:=Eigenvalues(B,C,datatype=float);
D:=SingularValues(D);

D:=sort(D,`<`);
D:=sqrt~(D);
D:=(0.15915494)*~(D);
end proc;

As I saw in maple help this command only works with Matrices... Actually, I didn`t understand the structure of SingularValues.

Thank you!

@Carl Love 
In the eingenvalue code I put sqrt~(D), wich "D" is the eigenvalue, so it only output and display positive numbers. As you can see:

@tomleslie 

First, thank you for the attention.

It`s a mechanical problem. I`ll try to explain. "Fn" is the eigenvalues of two matrices that I have already generated in the same worksheet with other procedures. So, I got the eigenvalue of two matrices (stifiness matrix and mass matrix) and allocated in the global variable Fn. The code of Fn it`s bellow:
 

>Fn:=proc(N,VS,E,A,In,L,h,k,T,q,ro)
local B,C,D;
B:=KG(N,VS,E,A,In,L,h,k,T,q); #Global Stifness matrix
C:=MG(N,VS,E,A,In,L,h,ro,T); #Global Mass matrix

D:=Eigenvalues(B,C,datatype=float);

D:=sort(D,`<`);
D:=sqrt~(D);
(0.15915494)*~(D);
end proc;
 

The parameter "q" is a list of loads wich is applicated in the centroid of "N" layers of a beam. So, when "q" increase, the stifness matrix change and the eigenvalue changes too. That`s the why I`m trying to use a "pr" (from the word precision) increment of negative loads(compression), because this will make a decrease in the first value of Fn . When the first value of the vector Fn is near to zero(or zero), I will find the buckling load. So, for the procedure buckload, I did the code:

>buckload:=proc(N,VS,E,A,In,L,h,k,T,q,ro,pr)
local Qloc;
Qloc:=q;
while Fn(N,VS,E,A,In,L,h,k,T,Qloc,ro)[1]>0 do
Qloc:=Qloc+pr;
end do;
Qloc;
end proc;

But maple display this message when I try to run an example with numbers in the paramters:

buckload(2,30,[12e6,8e6],[0.3*0.05,0.05*0.15],[0.3*0.05^3/12,0.05*0.15^3/12],4,[0.5*(0.05+0.15)],[50e3],[1,3,123],[0.0,0.0],[2.30000,0.700],[-10.0,-10.0]);
Error, (in Fn) unable to store 0.+11.7314161808423930*I in a datatype=float[8] rtable

I need to diaplay all increments of loads "Qloc" and the first values of eingevalues that had been evaluated 

Thank you for your help!

I've already find the correct answer. There is a constant, that I have to multiply by the eigenvector matrix. Thank you guys!

Thank you so much!!!

Page 1 of 1