Modelo Debye Estudio de Relajacion Dielectrica
Modelo Debye Estudio de Relajacion Dielectrica
Modelo Debye Estudio de Relajacion Dielectrica
FACULTAD DE CIENCIAS
DEPARTAMENTO DE FSICA APLICADA
REA DE ELECTROMAGNETISMO
Agradecimientos.
ndice
Pgina
1.- Introduccin.
9
9
11
12
13
14
15
20
22
25
25
25
28
30
32
35
35
39
42
44
45
47
51
54
54
6.- Conclusiones
59
Bibliografa
61
63
1.- Introduccin.
A lo largo de la historia de la humanidad se ha generalizado el uso de nuevos
lquidos como pinturas, carburantes, refrigerantes, lubricantes..., tanto ms variados y
complejos cuanto ms desarrollada se encuentra nuestra sociedad. En la actualidad, no
cesa la necesidad de nuevos materiales dielctricos en reas muy diversas. Las mezclas
de lquidos nos proporcionan un amplio abanico de posibilidades para la
implementacin previa de sistemas que presenten una respuesta electromagntica
especfica.
Una de las magnitudes utilizadas para la caracterizacin de mezclas dielctricas,
es la permitividad dielctrica en funcin de la frecuencia. En medios no magnticos, nos
informa totalmente de su respuesta electromagntica. La espectroscopia dielctrica
permite conocer parmetros fundamentales desde el punto de vista de la investigacin
cientfica bsica y desde un punto de vista tecnolgico, conocer la respuesta del material
a cualquier seal electromagntica.
El objetivo de este trabajo es la caracterizacin de mezclas binarias polar-no
polar. Mediante reflectometra en el dominio del tiempo (Time Domain Reflectometry,
TDR) se calcula la permitividad compleja de la mezcla en un rango de frecuencias
DC-5 GHz y se determina el tiempo de relajacin. Las componentes polares son
pentanol, hexanol y heptanol y la no polar es el ciclohexano. Los rangos de
concentracin de alcohol en las muestras a medir son 0.05, 0.10 y 0.15 (fracciones
molares).
En el laboratorio ya se han realizado medidas a concentraciones superiores, de
manera que este Trabajo Acadmicamente Dirigido (T.A.D.) completa su estudio. Para
analizar los resultados se utilizarn leyes dielctricas de mezcla existentes en la
literatura que se basan en las relaciones de concentracin entre sus componentes.
v dpr
;
P=
dv
(2-1)
r 3
+ E loc + K
(2-2)
10
(2-3)
(2-4)
(2-5)
= e + 1;
0
(2-6)
11
(2-9)
(2-10)
(2-11)
(2-12)
r
r
r
D() = 0 1 + e () E() = ()E()
(2-13)
() = () j()
12
(2-14)
2
' () = 0 +
2
() =
z (z )
dz
z 2 2
' (z ) 0
z 2 2
dz
(2-15a)
(2-15b)
r
P (t ) = 0
r
(t ')E(t t ')dt '
(2-16)
r
r
r
r
D(t ) = 0 E(t ) + P(t ) = 0 E(t ) + 0
13
r
(t ')E(t t ')dt '
(2-17)
14
(2-18)
0 t < 0
donde (t ) =
es la funcin escaln normalizada.
1 t 0
Entonces, suponiendo que la polarizacin del medio tiene una respuesta descrita
por una ecuacin diferencial de primer orden:
r r r
P Ps P
=
t
(2-19)
15
r
r
r r
P(t ) = P + Ps P
)1 e t / (t )
(2-20)
Ps
P
Figura 2.2. Evolucin temporal del mdulo del vector polarizacin bajo la accin de un
campo electrosttico.
es el tiempo de relajacin cuya dependencia con la temperatura, viene dada por la ley
de Arrhenius:
= 0 eW/kT
(2-21)
16
(2-22)
v
Teniendo en cuenta esa expresin para P , el desplazamiento elctrico se puede
escribir como:
r
r
r
D(t ) = (t ) E 0 + ( s )1 e t / E 0
(2-23)
(2-24)
( ) = + ( s ) (t )e j t dt
(2-25)
e t /
, y se obtiene la siguiente
() = +
s
1 + j
(2-26)
' () = +
" () =
s
1 + 2 2
( s )
1 + 2 2
(2-27a)
(2-27b)
17
18
s
, con centro
2
1
;
0 =
(2-28)
(2-29)
( )(1 + 2 2 ) = s
( ) +
2
=
( ) s
2 = ( )( s )
+ s
= s
2
2
(2-30)
podremos
comprobar
geomtricamente
cuanto
se
aproxima
su
19
(2-31)
1
y representando frente a , se obtiene la ecuacin de una recta de pendiente y
(1 + )
2 2
2 2
= s ()
(2-32)
() = +
1 + ( j )1
(2-33)
21
() = +
(1 + j )
(2-34)
22
Figura 2.7. Disposiciones perpendicular y paralela del modelo de mezcla entre las placas
de un condensador de placas planoparalelas.
d d
d
= 1 + 2
S s S s1 S s 2
1
= 1 + 2
s s1 s 2
(2-35)
S s 1S s1 2S s 2
=
+
d
d
d
23
s = 1 s1 + 2 s 2
(2-36)
(2-37)
24
(2-38)
25
+ v(z + z, t )
v(z, t ) = Rz i(z, t ) + Lz
v(z + z, t )
i(z, t ) = Gz v(z + z, t ) + Cz
+ i(z + z, t )
(3-1)
= G v(z, t ) C
z
t
(3-2)
(3-3)
= (G + jC ) V(z )
z
(3-4)
26
2 V(z )
2 V(z ) = 0
2
z
2
I(z ) 2 I(z ) = 0
z2
(3-5)
= + j =
(R + jL )(G + jC)
(3-6)
(3-7)
(3-8)
LC
V(z ) = V0+ e
I(z ) =
I 0+
- z
- z
+ V0 e
I 0
+ z
+ z
(3-9)
I(z ) =
V + e - z V e + z ;
0
R + jL
(3-10)
27
ZC =
V(z )
=
I( z ) V = 0
0
R + j L
G + jC
(3-11)
L
C
(3-12)
I(z ) =
1 + - z
+ z
V0 e
V0 e
ZC
(3-13)
I 0+
-L
-L
28
+ V0 e
I 0
+ L
+ L
(3-14)
Adems se cumple:
V(L ) = Z L I(L ); V0+ = Z C I 0+ ; V0 = Z C I 0 ;
(3-15)
se despeja V0+ y V0 :
V0+
V0 =
e + L
e
2
L
2
(V(L ) + I(L ) Z C )
(3-16)
(V(L ) I(L ) Z C )
(3-17)
V (z )
V + (z )
(3-18)
L =
V (L ) Z L Z C
=
V + (L ) Z L + Z C
29
(3-19)
(3-20)
r
H = 0
(3-21)
r
r
H
E =
t
(3-22)
r
r
E
H =
t
(3-23)
) (
r v r
r v r v r
X = X 2X
(3-24)
r
donde X es una funcin vectorial. Aplicando esta propiedad al campo elctrico y
r v r
v r
E = 2 E
30
(3-25)
r
v2r
2E
E 2 = 0
t
(3-26)
(3-27)
(3-28)
2 + 2 = 0
(3-29)
(3-30)
( )
Re
(3-31)
E
H
(3-32)
j
j
=
=
31
(3-33)
Supongamos que se propaga por el cable coaxial el modo TEM, de modo que los
campos elctrico y magntico slo tendrn componentes perpendiculares a la direccin
de propagacin:
r E
E = 0 e z e jt
(3-34)
r
E
H = 0 e z e jt
(3-35)
32
V=
I=
b
E d = E 0 ln e z e jt
a
H ds =
E 0 2 z jt
z jt
e e = 2E 0
e e
(3-36)
(3-37)
b 1 b
ln =
ln
2 a 2 a
(3-38)
ZC =
1 0 b Z0
ln =
2 a
r
(3-39)
33
34
35
Est constituido por un TEST SET donde estn el generador de seales y los
sensores, un osciloscopio digital y un ordenador que recoge las medidas a travs del bus
HP-IB y realiza los clculos para obtener la permitividad compleja.
El generador del TEST SET HP-54121A emite seales escaln de 200mV de
amplitud y con un tiempo de subida de 35 ps. De los cuatro canales del TEST SET,
usaremos el canal 1, que es a la vez emisor y detector, y es el ideal para hacer estudios
de reflectometra. El resto de los canales son slo detectores.
El osciloscopio digital HP-54120B tiene una anchura de banda de 12.5 GHz y
adquiere las medidas en tiempo equivalente. Para ello es preciso que exista una
repetitividad de una seal para que pueda ser medida. El osciloscopio recoge unos pocos
puntos de la seal por cada repeticin y se utiliza una base de tiempos equivalente. Esta
es una caracterstica tpica de los osciloscopios con un gran ancho de banda. A
continuacin se muestra un ejemplo esquemtico de medida en tiempo equivalente.
37
38
39
(4-1)
e(t ) =
e(t)(t t)dt
(4-2)
(4-3)
s (t ) =
(4-4)
s (t ) =
e(t)h(t; t)dt
(4-5)
(4-6)
Sustituimos en (4-5):
+
s (t ) =
e(t)h(t t)dt
40
(4-7)
(4-8)
(4-9)
donde H() es la funcin de transferencia del sistema. Esto puede escribirse de otra
manera. Si W () representa la seal medida y V() la seal real, conociendo la funcin
de transferencia del sistema, podemos determinar la seal real a partir de la seal
medida:
V() =
W ()
H()
(4-10)
Para conocer la funcin de transferencia, podemos usar una carga cuya respuesta
sea conocida y nos pueda servir de referencia. Este es el caso de colocar un cortocircuito
como carga al final de la lnea. En este caso la onda reflejada real con el cortocircuito
es:
() =
VCC
()
WCC
= V + ()
H()
(4-11)
V () =
W ()
= ()V + ()
H()
(4-12)
Haciendo el cociente entre las ecuaciones (4-12) y (4-11), se obtiene este importante
resultado:
V ()
W ()
() = +
=
V ()
WCC ()
41
(4-13)
42
(4-14)
1
V( n ) =
N
[V(t ) V(t
k
k 1
)]exp( jn t k )
(4-15)
k =1
1
V( n ) =
N
k =1
exp( j n t )
V(t k ) exp( j n t k )
N
V (t
k 1
) exp( jn t k 1 )
(4-16)
k =1
(4-17)
() 1 exp( jt m )
WCC
WCC ()
43
(4-18)
()
WCC
(4-19)
r ()
1
r ()
1
(4-20)
+1
(4-21)
Para hacer todos estos clculos se utiliza la aplicacin pcmtdr.exe [5], que
dispone el laboratorio. Tambin se ha desarrollado en este Trabajo Acadmicamente
Dirigido una aplicacin: tdr.exe; para el mtodo de primera reflexin. El cdigo en
lenguaje C del programa se adjunta en el Apndice de esta Memoria. Las novedades de
este programa, con respecto al pcmtdr.exe son: el clculo del tiempo de relajacin,
presenta los valores medidos normalizados. Permite calcular la permitividad real e
imaginaria con un paso en frecuencias menor que con el pcmtdr.exe. Para una ventana
en frecuencias dada, es capaz de medir * para mil valores de la frecuencia. Por
ejemplo, para una ventana de 10 GHz, el paso mnimo del es de 0.01 GHz, mientras que
para el pcmtdr.exe es de 0.05GHz.
44
Ym =
Yca Yen
Z cc Yen 1
(4-22)
Yca = Y0 tanh j d / c
Z cc = Z 0
tanh j d / c
45
(4-23)
(4-24 )
46
corto
muestra
0.8
V/V
MA X
0.6
0.4
0.2
0.0
0
50
100
150
200
250
300
350
400
t (ps)
47
1-pentanol+ciclohexano
2.50
0.5
2.00
0.4
' (5%)
' (10%)
1.50
0.3
' (15%)
'
''
'' (5%)
1.00
0.2
'' (10%)
'' (15%)
0.50
0.1
0.00
Frec(GHz)
Figura 5.2. Relaciones de dispersin del 1-pentanol + ciclohexano para las tres
concentraciones del componente polar.
48
1-hexanol+ciclohexano
2.5
2.0
0.8
' ( 5%)
' (10%)
1.5
0.6
' (15%)
''
'
'' (5%)
1.0
0.4
'' (10%)
'' (15%)
0.5
0.2
0.0
0
0
Frec (GHz)
Figura 5.3. Relaciones de dispersin del 1-hexanol + ciclohexano para las tres
concentraciones del componente polar.
49
1-heptanol+ciclohexano
2.5
0.5
2.0
0.4
' ( 5%)
' (10%)
1.5
0.3
' (15%)
'
''
0.2
1.0
'' ( 5%)
'' (10%)
0.5
0.1
'' (15%)
0
0.0
0
Frec (GHz)
Figura 5.4. Relaciones de dispersin del 1-heptanol + ciclohexano para las tres
concentraciones del componente polar.
dielctrica;
obtenidos
para
el
1-pentanol+ciclohexano,
1-
polar son del 5%, 10% y 15%. Todas las medidas se realizaron a temperatura constante
(T = 25C)
5%
PTC
HXC
HPC
10%
PTC
HXC
HPC
15%
PTC
HXC
HPC
S (ps) max
0.03 0.5 (0.01
2.15
2.14
2.12
55
58
67
0.05
0.02
0.018
S (ps) max
0.03 0.5 (0.01
2.25
2.23
2.23
69
71
85
0.07
0.06
0.03
S (ps) max
0.03 0.5 (0.01
2.37
2.35
2.34
85
90
110
0.12
0.10
0.07
para: pentanol+ciclohexano
51
16
( ) PTC
s exp
14
( ) HXC
( ) HPC
s exp
s exp
12
10
8
6
4
2
X-polar
0
0
0.2
0.4
0.6
0.8
52
0.5
( )
s W.U.
PTC
( )
s W.U.
HXC
( )
s W.U.
HPC
-0.5
-1
-1.5
-2
-2.5
-3
X-polar
-3.5
0
0.2
0.4
0.6
0.8
53
5
( )
s W.L.
PTC
( )
s W.L.
HXC
( )
s W.L.
HPC
X-polar
-1
-2
0
0.2
0.4
0.6
0.8
54
max
PTC
max
HXC
max
HPC
1
X-polar
0
0
0.2
0.4
0.6
0.8
55
1200
PTC
0
1000
HXC
HPC
800
600
400
200
X-polar
0
0
0.2
0.4
0.6
0.8
1000
HXC
0
ln( )-x
polar
HPC
0
100
X
0
0.2
0.4
0.6
0.8
56
La grfica muestra que existen dos regiones. La zona de transicin aparece para
una concentracin crtica x c 0.17 . Para baja concentracin, se observa una
dependencia lineal entre ln y la concentracin x:
ln = ln 0 + ax
(5-1)
= 0 e ax
(5-2)
(0.05)
(0.10)
(0.15)
(0.2)
(0.4)
(0.6)
(0.8)
(1.0)
1000
800
600
400
200
n C
0
4
Figura 5.11. Representacin del tiempo de relajacin en funcin del nmero de carbonos
para las 8 concentraciones.
57
200
m
150
100
50
x-polar
0
0
0.2
0.4
0.6
0.8
58
59
6.- Conclusiones.
60
61
Bibliografa
[1] J.D. Jackson, Classical Electrodynamics, John Wiley & Sons, (1999)
[2] J.M. Albella Martn, J. M. Martnez Duart, Fsica de dielctricos, Ed. Marcombo,
Barcelona (1984)
[4] H.A. Samulon, Spectrum analysis of transient response curves Proc. IRE, (1951)
62
63
64
}}
if(menu=='4'||menu=='5'){
for(i=0;i<mue[2];i++)
{
vc[i]=((float)dc[i]-(float)datcor[5])*(float)datcor[3]+(float)datcor[4];
vm[i]=((float)dm[i]-(float)datmue[5])*(float)datmue[3]+(float)datmue[4];
}
}
if(menu=='4'){
maxdos=vc[0];
mindos=vc[0];
for(i=0;i<mue[2];i++)
{
if(maxdos<vc[i]){maxdos=vc[i];}
if(mindos>vc[i]){mindos=vc[i];}
}}
if(menu=='5')tfd();
fclose(lemue);
fclose(lecor);
optar:
system("CLS");
marco();
gotoxy(20,12);
printf("1) Volver al menu");
gotoxy(20,14);
printf("2) Ver grfica");
gotoxy(20,16);
printf("3) Guardar clculos");
gotoxy(20,18);
printf("0) Salir del programa");
recoge:
caso=getch();
if(caso=='1'){goto inicio;}
if(caso=='3'){guarda();goto optar;}
if(caso=='2'){dibuja();goto optar;}
if(caso=='0'){
inicia_graf(MODO_TXT);
return(0);}
goto recoge;
}
void tfd(void)
{
float esa=3/*espesor arandela en mm*/, pea=2.04;/*permitividad relativa de la arandela*/
float rpa[N],ipa[N];/*permitividades real e imaginarias corregidas de arandela*/
float ryen[N],iyen[N], yca[N], zcc[N];
float reyd[N],imyd[N];/*admitancia corregida*/
char aran;
int j, k;
float deltat=datmue[0]*1000000000.0;
initf:
system("CLS");
marco();
gotoxy(12,4);printf("Introduzca el paso de frecuencia en GHz (ej 0.1)\n");
gotoxy(12,5);scanf("%f",&pasof);
if(pasof==0){gotoxy(12,10);printf("El paso de frecuencia ha de ser mayor que 0");goto initf;}
gotoxy(12,7);printf("Introduzca la ventana deseada en GHz (ej 10)\n");
gotoxy(12,8);scanf("%f",&venf);
tamf=venf/pasof;
gotoxy(12,10);printf("%f puntos",tamf);
if(tamf>N+0.01){gotoxy(18,14);printf(">1000 Demasiados puntos!\n");getch();goto initf;}
65
pregunta:
gotoxy(12,12);printf("Desea correccin de arandela? (s/n)");aran=getch();
if(aran!='s'&& aran!='n') goto pregunta;
if(aran=='s')
{
gotoxy(12,14);printf("Introduzca espesor de la arandela en mm: ");scanf("%f",&esa);
gotoxy(12,16);printf("Introduzca permitividad de la arandela: ");scanf("%f",&pea);
}
for(k=0;k<mue[2];k++)
{
t[k]=deltat*k; /*en nanosegundos*/
}
for(k=0;k<tamf;k++)
{
f[k]=k*pasof+0.01;
}
for(j=0;j<tamf;j++)
{
rtfcdc[j]=0; /*inicializacion*/
itfcdc[j]=0;
rtfcdm[j]=0;
itfcdm[j]=0;
for(k=0;k<mue[2]-1;k++)
{
rtfcdc[j]=rtfcdc[j]+(float)(1.0/((float)mue[2]))*((float)vc[k+1](float)vc[k])*((float)cos(2.0*PI*f[j]*t[k]));
itfcdc[j]=itfcdc[j]-(float)(1.0/((float)mue[2]))*((float)vc[k+1](float)vc[k])*((float)sin(2.0*PI*f[j]*t[k]));
rtfcdm[j]=rtfcdm[j]+(float)(1.0/((float)mue[2]))*((float)vm[k+1](float)vm[k])*((float)cos(2.0*PI*f[j]*t[k]));
itfcdm[j]=itfcdm[j]-(float)(1.0/((float)mue[2]))*((float)vm[k+1](float)vm[k])*((float)sin(2.0*PI*f[j]*t[k]));
}
}
for(j=0;j<tamf;j++)
{
rer[j]=-(rtfcdm[j]*rtfcdc[j]+itfcdm[j]*itfcdc[j])/(rtfcdc[j]*rtfcdc[j]+itfcdc[j]*itfcdc[j]);
imr[j]= (rtfcdm[j]*itfcdc[j]-itfcdm[j]*rtfcdc[j])/(rtfcdc[j]*rtfcdc[j]+itfcdc[j]*itfcdc[j]);
if(aran=='n')
{
rperm[j]=((1-rer[j]*rer[j]-imr[j]*imr[j])*(1-rer[j]*rer[j]-imr[j]*imr[j])4.0*imr[j]*imr[j])/(((1+rer[j])*(1+rer[j])+imr[j]*imr[j])*((1+rer[j])*(1+rer[j])+imr[j]*imr[j]));
iperm[j]=4*imr[j]*(1-rer[j]*rer[j]imr[j]*imr[j])/(((1+rer[j])*(1+rer[j])+imr[j]*imr[j])*((1+rer[j])*(1+rer[j])+imr[j]*imr[j]));
}
}
if(aran=='s')
{
for(j=0;j<tamf;j++)
{
ryen[j]=(1.0/50.0)*(1-rer[j]*rer[j]-imr[j]*imr[j])/((1+rer[j])*(1+rer[j])+imr[j]*imr[j]);
iyen[j]=-(2.0/50.0)*imr[j]/((1+rer[j])*(1+rer[j])+imr[j]*imr[j]);
zcc[j]=50*(float)tan((2.0/299.79)*PI*(double)f[j]*(double)esa*sqrt((double)pea))/(float)sqrt((doubl
e)pea); /*imaginario puro, solo pongo el valor absoluto*/
yca[j]=(float)sqrt((double)pea)*(float)tan((2.0/299.79)*PI*(double)f[j]*(double)esa*sqrt((double)pe
a))/50.0; /*tb imaginario puro*/
66
reyd[j]=ryen[j]*(1+zcc[j]*yca[j])/((float)pow((double)(1+zcc[j]*iyen[j]),2)+(float)pow((double)(zcc[j]*
ryen[j]),2));
imyd[j]=(ryen[j]*ryen[j]*zcc[j]+(iyen[j]yca[j])*(1+zcc[j]*iyen[j]))/((float)pow((double)(1+zcc[j]*iyen[j]),2)+(float)pow((double)(zcc[j]*ryen[j]
),2));
rperm[j]=(50*50)*(reyd[j]*reyd[j]-imyd[j]*imyd[j]);
iperm[j]=-2*50*50*reyd[j]*imyd[j];
}
}
fmax=f[0];
ipmax=iperm[0];
ipmin=iperm[0];
rpmax=rperm[0];
rpmin=rperm[0];
for(j=0;j<tamf;j++)
{
if(ipmax<iperm[j]){ipmax=iperm[j];fmax=f[j];}
if(ipmin>iperm[j]){ipmin=iperm[j];}
if(rpmax<rperm[j]){rpmax=rperm[j];}
if(rpmin>rperm[j]){rpmin=rperm[j];}
}
if(rpmax>ipmax)maxtot=rpmax;else maxtot=ipmax;
if(rpmin<ipmin)mintot=rpmin;else mintot=ipmin;
tr=1000.0/(2.0*PI*fmax);
gotoxy(12,18);printf("M ximo de e\"");
gotoxy(14,21);printf("fmax=%f GHz",fmax);
gotoxy(14,20);printf("e\"max=%f",ipmax);
gotoxy(14,22);printf("tau=%f ps",tr);
getch();
}
void men(void){
system("CLS");
marco();
gotoxy(10,3);
printf("Reflectometra en el dominio del tiempo (T.D.R.)");
gotoxy(18,6);
printf("ELIJA UNA OPCION");
if(leido==1){
gotoxy(10,12);
printf("3) Crear fichero con medidas de MUESTRA y CORTO normalizadas");
gotoxy(10,14);
printf("4) Crear fichero con voltajes de MUESTRA y CORTOCIRCUITO");
gotoxy(10,16);
printf("5) Clculo de la permitividad dielctrica en funcin de");
gotoxy(10,17);
printf(" la frecuencia por el mtodo de primera reflexin");
}
gotoxy(10,8);
printf("1) Informacin sobre el programa");
gotoxy(10,10);
printf("2) Abrir archivo");
gotoxy(10,19);
printf("0) Salir");
gotoxy(10,22); printf("AREA DE ELECTROMAGNETISMO");
gotoxy(10,23); printf("DEPARTAMENTO DE FISICA APLICADA");
gotoxy(10,24); printf("UNIVERSIDAD DE ZARAGOZA CURSO 2005/06");
}
void marco(void)
67
{
rect_lleno(X_M-6,0,X_M-1,Y_M-1,1);
rect_lleno(0,0,6,Y_M-1,1);
rect_lleno(0,0,X_M-1,5,1);
rect_lleno(0,Y_M-6,X_M-1,Y_M-1,1);
}
void info(void)
{
system("CLS");
marco();
gotoxy(18,3);printf("INFORMACION");
gotoxy(8,5);printf("TITULO DEL T.A.D.: \"Estudio de la relajacin dielctrica en");
gotoxy(8,6);printf("
mezclas polar - no polar por T.D.R.\"");
gotoxy(8,8);printf("TUTOR: Juan Pablo Martnez Jimnez");
gotoxy(8,10);printf("ALUMNO: Daniel Dign Rodrguez");
gotoxy(8,12);printf("CURSO 2005/06");
gotoxy(8,15);printf("El programa permite leer los ficheros .mue y .cor donde estn las ");
gotoxy(8,16);printf("medidas, y escribe en un fichero .d las siguientes opciones:");
gotoxy(8,19);printf("-Los valores normalizados del corto y la muestra en funcin del tiempo");
gotoxy(8,21);printf("-Los valores en voltios del corto y la muestra en funcin del tiempo");
gotoxy(8,23);printf("-La permitividad elctrica en funcin de la frecuencia por el mtodo");
gotoxy(9,24);printf("de primera reflexin con correccin de arandela. Para esta opcin, el");
gotoxy(9,25);printf("programa nos da el valor de la frecuencia correspondiente al mximo de");
gotoxy(9,26);printf("la parte imaginaria de la permitividad");
}
int guarda(void)
{
int i;
system("CLS");
marco();
gotoxy(8,4);printf("Los archivos de lectura son %s.mue y %s.cor", fr,fr);
gotoxy(8,6);printf("Escriba el nombre del archivo de escritura");
gotoxy(8,7);scanf("%s",fw);
gotoxy(8,9);printf("El archivo de escritura es %s.d", fw);
sprintf(name,"a:%s.d",fw);
esc=fopen(name,"wt");
if(esc==NULL){gotoxy(8,11);printf("ERROR: No hay disquete en a:");getch();return 0;}
if(menu=='3')
{
fprintf(esc,"t corto muestra\n");
}
if(menu=='4'){fprintf(esc,"t cor(V) mue(V)\n");}
if(menu=='3'||menu=='4')
{
for(i=0;i<mue[2];i++)
{
fprintf(esc,"%d %f %f\n",i, vc[i],vm[i]);
}
}
if(menu=='5')
{
fprintf(esc,"f(GHz) e' e\"\n");
for(i=0;i<tamf;i++){
fprintf(esc,"%.2f %f %f\n",f[i], rperm[i], iperm[i]);
}
}
fclose(esc);
if(esc!=NULL){gotoxy(10,12);printf("Clculos guardados!");}
getch();
return 1;
}
68
void dibuja(void)
{
int i,j=0;
int pas=(int)(mue[2]/512),poscy,posmy;
int posrpx, posrpy, posipx, posipy;
if (pas==0){pas=1;}
system("CLS");
marco();
rectangulo(64,48,576,432,BLANCO);
if(menu=='3')
{
gotoxy(6,4);printf("1");
gotoxy(6,28);printf("0");
gotoxy(6,2);printf("Valores normalizados del corto (AMARILLO) y la muestra (ROJO)");
}
if(menu=='4')
{
gotoxy(3,4);printf("%.3f",maxdos);
gotoxy(3,28);printf("%.3f",mindos);
gotoxy(6,2);printf("Voltajes (en voltios) del corto (AMARILLO) y la muestra (ROJO)");
}
if(menu=='3'||menu=='4')
{
gotoxy(72,29);printf("%d",mue[2]);
for(i=0;i<mue[2];i++)
{
if(menu=='3'){
poscy= (int)((1-vc[i])*384);
posmy= (int)((1-vm[i])*384);
}
if(menu=='4'){
poscy= (int)((maxdos-vc[i])*384/(maxdos-mindos));
posmy= (int)((maxdos-vm[i])*384/(maxdos-mindos));
}
elipse_f((int)(64+(float)i*512.0/((float)mue[2])),poscy+48,2,2,AMARILLO);
elipse_f((int)(64+(float)i*512.0/((float)mue[2])),posmy+48,2,2,ROJO);
}
}
if(menu=='5')
{
gotoxy(3,4);printf("%.3f",maxtot);
gotoxy(3,28);printf("%.3f",mintot);
gotoxy(10,2);printf("Parte real (AMARILLO) y parte imaginaria (ROJO) de");
gotoxy(10,3);printf("la permitividad frente a la frecuencia en GHz");
gotoxy(9,29);printf("0");
gotoxy(72,29);printf("%.1f",venf);
/*linea de cero*/
if(maxtot>0 && mintot<0){
gotoxy(4,(int)(4+24*(maxtot)/(maxtot-mintot)));printf("0");
linea_fast(64,(int)(48+384*(maxtot)/(maxtot-mintot)),576,(int)(48+384*(maxtot)/(maxtotmintot)),BLANCO);
}
for(i=0;i<tamf;i++)
{
elipse_f((int)(64+(f[i]-0.01)*512.0/venf),(int)(432-384*(rperm[i]-mintot)/(maxtotmintot)),2,2,AMARILLO);
elipse_f((int)(64+(f[i]-0.01)*512.0/venf),(int)(432-384*(iperm[i]-mintot)/(maxtotmintot)),2,2,ROJO);
}
69
}
getch();
}
int leo(void)
{
system("CLS");
marco();
gotoxy(8,4);printf("Escriba el nombre del archivo de lectura");
gotoxy(8,6);scanf("%s",fr);
gotoxy(8,8);printf("Los archivos de lectura son %s.mue y %s.cor", fr,fr);
sprintf(nmue,"a:%s.mue",fr);
sprintf(ncor,"a:%s.cor",fr);
lemue=fopen(nmue,"r");
if(lemue == NULL){gotoxy(8,12);printf("El archivo %s.mue no se encuentra en el disquete",fr);
getch();}
lecor=fopen(ncor,"r");
if(lecor == NULL){gotoxy(8,14);printf("El archivo %s.cor no se encuentra en el disquete",fr);
getch();}
if(lecor==NULL&&lemue==NULL){gotoxy(8,16);printf("Es posible que no haya disquete en
a:");
getch();}
if(lecor==NULL||lemue==NULL)return 0;
rewind(lemue);
rewind(lecor);
for(i=0;i<4;i++){
fscanf(lemue,"%d ",&mue[i]);
fscanf(lecor,"%d ",&cor[i]);
}
if(mue[2]>N)
{ gotoxy(8,18);printf("Archivo demasiado grande\n");
getch();
return 0;
}
for(i=0;i<7;i++){
fscanf(lemue,"%E ",&datmue[i]);
fscanf(lecor,"%E ",&datcor[i]);
}
for(i=0;i<mue[2];i++){
fscanf(lemue,"%c",&inmue);
fscanf(lemue,"%d",&dm[i]);
fscanf(lemue,"%c",&inmue);
fscanf(lecor,"%c",&incor);
fscanf(lecor,"%d",&dc[i]);
fscanf(lecor,"%c",&incor);
}
return 1;
}
70