Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
projetS6_Groupe4
4projetCordesVocales
Commits
5795a7b5
Commit
5795a7b5
authored
Mar 19, 2021
by
Enzo Vergnaud
Browse files
Update u4-fonctions.cpp
parent
42fb0e0f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
36 deletions
+37
-36
u4-fonctions.cpp
u4-fonctions.cpp
+37
-36
No files found.
u4-fonctions.cpp
View file @
5795a7b5
...
...
@@ -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
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment