PDF de programación - Tutorial de análisis y control de sistemas usando Matlab

Imágen de pdf Tutorial de análisis y control de sistemas usando Matlab

Tutorial de análisis y control de sistemas usando Matlabgráfica de visualizaciones

Publicado el 16 de Marzo del 2020
637 visualizaciones desde el 16 de Marzo del 2020
283,2 KB
44 paginas
Creado hace 20a (20/01/2004)
TUTORIAL DE

ANÁLISIS Y CONTROL DE

SISTEMAS USANDO MATLAB



Manuel Vargas Villanueva

Este tutorial está basado en un trabajo original de:
Manuel Berenguel Soria y Teodoro Álamo Cantarero

Contenido

1 AN ÁLISIS Y CONTROL DE SISTEMAS USANDO MATLAB

1.1

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Tratamiento mediante funciones de transferencia. Sistemas con-
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

tinuos

1.2.1 Dominio Temporal

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2 Dominio Frecuencial

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.3 Comandos relacionados con operaciones de bloques . . . . . . . . . . .

1

1

1

2

5

9

1.2.4 Lugar de las raíces . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.3 Estudio temporal y frecuencial de sistemas de primer y segundo
orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3.1

Sistemas de primer orden . . . . . . . . . . . . . . . . . . . . . . . . .

1.3.2

Sistemas de segundo orden . . . . . . . . . . . . . . . . . . . . . . . .

1.3.3 Análisis del efecto de un cero en la respuesta temporal de un sistema
de segundo orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3.4

Influencia de polos adicionales. Polos dominantes . . . . . . . . . . . .

1.4 Tratamiento mediante funciones de transferencia. Sistemas dis-
cretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5 Tratamiento mediante descripción en el espacio de estados

. . . .

12

12

15

23

26

28

30

1

2

CONTENIDO

1.5.1 Diseño de reguladores en el espacio de estados

. . . . . . . . . . . . .

1.6 Manipulación mediante objetos . . . . . . . . . . . . . . . . . . . . . . .

1.7 Resumen de los comandos más importantes del Control System
Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

33

36

Capítulo 1

AN ÁLISIS Y CONTROL DE
SISTEMAS USANDO MATLAB

1.1 Introducción

En lo que sigue, se va a realizar una introducción a los comandos de matlab relacionados con
la teoría de control de sistemas. Casi todas las funciones que se describen pertenecen al Con-
trol System Toolbox. Las funciones principales se van a explicar sobre ejemplos demostrativos,
con el fin de que su uso y comprensión sean lo más sencillos posible. Se realizarán ejemp-
los tanto en el dominio temporal, continuo y discreto, como en el frecuencial. También se
mostrará la forma de dar la descripción de un sistema lineal mediante función de transfer-
encia, conjunto de polos y ceros, o variables de estado. Asimismo se comentará la forma de
manipular una función de transferencia como un objeto.

1.2 Tratamiento mediante funciones de transferencia. Sis-

temas continuos

Este apartado muestra el uso de algunas de las herramientas con las que cuenta matlab para
el diseño y análisis de sistemas de control. Para el ejemplo se va a partir de una descripción
de la planta en forma de función de transferencia:

H(s) =

.2s2 + .3s + 1

(s2 + .4s + 1)(s + .5)

En matlab las funciones de transferencia se introducen dando el par de polinomios numerador-
denominador:

1

2

Tratamiento mediante funciones de transferencia. Sistemas continuos

.3

num = [.2
den1 = [1 .4 1];
den2 = [1 .5];

1];

El polinomio del denominador es el producto de dos términos. Para obtener el polinomio
resultante se usa el producto de convolución (o de polinomios).

den = conv(den1,den2)

Para ver los polos (o los ceros) de la función de transferencia, podemos usar: roots(den)
(roots(num)). Una forma más completa de convertir una función de transferencia dada por
dos polinomios numerador y denominador, en un conjunto de factores de grado 1, correspon-
dientes a los polos (z1, z2, z3) y ceros (c1, c2), de la forma:
c1 ) (1 − s
c2 )
z2 ) (1 − s
z3 )

K (1 − s
z1 ) (1 − s

(1 − s

H(s) =

es mediante el comando tf2zp:

[ceros,polos,gan] = tf2zp (N,D);

que devuelve un vector conteniendo los ceros de la función de transferencia, un vector con-
teniendo los polos, y un escalar correspondiente a la ganancia estática. La función comple-
mentaria a ésta también existe:

[N,D] = zp2tf (ceros,polos,gan);

Como curiosidad, cabe mencionar que el nombre de estas funciones es bastante descriptivo:
”tf-two-zp” procede de transfer-function to zero-pole form.

1.2.1 Dominio Temporal

La respuesta ante un escalón a la entrada se puede analizar en sistemas que tengan una
descripción en forma de función de transferencia o una representación en el espacio de estados,
generando un vector de tiempos y usando la función step:

t = [0:.3:15]’;
y = step(num,den,t);
plot (t,y);

AN ÁLISIS Y CONTROL DE SISTEMAS USANDO MATLAB

3

title (’Respuesta a un escalon unitario’);
xlabel (’tiempo(seg)’);
grid;

La respuesta al escalón unitario puede verse en la Fig. 1.1. Seleccionando con el ratón en la
curva, pueden modificarse algunos atributos de la misma. También pueden modificarse las
propiedades de los ejes de forma análoga. Las figuras guardarse en ficheros .fig propios de
matlab, o exportarse en diferentes formatos gráficos estándar.

Respuesta a un escalón unitario

2.5

2

1.5

1

0.5

0
0

5

tiempo(seg)

10

15

Figura 1.1: Respuesta a escalón unitario

No es necesario recuperar el resultado de la simulación ante escalón que realiza step para de-
spués representarlo con plot, sino que el propio comando step, si lo utilizamos sin parámetros
de salida, realiza la representación. Es más, en este segundo caso, la representación gráfica
es algo más interactiva, puesto que si ”pinchamos” con el botón izquierdo en algún punto de
la gráfica, nos dice los valores correspondientes al tiempo y al valor de la salida en ese punto.

La respuesta impulsional se puede obtener del mismo modo, pero usando en este caso la
función impulse, que tiene una sintaxis similar al comando step. Nótese que el vector de
tiempos ya ha sido definido con anterioridad.

impulse (num,den,t);

La respuesta al impulso puede verse en la Fig. 1.2.

La respuesta del sistema a cualquier tipo de entrada también puede obtenerse. Para ello es
necesario tener la señal de entrada en un vector u, que lógicamente deberá tener la misma di-
mensión que el vector de tiempos. En sistemas multivariables, en vez de un vector de entradas
tendremos una matriz. A estos efectos se usa la función lsim. Un ejemplo característico es
la respuesta a una entrada en rampa:

4

Tratamiento mediante funciones de transferencia. Sistemas continuos

Respuesta a un impulso

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0

−0.1

−0.2
0

5

tiempo(seg)

10

15

Figura 1.2: Respuesta al impulso

ramp = t;
y = lsim (num,den,ramp,t);
plot (t,y,t,ramp);
title (’Respuesta a una rampa’);
xlabel (’tiempo(seg)’);

La respuesta a la rampa puede verse en la Fig. 1.3.

Respuesta a una rampa

30

25

20

15

10

5

0
0

5

tiempo(seg)

10

15

Figura 1.3: Respuesta a la rampa

Otro ejemplo característico es la respuesta a un ruido uniforme aleatorio. Recordamos que
rand(m,n) genera una matriz m× n de números aleatorios uniformemente distribuidos entre
0 y 1. Es importante darse cuenta del filtrado que se produce en la señal cuando pasa por el
sistema (hace de filtro paso bajas).

noise = rand (size(t));

AN ÁLISIS Y CONTROL DE SISTEMAS USANDO MATLAB

5

y = lsim (num,den,noise,t);
plot (t,y,t,noise);
title (’Respuesta a un ruido aleatorio’);
xlabel (’tiempo(seg)’);

La respuesta al ruido puede verse en la Fig. 1.4.

Respuesta a un ruido aleatorio

1.4

1.2

1

0.8

0.6

0.4

0.2

0
0

5

tiempo(seg)

10

15

Figura 1.4: Respuesta a ruido aleatorio

1.2.2 Dominio Frecuencial

Respuesta en frecuencia

La respuesta en frecuencia de los sistemas se puede obtener usando las funciones bode,
nyquist y nichols. Si no se le ponen argumentos a la izquierda, estas funciones generan las
gráficas por sí solas. En caso contrario, vuelcan los datos en los vectores de salida oportunos.
A continuación se presentan ejemplos de las tres posibles sintaxis de la función bode:

1.- bode(num,den)

2.- [mag,phase,w] = bode (num,den)

3.- [mag,phase] = bode (num,den,w)

La primera de ellas produce un gráfico con la magnitud en decibelios (dB) y la fase en grados.
En las otras dos la magnitud se devuelve en el vector mag y está expresada en unidades
absolutas, no en dB. Por su parte, la fase, devuelta en el vector phase, sigue siendo en grados.
En esta forma, la representación es más interactiva, en el sentido de que ”pinchando” con

6

Tratamiento mediante funciones de transferencia. Sistemas continuos

el ratón en un punto de la curva, podemos ver los valores correspondientes. La segunda
forma automáticamente genera los puntos de frecuencia en el vector w. En la tercera forma
es el usuario el que escoge los rangos de frecuencia, y resulta muy adecuado cuando se
quieren representar varias gráficas conjuntamente, que habrán de compartir una misma escala
frecuencial.

El resultado de los dos últimos comandos se puede representar usando funciones conocidas:

subplot(211), loglog(w,mag), title(’Magnitud’), xlabel(’rad/s’);
subplot(212), semilogx(w,phase), title(’Fase’), xlabel(’rad/s’);

El resultado para la función de transferencia del ejemplo anterior puede verse en la Fig.
1.5. Cabe comentar que el comando subplot(n,m,i) permite dividir una ventana gráfica
en una matriz de n × m sub-gráficas, seleccionando como activa la número i (numeradas
consecutivamente de izquierda a derecha y de arriba abajo).

101

100

10−1

10−2

10−1

0

−100

−200

10−1

Modulo

100
Rad/s
Fase

100
Rad/s

Figura 1.5: Diagrama de Bode

101

101

El comando nyquist tiene la misma sintaxis:

nyquist (num,den,w);
[re,im] = nyquist (num,den,w);

Computa las partes real e imaginaria de G(jw) y realiza la representación si no se le ponen
parámetros
  • Links de descarga
http://lwp-l.com/pdf17406

Comentarios de: Tutorial de análisis y control de sistemas usando Matlab (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad