Fluidoak |
Gainazal-tentsioa Tantak: Tate-ren legea Gainazalen kurbadurak eragindako presioa Gainazal-tentsioa xaboi ponpa batean (I) Gainazal-tentsioa xaboi-ponpa batean (II) Burbuilaren metodoa Fenomeno kapilarrak
|
Soka baten elementu baten oreka-baldintza | |||||||||
Aurreko kapitulu batean aztertu dugu nolako forma hartzen duen bi muturretatik eskegitako kate batek (katenaria), ba kapitulu honetan aztertuko dugu nolako forma hartuko duen soka batek, baldin eta sokak inguratzen duen azalera osoa likido xaboitsu batez betetzen bada. Ikusiko dugunez, sokaren forma koefiziente batek baldintzatuko du: gainazal-tentsioaren (2σ) eta sokaren luzera unitateko pisuaren (λg) arteko zatidura. Gainazal-tentsioa nagusi denean, sokak forma ganbila dauka, γ letra grekoaren antzekoa (azpiko irudiaren eskumakoa). Aldiz, pisua nagusi denean, sokak katenaria distortsionatu baten forma dauka (ezkerrekoa). Justu biak berdinak direnean, sokak V lineal baten forma dauka (erdikoa). Adibide honetan praktikatzen dira kalkulu integrala, prozedura numerikoak eta funtzioen adierazpen grafikoa. Programatzaile batentzat oso interesgarria da herentzia eta polimorfismoa aplikatzen direlako. Oinarrizko klase abstraktuan ekuazio transzendente baten erroa kalkulatzen duen prozedura bat definitzen da, eta eratorritako klaseetan tratatzen dira egoera fisiko konplexu honetan agertzen diren kasuetako bakoitza. Sokaren elementu baten oreka-baldintzaSoka elastiko uniforme batek 2L luzera dauka eta bi muturretatik lotuta dago altuera bereko bi puntutan. Bi puntuen arteko distantzia 2x0 da, irudiak erakusten duen bezala. Sokaren forma simetrikoa da Y ardatzarekiko, beraz, erdia soilik aztertu behar dugu, x≥0 aldea. Sokaren elementu batek (ds) lau indar jasaten ditu:
Honako kasu-motak gerta daitezke (ikusi irudia):
Oreka baldintzak:
Azter dezagun (2) adierazpena: θ angelua 0≤θ≤π/2 bitartekoa da beraz, 0<cosθ<1. Bestalde, sokaren T tentsioak beti izan behar du positiboa:
Hala ere, θ angelua aldakorra da sokan zehar, eta deskribapen hori ez da nahikoa. Sistema fisiko honen parametro inportanteenak honakoak dira: α=2σ/λg, eta x0/L . Sokaren muturren arteko separazioa (2x0) zati sokaren luzera (2L).
Sokaren forma deskribatzen duen ekuazioaOreka-baldintzan betetzen diren bi ekuazioak, (1) eta (2) elkarrekin zatituz:
Eta integratuz:
C konstantea mugalde baldintzetatik kalkulatu behar da. T bakanduz eta (2) ekuazioan ordezkatuz:
Ekuazio diferentzial bi lortzen dira kurbaren osagai cartesiarrentzat θ parametroaren menpe:
Ondoren, bi ekuazioak integratuko ditugu: Bigarrena berehala integratzen da:
cy integrazio-konstante bat da, ondoren kalkulatuko dugu, mugalde baldintzatik. Ekuazio horretan aldagaia aldatzen badugu:
Eta aldagai-aldaketa desegin:
Lehen integrala ebaztea, berriz, zailagoa da:
cx integrazio-konstante bat da, ondoren kalkulatuko dugu, mugalde baldintzatik. Aldagai aldaketa, hasteko:
Eta integrala honela berridazten da:
Adierazpen horrek hiru kasu ezberdin ditu: α>1, α<1 eta α=1. Kasu horietako bakoitzak integrakizun ezberdina ematen du, ondoren ikusiko dugun bezala: α>1 kasua:Dei diezaiogun
Lehen integrala berehalakoa da eta bigarrena zatika integra daiteke:
Emaitza hau da:
Orain, aldaketak desegin, β parametroa α-ren menpe adierazi eta t adieraz daiteke θ angeluaren menpe.
Azken emaitza hau da:
α<1 kasua:Dei diezaiogun oraingoan
Lehen integralaren emaitza hau da:
Bigarrena, zatika integra daiteke:
Hona hemen emaitza:
Orain, aldaketak desegin, β parametroa α-ren menpe adierazi eta t adieraz daiteke θ angeluaren menpe.
Azken emaitza hau da:
α=1 kasua:
Aldaketak desegin: t=tan(θ/2)
Konfigurazio linealaKasu berezi hau emateko cosθ=α=x0/L izan behar da.
Konfigurazio ahurraSokak konfigurazio ahurra izateko, α<x0/L, izan behar da, eta jakina, α<1.
Kurba horren ekuazio parametrikoak (3) eta (5) dira:
Baldintza horiexek hartuko ditugu muga-baldintzatzat cx eta cy integrazio-konstanteak kalkulatzeko:
Sokaren forma deskribatzen duen kurba irudikatzeko, C konstantea eta θ0 angelua ezagunak izan behar dira. C konstantea eta θ0 angelua nola kalkulatu
Hasteko, aldagaia aldatu:
Eta integrala horrela berridazten da:
Aldaketa desegin:
Ordezkatu sokaren muturraren posizioa (x0) eta sokaren tangenteak puntu horretan osatzen duen angelua (θ0) (ikusi irudia).
Azken bi ekuazioen artean, C elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du kasu berezi batean (α=0.3<x0/L=0.5) ekuazio transzendenteak zero bat daukala θ=69º inguruko angeluan eta ez-jarraitutasun bat, izan ere, ondoko baldintza hau betetzen duen angeluan:
Baldin α=0.3, hauxe ateratzen da: θ=72.5º.
Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, esaterako, erdiko puntuaren prozeduraz, eta (0, 72.5º) tartean. Hala egiten bada, honako angelua ematen du: θ0=68.7º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1. θ0 kalkulatu ondoren, C kalkula daiteke eta, horrela, sokaren forma deskribatzen duen kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: 0≤θ≤θ0. Konfigurazio ganbilaOndoko irudiak erakusten du konfigurazio ganbila. Hiru konfigurazio ganbil posible daude:
Konfigurazio ganbilean, sokaren azpiko zatia, d luzeraduna, beste aldeko sokarekin itsatsita dago. Bi aldeetako zatiak berdinak dira eta P erpinetik sokaren muturrera L-d luzera dago. Zati horrek osatzen du kurba ganbila. Sokaren tangenteak horizontalarekiko osatzen dituen θ angeluak π/2 eta θ0 bitartean daude. P puntutik behera, d luzeradun soka-zati bat dago eskegita, alde bakoitzetik, eta horregatik puntu horretan sokaren tentsioa hau da: T=λgd Sokaren tentsioarentzat adierazpen bat lortuko dugu, θ parametroaren menpe, integrazio bidez: T(cosθ-α)=Cλg Eta P puntuan θ=π/2 denez, honakoa lortzen da: -Tα=Cλg Eta konstantearen balioa: C= -αd Lehen kasua, α>x0/L eta α<1Kasu hau eta ahurra antzekoak dira. Sokaren ekuazio parametrikoak (3) eta (5) dira:
Bi datu horiekin integrazio-konstante biak kalkula daitezke: cx eta cy.
Sokaren forma deskribatzen duen kurbaren ekuazioa adierazteko, lehenik, d luzera eta θ0 angelua ezagutu behar ditugu. d luzera eta θ0 angelua nola kalkulatu Elementuen luzerak batuz, sokaren luzera lortzen da (L-d):
Integral hori lehenago lortu dugu, konfigurazio ahurrean.
Sokaren muturraren posizioan (x0) sokaren tangenteak horizontalarekin osatzen duen angelua θ0 da:
Azken bi ekuazioen artean, d elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du kasu berezi batean (α=0.7>x0/L=0.5 eta α<1) ekuazio transzendenteak zero bat daukala θ=50º inguruko angeluan eta ez-jarraitutasun bat, izan ere, ondoko baldintza hau betetzen duen angeluan:
Baldin α=0.7, hauxe ateratzen da: θ=45.6º
Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, esaterako, erdiko puntuaren prozeduraz, eta (45.6, 90º) tartean. Hala egiten bada, honako angelua ematen du: θ0=50.5º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1. θ0 kalkulatu ondoren, d kalkula daiteke eta, horrela, sokaren forma deskribatzen duen kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: θ0≤θ≤π/2. Bigarren kasua, α>1Sokaren ekuazio parametrikoak (3) eta (4) dira:
Eta C=-αd, lehengo kasuan bezalaxe.
Bi datu horiekin, integrazio-konstante biak kalkula daitezke: cx eta cy.
Kurba hori adierazteko (sokaren forma deskribatzen duena) ezagunak izan behar dira d luzera eta θ0 angelua.
Nola kalkulatu d luzera eta θ0 angelua. Elementuen luzerak batuz, sokaren luzera kalkula daiteke (L-d):
Aldagaia aldatuz:
Integrala honela berridatz daiteke:
Lehen integrala berehalakoa da, eta bigarrena zatika egin daiteke:
Hona emaitza:
Orain, aldaketak desegin, β parametroa α-ren menpe adierazi eta t adieraz daiteke θ angeluaren menpe.
Azken emaitza hau da:
Ordezkatzen baditugu sokaren muturraren posizioa (x0) eta sokaren tangentearen angelua posizio horretan (θ0):
Azken bi ekuazioen artean, d elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du α=1.2 bada, orduan, ekuazio transzendenteak zero bat daukala θ=31º inguruko angeluan.
Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, esaterako, erdiko puntuaren prozeduraz, eta honako angelua ematen du: θ0=30.7º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1. θ0 kalkulatu ondoren, d kalkula daiteke eta, horrela, kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: θ0≤θ≤π/2. Hirugarren kasua, α=1Sokaren ekuazio parametrikoak (3) eta (6) dira:
eta C=-αd=-d , lehengo kasuan bezalaxe.
Bi datu horiekin, integrazio-konstante biak kalkula daitezke: cx eta cy.
Kurba hori adierazteko (sokaren forma deskribatzen duena) ezagunak izan behar dira d luzera eta θ0 angelua. Nola kalkulatu d luzera eta θ0 angelua. Elementuen luzerak batuz, sokaren luzera ematen du (L-d):
Aldagaia aldatzen da:
Aldaketa desegin:
Sokaren muturraren posizioan (x0) sokaren tangenteak horizontalarekin osatzen duen angelua θ0 da:
Azken bi ekuazioen artean, d elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du α=1.0 bada, orduan ekuazio transzendenteak zero bat daukala θ=38º inguruko angeluan.
Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, eta honako angelua ematen du: θ0=38.3º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1. θ0 kalkulatu ondoren, d kalkula daiteke eta, horrela, kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: θ0≤θ≤π/2. SaiakuntzaAukeran idatz daitezke:
Grafikoa botoian klikatu. Programak soka irudikatzen du, eta idatziz ematen ditu erpinaren datu geometrikoak, marra horizontal beltz batez markatuta (x=0 posizioan); konfigurazio ahurretan, erpinaren altuera ematen du, ymin, eta, konfigurazio ganbiletan bi datu ematen ditu: ymin, erpinaren posizioa, eta (ymin+d), itsatsita geratzen den soka-zatiaren luzera, d. Esate baterako, finka ezazu α, eta alda ezazu sokaren muturren arteko distantzia (2x0). Zenbat eta zabalago, soka ahurrago ateratzen da, eta alderantziz. Ondoren, finka ezazu sokaren muturren arteko distantzia (2x0) eta alda ezazu α=2σ/λg. Zenbat eta α handiagoa, soka ganbilago ateratzen da eta alderantziz, sokak λ masa-dentsitate gutxiago izango balu bezala, edota likido xaboitsuak σ gainazal-tentsio handiagoa. Halaber, sokaren gainean puntu bat aukera daiteke, Posizioa izeneko desplazamendu-barrari saguaz eragiten (posizioak puntuaren altuera adierazten du). Eta programak irudikatzen ditu hiru bektore:
Konpara bitez gainazal-tentsioaren indarra (urdina) eta pisuaren osagai normala (gorria) α parametroaren menpe. |
Behroozi F., Mohazzabi P., McCrickard J. P., Remarkable shapes of a catenary under the effect of gravity and surface tension. Am. J. Phys. 62 (12) December 1994, pp. 1121-1128
public abstract class Raiz { private final double CERO=1e-10; private final double ERROR=0.001; private final int MAXITER=200; public Raiz(double alfa, double x0, double lon) { this.alfa=alfa; this.x0=x0; this.lon=lon; } protected double puntoMedio(double a, double b) { double m, ym; int iter=0; do{ m=(a+b)/2; ym=f(m); if(Math.abs(ym)<CERO) break; if(Math.abs((a-b)/m)<ERROR) break; if((f(a)*ym)<0) b=m; else a=m; iter++; }while(iter<MAXITER); return m; } protected abstract double f(double x); } public abstract class Sistema extends Raiz { //parámetros comunes a todas las clases derivadas protected double alfa; protected double x0; protected double lon=2.0; protected double fi0; public double yMin; public double lonY; protected double con; public Sistema(double alfa, double x0, double lon) { this.alfa=alfa; this.x0=x0; this.lon=lon; } public abstract void inicio(); public abstract double fX(double x); //funciones comunes a las clases //calcula la ordenada de la curva protected double fY(double x){ double y=1.0/(Math.cos(x)-alfa)-1.0/(Math.cos(fi0)-alfa); return (con*y); } //transforma la ordenada en ángulo fi public double fAngulo(double y){ double z=alfa+1.0/(y/con+1.0/(Math.cos(fi0)-alfa)); return Math.acos(z); } } public class Concava extends Sistema{ private double A, B; public Concava(double alfa, double x0, double lon) { super(alfa, x0, lon); lonY=0.0; } //raíces de la ecuación trascendente calcula fi0 protected double f(double x){ coeficientes(x); double y=A*(lon*alfa-x0)+B*(lon-x0*alfa); return y; } public void inicio(){ double fiMax=2*Math.atan(Math.sqrt((1-alfa)/(1+alfa))); fi0=puntoMedio(0.0, fiMax); //System.out.println((fi0*180/Math.PI)+" "+(fiMax*180/Math.PI)); con=fConstante(fi0); yMin=fY(0.0); } //calcula la constante C private double fConstante(double x){ coeficientes(x); double y=x0/(A*alfa+B); return y; } //calcula la abscisa de la curva public double fX(double x){ coeficientes(x); double y=con*(A*alfa+B); return y; } //función auxiliar común a varios miembros private void coeficientes(double x){ A=Math.sin(x)/((Math.cos(x)-alfa)*(1-alfa*alfa)); B=Math.log(Math.abs(((1+alfa)*Math.tan(x/2)+Math.sqrt(1-alfa*alfa))/ ((1+alfa)*Math.tan(x/2)-Math.sqrt(1-alfa*alfa)))) /(Math.sqrt(1-alfa*alfa)*(1-alfa*alfa)); } } public class Convexa_1 extends Sistema { private double A, B, C, D; public Convexa_1(double alfa, double x0, double lon) { super(alfa, x0, lon); } //raíces de la ecuación trascendente calcula fi0 protected double f(double x){ coeficientes(x); double y=A*(-x0+lon*alfa)+(lon-x0*alfa)*(B+C-D); return y; } public void inicio(){ double fiMax=2*Math.atan(Math.sqrt((1-alfa)/(1+alfa))); fi0=puntoMedio(Math.PI/2, fiMax); lonY=fMin_Y(fi0); yMin=fY(Math.PI/2); //System.out.println((fi0*180/Math.PI)+" "+yMin); } //calcula la longitud de la parte inferior de la cuerda que está pegada private double fMin_Y(double x){ coeficientes(x); double y=-x0/(alfa*(alfa*A+B+C-D)); return y; } //calcula la abscisa de la curva public double fX(double x){ coeficientes(x); double y=-alfa*lonY*(alfa*A+B+C-D); return y; } //función auxiliar común a varios miembros private void coeficientes(double x){ A=Math.sin(x)/((Math.cos(x)-alfa)*(1-alfa*alfa)); B=Math.log(Math.abs(((1+alfa)*Math.tan(x/2)+Math.sqrt(1-alfa*alfa)) /((1+alfa)*Math.tan(x/2)-Math.sqrt(1-alfa*alfa))))/(Math.sqrt(1-alfa*alfa)*(1-alfa*alfa)); C=1.0/(1-alfa*alfa); D=Math.log(Math.abs(((1+alfa)+Math.sqrt(1-alfa*alfa))/((1+alfa)-Math.sqrt(1-alfa*alfa)))) /(Math.sqrt(1-alfa*alfa)*(1-alfa*alfa)); } } public class Convexa_2 extends Sistema { private double A, B, C, D; public Convexa_2(double alfa, double x0, double lon) { super(alfa, x0, lon); } //raíces de la ecuación trascendente calcula fi0 protected double f(double x){ coeficientes(x); double y=A*(-x0+lon*alfa)+(x0*alfa-lon)*(-B+C+D); return y; } public void inicio(){ fi0=puntoMedio(Math.PI/2, 0.0); lonY=fMin_Y(fi0); yMin=fY(Math.PI/2); //System.out.println((fi0*180/Math.PI)+" "+yMin); } //calcula la longitud de la parte inferior de la cuerda que está pegada private double fMin_Y(double x){ coeficientes(x); double y=x0/(-A*alfa-B+C+D); return y; } //calcula la abscisa de la curva public double fX(double x){ coeficientes(x); double y=lonY*(-alfa*A-B+C+D); return y; } //función auxiliar común a varios miembros private void coeficientes(double x){ A=alfa*Math.sin(x)/((alfa-Math.cos(x))*(alfa*alfa-1)); B=2*alfa*Math.atan((alfa+1)*Math.tan(x/2)/Math.sqrt(alfa*alfa-1)) /(Math.sqrt(alfa*alfa-1)*(alfa*alfa-1)); C=alfa/(alfa*alfa-1); D=2*alfa*Math.atan((alfa+1)/Math.sqrt(alfa*alfa-1))/(Math.sqrt(alfa*alfa-1)*(alfa*alfa-1)); } } public class Convexa_3 extends Sistema { public Convexa_3(double x0, double lon) { super(1.0, x0, lon); } //raíces de la ecuación trascendente calcula fi0 protected double f(double x){ double A=Math.tan(x/2); double y=(lon-x0)/(6*A*A*A)-(lon+x0)/(2*A)+(lon-x0)/3; return y; } public void inicio(){ fi0=puntoMedio(Math.PI/2, 0.0); lonY=fMin_Y(fi0); yMin=fY(Math.PI/2); //System.out.println((fi0*180/Math.PI)+" "+yMin); } //calcula la longitud de la parte inferior de la cuerda que está pegada private double fMin_Y(double x){ double A=Math.tan(x/2); double y=1.0/3+1.0/(6*A*A*A)-1.0/(2*A); return (x0/y); } //calcula la abscisa de la curva public double fX(double x){ double A=Math.tan(x/2); double y=1.0/3+1.0/(6*A*A*A)-1.0/(2*A); return (lonY*y); } } public class Principal { Sistema obj; final double lon=2.0; //mitad de la longitud de la cuerda //función que crea los objetos de las distintas clases dependiendo del valor de //parámetro alfa y del cociente x0/L. void nuevo(double alfa, double cociente){ if(alfa==1.0){ obj=new Convexa_3(cociente*lon, lon); }else if(alfa<1.0 && alfa<cociente){ obj=new Concava(alfa, cociente*lon, lon); }else if(alfa<1.0){ obj=new Convexa_1(alfa, cociente*lon, lon); }else{ obj=new Convexa_2(alfa, cociente*lon, lon); } obj.inicio(); } //representación gráfica } |