Grupo - 4 - Laboratorio - 3 - MotorDC (INFORME)

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 33

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L

INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN


Universidad de las Fuerzas Armadas ESPE
SISTEMA DE CONTROL

Nota del autor:


DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
Ing. Electrónica, ESPE.
Kevin Jhossuee Caiza Arroyo
Danny Paúl Guano Guisha
Michelle Alexandra Molina Villamarín
Zeus Johel Tello Caicedo
Katherine Brigette Villarreal Peñafiel
Universidad de las Fuerzas Armadas ESPE-L, Belisario Quevedo
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

Contenido
TEMA.........................................................................................................................................3
OBJETIVOS...............................................................................................................................3
Características de un Motor DC...............................................................................................3
Identificación y Validación de modelos...................................................................................6
Ident de MatLaB.....................................................................................................................10
DESARROLLO........................................................................................................................12
IDENT DE MATLAB........................................................................................................16
Validar el modelo matemático obtenido con los datos reales del motor DC...........................20
CODIGO ARDUINO.........................................................................................................20
CODIGO MATLAB TOMA DE DATOS DEL MOTOR..................................................22
RESULTADOS..................................................................................................................23
CODIGO MATLAB IDENTIFICACION OPTIMIZADOR..............................................24
RESULTADOS..................................................................................................................25
CODIGO MATLAB VALIDACION PARAMETROS DINAMICOS..............................25
RESULTADOS..................................................................................................................26
CODIGO MATLAB MODELO.........................................................................................26
PASO UNITARIO.................................................................................................................29
RAMPA.................................................................................................................................30
IMPULSO..............................................................................................................................30
CONCLUSIONES....................................................................................................................32
REFERENCIAS.......................................................................................................................33
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

SISTEMAS DE CONTROL
Laboratorio No 03

TEMA
 Modelación y respuesta de un motor DC.

OBJETIVOS
 Modelar y analizar la respuesta la respuesta de un motor DC ante diferentes
entradas.
MARCO TEÓRICO

Características de un Motor DC.

MOTOR DC
El motor CC o motor DC es un motor de corriente continua o directa y su propiedad es
la conversión de energía eléctrica a energía mecánica. Es provocado por un movimiento
rotatorio, gracias a la acción de un campo magnético.
Normalmente un motor se compone de dos partes: el estátor y el rotor.
Estátor. Da soporte mecánico y contiene los polos de la máquina, pueden ser un
devanado de hilo de cobre sobre un núcleo de hierro, o imanes permanentes. Cubre el
rotor.
Rotor. Con forma cilíndrica (normalmente), también devanado y con núcleo es
alimentado con corriente directa a través de delgas, que están en contacto alternante con
escobillas fijas (también llamadas
carbones).

Figura 1. Motor DC

FUNCIONAMIENTO
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

Se basa en la repulsión que ejercen los polos magnéticos de un imán permanente de


acuerdo con la Ley de Lorentz, interactúan con los polos magnéticos de un electroimán
que se encuentra montado en el rotor.
Cuando la corriente eléctrica circula por la bobina de este electroimán giratorio, el
campo electromagnético que se genera interactúa con el campo magnético del imán
permanente o devanado. Si los polos del imán permanente o devanado y los polos del
electroimán giratorio coinciden, se produce un rechazo y un torque magnético (par de
fuerza que provoca que el rotor rompa la inercia y comience a girar sobre su eje) en
sentido a la forma que se encuentre conectado el motor al circuito o la pila.

Figura 2. Parte de un motor DC

El campo en un motor de DC puede ser de varios tipos


1. Imán permanente (El devanado de campo es reemplazado por un imán)
2. Campo serie (también llamada Shunt Stab. (S1 y S2))
3. Shunt (campo en derivación)
4. Compound (derivación y serie)
Las principales aplicaciones del motor de corriente continua son:
 Trenes de laminación reversibles. Los motores deben de soportar una alta carga.
Normalmente se utilizan varios motores que se acoplan en grupos de dos o tres.
 Trenes Konti. Son trenes de laminación en caliente con varios bastidores. En
cada uno se va reduciendo más la sección y la velocidad es cada vez mayor.
 Cizallas en trenes de laminación en caliente. Se utilizan motores en derivación.
 Industria del papel. Además de una multitud de máquinas que trabajan a
velocidad constante y por lo tanto se equipan con motores de corriente continua,
existen accionamientos que exigen par constante en un amplio margen de
velocidades.
 Otras aplicaciones son las máquinas herramientas, máquinas extractoras,
elevadores, ferrocarriles.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

 Los motores desmontables para papeleras, trefiladoras, control de tensión en


máquinas bobinadoras, velocidad constante de corte en tornos grandes.

Figura 3. Motor DC

Ventajas e inconvenientes del motor dc


Ventajas:
 El par de giro (momento torsor) de arranque es más alto que en los motores de
corriente alterna y varía de forma lineal con la velocidad, además este par de
giro es proporcional a la intensidad ya que a mayor intensidad, mayor flujo
magnético.
 Se pueden alimentar con energía almacenada en baterías o mediante energía
fotovoltaica.
 La regulación de la velocidad es sencilla y más económica que en los motores de
corriente alterna.
 Se pueden usar con reductoras para multitud de aplicaciones de tal forma que
consiguen tener más fuerza de giro
 Sólo llevan dos cables.
 Trabajan con tensión no peligrosa en el caso de los de 24/12Vdc
 Pueden trabajar a bajas velocidades.
Inconvenientes:
 La construcción es más costosa
 El momento torsor es más estable en función de la velocidad por debajo de la
velocidad nominal en motores de corriente alterna.
 Si la energía proviene de la red estándar de corriente alterna, para funcionar
necesitará una fuente de alimentación que pase de alterna a continua.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

 El voltaje de trabajo es bajo por lo que para la misma potencia que en alterna,
necesitan cableado más grueso.

Identificación y Validación de modelos.

Identificación de sistemas
Se entiende por identificación de sistemas a la obtención de forma experimental de un
modelo que reproduzca con suficiente exactitud, para los fines deseados, las
características dinámicas del proceso objeto de estudio.
El proceso de identificación
En términos generales, el proceso de identificación comprende los siguientes pasos:
1. Obtención de datos de entrada - salida.
Para ello se debe excitar el sistema mediante la aplicación de una señal de entrada y
registrar la evolución de sus entradas y salidas durante un intervalo de tiempo.
2. Tratamiento previo de los datos registrados.
Los datos registrados están generalmente acompañados de ruidos indeseados u otro tipo
de imperfecciones que puede ser necesario corregir antes de iniciar la identificación del
modelo. Se trata, por tanto, de ‘preparar’ los datos para facilitar y mejorar el proceso de
identificación.
3. Elección de la estructura del modelo.
Si el modelo que se desea obtener es un modelo paramétrico, el primer paso es
determinar la estructura deseada para dicho modelo. Este punto se facilita en gran
medida si se tiene un cierto conocimiento sobre las leyes físicas que rigen el proceso.
4. Obtención de los parámetros del modelo.
A continuación se procede a la estimación de los parámetros de la estructura que mejor
ajustan la respuesta del modelo a los datos de entrada-salida obtenidos
experimentalmente.
5. Validación del modelo.
El último paso consiste en determinar si el modelo obtenido satisface el grado de
exactitud requerido para la aplicación en cuestión. Si se llega a la conclusión de que el
modelo no es válido, se deben revisar los siguientes aspectos como posibles causas:
a. El conjunto de datos de entrada-salida no proporciona suficiente
información sobre la dinámica del sistema.
b. La estructura escogida no es capaz de proporcionar una buena
descripción del modelo.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

c. El criterio de ajuste de parámetros seleccionado no es el más adecuado.


Dependiendo de la causa estimada, deberá repetirse el proceso de identificación desde el
punto correspondiente. Por tanto, el proceso de identificación es un proceso iterativo,
cuyos pasos pueden observarse en el organigrama de la figura 1

Figura 5. El proceso de identificación

Métodos de identificación
Existen diversos métodos de identificación, que pueden clasificarse según distintos
criterios:
Dependiendo del tipo de modelo obtenido:

1. Métodos no paramétricos, que permiten obtener modelos no paramétricos del


sistema bajo estudio. Algunos de estos métodos son: análisis de la respuesta
transitoria, análisis de la respuesta en frecuencia, análisis de la correlación,
análisis espectral, análisis de Fourier, etc.
2. Métodos paramétricos, que permiten obtener modelos paramétricos. Estos
métodos requieren la elección de una posible estructura del modelo, de un
criterio de ajuste de parámetros, y por último de la estimación de los parámetros
que mejor ajustan el modelo a los datos experimentales.

- Dependiendo de la aplicación:
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

1. Métodos de identificación off-line (a posteriori), utilizados en aquellas


aplicaciones en que no se requiera un ajuste continuado del modelo. En estos
casos, se realiza la identificación previa de la planta, considerándose que la
validez de los parámetros obtenidos no se verá alterada con el paso del
tiempo.
2. Métodos de identificación on-line (identificación recursiva), en los que los
parámetros se van actualizando continuamente a partir de los nuevos datos
de entrada-salida obtenidos durante la evolución del proceso. Estos métodos
son muy utilizados en sistemas de control adaptativo.

- Dependiendo del criterio de ajuste de los parámetros. Existen diversos


métodos matemáticos para ajustar los parámetros de una estructura a un
conjunto de datos de entrada-salida. Algunos de los más utilizados en el
campo de la identificación son el método de mínimos cuadrados y el método
de las variables instrumentales.
Validación de modelos
En todo proceso de identificación es conveniente probar varias estructuras y diferentes
órdenes dentro de cada estructura hasta dar con el modelo que mejor se ajuste a los
datos obtenidos experimentalmente de la planta real. En definitiva, se trata de
determinar cuándo un determinado modelo es lo suficientemente exacto para la
aplicación requerida, proceso que se conoce habitualmente como validación del modelo.
En general, la mayoría de los métodos de validación tratan de determinar si la respuesta
del modelo se ajusta con suficiente exactitud a los datos de entrada-salida obtenidos
mediante experimentación. A continuación se exponen algunos criterios típicos a la hora
de descartar o elegir unos modelos respecto a otros.
- Validación en base a la aplicación del modelo
Puesto que en la práctica es imposible determinar si un modelo responde exactamente al
comportamiento de un sistema real, suele ser suficiente comprobar que el modelo es
capaz de resolver el problema para el cual ha sido hallado (simulación, predicción,
diseño de un controlador, etc.). Así, por ejemplo, si el controlador que ha sido ajustado
por medio del modelo da buen resultado sobre el sistema real, se puede asegurar que el
modelo era ‘válido’ para esta aplicación.
- Comprobación de parámetros físicos
Para una determinada estructura que haya sido parametrizada en función de magnitudes
físicas, un método importante de validación consiste en comparar el valor estimado de
dichos parámetros y el que sería de esperar mediante el conocimiento previo que se
tiene de la planta.
- Coherencia con el comportamiento de entrada-salida
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

Para determinar si el comportamiento de entrada-salida está suficientemente


caracterizado, puede ser necesario recurrir a diferentes métodos de identificación y
comparar los resultados obtenidos. Por ejemplo, comparando los diagramas de Bode de
los modelos obtenidos mediante identificación paramétrica de diferentes estructuras, por
el método de variables instrumentales y por análisis espectral, se puede determinar si la
dinámica del sistema ha quedado suficientemente caracterizada.
- Reducción del modelo
Un procedimiento para determinar si un modelo proporciona una descripción simple y
apropiada de un sistema consiste en aplicarle algún método de reducción de modelos. Si
una reducción en el orden del modelo no produce alteraciones apreciables en el
comportamiento de entrada-salida del mismo, entonces el modelo original era
innecesariamente complejo.
- Intervalos de fiabilidad de parámetros
Otro método para determinar si el modelo bajo estudio contiene demasiados parámetros
consiste en comparar los parámetros estimados con su desviación estándar. Si el
intervalo de confianza de un parámetro contiene el valor cero, se debe considerar la
posibilidad de eliminar dicho parámetro.
- Simulación
Un procedimiento muy habitual que puede ser considerado como otra técnica de
validación de modelos consiste en simular el modelo con un conjunto de entradas
distintas a las utilizadas para identificación, y comparar la respuesta del modelo con la
obtenida del sistema real.
 Análisis de residuos
Se conocen como residuos de un sistema a los errores de predicción obtenidos según la
expresión:

  t     t ,   y (t )  ye  t , 

ye  t 
siendo  el vector de parámetros del modelo, y(t) la respuesta real del sistema e
la respuesta estimada por el modelo para la misma entrada.
Idealmente, estos residuos deben ser independientes de la entrada. Si no sucede así,
  t
significa que hay componentes en que proceden de la entrada u (t ) , lo cual a su vez
significa que el modelo no es capaz de describir completamente la dinámica del sistema.
Para realizar el estudio anterior, suele comprobarse la correlación entre el error de
predicción y la entrada al sistema, según la expresión:
N
1
R u 
N
   t    .u (t )
t 1
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

El modelo será tanto más exacto cuanto más se acerquen a cero los términos de la
  t  u (t )
correlación anterior. Puede demostrarse que si y son realmente
independientes, la expresión anterior (para valores grandes de N) es una distribución
normal, con media cero y varianza
1
Pr 
N
 R  k  .R (k )
u

  t  u (t )
donde R y Ru son las covarianzas de y respectivamente.

3* Pr
Generalmente, R u ( ) se representa en un diagrama junto con las líneas . Si
R u ( ) sobrepasa dichas líneas para algún valor de t, significa que   t    y u (t )
probablemente no son independientes para ese valor de  .
A la hora de examinar la función de correlación, es importante tener en cuenta los
siguientes aspectos:
 Si existe correlación para valores negativos de  , esto indica que existe
realimentación de la salida hacia la entrada, no que el modelo sea deficiente.
 Si la estimación de un modelo y su expresión de correlación entre residuos y
entrada R u se han determinado utilizando los mismos datos de entrada, entonces
R u ( )  0 para   nk ,..., nk  nb  1

 Si R u ( ) es considerablemente distinto de cero para un valor  0 , esto indica que


el término u (t   0 ) debería ser incluido en el modelo. Éste es un buen método
para ajustar el orden más apropiado de la estructura del modelo.
Obviamente, el análisis de los residuos será un método de validación más eficaz si el
conjunto de datos utilizados para realizar la correlación es distinto que el usado para la
identificación del modelo.

Ident de MatLaB.

Este método ayuda a identificar o estimar un modelo matemático (función de


transferencia) de una planta (ejemplo motor dc) sin necesidad de conocer los parámetros
técnicos de la planta o de conocerla realmente, entonces habría que considerarlo como
un proceso desconocido al cual a través de su adquisición de datos podrá encontrar un
modelo con un grado de compatibilidad alto.
Para este fin la herramienta "ident" de Matlab permite configurar para lograr la
identificación de forma exitosa, para este caso se identifica a un sistema prototipo de
segundo orden.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

Figura 6 pantalla ident

En este punto ya se puede iniciar la estimación de modelos, utilizando la opción


"Estimate->Quick start" que proporciona MATLAB o seleccionando la estructura del
modelo que se quiere identificar. Por ejemplo, seleccionando "Parametric models",
podemos elegir entre ARX, ARMAX, "State Space", etc. Una vez definidos los
parámetros adecuados para el modelo, como el orden o el nombre que se le va a dar, se
calcula el modelo se pulsa el botón "Estimate"

Figura 7 pantallas de estimación ident


UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

FUNCION DE TRANSFERENCIA OBTENIDA

Figura 8 obtención de la función de transferencia

DESARROLLO

1) Desarrollar la modelación matemática, a través del método heurístico, de un


motor DC (considerar como entrada el voltaje; y como salida la velocidad del
motor), a fin de:
a. Determinar el modelo no lineal en el dominio del tiempo continuo
Modelo motor DC a lazo abierto
Voltaje proporcional a la velocidad
d m(t )
em(t )  k3
dt
d m(t )
 Wm(t )
Velocidad angular del motor dt

em(t )  k3Wm(t )

Aplicando la Ley de Kirchoff


dia (t )
ea (t )  Raia (t )  La  em(t )
dt
Par creado por el motor
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

Tm(t )  k2ia (t )

Teniendo en cuenta que:


Im: Energía equivalente en la armadura
Rm: Amortiguamiento viscoso de la armadura
Aplicando las leyes de Newton

d 2 m(t ) d (t )
Tm(t )  Im 2
 Bm
dt dt
Ganancia para el potenciómetro
ec(t )  k5 c (t )

er (t )  k5 r (t )

Tomando en cuenta que:


ec (t )  k5 L (t )

Reemplazando en señal de error


e(t )  k5 r (t )  k5 c(t )  k5 ( r (t )   c(t ))

Aplicando Laplace
E ( s)  K 5 ( r ( s)   c( s ))

Tren de Energía
 m(t ) N1

 L (t ) N 2

 m(t )Tm(t )   L (t )TL (t )

 L (t ) Tm(t )

 m(t ) TL (t )

Torque en el eje del motor


N2
Tm(t )  TL (t )
N1

Masa Inercial Equivalente


2
N 
Ieq  Im   2  Ic
 N1 
Coeficiente de fricción equivalente
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

2
N 
feq  Im   2  fc
 N1 
Motor DC y carga
N2

N1

Ieq  Im  ( ) 2 Ic

feq  fm  ( ) 2 fc

Dinámica del motor y su carga en Tiempo Continuo

d 2 m(t ) d m(t )
Tm(t )  Ieq 2
 feq
dt dt
dia (t )
ea (t )  Raia (t )  La  em(t )
dt
d m(t )
em(t )  k3  k3Wm(t )
dt
Tm(t )  k2ia (t )

 L (t )   m(t )

Tiempo Continuo
dWm(t )
Tm(t )  Ieq  feqWm(t )
dt

b. Determinar el modelo en variables de estado


Para las variables de estado es muy sencillo dado las ecuación obtenidas en los
siguientes ítems.
Donde;
di(t )
L  v(t )  Ri (t )  Ea (t )
dt
dw(t )
Tm (t )  J  Bw(t )
dt
Tm (t )  K mi (t )

Nombramos nuestros estados


UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

x1  w
 
x1  w
x2  i
 
x2  i
Usando definiciones de variables de estado
 B Km
x1   x1  x2
J J
 R Ka 1
x2   x2  x1  v
L L L
Representación en variables de estado

x  Ax  Bu
y  Cx  Du

Donde
A -> Matriz de estado
B-> Matriz de entrada
C-> Matriz de salida
D-> Matriz de transmisión directa

 B Km 
   0
 x1    J J   x1   
  1 v
    Ka R   x2   
 x2    L
 L L 

 y1  1 0   x1 
 y   0 1   x 
 2    2  D=0

c. Determinar el modelo en el dominio de la frecuencia continua

Modelo no lineal
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

di (t )
V (t )  Ri (t )  L  Ea (t )
dt
di (t )
 v(t )  Ri (t )  Ea(t )
dt
dw(t )
Tm(t )  J  Bw(t )
dt
dw(t )
J  Tm(t )  Bw(t )
dt
Constantes
Ea(t )  Kaw(t )
Ka  v / rads
Tm(t )  Kmi (t )
Km  Nm / A
Donde
Ka  Km
di (t ) v(t )  Ri (t )  Kaw(t )

dt L
dw(t ) Km(t )  Kaw(t )

dt J

Modelo no lineal, frecuencia continua


di (t )
 sI ( s)
dt
v( s)  Ri ( s)  Kaw( s)
sI ( s) 
L
KmI ( s)  Bw( s)
sw( s ) 
J
w( s) Km

v( s) LJs  ( RJ  LB ) s  RB  KmKa
2

2) Implementar un algoritmo de identificación de parámetros dinámico (basado en


optimización), a fin de validar el modelo matemático obtenido con los datos reales
del motor DC. Se deberá considerar diferentes señales de entrada para la
identificación y validación del modelo dinámico.
IDENT DE MATLAB
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

3) Desarrollar la modelación matemática, a través del método empírico, de un


motor DC (considerar como entrada el voltaje; y como salida la velocidad del
motor), a fin de:
a. Determinar el modelo no lineal en el dominio del tiempo continuo
b. Determinar el modelo en variables de estado
c. Determinar el modelo en el dominio de la frecuencia continua.

Validar el modelo matemático obtenido con los datos reales del motor DC.

CODIGO ARDUINO
/////////////////////////// COMUNICACION
SERIAL //////////////////
const byte in1 = 7;
String inputString = "";
const byte in2 = 8;
bool stringComplete = false;
const byte ena = 6;
const char separator = ',';
volatile int n = 0;
const int dataLength = 1;
volatile byte ant = 0;
double data[dataLength]; // Valor regula ciclo de trabajo
(PWM) volatile byte act = 0;

const byte C1 = 3; // Entrada de la señal A del double N = 0.0; // rad/se.


encoder (Cable amarillo).
int cv =0; // Variable de control (duty cycle)
const byte C2 = 2; // Entrada de la señal B del
encoder (Cable verde). unsigned long lastTime, sampleTime = 100;
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

const double R =1496.88; // Resolucion del encoder R = if (cv> 0) clockwise(in2,in1,ena,cv); else


mH*s*r. anticlockwise(in2,in1,ena,abs(cv));

const double P =4.1975; double current=get_corriente(750);

const double Sensibilidad=0.100; Serial.print(N);

void setup() //double voltaje =get_voltage(700);

{ Serial.print(",");

Serial.begin(9600); //Serial.print(",");

pinMode(C1, INPUT); Serial.println(-1*current);

pinMode(C2, INPUT); //Serial.println(voltaje,7);

pinMode(in1, OUTPUT); }

pinMode(in2, OUTPUT); }

digitalWrite(in1, false); void serialEvent() {

digitalWrite(in2, false); while (Serial.available()) {

analogWrite(ena,cv); char inChar = (char)Serial.read();

attachInterrupt(digitalPinToInterrupt(C1), encoder, inputString += inChar;


CHANGE);
if (inChar == '\n') {
attachInterrupt(digitalPinToInterrupt(C2), encoder,
CHANGE); stringComplete = true;

lastTime = millis(); }

} }

void loop() { }

////////// SI RECIBE DATOS ///////////// void clockwise(int pin1, int pin2,int analogPin, int pwm)

if (stringComplete) {

{ digitalWrite(pin1, LOW);

for (int i = 0; i < dataLength ; i++) digitalWrite(pin2, HIGH);

{ analogWrite(analogPin,pwm);

int index = inputString.indexOf(separator); }

data[i] = inputString.substring(0, index).toInt(); void anticlockwise(int pin1, int pin2,int analogPin, int pwm)

inputString = inputString.substring(index + 1); {

} digitalWrite(pin1, HIGH);

cv = data[0]; digitalWrite(pin2, LOW);

inputString = ""; analogWrite(analogPin,pwm);

stringComplete = false; }

} // Encoder precisión cuádruple.

if (millis() - lastTime >= sampleTime) void encoder(void)

{ // Se actualiza cada sampleTime (milisegundos) {

N = (n*P)/((millis()-lastTime)); // Calculamos los rad/s ant=act;

//N = (n*60.0*1000.0)/((millis()-lastTime)*R); act=PIND & 12;

lastTime = millis(); // Almacenar el tiempo actual. if(ant==0 && act== 4) n++;

n = 0; // Resetear los pulsos. if(ant==4 && act==12) n++;


UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

if(ant==8 && act== 0) n++; corriente=corriente+(voltajeSensor-


2.4844119)/Sensibilidad; //Ecuación para obtener la
if(ant==12 && act== 8) n++; corriente

if(ant==0 && act==8) n--; }

if(ant==4 && act==0) n--; corriente=corriente/n_muestras;

if(ant==8 && act==12) n--; return(corriente);

if(ant==12 && act==4) n--; }

} float get_voltage(int n_muestras)

double get_corriente(int n_muestras) {

{ float voltage=0;

double voltajeSensor; for(int i=0;i<n_muestras;i++)

double corriente=0; {

for(int i=0;i<n_muestras;i++) voltage =voltage+analogRead(A0) * (5.0 / 1023.0);

{ }

voltajeSensor = analogRead(A0) * (5.0 / voltage=voltage/n_muestras;


1023.0);////lectura del sensor
return(voltage);

CODIGO MATLAB TOMA DE DATOS DEL MOTOR


%%TOMA DE DATOS DEL MOTOR

% Limpieza del Programa


clc,clear,close all,warning off

% Tiempo
ts=0.1;
tf=100;
t=0:ts:tf;

% Conexion con Arduino

COM='COM14';
delete(instrfind({'Port'},{COM}));
Arduino= serial(COM);
set( Arduino, 'Baudrate',9600);
set( Arduino, 'StopBits', 1 );
set( Arduino, 'DataBits', 8 );
set( Arduino, 'Parity', 'none' );
set( Arduino, 'Terminator', 'CR/LF' );
set( Arduino, 'OutputBufferSize',200);
set( Arduino, 'InputBufferSize',200);
set( Arduino, 'Timeout', 1 );

fopen( Arduino );
pause(2);
fprintf('Serial Open\n');

% Volts=[ -12*ones(1,tf) -12*ones(1,tf) 10*ones(1,tf)...


% 10*ones(1,tf) -5*ones(1,tf) -5*ones(1,tf)...
% 12*ones(1,tf) 12*ones(1,tf) 10*ones(1,length(t)-tf*8)];
Volts=8*ones(1,length(t));
for k=1:length(t)
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

% Medir Tiempo
tic

% Volts(k)=Volts(k)+cos(0.09*k);

% Enviar Dato Al Arduino


pwm=(Volts(k)*255)/12;
fprintf(Arduino,'%s\n',num2str(pwm));

% Leer Dato de Arduino


while ~Arduino.BytesAvailable
end

Recibe=fscanf(Arduino,'%f,%f');
Vel(k)=Recibe(1);
ia(k)=Recibe(2);

flushinput (Arduino);
%% Medir Tiempo entre envio y recepcion
Envio(k) = toc;

%% Asegurar Tiempo de Muestreo


while (toc < ts)
end

%% Guardar Tiempo de muestreo


To(k) = toc;

end

fprintf(Arduino,'%s\n',num2str(0));
pause(1);
fclose(Arduino);
delete(Arduino);
fprintf('Serial Close\n');

subplot(3,1,1)
plot(t,Vel,'r','LineWidth',2);grid on,legend('Velocidad')
subplot(3,1,2)
plot(t,ia,'g','LineWidth',2);grid on,legend('Corriente')
subplot(3,1,3)
plot(t,Volts,'b','LineWidth',2);grid on,legend('Volatje')

save('M4.mat','Volts','ia','Vel','ts','t')

RESULTADOS
DATOS OBTENIDOS POR ARDUINO

CARGAMOS M4.mat PARA VISUALIZAR EL COMPORTAMIENTO DEL


MOTOR
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

CODIGO MATLAB IDENTIFICACION OPTIMIZADOR


%%IDENTIFICACION OPTIMIZADOR
clc;
clear all;
close all;
warning off;

%% CONDICIONES INICIALES DE VARIABLES A CONOCER


J =rand(1);
B =rand(1);
R =rand(1);
ka=rand(1);
La=rand(1);

%% VECTOR DE VARIABLES
ValoresIniciales=[J B R ka La]';

%% CARGAR PARAMETROS PARA IDENTIFICAR


load('M3.mat');

%% FUNCION DE COSTE
Motor=@(ValoresIniciales)Modelo(ValoresIniciales,t,ts,Vel,Volts,ia);

%% MAXIMOS Y MINIMOS
vmax=[1000 1000 1000 1000 1000];
vmin=[1e-4 1e-5 1e-4 1e-5 1e-5];

%% OPTIMIZADOR
opciones = optimset('Algorithm','sqp','Display','off');
[Valores]= fmincon(Motor,ValoresIniciales,[],[],[],[],vmin,vmax,[],opciones);
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

disp('Variables')
disp(Valores);
save('Mot.mat','Valores')

RESULTADOS

NOS DA UN ERROR INFERIOR AL 4 % CON LOS VALORES DE LAS


VARIABLES

CODIGO MATLAB VALIDACION PARAMETROS DINAMICOS


%% VALIDACION DE PARAMETROS DINAMICOS
clc;
clear all;
close all;
warning off;

load('Mot.mat')
load('M2.mat');

J =Valores(1);
B =Valores(2);
R =Valores(3);
ka=Valores(4);
La=Valores(5);

%% INICIALIZACION de cvalores medidos


UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

iam(1)=0;wm(1)=0;
km=ka;

%% INICIO DEL BUCLE


for k=1:length(t)

iap=(Volts(k)-R*iam(k)-ka*wm(k))/La;
iam(k+1)=iap*ts+iam(k);

wmp=(km*iam(k)-B*wm(k))/J;
wm(k+1)=wmp*ts+wm(k);

end

subplot(3,2,1)
plot(t,Vel,'r','LineWidth',2);grid on,hold on
plot(t,wm(1:length(t)),'g','LineWidth',2);legend('Velocidad Real','Modelo Matematico')
xlabel('Time [s]'),ylabel('rad/s'),title('Velocidad Angular')

subplot(3,2,3)
plot(t,ia,'r','LineWidth',2);grid on,hold on
plot(t,iam(1:length(t)),'b','LineWidth',2);legend('Corriente Real','Modelo Matematico')
xlabel('Time [s]'),ylabel('Ampers'),title('Corriente')

subplot(3,2,5)
plot(t,Volts,'m','LineWidth',2);grid on,legend('Voltaje Aplicado')
xlabel('Time [s]'),ylabel('Voltaje'),title('Voltaje Aplicado')

%% grafico con lo que identifiue


load('M3.mat');
subplot(3,2,2)
plot(t,Vel,'b','LineWidth',2);grid on,legend('Velocidad Real')
xlabel('Time [s]'),ylabel('rad/s'),title('Velocidad Angular')

subplot(3,2,4)
plot(t,ia,'m','LineWidth',2);grid on,legend('Corriente Real')
xlabel('Time [s]'),ylabel('Ampers'),title('Corriente')

subplot(3,2,6)
plot(t,Volts,'k','LineWidth',2);grid on,legend('Voltaje Aplicado')
xlabel('Time [s]'),ylabel('Voltaje'),title('Voltaje Aplicado')

RESULTADOS
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

CODIGO MATLAB MODELO


%%MODELO
function eror=Modelo(ValoresI,t,ts,Velm,Voltsm,iam)

J =ValoresI(1);
B =ValoresI(2);
R =ValoresI(3);
ka=ValoresI(4);
La=ValoresI(5);

%% INICIALIZACION
ia(1)=0;wm(1)=0;

%% ERROR ACUMULADO
et=0;
km=ka;
%% INICIO DEL BUCLE
for k=1:length(t)

iap=(Voltsm(k)-R*ia(k)-ka*wm(k))/La;
ia(k+1)=iap*ts+ia(k);

wmp=(km*ia(k)-B*wm(k))/J;
wm(k+1)=wmp*ts+wm(k);

e1=Velm(k)-wm(k);
e2=iam(k)-ia(k);

e=[e2;e1];
et=et+(e'*e);

end
eror=(et)/(length(t))

end

4) Analizar los resultados obtenidos en los ítems 2 y 3.


UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

5) Describir y graficar la respuesta en el tiempo de la salida del motor DC ante las


señales de entrada: paso unitario, rampa e impulso.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

PASO UNITARIO
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

RAMPA

IMPULSO.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

CONCLUSIONES

 El análisis obtenido en el laboratorio se realizó mediante la obtención de datos


reales de un motor DC por lo cual utilizamos el software arduino para la
adquisición de datos mediante la programación realizada en una serie de
resultados ante diferentes pruebas el cual nos da una margen de error menor al 4
% donde obtuvimos los valores de las variables para la función de transferencia
del modelo realizado.

 El comando IDENT ayuda a encontrar la función de transferencia de una manera


mucho más eficiente y rápida, al ser un método de estimación debemos tener
cuidado q la misma se aproxime a más del 95% para evitar errores, con el
comando aplicado podemos ver las gráficas correspondientes al sistema que
estemos estudiando y de igual forma evaluar diferentes parámetros como polos y
ceros.
 El software MATLAB-SIMULINK es una herramienta esencial ya que nos
permite ingresar la ecuación del modelo matemático para visualizar su
comportamiento ante las diferentes entradas (rampa, impulso y paso unitario) he
ir variando los datos con el fin de comprender el funcionamiento del sistema y
sus respuestas.
 Los métodos aplicados en el laboratorio nos lleva a cabo que el método
heurístico generalmente se basa en los principio físicos del motor y el
comportamiento del mismo dando una representación razonable a la solución del
método plateado, y el método empírico se empleó formas tanto sistemáticas,
cuantificables y controladas para evaluar cuales criterios o pruebas son mejores
para el comportamiento del modelo realizado ya que la identificación de
procesos involucra la construcción de un modelo de proceso estrictamente a
partir de los datos entrada/salida obtenidos experimentalmente.

REFERENCIAS

[1].S. Fadali , “Digital Control Engineering, Analysis and Design”, Academic Press,
2nd Edition, 2012
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
INGENIERIA EN ELECTRÓNICA Y AUTOMATIZACIÓN

[2].Ogata, Katsuhiko. Modern Control Engineering. Pearson Education, 2010.


[3].KUO, B. “Sistemas de Control Digital”
[4].Motor DC • Factor Evolución. (2018, October 24). Factor Evolución.
https://www.factor.mx/portal/base-de-conocimiento/motor-dc/
[5].‌Ventajas, inconvenientes y características básicas de los motores de corriente
continua (VDC). (2021). Zuendo.com.
https://www.zuendo.com/smartblog/26_Motores-cc-ventajas-
inconvenientes.html
[6].‌Motores de corriente continua - Máquinas eléctricas. (2021). Motores de
corriente continua - Máquinas eléctricas. Google.com.
https://sites.google.com/site/mariajosemaquinastermicas/motores-de-corriente-
continua
[7].Motores de CD características, tipos y conexiones. (2017). Electroclub.com.mx.
http://www.electroclub.com.mx/2017/09/motores-de-cd-caracteristicas-tipos-
y.html
[8]. - Elena, M., & Guillén, L. (n.d.). Identificación de Sistemas. Aplicación al
modelado de un motor de continua. Retrieved from website:
http://www.ie.tec.ac.cr/einteriano/control/Laboratorio/3.7Identificacion%20de
%20sistemas.PDF

También podría gustarte