Está en la página 1de 4

Ingeniera Civil Biomdica, 20/03/2008

Laboratorio n1 Matlab
Diego Arias Velsquez, Astrid Drner De la Paz, Esteban Pino (Profesor Encargado)

Resumen Simulamos nmreflex con Simulink y ejecutamos el Nmr_var.m, luego determinamos 2 segundos para la simulacin y definimos un vector theta que guarde al menos 3000 puntos. Generamos un programa en Matlab para calcular, , n, Gss y as ajustar un sistema de segundo orden a la salida de theta. Graficamos la salida original de theta con la salida aproximada y calculamos el error de la aproximacin. Creamos una subrutina con los comandos para crear este grfico y el clculo del error. Luego comparamos nuestra aproximacin simulando que theta cambia su beta, y graficamos. Despus utilizamos una funcin llamada ajuste.m para que nuestra aproximacin se genere con respecto a theta con el beta nuevo, calculamos el error y graficamos. Finalmente volvimos a nuestro beta original y usando la funcin ajuste, nos da la grafica original. I. INTRODUCCION

sistema de forma general con un sistema de segundo orden. II. DESARROLLO Para empezar el laboratorio simulamos el modelo nmreflex con Simulink, luego definimos los valores a las variables del modelo ejecutando el script Nmr_var.m (Fig. 1). Adems configuramos los parmetros de tiempo para simular en 2 segundos y nos aseguramos que el vector theta guardara al menos 3000 puntos.
J=0.1; k=50; B=2; %1 Td=0.02; tau=1/300; eta=5; beta=100; %50;

Fig. 1 Calculamos el valor mximo de theta y el ndice en el que ste mximo ocurre usando [M,idx]=max(theta) y luego calculamos el valor final de theta con VF=theta(end). Usando las ecuaciones correspondientes calculamos el porcentaje de sobrepaso (PO), el tiempo peak (TP), y la ganancia de estado estacionario (Gss),

Matlab es un softwareymatemtico el cual realiza clculos cientficos de ingeniera, basados en


el uso de matrices y vectores (Matrix Laboratory). Adems este nos proporciona la capacidad de analizar y disear sistemas de control. Matlab posee un programa llamado Simulink el cual tiene como principal caracterstica simular, graficar y disear una variedad de sistemas que cambian en el tiempo. El objetivo que tiene este laboratorio es familiarizarse con el uso de Matlab como herramienta de alto nivel para una rpida resolucin de clculos y simulaciones de sistemas con la ayuda de Simulink, adems de una introduccin a la programacin de algoritmos y a la simulacin con diagramas en bloques. Para esto, la siguiente actividad consistir en realizar un programa que nos permita calcular algunos parmetros para aproximar la salida de un

PO
TP

max(theta) VF VF
(indice max 1)

100
Tsim L arg o vector theta 1

Gss

theta(end ) 5

para luego calcular los parmetros , n, que nos ayudarn a ajustar nuestro sistema de segundo orden a la salida de theta.

Ingeniera Civil Biomdica, 20/03/2008

Para calcular , guardamos en la variable A el resultado de log(PO/100), para que al despejar , obtengamos,

A2 A2
2

y calculamos n aproximado con la ecuacin,


n TP 1
2

A continuacin generamos la funcin de transferencia (comando tf) del sistema aproximado utilizando los valores calculados. Establecimos los mismos parmetros del tiempo, utilizados en la simulacin, en un vector, time=0:.001:2, generamos una respuesta escaln de amplitud 5 de nuestro sistema aproximado y guardamos la salida en variables, como muestra Fig. 2.
disp('Sistema aproximado') % Define de funcion de transferencia del sistema aprox. aprox=tf(Gss*wn^2,[1 2*zeta*wn wn^2]); % Vector de tiempo time=0:.001:2; % Respuesta escaln de amplitud 5 del sistema aproximado [y,t]=step(aprox,time); y=5*y;

Graf. 1 Con la frmula del error cuadrtico, calculamos el error de nuestra aproximacin, que es igual a la suma del cuadrado de la diferencia entre la salida original y la salida aproximada.
% Calculo del error entre aprox y real. error=sum((theta-y).^2); disp(sprintf('error= %f',error)) Sistema aproximado error= 0.376016

Fig. 4 Luego creamos una subrutina con los comandos que utilizamos para graficar la salida original theta y la salida aproximada, le agregamos las leyendas con los comandos legend(theta,aprox) y la variable X con xlabel(time (s)) y el clculo del error de la aproximacin del sistema.
%% Subrutina plot(t,theta,t,y) legend('theta','aprox') xlabel('time [s]') error=sum((theta-y).^2); disp(sprintf('error= %f',error))

Fig. 2 Creamos un grfico con la salida original de nuestro sistema, theta, y con la salida aproximada, y, con el siguiente comando
% Grafico plot(t,theta,t,y) legend('theta','aprox') xlabel('time [s]')

Fig. 3

Fig. 5

Ingeniera Civil Biomdica, 20/03/2008

Para hacer una comparacin del punto de operacin calculamos las aproximaciones al modelo utilizando nuevos valores de beta. Primero reemplazamos por beta= 140 y simulamos el modelo con los mismos parmetros desde su script mediante el comando sim y finalmente utilizamos la subrutina creada para comparar la nueva salida de theta con la aproximacin.
beta=140; sim nmreflex subrutina error= 10.848176

Fig. 6 Graf. 3 Despus ajustamos la funcin a nuevos puntos de operacin: beta=60 y beta=100, que es el punto de operacin original, y finalmente comparamos.
beta=60; sim nmreflex [y,t]=ajuste(theta,5); subrutina Transfer function: 8.593 --------------------s^2 + 19.42 s + 103.1 error= 0.755450

Fig. 8 Graf. 2 Luego con el mismo beta, agregamos la funcin ajuste.m la cual calcula la nueva salida y el vector de tiempo para un vector theta cualquiera y una entrada escaln de amplitud determinada, y utilizamos nuevamente nuestra subrutina.
beta=140; sim nmreflex [y,t]=ajuste(theta,5); subrutina Transfer function: 8.211 --------------------s^2 + 7.243 s + 230.7 error= 0.646659

Fig. 7

Graf. 4

Ingeniera Civil Biomdica, 20/03/2008 beta=100; sim nmreflex [y,t]=ajuste(theta,5); subrutina Transfer function: 10.22 --------------------s^2 + 11.98 s + 204.4 error= 0.376016

Fig. 9

nuevo theta (beta=140), se observa una disminucin del error a 0.646659, y en Graf. 3 coinciden los valores mximos y el tiempo en que ocurren. En el Graf. 4 ajustamos los sistemas a beta=60, donde obtuvimos un error de 0.755450 y en la grfica se observan dos curvas ascendentes que al llegar a su amplitud mxima se estabilizan, a diferencia de los otros grficos, donde beta es mayor que 60, ste tiene una amplitud mucho mayor, y se estabiliza rpidamente. Finalmente volvemos a nuestro beta original (beta=100) y obtenemos el mismo grfico (Graf. 1) y error del resultado original, puesto que la funcin ajuste calcula de una sola vez todos los pasos que realizamos para obtener la aproximacin. Podemos concluir, que Matlab junto con Simulink son herramientas poderosas en el anlisis y desarrollo de sistemas de control, ya que teniendo sistemas ms complejos, mediante programas podemos simplificar y modelar sistemas ms simples que los originales. IV. BIBLIOGRAFIA

Graf. 5

Gua de laboratorio 1 Matlab para Ingeniera Civil Biomdica. http://es.wikipedia.org/wiki/MATLAB III. DISCUSION

Dado los siguientes resultados del laboratorio podemos ver que al calcular el error entre la salida real y la aproximada se genera un error de 0.376016, y en Graf .1 podemos observar que los mximos coinciden y ocurren en el mismo tiempo, esto sucede porque en el proceso de aproximacin de la salida theta ocupamos los parmetros , n, Gss para ambas salidas. Cuando hacemos variar la salida de theta cambiando el punto de operacin beta=140, obtenemos un error de 10.848176 con respecto a la aproximacin del theta original, y en Graf. 2 observamos que los valores mximos y el tiempo en que se obtuvieron no coinciden. Luego, con el mismo punto de operacin, pero esta vez ocupando la funcin ajuste.m, la cual calcula una nueva salida para nuestra aproximacin con respecto al