📄 compaeroscode.htm
字号:
<p>function rrs(g,m) {
<br> return rr0(g,m)*Math.pow((g/2. + .5),1./(g-1.))}
<p>function aas(g,m) {
<br> return 1./rrs(g,m)*Math.sqrt(1./tts(g,m))/m}
<p>function nu(g,m) {
<br> n=Math.sqrt((g + 1.) / (g - 1.)) * Math.atan(Math.sqrt((g
- 1.) / (g + 1.) * (m * m - 1.)))
<br> n=n - Math.atan(Math.sqrt(m * m - 1.))
<br> n=n*180./3.14159265359
<br> return n}
<p>function m2(g,m1) {
<br> return Math.sqrt((1. + .5 * (g - 1.) * m1 * m1) / (g *
m1 * m1 - .5 * (g - 1.)))}
<p>function mdb(g,m1,d,i) {
<br> p=-(m1*m1+2.)/m1/m1-g*Math.sin(d)*Math.sin(d)
<br> q=(2.*m1*m1+1.)/Math.pow(m1,4.)+((g+1.)*(g+1.)/4.+(g-1.)/m1/m1)*Math.sin(d)*Math.sin(d)
<br> r=-Math.cos(d)*Math.cos(d)/Math.pow(m1,4.)
<p> a=(3.*q-p*p)/3.
<br> b=(2.*p*p*p-9.*p*q+27.*r)/27.
<p> test=b*b/4.+a*a*a/27.
<p> if(test>0.0) {return -1.0}
<br> else {
<br> if(test==0.0) {
<br> x1=Math.sqrt(-a/3.)
<br> x2=x1
<br> x3=2.*x1
<br> if(b>0.0) {
<br> x1*=-1.
<br> x2*=-1.
<br> x3*=-1.}}
<br> if(test<0.0) {
<br> phi=Math.acos(Math.sqrt(-27.*b*b/4./a/a/a))
<br> x1=2.*Math.sqrt(-a/3.)*Math.cos(phi/3.)
<br> x2=2.*Math.sqrt(-a/3.)*Math.cos(phi/3.+3.14159265359*2./3.)
<br> x3=2.*Math.sqrt(-a/3.)*Math.cos(phi/3.+3.14159265359*4./3.)
<br> if(b>0.0) {
<br> x1*=-1.
<br> x2*=-1.
<br> x3*=-1.}}
<br>
<br> s1=x1-p/3.
<br> s2=x2-p/3.
<br> s3=x3-p/3.
<br>
<br> if(s1<s2 && s1<s3) {
<br> t1=s2
<br> t2=s3}
<br> else if(s2<s1 && s2<s3) {
<br> t1=s1
<br> t2=s3}
<br> else {
<br> t1=s1
<br> t2=s2}
<p> b1=Math.asin(Math.sqrt(t1))
<br> b2=Math.asin(Math.sqrt(t2))
<p> betas=b1
<br> betaw=b2
<br> if(b2>b1) {
<br> betas=b2
<br> betaw=b1}
<br>
<br> if(i==0) {return betaw}
<br> if(i==1) {return betas}}
<br>}
<p>function mbd(g,m1,b) {
<br> return Math.atan((m1*m1*Math.sin(2.*b)-2./Math.tan(b))/(2.+m1*m1*(g+Math.cos(2.*b))))}
<p>function format(s) {
<p> val=eval(s)
<br>
<br> if(Math.abs(val)<1.0e+6 && Math.abs(val)>1.0e-5)
{
<br> if(val>0.0) return " "+s.substring(0,10)
//Medium size numbers w/o exponents
<br> else return s.substring(0,11)}
<p> ie=s.indexOf("e") //Numbers with exponents
<p> if(ie>0) {
<br> mant=s.substring(0,ie)
<br> if(val>=0.0) mant=" "+mant
<br> if(mant.length>8) mant=mant.substring(0,8)
<br> if(Math.abs(val)>1.0) mant=mant+"e+"
<br> else if(Math.abs(val)<1.0) mant=mant+"e-"}
<p> else if(Math.abs(val)>=1.0e+6) { //Large
numbers without exponents
<br> if(val>0) mant=" "+s.substring(0,1)+"."+s.substring(1,6)+"e+"
<br> else mant=s.substring(0,2)+"."+s.substring(1,6)+"e+"}
<p> else if(Math.abs(val)<=1.0e-5) {
//Small numbers without exponents
<br> ip=s.indexOf(".")
<br> t=s.substring(ip+1,s.length)
<br> ix=1
<br> while(t.substring(0,1)=="0") {
<br> t=t.substring(1,t.length)
<br> ix++}
<br> if(val>0) mant=" "+t.substring(0,1)+"."+t.substring(1,6)+"e-"
<br> else mant=s.substring(0,2)+"."+t.substring(1,6)+"e-"}
<p> xpo=Math.abs(Math.floor(Math.log(Math.abs(val))/Math.log(10.0)))
<br> xpos=""+xpo
<br> if(xpo<10) return mant+"00"+xpos
<br> if(xpo<100) return mant+"0"+xpos
<br> return mant+xpos
<br>
<br>}
<p></SCRIPT>
<br></HEAD>
<p><BODY background="winback.gif">
<br><font size=6>Compressible Aerodynamics <i><b>Calculator </b></i></font>1.01
<br><small><br>
<br><i><a href="calch.html" target="_parent">What's this?</a></i>
<br><i>..... <a href="calcn.html" target="_parent">New in 1.01</a></i>
<br><i>..... <a href="http://www.aoe.vt.edu/aoe/courses/webteach.html#JAVA"
target="_parent">Other Java</a></i></small>
<p><hr>
<br><FORM>
<br><big><b>Isentropic Flow Relations</b></big>
<br>Perfect Gas,
<br>Gamma = <INPUT TYPE="text" NAME="g" value=1.4 SIZE=6 >, angles in
degrees.
<br><ul>
<br><b>INPUT:</b>
<br><SELECT TYPE="text" NAME="i">
<br><OPTION> Mach number
<br><OPTION> T/T0
<br><OPTION> p/p0
<br><OPTION> rho/rho0
<br><OPTION> A/A* (sub)
<br><OPTION> A/A* (sup)
<br><OPTION> Mach angle (deg.)
<br><OPTION> P-M angle (deg.)
<br></SELECT>
<br>=
<br><INPUT TYPE="text" NAME="v" value="2.0" SIZE=12 >
<br><INPUT TYPE="button" VALUE="Calculate" ONCLICK="isent(this.form)">
<br><TABLE BORDER>
<br><TR><TH>Mach number=</TH><TH><INPUT TYPE="text" NAME="m"
SIZE=12></TH>
<br><TH> </TH><TH>Mach angle=</TH><TH><INPUT TYPE="text"
NAME="mu" SIZE=12></TH>
<br><TH> </TH><TH>P-M angle=</TH><TH><INPUT TYPE="text"
NAME="nu" SIZE=12></TH></TR>
<p><TR><TH>p/p<sub>0</sub>=</TH><TH><INPUT TYPE="text"
NAME="pp0" SIZE=12></TH>
<br><TH> </TH><TH>rho/rho<sub>0</sub>=</TH><TH><INPUT
TYPE="text" NAME="rr0" SIZE=12></TH>
<br><TH> </TH><TH>T/T<sub>0</sub>=</TH><TH><INPUT
TYPE="text" NAME="tt0" SIZE=12></TH></TR>
<p><TR><TH>p/p*=</TH><TH><INPUT TYPE="text" NAME="pps" SIZE=12></TH>
<br><TH> </TH><TH>rho/rho*=</TH><TH><INPUT TYPE="text"
NAME="rrs" SIZE=12></TH>
<br><TH> </TH><TH>T/T*=</TH><TH><INPUT TYPE="text" NAME="tts"
SIZE=12></TH>
<br><TH> </TH><TH>A/A*=</TH><TH><INPUT TYPE="text" NAME="aas"
SIZE=12></TH></TR>
<br></TABLE>
<br></ul>
<br></FORM>
<p><hr>
<p><FORM>
<br><big><b>Normal Shock Relations</b></big>
<br>Perfect Gas,
<br>Gamma = <INPUT TYPE="text" NAME="g" value=1.4 SIZE=6 >
<br><ul>
<br><b>INPUT:</b>
<br><SELECT TYPE="text" NAME="i">
<br><OPTION> M1
<br><OPTION> M2
<br><OPTION> p2/p1
<br><OPTION> rho2/rho1
<br><OPTION> T2/T1
<br><OPTION> p02/p01
<br><OPTION> p1/p02
<br></SELECT>
<br>=
<br><INPUT TYPE="text" NAME="v" value="2.0" SIZE=12 >
<br><INPUT TYPE="button" VALUE="Calculate" ONCLICK="nsr(this.form)">
<p><TABLE BORDER>
<br><TR><TH>M<sub>1</sub>=</TH><TH><INPUT TYPE="text"
NAME="m1" SIZE=12></TH>
<br><TH> </TH><TH>M<sub>2</sub>=</TH><TH><INPUT
TYPE="text" NAME="m2" SIZE=12></TH>
<br><TH> </TH><TH>p<sub>02</sub>/p<sub>01</sub>=</TH><TH><INPUT
TYPE="text" NAME="p02p01" SIZE=12></TH>
<br><TH> </TH><TH>p<sub>1</sub>/p<sub>02</sub>=</TH><TH><INPUT
TYPE="text" NAME="p1p02" SIZE=12></TH></TR>
<p><TR><TH>p<sub>2</sub>/p<sub>1</sub>=</TH><TH><INPUT
TYPE="text" NAME="p2p1" SIZE=12></TH>
<br><TH> </TH><TH>rho<sub>2</sub>/rho<sub>1</sub>=</TH><TH><INPUT
TYPE="text" NAME="r2r1" SIZE=12></TH>
<br><TH> </TH><TH>T<sub>2</sub>/T<sub>1</sub>=</TH><TH><INPUT
TYPE="text" NAME="t2t1" SIZE=12></TH></TR>
<p></TABLE>
<br></ul>
<br></FORM>
<p><hr>
<p><FORM>
<br><big><b>Oblique Shock Relations</b></big>
<br>Perfect Gas,
<br>Gamma = <INPUT TYPE="text" NAME="g" value=1.4 SIZE=6 >, angles in
degrees.
<br><ul>
<br><b>INPUT:</b>
<br>M1 = <INPUT TYPE="text" NAME="m" value="5.0" SIZE=12 >
<br><SELECT TYPE="text" NAME="i">
<br><OPTION> Turn angle (weak shock)
<br><OPTION> Turn angle (strong shock)
<br><OPTION> Wave angle
<br><OPTION> M1n
<br></SELECT>
<br>=
<br><INPUT TYPE="text" NAME="a" value="20.0" SIZE=12 >
<br><INPUT TYPE="button" VALUE="Calculate" ONCLICK="osr(this.form)">
<p><TABLE BORDER>
<br><TR><TH>M<sub>2</sub>=</TH><TH><INPUT TYPE="text"
NAME="m2" SIZE=12></TH>
<br><TH> </TH><TH>Turn ang.=</TH><TH><INPUT TYPE="text"
NAME="delta" SIZE=12></TH>
<br><TH> </TH><TH>Wave ang.=</TH><TH><INPUT TYPE="text"
NAME="beta" SIZE=12></TH></TR>
<p><TR><TH>p<sub>2</sub>/p<sub>1</sub>=</TH><TH><INPUT
TYPE="text" NAME="p2p1" SIZE=12></TH>
<br><TH> </TH><TH>rho<sub>2</sub>/rho<sub>1</sub>=</TH><TH><INPUT
TYPE="text" NAME="r2r1" SIZE=12></TH>
<br><TH> </TH><TH>T<sub>2</sub>/T<sub>1</sub>=</TH><TH><INPUT
TYPE="text" NAME="t2t1" SIZE=12></TH></TR>
<p><TR><TH>p<sub>02</sub>/p<sub>01</sub>=</TH><TH><INPUT
TYPE="text" NAME="p02p01" SIZE=12></TH>
<br><TH> </TH><TH>M<sub>1n</sub>=</TH><TH><INPUT
TYPE="text" NAME="m1n" SIZE=12></TH>
<br><TH> </TH><TH>M<sub>2n</sub>=</TH><TH><INPUT
TYPE="text" NAME="m2n" SIZE=12></TH></TR>
<p></TABLE>
<br></ul>
<br></FORM>
<p><hr>
<br><small><i>Javascript by <a href="/aoe/faculty/davenfac.html"
target="_parent">William J. Devenport</a>,
<br><a href="http://www.aoe.vt.edu" target="_parent">Department of Aerospace
and Ocean Engineering</A>,
<br><a href="http://www.vt.edu" target="_parent">Virginia Tech.</a>
<br>
<br>Last update 2nd February 1998. Please send comments, questions, or
suggestions to:
<br><a href="mailto:devenport@aoe.vt.edu">devenport@aoe.vt.edu</A></i></small>
<p></BODY>
<br></html>
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -