CURSO: SIMULACIÓN DE SISTEMAS AMBIENTALES PROFESOR: M.I. Jorge Antonio Polanía P.

download CURSO: SIMULACIÓN DE SISTEMAS AMBIENTALES PROFESOR: M.I. Jorge Antonio Polanía P.

If you can't read please download the document

Transcript of CURSO: SIMULACIÓN DE SISTEMAS AMBIENTALES PROFESOR: M.I. Jorge Antonio Polanía P.

MAESTRA EN INGENIERA Y GESTIN AMBIENTAL

MAESTRA EN INGENIERA Y GESTIN AMBIENTALCURSO: SIMULACIN DE SISTEMAS AMBIENTALES

PROFESOR: M.I. Jorge Antonio Polana P.

1CONTENIDO2MDULO 3: PROCESOS CON SIMULINKELEMENTOS BSICOSMODELADO DE SISTEMASFUNCIONES Y BUCLESSIMULINK MATLAB EN PROCESOS31.1 INTRODUCCINSimulink es una extensin de Matlab utilizado en el modelamiento y simulacin de sistemas. Para arrancar Simulink se puede hacer desde el prompt de Matlab digitando el comando >>Simulink o utilizando el cono . Se abre la ventana Simulink Library Browser como se indica abajo y se puede diagramar un nuevo modelo activando el botn New Model , o sea el icono o de File NewModel

1. ELEMENTOS BSICOS

4

5

Un modelo es un conjunto de bloques que representa un sistema y como archivo tiene extensin *.mdl61.2 BLOQUES BSICOSLos elementos bsicos son lneas y bloques. Los bloques estn agrupados en: Sources, Links, Discrete, Continuos, Math, etc., tal como aparecen en la ventana anterior. Cada bloque tiene entradas y salida para realizar su interconexin. Por ejemplo, haga clic en continuos y luego clic en Transfer Fcn y arrastre el bloque a la ventana en blanco. Si quiere modificar la funcin de transferencia del bloque haga doble clic en l y digite los coeficientes del numerador y denominador en la nueva ventana que aparece. Para la funcin 1/(s2 +2s +4) quedara:

7

81.3SISTEMA DE BLOQUESRealizar el diagrama en bloques del siguiente sistema :Lo primero es arrastrar los bloques a la pgina en blanco de forma que, Step es la funcin paso o escaln que se obtiene de Sources, Scope es el osciloscopio que se obtiene de Sinks, Transfer Fcn se obtiene de Continuos, Sum y Gain se obtienen de Math. Modifique los bloques dando doble clic sobre cada uno de ellos para cambiar sus parmetros o valores e interconctelos.

9Lo segundo es cambiar los nombres a los bloques y asignar las variables o seales haciendo doble clic en el lugar en que se van a colocar y salvar el modelo especificndole un nombre, por ejemplo ejem1.mdl

10Por ltimo se debe simular el sistema. Para ello se configura la seal de entrada, en este caso la funcin paso (escaln). Dar doble clic y asignar los siguientes parmetros: Step time=0, Inicial value=0, Final value=1, Sample time=0. Para simular el sistema de control se escoge del men Simulation -> Start o el icono .y luego se hace doble clic en Scope para ver su respuesta o salida del sistema. Para observar adems la entrada se puede colocar otro Scope a la salida de Step y se puede probar para varios pasos variando su amplitud, tiempo de inicio y tiempo de iniciacin del paso.

Para observar mejor la respuesta se usa el botn Autoscale (binoculares ) de la ventana del Scope. Si quiere observar mejor la respuesta o parte de ella se pueden cambiar los parmetros de simulacin, Simulation-> Simulation parameters. Por ejemplo cambiar el Start time y el Stop time y correr nuevamente la simulacin.

11

12A) ECUACIONES DINMICAS

(1)

(2)

Los parmetros fsicos tienen los siguientes valores:J = 0.01b = 0.1 Ke = Kt = 0.01 R = 1 L = 0.51.4MODELANDO UN SISTEMA

13B) MODELAMIENTO DEL SISTEMA

14C) EXTRAER MODELO DEL SISTEMAPara obtener la funcin de transferencia del sistema primero se trasladan los parmetros al modelo creando un archivo en Matlab (*.m) de la siguiente forma:% valores de los parmetros del motorJ = 0.01;b = 0.1;Ke = 0.01;Kt = 0.01;R = 1;L = 0.5;

15Como segundo paso se debe obtener el modelo del sistema. Para esto, borre el bloque Scope y cmbielo por Out obtenido de la librera de Signals&Systems. Haga lo mismo para Step cambindolo por In de esta misma librera. Los bloques In y Out definen la entrada y salida del sistema que le gustara extraer. Salve este modelo. El sistema quedar as:

Se ejecuta este archivo y se simula el modelo para una entrada de paso unitario de valor V = 0.01, con los siguientes parmetros de simulacin: Stop time = 3 sg. Arranque la simulacin y observe la salida.16

17Como tercero y ltimo paso, despus de desarrollado el modelo y salvarlo por ejemplo con el nombre sistema.mdl se ejecutan los siguientes comandos:

% obtener el modelo del sistema[num, den] = linmod(sistema')Gps = tf(num, den)

FUNCIN DE TRANSFERENCIA DEL SISTEMA18D) CREANDO UN SUBSISTEMAAbra una nueva ventana y arrastre de la librera Signals&Systems el bloque SubSystem , haga doble clic en este bloque, abra el modelo sistema.mdl (el que tiene In y Out como terminales) cpielo y pguelo en la nueva ventana de subsistema anterior. Cierre ventanas y aparece una nueva con el bloque con los terminales del subsistema creado. Dle el nombre sistema. Si a este bloque de subsistema se le da doble clic aparece el modelo completo diseado anteriormente. Otra forma es sealar los bloques de inters, ir a men Edit --> create Subsytem

19Matlab permite la ejecucin de conjuntos de comandos escritos secuencialmente en la ventana de edicin y que son almacenados en un archivo nombre.m. Para ejecutar un archivo basta con teclear su nombre (sin extensin) en modo interactivo en la ventana de comando y pulsar enter. En el archivo .m se pueden introducir textos explicativos comenzando la lnea con el smbolo %.

3. FUNCIONES Y BUCLES

3.1 FUNCTION

El comando function permite la definicin de funciones con la siguiente sintaxis:function parmetros_salida = nombre_funcin(parmetros_entrada) cuerpo de la funcin20Una vez definida la funcin se guarda en un archivo nombre_funcin.m para su posterior utilizacin. Cuando los parmetros de salida son ms que uno se sitan entre corchetes separados por comas. Si los parmetros de entrada son ms que uno se separan por comas.

Ejemplo:Solucin de una ecuacin de segundo grado: ax2+bx+c=0function [x1,x2] = cuadratica(a,b,c)%Esta funcion calcula las raices de una ecuacion cuadraticaradical = sqrt(b^2-4*a*c);x1= (-b+radical) / (2*a);x2= (-b-radical) / (2*a);Se guarda el archivo como: cuadratica.m21Calcular las races de: x2+2x+3=0>> [x1,x2]=cuadratica(1,2,3)x1 = -1.0000 + 1.4142ix2 = -1.0000 - 1.4142i

3.2 GLOBALNormalmente cada funcin de Matlab definida como un archivoM contiene sus variables como variables locales, esto es, su efecto es al interior de este archivo independientemente de otros archivos. Es posible definir otras variables que tenga efecto en otros archivos-M con variables globales usando el comando global con la siguiente sintaxis:global x y z ... define las variables x, y, z,....como globales223.3 FORPermite ejecutar de forma repetitiva un comando o grupo de comandos varias veces. Tiene la siguiente sintaxis:caso1:for i= 1:ncomandosendcaso2:for i=n:-0.2:1comandosendcaso 3:for i=1:mfor i=ncomandosendend23Ejemplo:Sumar los enteros impares de 1 a 100suma=0;for i=1:2:100 suma=suma+i;enddisp('El resultado es: ')display(suma)

Ejemplo:Calcular la suma de los elementos de una matrizM=[1 2 -2 4; 0 -3 1 0; 2 -1 4 3];% numero de filasm=length(M(:,1));% numero de columnasn=length(M(1,:));suma=0;for i=1:m for j=1:n suma=M(i,j)+suma; endenddisplay(suma)El resultado es:

suma =

2500243.4 WHILEMientras se ejecuta una condicin se ejecutan los comandos o sentencias.whilecondicinsentenciasend

Ejemplo:Calcular los volmenes de las esferas para radio igual a: 1,2,3,4,5r=0;while r=Mayor o igual que t = 0:0.001:0.999;>> t = t;>> x = exp(t)Al ejecutarse Simulink toma los datos entregados por Matlab. No olvidar colocar condicin inicial y(0) = 3 en el integrador.

DE SIMULINK A MATLAB

Para enviar datos de Simulink a Matlab se utiliza de la librera Sinks el bloque To Workspace.

EJEMPLO:

Resolver la ecuacin: f(t) = Mx + Bx + Kx, M=1, B=1, K= 10, F(t) = 542

x=1/M[f(t)-Bx-kx]En Matlab:>> plot(t,y)434.2 SISTEMA HIDRULICOPara el siguiente problema hallar la variacin de h si el caudal normal Q es de 10 lit/min y en t=5 seg se aplica una perturbacin de 2 lit/min. El valor de K=10, A= 2 m2.

44Diagrama Simulink:

45

46

4.3 SISTEMA MECNICO47Ecuaciones dinmicas:

48

49Programa Matlab:%PROGRAMA DEL SISTEMA MECANICOclear allm1=40;m2=60;k=400;b=200;clcdisp('********************************************************************')disp('Para ir a simulink tiene que digitar en K>>mecanico1')disp('DIGITE en K>> return para retornar a Matlab y TECLA Enter')keyboard[num,den]=linmod('Mecanico1');Gs=tf(num,den);%************************************************************************

50%Rutina para quitar coeficientes pequeosn=length(num);d=length(den);for i=1:n if num(i)