Escolar Documentos
Profissional Documentos
Cultura Documentos
NDICE
DEDICATORIA...............................................................................................................6
AGRADECIMIENTOS.....................................................................................................6
CAPTULO I.................................................................................................................... 7
Introduccin.................................................................................................................... 7
1.1 INTRODUCCIN..................................................................................................7
1.2 ANTECEDENTES GENERALES...........................................................................8
1.3 PLANTEAMIENTO DEL PROBLEMA....................................................................8
1.4 OBJETIVOS.......................................................................................................... 9
1.5 LIMITACIONES DEL MODELO DE SIMULACIN................................................9
CAPTULO II................................................................................................................. 10
Determinacin de parmetros reales de la mquina de corriente continua...................10
2.1 INTRODUCCIN................................................................................................10
2.2 FUNDAMENTOS DE LAS MQUINAS ROTATORIAS........................................10
2.2.1 Principio del electroimn giratorio.................................................................11
2.2.2 Principio del generador.................................................................................14
2.2.3 Trabajo, par y potencia.................................................................................15
2.3 MOTORES C.C...................................................................................................17
2.3.1 Motor C.C. con excitacin independiente.....................................................21
2.4 GENERADORES C.C.........................................................................................26
2.4.1 Generador C.C. con excitacin independiente..............................................27
MODELADO
FINAL
DE
LA
MAQUINA
C.C.
CON
EXCITACIN
INDEPENDIENTE Y SHUNT.....................................................................................49
CAPITULO III................................................................................................................ 50
Simulacin de la mquina de corriente continua..........................................................50
3.1INTRODUCCIN A SIMULINK............................................................................50
3.2. CONSTRUCCIN DE SIMULACIONES............................................................53
3.2.1. Parmetros de simulacin y mtodos de integracin...................................56
3.3. ALGUNAS FORMAS DE SIMULAR...................................................................59
3.3.1 Construccin del modelo usando mtodo estacionario de simulink..............60
3.3.2. Construccin del modelo usando el mtodo de diagrama de bloques.........67
3.3.3 Construccin del modelo usando mtodo de edicin de ecuaciones............78
CAPTULO IV............................................................................................................... 80
Resultados y discusin de datos..................................................................................80
4.1.
INTRODUCIN..............................................................................................80
DEDICATORIA
A Dios quien a travs de promesas como: Esfurzate y se valiente o Todo lo
puedo en Cristo que me fortalece me dio todo lo necesario para poder empezar y
terminar esta etapa.
A mis padres, hermanos, suegra, cuados y cuadas, amigos por apoyarme en
todo sentido y en especial a mi novia y futura esposa Yesenia por acompaarme y
apoyarme siempre.
AGRADECIMIENTOS
Al Sr. Nelson Aros por su vocacin docente y apoyo desinteresado. A la
profesora Norma Donoso por su ayuda durante el desarrollo de esta tesis y de la
carrera en general, y a todos los docentes que durante estos aos fueron de gran
ayuda y gua.
CAPTULO I
Introduccin
1.1 INTRODUCCIN
1.4 OBJETIVOS
softwares de simulacin
y sus aplicaciones en el
CAPTULO II
Determinacin de parmetros reales de la mquina
de corriente continua
2.1 INTRODUCCIN
Para poder llegar a un anlisis adecuado de la mquina de corriente continua,
es necesario que el estudiante conozca de antemano la interaccin y los fundamentos
que rigen el funcionamiento de dicha mquina. Es decir en este captulo se examinarn
de manera superficial el funcionamiento de la mquina y se har nfasis al anlisis de
las ecuaciones que las rigen, pero el lector, en caso necesario, puede consultar el
anexo para aclarar cualquier duda al respecto.
Todo el mundo est familiarizado con algn tipo de motor elctrico, desde el
pequeo motor c.c. de un juguete que funciona a bateras, el motor c.c. de arranque de
los automviles o el motor de C.A. de las mquinas lavadoras y secadoras de ropa.
Pero cmo y por qu esos motores funcionan y giran? es la pregunta que se pretende
responder en esta instancia. La respuesta es muy sencilla: a causa de la interaccin de
dos campos magnticos, tome dos imanes y fije uno de ellos a una barra que le
permita rotar luego haga girar el segundo imn alrededor del primero. Como se
muestra en la figura 1 el imn acta como un rotor (imn mvil) resultar atrado a lo
largo de la trayectoria del segundo, debido a la fuerza magntica de atraccin entre
ambos imanes, como consecuencia el imn mvil girar en sincronismo con el imn
que lo arrastra.
10
11
12
13
14
E=
N
t
Donde:
E es el voltaje inducido, en voltios
N es el nmero de espiras del alambre de la bobina
15
W =Fd
Cuando la fuerza se expresa en Newton (N) y la distancia en metros (m), es
trabajo viene dado en Joule (J). Por otro lado, cuando la fuerza se expresa en (lbf) y
la distancia d en (plg) el trabajo se da en (lbf*plg).
Como lo muestra la figura 5, ahora consideramos el desplazamiento del
bloque sobre la misma distancia empleando una polea de radio r. Se debe aplicar una
fuerza de torsin para girar la polea de modo que la cuerda tire del bloque con una
fuerza f. esta fuerza de torsin se llama par y se define por medio de la siguiente
ecuacin.
T =Fr
Cuando la fuerza se expresa en newton y el radio en metros, el par resulta
Newton-metros (N.m). Por otra parte, cuando la fuerza se expresa en (lbf) y el radio en
(plg), el par viene dado en (lbf.plg).
16
P=
W
t
Donde:
P es la potencia, en vatios (W)
W es el trabajo, en joule (J)
T es el tiempo que se emplea para efectuar el trabajo, en segundos (S)
17
En la figura 7 (a), las escobillas hacen contacto con los segmentos A y B del
colector y la corriente fluye en el conductor cerrado A-B. En el otro conductor cerrado
(C-D) no circula corriente. La misma figura muestra que esto crea un electroimn con
sus polos norte y sur. Como lo indica la figura 7 (b), si se gira un poco el rotor hacia la
derecha, la corriente an circular en el conductor A-B y sus polos magnticos norte y
sur del electroimn girarn en ese mismo sentido.
Como lo seala la figura 7 (c), dado que el rotor contina girando hacia la
derecha, llega el momento en que se produce la conmutacin, es decir, las escobillas
18
hacen contacto con los segmentos C-D en lugar de los segmentos A y B. Como
resultado, la corriente ahora fluye en el conductor C-D. En la figura 7 (a) se ve como
esto crea el electroimn C-D con sus polos norte y sur. Comparando la figura 7 (b) y
(c), usted puede ver que la conmutacin de los polos norte y sur rotan 90 hacia la
izquierda. Como el rotor contina girando hacia la derecha, el mismo fenmeno se
repite en todas las rotaciones de 90.
19
En sntesis, como el motor gira, los polos norte y sur del electroimn van y
vienen (oscilan) dentro de un ngulo de 90, como lo muestra la figura 8. En otras
palabras, los polos norte y sur estn estacionarios, es decir, no rotan cuando el rotor
20
gira. Esto equivale a tener un electroimn en el rotor que gira con igual velocidad que
dicho rotor pero en sentido opuesto. Cuanto ms alto es el nmero de segmentos del
colector, ms pequeo es el ngulo de oscilacin de los polos norte y sur. Por ejemplo
si el colector de la figura 7 tuviera 32 segmentos, el ngulo de oscilacin de los polos
norte y sur seria de solo 11.25.
Figura 8: Los polos norte y sur oscilan alrededor de una posicin fija.
el estator, los polos magnticos de polaridad opuesta se atraern unos con otros (a fin
de alinearse) y el rotor comenzar a girar. Una vez que el rotor rot cierto ngulo se
produce una conmutacin y los polos norte y sur del electroimn vuelven a su posicin
anterior. Una vez ms, los polos magnticos de polaridad opuesta se atraen entre ellos
y el rotor contina girando en el mismo sentido, segn la alineacin de dichos polos
magnticos. Sin embargo, inmediatamente despus se produce otra conmutacin y los
polos del electroimn vuelven nuevamente a su posicin y este siclo se repite una y
otra vez. La fuerza resultante de la interaccin de los dos campos magnticos siempre
acta en el mismo sentido y el rotor gira continuamente. De esta manera, se ha logrado
un convertidor de energa elctrica en mecnica, es decir un motor elctrico. El sentido
de rotacin depende de la polaridad del voltaje aplicado a las escobillas del rotor.
21
22
23
V g 1=( R c + R r )I c
Ea =V g 2R aI a
La ecuacin que relaciona las variables elctricas y magnticas es:
Ea=K
En el caso del motor shunt las ecuaciones son anlogas a las anteriores con la
salvedad que en este caso Vg1 = Vg2 = Vg y adems Ig = Ic + Ia.
Al igual que en caso de la mquina de C.C. conectada como generador, existen
curvas que permiten explicar el comportamiento de los motores y estimar su
desempeo de acuerdo a las distintas configuraciones de conexin (shunt, serie, etc.).
En este sentido una de las curvas caractersticas de los motores de C.C. ms
representativa es la curva de Torque velocidad que se muestra, para el caso de
generador excitacin separada y shunt, en las figuras 12 y 13
24
25
T =KI cI a
I c=
V g1
R
I a=
V g 2E a V g 2K I c
=
Ra
Ra
T=
KV g1V g 2 K 2 V g 12
2
r
RaR
R Ra
torque generado comienza a disminuir hasta el punto en que se torna cero, si en este
caso se sigue aumentando la velocidad entonces la corriente de armadura se invierte y
la mquina comienza a operar como generador.
26
27
elevado ser el voltaje de salida. Adems, cuanto ms potente es el imn del estator,
ms lneas de fuerza habr y, por lo tanto ms alto ser el voltaje de salida.
En la figura:
28
Va=Vl
Ia=Il
Ecuacin del circuito de campo:
29
Ea=Va+ RaIa
Va=RlIl
e ind =VBL
Ea=
N a vBL
a
N a es el nmero total de conductores de la armadura
Donde:
Podemos decir que el flujo es igual a la densidad del flujo bajo el polo multiplicado por
el rea del polo.
=BAp
Como el rotor tiene rea cilndrica, por lo que su rea es igual a:
30
A=2 rl
Si la mquina tiene P polos, entonces la porcin del rea asociada a cada polo
con cada polo es el rea total A dividida entre el numero de polos.
Ap=
A 2 rl
=
P
P
=BAp=
Ea=
B 2 rl
P
N a rBl N a P
2 rlB
=
a
2 a
P
( )(
Finalmente:
Ecuacin 2: Ecuacin del voltaje inducido
Ea=K
31
Donde:
K=
Na P
2 a
V a=V l =Ea R aI a
Siendo: Ea, n e Ic constantes.
)
102
32
33
34
Ea=
Na P
2 a
=dN f I f
Siendo:
d=
1
reluctancia
35
Ea=
N a N f Pd
I f
2 a
Gfq =f dqN qN f d
Donde
f dq=
2
p
N a
2
N q=
2
en
consecuencia:
E=G fqI f
V a=I a Ra + La
d Ia
+G fq I f
dt
V f =I f R f + L f
d If
dt
36
T eT m =J
d
+ D
dt
T e=
Pe
=Gfq I f I a
T m=Gfq I f I aJ
d
+ D
dt
Las tres ecuaciones antes mencionadas (ecuacin 3, 4, 6), son las ecuaciones
de movimiento de la mquina de corriente continua y determinan su comportamiento
dinmico. Notemos que en general son no-lineales y para resolverlas tenemos que
recurra a mtodos numricos o al computador.
37
La tensin rotacional debe tener una polaridad tal que, de acuerdo con la ley de Lenz:
tiende a oponerse a la causa que la produce, vale decir, tiende a oponerse a la
circulacin de corriente de armadura que origina el movimiento que induce la tensin
rotacional. En consecuencia la tensin rotacional es positiva en la escobilla superior.
Notemos que la polaridad de referencia para la tensin rotacional no puede ser
arbitraria, sino que depende de las referencias adoptadas para If y
.1
38
39
Por otro lado, para que el proceso de conmutacin sea ptimo, el paso de las
escobillas de una delga a otra debe realizarse en el momento en que la diferencia de
tensin entre las delgas vecinas sea nula, esto debido a que existe un instante en que
cada escobilla est en contacto con ambas delgas vecinas y si existiese una diferencia
de potencial entre ellas habra un cortocircuito y se produciran arcos elctricos en el
colector.
El momento ptimo de conmutacin ocurre cuando las escobillas se sitan en la
llamada lnea de neutro magntico o lnea neutra, como se aprecia en el esquema
de la figura 20 (a), cuando no existe corriente en la armadura, la lnea de neutro
magntico se sita en plano perpendicular al flujo originado por el campo, coincidiendo
40
con la posicin fsica de las escobillas por lo cual la conmutacin se lleva a cabo sin
problemas.
Sin embargo al existir reaccin de armadura, figura 20 (b), la lnea de neutro
magntico se desplaza hasta situarse en el plano perpendicular a la resultante del flujo
magntico
Total
41
utiliza en motores muy pequeos donde se sabe que la carga no vara y donde
ningn ajuste con la variacin de carga puesto que la corriente de armadura crece o
decrece consecuentemente y lo mismo ocurre con los flujos generados en los polos de
compensacin, adems tambin existe un ajuste automtico al usar la mquina como
generador o motor, ya que el sentido de la corriente de armadura cambia de acuerdo a
la configuracin de la mquina y por ende lo hace el flujo de los interpolos.
En la figura 21 (a) se muestra la disposicin fsica de los interpolos en una
mquina de C.C., la figura 21 (b) muestra un esquema de la conexin de los interpolos
donde se aprecia que son recorridos por la corriente de armadura. Finalmente, la figura
21 (c) muestra esquemticamente como se cancela la reaccin de armadura al ser
sumada con los flujos de los interpolos.
42
En la prctica, el efecto del flujo de los interpolos es suficiente para evitar los
problemas en la conmutacin de las escobillas, sin embargo para mquinas de altas
potencias y ciclos de trabajo pesados es necesario mejorar el efecto del debilitamiento
del flujo y menor voltaje inducido:
anlisis, resultaba necesario antes de llevar a cabo cualquier anlisis, poder determinar
la posicin neutra de las escobillas.
Para esto se lleva a cabo un ejercicio que consiste en alimentar con corriente
alterna el devanado de la armadura, y por otro lado medir el voltaje inducido en el
devanado de campo en derivacin, dejando este ltimo abierto.
Una vez realizadas las conexiones y conectado el equipo al mdulo de
adquisicin de datos, se procede a llevar las escobillas al extremo mximo permitido
por la mquina en sentido de las manecillas del reloj. Posteriormente se energiza el
modulo motor/generador C.C. Y se lleva el voltaje A.C. Hasta que el voltaje inducido en
el debando en derivacin sea aproximadamente 150V. Luego se comienza a desplazar
las escobillas en sentido contra agujas de reloj, hasta que el voltaje inducido en el
devanado en derivacin sea 0V. (En la prctica es muy difcil llegar al voltaje igual a 0v
por la arquitectura de la mquina pero se puede llegar a voltajes muy bajos entre 1V y
43
3V). Concluido esto se procede a des energizar el equipo y a cerrar la tapa protectora
del mdulo motor/generador C.C.
44
Se observa en esta curva (figura 24) que se produce una f.e.m. en los
terminales de la armadura cuando la corriente de campo es nula, esto se debe al
magnetismo remanente que aparece en los polos. Tambin puede comprobarse que
45
debido a que la f.e.m. inducida est relacionada con la velocidad de rotacin del eje del
rotor, si se aumenta dicha velocidad se desplaza hacia arriba dicha curva. Es decir si
para una velocidad
dada
E=K
y una velocidad
E=K
la
f.e.m. producida para el mismo flujo es esta dada por la siguiente expresin.
=
E
Es decir, la f.e.m. son proporcionales a las velocidades de giro respectivas. Esto
significa que si se conoce la curva de vaco de una mquina para cierta velocidad, se
puede deducir la otra para otra velocidad.
de un generador con
excitacin independiente habr que conectar cargas variables para poder representar
46
V =ERiI iVescobilas
Donde
Ii
47
V a=I a Ra + La
d Ia
+G fq I f
dt
Gfq
ensayo se realiza con los terminales de armadura abiertos por lo tanto la corriente
Va
=Gfq
If
Finalmente es importante destacar que los datos a ingresar a esta ecuacin
deben ser tomados en la parte lineal de la curva de circuito abierto., puesto que estos
son tomados en la parte no saturada de la mquina. En la siguiente tabla se muestra
los valores obtenidos de la curva de saturacin de la mquina c.c. usada para este
anlisis. Si tomamos algunos puntos de la parte lineal, aplicamos la ecuacin anterior y
sacamos un promedio vemos que la inductancia mutua da como resultado:
48
49
2.7
MODELADO
FINAL
DE
LA
MAQUINA
C.C.
CON
50
CAPITULO III
Simulacin de la mquina de corriente continua
3.1INTRODUCCIN A SIMULINK
Simulink proporciona un entorno grafico que facilita enormemente el anlisis,
diseo y simulacin de sistemas (de control, elctrico, electrnico, etc.) al iniciar una
serie de rutinas que resuelven clculos matemticos de fondo, junto con una sencilla
interface para su uso. Proporciona un entrono de usuario grfico que permite dibujar
los sistemas como diagramas de bloques tal y como se hara en papel.
El conjunto de componentes incluidos junto al programa Simulink, incluye
bibliotecas de fuentes de seal, dispositivos de presentacin de datos, sistemas
lineales y no lineales, conectores y funciones matemticas. En caso que sea necesario,
se pueden crear nuevos bloques a medida por el usuario.
51
52
La o las ventanas de los modelos (figura 29), en las que se dibujan los modelos
y se realizan y controlan las simulaciones. Estas ventanas aparecen cuando se abre un
modelo ya existente o se crea una nueva ventana en blanco para dibujar un nuevo
modelo, para ello, se pueden utilizar los botones de la ventana de la librera de
simulink. Para el anlisis de la mquina de continua se usan principalmente las
libreras simulink y SimPowerSystem.
53
V a=I a Ra + La
Donde
d Ia
+ Ea
dt
54
Ea =Gfq I f
Circuito de campo: (ecuacin 4)
V c =I c Rc + Lc
d Ic
dt
T m=Gfq I f I aJ
d
+ D
dt
A partir de estas ecuaciones podemos iniciar con nuestra simulacin, sin antes
hacernos una pregunta muy importante, Qu quiero simular? , es decir: quiero
simular una mquina en la cual solo ingrese algunos parmetros y responda al
comportamiento esperado?, o pretendo simular una sola parte o proceso de la
mquina?. Si no tenemos clara esta pregunta es muy difcil seguir adelante con nuestra
misin, ya que no estaramos en condiciones de tener claro el proceso a simular por lo
tanto el planteamiento de las ecuaciones sera muy complicado y seguramente
errneo. En el transcurso del intento de realizar esta tesis pude comprobar que para
poder llegar a una correcta simulacin existen algunos tpicos que son necesarios
plantearse antes de llevar a cabo esta simulacin.
A continuacin se detallan los pasos a seguir recomendados para comenzar
con nuestra tarea:
55
I a=
0
I c =
0
V aGfq I f ( t )R aI a (t)
( dt )
La
V c R cI c (t )
( dt )
Lc
VALOR
28 Ohms
93 Henrios
650 Ohm
9.55
inductancia de campo Henrios
Velocidad
1500 Rpm
157
Velocidad
Rad/Seg
0.84
Auto inductancia
Henrios
I a=
0
56
I c =
0
220650I c (t)
( dt )
9.55
57
58
y=y + s (t ) , y(0)=yo
Donde
y (t )= yo et
Si S(t) 0, entonces la solucin es:
t
t
y (t )= yo e
+e
s ( ) e d
0
59
x 1=x
x 2=1000 ( 1x 12 ) x2 x1
x(0)=0
x(0)=1
60
Una de las caractersticas que hacen de Matlab un software tan atractivo a los
usuarios, es que tiene la particularidad de tener una retroalimentacin directa con los
usuarios; es decir estos tienen incidencia en el desarrollo de futuras versiones de este.
A partir de esta particularidad es que nacen los bloques predefinidos o libreras,
gracias al aporte de ingenieros y tcnicos de cada rea, en el caso de la parte elctrica
de potencia tenemos la librera SimPowerSystem. En ella se agrupan gran cantidad de
bloques los cuales les permiten a los usuarios simular desde mquinas elctricas hasta
grandes sistemas de potencia, pasando desde la etapa de generacin, transmisin y
distribucin pudiendo incluso simular fallas en un sistema para luego poder analizarlas.
Dentro de la librera SimPowerSystem se encuentra una seccin denominada
machines ah podemos encontrar una gran variedad de mquinas, a partir de las
cuales partir esta seccin, para ello creamos un nuevo espacio de trabajo y luego
arrastramos el bloque correspondiente a mquina c.c. para poder configurarlo, como
muestra la figura 32.
61
62
radianes por segundo, luego hay que recordar, que a la salida se presentan varias
seales es por ello que se agrego un demultiplexor para poder tomar cada una de
estas salidas y llevarlas a un osciloscopio, estos bloque los podemos encontrar dentro
de la librera Simulink.
63
Una vez que tenemos todas las seales de entrada y salida procedemos a
plantarnos nuestra situacin o pregunta original, esto es: qu quiero simular?, para
nuestro anlisis recordemos que se pretende encontrar la curva de saturacin de la
mquina por lo tanto se necesita medir el voltaje Va en funcin de la corriente de
campo, la cual debe variar desde cero hasta la corriente nominal. Para ello se procede
a conectar una fuente de corriente controlada por voltaje esto se puede ver en la figura
35.
En ocasiones nuestro proyecto puede estar compuesto por una gran cantidad
de bloques los cuales pueden ocupar mucho espacio y hacer que el usuario pueda
confundirse para ello es posible concentrar bloques encargados de realizar ciertas
funciones y agruparlos en un bloque contenedor que lleve el nombre representativo,
para esto se procede a seleccionar todos los bloques deseados y con el botn derecho
seleccionar la opcin create subsytem. En el ejemplo de la figura 35 podemos ver que
64
aqu se cre un bloque el cual contiene todos los elementos necesarios para crear la
fuente regulada.
Figura 37: Graficas de: Velocidad, Corriente de campo y Corriente de armadura obtenidas en la
simulacin
65
66
Debemos recordar que este mtodo trabaja con la maquina desde el punto de
vista general el cual queda determinado por el creador de dicho bloque. Y es
este el que determina que parmetros son importantes en la simulacin (segn
su criterio). Es por esto que no aparecen parmetros de saturacin de la
mquina.
Cuando se pretende trabajar las mquinas dentro de algn sistema estos
bloques resultan ideales puesto que le permite al usuario concentrarse en otros
aspectos ms relevantes dentro de su simulacin. Por ejemplo si el usuario
pretende analizar las corrientes de corto circuito dentro de un S.E.P. el hecho
67
de
que
existan
bloque
que
simulen
las
cargas
las
mquinas
los
I c =
0
V c R cI c (t )
( dt )
Lc
68
69
Figura 42: Modelado del las ecuaciones que rigen el comportamiento de la maquina c.c.
70
71
Descripcin
p = polyfit (x, y, n) encuentra los coeficientes de un polinomio p (x) de grado n que se
ajusta a los datos, p (x (i)) ay (i), en un sentido menos plazas. El resultado de p es un
vector fila de longitud n que contiene los coeficientes de un polinomio en potencias descendentes:
[P, S] = polyfit (x, y, n) devuelve el p coeficientes del polinomio y una estructura S para
su uso con polyval para obtener estimaciones de error o predicciones. Estructura S contiene
campos de investigacin, df, y normr, por el factor triangular de una descomposicin QR de
la matriz de Vandermonde x, los grados de libertad, y la norma de los residuos, respectivamente.
Si los datos y son al azar, una estimacin de la matriz de covarianza de p es (RINV RINV *) * ^
2/df normr, donde RINV es la inversa de R. Si los errores en los datos y son independientes
normal con varianza constante, polyval produce los lmites de error que contienen al menos el
50% de las predicciones.
[P, S, mu] = polyfit (x, y, n) encuentra los coeficientes de un polinomio en
donde
y
. Mu-elemento es el vector de dos [ 1, 2]. Esta
transformacin centrado y escalado mejora las propiedades numricas de ambos el polinomio y el
algoritmo de ajuste.
Ejemplos
Este ejemplo implica ajustar la funcin de error, erf (x), por un polinomio en x. Este es un
proyecto arriesgado porque erf (x) es una funcin acotada, mientras que los polinomios son
ilimitados, por lo que el ajuste no puede ser muy buena.
En primer lugar generar un vector de puntos x, igualmente espaciados en el intervalo [0, 2.5], y
luego evaluar erf (x) en esos puntos.
p = polyfit (x, y, 6)
p =
0,0084 -0,0983 0,4217 -0,7435 0,1471 1,1064 0,0004
Hay
siete
coeficientes
es
el
polinomio
72
tabla =
0 0 0.0004 -0.0004
0,1000 0,1125 0,1119 0,0006
0,2000 0,2227 0,2223 0,0004
0,3000 0,3286 0,3287 -0,0001
0,4000 0,4284 0,4288 -0,0004
...
2,1000 0,9970 0,9969 0,0001
2,2000 0,9981 0,9982 -0,0001
2,3000 0,9989 0,9991 -0,0003
2,4000 0,9993 0,9995 -0,0002
2,5000 0,9996 0,9994 0,0002
As, en este intervalo, el ajuste es bueno para entre tres y cuatro dgitos. Ms all de este
intervalo de la grfica muestra que el comportamiento polinomio toma el control y la aproximacin
se deteriora rpidamente.
Algoritmo
73
Vea tambin
poli , polyval , races , lscov , cobertura
74
75
76
Para poder simular mediante este mtodo es de suma importancia tener claras
bloque polyval.
Resulta muy til la ayuda que proporciona el software, cabe destacar que en
caso de no encontrar la respuesta dentro de la aplicacin esta puede recurrir a
internet para tratar de aclarar la ayuda buscada.
77
Cada campo del editor de ecuaciones especifica claramente que datos requiere,
as debe llevar el nombre del modelo, el nmero de entradas, las ecuaciones
diferenciales, las condiciones iniciales y las salidas deseadas. El uso de este mtodo y
otros queda a decisin del usuario.
78
79
CAPTULO IV
Resultados y discusin de datos
4.1. INTRODUCIN
4.1.1 Discusin de datos
A lo largo de este captulo analizaremos los resultados obtenidos a travs de los
mtodos de simulacin expuestos en los captulos anteriores, los cuales sern
contrastados con los anlisis reales realizados a la mquina de corriente continua. En
pos de analizar el grado de exactitud a la que llegan las simulaciones, para cumplir con
uno de los principales objetivos propuestos al comienzo de esta tesis.
Para poder contrastar de manera clara y precisa nos remitiremos al mtodo de
diagramas de bloques el cual entrega una curva de magnetizacin muy parecida a la
real. En la figura 51 podemos ver dos curvas de magnetizacin la real y la simulada.
Podemos ver que el comportamiento de la curva simulada es cercana a lo esperado,
llegando a una gran exactitud. El hecho que la curva real llegue a valores de terminales
superiores a los de la simulada se debe a que para el ensayo se llegaron a valores de
corrientes de campo superiores a la nominal, mientras que la simulacin trabajo solo
con corrientes nominales.
Otro aspecto a considerar es que para lograr un nivel de exactitud aceptable
depende mucho la capacidad del usuario para lograr plasmar de manera adecuada las
expresiones que rigen el comportamiento, en el caso de la maquina c.c. es necesario el
correcto planteamiento de las ecuaciones que la determina, sea el adecuado. A su vez
un buen planteamiento se logra de una clara interpretacin de las variables tanto de
entrada y salida de las ecuaciones.
80
81
82
4.1.2 Conclusiones
83
Espero que esta tesis sea de ayuda y marque una pauta de inicio para el uso
generalizado de softwares de simulacin en nuestra casa maestra.
4.2 Bibliografa
84
[1]
2010.
[2]
http://www.uco.es/dptos/electro/electronica/documentos/powersys.pdf, revisado
agosto de 2010.
[3]
http://.redeweb.com/microbit/articulos/56458111.pdf
revisado
septiembre
de
2010.
[4]
Chapman
Stephen.,
Mquinas
elctricas,
Editorial
Mc
Graw-Hill
Omega, 1997.
[7]
S.A., 1968.
[11]
Madrid 2002.
85
[14]
Serway Raymond. A., Fsica Tomo II, cuarta edicin., Editorial Mc Graw Hill
1997.
[15]
ANEXO
Manual Prctico de Matlab
1. El programa MATLAB
MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB es un
programa para realizar clculos numricos con vectores y matrices. Como caso
particular puede tambin trabajar con nmeros escalares (tanto reales como
complejos), con cadenas de caracteres y con otras estructuras de informacin ms
complejas. Una de las capacidades ms atractivas es la de realizar una amplia
variedad de grficos en dos y tres dimensiones. MATLAB tiene tambin un lenguaje
de programacin propio.
Layout/Default.
Esta
ventana
inicial
requiere
unas
primeras
explicaciones.
Figura 1
a todos los mdulos o componentes de MATLAB que se tengan instalados, como por
ejemplo al Help o a las Demos. El Workspace contiene informacin sobre todas las
variables que se hayan definido en esta sesin.
de
desarrollo.
Las
distintas
herramientas
disponibles
se
describen
3.2 El Editor/Debugger
Es la ventana en la que se crean los programas de MATLAB. Se obtiene al
hacer clic en File New - M file. En MATLAB tienen particular importancia los ya
citados ficheros- M (o M-files). Son ficheros de texto ASCII, con la extensin *.m, que
contienen conjuntos de comandos o definicin de funciones. La importancia de
estos ficheros-M es que al teclear su nombre en la lnea de comandos y pulsar Intro,
se ejecutan uno tras otro todos los comandos contenidos en dicho fichero. El poder
guardar instrucciones y grandes matrices en un fichero permite ahorrar mucho trabajo
de tecleado.
Aunque los ficheros *.m se pueden crear con cualquier editor de ficheros ASCII
tal como Notepad, MATLAB dispone de un editor que permite tanto crear y modificar
estos ficheros, como ejecutarlos paso a paso para ver si contienen errores (proceso de
Debug o depuracin). La Figura muestra la ventana principal del Editor/Debugger, en
la que se ha tecleado un fichero-M llamado Prueba1.m, que contiene un comentario y
seis sentencias. El Editor muestra con diferentes colores los diferentes tipos o
elementos constitutivos de los comandos (en verde los comentarios, en rojo las
cadenas de caracteres, etc.). El Editor se preocupa tambin de que las comillas o
parntesis que se abren, no se queden sin el correspondiente elemento de cierre.
Colocando el cursor antes o despus de una apertura o cierre de corchete o parntesis
y pulsando las teclas () o (), el Editor muestra con qu cierre o apertura de
corchete o parntesis se empareja el elemento considerado; si no se empareja con
ninguno, aparece con una rayita de tachado.
Seleccionando varias lneas y haciendo clic con el botn derecho aparece un
men contextual que permite entre otras cosas comentar con el carcter % todas las
lneas seleccionadas.
La ejecucin se comienza eligiendo el comando Run en el men Debug,
pulsando la tecla F5, haciendo clic en el botn Continue ( ) de la barra de
herramientas del Editor o tecleando el nombre del fichero en la lnea de comandos de
la Command Window. Los puntos rojos que aparecen en el margen izquierdo son
breakpoints (puntos en los que se detiene la ejecucin del programa); la flecha verde
indica la sentencia en que est detenida la ejecucin (antes de ejecutar dicha
sentencia); cuando el cursor se coloca sobre una variable (en este caso sobre la matriz
A) aparece una pequea ventana con los valores numricos de esa variable.
Puede apreciarse los botones que corresponden al Debugger. El significado de
estos botones, que aparece al colocar el cursor sobre cada uno de ellos, es el
siguiente:
Set/Clear Breakpoint. Coloca o borra un breakpoint en la lnea en que est el cursor.
Clear All Breakpoints. Elimina todos los breakpoints que haya en el fichero.
Step. Avanzar un paso sin entrar en las funciones de usuario que se llamen en esa
lnea.
Step In. Avanzar un paso, y si en ese paso hay una llamada a una funcin cuyo fichero
*.m est accesible, entra en dicha funcin.
Step Out. Salir de la funcin que se est ejecutando en ese momento.
Continue. Continuar la ejecucin hasta el siguiente breakpoint.
Quit Debugging. Terminar la ejecucin del Debugger.
El Debugger es un programa que hay que conocer muy bien, pues es muy til
para detectar y corregir errores. Es tambin enormemente til para aprender mtodos
numricos y tcnicas de programacin. Para aprender a manejar el Debugger lo mejor
es practicar.
Cuando se est ejecutando un programa con el Debugger, en cualquier
momento se puede ir a la lnea de comandos de MATLAB y teclear una expresin para
ver su resultado. Tambin se puede seleccionar con el ratn una sub-expresin en
cualquier lnea vista en el Editor/Debugger, hacer clic con el botn derecho y en el
mencontextual que se abre elegir Evaluate Selection. El resultado de evaluar esa
subexpresin aparece en la lnea de comandos de MATLAB.
4. programacin en MATLAB:
Como se mencion en el numeral anterior, los programas de MATLAB se crean
en la ventana Editor/Debugger, la cual se puede obtener al hacer clic en File New -
M file. Como ya se ha dicho varias veces, MATLAB es una aplicacin que se puede
programar muy fcilmente. De todas formas, como lenguaje de programacin pronto
ver que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas...). Se
comenzar viendo las bifurcaciones y bucles, y la lectura y escritura interactiva de
variables, que son los elementos bsicos de cualquier programa de una cierta
complejidad.
donde la opcin por defecto else puede ser omitida: si no est presente no se hace
nada en caso de que no se cumpla ninguna de las condiciones que se han chequeado.
Una observacin muy importante: la condicin del if puede ser una condicin matricial,
del tipo A==B, donde A y B son matrices del mismo tamao. Para que se considere
que la condicin se cumple, es necesario que sean iguales dos a dos todos los
elementos de las matrices A y B (aij=bij, 1im, 1jn). Basta que haya dos elementos
aij y bij diferentes para que las matrices ya no sean iguales, y por tanto las sentencias
del if no se ejecuten. Anlogamente, una condicin en la forma A~=B exige que todos
los elementos sean diferentes dos a dos (aijbij, 1im, 1jn). Bastara que hubiera
dos elementos aij y bij iguales para que la condicin no se cumpliese. En resumen:
if A==B exige que todos los elementos sean iguales dos a dos
if A~=B exige que todos los elementos sean diferentes dos a dos
Como se ha dicho, MATLAB dispone de funciones especiales para ayudar en el
chequeo de condiciones matriciales. Por ejemplo, la funcin isequal(A, B) devuelve un
uno si las dos matrices son idnticas y un cero en caso de que difieran en algo.
4.1.2 SENTENCIA FOR
La sentencia for repite un conjunto de sentencias un nmero predeterminado
de veces. La sentencia for de MATLAB es muy diferente y no tiene la generalidad de la
sentencia for de C/C++/Java. La siguiente construccin ejecuta sentencias con valores
de i de 1 a n, variando de uno en uno.
fori=1:n
sentencias
end
o bien,
fori=vectorValores
sentencias
end
10
Una ltima forma de inters del bucle for es la siguiente (A es una matriz):
fori=A
sentencias
end
donde condicion puede ser una expresin vectorial o matricial. Las sentencias se
siguen ejecutando mientras haya elementos distintos de cero en condicion, es decir,
mientras haya algn o algunos elementos true. El bucle se termina cuando todos los
elementos de condicion son false (es decir, cero).
4.1.4 SENTENCIA BREAK
Al igual que en C/C++/Java, la sentencia break hace que se termine la
ejecucin del bucle ms interno de los que comprenden a dicha sentencia.
4.1.5 OTRAS SENTENCIAS:
En MATLAB, existen otras sentencias como switch, continue, try que no son
muy utilizadas y, por lo tanto, omitimos su explicacin.
11
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar,
con lo que se almacena en la cadena nombre. As pues, en este caso, si se teclea una
frmula, se almacena como texto sin evaluarse.
4.2.2. FUNCIN DISP
La funcin disp permite imprimir en pantalla un mensaje de texto o el valor de
una matriz, pero sin imprimir su nombre. En realidad, disp siempre imprime vectores
y/o matrices: las cadenas de caracteres son un caso particular de vectores.
Considrense los siguientes ejemplos de cmo se utiliza:
>>disp('Elprogramahaterminado')
>>A=rand(4,4)
>>disp(A)
12
13
Los ficheros con extensin (.m) son ficheros de texto sin formato (ficheros
ASCII) que constituyen el centro de la programacin en MATLAB. Estos ficheros se
crean y modifican con un editor de textos cualquiera. En el caso de MATLAB 6.*
ejecutado en un PC bajo Windows, lo mejor es utilizar su propio editor de textos, que
es tambin Debugger. Existen dos tipos de ficheros *.m, los ficheros de comandos
(llamados scripts en ingls) y las funciones. Los primeros contienen simplemente un
conjunto de comandos que se ejecutan sucesivamente cuando se teclea el nombre del
fichero en la lnea de comandos de MATLAB o se incluye dicho nombre en otro fichero
*.m. Un fichero de comandos puede llamar a otros ficheros de comandos. Si un fichero
de comandos se llama desde de la lnea de comandos de MATLAB, las variables que
crea pertenecen al espacio de trabajo base de MATLAB, y permanecen en l cuando
se termina la ejecucin de dicho fichero.
Las funciones permiten definir funciones enteramente anlogas a las de
MATLAB, con su nombre, sus argumentos y sus valores de retorno. Los ficheros
*.m que definen funciones permiten extender las posibilidades de MATLAB; de hecho
existen bibliotecas de ficheros *.m que se venden (toolkits) o se distribuyen
gratuitamente (a travs de Internet). Las funciones definidas en ficheros *.m se
caracterizan porque la primera lnea (que no sea un comentario) comienza por la
palabra function, seguida por los valores de retorno (entre corchetes [ ] y separados
por comas, si hay ms de uno), el signo igual (=) y el nombre de la funcin, seguido de
los argumentos (entre parntesis y separados por comas).
Recurdese que un fichero *.m puede llamar a otros ficheros *.m, e incluso
puede llamarse a s mismo de forma recursiva. Los ficheros de comandos se pueden
llamar tambin desde funciones, en cuyo caso las variables que se crean pertenecen a
espacio de trabajo de la funcin. El espacio de trabajo de una funcin es independiente
del espacio de trabajo base y del espacio de trabajo de las dems funciones. Esto
implica por ejemplo que no puede haber colisiones entre nombres de variables: aunque
varias funciones tengan una variable llamada A, en realidad se trata de variables
completamente distintas (a no ser que A haya sido declarada como variable global).
A continuacin se ver con un poco ms de detalle ambos tipos de ficheros *.m.
4.3.1 Ficheros de comandos (scripts)
14
Donde name es el nombre de la funcin. Entre corchetes y separados por comas van
los valores de retorno (siempre que haya ms de uno), y entre parntesis tambin
separados por comas los argumentos. Puede haber funciones sin valor de retorno y
tambin sin argumentos. Recurdese que los argumentos son los datos de la funcin
y los valores de retorno sus resultados. Si no hay valores de retorno se omiten los
corchetes y el signo igual (=); si slo hay un valor de retorno no hace falta poner
corchetes. Tampoco hace falta poner parntesis si no hay argumentos.
Una diferencia importante con C/C++/Java es que en MATLAB una funcin no
modifica nunca los argumentos que recibe. Los resultados de una funcin de MATLAB
se obtienen siempre a travs de los valores de retorno, que pueden ser mltiples y
15
16
Tambin las funciones creadas por el usuario pueden tener su help, anlogo al
que tienen las propias funciones de MATLAB. Esto se consigue de la siguiente forma:
las primeras lneas de comentarios de cada fichero de funcin son muy importantes,
pues permiten construir un help sobre esa funcin. En otras palabras, cuando se teclea
en la ventana de comandos de MATLAB:
>>helpmi_func
el programa responde escribiendo las primeras lneas del fichero mi_func.m que
comienzan por el carcter (%), es decir, que son comentarios.
De estas lneas, tiene una importancia particular la primera lnea de
comentarios (llamada en ocasiones lnea H1). En ella hay que intentar poner la
informacin ms relevante sobre esa funcin.
La razn es que existe una funcin, llamada lookfor que busca una
determinada palabra en cada primera lnea de comentario de todas las funciones *.m.
4.4 Ejemplo:
Para ilustrar los procedimientos de programacin, consideremos el siguiente
ejemplo de un programa que calcula la raz (o cero) de una funcin f(x), por el mtodo
de biseccin, cuyo algoritmo general es:
Lea f, a, b, M, e
u f(a)
v f(b)
c (a+b)/2
si signo(u) = signo(v) pare, si no
xnew c
iter iter +1
mientras xnew-xold< e
w f(c)
si signo(w) signo(u) entonces
bc
vw
else
ac
17
uw
xold xnew
iter iter +1
si iter M
imprima se ha excedido el nmero mximo de iteraciones
termine
termine
4.4.1 En forma de scripts:
f=input('ingrese la funcion, entre apostrofos: ');
x=input('ingrese el intervalo en que se encuentra la raiz, en la forma [a b]: ');
toler=input('ingrese la tolerancia deseada: ');
mx = input(ingrese el nmero mximo de iteraciones permitido: );
f=inline(f);
a=x(1);
b=x(2);
if sign(feval(f,a)*feval(f,b))~= -1
fprintf('no se cumplen las condiciones del terorema del valor intermedio \n')
fprintf('y no se puede usar el metodo de biseccion \n')
else
xnew=(a+b)/2;
xold=b;
iter = 1;
while abs(xnew - xold)>toler
fa=feval(f,a);
fb=feval(f,b);
18
fx=feval(f,xnew);
if sign(fx)==sign(fb)
b=xnew;
else
a=xnew;
end
xold=xnew;
xnew=(a+b)/2;
iter = iter + 1;
if iter >=mx
fprintf(se ha excedido el nmero mximo de iteraciones)
return
end
end
fprintf('la raiz buscada es x = %2.10f ', xnew)
fprintf('\nel valor de f, en la raiz encontrada es f(x)= %2.10f', feval(f,xnew))
end
En este caso, debemos usar instrucciones input, para pedirle al usuario que
ingrese los datos necesarios: La funcin (f) a la que se le desea encontrar la raz, y el
intervalo [a b] donde se sabe que debe estar la raz.
Si guardamos este programa con el nombre biseccion.m, se puede ejecutar
desde la ventana de comandos, simplemente digitando:
>> biseccion
19
>> raiz =
0.0000
fraiz =
0.0000
20
21
22
A=
123
456
789
A partir de este momento la matriz A est disponible para hacer cualquier tipo
de operacin con ella (adems de valores numricos, en la definicin de una matriz o
vector se pueden utilizar expresiones y funciones matemticas). Por ejemplo, una
sencilla operacin con A es hallar su matriz traspuesta. En MATLAB el apstrofo (') es
el smbolo de trasposicin matricial. Para calcular A (traspuesta de A) basta teclear lo
siguiente (se aade a continuacin la respuesta del programa):
A'
ans=
147
258
369
Ahora ya estn definidas las matrices A y B, y es posible seguir operando con ellas.
Por
ejemplo, se puede hacer el producto B*A (deber resultar una matriz simtrica):
B*A
ans =
23
66 78 90
78 93 108
90 108 126
En MATLAB se accede a los elementos de un vector poniendo el ndice entre
parntesis (por ejemplo x(3) x(i)). Los elementos de las matrices se acceden
poniendo los dos ndices entre parntesis, separados por una coma (por ejemplo
A(1,2) A(i,j)). Las matrices se almacenan por columnas (aunque se introduzcan
por filas, como se ha dicho antes), y teniendo en cuenta esto puede accederse a
cualquier elemento de una matriz con un slo subndice. Por ejemplo, si A es una
matriz (3x3) se obtiene el mismo valor escribiendo A(1,2) que escribiendo A(4).
Invertir una matriz es casi tan fcil como trasponerla. A continuacin se va a
definir una nueva matriz A -no singular- en la forma:
A=[1 4 -3; 2 1 5; -2 5 3]
A=
1 4 -3
215
-2 5 3
Ahora se va a calcular la inversa de A y el resultado se asignar a B. Para ello
basta hacer uso de la funcin inv( )
B=inv(A)
B=
0.1803 0.2213 -0.1885
0.1311 0.0246 0.0902
-0.0984 0.1066 0.0574
Para comprobar que este resultado es correcto basta pre-multiplicar A por B;
24
B*A
ans =
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000
0.0 0.0000 1.0000
De forma anloga a las matrices, es posible definir un vector fila x en la forma
siguiente (si los tres nmeros estn separados por blancos o comas, el resultado ser
un vector fila):
x=[10 20 30] % vector fila
x=
10 20 30
MATLAB considera comentarios todo lo que va desde el carcter tanto por
ciento (%) hasta el final de la lnea. Por el contrario, si los nmeros estn separados
por intros o puntos y coma (;) se obtendr un vector columna:
y=[11; 12; 13] %vectorcolumna
y=
11
12
13
25
Matrixdimensionsmustagree.
MATLAB puede operar con matrices por medio de operadores y por medio de
funciones. Se han visto ya los operadores suma (+), producto (*) y transpuesta ('), as
como la funcin invertir inv( ).
Los operadores matriciales de MATLAB son los siguientes:
+ adicin o suma
sustraccin o resta
* multiplicacin
' traspuesta
^ potenciacin
\ divisin-izquierda
/ divisin-derecha
.* producto elemento a elemento
./ y .\ divisin elemento a elemento
.^ elevar a una potencia elemento a elemento
Estos operadores se aplican tambin a las variables o valores escalares,
aunque con algunas diferencias. Todos estos operadores son coherentes con las
correspondientes operaciones matriciales: no se puede por ejemplo sumar matrices
que no sean del mismo tamao. Si los operadores no se usan de modo correcto se
obtiene un mensaje de error.
26
ans =
24
68
A-4
ans =
-3 -2
-1 0
Existen en MATLAB varias funciones orientadas a definir con gran facilidad
matrices de tipos particulares. Algunas de estas funciones son las siguientes:
eye(4) forma la matriz unidad de tamao (4x4)
zeros(3,5) forma una matriz de ceros de tamao (3x5)
zeros(4) dem de tamao (4x4)
ones(3) forma una matriz de unos de tamao (3x3)
ones(2,4) idem de tamao (2x4)
linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2
27
rand(3) forma una matriz de nmeros aleatorios entre 0 y 1, con distribucin uniforme,
de tamao (3x3)
magic(4) crea una matriz (4x4) con los nmeros 1, 2, ... 4*4, con la propiedad de que
todas las filas y columnas suman lo mismo.
MATLAB ofrece tambin la posibilidad de crear una matriz a partir de matrices
previas ya definidas, por varios posibles caminos:
recibiendo alguna de sus propiedades (como por ejemplo el tamao),
por composicin de varias submatrices ms pequeas,
modificndola de alguna forma.
A continuacin se describen algunas de las funciones que crean una nueva
matriz a partir de otra o de otras, comenzando por dos funciones auxiliares:
[m,n]=size(A) devuelve el nmero de filas y de columnas de la matriz A. Si la matriz es
cuadrada basta recoger el primer valor de retorno
n=length(x) calcula el nmero de elementos de un vector x
zeros(size(A)) forma una matriz de ceros del mismo tamao que una matriz A
previamente creada
ones(size(A)) dem con unos
A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos
de un vector ya existente x
x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya
existente A
diag(diag(A)) crea una matriz diagonal a partir de la diagonal de la matriz A
triu(A) forma una matriz triangular superior a partir de una matriz A (no tiene por qu
ser cuadrada)
tril(A) dem con una matriz triangular inferior
28
En cierta forma se podra decir que el operador (:) representa un rango: en este
caso, los nmeros enteros entre el 1 y el 10. Por defecto el incremento es 1, pero este
operador puede tambin utilizarse con otros valores enteros y reales, positivos o
negativos. En este caso el incremento va entre el valor inferior y el superior, en las
formas que se muestran a continuacin:
x=1:2:10
29
x=
13579
x=1:1.5:10
x=
1.00002.50004.00005.50007.00008.500010.0000
x=10:-1:1
x=
10987654321
Puede verse que, por defecto, este operador produce vectores fila. Si se desea
obtener un vector columna basta trasponer el resultado. El siguiente ejemplo genera
una tabla de funciones seno y coseno. Ejectese y obsrvese el resultado (recurdese
que con (;) despus de un comando el resultado no aparece en pantalla).
x=[0.0:pi/50:2*pi]';
y=sin(x); z=cos(x);
[x y z]
A=
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30
30 5 34 12 14 16
4 36 29 13 18 11
Recurdese que MATLAB accede a los elementos de una matriz por medio de
los ndices de fila y de columna encerrados entre parntesis y separados por una
coma. Por ejemplo:
A(2,3)
ans =
7
El siguiente comando extrae los 4 primeros elementos de la 6 fila:
A(6, 1:4)
ans =
4 36 29 13
Los dos puntos aislados representan "todos los elementos". Por ejemplo, el
siguiente comando extrae todos los elementos de la 3 fila:
A(3, :)
ans =
31 9 2 22 27 20
Para acceder a la ltima fila o columna puede utilizarse la palabra end, en lugar
del nmero correspondiente. Por ejemplo, para extraer la sexta fila (la ltima) de la
matriz:
A(end, :)
ans =
4 36 29 13 18 11
El siguiente comando extrae todos los elementos de las filas 3, 4 y 5:
31
A(3:5,:)
ans =
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
Se pueden extraer conjuntos disjuntos de filas utilizando corchetes [ ]. Por
ejemplo, el siguiente comando extrae las filas 1, 2 y 5:
A([1 2 5],:)
ans =
35 1 6 26 19 24
3 32 7 21 23 25
30 5 34 12 14 16
En los ejemplos anteriores se han extrado filas y no columnas por motivos del
espacio ocupado por el resultado en la hoja de papel. Es evidente que todo lo que se
dice para filas vale para columnas y viceversa: basta cambiar el orden de los ndices.
El operador dos puntos (:) puede utilizarse en ambos lados del operador (=). Por
ejemplo, a continuacin se va a definir una matriz identidad B de tamao 6x6 y se van
a reemplazar filas de B por filas de A. Obsrvese que la siguiente secuencia de
comandos sustituye las filas 2, 4 y 5 de B por las filas 1, 2 y 3 de A,
B=eye(size(A));
B([2 4 5],:)=A(1:3,:)
B=
100000
35 1 6 26 19 24
32
001000
3 32 7 21 23 25
31 9 2 22 27 20
000001
Se pueden realizar operaciones an ms complicadas, tales como la siguiente:
B=eye(size(A));
B(1:2,:)=[0 1; 1 0]*B(1:2,:)
Como nuevo ejemplo, se va a ver la forma de invertir el orden de los elementos de un
vector:
x=rand(1,5)
x=
0.9103 0.7622 0.2625 0.0475 0.7361
x=x(5:-1:1)
x=
0.7361 0.0475 0.2625 0.7622 0.9103
Obsrvese que por haber utilizado parntesis en vez de corchetes los valores
generados por el operador (:) afectan a los ndices del vector y no al valor de sus
elementos.
Para invertir el orden de las columnas de una matriz se puede hacer lo siguiente:
A=magic(3)
A=
816
357
33
492
A(:,3:-1:1)
ans =
618
753
294
aunque hubiera sido ms fcil utilizar la funcin fliplr(A), que es especfica para ello.
Finalmente, hay que decir que A(:) representa un vector columna con las
columnas de A una detrs de otra.
6.2 EJEMPLO
Para nuestro estudio de solucin de sistemas de ecuaciones utilizando mtodos
iterativos (Jacobi, Gauss-Seidel y SOR) tendremos en cuenta las siguientes funciones
internas de MATLAB
Normas de matrices:
norm(A) norma sub-2, es decir, mximo valor singular de A, max(svd(A)).
norm(A,2) lo mismo que norm(A)
norm(A,1) norma sub-1 de A, mxima suma de valores absolutos por columnas, es
decir:
max(sum(abs((A))))
norm(A,inf) norma sub-_de A, mxima suma de valores absolutos por filas, es decir:
max(sum(abs((A))))
Normas de vectores:
norm(x,p) norma sub-p, es decir sum(abs(x)^p)^(1/p).
34
donde 0
i i
iteracin como
xnew(i) = (b(i) A(i,[1: i 1,i +1: n]) * xold(i,[1: i 1,i +1: n]))/ A(i,i).
El algoritmo para el mtodo de Jacobi requiere como datos de partida la matriz
de coeficiente A, el vector de trminos independientes b, un vector inicial xold, una
35
tolerancia tol (para medir las distancias entre las aproximaciones) y un nmero mximo
de iteraciones nmax. Realizamos un ciclo mientras para hallar las aproximaciones
(iteraciones) a la solucin del sistema, en cada paso de la iteracin es necesario
actualizar el valor de xold (iteracin en el paso k) y hallar xnew (iteracin en el paso
k+1), calculamos la distancia entre el valor anterior y el nuevo, si es menor que tol
salimos del ciclo mientras sino continuamos, cuando el nmero de iteraciones supera a
nmax salimos del ciclo mientras.
Algoritmo de Jacobi
Lea A, b, xold, tol, nmax
dist = tol+1
cont = 1
Mientras dist>tol y cont nmax
Para i = 1 hasta n
fin
dist = xnew xold
cont=cont+1
xold=xnew
fin
si dist tol
imprima la aproximacin a la solucin del sistema es
muestre xold
muestre cont
si no
imprima se excede el nmero de iteraciones, la aproximacin es
muestre xold
36
fin
El correspondiente cdigo en MATLAB es (utilizando funciones)
function jacobi(A,b,xold,tol,nmax)
if det(A)==0
disp('el sistema no tiene solucin unica')
return
end
dist=tol+1;
cont=1;
n=length(b);
xnew=zeros(n,1);
while cont<=nmax & dist>tol
for i=1:n
xnew(i)=(b(i)-A(i,[1:i-1,i+1:n])*
xold([1:i-1,i+1:n]))/A(i,i);
end
dist=norm(xnew-xold,2);
cont=cont+1;
xold=xnew;
end
if error <= tol
disp('la aproximacin a la solucin del sistema es ')
disp(xold)
disp(cont)
else
disp('se exceden el numero de iteraciones, la
aproximacin a la solucin del sistema es ')
disp(xold)
end
Para este algoritmo y cdigo no hay forma de analizar convergencia del
mtodo. Si analizamos el mtodo de Jacobi desde el punto de vista matricial podemos
construir la matriz de iteracin dentro del algoritmo (y cdigo) y si la matriz de iteracin
tiene radio
espectral menor que uno que realice las iteraciones, en caso contrario que muestre un
mensaje en el que diga que el mtodo diverge. Recordemos que la iteracin en los
mtodos iterativos de Jacobi, Gauss Seidel y SOR estn dados por:
x(k+1) = (I M 1A)x(k ) + M 1b ,
para Jacobi M = diagonal(A) con la condicin de que 0 ,
ii
a para todo i.
37
M=diag(diag(A))
Y el algoritmo para jacobi ser
Algoritmo de Jacobi
Lea A, b, xold, tol, nmax
para i=1 hasta n
si ai,i=0
Muestre no se puede calcular M-1 , termine
fin
fin
M=diagonal(A)
Bj=I-M-1A
bj=M-1b
si max(abs(eig(Bj)))1
muestre el mtodo de Jacobi no converge , termine
fin
dist = tol+1
cont = 1
Mientras dist>tol y cont nmax
xnew=Bj*xold+bj
dist = xnew xold
cont=cont+1
xold=xnew
fin
si dist tol
imprima la aproximacin a la solucin del sistema es
muestre xold
muestre cont
si no
imprima se excede el nmero de iteraciones, la aproximacin es
muestre xold
fin
El
correspondiente
codigo
en
MATLAB
es
jacobim(A,b,xold,tol,nmax)
if det(A)==0
disp('el sistema no tiene solucin unica')
(utilizando
funciones)
function
38
return
end
n=length(b);
for i=1:n
if A(i,i)==0
disp('no se puede calcular la inversa de M')
return
end
end
M=diag(diag(A));
Bj=eye(n)-inv(M)*A;
bj=inv(M)*b;
if max(abs(eig(Bj)))>=1
disp('el mtodo de Jacobi no converge')
return
end
error=tol+1;
cont=1;
while cont<=nmax & error>tol
xnew=Bj*xold+bj;
error=norm(x0-x1);
cont=cont+1;
xold=xnew;
end
if error <= tol
disp('la aproximacin a la solucin del sistema es ')
disp(xold)
disp(cont)
else
disp('se exceden el numero de iteraciones, la
aproximacin a la solucin del sistema es ')
disp(xold)
end
7. Graficacin En MATLAB:
Otra de las caractersticas importantes de MATLAB, que lo hacen ms til que otros
lenguajes de programacin, es su capacidad de graficar en dos y tres dimensiones. A
estas alturas, despus de ver cmo funciona este programa, a nadie le puede resultar
extrao que los grficos 2-D y 3-D de MATLAB estn fundamentalmente orientados a
la representacin grfica de vectores (y matrices). En el caso ms sencillo los
argumentos bsicos de la funcin plot van a ser vectores. Cuando una matriz aparezca
39
40
Ahora se ver cmo se representa una funcin de dos variables. Para ello se va
a definir una funcin de este tipo en un fichero llamado test3d.m. La frmula ser la
siguiente:
41
>>figure(gcf),mesh(Z)
>>subplot(2,2,3)
>>figure(gcf),surf(Z)
>>subplot(2,2,4)
>>figure(gcf),contour3(Z,16)
42
son las llamadas GUI (Guide User Interface) y podemos acceder a ellas digitando la
instruccin guide en la ventana de comandos. Encontraremos 12 herramientas
(muchas menos de las 32 con las que cuenta Visual Basic) con las que podemos crear
nuestra interfaz: Push Button, Toggle Button, Radio Button, CheckBox, Edit Text, Static
Text, Slider, Frame, ListBox, Popup Menu, Axes. As mismo, encontraremos un
formulario en blanco sobre el cual podemos empezar a construir el nuestro.
Todas las anteriores tienen su equivalente en Visual Basic (Edit Text = Textbox,
StaticText = Label, etc), sin embargo, MATLAB posee una herramienta que permite
desarrollar grficos en nuestra interfaz: Axes. Esta ltima no tiene equivalente en
Visual Basic.
En general, programar una interfaz grfica de MATLAB es un poco ms
complicado que programarla en Visual Basic, sin embargo, la mejor forma de
aprenderlo es practicando. Para ello se puede usar el Help, que en sus ltimas
versiones tiene guas paso a paso para crear GUIs.
43
INDICE DE FIGURAS
Figura 1: La interaccin de las fuerzas magnticas causa la rotacin del motor.............9
Figura 2: El flujo de la corriente elctrica crea un electroimn......................................10
Figura 3: Imn actuando como un electroimn que gira hacia la derecha....................11
Figura 4: Voltaje inducido en una bobina......................................................................13
Figura 5: Empleo de una polea para deslizar un objeto................................................14
Figura 6: Partes principales del rotor (armadura) de un motor c.c................................15
Figura 7: Funcionamiento del colector..........................................................................17
Figura 8: Los polos norte y sur oscilan alrededor de una posicin fija..........................18
Figura 9: Rotacin resultante de la interaccin de los campos magnticos del estator y
del rotor......................................................................................................................... 19
Figura 10: Circuito equivalente de un motor c.c. de excitacin separada.....................20
Figura 11: Circuito equivalente de un motor shunt........................................................20
Figura 12: Curva torque-velocidad de un motor shunt..................................................22
Figura 13: Curva torque-velocidad de un motor de excitacin separada......................23
Figura 14: La rotacin de una bobina en un campo magntico produce un voltaje
inducido........................................................................................................................ 25
Figura 15: Generador con excitacin independiente.....................................................26
Figura 16: Caracterstica Vl versus Il en un generador con excitacin separada..........30
Figura 17: Partes constitutivas de la mquina de corriente continua............................31
Figura 18: Convencin mquina (a) generador, (b) Motor............................................32
Figura 19 Cambio en la distribucin del flujo magntico en el entrehierro....................37
Figura 20: Cambio de la lnea neutra............................................................................38
Figura 21: Interpolos.....................................................................................................39
Figura 22: Ensayos para determinar resistencias de campo y armadura......................41
Figura 23 Mtodo para determinar la curva de vacio....................................................42
Figura 24: Grafica de la curva de magnetizacin real en la maquina............................43
Figura 25: Caracterstica externa del generador..........................................................44
Figura 26: Modelo equivalente del circuito de la mquina de corriente continua..........47
Figura 27: Ventanas de trabajo de matlab....................................................................49
44
45
INDICE DE ECUACIONES