Вы находитесь на странице: 1из 52

FUNDAMENTOS de AUTOMTICA

(Grado en Ingeniera en Tecnologas Industriales)


(Grado en Ingeniera Qumica)

[ Prcticas Curso 2016 / 2017 ]

La ciencia puede divertirnos y fascinarnos, pero es la Ingeniera la que cambia el mundo.


Isaac Asimov

PRCTICA 1: Lugar de las Races


Reguladores

Sistemas Realimentados

Control altura depsito

RECURSOS MATLAB

Help de MATLAB

RECURSOS MATLAB

Fundamentos de control con MATLAB


Editorial: PEARSON

Autores: Enrique Pinto


Fernando Mata
ISBN: 978-84-8322-651-3

RECURSOS MATLAB

Teora de Sistemas
Seccin de publicaciones de la ETSII

Autores: Fernando Mata


Agustn Jimnez
Rafael Aracil
Enrique Pinto
ISBN: 84-7484-158-5

RECURSOS MATLAB

La web: (www.mathworks.com)

RECURSOS MATLAB

Las prcticas de DS y las de FA:

INSTALACIN MATLAB

Dentro de Aula Web selecciona Contenidos Documentos y ah


encontrars el documento Instalacin MATLAB Estudiantes que
describe detalladamente el proceso de instalacin.
En pocos pasos tendrs instalada tu copia oficial de MATLAB:
1. Entra en la web de Mathworks:
http://www.mathworks.com

2. Accede a Crear cuenta:


(debes usar el correo electrnico UPM: @alumnos.upm.es)
3. Asocia tu cuenta con la licencia para estudiantes de la UPM.
4. Descarga e instala el programa.

QU VAMOS A VER

MATLAB para:
La obtencin del lugar de las races.

El diseo y ajuste de reguladores.


El anlisis de sistemas realimentados (SISOTOOL)
La creacin de funciones (function)

LUGAR de las RACES

Representa las trayectorias de los polos en BUCLE CERRADO (Gbc), es decir


las soluciones de la ecuacin caracterstica: 1 + KGH(s)=0
Se dibuja a partir de los polos y ceros del sistema en BUCLE ABIERTO (Gba)
Permite predecir cul va a ser el comportamiento del sistema al variar la K
del sistema (riesgo de inestabilidad?).
Tambin se puede predecir el comportamiento cuando vara algn otro
parmetro del sistema aparte de la K (un cero, un polo, etc.)
En MATLAB ejecutar:
>> rlocus (Gba)

Anlisis con MATLAB


(Ejemplos)

>> rlocus (?)

>> rlocus (G)

>> rlocus (?)

>> rlocus (G1*G2)

Anlisis con MATLAB


(Ejemplos)

>> rlocus (?)

>> rlocus (G1*G2*H)

>> rlocus (?)

>> rlocus (-G1*G2*H)

Anlisis con MATLAB


(Ejemplo depsito)

Ecuaciones:
Gbomba

Gdepo

Qent
1

Vb
s 1

H
1

Qent s ( s 2)

V kH

E Vi V
Vb C (s) E

>>Gba=Gbomba*Gdepo
>>rlocus(Gba)

% con k y C(s) de valor 1

Anlisis con MATLAB


(Ejemplo depsito)

Lmite de
estabilidad

Anlisis con MATLAB


(Ejemplo depsito)
Si existe la posibilidad de que K<0, entonces hay que obtener el
lugar inverso:
>>rlocus(-Gba)

Lmite de
estabilidad

Anlisis con MATLAB


(Ejemplo depsito)
Con el ratn se puede obtener informacin de cualquier punto del lugar.

Anlisis con MATLAB


(Ejemplo depsito)

Desde MATLAB se pueden obtener los polos en bucle cerrado para una
K dada:
>> polos = rlocus(Gba, 6)
polos =
-3.0000 + 0.0000i
-0.0000 + 1.4142i
-0.0000 - 1.4142i

% polos en bucle cerrado con K=6

Anlisis con MATLAB


(Ejemplo depsito)
Respuesta en bucle cerrado al aadir un valor de K=6
>> step(feedback(6*Gba, 1)

Anlisis con MATLAB


(Ejemplo depsito)

Representacin de los dos lugares:


>>subplot (2,1,1)

% subgrfico 1 de 2

>>rlocus(Gba)

>>title(Lugar directo)
>>subplot (2,1,2)

% subgrfico 2 de 2

>>rlocus(-Gba)
>>title(Lugar inverso)

Alguna pregunta?

Prximo tema: REGULADORES

REGULADORES

Creacin de reguladores: (seguimos con el ejemplo depsito)


>> C1 = pid(3, 0.072, 3.71)

% definicin PID en formato paralelo

1
Kp + Ki * --- + Kd * s
s
with Kp = 3, Ki = 0.072, Kd = 3.71
Continuous-time PID controller in parallel form.

>> C2 = pidstd(3, 41.7, 1.24)


1

% definicin PID en formato estndar

Kp * (1 + ---- * --- + Td * s)
Ti

with Kp = 3, Ti = 41.7, Td = 1.24


Continuous-time PID controller in standard form.

REGULADORES

Ajuste de reguladores:
>> C3 = pidtune (Gba, pi )

% ajuste automtico de un PI

1
Kp + Ki * --s
with Kp = 0.4, Ki = 0.0184
Continuous-time PI controller in parallel form.

>> C4 = pidtune (Gba, pid )

% ajuste automtico de un PID

1
Kp + Ki * --- + Kd * s
s
with Kp = 3, Ki = 0.345, Kd = 3.85
Continuous-time PID controller in parallel form.

REGULADORES

Comparar resultados:
>> step(feedback(Gba,1))
>> hold
>> step(feedback(C1*Gba,1))
>> step(feedback(C2*Gba,1))
>> step(feedback(C3*Gba,1))
>> step(feedback(C4*Gba,1))

REGULADORES

>> pidTuner

% herramienta interactiva para el ajuste automtico de reguladores

% (tambin se encuentra en APPS del men principal)

REGULADORES

En Simulink los reguladores estn en la librera de bloques continuos.

Alguna pregunta?

Prximo tema: SISTEMAS REALIMENTADOS

Sistemas Realimentados

(Interfase SISOTOOL)

>> sisotool*

% herramienta interactiva para el estudio de sistemas realimentados SISO


% (tambin se encuentra en APPS del men principal)

sisotool significa: single input single output tool

Sistemas Realimentados

(Interfase SISOTOOL)

Con la sisotool se puede obtener:


el lugar de las races.
los diagramas de Bode y Nyquist.
las respuesta ante entrada escaln o impulso.
el mapa de polos y ceros.
Y tambin:
analizar diferentes estructuras de control.

estudiar el efecto de las perturbaciones.


disear reguladores/compensadores.
ajustar automticamente reguladores.
Mover, aadir, modificar, eliminar polos, ceros y la K grficamente.

SISOTOOL

La estructura de control por defecto:


(se accede desde CONTROL SYSTEM Edit Architecture)

SISOTOOL

Se pueden seleccionar hasta 6 estructuras de control tpicas:

Estructura con compensador

Estructura con

en la realimentacin

prealimentacin

SISOTOOL

Herramientas incluidas en el men CONTROL SYSTEM:

Edit Architecture:

importar

los

diferentes

bloques

(F,

C,

G,

H)

seleccionar distintas estructura de control.

Tuning Methods:

Graphical Tuning: seleccionar grficas para ajuste (lugar de las races,


diagrama de Bode, Nichols).
Automated Tuning: ajustar reguladores.

New Plot: crear nuevas figuras con respuestas al escaln, impulso o nuevos
diagramas (Bode, Nichols, Nyquist).

SISOTOOL

Importar funciones de los bloques del sistema: (seguimos con el ejemplo


depsito)
F=1, C=1, G=Gba, H=1

SISOTOOL

Automticamente se obtienen el lugar de las races, la respuesta ante escaln


del sistema realimentado y el diagrama de Bode:

du=0
r=step

n=0

dy=0

SISOTOOL

Informacin del lugar de las races:

Polos del sistema


en bucle cerrado
(cuadrados)

Polos del sistema


en bucle abierto
(en azul)

Los polos en bucle cerrado se pueden mover directamente sobre el lugar para
llevarlos a una nueva posicin

SISOTOOL

Ajustar un valor de K para conseguir un Mp del 0%:


Nuevas
posiciones
de los
polos en
bucle
cerrado
Valor de
K
obtenido
para el
bloque C

Las posiciones de los polos en bucle cerrado se obtienen pinchando sobre ellos

SISOTOOL

Aadir un PID: seleccionar bloque C en Data Browser y con el botn

derecho del ratn Open Selection. Aadir un polo en 0, un cero complejo en


-0,666 8e-5j y un valor de K=2,8662

SISOTOOL

Resultado:

Nuevo
lugar de
las races

Regulador
aadido

Nueva
respuesta

SISOTOOL

Comportamiento ante perturbaciones:

seleccionar IOTransfer_du2y en Responses y con el botn derecho del


ratn Plot Step

du=step

r=0

n=0

Respuesta
del sistema
ante
perturbacin
en la
entrada du

dy=0

SISOTOOL

Ajuste automtico de reguladores:


seleccionar Tuning Methods PID Tuning
elegir mtodo de ajuste

(Robust response time o Classical design formulas)

seleccionar tipo de regulador


clic Update Compensator

(P, PI, PD, PID)

SISOTOOL

Resultado tras ajuste Ziegler-Nichols step response:

Nuevo
lugar de
las races

Nueva
respuesta
Regulador
ajustado

SISOTOOL

Informacin del nuevo lugar de las races:


Polos del sistema
en bucle cerrado
(cuadrados)

Polos y ceros del


regulador C(s)
(en rojo)

Polos del sistema


en bucle abierto
(en azul)

Los polos y ceros del regulador se pueden mover directamente sobre el lugar; tambin desde el
men principal en ROOT LOCUS EDITOR

SISOTOOL

Exportar al workspace:

seleccionar Export en el men principal y elegir el modelo a exportar

>> M = tf (IOTransfer_r2y)
From input "r" to output "y":
1.166 s^2 + 1.793 s + 1.121
--------------------------------------------------s^4 + 3 s^3 + 3.166 s^2 + 1.793 s + 1.121
Continuous-time transfer function.

Construye tu PID

T
u (k ) K ek
Ti

Inicializar T
Inicializar ek-1
Inicializar K, Ti, Td
loop
input ek
P=ek
I=T/Ti*(ek+ek-1)/2
D=Td/T*(ek-ek-1)
uk=K*(P+I+D)
ek-1=ek
Goto loop

Analgico

(uso de amplificadores operacionales)

ek ek 1 Td
(ek ek 1 )
2
T

% tiempo de muestreo
% error instante inicial
% parmetros del PID
%
%
%
%
%

leer error actual


calcular accin P
calcular accin I
calcular accin D
algoritmo PID

% siguiente instante T

Digital

(cdigo pseudo-Pascal)

Alguna pregunta?

Prximo tema: FUNCIONES en MATLAB

FUNCIN de MATLAB
(Ficheros .m)
Una function (funcin) de MATLAB es un script al que opcionalmente se le
podr pasar unas variables de entrada, realizar unos clculos y devolver
un resultado en unas variables de salida.
La sintaxis para la creacin de una funcin es:
function [variables de salida]=nombre_funcion(variables de entrada)

lneas de cdigo

end
Para crear un nuevo script o function seleccionar en el men HOME:
New Script o Function se abrir el editor de MATLAB.
Las toolbox de MATLAB son una coleccin de funciones.

FUNCIN de MATLAB
(La funcin feedback y su fichero.m)
La instruccin feedback de MATLAB ejecuta la funcin del mismo nombre,
almacenada en el fichero feedback.m:

FUNCIN de MATLAB
(Ejemplo function)

Cdigo programado en el fichero suma.m:


function [ resultado ] = suma( x,y )
% DESCRIPCION:
% Suma las 2 variables de entrada (x,y)
% y devuelve el valor en la variable de

% salida (resultado)
resultado=x+y;
end

Variables de entrada para ejecutar suma

Ejecucin en MATLAB:
>> calcular = suma(2,3)
calcular =

Variable de salida donde almacenar el resultado

Como resultado se crea en el workspace nicamente la variable calcular.

FUNCIN de MATLAB
(Ejemplo 2)
1. Diagrama de bloques:

2. Funcin de MATLAB:
% *******************************************************************
%
Ejemplo: funcin de MATLAB para resolucin diagrama bloques
% *******************************************************************
function [DNI, nmat, Gba, polos, horas]= practica()
disp('18561856X 1856 Nikola Grupo 1');
% Datos del ejercicio
% ------------------DNI=18561856; % variable de salida: DNI
nmat=1856;
% variable de salida: n de matrcula

3. Ejecucin en MATLAB:
>> [a1 a2 a3 a4 a5]=practica()
18561856X 1856 Nikola Grupo 1
a1 =
18561856
a2 =
1856
a3 =
11
------------------s^3 + 2 s^2 + 6.5 s
a4 =
no
a5 =
3

J=0.1;
B=0.1;
K=1.1;
Kb=0.5;

% parmetros del sistema

% Definicin funciones de transferencia


% ------------------------------------s=tf('s');
Gm=tf(1,[1 1]);
Gc=tf(1,[J B]);
% Resolucin diagrama de bloques Gba=Theta_1/U
% -------------------------------------------Gd=Gm*K*Gc;
Gr=feedback(Gd,Kb);
Gba=minreal(Gr*1/s);

% variable de salida: Gba

polos=no;

% variable de salida: polos (no calculada)

horas=3;

% variable de salida: horas

end

LISTADO INSTRUCCIONES

function
pid
pidstd
pidtool
pidtune
rlocus
rltool
sisotool
ss2tf
subplot
tf

AHORA T

Puedes practicar estos contenidos con los documentos de Aula Web:


FA_Practica1_16_17

Tu opinin es importante

Agradecemos tu participacin en esta encuesta, porque tu opinin es importante.


Puedes realizar la encuesta capturando el siguiente cdigo QR:

O accediendo a este enlace:

https://goo.gl/forms/LKWyvTKCDbM5sZIC2

GRACIAS POR PARTICIPAR!

FIN

Prctica 1
Lugar de las Races
Reguladores
Sistemas Realimentados
[Curso 2016/2017]

Preparado por Enrique Pinto

Вам также может понравиться