jueves, 4 de mayo de 2017

Identificación de los parámetros de un sistema de primer orden

En esta serie de dos artículos, siendo la identificación de los parámetros del sistema el primer artículo, pretendo diseñar un controlar PID para un sistema de primer orden.

Hay varias maneras de diseñar un controlador PID: prueba y error, Ziegler-Nichols o el diseño basado en un modelo matemático. En muchos libros de control, te presentan las funciones de transferencias y no explican donde las obtuvieron; por lo que en la práctica, se dificulta aplicar la teoría de control basada en un modelo matemático, debido a que no sabemos como obtener la función de transferencia.

Nuestro sistema de primer orden consistirá en un circuito RC, como el que te presentó en la siguiente figura1.
Figura1. Montaje de circuito.
Para el circuito RC utilizaremos un capacitor de 100 uF y un resitor de 10 kOhm.

La función de transferencia de un sistema de primer orden es la siguiente:

Figura2. Función de transferencia RC.
En donde RC es la constante de tiempo (tau), que es el tiempo en el cual la salida del sistema alcanza el 63%, debido a una entrada escalón. Si sustituimos los valores del capacitor y resistor, la función de transferencia queda de la siguiente manera:
Figura3. Función de transferencia RC=1.
Si a nuestro sistema lo excitamos con una señal de tipo escalón, en cuatro tau alcanzará aproximadamente el 98% de su voltaje final. Para profundizar en la teoría de sistemas de primer orden, les comparto este video. Para análisis de circuitos RC les comparto este link de Khan Academy, donde tienen una serie de videos explicando este tema en el dominio del tiempo. En el dominio de Laplace les comparto este video de katkimshow quien explica de manera excelente.

La salida de nuestro circuito debido a una entrada escalón unitario es la siguiente:
Figura4. Simulación de respuesta al escalón unitario.

Se puede observar que en cuatro tau, 4 segundos, alcanza aproximadamente el 98% del valor final de la salida del sistema.

¿Qué pasa si no conocieramos los parámetros del sistema, en este caso la resistencia y la capacitancia del circuito?

Para este experimento utilizo Simulink, Matlab y Arduino. Para la identificación de las características del sistema creé un modelo en Simulink para la pc y uno para cargarlo en el Arduino Uno, de manera que todo el programa corra embebido en el Arduino y la pc solo tenga la función de visualizar datos, guardarlos, para su posterior análisis, etc.

El modelo que cargaré en el Arduino es el siguiente:
Figura5. Arduino embebido.

Y el que correré en la pc es el siguiente:
Figura6. Host PC.
Ya cargado el programa en el Arduino, procedo a correr el programa host en la pc, obteniendo la siguiente gráfica.
Figura7. Scope Host Pc.

Básicamente, el experimento consiste en aplicar un voltaje de entrada de 5 volts al circuito RC  en t = 10 segundos. Los pines pwm de Arduino son capaces de brindar 5 voltios cuando se le configura a 255 equivalente a un duty cycle del 100 %, debido a que este pwm es de 8 bits.
Los datos entrada-salida se muestran en la figura7, estos datos son guardados en la variable x, que es un arreglo de vectores que se deben extraer para su posterior análisis.

El m file para extraer los valores Vin, Vout y t, de x es el siguiente:

clc
clear ans, clear Vin, clear Vout clear i;
senal=x.signals.values;
t=x.time;
for i=1:1:length(senal)
senal(:,:,i);
Vin(i)=ans(1);
Vout(i)=ans(2);
end
Vin=double(Vin');
Vout=double(Vout');
clear ans, clear i, clear senal;

Teniendo el voltaje de entrada Vin, el voltaje de salidos Vout, que es el voltaje del capacitor y el tiempo t, en el workspace de Matlab, procedemos a la identificación de los parámetros de sistema con la aplicación System Identification corriendo el comando >> ident en el prompt.


Damos click en Time domain data, se abre la siguiente ventana la cual configuramos de esta manera:

Damos en click en Time plot y podemos visualizar los datos obtenidos en el experimento.


Debido a que el rango de interes de 10 segundos en adelante, realizo un pre-procesamiento a la señal, tomando un rago de tiempo de 9.9 seg < t < 17 seg. 

Se abre la siguiente ventana donde configuramos el rango de tiempo de nuestro interés en Time span, damos click en insert y los cambios se guardarán en la variable mydatae.


Mydatae se utilizará en Working data, para la obtención de la función de transferencia. Damos click en estimate, posterior en Transfer Function.

Se abre la siguiente ventana, en donde configuramos la cantidad de polos, en nuestro caso solo es un polo debido a que el sistema es de primer orden, y ningún cero. Permanece seleccionado Continous-time y damos click en estimate.


La función de tranferencia tf1 pasa a la ventana principal. Aquí ya podemos validar tf1 dándole click en model output.
Se abre la siguiente ventana, donde validamos que tf1 corresponde en un 99.52% de los datos obtenidos en nuestro experimento.
Tf1 lo llevamos al workspace. Lo podemos visualizar escribiendo el siguiente comando en el prompt.
>> tf1

tf1 =

  From input "u1" to output "y1":
    0.9332
  ----------
  s + 0.9364

Tf1 aún no está en la forma que lo presenté en la figura2. Por lo que dividimos cada uno de los términos de tf1 con 0.9364, como se muestra a continuación:

>> tf2=tf(tf1.num/tf1.den(2),tf1.den/tf1.den(2))

tf2 =

    0.9966
  -----------
  1.068 s + 1

Continuous-time transfer function.

Como podemos ver, la función de transferencia obtenida experimental es casi idéntica a la teórica.

Bueno, todo esto que les comparto no  lo hago por motivos de lucro, considero que el conocimiento no debe estar encerrado para un cierto grupo, sino que debe estar para todo aquel que lo busca, todo para bien. Cualquier comentario o duda estoy a la orden. Saludos, hasta la próxima.




miércoles, 14 de septiembre de 2016

Determinación experimental de funciones de transferencia

El primer paso en el análisis y proyecto de control es desarrollar un modelo matemático de la planta en estudio. Obtener un modelo analíticamente puede ser bastante difícil. Puede ser necesario obtenerlo por medio de un análisis experimental. La importancia de los métodos de respuesta de frecuencia es que la función de transferencia de la planta, o de cualquier otro componente de un sistema, puede ser determinado por simples mediciones de respuesta de frecuencia.

Si se han medido la relación de amplitud y desplazamiento de fase en un número suficiente de frecuencias dentro del rango de frecuencias de interés, se las puede representar en el diagrama de Bode. Luego se puede determinar por aproximaciones asintóticas. Se construyen curvas asintóticas del logaritmo del módulo constituidas por varios segmentos. Con algunos tanteos y correcciones en frecuencias de transición, generalmente es posible hallar una aproximación bastante cercana a la curva. (Nótese que si se representa la frecuencia en ciclos por segundo en lugar de radianes por segundo, hay que convertir las frecuencias de transición a radianes por segundo, antes de calcular las constantes de tiempo).

Generadores de señal sinusoidal. Para realizar la prueba de respuesta de frecuencia, se debe disponer de generadores de señal sinusoidal adecuados. La señal puede tener que estar en forma mecánica, eléctrica o neumática. Los rangos de frecuencia necesarios para la verificación están aproximadamente entre  0.001 - 10 cps para sistemas de constantes de tiempo elevada, hasta 0.1 - 1000 cps para sistemas con constantes de tiempo pequeñas. La señal sinusoidal debe estar razonablemente libre de armónicas o distorsión.
Para rangos de muy baja frecuencia (por debajo de 0.01 cps), puede utilizarse un generador de señal mecánico (junto con un transductor neumático o eléctrico si es necesario). Para el rango de frecuencias desde 0.01 - 1000 cps, puede usarse un generador eléctrico de señal adecuado (junto con un transductor, si es necesario).

Algunas indicaciones sobre la determinación experimental de funciones de transferencia.

  1. Generalmente es más fácil efectuar medidas exactas de amplitud que medidas exactas de desplazamiento de fase. Las mediciones de desplazamiento de fase pueden introducir errores causados por instrumentación o por interpretación de los registros experimentales.
  2. La respuesta de frecuencia del equipo de medición utilizado para la determinación de la salida del sistema, debe tener curvas de amplitud en función de la frecuencia prácticamente planas. Además, el ángulo de fase debe ser casi proporcional a la frecuencia.
  3. Los sistemas físicos tienen algún tipo de alinealidades. Por tanto, es necesario considerar cuidadosamente la amplitud de las señales sinusoidales de entrada. Si la amplitud de la señal de entrada es excesivamente grande, el sistema tiende a saturarse y la prueba de respuesta de frecuencia da resultados inexactos. Por otro lado, una señal pequeña puede producir errores debidos a zona muerta. Por tanto, hay que realizar una cuidadosa elección de la amplitud de la señal sinusoidal de entrada. Es necesario muestrear la forma de onda de la salida del sistema para asegurarse que su forma es sinusoidal y que el sistema está funcionando durante el período de prueba en la región lineal. (La forma de onda a la salida del sistema no es sinusoidal si éste está funcionando en una región no lineal).
Si el sistema en estudio está funcionando continuamente por días y semanas, no hace falta detener su funcionamiento normal para las pruebas de respuesta de frecuencia. Se puede superponer la señal de prueba sinusoidal a las entradas normales. Entonces, para sistemas lineales, se superpondrá a la salida normal, la respuesta correspondiente a la señal de prueba. Para la determinación de la función de transferencia con el sistema en funcionamiento normal también se usan frecuentemente señales estocásticas (señales de ruido blanco). Utilizando funciones correlación, se puede determinar la función transferencia del sistema sin interrumpir su funcionamiento normal.


Tomado del libro: Ingeniería de control moderna. KATSUHIKO OGATA 1980.

lunes, 6 de julio de 2015

Modelado de sistemas

El diagrama de la figura 1-1.1 permite observar claramente cuáles son las entradas del sistema, qué salidas es necesario considerar, y cómo estas salidas están relacionadas con el grupo de entradas.
A partir de esta representación es posible valorar el efecto producido por variaciones en las entradas o por cambios en la estructura del sistema. La forma de representar las relaciones entrada-salida de este diagrama se conoce como modelo de sistema y es uno de los puntos principales de estudio en circuitos y sistemas.

En general, se requiere utilizar aproximaciones matemáticas para representar las relaciones entrada-salida de un sistema. Esto se debe a que en la mayoría de los casos no se conoce la expresión exacta de estas relaciones o bien a que su forma matemática es demasiado compleja. Un factor muy importante que determina el grado de complejidad del modelado de un sistema es el de éste. Si la exactitud de la información que desea obtenerse a partir de modelo es muy crítica, entonces se requiere utilizar un modelado muy complejo en el que se consideren con mayor presición las relaciones que existen entre cada una de las variables del sistema.

Para formular modelos matemáticos adecuados para cada sistema se aplican varias leyes y principios de física, química, biología, sociología y administración de empresas, y a partir de ellos se obtienen relaciones algrebraicas, relaciones dinámicas continuas que incluyen ecuaciones diferenciales y/o integrales, y relaciones dinámicas discretas que incluyen ecuaciones de diferencias finitas. En este libro se presentará al lector una variedad de sistemas eléctricos, mecánicos, electromécanicos, hidráulicos, térmicos, químicos y socioeconómicos. En general, los  modelos considerados son de tipo lineal, lo cual impide que puedan ser vistos por algunos sistemas más complejos, y en algunos casos es necesario utilizar aproximaciones inexactas o drásticas para poder relacionar todas las variables del sistema.

A pesar de todas estas limitaciones, los sistemas lineales tienen mucha importancia debido a la simplicidad con que pueden modelar y a la facilidad con la cual se obtienen sus soluciones al carácter general de éstas. En efecto, el concepto de linealidad está asociado a las condiciones siguientes: si, como condición primera, una variación en la magnitud de las entradas por determinado factor resulta en un cambio en las salidas por el mismo factor, y si, como segunda condición, las salidas correspondientes a la suma de dos grupos de entradas se pueden obtener como la suma de las salidas producidas por cada uno de estos grupos de entradas aplicados individualmente, entonces se dice que el sistema es lineal.

El modelado de ciertos sistemas puede resultar útil para estudiar el comportamiento de otros totalmente diferentes en cuanto a su apariencia física. Por ejemplo, el comportamiento matemático de un sistema térmico o el de un hidráulico puede ser semejante al de un circuito eléctrico formado únicamente por capacitores y resistencias. Esto permite que alguien familiarizado con un tipo de sistemas se puede extender a sistemas análogos.

Bibliografía: 
Gladwyn Vaile LagoLloyd M. Benningfield. Teoría de sistemas y circuitos. Wiley, 1979.

jueves, 12 de junio de 2014

DC motor control

Soon, I will write about a dc motor control using System Identification, simulink and Arduino.

Pronto escribiré sobre control de un motor de corriente continua utilizando Identificación de Sistemas, simulink y arduino.

Hasta entonces.

jueves, 27 de junio de 2013

Finite Length Dipole Antenna

Hello everyone, this time I am going to share with you a project I did for my antennas class. It consist of  calculating and plotting the parameters of a FINITE LENGTH DIPOLE antenna on paper and using Matlab.
Well, the first thing you have to do is to read Chapter 4 (Linear Wire Antennas) (4.5 Finite Lenght Dipole) of the book ANTENNA THEORY Analysis and Design, 3th edition, author: Constantine A. Balanis.
All the parameters that are treated in 4.5 of the book, are plotted and calculated with Matlab (.mfile uploaded) and calculated on paper (Pdf file uploaded).

How to use the Matlab file: 
1. Download the mfile.
2. Write on Matlab addpath (and the location where you downloaded the mfile)
       Example: addpath c:\matlab\work
3. Run the function on Matlab. But first you have to change L by the lenght of the dipole in wavelength, ra by the radius of the dipole in wavelength, frec by the frequency you design the dipole in hz. The function is the following:
[Rr,Xm,Rin,Xin,Prad,Emax,Wavmax,Umax,Do,DdB,Aem]=antenaFelixRuiz(L,ra,frec)

All the parameters for this antenna are calculated assuming that the diameter is considerably smaller than the operating wavelength. And these are only for a dipole of wavelength between 0 and 3 wavelengths, 0<= Lambda<=3. When you run the mfile and do the calculations you have to obtain the following parameters shown in the figure.


For example:
For a half-wavelength dipole of radius 5mm. and a frequency of 100Mhz, we have a radius of 0.0016 wavelength.
Call the function:
[Rr,Xm,Rin,Xin,Prad,Emax,Wavmax,Umax,Do,DdB,Aem]=antenaFelixRuiz(0.5,0.0016,100*10^6)
Rr =
   73.1296
Xm =
   42.5445
Rin =
   73.1296
Xin =
   42.5445
Prad =
   36.5648
Emax =
   40.0000
Wavmax =
    2.1221
Umax =
    4.7746
Do =
    1.6409
DdB =
    2.1509
Aem =
    1.1752

Figure n°1 Current distribution.
figure n°2 Electric field pattern (in linear scale)
figure n°3   3D Electric fiel pattern
figure n°4 Linear plot of Electric field pattern (lobes)
figure n°5 Poynting vector
figure n°6 Radiation intensity
figure n°7 Directivity and isotropy (dimensionless)
figure n°8  3D Directivity and isotropy








domingo, 23 de junio de 2013

Primera entrada

En este blog, trataré de todo un poco a lo que mi carrera concierne Ing. Electrónica. ¿Qué abarca mi carrera? Bueno, algo de comunicaciones, electrónica y teoría de control. ¿Por qué hacer esto? Porque los temitas que trate pueden serle de ayuda a otro estudiante como yo.
Manos a la obra.