Manual Mat Lab

April 25, 2019 | Author: Ricardo Suasnavas | Category: Point And Click, Matlab, Complex Number, Color, Window (Computing)
Share Embed Donate


Short Description

Download Manual Mat Lab...

Description

Universidad Pontificia Comillas E.T.S.I – I.C.A.I Departamento de Electrónica y Automática

Manual de referencia de

MATLAB & SIMULINK

Febrero 2000  Adolfo Anta Martínez Juan Luis Zamora Macho Ramón Rodríguez Pecharromán

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Tabla de Contenidos 1.

INTRODUCCIÓN................................................................................ INTRODUCCIÓN................................................................................................................... ................................... 3

2.

FUNCIONES MATEMÁTICAS COMUNES .......................................................................... 4

3.

CARACTERÍSTICAS DE LA VENTANA DE COMANDOS ................................................. 6 3.1.

CÓMO UTILIZAR EL W ORKSPACE  ORKSPACE .................................................................................... ....................................................................................... ... 6

3.2.

FORMATOS DE NÚMEROS ................................................................................. ................................................................................................. ................ 6

3.3.

GESTIÓN DE DIRECTORIOS .............................................................................. ............................................................................................... ................. 6

4.

M-FILES .................................................................................... ................................................................................................................................ ............................................ 7

5.

OPERACIONES CON VECTORES................................................................ VECTORES ...................................................................................... ...................... 9

6.

REPRESENTACIONES GRÁFICAS ................................................................. .................................................................................. ................. 11 6.1 L A FUNCIÓN PLOT .................................................................................... .............................................................................................................. .......................... 11 6.2 ESTILOS DE LÍNEA, MARCAS Y COLORES .............................................................................. 12 6.3 FIJAR REJILLAS, EJES, Y ETIQUETAS ................................................................................... ..................................................................................... 13

7.

TOOLBOX DE CONTROL .................................................................................. ................................................................................................. ............... 16 7.1 REPRESENTACIÓN DE UN SISTEMA ..................................................................................... ....................................................................................... 16 7.2 FUNCIONES ESPECÍFICAS ...................................................................................... ................................................................................................... ............. 17 7.3 LTIVIEW ................................................................................... .......................................................................................................................... ....................................... 20

8.

9.

AYUDA................................................................................................................................ 22 8.1.

EL COMANDO HELP ............................................................................................ ........................................................................................................ ............ 22

8.2.

L A VENTANA DE AYUDA ................................................................................................... ............. 22 AYUDA......................................................................................

SIMULINK ................................................................................... ........................................................................................................................... ........................................ 23 9.1 INTRODUCCIÓN ......................................................................................... .................................................................................................................. ......................... 23 9.2 CONSTRUCCIÓN DEL MODELO.............................................................................. ............................................................................................. ............... 24 9.3 SIMULACIÓN .............................................................................. ...................................................................................................................... ........................................ 27 9.4 MODELADO DE UN SISTEMA FÍSICO ..................................................................................... ....................................................................................... 28

2

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

1. Introducción MATLAB es una aplicación destinada destinada a cálculos matemáticos, matemáticos, si bien dispone de ciertas funciones destinadas a temas más específicos, como por ejemplo la ToolBox de control, que facilita el estudio de sistemas dinámicos y su regulación.  Además, existe un complemento de MATLAB llamado SIMULINK, que nos permite un enfoque más gráfico de los sistemas de control.  Al ejecutar MATLAB, aparecerá una ventana en blanco, llamada ventana de comandos. La forma de trabajar con MATLAB es como con cualquier calculadora: » 4*2  [ pulsamos enter] ans = 8 

 A su vez, podemos usar usar variables variables para realizar nuestros nuestros cálculos: cálculos: » precio = 17; » iva =0.16; » precio_total =17 * (1+iva)  precio_total = 19.7200 

 Acabamos de crear tres variables, cuyo valor se guardará en memoria. En las dos primeras sentencias se incluye un punto y coma al final, con lo que el resultado no aparecerá por pantalla. El nombre que elijamos para nuestras variables tiene algunas restricciones: no pueden tener un espacio intermedio, se distinguen mayúsculas de minúsculas, y deben empezar por una letra. Si queremos ver las variables que tenemos definidas, teclearemos el comando who: » who Your variables are: iva

precio

precio_total 

Por supuesto, se puede sobreescribir el nombre de una variable: » iva =0.13;

(el programa no nos avisará de que esa variable ya existe) . Para borrar todas las variables, existe el comando clear: tecleando clear iva borraría esta variable , pero si escribimos sólo clear , borrará todo lo que hay en memoria; por  desgracia, una vez eliminadas, las variables no se pueden recuperar. Podemos recuperar cualquier instrucción escrita previamente pulsando la tecla del cursor  -. Para detener la ejecución de cualquier instrucción, hay que pulsar la combinación de teclas Ctrl+C. 3

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

2. Funciones matemáticas comunes MATLAB incluye ciertas funciones que nos permiten realizar cálculos más complejos que sumar y restar. Para usar estas funciones, se procede de igual manera que en una calculadora programable; por ejemplo, para realizar una operación que incluya una raíz cuadrada escribimos: » x = 3 - sqrt (5/6) * 2   x = 1.1743

Una lista breve de las funciones de MATLAB sería:

FUNCIONES HABITUALES 

abs(x) acos(x)1

Valor absoluto de x. Si x es un número complejo, abs(x) nos da su módulo arco coseno de x

asin (x)

arco seno de x

atan (x)

arco tangente de x. Devuelve un ángulo entre -90º y 90º

atan2(x,y)

arco tangente de x entre y. Devuelve un ángulo entre 0º y 360º

cos (x)

coseno de x

sin (x)

seno de x

tan (x)

tangente de x

exp (x)

exponencial e x

log(x)

logaritmo neperiano de x

log10 (x)

logaritmo en base 10 de x

rem(x,y)

resto de la división x / y

unwrap(x)

sitúa el ángulo x entre pi y -pi

roots(x)

halla las raíces del polinomio x

fzero('f(x)',n)

encuentra la solución de la ecuación f(x)=0 ; n es el valor por  donde empieza a iterar para hallar la solución.

(ej.- f(x)= 'x^2+x+3' ) sqrt(x)

raíz cuadrada de x

angle (x)

ángulo de x

real(x)

parte real de x

imag(x)

parte imaginaria de x

1

MATLAB trabaja únicamente en radianes.

4

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Es recomendable trabajar con atan2  en vez de atan, pues si la parte real del número complejo es negativa, el ángulo quedará en el segundo o tercer cuadrante. Por  ejemplo: » 180/pi*atan(-2/3) ans = -33.6901 » 180/pi*atan(2/-3) ans = -33.6901 » 180/pi*atan2(-2,3) ans = -33.6901 » 180/pi*atan2(2,-3) ans = 146.3099

Para la función atan los números complejos -2+3j y 2-3j tienen la misma fase; atan2 , sin embargo, nos da el ángulo correcto. Se ha multiplicado por 180/pi para obtener el resultado en grados 2. Para definir un número complejo, se puede usar  i  o  j  como unidad imaginaria indistintamente: » c1=-1+2j c1 = -1.0000 + 2.0000i » c1=-1+2i c1 = -1.0000 + 2.0000i

2

La constante pi viene definida por defecto en MATLAB

5

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

3. Características de la ventana de comandos 3.1. Cómo utilizar el Workspace

Todas las variables que hemos definido se guardan en el Workspace, que no es más que el espacio de memoria que utiliza MATLAB.  Aparte de crear y borrar variables, resulta útil guardar sesiones de trabajo, es decir, todas las instrucciones que hemos tecleado en la ventana de instrucciones. Para ello, al inicio de la sesión tecleamos diary . Podemos elegir el tipo de archivo, si bien es recomendable que éste sea de texto (por ejemplo, diary  c:\regulación\resumen.txt). Para que deje de grabar la sesión teclearíamos diary off .

También podemos guardar únicamente el valor de algunas variables: » save c:\regulación\datos x y 

 Aquí no es necesario añadir la extensión, y MATLAB creará el fichero con extensión .mat. Las variables x e y han de estar previamente definidas. Para recuperar las variables guardadas teclearemos: » load datos

