2017-01-24 5 views
1

私はMatlabの一端から引っ張られた剛性バーを実装しようとしています。ポイントの初期座標はP1(1,0)P2(0,0)です。牽引バーの物理

私は質量が粒子上にある集中質量モデルを使用しています。既存の唯一の努力は、P1と重力の垂直方向の努力です。各粒子の質量は0.05である。

マイコードは次のようになります

L=1; %length of the bar 

Mass1=[1 0; 0 1]; 
Efforts1=[0; 20-9.8*0.05]; 

Mass2=[1 0; 0 1]; 
Efforts2=[0; -9.8*0.05]; 

acel1=Mass1\Efforts1; 

acel2=Mass2\Efforts2; 
dt=0.1; %time step 


%variables creation 
position of mass1 
x1=zeros(100,1); x1(1)=L; x1(2)=L; 
y1=zeros(100,1); 
%position of mass2 
x2=zeros(100,1); 
y2=zeros(100,1); 
%velocities 
x1_dot=zeros(100,1); y1_dot=zeros(100,1); 
x2_dot=zeros(100,1); y2_dot=zeros(100,1); 

for i=2:100 
    %numerical integration of first mass. Accel, vel, pos 
    x1_dot(i)=x1_dot(i-1) + dt*acel1(1); 
    y1_dot(i)=y1_dot(i-1) + dt*acel1(2); 

    x1(i)=x1(i-1) + dt*x1_dot(i); 
    y1(i)=y1(i-1) + dt*y1_dot(i); 

    %numerical integration of first mass. Accel, vel, pos 
    x2_dot(i)=x2_dot(i-1) + dt*acel2(1); 
    y2_dot(i)=y2_dot(i-1) + dt*acel2(2); 

    x2(i)=x2(i-1) + dt*x2_dot(i); 
    y2(i)=y2(i-1) + dt*y2_dot(i); 

    if y2(i)<0 
     y2(i)=0; 
    end 

    X=[x1 x2]; Y=[y1 y2]; 
    plot(X,Y); hold on; 
    pause(0.1); 

end  

問題は、次の図に表すことができる。

lumped mass model

2つの塊が固体バー(定数と減衰と動作しないれていることを考えると長さ)では、重力の下でP2質量が正しくP1に追従するように、カップリング効果をどのようにモデル化できますか?

答えて

0

私は本当に問題を理解していません。あなたのコードでは、座標がx1y1に格納されているポイントは実際にはP2(1,0)であり、このポイントでは垂直力が適用されます。 x2y2に格納されている座標は、実際にはP2(0,0)であり、垂直に固定されています。私の理解は正しいのですか?たぶん、問題は水平方向の動きにいくつかの問題を引き起こす可能性のある垂直方向にのみ固定されているため、うまく構成されていない可能性があります。

P2に力を加え、P2の移動/変位を計算します。しかしながら、この運動はP1に結合されていない。あなたが "結合された"動きを計算したい場合は、内部力を考慮に入れる必要があります。これは、1Dロッドのフック法で行うことができます。

これは役に立ちますか?

ミカ

+0

私は声明で、いくつかのミスを修正し、私は自分自身 – galtor

+0

明確に数字をありがとうございまし作ることができるように画像を追加しました。あなたがこのシステムの物理学を望むなら、前述したように、フックの法則と内部力を使うべきです。そこでは、現在の境界条件である一定の時間の後にL = 1にすることは不可能であることがわかります。 異なるアプローチは、L = 1の要件を満たすために、積分後の点P1とP2の変位を適応させることです。しかし、このアプローチは物理学に関連せず、L = 1であっても完全に間違った結果を与える場合がありますOKのまま。 –

関連する問題