Informe - Escuela de Ingeniería Eléctrica

Anuncio
Universidad de Costa Rica
Facultad de Ingeniería
Escuela de Ingeniería Eléctrica
IE – 0502 Proyecto Eléctrico
OBTENCIÓN DE LOS PARÁMETROS DE
MOTORES DE INDUCCIÓN CON LOS DATOS
DE PLACA POR MEDIO DE UN PROGRAMA
COMPUTACIONAL
Por:
ADRIÁN SOLÍS BADILLA
Ciudad Universitaria Rodrigo Facio
ENERO del 2013
OBTENCIÓN DE LOS PARÁMETROS DE
MOTORES DE INDUCCIÓN CON LOS DATOS
DE PLACA POR MEDIO DE UN PROGRAMA
COMPUTACIONAL
Por:
ADRIÁN SOLÍS BADILLA
Sometido a la Escuela de Ingeniería Eléctrica
de la Facultad de Ingeniería
de la Universidad de Costa Rica
como requisito parcial para optar por el grado de:
BACHILLER EN INGENIERÍA ELÉCTRICA
Aprobado por el Tribunal:
_________________________________
Ing. Gonzalo Mora Jiménez
Profesor Guía
_________________________________
Ing. Marvin Bustillo Piedra
Profesor lector
_________________________________
Ing. Tony Delgado Carvajal
Profesor lector
ii
DEDICATORIA
Primero que todo quiero dedicarle este trabajo a Dios, a mi familia y sobre todo a
mi madre, que me ha apoyado siempre para seguir adelante a pesar de las distintas
adversidades que he enfrentado. También a aquellas personas que ya no están hoy aquí,
pero que sin embargo han logrado marcarme de forma positiva y que han dejado su huella y
me han alentado a ser lo que soy hoy. A todas ellas muchas gracias.
iii
RECONOCIMIENTOS
Primero que todo quiero darle mi reconocimiento al profesor Gonzalo Mora por
darme la oportunidad de desarrollar esta investigación, así como a los profesores Marvin
Bustillo y Tony Delgado por brindarme su ayuda para el desarrollo de esta investigación.
Tambien al compañero Sergio Wong que me ayudó a evacuar dudas sobre la utilización de
Matlab.
iv
ÍNDICE GENERAL
1.
CAPÍTULO 1: INTRODUCCIÓN ....................................................... 1
1.1
Objetivos ................................................................................................. 2
1.2
Metodología ............................................................................................ 3
2.1
CAPÍTULO 2: DESARROLLO TEÓRICO ....................................... 4
2.2
Motor de inducción trifásico (MIT) ..................................................... 5
2.3
Circuito equivalente del motor de inducción trifásico ..................... 10
2.4
Obtención de los parámetros del motor de inducción ...................... 13
2.5
Diseños de motores de inducción ........................................................ 15
2.6
Datos de placa de un motor de inducción .......................................... 16
2.7
Resolución de ecuaciones no lineales por medio de Matlab:
Optimization ToolboxTM ................................................................................ 20
3
CAPÍTULO 3: DESARROLLO DEL PROGRAMA ...................... 27
4
CAPITULO 4: CONCLUSIONES Y RECOMENDACIONES ...... 40
4.1
Conclusiones ......................................................................................... 40
4.2
Recomendaciones ................................................................................. 40
v
5
BIBLIOGRAFIA ................................................................................. 42
6
APÉNDICES ........................................................................................ 44
6.1
Pruebas de vacío y rotor bloqueado ................................................... 44
6.2
Código del programa en Matlab ........................................................ 50
vi
ÍNDICE DE FIGURAS
Figura 2.1 Motor de inducción jaula de ardilla[1] .................................................................. 8
Figura 2.2 Circuito inicial del motor de inducción[3] .......................................................... 10
Figura 2.2 Circuito equivalente final [3] .............................................................................. 13
Figura 2.3 Placa típica de un motor de inducción [10] ......................................................... 17
Figura 3.4 Circuito equivalente a obtener [4] ....................................................................... 27
Figura 3.1 Creación del archivo ecuaciones2.m con el conjunto de ecuaciones del motor.. 30
Figura 3.2 Solicitud de datos de placa por medio del programa........................................... 31
Figura 3.3 Implementación de fsolve en el programa ........................................................... 32
Figura 3.4 Interfaz gráfica del programa .............................................................................. 33
Figura 6.1 Potencia en vacío en función de tensión motor 5 ................................................ 47
Figura 6.2 Potencia en vacío en función de tensión motor 6 ................................................ 47
Figura 6.3 Potencia en vacío en función de tensión motor 6 ................................................ 48
vii
ÍNDICE DE TABLAS
Tabla 2.1 Sintaxis de la rutina fsolve .................................................................................... 25
Tabla 3.1 Datos de placa de motores de inducción............................................................... 34
Tabla 3.2 Datos obtenidos motor 1 ....................................................................................... 35
Tabla 3.3 Datos obtenidos motor 2 ....................................................................................... 35
Tabla 3.4 Datos obtenidos motor 3 ....................................................................................... 36
Tabla 3.5 Datos obtenidos motor 4 ....................................................................................... 36
Tabla 3.6 Datos obtenidos motor 5 ....................................................................................... 37
Tabla 3.7 Datos obtenidos motor 6 ....................................................................................... 37
Tabla 3.7 Datos obtenidos motor 7 ....................................................................................... 38
Tabla 6.1 Datos de prueba en corriente directa .................................................................... 44
Tabla 6.2 Datos de prueba en vacío del motor 5 .................................................................. 45
Tabla 6.3 Datos de prueba en vacío del motor 6 .................................................................. 46
Tabla 6.2 Datos de prueba en vacío del motor 7 .................................................................. 46
Tabla 6.3 Datos de prueba rotor bloqueado .......................................................................... 50
viii
NOMENCLATURA
GUIDE
Generador de Interfaces Gráficas
LAB-VOLT
Módulo Didáctico Eléctrico
MATLAB
Software Matemático
MIT
Motor de Inducción Trifásico
ix
RESUMEN
En esta investigación se desarrolló un programa para la determinación de los
parámetros de un MIM: Resistencia de estator, resistencia de rotor, reactancia de estator,
reactancia de rotor y reactancia de magnetización por medio del programa computacional
Matlab y su rutina de solución de ecuaciones fsolve. Para la creación de dicho programa se
generaron dos archivos, uno en el cual se desarrollaban las ecuaciones que describían el
circuito equivalente de un MIT en estado estacionario y otro en el cual se desarrollaba el
programa principal. En el programa principal se solicitaba al usuario ingresar los datos de
placa del motor al cual se deseaba conocer sus parámetros y se hacía el llamado a la
función fsolve para que resolviera las ecuaciones en las cuales estaban asociadas los
parámetros a encontrar son los valores de placa. Para una mejor presentación se desarrolló
una interfaz gráfica para este programa, también por medio de Matlab. Por último, para
validar el programa hecho se tomaron valores de placa de motores reales de la Universidad
Tecnológica de Pereira dados por el profesor Gonzalo Mora y tres motores trifásicos Jaula
de ardilla por medio del Lab-Volt de la Escuela de Ingeniería Eléctrica de la Universidad de
Costa Rica a los cuales se les realizaron pruebas de vacío y rotor bloqueado para obtener
sus parámetros experimentalmente. Se compararon los resultados obtenidos, los cuales
fueron muy cercanos con los obtenidos experimentalmente.
Se llegó a la conclusión que el programa Matlab es una herramienta sumamente
valiosa e importante para resolver cualquier tipo de problema o fenómeno físico.
x
1. CAPÍTULO 1: Introducción
Los MIT han sido las máquinas rotativas más utilizadas en la industria en gran
medida por la versatilidad que ofrece. La gran utilización de estos motores abre la
posibilidad de investigación en áreas como control del par, el control de la velocidad así
como la determinación de sus parámetros.
Gracias al desarrollo que se da a la electrónica de potencia y a la reducción de los
costos es que estas máquinas se utilicen en prácticamente cualquier tipo o condición de
operación. Existen una gran cantidad de modelos del motor de inducción, generalmente
utilizados para corroborar los métodos de control. El modelo clásico del motor de
inducción consta de las resistencias y reactancias del rotor y del estator, así como de la
rama de magnetización con su reactancia de magnetización. Este modelo es utilizado en
gran medida para la determinación de las características de funcionamiento del motor.
En esta investigación se busca determinar los parámetros que conforman el circuito
equivalente del motor de inducción, por medio del desarrollo de un programa a través de
Matlab que al introducirle los datos de placa o datos del fabricante tales como la potencia
nominal, el torque máximo, el torque nominal, la corriente de arranque, la corriente
nominal y el factor de potencia, se obtengan los parámetros de dicho motor.
1
1.1
Objetivos
1.1.1 Objetivo general
Desarrollar un programa computacional para determinar el circuito
equivalente de un MIT conociendo los datos de placa del mismo.
1.1.2 Objetivos específicos
Mencionar los principios de funcionamiento de un MIT y sus aplicaciones
en la industria.
Definir los parámetros de un MIT y su funcionamiento dentro del motor
de inducción así como la importancia de conocer dichos parámetros.
Señalar los métodos más utilizados para la determinación los parámetros
de un MIT.
Comparar los resultados obtenidos por medio del programa desarrollado
con resultados obtenidos de manera experimental.
2
1.2
Metodología
Para el cumplimiento de los objetivos planteados se utilizaron herramientas para
programación utilizando el software Matlab® para resolver las ecuaciones que involucran
los datos de placa de un motor de inducción con los parámetros del circuito equivalente del
motor. Se utilizará para la solución de sistemas no lineales de la forma F(x)=0 la rutina
fsolve de Matlab. Se analizó el circuito equivalente por fase de un MIT; este análisis dio
como resultado cinco ecuaciones relacionadas con los datos de placa del motor y con los
parámetros del circuito equivalente del motor. Se aplicaron las pruebas a 7 motores
distintos y luego se compararon los resultados obtenidos con dicho programa con
resultados obtenidos de manera experimental en el laboratorio.
3
2. CAPÍTULO 2: Desarrollo teórico
En la actualidad los motores eléctricos representan los mayores consumidores de energía
eléctrica en plantas industriales. El 60 y 70 por ciento de dicho consumo corresponde a equipos
tales como ventiladores, compresores, bombas, bandas de transporte y otros. Estos dispositivos
se encuentran conectados a motores eléctricos.
La utilización de motores eléctricos se debe principalmente a los siguientes aspectos:
•
Su variedad de potencias y su versatilidad de utilización. Los
motores eléctricos se utilizan en varias aplicaciones en distintas locaciones como
hogares, instalaciones industriales, el transporte, en la agricultura y en pequeñas
industrias y talleres.
•
Potencias comprendidas entre los pocos watts hasta motores de alta
capacidad.
•
Su rendimiento es bastante elevado, más alto en comparación con
los motores de combustión interna equivalente.
•
Su larga duración, gracias a los avances en diseño y en la
fabricación de los motores lo que brinda una mayor robustez , el mantenimiento
es sumamente fácil y una mayor vida útil.
4
Se puede definir un motor eléctrico como aquella máquina de tipo eléctrica cuya
finalidad es la de transformar energía eléctrica en energía mecánica, lo que realiza a través de
campos magnéticos variables. Dichos motores se utilizan en distintos campos como en el área
industrial, en el campo comercial y residencial.
Como todas las máquinas eléctricas, un motor eléctrico está constituido por un circuito
magnético y dos eléctricos, uno colocado en la parte fija (estator) y otro en la parte móvil (rotor).
El circuito magnético de los motores eléctricos de corriente alterna está formado por láminas
magnéticas apiladas y aisladas entre sí para eliminar el magnetismo remanente. El cilindro se
introduce en el interior del anillo y, para que pueda girar libremente, hay que dotarlo de un
entrehierro constante. El anillo se dota de ranuras en su parte interior para colocar el bobinado
inductor y se envuelve exteriormente por una pieza metálica con soporte llamada carcasa.
El cilindro se adosa al eje del motor y puede estar ranurado en su superficie para colocar
el bobinado inducido (motores de rotor bobinado) o bien se le incorporan conductores de gran
sección soldados a anillos del mismo material en los extremos del cilindro (motores de rotor en
cortocircuito) similar a una jaula de ardilla, de ahí que
reciban el nombre de rotor de jaula de ardilla.
En este tipo de máquinas eléctricas la tensión que se produce en los devanados o en el
conjunto de bobinas se puede deber a tres aspectos: al movimiento de rotación mecánica en un
campo magnético de dichas bobinas, al hacer girar de forma mecánica el campo magnético por
dichos devanados o al variar la reluctancia con la rotación del rotor.
2.2
Motor de inducción trifásico (MIT)
Los MIT son aquellos motores de corriente alterna en los cuales la generación del par
electromagnético se lleva a cabo debido a la interacción de los conductores por los cuales circula
corriente eléctrica, bajo la acción de un campo magnético rotatorio. El campo magnético variante
o giratorio, formado por el devanado del estator, al cortar los conductores del rotor, genera una
fuerza electromotriz de inducción. Esta interacción entre las corrientes en dichos conductores y
5
el campo magnético giratorio genera una fuerza electrodinámica en los conductores en el rotor,
lo que hace girar el rotor del motor. Es por esta acción que se le llama motor de inducción.
Básicamente el motor de inducción se basa en la Ley de Faraday:
ߝ = −ܰ
ௗథ
ௗ௧
(2.2-1)
La importancia de análisis de un motor de inducción radica en su gran robustez, su
construcción, así como el hecho de obtener un campo magnético giratorio con una velocidad de
sincronía determinada por el número de polos y por la frecuencia de alimentación. El MIT se
puede clasificar según el tipo de rotor en dos tipos:
Motor de inducción de Jaula de Ardilla: Este tipo de motor se caracteriza por no
ofrecer ningún tipo de acceso a los parámetros del motor, es decir, está aislado del estator. Este
motor cuenta con un devanado compuesto por barras conductoras introducidas en su rotor, en
cortocircuito en los extremos por medio de anillos conductores. Gracias a su simplicidad y a su
robustez este tipo de motor es el más utilizado.[3]
Motor de inducción de anillos deslizantes: Se caracteriza por permitir el acceso a sus
parámetros mediante escobillas, lo que hace posible la modificación de sus parámetros,
principalmente su resistencia para cambiar la velocidad en la cual se obtiene el par máximo. El
rotor es construido con un devanado semejante al del estator con el mismo número de polos en
ambos devanados. En el rotor se conectan los anillos colectores que están sobre el eje. Las
escobillas de carbón de los anillos posibilitan que las terminales del rotor se encuentren en la
parte externa del motor.[5]
6
Por el Teorema de Ferraris, cuando por estas bobinas circula un sistema de corrientes
trifásicas equilibradas, se induce un campo magnético giratorio que envuelve al rotor. Este
campo magnético variable va a inducir una tensión en el rotor según la Ley de inducción de
Faraday. La acción mutua del campo giratorio y las corrientes existentes en los conductores del
rotor, originan una fuerza electrodinámica sobre dichos conductores del rotor, las cuales hacen
girar el rotor del motor.[1]
La parte fija del circuito magnético (estátor) es un anillo cilíndrico de chapa
magnética ajustado a la carcasa que lo envuelve. La carcasa tiene una función puramente
protectora. En la parte interior del estator van dispuestos unas ranuras donde se coloca el
bobinado correspondiente.[1]
Dentro del estator se introduce el rotor, el cual consiste de un tipo de chapa magnética
fija al eje. Se tienen ranuras alrededor para la colocación del devanado. El entrehierro de estos
motores es constante en toda su circunferencia con un valor lo más pequeño posible
El punto de partida del estudio de un motor de inducción trifásico en encuentra en la
definición de la velocidad síncrona, la cual se define como:
݊௦ =
ଵଶ଴∗௙
௣
(2.2-2)
donde:
f = Frecuencia de alimentación.
p = Número de polos del motor.
Por otro lado el deslizamiento se define como:
7
‫=ݏ‬
௡ೞ ି௡ೝ
௡ೞ
(2.2-3)
donde:
ns = Velocidad de sincronía.
nr = Velocidad de rotor.
Figura 2.1 Motor de inducción jaula de ardilla[1]
Como los sistemas eléctricos industriales utilizan fuentes trifásicas de energía, los
motores de inducción se fabrican con tres devanados, espaciados 120 grados. Cada bobina o
devanado es inyectado con corrientes senoidales desfasadas 120 grados en el tiempo entre cada
una; cada una de las bobinas crea un campo magnético estático, cuya amplitud se haya en la
dirección del eje magnético del devanado y cambia senoidalmente en el tiempo. Cuando se
combinan los campos pulsantes producidos por las tres corrientes, se obtiene un campo
magnético distribuido senoidalmente en el espacio, cuya rotación tiene una velocidad igual a las
8
variaciones de las corrientes en el tiempo. Para el MIT la velocidad del campo magnético
rotatorio ns varía directamente con la frecuencia eléctrica del sistema, pero inversamente con la
cantidad de polos p.
Como la cantidad de polos depende exclusivamente del tipo de bobinado que se tiene,
entonces la velocidad es una función de la frecuencia.
2.2.1
Par inducido
Las corrientes trifásicas producidas por las tensiones aplicadas al MIT producen un
campo magnético Bs que gira con dirección contraria a las mancillas del reloj, lo que induce una
tensión en las barras del rotor, descrita por la ecuación:
݁௜௡ௗ = ሺ‫ܤ × ݒ‬ሻ ∙ ݈
(2.2-4)
con v la velocidad en la barra del rotor con respecto al campo magnético; B es la
densidad de flujo magnético que se representa como vector; y l es la longitud del conductor en el
campo magnético.
Al presentarse un movimiento relatico entre el rotor y el capo magnético del estator Bs se
induce una tensión en la barra del rotor. Por otra parte el flujo magnético del rotor produce un
campo magnético en el rotor Br. Al interactuar ambos campos magnéticos se obtiene un par
inducido dado por la ecuación
߬௜௡ௗ = ݇‫ܤ‬ோ × ‫ܤ‬௦
(2.3-2)
9
Dicho par se dirige en el sentido contrario a las manecillas del reloj. En condiciones
nominales los campos magnéticos del estator y del rotor giran a la velocidad sincrónica; el rotor
por otro lado tiene una velocidad menor.
2.3
Circuito equivalente del motor de inducción trifásico
Como se ha explicado anteriormente, se inducen corrientes en el rotor desde el estator, lo
que se puede catalogar como una acción transformadora, por lo que el circuito equivalente de un
MIT es muy similar al de un transformador. Existe una cierta resistencia y auto inductancia en
los devanados del estator representados en el circuito equivalente de la máquina. En este modelo
la resistencia del estator es R1 y la reactancia de dispersión del estator es X1.
Al existir un entrehierro en el motor de inducción, existe una relación entre el flujo
magnético y la tensión aplicada V. Cuanto mayor sea la reluctancia generada por el entrehierro,
se necesitará mayor corriente de magnetización para obtener un flujo determinado. La reactancia
de magnetización se modela como Xm. Las pérdidas en el núcleo por otro lado se representa
como Rc.
Figura 2.2 Circuito inicial del motor de inducción[3]
El acople entre la tensión interna E1 y el voltaje secundario Er se realiza por medio de un
transformador ideal cuya relación de espiras es denomina aef. El voltaje inducido es directamente
10
proporcional al deslizamiento para cualquier deslizamiento así como la frecuencia:
‫ܧ‬௥ = ‫ܧݏ‬ோ଴
݂௥ = ‫݂ݏ‬௘
(2.3-1)
(2.3-2)
donde ER0 es la tensión a rotor bloqueado, s es el deslizamiento y fe es la frecuencia
eléctrica de la línea.
La reactancia del rotor XR no permanece con un valor constante; depende de la
inductancia LR, de la corriente del rotor y de la frecuencia ωR.
ܺோ = ߱ோ ‫ܮ‬ோ = 2ߨ݂ோ ‫ܮ‬ோ
(2.3-3)
Utilizando la ecuación del deslizamiento se obtiene:
ܺோ = 2ߨ݂௘ ‫ܮ‬ோ = ‫ݏ‬ሺ2ߨ݂௘ ‫ܮ‬ோ ሻ = ‫ܺݏ‬ோ଴
(2.3-4)
donde XR0 es la reactancia en condición de rotor bloqueado.
La corriente en el rotor se calcula como:
‫ܫ‬ோ =
ಶೃ
ೃೃ శ ೕ೉ೃ
(2.3-5)
‫ܫ‬ோ =
ಶೃ
ೃೃ శ ೕೞ೉ೃబ
(2.3-6)
11
‫ܫ‬ோ =
ಶೃబ
ೃೃ
శೕ೉ೃబ
ೞ
(2.3-7)
Utilizando la última ecuación es posible obtener la impedancia equivalente del
secundario (rotor):
ܼோ,௘௤ =
ோೃ
௦
+ ݆ܺோ଴
(2.3-8)
Ahora, trasladando las tensiones, las corrientes y las impedancias del secundario al primario a
través de la relación de espiras del transformador, se obtiene el circuito equivalente del motor de
inducción por fase.
‫ܧ‬ଵ = ܽ௘௙ ‫ܧ‬ோ଴
‫ܫ‬ଶ =
಺ೃ
ೌ೐೑
ܼଶ = ܽ௘௙ ଶ (
(2.3-9)
(2.3-10)
ோೃ
௦
+ ݆ܺோ଴ )
(2.4-11)
ܴଶ = ܽ௘௙ ଶ ܴோ
(2.3-12)
ܺଶ = ܽ௘௙ ଶ ܺோ଴
(2.4-13)
Con estas relaciones se obtiene el circuito equivalente final del MIT.
12
Figura 2.2 Circuito equivalente final [3]
2.4
Obtención de los parámetros del motor de inducción
Existen diferentes métodos para la obtención de los parámetros del motor de inducción
trifásico, cada uno depende de la información con la que se cuenta del motor a modelar.
2.4.1
Método de los elementos finitos
Es uno de los métodos que se ha utilizado con mayor fuerza para el modelado de
fenómenos físicos. Se trata de un método asistido por computadora, con el objetivo de encontrar
aproximaciones numéricas de soluciones de ecuaciones. En un sentido más matemático, se basa
en la transformación de un cuerpo de naturaleza continua en un modelo discreto aproximado.
Cualquier fenómeno que cumpla con las siguientes características puede ser modelado por dicho
método:
•
Debe ser un evento que pueda ser modelado por ecuaciones de cálculo,
ya sea integral, diferencial, cálculo integrodiferencial.
•
Propiedades físicas tienen la posibilidad de cambiar en diferentes
secciones del sistema.
13
•
La región del sistema o fenómeno es capaz de tener cualquier forma
geométrica en un número indiferente de dimensiones.
•
Los problemas a resolver pueden ser tanto de carácter lineal como no
lineal.
•
Los agentes externos pueden ser de distinta forma física aplicables en
la frontera o en regiones internas del sistema o al principio del tiempo
de estudio, es decir, en las condiciones iniciales.
Básicamente lo que se debe de hacer es dividir el sistema en regiones pequeñas llamados
elementos. A todo el conjunto de elementos se le conoce con el nombre de malla y para cada
elemento se definen ecuaciones que expliquen su comportamiento.
El problema o la gran dificultad para aplicar este método en la determinación de los
parámetros de un motor, en este caso el motor de inducción trifásico, radica en que debe tener
conocimiento sobre las características constructivas físicas del motor, su composición y
dimensionamiento, así como contar con un software adecuado y conocimiento especializado para
interpretar correctamente los resultados.
2.4.2
Pruebas de vacío y rotor bloqueado
Los parámetros de un motor de inducción se pueden obtener mediante pruebas de vacío,
pruebas de rotor bloqueado y pruebas de corriente continua a los devanados del rotor.
Prueba de vacío: Este tipo de prueba permite conocer datos acerca de la corriente de
excitación y de las pérdidas sin carga. Para este tipo de prueba es necesario realizarla a
frecuencia nominal y las tensiones deben ser balanceadas en las terminales del estator. Consiste
en hacer mediciones de la tensión de línea a neutro, la intensidad de corriente de línea y la
potencia de entrada eléctrica total. Con dichos datos y con relaciones entre ellos se puede obtener
14
la reactancia de magnetización. Como en esta prueba el motor está en vacío se asume que el
deslizamiento es cero.
Prueba de rotor bloqueado: En esta prueba el rotor se bloquea, esto hace que no pueda
girar, por lo que el deslizamiento tiene un valor numérico de uno. Con el rotor bloqueado se
mide la tensión línea a neutro, la intensidad de corriente de línea y la potencia trifásica. Esta
prueba permite determinar la reactancia del estator y la resistencia y reactancia del rotor referida
al estator.
La prueba de corriente continua consiste en aplicar tensión continua al devanado del rotor
y por medio de la Ley de Ohm se obtiene la resistencia de dicho devanado.
2.4.3
Prueba en respuesta de frecuencia e identificación de la respuesta transitoria
En estos dos métodos se hace un análisis del motor de inducción en el dominio de
la frecuencia. El método frecuencial es más exacto ya que se basa en mediciones en
estado estacionario, además que es posible la aplicación de filtros y de valores medios, lo
que mejora la toma de datos. Sin embargo este método cuenta con la dificultad de que se
necesita equipo complejo y con un alto costo económico, así como de un software
especializado.
2.5
Diseños de motores de inducción
De acuerdo con la National Electric Manufacturers Association (NEMA) y con la
International Electrotechnical Comision (IEC), existe una clasificación para la identificación de
los MIT comerciales por medio de letras, tomando en consideración las curvas características
par-velocidad. Los motores se dividen en motores clase A, B, C, D, E y F, aunque estos dos
últimos son en la actualidad obsoletos.[3]
Motores clase A: Este motor es del tipo jaula de ardilla. Se utiliza a velocidades constantes. Se
utilizan en aplicaciones tales como sopladores, ventiladores, bombas, tornos, entre otros. Cuenta
15
con una buena capacidad de disipación de calor, alta resistencia y una baja reactancia en el
momento del arranque, acelera rápidamente hasta alcanzar la velocidad nominal. Dicho motor
cuenta con un par máximo entre 200 y 300 por ciento del par de plena carga y a un bajo
deslizamiento. Últimamente han sido reemplazados por motores de clase B. Una desventaja de
estos motores es que la corriente de arranque sufre variaciones de entre cinco y siete veces la
corriente a plena carga. Aún así tienen la mejor regulación de velocidad (entre 2 y 4 por ciento).
Motores clase B: Son conocidos como motores de propósito general. En su mayoría
pertenecen a motores de rotor de jaula de ardilla. Su par de arranque es normal, el par máximo
tiene un valor igual o mayor al 200 por ciento del par de carga nominal. Cuenta con un
deslizamiento bajo, menor al cinco por ciento, al igual que su corriente de arranque, es por este
aspecto que se prefiere sobre los motores clase A, pues produce casi el mismo par de arranque
pero con menor corriente.
Motores clase C: Los motores clase C cuentan con un alto par de arranque con bajas
corrientes de arranque; debido su alto par de arranque sufre una aceleración de una forma rápida.
Son más costosos ya que son construidos con rotor de doble jaula. Con cargas pesadas este motor
experimenta una limitación en la disipación de calor, pues la mayor parte de la intensidad de
corriente eléctrica se acumula en el devanado superior. Con arranques frecuentes se
sobrecalienta. Su deslizamiento es bajo a plena carga, menos del cinco por ciento. Se utilizan en
aplicaciones en la cuales se necesita un alto par de arranque, como en compresores, bombas y
transportadores.
Motores clase D: Son motores llamados de alto par y alta resistencia, esto debido a que
tienen un par de arranque del doscientos setenta y cinco por ciento o más del par nominal, y una
corriente de arranque baja. Sufren un alto deslizamiento a plena carga, además de que la alta
resistencia del rotor desplaza el par máximo hacia una velocidad muy baja. Son diseñados para
los servicios pesados de arranque, en volantes utilizados en troqueladoras o cortadoras.
2.6
Datos de placa de un motor de inducción
16
Los datos de placa en un motor son aquellas características propias del mismo. En la
figura se muestra una placa típica de un motor. Las más importantes son:
Figura 2.3 Placa típica de un motor de inducción [10]
Modelo, serie, número de catálogo, número de parte y número de existencia: Tienen
códigos que especifican la fecha de fabricación del motor, la serie y el diseño del motor, la línea
de ensamble características como tipo básico, tamaño del bastidor o carcasa. Potencia y el
número de polos.
Tipo de motor: Especifica la clase de motor. Los tipos más comunes en motores de
corriente directa son en serie, en derivación, compuestos y los de imán permanente. Cuando se
utilizan los términos estabilizado o compensado, se refieren a motores con un campo débil en
serie con un campo principal en derivación. En motores de corriente alterna los más comunes son
los motores sincrónicos y los de inducción. Entre estos motores los de arranque por
repulsión/inducción, los motores universales y los de corriente alterna-directa son muy comunes.
Es importante recalcar el hecho de que los diferentes tipos de motores tienes sus propias
características, por lo que un tipo de motor no puede ser reemplazado con otro.
Potencia: La potencia nominal se refiere a la potencia que el motor puede ofrecer sin
someterse a sobrecalentamiento. Un motor tiene un régimen de trabajo continuo, es decir, pueden
17
proveer de potencia de manera continua, sin sobrecalentarse. Los arranques de manera periódica
sobrecalentarán el motor, ya que el frenaje hace que se caliente. Así mismo un motor con
sobrecarga se sobrecalentará, lo que tendrá como consecuencia el disparo de disyuntores de
protección contra sobrecarga y lo que llevará a que se queme.
Velocidad: Se refiere a la velocidad a la cual el motor de inducción produce su potencia
nominal., la velocidad nominal de operación de un motor sincrónico y la velocidad de operación
base de un motor de corriente directa. Generalmente los motores sufren una disminución en su
velocidad conforme se aumenta la carga. En algunos casos la placa indicará la velocidad sin
carga aproximada. De acuerdo a la capacidad de enfriarse en un motor, así será su velocidad
mínima.
Corriente de carga completa (FLA): Se define como la corriente consumida cuando el
motor produce la potencia nominal. En la placa se denomina como FLA (Full Load Amperage o
Amperaje de Carga Completa). Cuando el motor opera con una carga baja o sin carga, dicho
motor consumirá una corriente menor a dicho valor; en contraposición, si el motor está con
sobrecarga, aumentará dicho amperaje. Es importante destacar el hecho que el Amperaje de
Carga Completa hace referencia a la corriente en cada conductor de fase. Este valor es
sumamente esencial a la hora de escoger los alimentadores correctos del circuito derivado, los
conductores de dicho circuito, los contactores, el equipo de protección y de control. También los
disyuntores de protección contra sobre carga, el equipo para el arranque y para el control del
motor dependen de esta corriente; estos disyuntores ofrecen protección al motor por
sobrecalentamiento al detectar el calor producido por la corriente en un elemento de
calentamiento con poca resistencia, ya que el calor depende de la corriente.
Hay que destacar el hecho que cuando se cambia un motor por otro, se debe verificar el
Amperaje de Carga Completa, ya que por ejemplo si el motor de repuesto consume más corriente
respecto al motor que se reemplazará, se tendrá que calibrar nuevamente los disyuntores de
protección contra sobre carga., de tal forma que se disparen cuando detectan una corriente más
18
alta. Si por otro lado el motor nuevo consume menos corriente que el que se tenía, se tendrá el
caso contrario por lo tanto se tendrán que recalibrar los disyuntores para que se disparen con una
corriente más baja.
Código: Dicho dato posibilita el cálculo de la Corriente de Rotor Bloqueado o
Enclavado. Dicha corriente se refiere a la corriente presenta cuando se aplica tensión sin que el
rotor gire, como por ejemplo en el arranque o cuando el motor tiene una carga tan grande que se
ahoga. En muchos motores dicha corriente puede ser de hasta cinco veces el valor del Amperaje
de Carga Completa, esto puede causar problemas ya que una corriente alta hace que decaiga la
tensión, lo que conlleva a que algunos motores lleguen a atascarse o tengan la dificultad de
arrancar. Conocer esta corriente es necesario para dimensionar los disyuntores del circuito. Se
multiplica las cifras de la tabla por la potencia nominal del motor y se divide el resultado entre
los kilovots aplicados, de esta forma se obtiene la Corriente de Rotor Bloqueado o Enclavado.
Tensión: La tensión especificada en la placa de un motor se refiere a la tensión completa
que el motor necesita a la frecuencia expresada para producir su salida de potencia nominal en
los motores de corriente alterna. Como existen pérdidas en la línea de transmisión, generalmente
la tensión con la que realmente se cuenta sea menor en comparación con la tensión nominal, por
lo que la tensión de placa es un poco menor a las tensiones nominales de alimentación. La
tensión en los motores puede variar dependiendo de la carga total que tiene el sistema, por lo que
son fabricados para que operen con tensiones que varíen alrededor de un 10% del dato dado en la
placa. Si un motor sufre una mayor variación de tensión, pueden sufrir una disminución en la
eficiencia y el factor de potencia, se ahoguen bajo la carga pico o que no arranquen con tensión
baja, o que algunos motores consumirán más corriente con tensión baja o consumirán mayor
corriente con tensión alta, lo que llevara al motor a sobrecalentarse.
Factor de servicio: Hace referencia a la sobrecarga continua que un motor puede
soportar sin sufrir daño alguno. Para aquellos motores que serán expuestos a sobrecargas con
mucha frecuencia, tendrán que tener un factor de servicio alto.
19
Factor de potencia: Es un valor comprendido entre 0 y 1, y es la medida de la corriente
del motor que está en fase con la tensión aplicada. Si el factor de potencia tiene un valor de cero,
quiere decir que la tensión y la corriente están a 90 grados desfasados y que se estarán
produciendo volts-amperes. Si l factor de potencia tiene un valor de 1, la corriente y la tensión
están en fase, lo que significa que se produce potencia activa o calor en el motor. Todos los
motores de inducción cuentan con factores de potencia en atraso.
Eficiencia: En muchos motores se incluye en los datos del fabricante un régimen de
eficiencia en condiciones nominales. Si un motor es operado bajo una carga baja o alta, el motor
será menos eficiente que lo especificado.
2.7
Resolución de ecuaciones no lineales por medio de Matlab:
Optimization ToolboxTM
El programa Matlab ofrece algoritmos para optimización, para la resolución de problemas
ya sea con restricciones o sin ellas, de naturaleza discreta o continua. Por medio de la
heeramienta “Optimization Toolbox incluye funciones para programación lineal, cuadrática,
entera binaria, optimización no lineal, mínimos cuadrados no lineales, sistemas de ecuaciones no
lineales y optimización multiobjetivo”[8]. Para la solución de ecuaciones no lineales cuenta con
funciones o solvers predeterminadas, las cuales cuentan con opciones de optimización, además
utiliza un algoritmo de región de confianza llamada dogleg en aquellos sistemas de ecuaciones
no lineales el número de ecuaciones es igual al número de incógnitas, o puede solucionar esta
clase de problemas por medio de algoritmos reflexivos de región de confianza y LevenbergMarquardt.
20
2.7.1
Rutina interna fsolve
La función interna fsolve permite obtener el conjunto solución de un sistema de
ecuaciones no lineales de la forma F(x) = 0, de acuerdo a ciertos parámetros indicados por el
usuario. Dicha rutina implementa tres algoritmos para obtener la solución del sistema de
ecuaciones no lineales como se mencionó anteriormente: región de confianza dogleg, región de
confianza reflexiva y el algoritmo Levenberg-Marquardt. La región de confianza dogleg es el
único algoritmo creado para resolver sistemas de ecuaciones no lineales; los otros algoritmos
tratan de minimizar la suma de cuadrados.
Método de región de confianza dogleg: El método de Newton es considerado el
método más común para la obtención de las soluciones de ecuaciones no lineales, que se basa en
la búsqueda de direcciones dk tal que:
‫ܬ‬ሺ‫ݔ‬௞ ሻ݀௞ = −‫ܨ‬ሺ‫ݔ‬௞ ሻ
‫ݔ‬௞ାଵ = ‫ݔ‬௞ + ݀௞
(2.7-1)
(2.7-2)
con J(xk) como el Jacobiano de F(x) evaluado en xk
ߘ‫்) ݔ( ܨ‬
‫ ۍ‬ଵ ௞ ்‫ې‬
‫ܬ‬ሺ‫ݔ‬௞ ሻ = ‫ܨߘ ێ‬ଶ (‫ݔ‬௞ ) ‫ۑ‬
⋮
‫ێ‬
‫ۑ‬
்
‫ܨߘ ۏ‬௡ (‫ݔ‬௞ ) ‫ے‬௡௫௡
(2.7-3)
El problema que tiene dicho método es que el Jacobiano puede ser singular, que llevaría a
un mal condicionamiento del sistema a resolver, lo que conllevaría a no encontrar la dirección dk
y computacionalmente hablando puede llevar un alto costo. Otra desventaja es que si el punto
inicial se encuentra muy lejos de la solución, el metódo podría no converger debido a que el
método de Newton es de naturaleza de convergencia local. Con la técnica de región de confianza
dogleg se experimenta un gran mejoramiento en la robustez en el caso en el que se inicia con un
21
punto lejos de la solución y además se logra un mejor manejo en el caso en el que el jacobiano es
singular [9]. Este método construye una trayectoria poligonal en dos tramos, un tramo coincide
con la dirección del descenso más pendiente y el otro camino tiende a la dirección de Newton. Se
debe tener una función de elección con tal de comparar si xk+1 es mejor o peor que xk, la cual está
dada por:
minௗ ݂(݀) =
ଵ
ଶ
‫ܨ‬ሺ‫ݔ‬௞ + ݀ሻ் ‫ݔ(ܨ‬௞ + ݀)
(2.7-4)
No obstante un mínimo de f(d) no siempre es una raíz de F(x). Si dk es raíz de
‫ܯ‬ሺ‫ݔ‬௞ + ݀ሻ = ‫ܨ‬ሺ‫ݔ‬௞ ሻ + ‫ܬ‬ሺ‫ݔ‬௞ ሻ݀
(2.7-5)
es una raíz de m(d) donde
minௗ ݉ሺ݀ሻ = ∥ ‫ݔ(ܯ‬௞ + ݀) ∥ଶଶ =
ଵ
ଶ
=
ଵ
ଶ
ଵ
ଶ
∥ ‫ܨ‬ሺ‫ݔ‬௞ ሻ + ‫ܬ‬ሺ‫ݔ‬௞ ሻ݀ ∥ଶଶ
‫ܨ‬ሺ‫ݔ‬௞ ሻ் ‫ܨ‬ሺ‫ݔ‬௞ ሻ + ݀ ் ‫ܬ‬ሺ‫ݔ‬௞ ሻ் ‫ܨ‬ሺ‫ݔ‬௞ ሻ +
ଵ
ଶ
݀ ் ‫ܬ‬ሺ‫ݔ‬௞ ሻ் ‫ܬ‬ሺ‫ݔ‬௞ ሻ݀
(2.7-6)
(2.7-7)
Con todo este desarrollo se tiene que m(d) es una mejor alternativa para ser la función de
elección f(d), y el subproblema de región de confianza es
minௗ ቂ ‫ܨ‬ሺ‫ݔ‬௞ ሻ் ‫ܨ‬ሺ‫ݔ‬௞ ሻ + ݀ ் ‫ܬ‬ሺ‫ݔ‬௞ ሻ் ‫ܨ‬ሺ‫ݔ‬௞ ሻ +
ଵ
ଶ
ଵ
ଶ
݀ ் ‫ܬ‬ሺ‫ݔ‬௞ ሻ் ‫ܬ‬ሺ‫ݔ‬௞ ሻ݀ቃ
(2.7-8)
Y se tiene que ║D·d║≤ r, donde D es una matriz diagonal escalada y r es un escalar
positivo. El algoritmo busca el paso d minimizando la expresión anterior, definido por dos pasos:
el paso de Cauchy y el paso de Gauss-Newton para F(x). El paso de Cauchy está definido por
݀௖ = −ߙ‫ܬ‬ሺ‫ݔ‬௞ ሻ் ‫ܨ‬ሺ‫ݔ‬௞ ሻ
(2.7-9)
22
donde α se escoge para minimizar. El paso Gauss-Newton se obtiene al resolver
‫ܬ‬ሺ‫ݔ‬௞ ሻ ∙ ݀ீே = − ‫ܨ‬ሺ‫ݔ‬௞ ሻ
(2.7-10)
Con los resultados anteriores se llega a que el paso d se define de la siguiente manera
݀ = ݀௖ + ߣሺ݀ீே − ݀௖ ሻ
(2.7-11)
En la expresión anterior, λ corresponde al valor más grande en el intervalo [0,1] tal que
║d║ ≤ ∆. En el caso en el que Jk sea singular o casi singular, d es la dirección de Cauchy.
Método de región de confianza reflectivo: Para este método se considera el problema
de minimización sin restricciones, el de minimizar la función f(x), la cual toma vectores como
argumentos y devuelve escalares. Se supone que se está en un punto x en el espacio N y se quiere
obtener un mejor punto de la función. Básicamente se busca aproximar f por medio de una
función simple q, la cual debe ser un reflejo del comportamiento de la función f en una vecindad
N alrededor del punto x. Dicha vecindad es la región de confianza. Se obtiene un paso de prueba
s por la minimización alrededor de N, lo que se conoce como el subproblema de región de
confianza
min௦ ሼ‫ݍ‬ሺ‫ݏ‬ሻ, ‫ܰ ߳ ݏ‬ሽ
(2.7-12)
El punto actual se convierte en el punto x +s si f(x+s) < f(x), en caso contrario x se
mantiene igual y N se reduce, mientras que el paso de prueba se recalcula.
La clave para la definición de una región de confianza para minimizar f(x) es la elección
y el cálculo de q, así como la elección y la modificación de la región de confianza N y la
precisión con la que se resuelve el subproblema de región de confianza. En la forma general, q se
define como los dos primeros términos de la aproximación de Taylor de F en x, la vecindad N es
esférica o tiene forma elipsoidal, y el subproblema de región de confianza es
23
݉݅݊ ቄ ‫ ݏܪ ் ݏ‬+ ‫݃ ் ݏ‬, ‫ ≤∥ ݏܦ ∥ ݁ݑݍ ݈ܽݐ‬Δ ቅ
ଵ
ଶ
(2.7-13)
donde g es el gradiente de la función f en x, H es la matriz Hessiana (la matriz simétrica
de las segundas derivadas), D es la matriz diagonal escalar y ∆ es un escalar positivo. Con la
herramienta de optimización de Matlab se restringe el subproblema a un subespacio
bidimensional S, el cual se determina por medio de un gradiente conjugado precondicionado. Se
define S como el espacio lineal entre s1 y s2, en el cual s1 es la dirección del gradiente g y s2 la
dirección de Newton, es decir, la solución para
‫ݏ ∙ ܪ‬ଶ = −݃
(2.7-14)
Todo lo anterior se hace para forzar una convergencia global rápida.
Método de Levenberg-Marquardt: Este método es una modificación del método de
Newton. Se basa en la dirección de búsqueda que es solución del conjunto de ecuaciones lineales
ሺ‫ܬ‬ሺ‫ݔ‬௞ ሻ் ‫ܬ‬ሺ‫ݔ‬௞ ሻ + ߣ௞ ‫ܫ‬ሻ݀௞ = −‫ܬ‬ሺ‫ݔ‬௞ ሻ் ‫ܨ‬ሺ‫ݔ‬௞ ሻ
(2.7-15)
donde λk controla la magnitud y la dirección de dk.
En el caso de que λk = 0, la dirección de dk es igual a la dirección de Gauss-Newton. Si λk
tiende a infinito, dk tiende a la dirección de descenso más pendiente, con magnitud tendiendo a
cero, lo que lleva a la afirmación de que para valores muy grandes de λk, se logra que F(xk + dk)
< F(xk). Esto garantiza que λk puede ser controlado para lograr su descenso, por lo que este
método utiliza la combinación entre la dirección de Gauss-Newton y el descenso más pendiente
[9].
La rutina fsolve cuenta con distintas sintaxis dependiendo de los resultados que se
esperan y las visualizaciones que se quieran, tal como lo muestra la siguiente tabla.
24
Tabla 2.1 Sintaxis de la rutina fsolve
Sintaxis
x = fsolve(fun,x0)
x = fsolve(fun,x0,options)
[x,fval] = fsolve(fun,x0)
[x,fval,exitflag] = fsolve(...)
[x,fval,exitflag,output]=fsolve(
…)
[x,fval,exitflag,output,jacobian]
=fsolve(...)
Resultado obtenido
Trata de resolver el sistema no lineal fun(X) partiendo del
valor X=x0
Se resuelve el sistema con las opciones seleccionadas con la
instrucción optimset
Regresa el valor de la función fun en la solución x
Retorna la condición que ha motivado la finalización del
programa
1:La función converge a la solución
2:El cambio de x fue menor a la tolerancia determinada
3:El cambio del residuo fue menor que la tolerancia
especificada
4:La magnitud de la dirección de búsqueda fue menor que la
tolerancia
1: El algoritmo fue finalizado por la función salida
2: El algoritmo parece converger a un punto que no es raíz
3: El radio de confianza es demasiado pequeño
4: La dirección de búsqueda no disminuye el valor del
residuo
Regresa una estructura de salida con información sobre la
optimización
Regresa el jacobiano de la función en la solución x
Las opciones de la rutina fsolve se definen mediante la instrucción optimset y se asocian
con el tipo de algoritmo que se utiliza. Es importante señalar el hecho de que el número de
ecuaciones debe ser igual o mayor al número de incógnitas. Entre las opciones más comunes
están:
DerivativeCheck: Esta opción compara las derivadas obtenidas por medio del Jacobiano
(dadas por la función) con las obtenidas por diferencias finitas.
Dianostics: Despliega información de diagnóstico sobre la función que se quiere resolver.
DiffMaxChange: Se refiere al máximo cambio de las variables utilizando diferencias
finitas.
25
DiffMinChange: Es el mínimo cambio de las variables cuando se usan diferencias finitas.
Display: Se refiere a la cantidad de información desplegada en la pantalla: ‘off’ ninguna;
‘iter’, muestra cada iteración; ‘final’sólo muestra la última.
FunValCheck: Verifica la validez de los valores de la función objetivo.
Jacobian: Si se pone ‘on’, se utiliza el Jacobiano definido por la función, en otro caso se
obtiene el Jacobiano por diferencias finitas.
MaxFunEvals: Hace referencia al máximo número de evaluaciones de la función
determinadas.
MaxIter: Es el número de las máximas iteraciones permitidas determinadas por el
usuario.
TolFun: Es la tolerancia admisible del valor de la función.
TolX: Este parámetro se refiere a la tolerancia permitida de la variación de x.
Como esta rutina utiliza la localización de mínimos, es posible que de acuerdo a las
condiciones iniciales dadas, se detenga en un mínimo que no es raíz, por lo que se deben cambiar
dichas condiciones. Si el tamaño de paso es muy pequeño, la rutina no puede avanzar más por lo
que se deben cambiar las condiciones iniciales. El programa también puede dejar de correr si se
exceden el número máximo de iteraciones o de evaluaciones de la función, por lo que en estos
casos es preciso cambiar dichos parámetros por los que se consideren adecuados. Por otro lado
en el caso del método de región de confianza dogleg, es preciso que el sistema de ecuaciones no
lineales sea cuadrado, es decir, que el número de ecuaciones sea igual al número de incógnitas;
en los demás métodos no es necesario que se cumpla dicha condición, pero sí debe ser el número
de ecuaciones mayor o igual que el número de incógnitas. Para el caso de esta investigación se
utilizará el método de región de confianza dogleg.
26
3
CAPÍTULO 3: Desarrollo del programa
Para realizar el software que obtendrá los parámetros del MIT se tomará como base el
circuito de la figura 2. De los datos de placa de motor se utilizará tensión nominal, corriente
nominal, corriente de arranque, torque de arranque, torque máximo, potencia nominal, velocidad
nominal y factor de potencia.
Figura 3.4 Circuito equivalente a obtener [4]
El circuito se analiza bajo tres condiciones:
Funcionamiento a valores nominales: Bajo estas condiciones los parámetros de la
máquina presentados por los fabricantes son: la velocidad en el eje, la potencia de salida, el
factor de potencia, la eficiencia.
Funcionamiento a torque máximo: En este caso se desconoce el deslizamiento s pero
puede escribirse en términos de los parámetros de la máquina.
Funcionamiento en el momento del arranque: Para esta condición el deslizamiento es
unitario.
27
En las condiciones nominales y conociendo V e I, se puede conocer la impedancia total
equivalente de la máquina:
ܼ௘௤ =
௏∠଴
ூ∠ఏ
= ܴ௘௤ + ݆ܺ௘௤
ܼ௘௤ = ܴ௦ + ݆ܺ௦ +
ೃ
௝௑೘ ( ೝ ା ௝௑ೝ )
ೞ೙
ೃೝ
ା ௝(௑ೝ ା௑೘ )
ೞ೙
(3.3-1)
(3.1-2)
La parte real e imaginaria de esta impedancia permite obtener dos ecuaciones:
ܴ௘௤ = ܴ௦ +
ೃ మ
ቀ ೝ ቁ ା (௑ೝ ା௑೘ )మ
ܺ௘௤ = ܺ௦ +
೉೘
ା ௑೘ ௑ೝ మ ା௑ೝ ௑೘ మ
ೞ೙ మ
ೃ మ
ቀ ೝ ቁ ା (௑೘ ା ௑ೝ )మ
ೞ೙
ೃೝ ೉೘ మ
ೞ೙
(3.1-3)
ೞ೙
(3.1-3)
Ahora, tomando las pérdidas rotaciones como despreciables en condiciones nominales, se
asume que la potencia de salida es aproximadamente igual a la potencia desarrollada. Haciendo
un divisor de corriente y sabiendo que la corriente del rotor es función de la corriente del estator
se tiene que:
28
‫ܫ‬௥௡ = ‫ܫ‬௦௡ ೃೝ
ೞ೙
௝௑೘
(3.1-4)
௑೘
(3.1-5)
ା ௝ሺ௑೘ ା௑ೝ ሻ
Calculando su magnitud se obtiene:
|‫ܫ‬௥௡ | = |‫ܫ‬௦௡ |
ටቀೃೝ ቁ ା ሺ௑೘ ା௑ೝ ሻమ
మ
ೞ೙
Tomando la última expresión y sustituyéndola en la ecuación de la potencia nominal se
obtiene la tercera ecuación:
ܲ௡ =
ଷோೝ (ଵି௦೙ )
௦೙
௑೘ మ |ூೞ೙ |
(3.1-6)
మ
ೃ
ቀ ೝ ቁ ା(௑೘ ା ௑ೝ )మ
ೞ೙
Anteriormente se había mencionado el hecho de que al momento del arranque se sabe el
valor del torque y la corriente; con estos dos valores se puede encontrar la impedancia Zeqo en el
arranque. Pero de esta impedancia sólo se puede obtener su magnitud, la cual es:
ܼ௘௤௢ ඨ= ቀܴ௦ +
ோೝ ௑೘ మ
ோೝ మ ାሺ௑ೝ ା௑೘
ଶ
ቁ + ቀܺ௦ +
ሻమ
௑೘ (ோೝ మ ା௑ೝ మ ା௑ೝ ௑೘ )
ோೝ మ ା(௑ೝ ା௑೘ )మ
ቁ
(3.1-7)
Y con el torque se llega a la ecuación:
ܶ௔௥௥௔௡௤௨௘ =
ଷோೝ |ூೞೌೝೝೌ೙೜ೠ೐ |మ ௑೘ మ
ఠೞ ோೝ మ ା (௑೘ ା௑ೝ )మ
(3.1-8)
29
Como se puede notar se obtienen cinco ecuaciones con cinco incógnitas. La dificultad
para resolver este sistema de ecuaciones radica en que se tiene un sistema no lineal. Para
resolverlo se utiliza la rutina fsolve de matlab. En primer lugar se crea un archivo .m en el cual se
escribe el sistema de ecuaciones no lineales conformado por las relaciones antes mostradas que
describen el circuito equivalente del motor de inducción trifásico, el cual fue llamado
ecuaciones2, tal como lo muestra la siguiente figura:
Figura 3.1 Creación del archivo ecuaciones2.m con el conjunto de ecuaciones del motor
Luego de crear dicho archivo, se genera otro archivo donde se ubicará el programa
principal. En dicho archivo se solicitan los datos de placa del motor al usuario: Tensión nominal,
Corriente nominal, potencia nominal, velocidad nominal, torque de arranque, corriente de
arranque, torque máximo, factor de potencia, número de polis y la frecuencia. Así mismo se
30
especifican las distintas relaciones entre variables como por ejemplo la relación entre la
velocidad síncrona con el número de polos y la frecuencia.
Figura 3.2 Solicitud de datos de placa por medio del programa
Ahora, por medio de la función fsolve, el programa principal solucionará el sistema de
ecuaciones no lineales planteado en el archivo ecuaciones2.m. Para esto, esta función necesita
que se le brinden condiciones iniciales cercanas a la solución para una rápida respuesta. En la
figura 3.3 se muestra la implementación de fsolve en el programa.
31
Figura 3.3 Implementación de fsolve en el programa
De la figura anterior se observa la sintaxis de llamado de esta función. En este caso, x0
representa las condiciones iniciales dadas, options se refiere a los parámetros de solución tales
como el número de iteraciones máximas, la tolerancia y la tolerancia de la función deseada.
Luego de montar el programa, se dispuso a desarrollar una interfaz gráfica del usuario
por medio del entorno visual de Matlab GUIDE para representar dicho programa.[6]
32
Figura 3.4 Interfaz gráfica del programa
Para la validación del método se buscó en la literatura pruebas realizadas en motores de
inducción trifásico. Los datos de los motores 1, 2, 3 y 4 fueron obtenidos de pruebas que se
hicieron en la Universidad tecnológica de Pereira en Colombia para la obtención de los
parámetros de su circuito equivalente. Los datos de los motores 5, 6 y 7 fueron obtenidos de
pruebas hechas en la Escuela de Ingeniería Eléctrica de la Universidad de Costa Rica. En la
siguiente tabla se muestran los datos de placa de los motores de inducción que se sometieron al
programa creado por medio de Matlab.
33
Tabla 3.1 Datos de placa de motores de inducción
Dato de
placa
Tensión
nominal
(V)
Corriente
nominal
(A)
Potencia
nominal
(W)
Velocida
d
nominal
(rpm)
Torque
arranque
(Nm)
Corriente
arranque
(A)
Torque
máximo
(Nm)
Factor de
potencia
Número
de polos
Frecuenc
ia
Motor 1
Motor 2
Motor 3
Motor 4
Motor 5
Motor 6
Motor 7
220
220
220
220
208
208
208
8.7
2.4
9
3.2
1.2
1.2
1.2
2238
559.5
2238
559.5
176
176
176
3710
3430
3490
3420
1670
1670
1670
2.4
2.7
2.7
2.7
0.24
0.25
0.25
4.9
6
5.7
6
4.2
3.9
4.5
5.1
4.5
3.2
4.7
1.16
1.14
1.18
0.89
0.86
0.88
0.88
0.81
0.80
0.81
2
2
2
2
4
4
4
60
60
60
60
60
60
60
De acuerdo a pruebas realizadas en laboratorios a dichos motores, se tomaron los valores
de laboratorio como el valor teórico para medir que tan eficaz es el método aquí explicado. En
las siguientes tablas se observan los resultados obtenidos y su respectiva comparación con los
resultados obtenidos por medio del programa:
34
Tabla 3.2 Datos obtenidos motor 1
Valor obtenido por el
programa
Valor obtenido en el
laboratorio
Error (%)
1.6018
1.9214
16.63
Resistencia rotor (Ω)
0.8998
1.1500
21.7565
Reactancia rotor (Ω)
4.7779
5.4732
12.7037
2.0187
2.1411
5.7166
13.0912
15.8747
17.5341
Valor obtenido por el
programa
Valor obtenido en el
laboratorio
Error (%)
1.6304
1.9847
17.8515
Resistencia rotor (Ω)
0.91061
1.1574
21.3222
Reactancia rotor (Ω)
2.1058
2.5259
16.6316
2.0513
1.9824
3.4755
14.4436
17.9858
19.6944
Parámetro del circuito
Resistencia estator
(Ω)
Reactancia estator
(Ω)
Reactancia de
magnetización
Tabla 3.3 Datos obtenidos motor 2
Parámetro del circuito
Resistencia estator
(Ω)
Reactancia estator
(Ω)
Reactancia de
magnetización
35
Tabla 3.4 Datos obtenidos motor 3
Valor obtenido por el
programa
Valor obtenido en el
laboratorio
Error (%)
1.6006
1.8125
11.69
Resistencia rotor (Ω)
0.8994
1.0515
15.41
Reactancia rotor (Ω)
2.0854
2.8752
27.46
1.9918
2.071
3.82
14.4043
15.1247
4.76
Valor obtenido por el
programa
Valor obtenido en el
laboratorio
Error (%)
1.6165
1.8547
12.8430
Resistencia rotor (Ω)
0.90456
1.1747
22.9965
Reactancia rotor (Ω)
2.0996
2.9757
29.44
2.0131
2.241
10.1695
14.4346
16.7898
14.0275
Parámetro del circuito
Resistencia estator
(Ω)
Reactancia estator
(Ω)
Reactancia de
magnetización
Tabla 3.5 Datos obtenidos motor 4
Parámetro del circuito
Resistencia estator
(Ω)
Reactancia estator
(Ω)
Reactancia de
magnetización
36
Tabla 3.6 Datos obtenidos motor 5
Valor obtenido por el
programa
Valor obtenido en el
laboratorio
Error (%)
12.98
13.42
3.27
Resistencia rotor (Ω)
7.10
6.98
1.71
Reactancia rotor (Ω)
11.68
16.3
28.34
15.09
16.0
5.68
153.83
156.8
1.89
Valor obtenido por el
programa
Valor obtenido en el
laboratorio
Error (%)
12.98
13.01
0.23
Resistencia rotor (Ω)
7.13
6.6
8.03
Reactancia rotor (Ω)
11.69
15.91
26.52
15.09
16.71
9.69
153.82
158.2
2.76
Parámetro del circuito
Resistencia estator
(Ω)
Reactancia estator
(Ω)
Reactancia de
magnetización
Tabla 3.7 Datos obtenidos motor 6
Parámetro del circuito
Resistencia estator
(Ω)
Reactancia estator
(Ω)
Reactancia de
magnetización
37
Tabla 3.7 Datos obtenidos motor 7
Valor obtenido por el
programa
Valor obtenido en el
laboratorio
Error (%)
12.98
13.68
5.12
Resistencia rotor (Ω)
7.08
7.21
1.80
Reactancia rotor (Ω)
11.68
16.7
30.06
15.09
16.2
6.85
153.83
158.74
1.20
Parámetro del circuito
Resistencia estator
(Ω)
Reactancia estator
(Ω)
Reactancia de
magnetización
Algunos valores típicos de Rs rondan entre los 0.0535 Ω y los 27,3 Ω, mientras que los
valres de Rr pueden estar entre los 0.0685 Ω. En el caso de las reactancias, Xr puede tener valores
típicos entre 0.23 Ω y 23.15 Ω al igual que Xs, mientras que Xm tiene valores típicos entre 6.295
y 2532 Ω [7]. Esto hace ver que los valores obtenidos tanto experimentalmente como en el
programa son coherentes con datos reales de parámetros.
Observando los resultados obtenidos por medio del programa, se nota que los porcentajes
de error obtenidos resultan aceptables ya que son bajos. Dichos porcentajes de errores se pueden
deber a la forma en el que la rutina fsolve funciona. Como se mencionó en la sección 2.7, esta
rutina funciona por medio del método de Newton, el cual se basa en iteraciones, por lo que
necesita un punto inicial (condiciones iniciales) para comenzar a iterar. Dicho método utiliza la
convergencia global, por lo que es posible que al solucionar el sistema de ecuaciones no lineales,
haya convergido a un mínimo que no necesariamente sea una raíz del sistema en mención, que
está relacionado con la escogencia de los valores iniciales. Otra posible explicación de los
porcentajes de errores es que al realizar el programa no se indicó el Jacobiano del sistema, por lo
que fsolve utilizó predeterminadamente un Jacobiano aproximado por medio de diferencias
finitas, lo que ya conlleva un cierto grado de error.
38
Con respecto a las pruebas realizadas en motores en la Universidad de Costa Rica, es
importante indicar que dichos motores tenían los mismos datos de placa, es decir, teóricamente
eran idénticos. Sin embargo, datos tales como la corriente de arranque, factor de potencia, torque
máximo y torque nominal se obtuvieron de manera experimental, por lo que tomaron distintos
valores entre sí.
39
4
Capitulo 4: Conclusiones y Recomendaciones
La anterior investigación ha sido sumamente importante debido a los conocimientos y
destrezas que ha permitido obtener. Gracias al desarrollo de la misma, se han llegado a las
siguientes conclusiones:
4.1
Conclusiones
Los motores de inducción representan una gran parte de los motores que se utilizan hoy
en día para el uso industrial, gracias a que ofrece una amplia versatilidad en su aplicación. La
máquina de inducción es la más usada gracias a la disminución de los costos y a que se tiene un
amplio auge de la electrónica de potencia. Gracias a su sencillez, a su gran grado de
confiabilidad y su gran eficiencia son los que se escogen en muchas aplicaciones.
Se ha demostrado que el programa Matlab es una herramienta sumamente valiosa para la
resolución de cualquier tipo de problema o fenómeno físico. Además que su comprensión no es
muy complicada y ofrece gran confiabilidad a la hora de dar resultados. Además cuenta con un
entorno para la creación de interfaces, muy simple de implementar. La rutina fsolve resulta una
herramienta sumamente poderosa si se comprende exactamente, pues como lo demuestran los
resultados se han obtenido valores muy cercanos a los obtenidos en el laboratorio por medio de
las pruebas de vacío y rotor bloqueado. Es importante recalcar el hecho de que al utilizar
condiciones iniciales, fsolve puede tardar en dar soluciones, puede necesita iterar hasta converger
a la solución, o se puede obtener un mínimo local que no necesariamente es una raíz.
4.2
Recomendaciones
Como se ha mencionado con anterioridad, la rutina fsolve necesita de condiciones
iniciales para solucionar el conjunto de ecuaciones no lineales, por lo que es recomendable
conocer de antemano valores conocidos de los distintos parámetros a determinar, de tal forma
40
que el método comience de la forma más exacta posible. Además es importante tomar en cuenta
las opciones de optimización de Matlab y manipularlas de tal forma que se obtenga una solución
correcta.
También se recomienda utilizar técnicas que no hagan uso de modelos para el
planteamiento de ecuaciones y el uso de herramientas más potentes, como el desarrollo de los
elementos finitos.
41
5
BIBLIOGRAFIA
1
“Tipos de motores eléctricos”. http://www.photomobiware.com/tech/technical16.php
2
“Conceptos básicos sobre el uso de los motores de inducción trifásicos”,
http://literature.rockwellautomation.com/idc/groups/literature/documents/wp/icgwp000_-es-p.pdf
3
Cruz, P. y Sampe, J. “Máquinas eléctricas y técnicas modernas de control”, Primera
edición, Almaomega, México, 2008.
4
Escobar Mejía, A. “Estimación de los parámetros del motor de inducción a partir de
los datos del fabricante”.
http://revistas.utp.edu.co/index.php/revistaciencia/article/view/3141.
5
Fitzgerald, A., Kingsley, C. y Umans, S. “Máquinas eléctricas”, Sexta edición, McGraw
Hill, México, 2004.
6
Fernández, G. “Creación de interfaces gráficas de usuario (GUI) con MatLab”.
http://webpersonal.uma.es/de/gfdc/docencia/GuiSection.pdf
7
Carreño, S. "Estudio de los datos de catálogo en motores de inducción trifásicos”.
http://upcommons.upc.edu/pfc/bitstream/2099.1/6749/1/Memoria%20difinitiva.pdf
42
8
“Optimitation Toolbox”.
http://www.mathworks.es/es/products/optimization/description1.html
9
Castro, C. “Determinación de distancias entre objetos de una imagen.”
http://www.bdigital.unal.edu.co/4204/1/CarlosJavierCastroQuintana.2011.pdf
10
"Control de Motores AC”. http://hl.cenditel.gob.ve/proyectos/inv-motores-deinduccion/
43
6
APÉNDICES
6.1
Pruebas de vacío y rotor bloqueado
Para probar y validar el programa anteriormente desarrollado, se procedieron a realizar
pruebas de vacío y rotor bloqueado a 3 motores jaula de ardilla en la Escuela de Ingeniería
Eléctrica de la Universidad de Costa Rica. Con estas pruebas se obtuvieron los parámetros de los
motores y de esta forma se podía comparar los resultados obtenidos por medio del programa
computacional.
La primera prueba que se realizó fue la prueba de corriente directa, para obtener la
resistencia del estator. Se midió la tensión aplicada al devanado del estator y la corriente, y se
obtuvo la resistencia del estator por la Ley de Ohm V = I·R. Dicho valor se multiplicó por el
factor 1.1, de tal forma que se tomara en cuenta el efecto piel y así obtener la resistencia en
corriente alterna. Se realizaron 15 mediciones. En la siguiente tabla se muestran los resultados
promedios obtenidos en esta prueba.
Tabla 6.1 Datos de prueba en corriente directa
Tensión promedio (V)
Intensidad de
corriente promedio
(A)
Resistencia promedio
(Ω)
Motor 5
5.51
0.452
12.2
Motor 6
5.49
0.464
11.83
Motor 7
5.54
0.445
12.44
Tomando en cuenta el efecto piel para el motor 5, Rs = 12.2·(1.1) = 13.42 Ω. Para el
motor 6, Rs = 11.83·(1.1) = 13.01 Ω, y para el motor 7, Rs = 12.44·(1.1) = 13.68 Ω.
Luego se realizó la prueba de vacío. En esta prueba se aplicó una tensión entre el 30%
hasta el 100% de la tensión nominal. Se midieron la tensión, la corriente y la potencia en vació.
44
En condición de vacío, las pérdidas se dividen en pérdidas en el cobre por el bobinado del
estator, pérdidas del núcleo del hierro del estator y pérdidas meánicas por fricción y viento.
Para calcular las pérdidas por el cobre del devanado del estator se utilizó la resistencia Rs
y la corriente en vacío. Las pérdidas en vacío, Pvacío, se calcularon con la ecuación
ܲ௩௔௖í௢ = ܲଵథ − ‫ܫ‬௩௔௖í௢ ଶ ܴ௦
(6.1-1)
Después de esto se separaron las pérdidas de vacío en pérdidas en el núcleo Pc y pérdidas
mecánicas Pm. Se realizó un gráfico con las variables Pvacío en función de la potencia por fase P1ϕ.
Con esta curva se realiza una extrapolación para obtener la intersección de dicha curva con el eje
vertical, la cual representa las pérdicas mecánicas, ya que las pérdidas en el núcleo son cero
cuando la tensión es cero.
Los resultados obtenidos en dicha prueba para los motores 5, 6 y 7 se muestran a
continuación.
Tabla 6.2 Datos de prueba en vacío del motor 5
0,243
Potencia por fase
(W)
5,56
Potencia de Vacío
(W)
4.7675
45,22
0,286
5,25
4.1523
55.1
0,321
5,66
4.277
64.52
0,3892
6,54
4.5072
74,47
0,48
7,01
3.9180
85,6
0,529
8,55
4.7945
95.78
0.589
9.83
5.1743
104.82
0.625
11.34
6.098
115.1
0.730
13.00
5.848
118.5
0.782
13.9
5.6933
Tensión (V)
Corriente (A)
35.34
45
Tabla 6.3 Datos de prueba en vacío del motor 6
0.261
Potencia por fase
(W)
5.58
Potencia de Vacío
(W)
3.951
45.26
0.290
5.27
4.120
54.89
0.325
5.70
4.200
64.55
0.377
6.27
4.302
74.50
0.425
7.0
4.360
84.3
0,521
8.34
4.8085
95.78
0.589
9.83
5.1743
105.1
0.648
11..02
5.31
116.2
0.746
13.3
5.8643
118.5
0.759
13.51
5.972
Tensión (V)
Corriente (A)
35.45
Tabla 6.2 Datos de prueba en vacío del motor 7
0.296
Potencia por fase
(W)
5.52
Potencia de Vacío
(W)
4.0523
43.78
0.275
5.12
4.0625
61.75
0.346
5.93
4.2923
71.03
0.415
6.89
4.3250
78.74
0.467
7.85
4.6215
85.12
0.528
8.63
4.8274
96.81
0.588
9.75
5.0548
107.09
0.677
10.92
5.7004
115.25
0.735
13.2
5.833
118.2
0.765
13.68
6.01
Tensión (V)
Corriente (A)
37.59
46
Potencia en vacío (W)
7
6
5
4
3
2
1
0
0
20
40
60
80
100
120
140
Tensión (V)
Figura 6.1 Potencia en vacío en función de tensión motor 5
Potencia en vacío (W)
7
6
5
4
3
2
1
0
0
20
40
60
80
100
120
140
Tensión (V)
Figura 6.2 Potencia en vacío en función de tensión motor 6
47
Potencia de vacío (W)
7
6
5
4
3
2
1
0
0
20
40
60
80
100
120
140
Tensión (V)
Figura 6.3 Potencia en vacío en función de tensión motor 6
Las pérdidas del núcleo a voltaje nominal pueden obtenerse de la curva, y se puede
obtener Xm con la ecuación
ܺ௠ =
௏
మ
ටூ మ ି ቀ ೇ ቁ
ೃ೎
(6.1-2)
donde
ܴ௖ =
௏మ
௉೎
(6.1-3)
La potencia del núcleo Pc se obtuvo restando la potencia mecánica con la potencia en
vacío a tensión nominal.
Al utilizar estas ecuaciones se obtuvo que para el motor 5, Xm = 156.8 Ω; para el motor 6,
Xm = 158.2 Ω, y para el motor 7, Xm = 158.74 Ω.
48
En la prueba de rotor bloqueado de procedió a detener o a frenar por un instante el motor,
para obtener mediciones de potencia y corriente. En esta prueba se asume que el deslizamiento es
unitario. Se tiene que
ܴ௘ = ܴ௦ + ܴ௥ =
௉ೞ೎
ூೞ೎ మ
(6.1-4)
donde Psc y Isc son la potencia y las corriente de rotor bloqueado respectivamente.
También se asume que Rs = Rr, pues un buen diseño de la máquina implica minimizar el hierro y
el cobre con estas dos resistencias iguales. Con lo que
ோೝ
ଶ
=
ோ೐
ସ
(6.1-5)
También se tiene que
ܺ௘ = ටܼ௘ ଶ − ܴ௘ ଶ
(6.1-6)
ܼ௘ =
(6.1-7)
௏ೞ೎
ூೞ೎
donde Vsc es la tensión en rotor bloqueado.
En este caso se asume que Xs = Xr con lo que se llega a
௑ೝ
ଶ
=
௑೐
ସ
(6.1-8)
En la siguiente tabla se muestran los resultados al aplicar las ecuaciones con los datos
obtenidos por esta prueba.
49
Tabla 6.3 Datos de prueba rotor bloqueado
Tensión
(V)
Corriente
(A)
Potencia
(W)
Resistencia
del rotor
(Ω)
Reactancia
del rotor
(Ω)
Reactancia
del estator
(Ω)
Motor 5
118.31
5.61
439.41
6.98
16.3
16.0
Motor 6
118.021
5.76
439.27
6.6
15.91
16.71
Motor 7
118.57
5.53
440.81
7.21
16.7
16.2
6.2
Código del programa en Matlab
%Programa para la obtención de los parámetros de un motor de inducción
%trifásico
%Adrián Solís Badilla
clear all;
clc;
global V_nominal I_nominal T_arranque I_arranque P_nominal Fp Tmax Req Xeq ns nnom P fr
Sn ws Zo magnitud options
% Parametros del fabricante
V_nominal=input('Ingrese tension nominal: ');
I_nominal=input('Ingrese Corriente nominal: ');
T_arranque=input('Ingrese Torque arranque: ');
I_arranque=input('Ingrese Corriente arranque: ');
P_nominal =input('Ingrese Potencia nominal: ');
Tmax=input('Ingrese torque maximo: ');
Fp =input('Ingrese Factor potencia: ');
P=input('Ingrese numero de polos: ');
nnom =input ('Ingrese velocidad nominal: ');
fr=input('Ingrese frecuencia: ');
ns=((120*fr)/P);
ws = ns*((2*3.14)/60);
angulo = acosd(Fp);
magnitud = V_nominal/I_nominal;
Zo=V_nominal/I_arranque;
50
Sn=((ns-nnom)/ns);
Req = magnitud* cosd (angulo);
Xeq = magnitud* sind (angulo);
x=zeros(5);
x0=[1.6,0.9,2,14,3];
options=optimset('MaxFunEvals',25000,'MaxIter',25000,'TolX',1e-0,'TolFun',1e-0);
[x,feval,flag]=fsolve('ecuaciones2',x0,options);
disp(x);
function [f]=ecuaciones2(x)
%Parametros a obtener: Rs Xs Xr Xm Rr
global I_nominal T_arranque I_arranque P_nominal Req Xeq ws Sn Zo
Rs = x(1);
Xs = x(2);
Xr = x(3);
Xm = x(4);
Rr = x(5);
f(1) = -Req + Rs + (((Rr*Xm*Xm)/Sn)/(((Rr*Rr)/Sn) + ((Xr + Xm)*(Xr + Xm))));
f(2) = -Xeq + Xs + ((((Xm*Rr*Rr)/(Sn*Sn)) + (Xm*Xr*Xr) +
(Xr*Xm*Xm))/(((Rr/Sn)*(Rr/Sn)) + ((Xr + Xm)*(Xr + Xm))));
f(3) = -P_nominal + (((3*Rr*(1-Sn))/Sn))*((Xm*Xm*(I_nominal))/(((Rr/Sn)*(Rr/Sn)) +
((Xm+Xr)*(Xm+Xr))));
f(4) = -Zo + sqrt(((Rs + (Rr*Xm*Xm)/(Rr*Rr + (Xr+Xm)*(Xr+Xm) ) )*(Rs +
(Rr*Xm*Xm)/(Rr*Rr + (Xr+Xm)*(Xr+Xm) ) ) + (Xs + (Xm*(Rr*Rr + Xr*Xr +
Xr*Xm)*(Rr*Rr + Xr*Xr + Xr*Xm))/(Rr*Rr + (Xr+Xm)*(Xr+Xm)) )));
f(5)= -T_arranque + (((3*Rr)/(ws))*(((I_arranque)*(I_arranque)*Xm*Xm)/((Rr*Rr) + ((Xm +
Xr)*(Xm + Xr)))));
end
function varargout = GUI_proyecto(varargin)
% GUI_PROYECTO MATLAB code for GUI_proyecto.fig
% GUI_PROYECTO, by itself, creates a new GUI_PROYECTO or raises the existing
% singleton*.
%
% H = GUI_PROYECTO returns the handle to a new GUI_PROYECTO or the handle to
% the existing singleton*.
%
% GUI_PROYECTO('CALLBACK',hObject,eventData,tension_N,...) calls the local
% function named CALLBACK in GUI_PROYECTO.M with the given input arguments.
%
% GUI_PROYECTO('Property','Value',...) creates a new GUI_PROYECTO or raises
% the existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before GUI_proyecto_OpeningFcn gets called. An
51
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to GUI_proyecto_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help GUI_proyecto
% Last Modified by GUIDE v2.5 03-Dec-2012 02:22:01
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUI_proyecto_OpeningFcn, ...
'gui_OutputFcn', @GUI_proyecto_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before GUI_proyecto is made visible.
function GUI_proyecto_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% varargin command line arguments to GUI_proyecto (see VARARGIN)
% Choose default command line output for GUI_proyecto
handles.output = hObject;
% Update tension_N structure
guidata(hObject, handles);
52
initialize_gui(hObject, handles, false);
% UIWAIT makes GUI_proyecto wait for user response (see UIRESUME)
% uiwait(tension_N.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = GUI_proyecto_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Get default command line output from tension_N structure
varargout{1} = handles.output;
function tension_N_Callback(hObject, eventdata, handles)
% hObject handle to tension_N (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of tension_N as text
%
str2double(get(hObject,'String')) returns contents of tension_N as a double
tension_N = str2double(get(hObject, 'String'));
if isnan(tension_N)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new tension_N value
handles.parametro.tension_N = tension_N;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function tension_N_CreateFcn(hObject, eventdata, handles)
% hObject handle to tension_N (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
53
set(hObject,'BackgroundColor','white');
end
function corriente_N_Callback(hObject, eventdata, handles)
% hObject handle to corriente_N (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of corriente_N as text
%
str2double(get(hObject,'String')) returns contents of corriente_N as a double
corriente_N = str2double(get(hObject, 'String'));
if isnan(corriente_N)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.corriente_N = corriente_N;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function corriente_N_CreateFcn(hObject, eventdata, handles)
% hObject handle to corriente_N (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function potencia_N_Callback(hObject, eventdata, handles)
% hObject handle to potencia_N (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of potencia_N as text
%
str2double(get(hObject,'String')) returns contents of potencia_N as a double
54
potencia_N = str2double(get(hObject, 'String'));
if isnan(potencia_N)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.potencia_N = potencia_N;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function potencia_N_CreateFcn(hObject, eventdata, handles)
% hObject handle to potencia_N (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function velocidad_N_Callback(hObject, eventdata, handles)
% hObject handle to velocidad_N (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of velocidad_N as text
%
str2double(get(hObject,'String')) returns contents of velocidad_N as a double
velocidad_N = str2double(get(hObject, 'String'));
if isnan(velocidad_N)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.velocidad_N = velocidad_N;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function velocidad_N_CreateFcn(hObject, eventdata, handles)
% hObject handle to velocidad_N (see GCBO)
55
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function torque_A_Callback(hObject, eventdata, handles)
% hObject handle to torque_A (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of torque_A as text
%
str2double(get(hObject,'String')) returns contents of torque_A as a double
torque_A = str2double(get(hObject, 'String'));
if isnan(torque_A)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.torque_A = torque_A;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function torque_A_CreateFcn(hObject, eventdata, handles)
% hObject handle to torque_A (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function corriente_A_Callback(hObject, eventdata, handles)
% hObject handle to corriente_A (see GCBO)
56
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of corriente_A as text
%
str2double(get(hObject,'String')) returns contents of corriente_A as a double
corriente_A = str2double(get(hObject, 'String'));
if isnan(corriente_A)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.corriente_A = corriente_A;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function corriente_A_CreateFcn(hObject, eventdata, handles)
% hObject handle to corriente_A (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function torque_M_Callback(hObject, eventdata, handles)
% hObject handle to torque_M (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of torque_M as text
%
str2double(get(hObject,'String')) returns contents of torque_M as a double
torque_M = str2double(get(hObject, 'String'));
if isnan(torque_M)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
57
handles.parametro.torque_M = torque_M;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function torque_M_CreateFcn(hObject, eventdata, handles)
% hObject handle to torque_M (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function factor_P_Callback(hObject, eventdata, handles)
% hObject handle to factor_P (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of factor_P as text
%
str2double(get(hObject,'String')) returns contents of factor_P as a double
factor_P = str2double(get(hObject, 'String'));
if isnan(factor_P)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.factor_P = factor_P;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function factor_P_CreateFcn(hObject, eventdata, handles)
% hObject handle to factor_P (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
58
end
function numero_P_Callback(hObject, eventdata, handles)
% hObject handle to numero_P (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of numero_P as text
%
str2double(get(hObject,'String')) returns contents of numero_P as a double
numero_P = str2double(get(hObject, 'String'));
if isnan(numero_P)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.numero_P = numero_P;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function numero_P_CreateFcn(hObject, eventdata, handles)
% hObject handle to numero_P (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function frecuencia_Callback(hObject, eventdata, handles)
% hObject handle to frecuencia (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of frecuencia as text
%
str2double(get(hObject,'String')) returns contents of frecuencia as a double
frecuencia = str2double(get(hObject, 'String'));
59
if isnan(frecuencia)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
% Save the new corriente_N value
handles.parametro.frecuencia = frecuencia;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function frecuencia_CreateFcn(hObject, eventdata, handles)
% hObject handle to frecuencia (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N empty - tension_N not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in calculate.
function calculate_Callback(hObject, eventdata, handles)
% hObject handle to calculate (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
% set(handles.text36, 'String', 'PROCESANDO...');
% guidata(handles.figure1, handles);
clc;
error = false;
global V_nominal I_nominal T_arranque I_arranque P_nominal Fp Tmax Req Xeq ns nnom P fr
Sn ws Zo magnitud options angulo
% Parametros del fabricante
if (isnan(handles.parametro.tension_N))
errordlg('Valor de Tensión Nominal Invalido','Error');
error = true;
end
if (isnan(handles.parametro.corriente_N))
errordlg('Valor de Corriente Nominal Invalido','Error');
error = true;
end
if (isnan(handles.parametro.torque_A))
errordlg('Valor de Potencia Nominal Invalido','Error');
60
error = true;
end
if (isnan(handles.parametro.corriente_A))
errordlg('Valor de Velocidad Nominal Invalido','Error');
error = true;
end
if (isnan(handles.parametro.potencia_N))
errordlg('Valor de Torque Arranque Invalido','Error');
error = true;
end
if (isnan(handles.parametro.torque_M))
errordlg('Valor de Corriente Arranque Invalido','Error');
error = true;
end
if (isnan(handles.parametro.factor_P))
errordlg('Valor de Torque Maximo Invalido','Error');
error = true;
end
if (isnan(handles.parametro.numero_P))
errordlg('Valor de Factor de Pontencia Invalido','Error');
error = true;
end
if (isnan(handles.parametro.velocidad_N))
errordlg('Valor de Número de Polos Invalido','Error');
error = true;
end
if (isnan(handles.parametro.frecuencia))
errordlg('Valor de Frecuencia Invalido','Error');
error = true;
end
if (error == false)
V_nominal = handles.parametro.tension_N;
I_nominal = handles.parametro.corriente_N;
T_arranque = handles.parametro.torque_A;
I_arranque = handles.parametro.corriente_A;
P_nominal = handles.parametro.potencia_N;
Tmax = handles.parametro.torque_M;
Fp = handles.parametro.factor_P;
P = handles.parametro.numero_P;
nnom = handles.parametro.velocidad_N;
fr = handles.parametro.frecuencia;
ns=((120*fr)/P);
ws = ns*((2*3.14)/60);
angulo = acosd(Fp);
61
magnitud = V_nominal/I_nominal;
Zo = V_nominal/I_arranque;
Sn = ((ns-nnom)/ns);
Req = magnitud* cosd (angulo);
Xeq = magnitud* sind (angulo);
x = zeros(5);
x0 = [1.6,0.9,2,14,3];
options = optimset('MaxFunEvals',50000,'MaxIter',50000,'TolX',1e-0,'TolFun',1e-0);
[x,feval,flag] = fsolve('ecuaciones2',x0,options);
set(handles.text16, 'String', num2str(x(1)));
set(handles.text18, 'String', num2str(x(2)));
set(handles.text20, 'String', num2str(x(3)));
set(handles.text22, 'String', num2str(x(4)));
set(handles.text24, 'String', num2str(x(5)));
set(handles.text36, 'String', 'FINALIZADO');
end
% --- Executes on button press in reset.
function reset_Callback(hObject, eventdata, handles)
% hObject handle to reset (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% tension_N structure with tension_N and user data (see GUIDATA)
initialize_gui(gcbf, handles, true);
% -------------------------------------------------------------------function initialize_gui(fig_handle, handles, isreset)
% If the metricdata field is present and the reset flag is false, it means
% we are we are just re-initializing a GUI by calling it from the cmd line
% while it is up. So, bail out as we dont want to reset the data.
if isfield(handles, 'parametro') && ~isreset
return;
end
handles.parametro.tension_N = NaN;
handles.parametro.corriente_N = NaN;
handles.parametro.potencia_N = NaN;
handles.parametro.velocidad_N = NaN;
handles.parametro.torque_A = NaN;
handles.parametro.corriente_A = NaN;
handles.parametro.torque_M = NaN;
handles.parametro.factor_P = NaN;
handles.parametro.numero_P = NaN;
handles.parametro.frecuencia = NaN;
62
set(handles.tension_N, 'String', '');
set(handles.corriente_N, 'String', '');
set(handles.potencia_N, 'String', '');
set(handles.velocidad_N, 'String', '');
set(handles.torque_A, 'String', '');
set(handles.corriente_A, 'String', '');
set(handles.torque_M, 'String', '');
set(handles.factor_P, 'String', '');
set(handles.numero_P, 'String', '');
set(handles.frecuencia, 'String', '');
set(handles.text16, 'String', 0);
set(handles.text18, 'String', 0);
set(handles.text20, 'String', 0);
set(handles.text22, 'String', 0);
set(handles.text24, 'String', 0);
set(handles.text36, 'String', 'INGRESAR PARAMETROS!');
% Update tension_N structure
guidata(handles.figure1, handles);
63
Descargar