3.2. Formatos de números

Se habrá observado que por defecto todos los números nos aparecen con cuatro decimales. Se puede cambiar el formato de salida seleccionando el menú File\Preferences. Cabe destacar que, con el formato que aparece por defecto, algunos números pueden aparecer por pantalla como 0.0000, aunque realmente no son 0 (sino 3.5·10-7, por ejemplo). 3.3. Gestión de directorios

Por defecto, al arrancar MATLAB empezamos en el directorio matlab\bin, mientras que nuestros ficheros (M-files o modelos de SIMULINK) suelen estar en otras carpetas. Para "movernos" en MATLAB, usaremos los comandos típicos de MS-DOS: cd  para acceder a un directorio, dir  para ver el contenido de un directorio, cd.. para salir  de una directorio.

6

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

4. M-files Cuando realizamos cálculos simples, es habitual escribir las instrucciones en la ventana de comandos. Sin embargo, cuando se van a realizar una serie de operaciones más complicadas y de forma repetitiva, se utilizan los llamados M-Files; son ficheros de texto donde tecleamos las instrucciones de MATLAB. Para crear un nuevo archivo M, hacemos clic en File\New\M-File; nos aparecerá una ventana en blanco para editar el archivo. Por ejemplo: % Mi primer programa en MATLAB 3 comp1=-2+3i; comp2=-10+5i; comp=comp1+comp2; modulo=abs(comp) fase=unwrap(180/pi*phase(comp))

Una vez guardado el archivo (con el nombre trabajo.m, por ejemplo), nos bastará teclear su nombre en MATLAB, y se ejecutará directamente: » trabajo modulo = 14.4222  fase = 140.0267 

Supongamos que queremos que este programa sirva no sólo para los complejos comp1 y comp2. Para ello, bastará con borrar las dos primeras líneas del programa anterior. Ahora tendremos que definir antes el valor de comp1 y comp2 (si no, MATLAB nos dará un error diciendo que las variables comp1 y comp2 no están definidas): » comp1=-3+2i; » comp2=-10+j; » trabajo modulo = 13.3417  fase = 160.7222 

3

El símbolo % indica que esa línea es comentario.

7

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

También podíamos hacer que el programa pidiese los números complejos al usuario (pues éste no tiene por qué saber qué es comp1 y comp2): comp1=input( 'Introduzca el primer número complejo ->  ); '  comp2=input( 'Introduzca el segundo número complejo ->  ); '  comp=comp1+comp2; modulo=abs(comp) fase=unwrap(180/pi*phase(comp))

8

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

5. Operaciones con vectores Hasta ahora, todas las variables utilizadas eran escalares. Por supuesto, también se pueden definir vectores. Por ejemplo, queremos hallar el valor de seno (x) para 0 < x < p. Como es imposible hallar todos los valores (hay infinitos puntos), debemos definir una serie de valores de x. Si tomamos 11 puntos, definiremos x de la forma: » x=[0 0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi]   x = Columns 1 through 7  0

0.3142

0.6283

0.9425

1.2566

1.5708

1.8850 

Columns 8 through 11 2.1991

2.5133

2.8274

3.1416 

Tal como hemos visto, para crear un vector fila es necesario escribir entre corchetes los elementos, separados por un espacio o una coma Si ahora escribimos sin (x), hallaremos el seno de todos los valores de x: » y=sin(x) y= Columns 1 through 7  0

0.3090

0.5878

0.8090

0.9511

1.0000

0.9511

Columns 8 through 11 0.8090

0.5878

0.3090

0.0000 

Para manejar un único elemento del vector, por ejemplo seno(0.5*pi), nos referiremos a él como el elemento 6 del vector y: » y(6) ans = 1

Si queremos utilizar los 5 primeros elementos, escribiremos y(1:5), y para tomar del elemento 7 al último teclearemos y(7:end) En caso de querer representar la función seno(x), necesitaríamos bastantes más de 11 elementos para obtener una gráfica aceptable. Escribir 1000 elementos resultaría bastante tedioso. Como era de suponer, existe una forma “automática” de crear un vector. La instrucción es: x= (valor_inicial:incremento:valor_final). Por ejemplo: X=(0:0.01:pi);

%Esta instrucción nos crea un vector x con valor inicial x, valor  %final pi, y la diferencia entre elementos consecutivos es 0.01*pi

9

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Es muy recomendable escribir el " ; " al final de la sentencia, pues si no aparecerán cada uno de los elementos del vector por pantalla: 0, 0.01pi, 0.02pi , y así hasta pi. Las diferentes formas de crear un vector aparecen resumidas en la siguiente tabla:

Construcciones básicas de vectores  X = [2 2*pi sqrt(2) 2-3j] 

Crea un vector con los elementos espeficados

 X = primero : ultimo

Crea un vector empezando en  primero, incrementando una unidad en cada elemento, acabando en el elemento ultimo En este caso, el incremento no es 1 sino que es fijado por nosotros Crea un vector empezando en  primero, acabando en ultimo, con n elementos Crea un vector logarítmico

X=primero:incremento:ultimo X=linspace(primero, ultimo,n) X=logspace(primero, ultimo,n)

De igual manera, se pueden crear matrices, escribiendo un " ; " para indicar que es una fila distinta: » x= [ 2 3 ; 2 5 ] x= 2 3 2 5

10

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

6. Representaciones gráficas 6.1 La función plot 

Para representar gráficos en dos dimensiones, es habitual utilizar el comando  plot(eje x, eje y). Por ejemplo, si quisiésemos representar la función seno:

» x = (0:0.01:2*pi); » y = sin(x); » plot (x,y) Debería aparecernos una ventana del tipo Figure:

Fig 1. Representacion gráfica de funciones con el comando  plot  Esta gráfica se puede ampliar, reducir , cambiar su color y copiar para utilizarla en otro documento. Si ya teníamos abierta una ventana Figure, al usar   plot , desaparecerá la gráfica anterior sin previo aviso. Para evitarlo, añadiremos una nueva ventana tecleando figure en MATLAB. Es posible dibujar más de una gráfica en una ventana, escribiendo  plot(eje x1, eje y1, eje x2, eje y2,...); por ejemplo:

11

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

» z = cos(x); » plot(x,y,x,z)

También podemos dividir la ventana en varias partes con el comando subplot (m,n,i). La ventana Figure se dividirá en una matriz de m por n pequeñas ventanas, y se seleccionará la ventana i-ésima. Por ejemplo: subplot(2,1,1);

%La ventana Figure se dividirá en dos; selecionamos la primera

 plot(x,y)

%Representamos y=sin(x)

subplot(2,1,2);

%Ahora selecionamos la segunda

 plot(x,z)

%Representamos z=cos(x)

1 0.5 0 -0.5 -1

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

1 0.5 0 -0.5 -1

Fig 2. Representación de varias gráficas con subplot 

12

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

6.2 Estilos de línea, marcas y colores

Es posible modificar el color y estilo de las gráficas. Para ello, existen ciertos parámetros que admite la función plot, y han de introducirse como un tercer  argumento, después de cada par de variables.

Símbolo

Color

Símbolo

Marca

Símbolo

Estilo de línea

b

Azul

.

Puntos

-

línea continua

g

Verde

O

Círculos

:

línea punteada

r

Rojo

x

cruces

-.

puntos y rayas

c

Cyan

+

más

--

discontinua

m

Magenta

*

estrellas

y

Amarillo

s

cuadrados

k

Negro

d

diamantes

w

Blanco

p

pentagramas

Por ejemplo: » plot( x, y, 'rx', x, z, 'o--')

Fig 3. Estilos de línea y colores con la función plot

13

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

6.3 Fijar rejillas, ejes, y etiquetas  – 

Para fijar una cuadrícula en la ventana Figure, basta con teclear  grid on. Para quitarla, escribimos grid off .

 – 

Podemos escribir los nombres de los ejes y de la gráfica: » title('Representación de las funciones seno y coseno’'), xlabel ('variable independiente'), ylabel ('variables dependientes')

 – 

Podemos escribir en el gráfico con la función gtext: » gtext('cos(x)')  Al pulsar enter nos aparecerá la ventana Figure; con el ratón podemos decidir  dónde situar el texto

 – 

Existe también el comando legend , cuya función es similar a la de gtext: » legend (‘variable Y’, ‘variable Z’) El cuadro de la leyenda se puede situar donde queramos, arrastrandolo con el ratón.

 – 

También se puede cambiar los ejes, con el comando axis: La estructura a escribir es: axis ([xmin xmax ymin ymax]) » axis([0 2*pi -1.5 1.5]) Para volver al autoescalado, teclearemos axis auto. Otra forma de ampliar o reducir las gráficas es usando la función zoom. Los comandos zoom y legend  no pueden estar activos a la vez, pues los dos responden al clic del ratón.

 – 

Se puede tomar valores de una gráfica con la instrucción ginput . Una vez tecleado ginput, nos aparecerá la ventana Figure, y con el ratón haremos clic en el punto que queramos conocer. Después pulsaremos enter  y el valor de las coordenadas del punto aparecerán en la ventana de comandos de MATLAB.

Después de todas estas operaciones, la gráfica resultante es:

14

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia Representación de las funciones seno y coseno

1.5

1 s et n ei d n e p e d s el b ai r  a v

0.5

cos(x)

sen(x)

0

-0.5

-1

-1.5

variable Z variable Y

0

1

2

3 4 variable independiente

Fig 4. Edición de figuras en MATLAB

15

5

6

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

7. Toolbox de control 4 7.1

Representación de un sistema

El primer problema que se nos plantea es la definición de un sistema. Los sistemas se suelen expresar en forma de función de transferencia. Ésta se puede expresar como cociente de polinomios, con la instrucción tf  : escribiremos entre corchetes los coeficientes de numerador y denominador (en sentido descendente de las potencias de la variable s). » planta = tf ( [ 1 1] , [3 2 5] );

nos definiría

 F ( s ) =

1 + S  3 × S 2

+

2 × S  + 5

De esta representación, podemos quedarnos únicamente con el numerador y/o denominador: » [num,den] = tfdata (planta , ' v ' )5  num =

0

1

1

den = 3

2



u obtener los polos y ceros del sistema: » [z,p,k] = tf2zp (num,den);

z= -1 p= -0.3333 + 1.2472i -0.3333 - 1.2472i k= 0.3333 , donde k no es la ganancia estática, sino la que se obtiene al expresar la función de transferencia en forma de polos y ceros. También podemos obtener la descomposición en fracciones simples: » [r, p, k] = residue (num,den) r= 0.1667 - 0.0891i  0.1667 + 0.0891i  4 5

Teclear ctrldemo para ver una demostración de las posibilidades que ofrece esta Toolbox El argumento 'v' se incluye para obtener numerador y denominador en forma de vectores

16

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

 p = -0.3333 + 1.2472i  -0.3333 - 1.2472i  k= [] 

El coeficiente k  representa el término independiente, que valdrá 0 siempre que el orden del numerador sea inferior al del denominador. Es decir, F(s) también se puede expresar como:

 F ( s ) =

7.2

0.1667 - j 0.0891 S + 0.3333 - j 1.2472

+

0.1667 +  j 0.0891 S + 0.3333 +  j 1.2472

Funciones específicas

Existen diversos comandos en MATLAB para dibujar gráficos de respuesta en frecuencia: » bode (planta)

% Diagrama de Bode

» pause » nichols (planta)

% Diagrama de Black 

» pause » nyquist (planta)

% Diagrama de Nyquist desde w = -¥  hasta w = +¥ 

Si no incluyesemos la instrucción  pause, nos aparecerá únicamente la última gráfica (el diagrama de nyquist en nuestro ejemplo); de esta manera, nos mostrará el primer  diagrama, y no pasará al siguiente hasta pulsar cualquier tecla. Si queremos dibujar un diagrama para unas pulsaciones determinadas, es necesario definirse previamente el vector de pulsaciones w: » w = logspace (-2, 3, 1001); % Creamos vector w, con valor inicial en 10 -2 , valor  % final = 10 3, con 1001 puntos » bode (planta,w)

Podemos hallar también los márgenes de ganancia y/o fase y pulsaciones asociadas: » [ganancia, fase] =bode (planta); » [Mg,Mf,wu,wo]=margin (ganancia,fase,w) Mg = 7.3343

17

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Mf = Inf  wu = 1.8258  wo = NaN 

En este caso, no tenemos margen de fase, y por tanto no existe la pulsación de cruce (el término NaN significa Not-A-Number). Existen también funciones para dibujar el lugar de las raíces: » rlocus(planta) 1.5

1

0.5 si x  A g a m I

0

-0.5

-1

-1.5 -4

-3

-2

-1

0

1

Real Axis

Fig 5. Lugar de las raíces de la función de transferencia " planta"  Con este gráfico, es posible diseñar para obtener unos polos determinados. Para obtener mayor precisión, es conveniente dibujar una rejilla radial: » zeta=0:0.1:1;

% Definimos x  y wn

» wn=1:10; » sgrid(zeta,wn)

% Nos muestra rectas de pendiente zeta y  % circunferencias de radio wn

» zoom

18

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Y ahora hallamos la ganancia necesaria para obtener los polos » [gan,polos]=rlocfind(planta)

% Aparece un cursor en la ventana del  % lugar de las raíces

Select a point in the graphics window  selected_point = -1.0554 + 1.4078i  gan = 4.3339  polos = -1.0557 + 1.4131i  -1.0557 - 1.4131i 

Otras funciones útiles de esta Toolbox son: dcgain(sistema)

Halla la ganancia estática del sistema

[num,den]=pade(T, n)

Devuelve el numerador y denominador de una aproximación de Pade de e -TS, de orden n Simplifica la función de transferencia de sistema

minreal(sistema)

Para empezar a simular con nuestra función de transferencia, existen numerosas funciones en MATLAB( step, impulse), si bien lo más sencillo es utilizar SIMULINK o LTIVIEW.

19

UPCo ICAI - DEA

7.3

MATLAB & SIMULINK Manual de referencia

LTIVIEW 

Todo lo que hemos visto hasta ahora se puede hacer con un único comando de forma más intuitiva. Para ello, tecleamos ltiview. Nos aparecerá la siguiente pantalla:

Funciones de transferencia

Fig 6. Pantalla del LTIVIEW Tipo de gráfica

En el recuadro Workspace nos aparecen todas las funciones de transferencia que hemos definido. Para seleccionar una de ellas, hacemos doble clic. En Plot Type, podemos elegir el tipo de gráfica: ante un escalón, diagrama de Bode, Nyquist, lugar  de las raíces, etc; además, al seleccionar uno de ellos, nos aparecerá en Plot Options varias posibilidades; por ejemplo, para un escalón, nos muestra el tiempo de establecimiento, pico ,etc.; y para cualquier diagrama de respuesta en frecuencia, podemos ver el margen de fase y ganancia de nuestra planta.

20

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

 Al seleccionar una de estas opciones, nos aparecerá un punto en la gráfica; para ver  cuál es el valor en concreto, es necesario mantener pulsado el ratón en ese punto.

Fig 7. Análisis de sistemas con LTIVIEW

21

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

8. Ayuda Existen demasiados comandos en MATLAB para poder recordarlos. Para facilitarnos la labor, se ha creado un archivo de ayuda al cual podemos recurrir en todo momento. 8.1. El comando help

Para recurrir a la ayuda, basta con teclear  help nombre_de_función. Si escribimos help a secas, nos aparecerá una lista de categorías de las funciones disponibles. Por  ejemplo: » help sqrt  SQRT Square root. SQRT(X) is the square root of the elements of X. Complex  results are produced if X is not positive. See also SQRTM 

El comando help nos muestra una pequeña descripción de la función, y también una serie de comandos relacionados (en este caso sqrtm, que nos permite hacer raíces cuadradas de matrices ).  Aunque en la ayuda aparezca la función en mayúsculas, al usarla hemos de escribirla en minúscula (pues SQRT daría error). Si no conocemos en concreto el nombre de la función, podemos usar el comando lookfor: »lookfor complex 

nos mostrará todas las funciones relacionadas con números complejos. También es útil el comando demo , que nos mostrará una pantalla con demostraciones de todas las posibilidades que ofrece MATLAB. 8.2. La ventana de ayuda

Existe una ventana específica para la ayuda de MATLAB. Para que aparezca, escribimos helpwin o hacemos clic en el icono

, en la barra de herramientas.

La ventana contiene un listado de todas las categorías de MATLAB. Haciendo clic en cualquiera de ellas, pasaremos a una pantalla donde aparecen todas las funciones de esa categoría. El botón Tips nos describe brevemente cómo usar la ayuda.

22

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

9. Simulink 9.1 Introducción

Simulink es una extensión de M ATLAB para la simulación de sistemas dinámicos.  Al ser un entorno gráfico, resulta bastante sencillo de emplear. Para ejecutar Simulink, podemos teclear  simulink  desde MATLAB, o bien hacer clic en el icono

, en la barra

de herramientas de MATLAB. Nos aparecerán dos ventanas: una con las librerías de Simulink, y otra en blanco donde construiremos nuestro nuevo modelo.

Fig 8. Librerías de Simulink En cada uno de los grupos que aparecen en la fig. 3, estarán los bloques necesarios para simular nuestro sistema de control. Por ejemplo, haciendo doble clic en Linear  aparecerá la siguiente ventana:

23

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Fig 9. Contenido de la librería Linear  9.2. Construcción del modelo

Supongamos que se tiene el siguiente sistema de control: ref 

 _

10

S  + 1 S 

+

3·S  + 5

Fig 10. Diagrama de bloques del sistema de control

24

Salida

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Para construirlo en Simulink, seguiremos los siguientes pasos: En el grupo Linear , elegimos el bloque Sum, y lo arrastramos hasta nuestra ventana vacía. Del mismo grupo, elegimos Transfer Fcn y Gain. Para introducir los valores que tendrán los bloques, hacemos doble clic en cada uno de ellos. Nos aparecerá el cuadro de diálogo correspondiente:

Fig 11. Introducción de valores para cada bloque Se hará de igual manera para la constante ( Gain) y el punto de suma ( Sum), en el que pondremos +Cada bloque tiene en sus extremos una o varias flechas. Al situarnos con el ratón en esas flechas, el puntero pasa a ser una cruz. Para conectar los bloques, arrastramos hasta la flecha del siguiente bloque.  Ahora necesitamos poner la referencia. Para ello, hacemos doble clic en el grupo Sources, y elegimos Step. Lo arrastramos hasta la ventana donde tenemos el modelo.

Para cambiar los valores del escalón, y el tiempo en que éste se produce, hacemos doble clic en el bloque. Por defecto, el escalón es unitario y se da en t=1. Por último, para ver la salida (o cualquier otra señal) hay varias posibilidades. Las dos más utilizadas son los bloques Scope y To Workspace (en el grupo Sinks). El bloque Scope nos permite ver el comportamiento de una señal mientras se simula. Por el contrario, To Workspace guarda la señal en memoria, para poder dibujarla después de la simulación (con el comando plot) o guardarla en un fichero de datos .mat.

25

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

El modelo en Simulink quedará como en la figura siguiente:

Fig 12. Modelo de Simulink del sistema de control La orientación por defecto de los bloques es "a derechas" (la entrada está en la izquierda, la salida en la derecha). Esto se puede cambiar seleccionando el bloque y pulsando Ctrl+R o en el menú Format/Rotate Block. Después de construir el modelo, resulta conveniente guardarlo antes de empezar a simular (Menú File/Save as..). Los modelos de Simulink se guardan con extensión .mdl

26

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

9.3. Simulación

Para simular el sistema ya construido, elegimos Start  del menú Simulation . En este menú también hay otras opciones; la única que usaremos es Parameters:

Fig 13. Introducción de los parámetros de la simulación En este recuadro elegimos las características de la simulación. Las más importantes es Start time (que suele ser 0.0) y Stop time. Ésta última se tendrá que ajustar a nuestro sistema, pues por ejemplo un sistema mecánico es mucho más rápido que uno térmico, y necesitará menos tiempo para llegar al régimen permanente. Una vez empezada la simulación, ésta se puede parar o hacer una pausa (en el mismo menú Simulation /Stop y Simulation/Pause) Si queremos ver la salida, hacemos doble clic en el bloque Scope. Nos aparecerá la siguiente pantalla:

27

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Fig 14. Visualización de la respuesta mediante el bloque Scope En la barra de herramientas existen varios iconos: los tres primeros fijan el tipo de zoom (ampliar eje  x y eje y , sólo eje x  o solo eje y ). El cuarto icono (con el símbolo de los prismáticos) hará que aparezca en pantalla la gráfica completa. El quinto nos guarda la configuración de los ejes para posteriores simulaciones, y el último nos permite fijar los ejes, y la cantidad de datos que queremos guardar. 9.4 Modelado de un sistema físico

No siempre disponemos de una función de transferencia, sino que tenemos un conjunto de ecuaciones que nos describe el comportamiento de un sistema r eal. Esta función de transferencia se podría obtener resolviendo el sistema de ecuaciones, pero resulta más sencillo utilizar Simulink. Para ello, nos construimos cada una de las ecuaciones con bloques. Después hemos de definir una entrada y una salida, mediante los bloques In y Out , que aparecen en el gupo Connections, pues la función de transferencia se representa como  F ( s )

Y ( s ) =

U ( s )

 salida =

entrada

.

Guardamos el modelo, y después, desde MATLAB, escribimos las siguientes instrucciones: >> [A,B,C,D]=linmod ('mi_planta');

%Donde 'mi_planta' es el nombre del archivo

28

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

>> [num,den]=ss2tf (A,B,C,D);

Ejemplo:Intentaremos modelar el siguiente sistema térmico:

1 3 2

Datos: Potencia inyectada en bloque 3 Temperatura controlada en bloque 3 C1= 2 min kW / ºC

C2= 2.5 min kW / ºC

C3= 3.5 min kW / ºC

R13 = 7.5 ºC / kW

R23 = 10 ºC / kW

R30 = 15 ºC / kW

Las ecuaciones que nos describen este sistema son: 6

 Pg ( s ) = C 3 ·T 3 ( s )· s + 1  R31 1  R32

·(T 3 ( s ) - T 1 ( s ))

=

1  R32

·(T 3 ( s ) - T 2 ( s )) +

1  R31

·(T 3 ( s ) - T 1 ( s )) +

1  R30

·(T 3 ( s ) - T 0 ( s ))

C 1·T 1 ( s )· s

·(T 3 ( s ) - T 2 ( s )) = C 2 ·T 2 ( s )· s

Representando estas ecuaciones en un modelo de Simulink, nos queda:

6

No se ha considerado el efecto de una posible perturbación, pues hemos de definir una única entrada y salida

29

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

[T3] 1

1/15

1/60

[T1]

s

[T1]

[T3] 1/25

1

1/60

[T2]

s

[T2]

[T3] 1/7.5 [T1]

[T3] 1

1/10

Out

[T2]

1/3. [T3]

1/60

1

[T3]

s

1/15 1 In

Fig 15. Modelo de Simulink que representa el sistema térmico Para construir el modelo de una forma más clara, se han utilizado Tags o etiquetas (que se encuentran en Connections ) El término 1/60 corresponde al cambio de unidades de minutos a segundos  Ahora escribimos en MATLAB: >> [A,B,C,D]=linmod ('mi_planta'); >> [num,den]=ss2tf (A,B,C,D); >> planta =tf(num,den)

La función de transferencia entre la potencia aportada al sistema y la temperatura a controlar queda: T 3 ( s )  Pg ( s )

=

0.004762·S 2

+

8.466·10 -6 ·S  + 3.527·10-9

S 3 + 0.0032·S 2

+

2.257310 - 6 ·S  + 2.352·10 -10

30

(en segundos)

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF