Commit 5795a7b5 authored by Enzo Vergnaud's avatar Enzo Vergnaud
Browse files

Update u4-fonctions.cpp

parent 42fb0e0f
......@@ -89,7 +89,7 @@ void InitialiserDonnees()
gDonnees.corde.t_boum = 0;
//gDonnees.corde.Oke[0] = 0;
gDonnees.i = 1;
// Exemple son
//JouerSon("media/r2d2.mp3");
}
......@@ -425,7 +425,7 @@ double X_Matlab(int i) // terminé
}
else
{
X = 1/(pow(gDonnees.geometrie.A[i],2))*log(gDonnees.corde.h[i+1]/gDonnees.corde.h[i])+1/gDonnees.geometrie.A[i]*(gDonnees.corde.x[i]-gDonnees.corde.h[i]/gDonnees.geometrie.A[i])*(1/gDonnees.corde.h[i]-1/gDonnees.corde.h[i+1]);
X = 1/(pow(gDonnees.geometrie.A[i],2))*log(fabs(gDonnees.corde.h[i+1]/gDonnees.corde.h[i]))+1/gDonnees.geometrie.A[i]*(gDonnees.corde.x[i]-gDonnees.corde.h[i]/gDonnees.geometrie.A[i])*(1/gDonnees.corde.h[i]-1/gDonnees.corde.h[i+1]);
}
......@@ -460,7 +460,7 @@ void X_W_s_Matlab(double* X,double* W) // entre x1 et xS, terminé
else
{
//Xs = 1/(pow(gDonnees.geometrie.A[1],2))*log(gDonnees.corde.hs/gDonnees.corde.h[1])+1/gDonnees.geometrie.A[1]*(gDonnees.corde.x[1]-gDonnees.corde.h[1]/gDonnees.geometrie.A[1])*(1/gDonnees.corde.h[1]-1/gDonnees.corde.hs);
*X = 1/(pow(gDonnees.geometrie.A[1],2))*log(gDonnees.corde.hs/gDonnees.corde.h[1])+1/gDonnees.geometrie.A[1]*(gDonnees.corde.x[1]-gDonnees.corde.h[1]/gDonnees.geometrie.A[1])*(1/gDonnees.corde.h[1]-1/gDonnees.corde.hs);
*X = 1/(pow(gDonnees.geometrie.A[1],2))*log(fabs(gDonnees.corde.hs/gDonnees.corde.h[1]))+1/gDonnees.geometrie.A[1]*(gDonnees.corde.x[1]-gDonnees.corde.h[1]/gDonnees.geometrie.A[1])*(1/gDonnees.corde.h[1]-1/gDonnees.corde.hs);
//Ws = 1/gDonnees.geometrie.A[1]*(1/gDonnees.corde.h[1]-1/gDonnees.corde.hs);
*W = 1/gDonnees.geometrie.A[1]*(1/gDonnees.corde.h[1]-1/gDonnees.corde.hs);
}
......@@ -489,7 +489,7 @@ void calculForceMatlab()
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-2*(X_Matlab(0)-gDonnees.corde.x[0]*W_Matlab(0))/pow((gDonnees.corde.x[1]-gDonnees.corde.x[0]),2));
printf("bern: %.10lf \n", bern);
//printf("bern: %.10lf \n", bern);
gDonnees.corde.f[0] = 0.5*(gDonnees.corde.x[1]-gDonnees.corde.x[0])*gDonnees.corde.Lg*(P+bern);
// *******************************************************
......@@ -537,48 +537,49 @@ void calculForceMatlab()
gDonnees.corde.f[1] = gDonnees.corde.Lg*tmpG*(P+bern)+gDonnees.corde.Lg*P_supra*(gDonnees.corde.x[2]-gDonnees.corde.xs)/(gDonnees.corde.x[2]-gDonnees.corde.x[1])*(gDonnees.corde.x[2]-(gDonnees.corde.x[2]+gDonnees.corde.xs)/2);
}
}
// *******************************************************
// ********************* Calcul de Fl_h2 *****************
// 2 cas: h2 < h1*sep et le cas h2 > h1*sep
if (gDonnees.corde.h[2] < gDonnees.corde.h[1]*sep)
{
if (fabs(gDonnees.geometrie.A[1]*gDonnees.corde.x[2]/gDonnees.geometrie.B[1])<pres) //glotte formant un conduit parallèle
{
//i2=2;
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-2*(X_Matlab(1)-gDonnees.corde.x[1]*W_Matlab(1))/pow(gDonnees.corde.x[2]-gDonnees.corde.x[1],2));
}
else //glotte formant un canal convergent ou divergent avec h2<hs
if (gDonnees.corde.h[2] < gDonnees.corde.h[1]*sep)
{
//i2 = 2; //numéro de la plaque sur laquelle on fait le calcul...
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-2*(X_Matlab(1)-gDonnees.corde.x[1]*W_Matlab(1))/(pow((gDonnees.corde.x[2]-gDonnees.corde.x[1]),2)));
}
if (fabs(gDonnees.geometrie.A[1]*gDonnees.corde.x[2]/gDonnees.geometrie.B[1])<pres) //glotte formant un conduit parallèle
{
//i2=2;
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-2*(X_Matlab(1)-gDonnees.corde.x[1]*W_Matlab(1))/pow(gDonnees.corde.x[2]-gDonnees.corde.x[1],2));
}
else //glotte formant un canal convergent ou divergent avec h2<hs
{
//i2 = 2; //numéro de la plaque sur laquelle on fait le calcul...
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-2*(X_Matlab(1)-gDonnees.corde.x[1]*W_Matlab(1))/(pow((gDonnees.corde.x[2]-gDonnees.corde.x[1]),2)));
}
gDonnees.corde.f[2] = 0.5*(gDonnees.corde.x[2]-gDonnees.corde.x[1])*gDonnees.corde.Lg*(P+bern);
}
else //cas où la glotte forme un canal divergent avec h2>hs
{
if (fabs(gDonnees.geometrie.A[1]*gDonnees.corde.x[2]/gDonnees.geometrie.B[1])<pres) //glotte formant un conduit parallèle
{
//i2=2;
tmpH = (gDonnees.corde.xs-gDonnees.corde.x[1])/(gDonnees.corde.x[2]-gDonnees.corde.x[1])*((gDonnees.corde.xs+gDonnees.corde.x[1])/2-gDonnees.corde.x[1]); //variable temporaire
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-(Xs-gDonnees.corde.x[1]*Ws)/(tmpH*(gDonnees.corde.x[2]-gDonnees.corde.x[1])));
gDonnees.corde.f[2] = 0.5*(gDonnees.corde.x[2]-gDonnees.corde.x[1])*gDonnees.corde.Lg*(P+bern);
}
else
else //cas où la glotte forme un canal divergent avec h2>hs
{
//i2 = 2; //numéro de la plaque sur laquelle on fait le calcul..
tmpH = (gDonnees.corde.xs-gDonnees.corde.x[1])/(gDonnees.corde.x[2]-gDonnees.corde.x[1])*((gDonnees.corde.xs+gDonnees.corde.x[1])/2-gDonnees.corde.x[1]); //variable temporaire
if (fabs(gDonnees.geometrie.A[1]*gDonnees.corde.x[2]/gDonnees.geometrie.B[1])<pres) //glotte formant un conduit parallèle
{
//i2=2;
tmpH = (gDonnees.corde.xs-gDonnees.corde.x[1])/(gDonnees.corde.x[2]-gDonnees.corde.x[1])*((gDonnees.corde.xs+gDonnees.corde.x[1])/2-gDonnees.corde.x[1]); //variable temporaire
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-(Xs-gDonnees.corde.x[1]*Ws)/(tmpH*(gDonnees.corde.x[2]-gDonnees.corde.x[1])));
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-(Xs-gDonnees.corde.x[1]*Ws)/(tmpH*(gDonnees.corde.x[2]-gDonnees.corde.x[1])));
}
else
{
//i2 = 2; //numéro de la plaque sur laquelle on fait le calcul..
tmpH = (gDonnees.corde.xs-gDonnees.corde.x[1])/(gDonnees.corde.x[2]-gDonnees.corde.x[1])*((gDonnees.corde.xs+gDonnees.corde.x[1])/2-gDonnees.corde.x[1]); //variable temporaire
//terme de bernoulli
bern = tmp1*(1/(pow(gDonnees.corde.h[0],2))-(Xs-gDonnees.corde.x[1]*Ws)/(tmpH*(gDonnees.corde.x[2]-gDonnees.corde.x[1])));
}
gDonnees.corde.f[2] = gDonnees.corde.Lg*tmpH*(P+bern)+ gDonnees.corde.Lg*P_supra*(gDonnees.corde.x[2]-gDonnees.corde.xs)/(gDonnees.corde.x[2]-gDonnees.corde.x[1])*((gDonnees.corde.x[2]+gDonnees.corde.xs)/2-gDonnees.corde.x[1]);
}
gDonnees.corde.f[2] = gDonnees.corde.Lg*tmpH*(P+bern)+ gDonnees.corde.Lg*P_supra*(gDonnees.corde.x[2]-gDonnees.corde.xs)/(gDonnees.corde.x[2]-gDonnees.corde.x[1])*((gDonnees.corde.x[2]+gDonnees.corde.xs)/2-gDonnees.corde.x[1]);
}
gDonnees.corde.bernouilli = bern;
//AJOUT DU PROF
if ((gDonnees.corde.h[1]>0)&&(gDonnees.corde.h[2]<=0)) //ajout pas NR (04/04/2007), pour calculer les forces de pression
{
......@@ -688,7 +689,7 @@ void collision()
}
else //rajouter de notre part pour ramener les valeurs initiales
{
gDonnees.corde.k1 = 40;
gDonnees.corde.k1 = gDonnees.corde.K1;
gDonnees.corde.r1 = 2*0.1*sqrt(gDonnees.corde.k1*gDonnees.corde.m); // coeff d'amortissement
gDonnees.corde.boum = 0;
}
......@@ -705,7 +706,7 @@ void collision()
}
else //rajouter de notre part pour ramener les valeurs initiales
{
gDonnees.corde.k2 = 40;
gDonnees.corde.k2 = gDonnees.corde.K2;
gDonnees.corde.r2 = 2*0.1*sqrt(gDonnees.corde.k2*gDonnees.corde.m); // coeff d'amortissement
gDonnees.corde.boum = 0;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment