Você está na página 1de 131

SEDE TEMUCO

ANLISIS Y SIMULACIN DE MQUINAS DE CORRIENTE


CONTINUA MEDIANTE EL USO DE SOFTWARE DE
SIMULACIN

Trabajo de seminario presentado por:

JAVIER EDUARDO ARGELLO ULLOA

Como requisito para optar al ttulo de:

Ingeniera En Electricidad Mencin Potencia


Profesores Gua
Sra. Norma Donoso
Sr. Nelson Aros
Enero de 2011

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

2.5 LA MQUINA C.C. EN REGIMEN DINMICO....................................................33


2.6 ENSAYOS A MQUINAS C.C.............................................................................37
2.6.1 Determinacin del neutro magntico de la mquina.....................................37
2.6.2 Clculo de las resistencias de campo y armadura.......................................43
2.6.3 Obtencin de la curva de magnetizacin......................................................43
2.6.4 Determinacin de la caracterstica de carga.................................................45
2.6.5 Determinacin de la caracterstica externa...................................................45
2.6.6 Determinacin de la caracterstica de regulacin........................................46
2.6.7 Medicin de la inductancia............................................................................46
2.7

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

4.1.1 Discusin de datos.......................................................................................80


4.1.2 Conclusiones................................................................................................83
4.2 Bibliografa.......................................................................................................... 85
ANEXO............................................................................................................................ i

Manual Prctico de Matlab...............................................................................................i

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

Antiguamente lograr representar y determinar los parmetros representativos


del comportamiento general de cualquier mquina resultaba engorroso, y se
necesitaban muchas horas de estudio por parte de los estudiantes, para lograr
entender el comportamiento de los procesos de conversin de energa producido
dentro de las mquinas.
Gracias al avance tecnolgico de los ltimos tiempos, es posible contar con
diversas formas que ayudan a entender y representar de mejor forma procesos fsicos
y mecnicos que se producen e interactan dentro de una mquina elctrica.
El desarrollo de programas de simulacin es un perfecto ejemplo de estos
avances, puesto que permiten representar el comportamiento de mquinas elctricas
sometidas a diferentes anlisis sin tener que contar con muchas de estas fsicamente.
Y permiten complementar los estudios realizados en laboratorios de mquinas
elctricas.
Cada mquina tiene parmetros propios que la representa, por lo que
determinarlos de forma fidedigna es fundamental para lograr una buena representacin
de ella. Es por ello que cada simulacin a realizar debe contar con una etapa previa en
la cual se puedan obtener los parmetros y comportamientos reales. Descritos tanto
por anlisis matemticos como por ensayos de la mquina real.

1.2 ANTECEDENTES GENERALES

Esta memoria proporciona antecedentes y medios para determinar la respuesta


dinmica tanto transitoria como de rgimen permanente o constante de la mquina de
corriente continua, realizada en un programa de simulacin automatizada denominado
Simulink de Matlab. El estudio general incluye entre otros:

Determinacin de parmetros de la Mquina C.C. real.


Anlisis matemticos representativos de esta.
Comportamiento como motor.
Comportamiento como generador.
Modelo simulado de cada uno de los procesos anteriores.

Mediante el simulado de esta mquina se pretende lograr un modelo adecuado,


que permita al lector entender de manera ms clara y precisa del comportamiento de la
mquina frente a diferentes situaciones.
Finalmente este estudio de tesis pretende ser el precursor de una serie de
memorias a cerca de las dems mquinas elctricas existentes, al igual que de sus
sistemas de control.

1.3 PLANTEAMIENTO DEL PROBLEMA

Mediante el transcurso de nuestra carrera, pudimos observar que es muy difcil


para cualquier casa de estudio, contar con todos los equipos e instrumentos necesarios
para que el alumno pueda llegar a familiarizarse con las mquinas elctricas; y en el
caso que as fuese, resultara casi imposible realizar todas las pruebas posibles. Por lo
que el anlisis de dichas mquinas puede complementarse mediante software de
simulacin. Es en este punto donde dichos programas computacionales adquieren
importancia, tanto por su gran capacidad de procesamiento de datos, como por la
similitud a la que puede llegar.

1.4 OBJETIVOS

Para poder determinar los objetivos de forma un tanto ms clara, es necesario


situarse en dos perspectivas diferentes, una apunta a objetivos globales y otra a hace
referencia a objetivos de tipo especficos.
Esta tesis desde el punto de vista global o general pretende entre otras cosas:

Colocar a disposicin de la institucin documentacin impresa que trate


sobre el uso de

softwares de simulacin

y sus aplicaciones en el

mundo de la electricidad industrial y de potencia.


Marcar un precedente sobre el uso de sistemas de simulacin en
nuestra institucin.

Ahora desde una perspectiva un poco ms especfica podemos destacar los


siguientes:

Conocer y familiarizarse con software de simulacin.


Determinar parmetros de la mquina c.c.
Hacer un simulador de la mquina c.c.
Comparar el comportamiento del simulador con la mquina real.

1.5 LIMITACIONES DEL MODELO DE SIMULACIN

Es importante destacar que este modelo considera algunos parmetros de la


mquina como constantes como puede ser el caso de: velocidad, torque, etc. Debido a
que no es necesario considerar el comportamiento real de estos parmetros para este
efecto. Sin embargo cuando sea necesario considerar alguno de estos como variables
se especificar para que el lector tenga eso presente.

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.

2.2 FUNDAMENTOS DE LAS MQUINAS ROTATORIAS

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.

Figura 1: La interaccin de las fuerzas magnticas causa la rotacin del motor.

2.2.1 Principio del electroimn giratorio

La figura 2(a) muestra cmo se puede obtener el imn A de la figura 1(b), al


hacer circular una corriente elctrica en una bobina de alambre enrollada alrededor de
un ncleo de hierro. En otras palabras, el imn A es ahora un electroimn. En los
extremos de la bobina se conectan una fuente de alimentacin c.c. para hacer circular
una corriente en la bobina y crear los polos magnticos norte y sur.
Al igual que cuando se emplean dos imanes, si se hace rotar manualmente el
electroimn, el imn B tambin rotar. A primera vista, este sistema no parece
ventajoso porque un primer objeto (el electroimn) se debe girar para provocar la
rotacin de un segundo objeto (imn B), adems, para evitar el trenzado de los

10

conductores de interconectan la fuente de alimentacin c.c. con el electroimn, es


necesario hacer girar la misma fuente cuando el electroimn gira, lo cual no es muy
conveniente.

11

Sin embargo, si se invierte la polaridad de la fuente de alimentacin c.c. como lo


muestra la figura 2(b), los dos polos norte y sur del electroimn se intercambiarn y el
imn B girar una media vuelta. Por lo tanto, esta disposicin permite rotar el imn B
sin tener que hacer girar el electroimn, aunque el sentido de rotacin resulta incierto.
Mediante la combinacin de dos electroimanes y dos fuentes de alimentacin c.c. y
cambiando el voltaje y las polaridades de dichas fuentes, es posible hacer girar el imn
B en un sentido dado sin tener que mover ninguno de los otros objetos. La figura 3
muestra cmo se puede modificar el electroimn de la figura 2 para llevar a cabo este
objetivo. Cuando las corrientes en los dos electroimanes (I1 e I2) son las que muestra
la figura 3, los polos magnticos cambian de polaridad en forma sucesiva y en los
instantes apropiados. De este modo, la rotacin tiene lugar hacia la derecha debido al
proceso de atraccin y repulsin que se repite. Por lo tanto, la conmutacin de una
corriente resulta ser equivalente a un imn giratorio. EL PRINCIPIO DEL
FUNCIONAMIENTO DE TODOS LOS MOTORES SE BASA EN LA CREACIN DEL

12

Figura 2: El flujo de la corriente elctrica crea un electroimn

QUIVALENTE ELECTRICO DE UN IMN GIRATORIO PARA EVITAR LA ROTACIN


MANUAL.

13

Figura 3: Imn actuando como un electroimn que gira hacia la derecha

2.2.2 Principio del generador

El principio de funcionamiento de los generadores y alternadores se basa en la


ley de la induccin electromagntica de Faraday, que establece lo siguiente:
Si el flujo magntico que enlaza un conductor cerrado vara en funcin del
tiempo, se inducir un voltaje entre los terminales de dicho conductor.

14

El valor del voltaje inducido es proporcional a la velocidad de variacin del flujo


magntico.

El voltaje inducido viene dado por la ecuacin de ms abajo y la figura 4 ilustra


el principio del flujo magntico que vara en el interior de una bobina de N espiras.

E=

N
t

Donde:
E es el voltaje inducido, en voltios
N es el nmero de espiras del alambre de la bobina

Es el cambio del flujo en el interior de la bobina, en Webers


t

Es el intervalo en el cual el flujo cambia, en segundos

15

Figura 4: Voltaje inducido en una bobina

Si se gira manualmente el imn mvil de las figura 3, sus lneas de fuerza


magnticas inducirn un voltaje en las bobinas de los electroimanes. Por lo general,
estas bobinas se llaman bobinas del estator, debido a que permanecen fijas. Cuando
sus extremos estn cortocircuitados, lo anterior causara la circulacin de una corriente
en dichas bobinas, crendose de esta manera otro campo magntico. La interaccin
entre los campos magnticos de las bobinas del estator y el imn mvil provocar una
fuerza que se opone a la rotacin de dicho imn.
Este principio lo emplea el dinammetro para crear el par de frenado.

2.2.3 Trabajo, par y potencia

Se realiza un trabajo mecnico W cada vez que la fuerza F desplaza un objeto


una distancia d. El trabajo se define por medio de la siguiente ecuacin:

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

Figura 5: Empleo de una polea para deslizar un objeto

Si al final de cada rotacin completa de la polea, el bloque avanzo una distancia


de 2r pulgadas, significa que se efectu un trabajo de de 2rF Joule (lbf-plg). Dado
que el par es igual a F*r, el trabajo que se realizo se puede expresar como 2T Joule
por revolucin.
La potencia P se define como la velocidad para efectuar un trabajo. Cuando W
se expresa en Joule, la potencia est dada por la siguiente ecuacin.

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)

2.3 MOTORES C.C.

17

Como se ha indicado anteriormente los motores giran a causa de la interaccin


entre dos campos magnticos. En esta parte se discutir cmo se producen esos
campos magnticos en los motores c.c. y cmo esos campos magnticos inducen
voltajes en los generadores c.c.
El principio bsico de un motor c.c. es la creacin de un imn giratorio en la
parte interior mvil del mismo, es decir, en el rotor. Esto se lleva a cabo por medio de
un dispositivo que se llama colector, que se encuentra en todas las mquinas c.c. A
partir de una alimentacin c.c., provista por una fuente externa, el colector suministra
las corrientes alternas necesarias para la creacin del imn giratorio. La figura 6 ilustra
el rotor tpico de un motor c.c. con sus partes principales. Esta figura muestra que el
contacto elctrico entre los segmentos del colector y la fuente de c.c. externa se realiza
a travs de las escobillas. Note que el rotor de un motor c.c. tambin se llama
armadura.

Figura 6: Partes principales del rotor (armadura) de un motor c.c.

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.

Figura 7: Funcionamiento del colector.

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.

Como muestra la figura 9, si se coloca el rotor junto a un imn permanente fijo,

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.

Figura 9: Rotacin resultante de la interaccin de los campos magnticos del estator


y del rotor.

21

2.3.1 Motor C.C. con excitacin independiente


Debido a la gran similitud que existe en el comportamiento de los motores shunt
y paralelo, estos sern analizados en conjunto.
En la prctica, los motores shunt son comparativamente ms utilizados debido a
que slo requieren de una fuente para poder operar, lo cual representa una ventaja
respecto de la configuracin de excitacin separada.
Las figuras 10 y 11 muestran los circuitos equivalentes de los motores de
excitacin separada y shunt respectivamente.

Figura 10: Circuito equivalente de un motor c.c. de excitacin separada

22

En las figuras se puede identificar:


Vg = Fuente de alimentacin (motor shunt).
Ig = Corriente de alimentacin (motor shunt).
Vg1 = Fuente de alimentacin de campo (motor excitacin separada).
Figura 11: Circuito equivalente de un motor shunt.

Vg2 = Fuente de alimentacin de armadura (motor excitacin separada).


Ea = Voltaje generado en la armadura.
Ra = Resistencia del enrollado de armadura.
Ia = Corriente de armadura.
Rc = Resistencia del enrollado de campo.
Ic = Corriente por el enrollado de campo.
n = Velocidad del rotor.

23

Rr = Resistencia variable (restato) que normalmente se conecta para controlar la


magnitud de Ic
Adicionalmente se puede incluir un resistencia variable en el circuito de
armadura (Rr) de modo variar la corriente Ia. En ese caso se tendra una resistencia
de armadura equivalente (R=Ra+Rr).
En el caso del motor de excitacin separada las ecuaciones asociadas a los
circuitos de armadura y campo son:
Ecuacin del circuito de campo:

V g 1=( R c + R r )I c

Ecuacin del circuito de armadura:

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

Figura 12: Curva torque-velocidad de un motor shunt.

24

Figura 13: Curva torque-velocidad de un motor de excitacin separada.

Es posible observar de las figuras que las caractersticas torque-velocidad para


ambas mquinas son idnticas considerando que para el caso del motor shunt: Vg1 =
Vg2 = Vg.
La caracterstica en la forma de una recta de pendiente negativa se explica al
considerar (caso de excitacin separada):

25

T =KI cI a

I c=

V g1
R

I a=

V g 2E a V g 2K I c
=
Ra
Ra

Por lo tanto la ecuacin que determina el torque en funcin de las corrientes y la


velocidad es:
Ecuacin 1: Torque elctrico en funcin de corrientes y velocidad

T=

KV g1V g 2 K 2 V g 12
2
r
RaR
R Ra

Conforme a la ecuacin 3, se obtienen los valores de torque en la partida y la


velocidad en la que el torque se anula segn se muestra en los grficos
correspondientes.
Aparte de lo anterior, tambin es importante destacar las regiones de operacin
definidas para el motor (ver figura 12)

Cuando el motor tiene un sentido de torque en contraposicin con el sentido de


giro, entonces la mquina de C.C. se encuentra actuando como freno (en la

prctica esto se consigue cambiando la polaridad del voltaje de armadura).


Por el contrario si los sentidos de torque y velocidad son los mismos, la
mquina est operando como motor.
Si la mquina est operando como motor y se aumenta la velocidad de giro, el

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

2.4 GENERADORES C.C.


Antes, hemos visto que la variacin del flujo magntico en una bobina de
alambre causaba la induccin de un voltaje entre los extremos de dicha bobina. Si se
hace rotar un conductor cerrado entre dos imanes, como lo muestra la figura 14 las
lneas de fuerza magnticas se cortaran y se inducir un voltaje e en el conductor. La
polaridad de este voltaje inducido e depende del sentido de movimiento del conductor
cerrado y de cmo ste corta las lneas de fuerza magnticas. Dado que el conductor
cerrado corta dichas lneas de fuerza en ambos sentido para una vuelta completa, el
voltaje inducido es un voltaje c.a. similar al que muestra la figura 14.

Figura 14: La rotacin de una bobina en un campo magntico produce un voltaje


inducido.

Si se emplea un colector semejante al de la figura 6, el mismo actuar como


rectificador, convirtiendo el voltaje inducido c.a. en un voltaje c.c. con ondulaciones,
como lo muestra la figura 14. En consecuencia se tendr corriente continua a la salida
del generador. Cuanto ms rpido gira el rotor, ms lneas de fuerza se cortarn y ms

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.

2.4.1 Generador C.C. con excitacin independiente

El circuito equivalente es una representacin esquemtica de la mquina de


C.C. que permite analizar su configuracin y desempeo a travs de ecuaciones
simples que se derivan del mismo circuito.

En el caso del generador de excitacin independiente, el circuito equivalente es


el de la figura 15. Es posible apreciar que el circuito de campo es elctricamente
independiente del circuito de armadura y la dependencia de ambos circuitos es
nicamente magntica, a travs del flujo , lo cual constituye la caracterstica distintiva
de este tipo de configuracin.

Figura 15: Generador con excitacin independiente.

En la figura:

28

RL = Resistencia de carga alimentada por el generador.


VL = Voltaje en los terminales de la carga.
IL = Corriente en la carga.
Ea = Voltaje generado en la armadura.
Ra = Resistencia del enrollado de armadura.
Ia = Corriente de armadura.
Va = Voltaje en los terminales de armadura.
Rc = Resistencia del enrollado de campo.
Ic = Corriente por el enrollado de campo.
Vg = Fuente de alimentacin del enrollado de campo.
n = Velocidad del rotor, proporcionada por una mquina motriz externa.
Rr = Resistencia variable (restato) que normalmente se conecta a los terminales
del generador para controlar la magnitud de Ic.
En general Ra << Rc, Rr, pues el enrollado de armadura debe conducir la
corriente elevada de la carga elctrica (Ia >> Ic).
De la figura es posible deducir:

Va=Vl

Ia=Il
Ecuacin del circuito de campo:

Vg=( Rc+ Rr )Ic

29

Ecuacin del circuito de armadura:

Ea=Va+ RaIa
Va=RlIl

Ecuacin que relaciona las variables elctricas y magnticas:

e ind =VBL

Ea=

N a vBL
a
N a es el nmero total de conductores de la armadura

Donde:

a es el nmero de caminos de corriente


v se puede expresar como v=r(radio del rotor)

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

Por lo que el flujo es igual a:

=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

El generador de C.C., considerado como una fuente de tensin continua,


debiera, en el caso ideal, entregar en bornes de la armadura un voltaje continuo Va de
magnitud independiente de la carga que est alimentando. Sin embargo, en la prctica
existen cadas internas de voltaje que hacen disminuir Va a medida que la corriente
solicitada por la carga, aumenta. De este modo, la curva voltaje-corriente en la carga
VL v/s IL (para n e Ic constantes) es una de las curvas que determinan el
desempeo de los generadores de C.C.
Con el modelo considerado hasta ahora para el generador de excitacin
independiente, esta caracterstica se calcula de la ecuacin del circuito de armadura
del generador

V a=V l =Ea R aI a
Siendo: Ea, n e Ic constantes.

De la ecuacin anterior se deduce que la caracterstica de carga es una recta

de pendiente negativa pequea, puesto que en general Ra es de valor bajo

)
102

] en motores de potencias medias). En la prctica existen otras cadas internas de


voltaje aparte de Ra*Ia, que pueden ser importantes tales como la cada de voltaje en
escobillas y la cada de voltaje por reaccin de armadura.

32

En la figura 16 se muestra la caracterstica VL v/s IL del generador de excitacin


separada, donde u representa la cada de voltaje por concepto de prdidas en el
cobre (Ra Ia) y v son las prdidas debido a otros efectos como los mencionados
anteriormente.

Figura 16: Caracterstica Vl versus Il en un generador con excitacin separada.

2.5 LA MQUINA C.C. EN REGIMEN DINMICO


En la figura 17 tenemos la representacin esquemtica de una mquina de
C.C. con las siguientes caractersticas:
1. El estator es del tipo de polos salientes, sobre los cuales est ubicado el
campo en forma de devanado concentrado. (Pueden haber varios campos).
2. El devanado de armadura es de tipo rotor liso.
3. Las escobillas fijan el eje magntico del rotor en la zona neutra geomtrica.
4. El circuito magntico es lineal, de manera que no hay acoplamiento magntico
entre el estator y el rotor.

33

Figura 17: Partes constitutivas de la mquina de corriente continua

En la representacin se ha suprimido el conmutador, suponiendo que las


escobillas rozan directamente sobre los conductores.
Si representamos las resistencias e inductancias de los devanados mediante el
esquema de la figura 18 (a y b).
Antes de plantear las ecuaciones de movimiento tenemos que adoptar signos
de referencia. Las dos posibilidades son: Convencin generador y Convencin motor.

Figura 18: Convencin mquina (a) generador, (b) Motor

34

Las escobillas determinan los terminales de un devanado pseudo-estacionario


cuyos conductores son renovados constantemente por efecto de la rotacin. Para la
tencin rotacional tenemos.

Ea=

Na P

2 a

Si consideramos una relacin lineal entre el flujo y la corriente, tenemos que:

=dN f I f

Siendo:

d=

1
reluctancia

35

Con lo que podemos anotar para el valor instantneo de la tensin rotacional:

Ea=

N a N f Pd
I f
2 a

Definimos la inductancia rotacional entre el campo y la armadura como:

Gfq =f dqN qN f d

Donde

f dq=
2

es el factor de devanado de la armadura y

p
N a
2
N q=
2

en

consecuencia:

E=G fqI f

Con las polaridades indicadas en la figura 18 (b) podemos aplicar la ley de


Kirchhoff al circuito de la armadura:
Ecuacin 3: Ecuacin del voltaje de armadura

V a=I a Ra + La

d Ia
+G fq I f
dt

Y para el circuito de campo:


Ecuacin 4: Ecuacin del voltaje de campo

V f =I f R f + L f

d If
dt

36

Para el eje mecnico podemos anotar:


Ecuacin 5: Diferencias de torques

T eT m =J

d
+ D
dt

Donde el momento de origen elctrico

T e lo podemos evaluar, por ejemplo, a

partir de la ecuacin de un balance de potencia:

T e=

Pe
=Gfq I f I a

Reemplazando en la ecuacin anterior tenemos:


Ecuacin 6: Torque mecnico

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

Antes de tratar una aplicacin de la teora desarrollada, analizaremos ms


detenidamente la polaridad de referencia para la tencin rotacional. En la figura 18 (b)
una corriente de excitacin positiva implica un flujo positivo dirigido de izquierda a
derecha. Potencia absorbida positiva implica una corriente de armadura positiva y por
ende un flujo de armadura positivo dirigido hacia arriba y hacia abajo. Este flujo tiende
a alinearse con el flujo del campo, produciendo un giro en el sentido positivo de

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

2.6 ENSAYOS A MQUINAS C.C.


A continuacin se presentan algunos ensayos realizados a la mquina de
corriente continua, es necesario destacar que estos ensayos no son los nicos que se
le pueden efectuar a la mquina, sino que son los ptimos para poder determinar los
parmetros necesarios.

2.6.1 Determinacin del neutro magntico de la mquina


De acuerdo con lo estudiado, una corriente circulando por el estator o campo de
una mquina de C.C. produce un flujo magntico que permite la generacin de una
tensin en el inducido Ea cuya magnitud depende del valor de la corriente de campo y
de la velocidad de giro del eje.
Si los bornes del rotor (armadura) son conectados a una carga elctrica, una
corriente circular por la armadura de la mquina (I a) generando un flujo magntico a.
Este flujo de armadura se suma al flujo magntico producido por el campo,
produciendo un efecto denominado reaccin de armadura o reaccin de inducido.
La reaccin de armadura afecta el desempeo de la mquina de C.C. tanto en
el voltaje inducido como en el proceso de conmutacin que ocurre en el colector.
1 Conversin Electromecnica Universidad Tcnica Federico Santa Mara

38

Por una parte, la reaccin de armadura cambia la distribucin del flujo


magntico en el entrehierro, existiendo zonas en que la resultante total de flujo ( Total =
+ a) es de mayor magnitud que la componente de flujo de campo y otras en que la
magnitud es notoriamente menor.
La figura 19 (a) muestra la distribucin del flujo magntico en el entrehierro
cuando la corriente por la armadura es nula. En este caso la forma de la distribucin se
explica por la geometra de las cabezas o caras polares. La figura 19 (b) muestra como
vara la distribucin del flujo magntico por efecto de la reaccin de armadura.
Es importante notar que en aquellas zonas donde las magnitudes de los flujo de
armadura y campo se suman ( Total > ) la resultante total de flujo hace que el ncleo
se sature, aumentando las prdidas en el fierro por concepto de calentamiento,
corrientes parsitas, etc.
Asimismo, existen zonas donde las magnitudes de los flujos de campo y
armadura se restan por lo cual el flujo magntico total es menor que el flujo de campo
( Total < ) y consecuentemente el valor del voltaje inducido disminuye, empeorando la
eficiencia de la mquina.

39

Figura 19 Cambio en la distribucin del flujo magntico en el entrehierro.

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

, resultando as una conmutacin poco ptima lo que se traduce en

Total

un mal funcionamiento y desgaste prematuro del colector.

Figura 20: Cambio de la lnea neutra.

Para poder resolver los inconvenientes producidos por la reaccin de armadura,


se han desarrollados diferentes estrategias:

Antiguamente, se trataba de ajustar fsicamente la posicin de las escobillas de


modo de hacerlas coincidir con la lnea neutra, sin embargo, la lnea neutra se
desplaza con la variacin de carga, lo cual obliga a estar ajustando
constantemente la posicin de las escobillas. Actualmente este sistema solo se

41

utiliza en motores muy pequeos donde se sabe que la carga no vara y donde

otras soluciones son econmicamente inviables.


Para mquinas de ms de 1[kW], se prefiere utilizar los llamados polos de
conmutacin o interpolos. Los interpolos son bobinas conectadas en serie
con la armadura de modo de ser recorridas por Ia y situados a 90 grados
elctricos de las caras polares, de modo de coincidir con el eje del flujo de
armadura. De este modo el flujo producido por los interpolos anula el efecto de
la reaccin de armadura.
La ventaja de usar interpolos radica principalmente en que no es necesario

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.

Figura 21: 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:

En este caso, la estrategia consiste en colocar los llamados enrollados de


compensacin los cuales son enrollados que se encuentran colocados en
ranuras talladas en las cabezas polares (en forma paralela a las bobinas del
rotor) y conectadas en serie con la armadura.
Al estar en las cabezas polares, los enrollados de compensacin
producen un flujo de magnitud mayor al de los interpolos, que permite anular los
efectos de debilitamiento de campo producido por la reaccin de armadura.
Este mtodo, al igual que los interpolos, se adapta automticamente al tipo de
operacin (motor o generador) y a las diferentes condiciones de carga, sin
embargo su uso se encuentra limitado a grandes mquinas de C.C.
principalmente debido al alto costo que suponen los enrollados de
compensacin.
Debido al tipo de motor/generador C.C. con el que se contaba para realizar los

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.

2.6.2 Clculo de las resistencias de campo y armadura


Este es un ejercicio bastante sencillo denominado mtodo voltmetroampermetro figura 22. El cual consiste en alimentar cada bobina de la mquina C.C. a
un voltaje C.C. y medir la corriente que circula por ellas. Se recomienda llevar la
corriente a la corriente nominal de la bobina, medir el voltaje aplicado para esta
corriente y luego mediante la aplicacin de la ley de ohm. Se procede a determinar la
resistencia de cada devanado. En la figura 22 pueden verse los valores obtenidos del
ensayo realizado.2

Figura 22: Ensayos para determinar resistencias de campo y armadura

2 Gua De Ejercicios Para Docentes Lavbolt

44

2.6.3 Obtencin de la curva de magnetizacin

La curva de magnetizacin o Caracterstica de Vacio de la mquina C.C. Es una


relacin entre la f.e.m. generada por el dinamo y la corriente de excitacin, cuando la
mquina funciona en vaco, es decir una carga conectada al inducido.
Para un generador C.C. con excitacin independiente, la corriente inductora o
de campo, se obtiene de una fuente de C.C. externa a la mquina. Es el tipo de
excitacin ms antiguo y hoy se emplea nicamente en casos muy especiales.
Para determinar la curva de magnetizacin o vaco, se hace girar el rotor a una
velocidad contante (1500 rpm), manteniendo desconectada la carga en el inducido.
Mientras que la corriente de excitacin se va aumentando gradualmente desde cero
hasta el valor mximo permitido, registrando simultneamente la f.e.m. generada E,
que se mide con ayuda de un voltmetro. Como muestra la figura 23

Figura 23 Mtodo para determinar la curva de vacio

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.

Figura 24: Grafica de la curva de magnetizacin real en la maquina.

2.6.4 Determinacin de la caracterstica de carga


Representa la relacin entre la tensin terminal y la corriente de excitacin para
una intensidad de carga I constante.

2.6.5 Determinacin de la caracterstica externa


Para poder representar la caracterstica externa

de un generador con

excitacin independiente habr que conectar cargas variables para poder representar

46

la relacin cuando se mantiene constante tanto la corriente de excitacin, como la


velocidad de rotacin del eje. En principio si no se considera la reaccin de inducido, la
.f.e.m. generada E ser constante y la variacin de la tensin en los bornes vendr
expresada por:

V =ERiI iVescobilas

Donde

Ii

es la corriente de la armadura que coincide con la corriente en la carga.

En la siguiente grafica (figura 25) se observa la caracterstica externa para un


generador C.C. cuyas caractersticas se definieron al principio de esta seccin.

Figura 25: Caracterstica externa del generador.

2.6.6 Determinacin de la caracterstica de regulacin

Representa la relacin entre la corriente de excitacin y la corriente de carga


para una tensin en bornes constante.

47

2.6.7 Medicin de la inductancia


Para poder determinar las inductancias tanto mutua como de cada devanado se
realizo a medir ambas mediante el uso de un instrumento llamado LCR METER el cual
permite determinar cualquiera de estos valores es decir de las resistencias, las
inductancias, y las capacitancias. Es importante destacar que a travs de la curva de
magnetizacin es posible encontrar nuestra inductancia mutua. Esto debido a la
ecuacin.

V a=I a Ra + La

d Ia
+G fq I f
dt

Si se estudia la ecuacin anterior se puede ver que a travs de la curva de


magnetizacin es posible determinar la inductancia mutua

Gfq

puesto que este

ensayo se realiza con los terminales de armadura abiertos por lo tanto la corriente

I a=0 y nuestra ecuacin se simplifica solamente a lo siguiente.


V a=G fq I f
Por ltimo si despejamos tenemos:

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

Por lo tanto Gfq(promedio)= 0,83307232 henrios

2.7

MODELADO

FINAL

DE

LA

MAQUINA

C.C.

CON

EXCITACIN INDEPENDIENTE Y SHUNT


La figura 26 muestra como queda compuesto nuestro circuito equivalente
despus de haber realizado todos los ensayos para poder determinar los parmetros
del circuito.

Figura 26: Modelo equivalente del circuito de la mquina de corriente continua.

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.

El programa se inicia desde el botn

Simulink Library Browser de la

ventana de comandos de Matlab o desde la lnea de comando mediante la orden


simulink.
Una vez iniciado el programa el entorno de trabajo queda dividido en tres
partes.
La ventana de comandos de Matlab (Matlab Comand Window) figura 27 desde
la que se puede ejecutar cualquier comando del mismo, dar valores a variables y
controlar la ejecucin de las simulaciones.

51

Figura 27: Ventanas de trabajo de matlab

La ventana de la biblioteca de Simulink (Simulink Library Browser) figura 28


desde la que se seleccionan los componentes que se van a insertar en el sistema a
simular.

Figura 28: Venta de la librera de simulink

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

Figura 29: Ventana de trabajo de simulink

3.2. CONSTRUCCIN DE SIMULACIONES


Cualquier fenmeno fsico, elctrico, qumico, biolgico, etc. que pueda ser
representado a travs de ecuaciones o de un sistema de ecuaciones, es posible
simularlo, es decir una vez que el estudiante determine de manera clara las ecuaciones
que rigen el sistema a simular, estar en condiciones de usar cualquier tipo de
simulador.
Para el anlisis de la mquina de corriente continua (con excitacin
independiente) las ecuaciones que determinan su comportamiento son las que se
obtienen al aplicar un LKV al circuito de la figura 15 a dems de la ecuacin que define
el torque elctrico, es decir solo tres ecuaciones bastan para poder empezar a simular
el comportamiento de la mquina elctrica. Es importante sealar que el uso de una o
ms de estas ecuaciones dependen del parmetro de dicha mquina se quiera simular.
A continuacin se detallan las tres ecuaciones que determinan el comportamiento de la
maquina tanto como generador o como motor.
Circuito de armadura: (ecuacin 3)

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

Torque mecnico: (ecuacin 6)

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:

Qu comportamiento de la mquina de corriente continua pretendo simular?


Para el desarrollo de esta tesis se pens en poder llegar a obtener la
curva de saturacin de la mquina. Esto impone trabajar la mquina como
generador, con los terminales Va abiertos y a velocidad constante.
A partir del planteamiento de esta pregunta se puede observar que
algunas ecuaciones de las antes descritas no sern necesarias, como es el

caso de la ecuacin del torque mecnico.


Identificar las variables de entrada y salida. A partir de las ecuaciones 3 y 4
podemos ver que para obtener la curva de magnetizacin necesitamos como

55

salida un voltaje de armadura que depende de la corriente de campo. Para ella


dejamos las ecuaciones 3 y 4 en funcin de las corrientes tanto de campo como
de armadura (variables de entrada una de la otra). A continuacin se detallan
dichas ecuaciones replanteadas en funcin de sus respectivas corrientes.
t

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

Determinacin de las variables externas o condiciones de entrada estos son:


Velocidad resistencia e inductancia de armadura, resistencia e inductancia de
campo, inductancia de entrehierro y un antecedente ms a destacar que se
necesita obtener o medir el voltaje Va, eso significa que se necesita simular un
Va abierto para ello tomamos I a y le agregamos una resistencia infinita o alta y

en ese punto tenemos Va.


Luego, con los datos obtenidos en el laboratorio ingresamos las variables
externas a nuestras ecuaciones y las reescribimos. La tabla siguiente resume
estos valores.
PARAMETRO
Resistencia de
armadura
Inductancia de
armadura
Resistencia de campo

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

I a (t )Rinf 0.84I f (t )15728I a (t)


( dt )
93

56

I c =
0

220650I c (t)
( dt )
9.55

3.2.1. Parmetros de simulacin y mtodos de integracin


Al momento de comenzar una simulacin es necesario establecer los
parmetros de simulacin como son: el tiempo de simulacin, el tamao de los pasos
de integracin, tolerancia de error cometida en la solucin de ecuaciones, y otros. Para
tener acceso a indicar estos parmetros, se debe seleccionar dentro de la solapa
simulacin la opcin parmetros. Como lo muestra la figura 30

Figura 30: Especificacin de parmetros de simulacin

Posteriormente aparecer una ventana de dilogo como el de la figura 31


donde el usuario ingresar los parmetros deseados.
Dentro de las posibilidades que se presentan estn: tiempo de inicio y tiempo
de trmino de la simulacin, para este caso el tiempo de inicio es en 0 y el de trmino

57

Figura 31: Ingreso de parmetros de simulacin

20 seg, seleccin del mtodo de integracin (8 posibilidades para mtodos de paso


variable y 5 para mtodos de paso fijo), tolerancia relativa y absoluta en la solucin de
las ecuaciones, tamao de paso de integracin (tamao de paso para el caso de fijo y
tamao del paso mximo y mnimo en el caso variable). Dentro de esta ventana de
dilogo, existen otras 3 opciones principales: I/O Workspace (otorga la opcin de
explorar variables con formatos definidos al workspace), Diagnostics (se eligen las
preferencias de avisos programados sobre sucesos durante la simulacin, como por
ejemplo: alarmas de cruce por cero, bloques desconectados, etc.), Real-Time
Workshop (aporta las opciones para el trabajo en tiempo real y comunicaciones y
comunicacin con procesos externos).
Al resolver numricamente ecuaciones diferenciales, es comn encontrar
problemas en la solucin de ciertos tipos de ecuaciones denominadas rgidas o stifft, la
mayora de los mtodos comunes presentan problemas al tratar de resolver este tipo
de ecuaciones, generndose inestabilidad en las soluciones, o en su defecto en
requerimientos de tamao de paso demasiado pequeos.

58

La rigidez de una EDO, se refiere a una pequea constante de tiempo adicional.


Por ejemplo: suponer la siguiente ecuacin diferencial.

y=y + s (t ) , y(0)=yo
Donde

>0. Si S(t)=0, entonces la solucin es:

y (t )= yo et
Si S(t) 0, entonces la solucin es:
t
t

y (t )= yo e

+e

s ( ) e d
0

La respuesta del sistema a la condicin inicial, as como a los cambios de s(t)


queda caracterizada por l/||, que se denomina constante de tiempo.
Cuando hay que calcular transiciones muy rpidas de un sistema de este tipo,
es comprensible la necesidad de pequeos intervalos de tiempo. Por otro lado, si S(t)
es una funcin constante o vara lentamente en el tiempo, la solucin cambia
lentamente, por lo que de manera natural, sera deseable utilizar intervalos mayores.
Sin embargo los intervalos pequeos son necesarios para garantizar estabilidad en la
solucin numrica, sin importar que tan lento sea el cambio en la solucin real. Este
problema se vuelve especialmente crtico para el caso de conjunto de ecuaciones
diferenciales, pues la constante de tiempo de la ecuacin ms rgida determina la
constante de tiempo del sistema.
Para tratar este tipo de problemas, Matlab cuenta con mtodos de resolucin
especialmente diseados para ecuaciones stiff, como son: ode15s, ode23s, ode23t,
ode23td, todas estas alternativas disponibles en Simulink, el adecuado uso de estas
herramientas depender del conocimiento del usuario acerca de la dinmica de las
ecuaciones a tratar, y del conocimiento de las tcnicas de integracin numrica, para
obtener mayor detalle del funcionamiento de cada mtodo de integracin, solo basta
consultar la ayuda proporcionada en el software, por ejemplo:

59

>> help ode23t


Este comando mostrar una descripcin detallada del mtodo ode23t y sus
parmetros.
A modo de ejemplo se plantea la solucin de las ecuaciones de Va der Pool
utilizando los mtodos ode45 (no stiff), y ode23t (stiff):

x 1=x
x 2=1000 ( 1x 12 ) x2 x1

x(0)=0

x(0)=1

3.3. ALGUNAS FORMAS DE SIMULAR

Simulink ofrece distintas formas de enfrentar la simulacin de la mquina de


corriente continua. La eleccin de una u otra alternativa depende bsicamente del
usuario y de su grado de conocimiento del software de simulacin. Para el desarrollo
de este documento se trabajo con dos opciones de simulacin, estas son: Mtodo
Estacionario y Mtodo de diagramas de bloques. A continuacin se detalla cada uno de
estos mtodos y sus diferencias en cuanto a la exactitud de la simulacin.
Adems de estos mtodos se har mencin a un mtodo ms denominado
mtodo de edicin de ecuaciones pero no lo analizaremos puesto que este mtodo
presenta menos funcionalidades para el desarrollo de esta simulacin en especial. Otro
mtodo muy til pero que no se analiza en esta tesis es el mtodo se las SFUNTIONS. Este mtodo resulta muy til a la hora de simular entregando bsicamente
las mismas prestaciones que el mtodo de diagrama de bloque. Pero no se har
referencia a este puesto que para poder utilizarlo, es necesario conocer un poco ms a
fondo la programacin en leguaje M. Este lenguaje es propio del programa Matlab. Y
excede el propsito de esta tesis. Sin embargo es importante mencionarlo en caso que
el usuario se interese en poder utilizarlo.

60

3.3.1 Construccin del modelo usando mtodo estacionario de


simulink

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.

Figura 32: Insercin del bloque que representa la mquina c.c.

61

Una vez inserto el bloque podemos


empezar a configurar cada uno de sus parmetros para ello hacemos clic sobre el
bloque con el botn derecho y accedemos a una serie de opciones como muestra la
figura 32, dentro de las opciones ms importantes tenemos: Mask Parametrers, Look
under de mask, help, etc., para poder configurar nuestra maquina c.c. hacemos clic
sobre mask parametrers, luego se nos abrir una venta como la que muestra la figura
33.

Dentro de los parmetros ms importantes a configurar tenemos primero que


indicarle si la mquina va a trabajar como motor o como generador, dependiendo de
esto es que el bloque necesita a su entrada un torque o una velocidad, para nuestro

Figura 33: Configuracin de parmetros de la maquina c.c.

62

caso elegimos la opcin Speed w, luego en la solapa parametrers, ingresamos las


impedancias de campo, las de armadura y la autoinductancia o inductancia mutua, de
los datos obtenidos en el laboratorio. Una vez hecho esto comenzamos a agregar
instrumentos y bloques que permiten simular el comportamiento de la mquina, como
lo muestra la figura 34. En ella se puede ver que se inserta un bloque de entrada que
representa una constante la cual tiene un valor de 157 que representa la velocidad en

Figura 34: Pasos a seguir para la constriccin de un modelo estacionario

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.

Es importante recalcar que podemos acceder a las caractersticas de cada


bloque haciendo clic con el botn derecho sobre este y eligiendo la opcin Mask
Parametrers, por ejemplo: en el caso del demux hay que indicarle que tiene 4 salidas y
no 2 como viene predeterminado.

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.

Figura 35: Sub sistema encargado de generar una corriente variable

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.

Finalmente la figura 36, 37 y 38 muestran como queda nuestro proyecto, el cual


consiste en tomar el voltaje Va y la Corriente If, las que son entradas de un bloque
encargado de generar la grafica correspondiente Va versus If. Finalmente se procede a
correr la simulacin y observar las graficas tomadas por cada osciloscopio y la grafica
Va/If.

Figura 36: Modelo estacionario final de la maquina C.C.

Figura 37: Graficas de: Velocidad, Corriente de campo y Corriente de armadura obtenidas en la
simulacin

65

Figura 38: Curva de saturacin de la maquina c.c. mediante el mtodo estacionario.

En la figura 38 se puede observar la curva obtenida a travs de la simulacin,


dicha curva es ms bien una recta y se aproxima bastante a la realidad en la parte
lineal, pero puede apreciarse que no se satura, esto se debe a que el bloque de la
mquina de corriente continua no contempla la saturacin de dicha mquina. Por lo
tanto su comportamiento es lineal. En la figura 39 podemos observar la ventana de
parmetros de una mquina asncrona en la cual se puede observar que si contempla
la parte de saturacin de dicha mquina.

Figura 39: Ventana de parmetros de la maquina asncrona.

66

Como conclusiones finales sobre este mtodo de simulacin podemos rescatar


algunas observaciones:

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

transformadores, agilizan de manera notable su anlisis.

3.3.2. Construccin del modelo usando el mtodo de diagrama


de bloques

Para la utilizacin de este mtodo partimos directamente desde las ecuaciones


que representan nuestra mquina y las que nacen a partir de la pregunta original Qu
pretendo simular? Es por ello que nos remitiremos a las ecuaciones 3 y 4. Por lo que
nuestro trabajo en de ahora en adelante es poder representar dichas ecuaciones
mediante el diagrama de bloques. A modo de ejemplo partiremos de la ecuacin que
representa la corriente de campo. Como consejo sugiero el planteamiento de esta
ecuacin en un papel el cual luego de estar seguros de que es lo esperado se traduce
al simulador.
t

I c =
0

V c R cI c (t )
( dt )
Lc

A continuacin se presenta de manera ilustrativa el avance en el ambiente de


trabajo de simulink de cada uno de los bloques necesarios para obtener el diagrama
equivalente a la ecuacin (figura 41). Si observamos la ecuacin podemos ver que
tenemos como datos de entrada o existentes Vc, Rc, Lc y que la corriente Ic es la
salida de este sistema. Para representar Vc se procede a ingresar un bloque
denominado repeating sequence el cual produce una seal en forma de rampa
ascendente desde 0-220 volt luego se resta con la resistencia de armadura
multiplicada por la corriente Ic a esta resta se la multiplica por una ganancia 1/Lc y por
ultimo todo esto se integra obteniendo a la salida la corriente de campo. Es significativo
sealar que el planteamiento de esta ecuacin en un papel resulta muy til para el
usuario, puesto que le permite tener una idea clara del objetivo. Para que al momento
de buscar los bloques necesarios no caiga en confusin.

68

Figura 40: Modelado mediante bloques de la ecuacin de corriente de campo.

Figura 41: Modelado mediante bloques de la ecuacin de corriente de armadura.

69

Luego procedemos a determinar la ecuacin correspondiente a la corriente de


armadura, de la cual se necesita el voltaje de terminales abiertos. En la figura 41 puede
apreciarse el diagrama de bloques correspondiente.
De la salida de la ecuacin de corriente de campo obtenemos la entrada a la
ecuacin de corriente de armadura por lo que el circuito queda diseado de la siguiente
manera (figura 42).

Figura 42: Modelado del las ecuaciones que rigen el comportamiento de la maquina c.c.

Nuevamente se procede a correr la simulacin y constatar si la curva de


magnetizacin corresponde con la esperada. La figura 43 muestra dicha curva; se
puede observar que la grfica sigue siendo una recta, es decir algo sucede que la
mquina sigue comportndose como lineal.

Figura 43: Grafica del comportamiento de la maquina a terminales de


armadura abiertos.

70

En busca de corregir este problema se observa que la corriente de campo es la


que determina el voltaje inducido, tambin sabemos que cuando la mquina se satura
se necesita un gran aumento de la corriente de campo para producir un pequeo
aumento del voltaje inducido. Por lo tanto necesitamos que cuando la mquina entre en
la zona de saturacin la curva obedezca al comportamiento de la mquina saturada,
para poder subsanar este error. Para ello recurrimos a una funcin de matlab llamada
polyfit para obtener informacin acerca de cmo funciona esta instruccin vamos a la
lnea de comando de matlab e ingresamos la siguiente expresin:
>>help polyfit
Lo que nos entrega la siguiente informacin:

polyfit: - curva de ajuste polinomial


Sintaxis
p=polyfit(x,y,n)
[P,S]=polyfit(x,y,n)
[P, S, mu] = polyfit (x, y, n)

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.

x = (0: 0.1: 2.5);


y = erf (x);
Los coeficientes en el polinomio de aproximacin de grado 6

p = polyfit (x, y, 6)
p =
0,0084 -0,0983 0,4217 -0,7435 0,1471 1,1064 0,0004
Hay

siete

coeficientes

es, evaluar el polinomio en los puntos de datos con:

f = polyval (p, x);


Una tabla que muestra los datos, en forma, y es un error

tabla = [XYF yf]

es

el

polinomio

. Para ver lo bueno que el ajuste

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.

x = (0: 0.1: 5);


y = erf (x);
f = polyval (p, x);
plot (x, y, 'o', x, f ,'-')
axis ([0 5 0 2])

Algoritmo

73

El polyfit archivo de MATLAB constituye la matriz de Vandermonde, V, cuyos elementos son


potencias de x.
A continuacin, utiliza el operador barra invertida, \ , para resolver el problema de mnimos
cuadrados y Vp .
Puede modificar el archivo de MATLAB para utilizar otras funciones de x como las funciones de
base.

Vea tambin
poli , polyval , races , lscov , cobertura

Bsicamente consiste en un arreglo polinomico el cual depende de las variables


encontradas en la curva de saturacin tanto de Va como de Ic para esto es necesario
tomar la mayor cantidad de puntos sobre todo en la zona de saturacin para luego
crear un polinomio que a determinada corriente siga la curva original. Cabe destacar
que esta curva debe perder la relacin en funcin de la velocidad de la mquina, para
ello procedemos a dividir el voltaje por la velocidad y obtenemos una curva Va/w
versus la corriente Ic.
Para llevar a cabo esto recurrimos a crear dos matrices en matlab una
denominada x y una denominada y ,las cuales contienen los datos tomados de los
puntos representativos de la curva de saturacin real. Las figuras 44 y 45 muestran la
forma de asignar los valores a las variables x e y

Figura 44: Construccin de la matriz x

74

Figura 45: Construccin de la matriz y

Una vez ingresadas las variables x e y recurrimos a la instruccin polyfit


indicndole al programa que la almacene en una nueva matriz llamada p la cual
contendr el arreglo polinomico. Para ello recurrimos al comando:
>>p=polyfit(y, x, 3)
Siendo 3 el grado del polinomio deseado una vez hecho esto procedemos a buscar un
bloque denominado polyval en la librera simulink lo arrastramos a nuestro proyecto,
posteriormente hacemos clic con el botn derecho sobre el bloque y seleccionamos
polyval parameters nos aparecer una ventana como la de la figura 46.

Figura 46: Configuracin de parmetros del bloque polyval

75

En este punto lo que hacemos es indicarle la variable que contiene los


coeficientes polinomicos necesarios. Recordemos que la variable que contiene dichos
datos es la variable denominada p. Luego de esto ingresamos este bloque a la salida
de la corriente If y corremos nuevamente la simulacin, en la figura 47 se observa la
ubicacin del bloque polyval dentro del proyecto, mientras que la figura 48 muestra
comportamiento de la curva de magnetizacin.

Figura 47: Proyecto final que contempla el efecto magnetizante

76

Figura 48: Curva de magnetizacin resultante

Como conclusiones finales se pueden rescatar las siguientes observaciones:

Para poder simular mediante este mtodo es de suma importancia tener claras

las ecuaciones que determinan el sistema a simular.


A parte de lo anterior resulta til saber que pretendo simular puesto que es el

punto de partida de nuestro objetivo.


El uso de este mtodo permite al usuario interactuar con la simulacin o con el
comportamiento deseado de la simulacin. Como es el caso de la insercin del

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

3.3.3 Construccin del modelo usando mtodo de edicin de


ecuaciones

El editor de ecuaciones diferenciales es un bloque que realiza una funcin


parecida al mtodo de diagrama de bloques, pero presenta menos prestaciones que
esta ltima, pues solo se limita a la resolucin de ecuaciones diferenciales.
No es posible encontrar este bloque dentro de las libreras y debe ser llamado
directamente desde el espacio de trabajo escribiendo el siguiente comando y
presionando enter.
>>dee
Inmediatamente aparecer en la pantalla el bloque mostrado en la figura 49

Figura 49: Editor de ecuaciones diferenciales

Tomando el bloque llamado DEE se arrastra dentro de un nuevo modelo


Simulink, al hacer clic sobre el se abre la ventana mostrada en la figura 50

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.

Figura 50: Ingreso de ecuaciones diferenciales

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

Figura 51: Comparacin de curvas de saturacin

Por ltimo cabe sealar que el uso de modelos estticos es recomendable


cuando lo que se busca es entender el funcionamiento general de la mquina, o
cuando se pretende simular comportamientos como por ejemplo analizar mtodos de
partida, a continuacin se muestra la figura 52, en la cual se puede observar la
simulacin de un motor c.c. de 5HP a 240 volt el cual arranca mediante la insercin de
una resistencia de tres etapas a su devanado de campo. Al igual que en el caso
anterior se agrega un subsistema, es cual contiene las resistencias extras necesarias
para la partida de la mquina. La figura 54 muestra una serie de grficas en la cual se
aprecia el comportamiento de las diferentes variables como corriente de armadura,
velocidad, voltaje de armadura y torque.

Figura 52: Partida de motor


Figura
c.c. 53:
mediante
Subsistema
insercin
de arranque
de resistencias
del motor.
al devanado de campo.

81

Figura 54: Grafica de Va, Ia, velocidad y Te en funcin del tiempo.

82

4.1.2 Conclusiones

El uso de programas de simulacin, constituye una herramienta importante a la


hora de entender algunos conceptos tericos adquiridos en clases, ya que no slo
proporciona una forma cercana de observarlos, sino que tambin brinda la oportunidad
para que el aprendizaje de los conceptos se realice de manera prctica.
La utilizacin de estas nuevas herramientas de simulacin, no solo tiene
importancia en el hecho de que estos programas sean capaces de resolver un
problema determinado, sino tambin su visualizacin, ya que en la solucin de un
problema complejo, dichos softwares ayudan a reforzar los principios adquiridos a
travs de mtodos tradicionales.
Se pueden considerar cumplidos los objetivos planteados al principio de esta
memoria de tesis, los cuales han sido tratados uno a uno en los diferentes captulos.

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]

http://personal.telefonica.terra.es/web/anarchyco/matlab/, revisado agosto de

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]

Chambe M. Pedro., Simulacin de un generador sincrnico usando Power

System Blockset de Matlab, Tesis, 2004.


[5]

Chapman

Stephen.,

Mquinas

elctricas,

Editorial

Mc

Graw-Hill

Interamericana S.A., 2000, tercera edicin.


[6]

C. B. Gray., Mquinas elctricas y sistemas accionadores, Editorial Alfa

Omega, 1997.
[7]

Contreras Mardones. A.; Muoz Poblete. C. Simulacin de procesos con

Matlab 5.3. Universidad de la Frontera. 2005.


[8]

Kingsley Charles. ; Umans Stephen D., Mquinas elctricas. Editorial Mc

Graw-Hill Interamericana de Mxico S.A., 1992.


[9]

Kosow Irving. L., Muinas elctricas y transformadores. Editorial Prentice-Hall

Hispanoamericana S.A., 1993.


[10]

Kostenko M.; Piostrovsky L., Mquinas Elctricas. Editorial Montaner y Simn

S.A., 1968.
[11]

Liwschitz- Garik Michael.; Wipple Clyde C., Mquinas de Corriente Continua.

Compaa editorial continental S.A., mayo 1974.


[12]

Moraga Chodin. Mauricion., Simulacin de los laboratorios de mquinas

elctricas rotatorias, usando Simulink de Matlab. Tesis, 2006.


[13]

Sanz Feito Javier, Mquinas elctricas. Editorial Pearson educacin S.A.,

Madrid 2002.

85

[14]

Serway Raymond. A., Fsica Tomo II, cuarta edicin., Editorial Mc Graw Hill

1997.
[15]

Simulink Users Guide, The Math Worsk Inc., 1995.

[16] Universidad Tcnica Federico Santa Mara. Facultad de Electrotecnia.,


Conversin Electromecnica de Energa. 1976.

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.

MATLAB es un gran programa de clculo tcnico y cientfico. Para ciertas


operaciones es muy rpido, cuando puede ejecutar sus funciones en cdigo nativo con
los tamaos ms adecuados para aprovechar sus capacidades de vectorizacin. En
otras aplicaciones resulta bastante ms lento que el cdigo equivalente desarrollado en
C/C++ o Fortran. Sin embargo, siempre es una magnfica herramienta de alto nivel
para desarrollar aplicaciones tcnicas, fcil de utilizar y aumenta significativamente la
productividad de los programadores respecto a otros entornos de desarrollo.

MATLAB dispone de un cdigo bsico y de varias libreras especializadas


(toolboxes).En estos apuntes se har referencia exclusiva al cdigo bsico.

MATLAB se puede arrancar como cualquier otra aplicacin de Windows,


haciendo clic dos veces en el icono correspondiente en el escritorio o por medio del
men Inicio. Al arrancar MATLAB se abre una ventana del tipo de la indicada en la

figura 1. sta es la vista que se obtiene eligiendo la opcin Desktop Layout/Default,


en el men View. Como esta configuracin puede ser cambiada fcilmente por el
usuario, es posible que en muchos casos concretos lo que aparezca sea muy diferente.
En cualquier caso, una vista similar se puede conseguir con el citado comando
View/Desktop

Layout/Default.

Esta

ventana

inicial

requiere

unas

primeras

explicaciones.
Figura 1

La parte ms importante de la ventana inicial es la Command Window, que


aparece en la parte derecha. En esta sub-ventana es donde se ejecutan los comandos
de MATLAB, a continuacin del prompt (aviso) caracterstico (>>), que indica que el
programa est preparado para recibir instrucciones. En la pantalla mostrada en la
figura 1 se ha ejecutado el comando A=magic(4), mostrndose a continuacin el
resultado proporcionado por MATLAB.

En la parte superior izquierda de la pantalla aparecen dos ventanas tambin


muy tiles: en la parte superior aparece la ventana Launch Pad, que se puede alternar
con Workspace haciendo clic en la pestaa correspondiente. Launch Pad da acceso

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.

En la parte inferior derecha aparecen otras dos ventanas, Command History y


Current Directory, que se pueden mostrar alternativamente por medio de las pestaas
correspondientes. La ventana Command History muestra los ltimos comandos
ejecutados en la Command Window. Estos comandos se pueden volver a ejecutar
haciendo doble clic sobre ellos. Haciendo clic sobre un comando con el botn derecho
del ratn se muestra un men contextual con las posibilidades disponibles en ese
momento. Para editar uno de estos comandos hay que copiarlo antes a la Command
Window. Por otra parte, la ventana Current Directory muestra los ficheros del
directorio activo o actual. A diferencia de versiones anteriores de MATLAB en que el
directorio activo se deba cambiar desde la Command Window, a partir de la versin
6.0 se puede cambiar desde la propia ventana (o desde la barra de herramientas,
debajo de la barra de mens) con los mtodos de navegacin de directorios propios de
Windows. Haciendo clic dos veces sobre uno de los ficheros *.m del directorio activo
se abre el editor de ficheros de MATLAB, herramienta fundamental para la
programacin sobre la que se volver en las prximas pginas.

2. Uso del Help


MATLAB dispone de un excelente Help con el que se puede encontrar la
informacin que se desee:
1. Full Product Family Help, Se abre una ventana en la que se puede buscar
informacin general sobre MATLAB o sobre otros productos de la familia a los que se
tenga acceso. La forma de la ventana de ayuda es tpica y comn con otros niveles de
ayuda. La mayor parte de las pginas de ayuda estn en formato HTML.
2. Matlab Help. Se abre la ventana en la que se puede buscar ayuda general sobre
MATLAB o sobre la funcin o el concepto que se desee. La portada de esta ayuda
tiene tres captulos principales: Learning Matlab, que contiene distintos apartados de
introduccin al programa; Finding Functions and Properties, que permite acceder a

informacin concreta sobre las distintas funciones o propiedades de los objetos


grficos; y Printing the Documentation, que da acceso a versiones completas e
imprimibles de los manuales del programa en formato PDF (Portable Document
Format), que precisa del programa Adobe Acrobat Reader 4.0 o superior. En la parte
izquierda de la ventana, cuando est seleccionada la pestaa Contents, aparece un
ndice temtico estructurado en forma de rbol que puede ser desplegado y recorrido
con gran facilidad. Las restantes pestaas de esta ventana dan acceso a un ndice por
palabras (Index), a un formulario de bsqueda (Search) y a una seccin en la que el
usuario puede almacenar enlaces a las pginas que ms vaya a utilizar (Favorites).
3. Using the Desktop. Se abre una ventana de ayuda con un formato similar a las de
las Ilustraciones anteriores con informacin detallada sobre cmo utilizar y configurar el
entorno

de

desarrollo.

Las

distintas

herramientas

disponibles

se

describen

sucesivamente. Cada pgina dispone de flechas y enlaces que permiten ir a la pgina


siguiente o volver a la anterior.
4. Using the Command Window. Esta opcin del men Help da acceso a la
informacin necesaria para aprovechar las capacidades de la Command Window, que
es el corazn de MATLAB.
5. Demos. Se abre una ventana que da acceso a un buen nmero de ejemplos
resueltos con MATLAB, cuyos resultados se presentan grficamente de diversas
formas. Es bastante interesante recorrer estos ejemplos para hacerse idea de las
posibilidades del programa. Es asimismo muy instructivo analizar los ficheros *.m de
los ejemplos que renen caractersticas similares a las de la aplicacin de se desea
desarrollar.

3. El entorno de trabajo de MATLAB


El entorno de trabajo de MATLAB, ha mejorado mucho desde la versin 6.0,
hacindose ms grfico e intuitivo, similar al de otras aplicaciones de windows. Ya se
explicaron algunas de las componentes al principio de este manual, ahora nos
centraremos en las dos componentes ms importantes:

3.1 La ventana de comandos (Command Window)

sta es la ventana en la que se ejecutan interactivamente las instrucciones de


MATLAB y en donde se muestran los resultados correspondientes, si es el caso. En
cierta forma es la ventana ms importante y la nica que exista en versiones
anteriores de la aplicacin. En esta nueva versin se han aadido algunas mejoras
significativas, como las siguientes:
1. Se permiten lneas de comandos muy largas que automticamente siguen en la
lnea siguiente al llegar al margen derecho de la ventana. Para ello hay que activar la
opcin Wrap Lines, en el men File/Preferences/Command Window.
2. Haciendo clic con el botn derecho sobre el nombre de una funcin que aparezca en
esta ventana se tiene acceso a la pgina del Help sobre dicha funcin. Si el cdigo
fuente (fichero *.m) est disponible, tambin se puede acceder al fichero
correspondiente por medio del Editor/Debugger.
3. Comenzando a teclear el nombre de una funcin y pulsando la tecla Tab, MATLAB
completa automticamente el nombre de la funcin, o bien muestra en la lnea
siguiente todas las funciones disponibles que comienzan con las letras tecleadas por el
usuario.
4. Cuando al ejecutar un fichero *.m se produce un error y se obtiene el
correspondiente mensaje en la Command Window, MATLAB muestra mediante un
subrayado un enlace a la lnea del fichero fuente en la que se ha producido el error.
Haciendo clic en ese enlace se va a la lnea correspondiente del fichero por medio del
Editor/Debugger.

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.

4.1 SENTENCIAS Y BUCLES:


4.1.1 SENTENCIA IF
En su forma ms simple, la sentencia if se escribe en la forma siguiente
(obsrvese que a diferencia de C/C++/Java la condicin no va entre parntesis,
aunque se pueden poner si se desea):
ifcondicion
sentencias
end

Existe tambin la bifurcacin mltiple, en la que pueden concatenarse tantas


condiciones como se desee, y que tiene la forma:
ifcondicion1
bloque1
elseifcondicion2
bloque2
elseifcondicion3
bloque3
else%opcinpordefectoparacuandonosecumplanlasccondiciones1,2,3
bloque4
end

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

donde vectorValores es un vector con los distintos valores que tomar la


variable i. En el siguiente ejemplo se presenta el caso ms general para la variable del
bucle (valor_inicial: incremento: valor_final); el bucle se ejecuta por primera vez con
i=n, y luego i se va reduciendo de 0.2 en 0.2 hasta que llega a ser menor que 1, en
cuyo caso el bucle se termina:
fori=n:0.2:1
sentencias
end

En el siguiente ejemplo se presenta una estructura correspondiente a dos


bucles anidados. La variable j es la que vara ms rpidamente (por cada valor de i, j
toma todos sus posibles valores):
fori=1:m
forj=1:n
sentencias
end
end

10

Una ltima forma de inters del bucle for es la siguiente (A es una matriz):
fori=A
sentencias
end

en la que la variable i es un vector que va tomando en cada iteracin el valor de una de


las columnas de A. Cuando se introducen interactivamente en la lnea de comandos,
los bucles for se ejecutan slo despus de introducir la sentencia end que los
completa.
4.1.3 SENTENCIA WHILE
La estructura del bucle while es muy similar a la de C/C++/Java. Su sintaxis es
la siguiente:
whilecondicion
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.

4.2 LECTURA Y ESCRITURA INTERACTIVA DE VARIABLES


Existen varias formas de ingresar datos e imprimir resultados, en los programas
de MATLAB, algunas de estas son:
4.2.1. FUNCIN INPUT

11

La funcin input permite imprimir un mensaje en la lnea de comandos de


MATLAB y recuperar como valor de retorno un valor numrico o el resultado de una
expresin tecleada por el usuario. Despus de imprimir el mensaje, el programa espera
que el usuario teclee el valor numrico o la expresin. Cualquier expresin vlida de
MATLAB es aceptada por este comando. El usuario puede teclear simplemente un
vector o una matriz. En cualquier caso, la expresin introducida es evaluada con los
valores actuales de las variables de MATLAB y el resultado se devuelve como valor de
retorno. Vase un ejemplo de uso de esta funcin:
>>n=input('Tecleeelnmerodeecuaciones')

Otra posible forma de esta funcin es la siguiente (obsrvese el parmetro 's'):


>>nombre=input('Cmotellamas?','s')

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)

Ejectense las sentencias anteriores en MATLAB y obsrvese la diferencia


entre las dos formas de imprimir la matriz A.

4.2.3 FUNCIN fprintf


Finalmente, la funcin fprintf dirige su salida formateada hacia el fichero
indicado por el identificador. Su forma general es:
fprintf(fi,'cadenadecontrol',var1,var2,...)

12

Esta es la funcin ms parecida a su homloga de C. La cadena de control


contiene los formatos de escritura, que son similares a los de C, como muestran los
ejemplos siguientes:
fprintf(fi,'Elnmerodeecuacioneses:%d\n',n)
fprintf(fi,'Eldeterminantees:%lf10.4\n',n)

De forma anloga, la funcin sprintf convierte su resultado en una cadena de


caracteres que devuelve como valor de retorno, en vez de enviarlo a un fichero. Vase
un ejemplo:
resultado=sprintf('Elcuadradode%fes%12.4f\n',n,n*n)

donde resultado es una cadena de caracteres. Esta funcin constituye el mtodo ms


general de convertir nmeros en cadenas de caracteres, por ejemplo para ponerlos
como ttulos de figuras. Al igual que su equivalente en C, existen varios smbolos que
dentro de la instruccin, pueden establecer una accin o un formato especial en los
resultados que se imprimen.
Algunos de los caracteres de accin son:
\n Nueva lnea
\t tabulacin horizontal
\b backspace
\r retorno
Mientras que los caracteres de formato son:
%e Notacin exponencial
%f Notacin de punto flotante (%12.4f = A 12 espacios y con 4 cifras decimales)
%g Bien sea %e o %f, segn sea el ms corto.
%lf Notacin de doble precisin.

4.3 LOS FICHEROS *.m

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

Como ya se ha dicho, los ficheros de comandos o scripts son ficheros con un


nombre tal como file1.m que contienen una sucesin de comandos anloga a la que
se tecleara en el uso interactivo del programa. Dichos comandos se ejecutan
sucesivamente cuando se teclea el nombre del fichero que los contiene (sin la
extensin), es decir cuando se teclea file1 con el ejemplo considerado. Cuando se
ejecuta desde la lnea de comandos, las variables creadas por file1 pertenecen al
espacio de trabajo base de MATLAB. Por el contrario, si se ejecuta desde una funcin,
las variables que crea pertenecen al espacio de trabajo de la funcin.
En los ficheros de comandos conviene poner los puntos y coma (;) al final de
cada sentencia, para evitar una salida de resultados demasiado cuantiosa. Un fichero
*.m puede llamar a otros ficheros *.m, e incluso se puede llamar a s mismo de modo
recursivo. Las variables definidas por los ficheros de comandos son variables del
espacio de trabajo desde el que se ejecuta el fichero, esto es variables con el mismo
carcter que las que se crean interactivamente en MATLAB si el fichero se ha
ejecutado desde la lnea de comandos. Al terminar la ejecucin del script, dichas
variables permanecen en memoria.

4.3.2 Definicin de funciones:


La primera lnea de un fichero llamado name.m que define una funcin tiene la
forma:
function[listadevaloresderetorno]=name(listadeargumentos)

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

matriciales. Tanto el nmero de argumentos como el de valores de retorno no tienen


que ser fijos, dependiendo de cmo el usuario llama a la funcin.
Las variables definidas dentro de una funcin son variables locales, en el
sentido de que son inaccesibles desde otras partes del programa y en el de que no
interfieren con variables del mismo nombre definidas en otras funciones o partes del
programa. Se puede decir que pertenecen al propio espacio de trabajo de la funcin y
no son vistas desde otros espacios de trabajo. Para que la funcin tenga acceso a
variables que no han sido pasadas como argumentos es necesario declarar dichas
variables como variables globales, tanto en el programa principal como en las
distintas funciones que deben acceder a su valor. Es frecuente utilizar el convenio de
usar para las variables globales nombres largos (ms de 5 letras) y con maysculas.
Por razones de eficiencia, los argumentos que recibe una funcin de MATLAB
no se copian a variables locales si no son modificados por dicha funcin (en trminos
de C/C++ se dira que se pasan por referencia). Esto tiene importantes consecuencias
en trminos de eficiencia y ahorro de tiempo de clculo. Sin embargo, si dentro de la
funcin se realizan modificaciones sobre los argumentos recibidos, antes se sacan
copias de dichos argumentos a variables locales y se modifican las copias (dirase que
en este caso los argumentos se pasan por valor).
Dentro de la funcin, los valores de retorno deben ser calculados en algn
momento (nohay sentencia return, como en C/C++/Java). De todas formas, no hace
falta calcular siempre todos los posibles valores de retorno de la funcin, sino slo los
que el usuario espera obtener en la sentencia de llamada a la funcin. En cualquier
funcin existen dos variables definidas de modo automtico, llamadas nargin y
nargout, que representan respectivamente el nmero de argumentos y el nmero de
valores de retorno con los que la funcin ha sido llamada. Dentro de la funcin, estas
variables pueden ser utilizadas como el programador desee.
La ejecucin de una funcin termina cuando se llega a su ltima sentencia
ejecutable. Si se quiere forzar el que una funcin termine de ejecutarse se puede
utilizar la sentencia return, que devuelve inmediatamente el control al entorno de
llamada.

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

despus de oprimir <enter> se empezar a ejecutar la primera lnea del programa:


>> ingrese la funcion, entre apostrofos:
y el programa esperar a que el usuario ingrese la funcin (en la forma indicada) antes
de seguir ejecutando la siguiente lnea del cdigo.
Si se hace una revisin del cdigo anterior, podremos ver que la estructura es
muy similar a la de otros programas como Visual Basic, sin embargo tiene unas
caractersticas propias que le dan su inmensa utilidad, entre stas est la instruccin
inline que permite establecer que una cadena de caracteres ingresada por el usuario
(en nuestro ejemplo: f) define una funcin. Adems podemos ver la instruccin feval
que permite evaluar una funcin definida, en un punto en particular.
4.4.2 En forma de funcin:
Si queremos que el programa funcione como una funcin, podemos modificar
las cuatro primeras lneas del programa anterior, por una sola lnea:

function [y, fy] = biseccin(f, a, b, toler, mx)


que indica que la funcin se llama biseccin, tiene cinco datos de entrada (f, a, b, toler,
mx) y dos resultados (y, fy). As que tambin podran eliminarse del cdigo anterior las
lneas que corresponden a la impresin de los resultados.
Esta funcin se puede usar a travs de la ventana command window, por
ejemplo digitando:

>> [raiz, fraiz] = biseccin(sin(x), -pi/4, pi, 0.00001, 30)


Obtenindose como resultado:

>> raiz =
0.0000
fraiz =
0.0000

20

Obsrvese que no es necesario nombrar las variables de salida con el mismo


nombre asignado en el cdigo.
4.4.3 Otra modificacin:
En versiones anteriores de MATLAB, la instruccin inline, no se encontraba y
era difcil definir una cadena de caracteres ingresada por el usuario, como una funcin.
En este caso era necesario que la funcin f se definiera (como una funcin) en
un archivo f.m aparte, grabado en la misma carpeta del programa principal
biseccion.m. Esto tiene el inconveniente que cada vez que el usuario quiera cambiar
de funcin, debe abrir el archivo f.m, cambiar la funcin que all se encuentra, por la
que el desea, y grabar, antes de ejecutar el programa principal. Sin embargo, esto es
muy til cuando se desea trabajar con la misma funcin y slo modificar los dems
datos de entrada.

5. Recomendaciones Generales de Programacin:


Las funciones vectoriales de MATLAB son mucho ms rpidas que sus
contrapartidas escalares. En la medida de lo posible es muy interesante vectorizar los
algoritmos de clculo, es decir, realizarlos con vectores y matrices, y no con variables
escalares dentro de bucles. Aunque los vectores y matrices pueden ir creciendo a
medida que se necesita, es mucho ms rpido reservarles toda la memoria necesaria
al comienzo del programa.
Se puede utilizar para ello la funcin zeros. Adems de este modo la memoria
reservada es contigua.
Es importante utilizar el profile para conocer en qu sentencias de cada funcin
se gasta la mayor parte del tiempo de clculo. De esta forma se descubren cuellos de
botella y se pueden desarrollar aplicaciones mucho ms eficientes.
Conviene desarrollar los programas incrementalmente, comprobando cada
funcin o componente que se aade. De esta forma siempre se construye sobre algo
que ya ha sido comprobado y que funciona: si aparece algn error, lo ms probable es
que se deba a lo ltimo que se ha aadido, y de esta manera la bsqueda de errores
est acotada y es mucho ms sencilla.

21

Recurdese que de ordinario el tiempo de correccin de errores en un


programa puede ser 4 5 veces superior al tiempo de programacin. El debugger es
una herramienta muy til a la hora de acortar ese tiempo de puesta a punto.
En este mismo sentido, puede decirse que pensar bien las cosas al programar
(sobre una hoja de papel en blanco, mejor que sobre la pantalla del PC) siempre es
rentable, porque se disminuye ms que proporcionalmente el tiempo de depuracin y
eliminacin de errores.
Otro objetivo de la programacin debe ser mantener el cdigo lo ms sencillo y
ordenado posible. Al pensar en cmo hacer un programa o en cmo realizar
determinada tarea es conveniente pensar siempre primero en la solucin ms sencilla,
y luego plantearse otras cuestiones como la eficiencia.
Finalmente, el cdigo debe ser escrito de una manera clara y ordenada,
introduciendo comentarios, utilizando lneas en blanco para separar las distintas partes
del programa, sangrando las lneas para ver claramente el rango de las bifurcaciones y
bucles, utilizando nombres de variables que recuerden al significado de la magnitud
fsica correspondientes, etc.
En cualquier caso, la mejor forma (y la nica) de aprender a programar es
programando.

6. Operaciones con matrices y vectores


Para definir una matriz no hace falta establecer de antemano su tamao (de
hecho, se puede definir un tamao y cambiarlo posteriormente). MATLAB determina el
nmero de filas y de columnas en funcin del nmero de elementos que se
proporcionan (o se utilizan). Las matrices se definen por filas; los elementos de una
misma fila estn separados por blancos o comas, mientras que las filas estn
separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el
siguiente comando define una matriz A de dimensin (3x3):
A=[1 2 3; 4 5 6; 7 8 9]

La respuesta del programa es la siguiente:

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

Como el resultado de la operacin no ha sido asignado a ninguna otra matriz,


MATLAB utiliza un nombre de variable por defecto (ans, de answer), que contiene el
resultado de la ltima operacin. La variable ans puede ser utilizada como operando
en la siguiente expresin que se introduzca. Tambin podra haberse asignado el
resultado a otra matriz llamada B:
B=A'
B=
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

