Академический Документы
Профессиональный Документы
Культура Документы
INTRODUCCIN AL MATLAB
Introduccin al manejo y a la programacin de Matlab como paquete
informtico aplicado a SERVOSISTEMAS. En esta prctica destacaremos:
- Entorno de Matlab (aplicacin windows)
- Fundamentos de Matlab: Definicion de matrices, operadores, simbologa y
funciones basicas
- Acciones de interes: trabajo con polinomios, y sus funciones caracteristicas,
generacin de graficos.
- Funciones de manejo del entorno Matlab
Explicacin
El programa Matlab es un potente entorno de trabajo, diseado para el
desarrollo de aplicaciones cientfico-tcnicas.
- Control
- Procesamiento de seales
- Procesamiento de imgenes ...
Entorno de Matlab
Al ejecutar la palicacin Matlab para servosistemas, se genera una
ventana Windows de comandos Matlab y se abre una sesin de trabajo. En
esta ventana definiremos las variablse y las funciones a emplear.
El sistema retorna una impronta: >> a partir de la cual el usuario teclea los
comandos siempre y cuando la ventana de comandos de Matlab sea activa.
File
Edit
Cortar
Copiar
Pegar
Limpiar Sesin
Options
Windows
Help
Ayuda
Fundamentos de Matlab
Los elementos a manejar sern matrices y sus datos sern reales o complejos.
Definicin de matrices:
a =
1 2 3
4 5 6
7 8 9
Las filas de las mtrices se separan con ';' en la misma lnea o por finales de
lnea. Los arrays comienzan con '[' y finalizan por ']'
Los elementos de un array, pueden ser no slo nmeros sino expresiones (ej:
(1+2+3)*4):
Ej:
who whos
z=3+4*i
OPERADORES DE MATLAB Y FUNCIONES ELEMENTALES
Los operadores metemticos son:
+ Suma
- Resta
* Multiplicacin
/ Divisin
\ Divisin inversa
^ Potencias
Operadores relacionales
== Igual
~= Distinto
Operadores Lgicos
& AND
| OR
~ NOT
[] Definir matrices.
. Punto decimal.
... Continuacin.
% Comentario
= Asignacin.
Funciones trigonomtricas
sin Seno
cos Coseno
tan Tangente
asin Arcoseno
acos Arcocoseno
atan Arcotangente
Funciones elementales
Acciones de inters
Generacin de vectores. Empleo del carcter ':'
- Genera vectores fila conteniendo nmeros entre los dos valores dados con
paso1.
>> x=1:10
x =
1 2 3 4 5 6 7 8 9 10
6 5 4 3 2 1
>> x=1:pi/2:10
x =
Matlab posee funciones para trabajar con. Estas funciones oprean sobre
vectores:
Dado el siguiente:
1 2 12 10
-0.5458 + 3.2727i
-0.5458 - 3.2727i
-0.9084
1 10 2 20
1 10 2 20
>> a
a =
1 10
>> u=deconv(c,a)
u =
1 0 2
0.2787
0.1107 - 0.1804i
0.1107 + 0.1804i
p =
-1.7263
-0.1369 - 1.4713i
-0.1369 + 1.4173i
k =
[ ]
>> t=0:.01:5*pi;
>> y=sin(t);
>> plot(t,y,'-r');title('Grfico funcin
seno`);xlabel('Tiempo(t)');ylabel('Salida');grid
Las funciones empleadas se han tecleado en la impronta del sistema. Pero
Matlab nos permite generar ficheros con rdenes o funciones y ser invocadas
para su ejecucin, como cualquiera de sus rdenes definidas anteriormente.
Dichos ficheros de textom, pueden ser generados por editores sencillos o por
cualquier procesador y guardados en formato ASCII, la extensin ser .M.
Estos ficheros puden contener rdenes de Matlab, y los denominados ficheros
de procesamiento por lotoes ('scripts') o funciones generadas por le usuario.
Presentacin grfica
Funciones para el manejo de grficos lineales
Ms Utilizadas:
plot(y) Trazador lineal de vecotes y matrices.
plot(x,y) Trazador x-y. Ambos x e y del mismo tamao.
Trazado x-y expresando trazo y color
plot(x,y,'<trazo><color>') trazo cualquier carcter (-, _, *, +, ... )
color r, w, g, b, ... (iniciales colores principales en ingls)
plot(x1,y1,x2,y2, .... ) Reproduce multiples grficas.
xlabel('<texto>') Escribe texto en el eje x.
ylabel('<texto>') Escribe texto en el eje y.
title('<cadena>') Escribe ttulo de grfico.
Escribe la cadena <texto> en una posicin de la grfica definida
text(x,y,'<texto>')
por x, y.
grid Activa la cuadrcula del grfico en curso.
Activa la cuadrcula del grfico con lneas de coeficiente cte y Wn
sgrid
cte.
Funciones Generales:
help Ayuda del sistema.
Borra la pantalla y posiciona el cursor en la primera fila, primera columna de la
clc
ventana.
what Muestra ficheros .M del disco.
size Determina la dimensin (tamao) de las variables.
clear Borra el rea de trabajo.
quit Termina el programa.
exit Termina el programa.
Valores Especiales:
ans Variable en la que retorna una expresin cuando no es asignada.
eps Precisin, tolerancia por defecto.
i Nmero imaginario.
j Nmero imaginario.
pi Nmero pi.
Inf Infinito.
NaN No es un nmero. Indefinido.
Explicacin
La toolbox de control contiene funciones tiles de ingenera de control. Los
sistemas de control son modelados mediante funciones de transferencia o en
formatos de variables de estado.
Las caractersticas a destacar son:
- Contnuos en el tiempo
- Discretos en el tiempo
Y estos sistemas se pueden representar en Matlab de diversas formas:
1. Variables de estado
Donde:
2. Funciones de transferencia
3. Ganancia-Polos-Zeros
Donde:
4. Fracciones parciales
Una f.d.t. puede tambin representarse en fracciones parciales o en formato de
residuos:
Donde:
Conversin de modelos
[num, den]=ss2tf(a,b,c,d,iu) De variables de estado a funcin de transferencia.
[z,p,k]=sstzp(a,b,c,d,iu) De variable de estado a polos-ceros.
[a,b,c,d]=tf2ss(num,den) Funcin de transferencia a variables de estado.
[z,p,k]=tf2zp(num,den) Funcin de transferencia a polos-ceros.
[a,b,c,d]=zp2ss(z,p,k) Polos-ceros a variables de estado.
[num,den]=zp2tf(z,p,k) Polos-ceros a funcin de transferencia.
[r,p,k]=residue(num,den) Funcin de trasferencia a residuos.
[num,den]=residue(r,p,k) Residuos a funcin de transferencia.
Matlab en control
Definicin de funciones de trasferencia
Multiplicacin de polinomios
3 11 10
Multiplicacin de bloques
4 4 0
>> gd=conv(g1d, g2d)
gd =
1 6 13 10
>> ceros=roots(gn)
ceros =
0
-1
>> polos=roots(gd)
polos =
-2.0000 + 1.0000i
-2.0000 - 1.0000i
-2.0000
1 8 17 8
>> gd=conv(gd1,gd2)
gd =
1 6 13 10
- Otras funciones
-1.5000 + 1.6583i
-1.5000 - 1.6583i
-1.5000 + 1.6583i
-1.5000 - 1.6583i
donde:
-2
Inf
Inf
p =
-2.3283
-0.3359 + 1.8230i
-0.3359 - 1.8230i
k =
[num, den]=tf2zp(z, p, k)
donde:
z es una matriz columna con los ceros.
n es un vector columna con los polos.
k ganancia
>> z=[-2];
>> p=[-2 3 4];
>> k=5;
>> [num, den]=tf2zp(z, p, k)
num =
5 10
den =
1 -5 -2 24
donde:
-1.1765
0.5882 - 1.6471i
0.5882 + 1.6471i
p =
-10.0000
-2.0000 + 2.0000i
-2.0000 - 2.0000i
k =
[ ]
180.0000
-70.3462
70.3462
Ejercicios
1. Determinar en Matlab las siguientes f.d.t.
a) De variables de estado
b) Polos-ceros
c) Residuos
2. MATLAB Y FUNCIONES
TEMPORALES
Definir la forma de representacin de funiciones temporales, en el entorno
Matilab, as como la visualizacin en la pantalla de dichas funciones.
Funciones tiles
FUNCIONES TILES
clock:
Sentencia que devuelve el ao, mes, da, hora, minutos y segundo. Retorna
por tanto un vector fila de 6 elementos, en formato decimal.
>> clock=[ao mes da hora minutos segundos]
date:
exp:
Funcin exponencial
>> exp(expresion)
sqrt:
'i' 'j':
Uso indistinto para la expresin de nmeros complejos.
>> 1+4i
>> 1+j*sqrt(3)
se puede introducir como:
x=2*exp((pi/3)*j) x=1+4*i
Operadores
+ Suma.
- Resta.
* Multiplicacin.
/ Divisin.
\ Divisin inversa.
^ Potencia
.* Multiplicacion elemento a elemento.
./ Divisin elemento a elemento.
.\ Divisin inversa elemento a elemento.
.^ Potencia elemento a elemento
REPRESENTACIN DE FUNICONES
Grficos x-y
Grfico x-y definiendo tipo de lnea - tipo de punto (-, --, :, -3, 3, +, *, o, x) y
color de la misma (r, g, b, w)
>> plot(x,y,'+g')
Podemos dibujar varias curvas con varias lneas de plot (x,y), pero en este
caso se emplea el comando hold, para mantener el grfico anterior de la
ventana grfica y as evitar el borrado de las misma (hold on, hold off)
>> plot(x1,y1);
>> hold on;
>> plot(x2,y2);
>> plot(x3,y3);
>> hold off;
Ejemplo:
>> t=0:0.05:10;
>> y=sin(t);
>> z=cos(t);
>> plot(t,y,'o',t,z,'x')
>> grid
>> title('Curvas de las funciones Seno y Coseno')
>> xlabel('segundos')
>> ylabel('y=Seno t; z=Cos t')
>> text('3,0.45, 'seno t')
>> text(0.8,-0.3, 'coseno t'
Otros grficos
loglog Grfico logartmico
semilogx Grfico semilogrtmico eje x
semilogy Grfico semilogrtmico eje y
bar(x) Grfico de barras
stairs Similar al barras, sin lneas verticales
Funcin residue
Una f.d.t. puede tambin representarse en fracciones parciales o en formato
de residuos:
donde:
Ejercicios
1. Representacin de funciones en el tiempo.
Teclear en Matlab
>> t = 0:.05:10;
>> x2=exp(-
2.5*t).*(151000*sin(1.32*t)+30200+sin(1.32*t+41.30*pi/180));
>> plot(t,x2);grid;xlabel('Tiempo');ylabel('Amplitud');
Parmetros a destacar:
T = Constante de tiempo.
Donde:
- x es un vector columna que contiene los valores de la respuesta de
salida.
- y es un vector columna que contiene los estaods intermedios.
- t es un vector fila que contiene los valores de tiempo para los que se
calcula la salida
Formato:
y=lsim(num,den,u,t)
Donde:
Ejercicios
1. A) Calcular la respuesta a un impulso y a un escaln para los sistemas:
Parametros:
- Wn
-d
>>f=find(y>=2);
Dado un vector coumna 'y, retorna un vector f que contiene los ndices del
vector y que cumplen la condicin de ser mayor o igual a 2.
Por ejemplo si definimos una seal rampa, podemos localizar uno o varios
puntos:
>> num=[1];
>> den=[1 2 3];
>> t=0:.001:2;
>> u=t*4;
>> y=lsim(num,den,u,t);
>> plot(t,y),xlabel('Tiempo'),ylabel('Salida');
>> maximo=max(y);
>> t(maximo)
>> v2=find(y>=.3 & y<3.2)
>>t(v2(1))
2
2
c =
0.5000
0.5000
Para ello se utiliza la instruccin roots, que calcula las races de un polinomio
dado.
raices=roots(den)
Determinar:
a) Wn
b) d
c) Respuesta a un escaln
d) Caractersticas dnmicas del sistema sobre la grfica, y del
anlisis de su respuesta (contrastar con las obtenidas
matemticamente).
Formato general:
raices=rlocus(num,den,k)
rlocus(num,den,k) Lugar de las races para unos valores de 'k' definidos como un vector fila en orde
r=rlocus(num,den,k) Guarda en 'r' las races para unos valores de 'k' dados.
rlocfind
Busca la ganancia (K) del lugar de las races dado para una raz dada.
[K, polos]=rlocfind(num,den)
Nos permite situar el raton sobre un punto del lugar de las races del grfico
activo en ese momento, y al hacer click con el ratn, nos retorna en la ventana
de comandos:
sgrid
sgrid(coe,Wn)
Ejercicios
1. Determinar el lugar de las races del siguiente sistema:
Sobre la grfica los valores de K y las races, que hacen el sistema inestable,
para los tres casos:
0.5
10
a)
b)
c)
d)
6. ANLISIS EN FRECUENCIA
Diagramas en el anlisis en frecuencia, creacin de los diagramas de Bode,
Nyquist, Nichols.
Funciones a emplear:
- Bode
- Nyquist
- Nichols
- Axis
- Logspace
- Ngrid
logspace
axis
axis([Xmin Xmax Ymin Ymax])
Donde Xmin, Xmax, Ymin, Ymax son los rangos deseados para el grafico. La
variacin de estos valores permite hacer un zoom in/out de una grafica.
abs
A=[2+2*i 1+3*i]
abs(A)
2.8284 3.1623
angle
angle(A)
0.7854 1.2490
r=abs(z)
theta=angle(z)
con lo que: z=r*exp(i*theta)
bode
nyquist
nichols
margin
Ejercicios
1. Dado el siguiente sistema
b) y en cadena cerrada?
Comentar.
a)
b)
c)
Este algoritmo est considerado como el PID estndar por la ISA (Instrument
Society of America). A continuacin se resumen los trminos bsicos:
Controlador P
CONTROLADOR P
%REGULADOR P;
%Funcion de transferencia ejemplo del sistema en cadena abierta;
num=1;
den=conv([10 1],[5 1]);
sys=tf(num,den);
%Regulador Proporcional;
Kp=2;
sysa=Kp*sys;
%Sistema equivalente realimentado;
[sysc]=feedback(sysa,1);
hold on;
%Respuesta del sistema;
step(sysc);
title('Regulador P');
Accin Integral PI
LA ACCIN INTEGRAL PI
%controlador PI;
%Funcion de transferencia ejemplo del sistema;
num=1; den=[10 1];
sys=tf(num,den);
Kp=10; Ki=30;
%Funcion de transferencia del controlador PI;
numc=[Kp Ki];
denc=[1 0];
sysc=tf(numc,denc);
%Sistema equivalente realimentado;
numa=conv(num,numc);
dena=conv(den,denc);
sysa=tf(numa,dena);
[sysac]=feedback(sysa,1);
step(sysac);
title('controlador PI');
Accin Derivativa PD
LA ACCIN DERIVATIVA PD
Una desventaja importante de la accin derivativa es que hay que ser muy
cuidadoso a la hora de escoger el valor del tiempo derivativo. En las
instalaciones industriales es frecuente desconectar la accin derivativa (hacer
Td = 0), aunque en otras ocasiones est muy recomendada. Un ejemplo es el
caso de procesos multi-capacitivos, como puede ser el control de temperatura.
Debido a la inercia del sistema es importante saber hacia donde se est
evolucionando. La accin de calentamiento tiene que pararse a tiempo. Una
conduccin lenta de calor puede significar que, incluso despues de
desconectar el sistema de calentamiento, la temperatura continue aumentando
durante mucho tiempo. Durante este perodo la temperatura puede sobrepasar
considerablemente su punto de consigna si no se ejerce una accin de control
cuidadosa. Otro ejemplo donde es importante predecir el error es cuando hay
grandes retardos o tiempos muertos en el proceso. En esta situacin,
desgraciadamente, la accin derivativa no suele dar una buena prediccin y
hay que utilizar controladores especficos (basados en el predictor de Smith o
en las estrategias de control predictivo) para solucionar el problema. Si no se
tiene acceso a un controlador de este tipo, en estos casos es mejor utilizar un
controlador PI.
%controlador PD;
%Funcion de transferencia ejemplo del sistema;
num=1;
den=conv([10 1],[5 1]);
Kp=10;
Kd=10;
numc=[Kd Kp];
%Funcion de transferencia del controlador PD;
numa=conv(num,numc);
sysa=tf(numa,den);
[sysac]=feedback(sysa,1);
step(sysac);
title('controlador PD');
El Controlador PID
EL CONTROLADOR PID
Donde:
M = 1 Kg
b = 10 Ns/m
K = 20 N/m
F(s) = 1
Mx + bx + Kx = F
A) obtener la grfica de la salida del sistema en lazo abierto ante una entrada
escaln unitario:
8. MODELADO Y CONTROL DE UN
MOTOR DE CORRIENTE CONTINUA
Ejercicio 1 "MODELADO Y CONTROL
DE VELOCIDAD DE UN MOTOR DE
CC"
MODELADO Y CONTROL DE VELOCIDAD DE UN MOTOR DE CC
Dado un motor de CC con las siguientes caractersticas:
J=0.01 Kg/m2
b=0.1 Nm seg/rad
Km=Kt=0.01Nm seg/rad;
R=1ohmio
L=0.5H;
a) Regulador P (Proporcional).
- Kp=1
- Kp=5
- Kp=10
- Kp=100
b) Regulador PI (Proporcional-Integral)
J=3.2284E-6Kg/m^2
b=3.5077E-6Nm seg/rad
Km=Kt=0.0274Nm seg/rad;
R=4ohmio;
L=2.75E-6H;
a) Accin proporcional
- Kp=1.7
- Kp=10
- Kp=20
- Kp=100
b) Regulador PI
- Kp=1.7; Ki=20;
- Kp=17; Ki=200;
c) Regulador PID
Analizar el comportamiento del sistema con cada uno de los reguladores del
apartado anterior.