Strömungsgeschwindigkeit
Aus Wiki1
(Unterschied zwischen Versionen)
(Die Seite wurde neu angelegt: „{{SUBST::Verbrennungsrechnung Gase}}“) |
|||
(Der Versionsvergleich bezieht 19 dazwischenliegende Versionen mit ein.) | |||
Zeile 1: | Zeile 1: | ||
- | |||
Mit Hilfe des Programmpakets JSXGraph (siehe http://jsxgraph.uni-bayreuth.de/wp/) können komplexe, interaktive Grafiken nur mit Hilfe von JavaScript in Webseiten integriert werden. | Mit Hilfe des Programmpakets JSXGraph (siehe http://jsxgraph.uni-bayreuth.de/wp/) können komplexe, interaktive Grafiken nur mit Hilfe von JavaScript in Webseiten integriert werden. | ||
- | Damit lassen sich auch ingenieurtechnische Fragen in "smarten" Apps realisieren. | + | Damit lassen sich auch ingenieurtechnische Fragen in "smarten" Apps realisieren. Hier ein Beispiel zur Ermittlung von Kennwerten der Rohrströmung mit verschiedenen Medien. |
- | + | *Messpunkt(schwarz) mit Maus einstellen: Dichte = 10^y kg/m³, Geschwindigkeit = 10^x m/Sek | |
+ | :einige typische Medien sind vordefiniert (Messpunkt in jeweiligen Kreis verschieben um Geschwindigkeit und Dichte zu wählen) | ||
+ | *Rohrdurchmesser (gelber Kreis) mit Kreispunkt einstellen | ||
+ | *Ergebnisse werden unmittelbar angezeigt | ||
- | + | Das Tool kann für unterschiedliche Zwecke genutzt werden: | |
+ | *notwendiger Querschnitt für gegebenes Medium und gegebenen Massen-/Volumenstrom | ||
+ | *möglicher Massen-/Volumenstrom bei gegebenem Querschnitt und Medium | ||
+ | *Strömungsgeschwindigkeit bei gegebenem Medium, Massen-/Volumenstrom und Durchmesser | ||
- | + | <jsxgraph box="Diagramm_in_the_box" width="600" height="600"> | |
- | + | //Modul skalierbares Achsenkreuz mit Ablesepunkt | |
- | + | //Programmierung: Peter Lehmacher | |
- | + | //Stand: 6.1.2014 | |
- | + | //*****************************************Eingaben************************************* | |
- | + | //Diagrammtitel | |
- | + | var title="Strömungsgeschwindigkeit in Rohrleitungen"; | |
- | + | var x_title="Geschwindigkeit = 10^x"; | |
- | + | var y_title="Dichte = 10^y"; | |
- | + | ||
- | + | ||
- | + | ||
+ | //Definition Koordinaten: gibt angezeigten Wertebereich des Koordinatenkreuzes an | ||
+ | var x_min=-1; | ||
+ | var x_max=4; | ||
+ | var y_min=-1.5; | ||
+ | var y_max=4; | ||
+ | var dx=(x_max-x_min)/100; | ||
+ | var dy=(y_max-y_min)/100; | ||
- | var | + | var brd_2 = JXG.JSXGraph.initBoard('Diagramm_in_the_box', {axis:true, boundingbox: [x_min,y_max,x_max,y_min], grid:{gridX:10, gridY:10}}); |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | //x-Skalierung | |
- | + | var x100_min=0.01; | |
+ | var x100_max=2; | ||
+ | var x100_0=1; | ||
+ | var x100_txt="x Wert bei 0"; | ||
+ | var x100_x=x_min+3*dx; | ||
+ | var x100_y=y_min+3*dy; | ||
+ | var x100_l=30*dx; | ||
+ | var dx100=0.001; | ||
+ | |||
+ | var x100=1; | ||
+ | |||
+ | //y-Skalierung | ||
+ | var y100_min=0.01; | ||
+ | var y100_max=2; | ||
+ | var y100_0=1; | ||
+ | var y100_txt="y Wert bei 0"; | ||
+ | var y100_x=x_min+3*dx; | ||
+ | var y100_y=y_min+3*dy; | ||
+ | var y100_l=30*dy; | ||
+ | var dy100=0.001; | ||
+ | |||
+ | var y100=1; | ||
+ | |||
+ | |||
+ | //Eingabe Rohrdurchmesser durch veränderbaren Kreis | ||
+ | px_c=0; | ||
+ | py_c=0*dy; | ||
+ | r_c=1; | ||
+ | c_text="Durchmesser mm"; | ||
+ | |||
+ | var p00 = brd_2.create('point', [px_c, py_c],{visible:false}); | ||
+ | var p01 = brd_2.create('point', [px_c, py_c+r_c],{name:c_text}); | ||
+ | var c0 = brd_2.create('circle', [p00, p01],{fillColor:'#ffff00'}); | ||
+ | |||
+ | //Querschnittsfläche | ||
+ | var A_rohr=function() | ||
+ | { | ||
+ | return Math.pow(c0.getRadius()/2,2)*Math.PI/4; | ||
} | } | ||
- | function | + | //Gewicht |
- | return | + | var G_rohr=function() |
+ | { | ||
+ | return Math.pow(c0.getRadius()/2,2)*Math.PI/4*y_val(p1_0.Y()); | ||
} | } | ||
- | + | //*****************************************Berechnung************************************* | |
- | // | + | //Skalierfunktionen zur Umrechnung von Werten und Koordinaten |
- | var | + | var POT=function(x,y){ |
- | + | return Math.pow(x,y); | |
- | + | } | |
- | + | ||
- | + | ||
- | var | + | var LG=function(x){ |
- | + | if (x<=0) | |
+ | { | ||
+ | alert("Calculation LG(x) with x<=0 not allowed!"); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | return Math.LOG10E*Math.log(x); | ||
+ | } | ||
+ | } | ||
- | + | var x_sk=function(x_v){ | |
+ | return Math.round(100*LG(x_v/x100))/100; | ||
+ | } | ||
+ | var y_sk=function(y_v){ | ||
+ | return Math.round(100*LG(y_v/y100))/100; | ||
+ | } | ||
+ | var x_val=function(x_skal){ | ||
+ | return POT(10,x_skal)*x100; | ||
+ | } | ||
+ | var y_val=function(y_skal){ | ||
+ | return POT(10,y_skal)*y100; | ||
+ | } | ||
- | + | //Bereiche | |
- | + | var px=new Array(); | |
- | + | var py=new Array(); | |
- | + | var r=new Array(); | |
- | + | var px1=new Array(); | |
- | + | var py1=new Array(); | |
- | + | var c_text=new Array(); | |
- | + | var color=new Array(); | |
- | + | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
+ | px[0]=0; | ||
+ | py[0]=3; | ||
+ | r[0]=0.2; | ||
+ | c_text[0]="Wasser"; | ||
+ | color[0]="#5F9EA0"; | ||
- | + | px[1]=1.0; | |
+ | py[1]=0; | ||
+ | r[1]=0.2; | ||
+ | c_text[1]="Luft"; | ||
+ | color[1]="#5F9EA0"; | ||
- | = | + | px[4]=1.35; |
+ | py[4]=-0.1; | ||
+ | r[4]=0.2; | ||
+ | c_text[4]="Erdgas"; | ||
+ | color[4]="#5F9EA0"; | ||
- | + | px[2]=0.6; | |
+ | py[2]=2.9; | ||
+ | r[2]=0.2; | ||
+ | c_text[2]="Öl"; | ||
+ | color[2]="#5F9EA0"; | ||
+ | px[3]=2; | ||
+ | py[3]=-1.04; | ||
+ | r[3]=0.2; | ||
+ | c_text[3]="H2"; | ||
+ | color[3]="#5F9EA0"; | ||
+ | |||
+ | px[5]=1.78; | ||
+ | py[5]=1.053; | ||
+ | r[5]=0.2; | ||
+ | c_text[5]="Dampf 31 bar 350°C"; | ||
+ | color[5]="#5F9EA0"; | ||
+ | |||
+ | px[6]=1.602; | ||
+ | py[6]=0.63; | ||
+ | r[6]=0.2; | ||
+ | c_text[6]="Dampf 10 bar 250°C"; | ||
+ | color[6]="#5F9EA0"; | ||
+ | |||
+ | px[7]=1.778; | ||
+ | py[7]=1.526; | ||
+ | r[7]=0.2; | ||
+ | c_text[7]="Dampf 100 bar 450°C"; | ||
+ | color[7]="#5F9EA0"; | ||
+ | |||
+ | px[8]=0.5; | ||
+ | py[8]=3.3; | ||
+ | r[8]=0.2; | ||
+ | c_text[8]="Flüssigsalz"; | ||
+ | color[8]="#5F9EA0"; | ||
+ | |||
+ | px[9]=1.29; | ||
+ | py[9]=1.02; | ||
+ | r[9]=0.2; | ||
+ | c_text[9]="Erdgas 10 bar"; | ||
+ | color[9]="#5F9EA0"; | ||
+ | |||
+ | for (var i=0;i<px.length;i++) | ||
+ | { | ||
+ | px1[i]=px[i]; | ||
+ | py1[i]=py[i]+r[i]; | ||
+ | brd_2.create('point', [px[i], py[i]+r[i]],{visible:false}); | ||
+ | brd_2.create('point', [px[i], py[i]], {name:c_text[i]}); | ||
+ | brd_2.create('circle', [[px[i],py[i]], [px1[i],py1[i]]],{fillColor:color[i]}); | ||
+ | } | ||
+ | |||
+ | //Messpunkt | ||
+ | var p1_0=brd_2.create('point',[0,3],{name:"Messpunkt", fillcolor:"black"}); | ||
+ | var p1_x=brd_2.create('point',[function(){return p1_0.X();},0],{visible:false}); | ||
+ | var p1_y=brd_2.create('point',[0,function(){return p1_0.Y();}],{visible:false}); | ||
+ | |||
+ | var l1_x=brd_2.create('line',[p1_0,p1_x],{straightFirst:false, straightLast:false, dash:2}); | ||
+ | var l1_y=brd_2.create('line',[p1_0,p1_y],{straightFirst:false, straightLast:false, dash:2}); | ||
+ | |||
+ | //*****************************************Ausgabe************************************* | ||
+ | var title_txt=brd_2.create('text',[x_max-30*dx,y_max-3*dy,title]); | ||
+ | var title_x=brd_2.create('text',[x_max-50*dx, -5*dy, x_title]); | ||
+ | var title_y=brd_2.create('text',[5*dx, y_max-6*dy, y_title]); | ||
+ | |||
+ | var x1_txt=brd_2.create('text',[x_min+50*dx,y_max-16*dy,function(){return 'Geschwindigkeit = '+Math.round(10000*x_val(p1_0.X()))/10000+' m/Sek';}]); | ||
+ | var x2_txt=brd_2.create('text',[x_min+50*dx,y_max-19*dy,function(){return 'Rohrdurchmesser = '+Math.round(1000*c0.getRadius()/2)+' mm';}]); | ||
+ | var x3_txt=brd_2.create('text',[x_min+50*dx,y_max-22*dy,function(){return 'Volumenstrom = '+Math.round(100*x_val(p1_0.X())*A_rohr()*3600)/100+' m³/h';}]); | ||
+ | var x4_txt=brd_2.create('text',[x_min+50*dx,y_max-25*dy,function(){return 'Massenstrom = '+Math.round(100*y_val(p1_0.Y())*x_val(p1_0.X())*A_rohr()*3600)/100+' kg/h';}]); | ||
+ | var y_txt=brd_2.create('text',[x_min+50*dx,y_max-13*dy,function(){return 'Dichte = '+Math.round(100*y_val(p1_0.Y()))/100+' kg/m³';}]); | ||
+ | var x5_txt=brd_2.create('text',[x_min+50*dx,y_max-30*dy,function(){return 'Gewicht = '+Math.round(100*G_rohr())/100+' kg/m';}]); | ||
+ | |||
+ | |||
+ | |||
+ | </jsxgraph> | ||
[[Kategorie:Technik]] | [[Kategorie:Technik]] |
Aktuelle Version vom 13:55, 4. Jan. 2017
Mit Hilfe des Programmpakets JSXGraph (siehe http://jsxgraph.uni-bayreuth.de/wp/) können komplexe, interaktive Grafiken nur mit Hilfe von JavaScript in Webseiten integriert werden.
Damit lassen sich auch ingenieurtechnische Fragen in "smarten" Apps realisieren. Hier ein Beispiel zur Ermittlung von Kennwerten der Rohrströmung mit verschiedenen Medien.
- Messpunkt(schwarz) mit Maus einstellen: Dichte = 10^y kg/m³, Geschwindigkeit = 10^x m/Sek
- einige typische Medien sind vordefiniert (Messpunkt in jeweiligen Kreis verschieben um Geschwindigkeit und Dichte zu wählen)
- Rohrdurchmesser (gelber Kreis) mit Kreispunkt einstellen
- Ergebnisse werden unmittelbar angezeigt
Das Tool kann für unterschiedliche Zwecke genutzt werden:
- notwendiger Querschnitt für gegebenes Medium und gegebenen Massen-/Volumenstrom
- möglicher Massen-/Volumenstrom bei gegebenem Querschnitt und Medium
- Strömungsgeschwindigkeit bei gegebenem Medium, Massen-/Volumenstrom und Durchmesser