Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nota: Ire editando este post a medida como vaya realizando nuevas cosas y
recibiendo sugerencias y correcciones de su parte.
PASO 1:
PASO 2:
Codigo para graficar los datos (esto es un ejemplo, los datos reales son
demasiados):
clc;
tiempo[0 1 2 3 4 5 6 7 8 9 10];
temperatura[25 25 26 27 28 29 30 30 31 31 31];
plot(tiempo,temperatura)
Para hallar la ecuacion, nos vamos a matlab (donde esta el workspace), alli
veremos un boton que dice START (con el logo de matlab), pulsamos ese boton,
luego click en toolboxes, luego en curve fitting y por ultimo en curve fitting
tool: (figura 1)
Figura 1
Se nos abrira una ventana nueva y alli daremos click en el boton Data... en la
ventana que se abrio en X data ponemos la variable tiempo y en Y data la
variable temperatura (o sus los nombres que uds les tengan asignados) .. si no
les aparece nada es por que tienen que haber corrido su codigo de graficacion
de sus datos reales para que las variables del tiempo y temperatura aparezcan
en el workspace...
Figura 2
click en el boton fitting, luego en new fit .... aqui es donde les voy a
recomendar algo a titulo personal...
Vamos a modificar unicamente donde dice Tye of fitt. ahi podran ver todo el
tipo de ecuaciones con las cuales se puede representar nuestra curva
caracteristica de la planta... si siguen mi recomendacion entonces buscar
donde dice exponential y escogemos el tipo de ecuacion ( a*exp(bx) +
c*exp(dx) ) y hacemos click en apply... luego de eso nos aparecera nuestra
ecuacion (la que nos describe nuestros datos) ... si tienen dudas de que valores
para las constantes escoger, escojan los promedios, osea los valores que estan
fuera de los parentesis ... (figura 3)
Figura 3
32.98 s + 0.06097
Y(S) = ---------------------------s^2 + 0.00141 s - 9.773e-009
Para mi caso ... a uds les dara una ecuacion similar .. matlab tambien lo hace
usando el codigo
syms t
a = 42.98;
b = -6.9x10^-6;
c = -10.15;
d = 0.001417;
yt = a*exp(b*t) + c*exp(d*t)
YS = laplace (yt)
pero la verdad es que se ve muy raro y desordenado, asi que recomiendo lapiz
y papel que hacerlo no es dificil y ademas sale directo, luego se aplica un poco
de algebra, se reemplazan valores y listo.
Ahora sabemos que dentro de Y(S) tenemos implicito nuestra entrada escalon
unitario, po lo tanto nuestra G(S) sera:
Ahora tenemos que determinar el tiempo de muestreo (T) para eso podemos
usar el metodo que describe blackcat mas adelante o podemos asumirlo, ya
cada quien decidira, por mi parte lo sumire como T=0.1
G(Z) = Z/ Bo(S) G(S) donde Z/ sera la tranformada Z de todo eso... bueno para
los amantes del lapiz y papel, podeis hacerlo, por que por mi parte no lo voy a
hacer, para eso voy a usar matlab y el siguiente codigo.
n1=32.98;
n2=0.06097;
d1=1;
d2=0.0014101;
d3=-(9.773/1000000000);
GS=tf( [n1 n2 0], [d1 d2 d3])
T=0.1;
GZ=C2D(GS,T,'zoh')
donde zoh indica a matlab que se va a usar un retenedor de orden cero. osea
nuestro Bo(S)
3.293 z - 3.292
G(Z) = -----------------z^2 - 2 z + 0.9999
Bueno hasta aqui todos deberiamos llevar algo similar, ahora es donde yo me
he decidido por hacer un controlar por el metodo de ragazzini .. asi que por ahi
es donde lo haremos....
F(Z) = K / P(Z)
para que ragazzini funcione se dice que F(1) = 1 .. lo cual es de gran ayuda..
sabemos por formula que:
Bueno la parte final es hallar la ley de control, para eso cambiamos D(Z) por
u(Z)/ e(Z) y multiplicamos al otro lado por Z^-3 / Z^-3
quedandomos asi:
u(Z)
----- = --------------------------------------------------------e(z)
u(k) = 0.001058 e(k-1) - 0.002116 e(k-2) + 0.001058 e(k-3) + 2.93769 u(k-1) 0.9382 u(k-2) + 0.9379 u(k-3)
esta ley de control u(k) es la que programamos para poder controlar nuestro
sistema