MATLAB tiene en cuenta la diferencia entre vectores fila y vectores columna.


Por ejemplo, si se intenta sumar los vectores x e y se obtendr el siguiente mensaje de
error:
x+y
???Errorusing==>+

25

Matrixdimensionsmustagree.

Estas dificultades desaparecen si se suma x con el vector transpuesto de y:


x+y'
ans=
213243

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

Los operadores anteriores se pueden aplicar tambin de modo mixto, es decir


con un operando escalar y otro matricial. En este caso la operacin con el escalar se
aplica a cada uno de los elementos de la matriz. Considrese el siguiente ejemplo:
A=[1 2; 3 4]
A=
12
34
A*2

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

Un caso especialmente interesante es el de crear una nueva matriz


componiendo como submatrices otras matrices definidas previamente. A modo de
ejemplo, ejectense las siguientes lneas de comandos y obsrvense los resultados
obtenidos:
A=rand(3)
B=diag(diag(A))
C=[A, eye(3); zeros(3), B]
En el ejemplo anterior, la matriz C de tamao (6x6) se forma por composicin de
cuatro matrices de tamao (3x3). Al igual que con simples escalares, las submatrices
que forman una fila se separan con blancos o comas, mientras que las diferentes filas
se separan entre s con intros o puntos y comas. Los tamaos de las submatrices
deben de ser coherentes.
6.1 OPERADOR DOS PUNTOS (:)
Este operador es muy importante en MATLAB y puede usarse de varias formas.
Se sugiere al lector que practique mucho sobre los ejemplos contenidos en este
apartado, introduciendo todas las modificaciones que se le ocurran y haciendo pruebas
abundantes (Probar es la mejor forma de aprender!).
Para empezar, defnase un vector x con el siguiente comando:
x=1:10
x=
12345678910

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]

El operador dos puntos (:) es an ms til y potente y tambin ms


complicado con matrices. A continuacin se va a definir una matriz A de tamao 6x6 y
despus se realizarn diversas operaciones sobre ella con el operador (:).
A=magic(6)

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

norm(x) norma eucldea; equivale al mdulo o norm(x,2).


norm(x,inf) norma sub-inf, es decir max(abs(x)).
norm(x,1) norma sub-1, es decir sum(abs(x)).
Funcin basada en el clculo de valores y vectores propios:
[X, D] = eig(A) valores propios (diagonal de D) y vectores propios (columnas de X) de
una matriz cuadrada A. Con frecuencia el resultado es complejo (si A no es simtrica).
Si utilizamos la instruccin sola, es decir, x=eig(B) obtenemos los valores
propios de B almacenados en la variable x y podremos obtener el radio espectral de A
usando la instruccin max(abs(x)) y concluir sobre la convergencia o divergencia de
cierto mtodo.
Ahora realizaremos un estudio sobre el mtodo iterativo de Jacobi. Recordemos
que la iteracin en el paso k+1 para la variable i x est dada por:

donde 0

i i

a , utilizando las instrucciones de MATLAB podemos escribir esta

iteracin como

xnew(i) = (b(i) A(i,1: i 1) * xold(i,1: i 1) A(i,i +1: n) * xold(i,i +1: n))/


A(i,i)
o equivalentemente

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

Usando las instrucciones internas de Matlab, M est dado por

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

como argumento, se considerar como un conjunto de vectores columna (en algunos


casos tambin de vectores fila).
MATLAB utiliza un tipo especial de ventanas para realizar las operaciones
grficas. Ciertos comandos abren una ventana (figure) nueva y otros dibujan sobre la
ventana activa, bien sustituyendo lo que hubiera en ella (hold off), bien aadiendo
nuevos elementos grficos a un dibujo anterior (hold on).

7.1. Funciones grficas 2D elementales


MATLAB dispone de cuatro funciones bsicas para crear grficos 2-D. Estas
funciones se diferencian principalmente por el tipo de escala que utilizan en los ejes de
abscisas y de ordenadas.

Estas cuatro funciones son las siguientes:


plot() crea un grfico a partir de vectores y/o columnas de matrices, con escalas
lineales sobre ambos ejes
loglog() dem con escala logartmica en ambos ejes
semilogx() dem con escala lineal en el eje de ordenadas y logartmica en el eje de
abscisas
semilogy() dem con escala lineal en el eje de abscisas y logartmica en el eje de
ordenadas
As si queremos graficar, por ejemplo, la funcin sin(x) entre 0 y 2, podemos
ejecutar las siguientes instrucciones en MATLAB

>> x = 0:0.001:2*pi; %define el vector de abscisas


>> y = sin(x); %define el vector de ordenadas
>> plot(x,y)
Existen adems otras funciones orientadas a aadir ttulos al grfico, a cada
uno de los ejes, a dibujar una cuadrcula auxiliar, a introducir texto, etc. Estas funciones
son las siguientes:

title('ttulo') aade un ttulo al dibujo


xlabel('tal') aade una etiqueta al eje de abscisas. Con xlabel off desaparece
ylabel('cual') aade una etiqueta al eje de ordenadas. Con ylabel off desaparece
text(x,y,'texto') introduce 'texto' en el lugar especificado por las coordenadas x e y. Si x
e y son vectores, el texto se repite por cada par de elementos. Si texto es tambin un

40

vector de cadenas de texto de la misma dimensin, cada elemento se escribe en las


coordenadas correspondientes.
gtext('texto') introduce texto con ayuda del ratn: el cursor cambia de forma y se
espera un clic para introducir el texto en esa posicin.
legend() define rtulos para las distintas lneas o ejes utilizados en la figura.

7.2. Funciones grficas tridimensionales


MATLAB tiene posibilidades de realizar varios tipos de grficos 3D. Para darse
una idea de ello, lo mejor es verlo en la pantalla. La primera forma de grfico 3D es la
funcin plot3, que es el anlogo tridimensional de la funcin plot. Esta funcin dibuja
puntos cuyas coordenadas estn contenidas en 3 vectores, bien unindolos mediante
una lne acontinua (defecto), bien mediante markers. As, el siguiente comando dibuja
una lnea espiral:
>>fi=[0:pi/20:6*pi];plot3(cos(fi),sin(fi),fi,'g')

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:

El fichero test3d.m debe contener las lneas siguientes:


functionz=test3d(x,y)
z=3*(1x).^2.*exp((x.^2)(y+1).^2)...
10*(x/5x.^3y.^5).*exp(x.^2y.^2)...
1/3*exp((x+1).^2y.^2);

Ahora, ejectese la siguiente lista de comandos (directamente, o mejor creando


un fichero test3dFC.m que los contenga):
>>x=[3:0.4:3];y=x;
>>close
>>subplot(2,2,1)
>>figure(gcf),fi=[0:pi/20:6*pi];
>>plot3(cos(fi),sin(fi),fi,'r')
>>[X,Y]=meshgrid(x,y);
>>Z=test3d(X,Y);
>>subplot(2,2,2)

41

>>figure(gcf),mesh(Z)
>>subplot(2,2,3)
>>figure(gcf),surf(Z)
>>subplot(2,2,4)
>>figure(gcf),contour3(Z,16)

Se obtiene el siguiente grfico:

8. El Entorno Grfico de MATLAB: Creacin de Interfaces.


Hoy en da, con la proliferacin de programas tipo Windows, en los que el
usuario encuentra un ambiente amigable y fcil de usar, en el que puede ingresar sus
datos en cajas de texto y ejecutar cdigos con slo hacer clic en un botn, MATLAB no
poda quedarse atrs.
Las ltimas versiones de MATLAB, en especial despus de la versin 6.0, se
han preocupado por incorporar herramientas fciles de usar, con las que el usuario
pueda crear interfaces grficas para sus programas, como lo hara un programador de
Visual Basic. Claro est, todava falta avanzar mucho en este campo y no es la ms
grande preocupacin de los desarrolladores de MATLAB.
MATLAB posee herramientas que permiten crear interfaces grficas, de manera
similar a como se hace en Visual Basic, pero con muchas menos posibilidades. Estas

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

Figura 28: Venta de la librera de simulink....................................................................50


Figura 29: Ventana de trabajo de simulink....................................................................51
Figura 30: Especificacin de parmetros de simulacin...............................................54
Figura 31: Ingreso de parmetros de simulacin..........................................................55
Figura 32: Insercin del bloque que representa la mquina c.c....................................58
Figura 33: Configuracin de parmetros de la maquina c.c..........................................59
Figura 34: Pasos a seguir para la constriccin de un modelo estacionario...................60
Figura 35: Sub sistema encargado de generar una corriente variable..........................61
Figura 36: Modelo estacionario final de la maquina C.C...............................................62
Figura 37: Graficas de: Velocidad, Corriente de campo y Corriente de armadura
obtenidas en la simulacin............................................................................................62
Figura 38: Curva de saturacin de la maquina c.c. mediante el mtodo estacionario...63
Figura 39: Ventana de parmetros de la maquina asncrona........................................64
Figura 41: Modelado mediante bloques de la ecuacin de corriente de armadura.......66
Figura 40: Modelado mediante bloques de la ecuacin de corriente de campo............66
Figura 42: Modelado del las ecuaciones que rigen el comportamiento de la maquina
c.c................................................................................................................................. 67
Figura 43: Grafica del comportamiento de la maquina a terminales de armadura
abiertos......................................................................................................................... 68
Figura 44: Construccin de la matriz x..........................................................................72
Figura 45: Construccin de la matriz y..........................................................................73
Figura 46: Configuracin de parmetros del bloque polyval.........................................73
Figura 47: Proyecto final que contempla el efecto magnetizante..................................74
Figura 48: Curva de magnetizacin resultante..............................................................75
Figura 49: Editor de ecuaciones diferenciales..............................................................76
Figura 50: Ingreso de ecuaciones diferenciales............................................................77
Figura 51: Comparacin de curvas de saturacin.........................................................79
Figura 53: Subsistema de arranque del motor..............................................................80
Figura 52: Partida de motor c.c. mediante insercin de resistencias al devanado de
campo........................................................................................................................... 80
Figura 54: Grafica de Va, Ia, velocidad y Te en funcin del tiempo...............................81

45

INDICE DE ECUACIONES

Ecuacin 1: Torque elctrico en funcin de corrientes y velocidad...............................23


Ecuacin 2: Ecuacin del voltaje inducido....................................................................29
Ecuacin 3: Ecuacin del voltaje de armadura.............................................................34
Ecuacin 4: Ecuacin del voltaje de campo..................................................................34
Ecuacin 5: Diferencias de torques..............................................................................34
Ecuacin 6: Torque mecnico.......................................................................................34

Você também pode gostar