Documente Academic
Documente Profesional
Documente Cultură
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.
Es un potente lenguaje industrial, orienteado a la resolucin de problemas del mundo real
(no solo tericos), pertenecientes al entrono de la ingeniera e investigacin bsica.
Matlab es un entorno abierto, que integra computacin numrica y visualizacin cientfica.
Matlab integra computacin matricial, anlisis numrico, proceso y anlisis de seal,
adems de grficos con un sencillo interface viusal de usuario.
Los datos bsicos son matrices y vectores que no requieren la definicin de
dimensionalidad. Las matrices en matlab pueden ser reales o complejas.
Maneja tambin una gran cantidad de funciones dentro de su librera estndar; funciones
matemticas, estadsticas y cientficas empliadas dentro de la computacin.
Pudiendo acoplar gran cantidad de libreras ms especficas para temas concretos,
denominado Toolbox como por ejemplo:
- Control
- Procesamiento
- Procesamiento
de seales
de imgenes ...
Entorno de Matlab
La ventana de comandos posee todos los elementos y caractersticas de los objetos ventana.
La lnea de mens contiene acciones que nos permiten:
File
Crear nuevos elementos de Matlab:
Fichero de comandos (.M)
Nuevas figuras
Nuevos Modelos...
Abrir ficheros de comando (*.M)
Salvar el rea de trabajo
Ejecutar ficheros .M
Imprimir
Configurar impresora
Salida de Matlab
etc
Edit
Cortar
Copiar
Pegar
Limpiar Sesin
Options
Definir formato numrico
Activar/desactivar el eco
Activar/desactivar procesos en background
Definir las letras del entrono
Definir el editor de ficheros de texto (.M)
Windows
Ventana (permite paso de una ventana a otra)
Help
Ayuda
Fundamentos de Matlab
Los elementos a manejar sern matrices y sus datos sern reales o complejos.
Los datos se pueden asignar a nombres de variables, y por dicho nombre accedemos a su
valor
>>Variable=valor
>>Variable=expresin
o permitir la salida a pantalla.
>>expresin
El resultado de la ltima accin realizada se guarde en la variable de entorno ans.
>> 34*4
ans =
136
Definicin de matrices:
Desde la impronta del sistema:
>> a=[1 2 3; 4 5 6; 7 8 9]
a =
1
4
7
2
5
8
3
6
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):
Se accede a los elementos indidviduales del array poniendo entre parntesis el nidice (o los
que es lo mismo, su posicin dentro del array).
Ej:
a(1,1) para matrices bidimensionales
b(1) para matrices unidimensionales.
Si al final de una orden de Matlab dada, ponimos el carcter ';' el sistema ejecuta la accin
y no retorna el resultado en la pantalla.
El listado de las variables alamacenadas en el rea de trabajo las obtenemos con los
comandos:
who whos
Los datos los puede representar en distintos formatos (Men Options-->Numeric Format).
Podeis manejar nmeros complejos entodas las opreciones y funciones:
z=3+4*i
Suma
Resta
Multiplicacin
Divisin
Divisin inversa
Potencias
.*
./
.\
.^
Operadores relacionales
<
Menor que
<=
>
Mayor que
>=
==
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
sinh
Seno hiperblico
cosh
Coseno hiperblico
tanh
Tangente hiperblica
asinh
Arcoseno hiperblico
acosh
Arcocoseno hiperblico
atanh
Arcotangente hiperblica
Funciones elementales
abs
angle
ngulo de fase
sqrt
Raz cuadrada
real
Parte real
imag
Parte imaginaria
conj
Conjugado
exp
Exponencial base e
log
Logaritmo natural
log10
Logaritmo base 10
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
10
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
>> x=6:-1:1
x =
6
>> x=1:pi/2:10
x =
1.5700
3.1416
4.7124
6.2832
7.8540
9.45248
12
10
2.0000
12.000
10.0000
10
20
10
20
10
>> u=deconv(c,a)
u =
1
Aplicando Matlab:
>> B=[1 2 3];
>> A=[2 4 5 7];
>> [r,p,k]=residue(B,A)
r =
0.2787
0.1107 - 0.1804i
0.1107 + 0.1804i
p =
-1.7263
-0.1369 - 1.4713i
-0.1369 + 1.4173i
k =
[ ]
Grficos lineales
loglog
Grfico logartmico en x
semilogx
Grfico semilogartmico en x
semilogy
Grfico semilogartmico en y
polar
Grfico polar
Ttulo de grfico
xlabel
Etiqueta eje x
ylabel
Etiqueta eje y
text
grid
>> 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.
Las acciones para editar, modificar o ejecutar un fichero .M estan el aopcin File del men
de la ventana de comandos Matlab.
A modo de ejemplo de fichero .M, edita las lneas anteriores en un fichero llamado:
primer.M
Presentacin grfica
Funciones para el manejo de grficos lineales
Ms Utilizadas:
plot(y)
plot(x,y)
plot(x,y,'<trazo><color>')
plot(x1,y1,x2,y2, .... )
xlabel('<texto>')
ylabel('<texto>')
title('<cadena>')
text(x,y,'<texto>')
grid
sgrid
Funciones Generales:
help
clc
what
size
clear
quit
Termina el programa.
exit
Termina el programa.
Valores Especiales:
ans
eps
Nmero imaginario.
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:
- Permite el manejo de sistemas continuos en el tiempo o sistemas discretos.
- Tambin posee funciones de cambio de un formato o modelo a otro.
- Respuesta en el tiempo.
- Respuesta en frecuencia.
- Lugar de la races.
- etc...
Donde:
u es un vector que contiene las entradas de control
x es un vector que contiene los elementos del vector
y es un vector que contiene las salidas
A, B, C, y D matrices que lo definen.
estado
2. Funciones de transferencia
Es la representacin equivalente de sistemas de variables de estado empleando la
transofrmada de Laplace.
3. Ganancia-Polos-Zeros
Una funcin de transferencia puede representarse en formato factorizado de gananciapolos-ceros
Donde:
k puede ser vector fila que contiene la/s ganancias.
p puede ser vector columna que contiene los polos.
z es vector columna que contiene los ceros.
4. Fracciones parciales
Una f.d.t. puede tambin representarse en fracciones parciales o en formato de residuos:
Donde:
p un vector columna contiene los polos.
r un vector columna contiene los residuos.
k contiene el plinomio independiente.
Conversin de modelos
[num, den]=ss2tf(a,b,c,d,iu)
[z,p,k]=sstzp(a,b,c,d,iu)
[a,b,c,d]=tf2ss(num,den)
[z,p,k]=tf2zp(num,den)
[a,b,c,d]=zp2ss(z,p,k)
[num,den]=zp2tf(z,p,k)
[r,p,k]=residue(num,den)
[num,den]=residue(r,p,k)
Para cualquier duda sobre las fucniones de Matlab, se puede pedir informacin de las
mismas tecleando el comando help.
>> help residue
RESIDUE Partial-fraction expansion (residues).
[R,P,K] = RESIDUE(B,A) finds the residues, poles and direct term of
a partial fraction expansion of the ratio of two polynomials B(s)/A(s).
If there are no multiple roots,
B(s)
R(1)
R(2)
R(n)
---- = -------- + -------- + ... + -------- + K(s)
A(s)
s - P(1)
s - P(2)
s - P(n)
Vectors B and A specify the coefficients of the numerator and
denominator polynomials in descending powers of s. The residues
are returned in the column vector R, the pole locations in column
vector P, and the direct terms in row vector K. The number of
poles is n = length(A)-1 = length(R) = length(P). The direct term
coefficient vector is empty if length(B) < length(A), otherwise
length(K) = length(B)-length(A)+1.
If P(j) = ... = P(j+m-1) is a pole of multplicity m, then the
expansion includes terms of the form
R(j)
R(j+1)
R(j+m-1)
-------- + -----------+ ... + -----------s - P(j)
(s - P(j))^2
(s - P(j))^m
[B,A] = RESIDUE(R,P,K), with 3 input arguments and 2 output arguments,
converts the partial fraction expansion back to the polynomials with
coefficients in B and A.
Warning: Numerically, the partial fraction expansion of a ratio of
polynomials represents an ill-posed problem. If the denominator
polynomial, A(s), is near a polynomial with multiple roots, then
small changes in the data, including roundoff errors, can make
arbitrarily large changes in the resulting poles and residues.
Problem formulations making use of state-space or zero-pole
representations are preferable.
Class support for inputs B,A,R:
float: double, single
See also poly, roots, deconv.
Reference page in Help browser
doc residue
Matlab en control
Definicin de funciones de trasferencia
Manejamos las f.d.t. mediante polinomios. Un polinomio se prespresnta mediante un vector
que contiene los coerficientes del polinomio, donde el primer componente es el coeficiente
de mayor potencia de s, y el ltimo es el coeficiente de orden 0.
Multiplicacin de polinomios
Dados dos polinomios p1=[1 2] y p2=[3 5] los podemos multiplicar mediante la funcin
conv como en el ejemplo:
>> p1=[1 2]; p2=[3 5];
>> p=conv(p1,p2);
p =
3
11
10
Multiplicacin de bloques
Dos bloques en serie, se combinan al multiplicar los polinomios, o lo que es lo mismo al
convolucionar las dos repuestas impulso asociadas.
Dadas dos funciones:
>>
>>
>>
gn
13
10
>> ceros=roots(gn)
ceros =
0
-1
>> polos=roots(gd)
polos =
-2.0000 + 1.0000i
-2.0000 - 1.0000i
-2.0000
Tendremos que recordar que al sumar dos vectores, estos tienen que tener la misma
longitud:
>> gn1=[1 0]; gd1=[1 2];
>> gn2=[4 4]; gd2=[1 4 5];
>> gn=conv(gn1,gd2)+conv(gd1,gn2)
gn =
1
17
>> gd=conv(gd1,gd2)
gd =
1
13
10
donde:
z son los ceros (tantas columnas como
p polos del sistema
k ganancia
filas en num)
k ganancia
>> z=[-2];
>> p=[-2 3 4];
>> k=5;
>> [num, den]=tf2zp(z, p, k)
num =
5
10
den =
1
-5
-2
24
Matlab dispone de una funcin que permite el clculo de residuos; es decir, nos permiten
expandir una funcin en fracciones parciales:
Si se desea determinar la magnitud y el ngulo que forma los residuos, emplearemos las
funciones abs(), y angle():
>> magr=abs(r)
magr =
1.1765
1.7489
1.7489
>> angr=angle(r)*180/pi
angr =
180.0000
-70.3462
70.3462
Ejercicios
1. Determinar en Matlab las siguientes f.d.t.
[r,p,ki]=residue(num,den)
Donde:
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.
- Introduccin de funciones temporales.
- Funicones tiles.
- Visualizacin de funciones temporales.
- Represetnacin en fracciones parciales para
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:
Genera la fecha en curso
>> date
exp:
Funcin exponencial
>> exp(expresion)
sqrt:
Funcin raz cuadrada
>> sqrt(expresion)
'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
.*
./
.\
.^
Recordar que Matlab es 'case sensitive', es decir diferencia entre maysculas minsculas. El
comando casesen off hace que no lo sea.
REPRESENTACIN DE FUNICONES
Grficos x-y
Sea 'x' e 'y' dos vectores de la misma longitud
>> plot(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;
axis()
grid
Lneas de grid.
title('cadena')
Ttulo al grfico.
xlabel('cadena')
Texto eje x.
ylabel('cadena')
Texto eje y.
text(x1,y1,'cadena')
Escribe texto en cualquier lugar de la pantalla grfica, dado por sus coorden
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')
Otros grficos
loglog
Grfico logartmico
semilogx
semilogy
bar(x)
Grfico de barras
stairs
donde:
p un vector colulmna que contiene los polos
r un vector columna que contiene los residuos
k contiene el polinomio independiente
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');
t=(0:500)/500;
e1=1.245*exp(-7.21*t).*sin(9.72*t+2.21);
e2=1.1*exp(-7.22*t).*sin(15.5*t+2.01);
e3=1.8*exp(-7.22*t).*sin(4.59*t+2.58);
plot(t,e1,'-r',t,e2,'-g',t,e3,'-b');grid;
xlabel('t');ylabel('e(t)');
hold on;
plot([.7 .8],.9*[1 1]+.02,'-r'); text(.8,.9,'E1');
plot([.7 .8],.7*[1 1]+.02,'-g'); text(.8,.7,'E2');
plot([.7 .8],.5*[1 1]+.02,'-b'); text(.8,.5,'E3');
hold off;
Determinar la funcin en el tiempo de salida del mismo ante una entrada impulso; para ello
seguir los siguientes pasos:
a) Emplenado sus residuos determinar los valores de los mimos y expresar la funcin con el
nuevo formato.
b) Representar dicha salida en un grfico empleando los datos generados por la orden
anterior, y sus correspondientes antitransformadas.
5.
>>
>>
>>
>>
entrada
Parmetros a destacar:
T = Constante de tiempo.
Parmetro de la respuesta temporal:
Tiempo de establecimiento ts.
ts = 3T
[x,y]=lsim(num,den,u,t)
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
Se tienen que cuplir que el nmero de columnas de t conincide con es nmero de filas de 'y'
e 'x'.
Formato:
y=lsim(num,den,u,t)
Donde:
- u es una
impulse(num,den)
step(num,den)
lsim(num,den,u)
Visualiza la salida en una ventana grfica, pero no guarda en vectores los valores
Y=impulse(num,den,t)
Y=step(num,den,t)
Y=lsim(num,den,u,t)
Genera vector de salida 'y' para unos valores de tiempo dados en 't'.
[y,x]=impulse(num,den,t)
[y,x]=step(num,den,t)
[y,x]=lsim(num,den,u,t)
Genera la salida y unos valores intermedios para unos valores de tiempo dados e
[y,x,t]=impulse(num,den)
[y,x,t]=step(num,den)
[y,x,t]=lsim(num,den,u)
Se genera incluso, el vector con los valores de tiempo, que emplea la funcin ste
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');
Ejercicios
1. A) Calcular la respuesta a un impulso y a un escaln para los sistemas:
4. Comentar las respuestas a un escan para distintos valores de K=1,3,5 para la funcin:
Parametros:
- Wn
- d
[f,i]=max(y)
Determina el mayor elemento contenido en el vector 'y' retorna en 'f' dicho valor y en 'i' la p
[f,i]=min(y)
Determina el menor elemento contenido en el vector 'y' retorna en 'f' dicho valor y en 'i' la p
[f,c]=find(condicin)
Determina las filas y/o columnas del elemento que cumple la condicin dada. Los operadore
relacioneales.
>>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))
num=[1];
den=[1 2 4];
[wn,c]=damp(den)
=
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)
Esta funcin computa el plinomio cuyos coeficientes estn en el vector 'den', de tal forma
que si P son los coeficientes del mismo y tiene N+1 componentes el polinomio
es P(1)*s^N + ...+ P(N)*s + P(N+1).
Ejercicios
1. Los siguientes sistemas de control sometidos a un escaln unidad generan una salida:
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).
raices=rlocus(num,den,k)
Dibuja en una ventana grfica el desplazamiento de las races del sistema, Para
distintos valores de K
r=rlocus(num,den)
r=rlocus(num,den,k)
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:
- Las coordenandas del punto seleccionado
- El valor de K ganancia para ese punto
sgrid
Genera en el plano 's', lneas de grid para un lugar de las races.
sgrid(coe,Wn)
Las lneas generadas, son para un coeficiente de amortiguamiento dado 'coe' y lneas para
una frecuencia natural dada 'Wn'. Los valores pueden ser matrices unitarias o vectores fila
con rangos de valores.
sgrid('new')
Lmpia la ventana grfica, y situa lneas de coeficiente y WN, ctes. Ejemplo de empleo:
>> sgrid('new')
>> hold on
>> rlocus(num,den)
Ejercicios
1. Determinar el lugar de las races del siguiente sistema:
Valores de K estable
Valores de K instable
0.5
2
10
a) Comentar las grficas obtenidas.
b) Determinar el valor de K que genera un coeficiente de amortiguamiento de 0.5 con a=2,
as como determinar la ecuacin caracterstica para dicho valor.
2. Dado los siguientes sistemas de control, obtener el lugar de las races. Comentar el
resultado.
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
Genera un vector con espaciado logartmico. Posee varias formas de uso; as
logspace(a1,a2) genera una fila de 50 puntos espaciados logartmicamente entre las
dcadas 10^a1 y 10^a2 y en el otro formato se define el nmero de puntos
logspace(a1,a2,n) genera 'n' puntos.
axis
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
Funcin valor absoluto: abs(expresin), si expresion es un numero complejo, retorna el
mdulo del mismo (su magnitud).
A=[2+2*i 1+3*i]
abs(A)
2.8284 3.1623
angle
Angle(expresin), retorna el ngulo de fase de los elementos de expresin. Entre los valores
de -pi y de pi.
angle(A)
0.7854 1.2490
r=abs(z)
theta=angle(z)
con lo que: z=r*exp(i*theta)
bode
Obtiene la respuesta en frecuencia de sistemas lineales contnuos en el tiempo.
bode(num,den)
bode(num,den,W)
[magnitud,fase,W)=bode(num,den,W)
nyquist
Obtiene la respuesta en frecuencia de sistemas lineales contnuos en el tiempo.
nyquist(num,den)
nyquist(num,den,W)
[magnitud,fase,W)=nyquist(num,den,W)
nichols
Obtiene la respuesta en frecuencia de sistemas lineales contnuos en el tiempo.
nichols(num,den)
nichols(num,den,W)
[magnitud,fase,W)=nichols(num,den,W)
margin
Determina los mrgenes de fase, de ganancia y las frecuencias de cruce respectivas.
[Mg,Mf,Wcg,Wcf]=margin(num,den)
[Mg,Mf,Wcg,Wcf]=margin(num,den,W)
Ejercicios
1. Dado el siguiente sistema
2..
3. Obtener el diagrama de Nyquist para los sitemas y determinar si son estables o no.
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
Un ejemplo tpico de control proporcional se muestra en la figura 1, donde se observa la
conducta de la variable controlada despus de un salto en escaln unitario en el punto de
consigna. Se observan los siguientes hechos caractersticos cuando aumenta la ganancia Kp
del controlador:
1. El error en estado estacionario disminuye.
2. El proceso responde ms rpidamente.
3. La sobreoscilacin y las oscilaciones aumentan.
%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
Esta accin elimina el problema del error en estado estacionario frente a perturbaciones de
carga constante. Por eso se utiliza para determinar de forma automtica el valor correcto de
u0. Adems se usa para corregir el error en rgimen permanente.
Otra de las razones intuitivas que ayuda a comprender los beneficios de la accin integral
es que, cuando se introduce, la existencia de un pequeo error durante un intervalo
prolongado de tiempo puede dar lugar a un gran valor de la seal de control. El algoritmo
de la accin integral es el siguiente:
Accin Derivativa PD
LA ACCIN DERIVATIVA
PD
Uno de los problemas del controlador PI y que limita su comportamiento es que solo
considera los valores del error que han ocurrido en el pasado, es decir, no intenta predecir
lo que pasar con la seal en un futuro inmediato.
La accin derivativa realiza ese tipo de compensacin, que se basa en introducir una accin
de prediccin sobre la seal de error. Una forma sencilla de predecir es extrapolar la curva
de error a lo largo de su tangente. El algoritmo de la accin derivativa es el siguiente:
En la figura anterior se puede ver que las oscilaciones se amortiguan cuando se utiliza la
accin derivativa. A medida que Td aumenta la salida se va aproximando cada vez ms a
una exponencial.
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 T d = 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
El Controlador PID
EL CONTROLADOR PID
El controlador PID combina en un nico controlador la mejor caracterstica de estabilidad
del controlador PD con la ausencia de error en estado estacionario del controlador PI.
La adicin de la accin integral a un controlador PD es esencialmente lo mismo que aadir
dicha accin a un controlador P.
La tabla 1 muestra cmo varan la estabilidad, la velocidad y el error en estado estacionario
cuando se modifican los parmetros del controlador. Es necesario sealar que esta tabla
contiene un conjunto de reglas heursticas y, por tanto, hay excepciones.
Kp aumenta
Ti disminuye
Td aumenta
Estabilidad
se reduce
disminuye
aumenta
Velocidad
aumenta
aumenta
aumenta
no eliminado
eliminado
no eliminado
Donde:
M = 1 Kg
b = 10 Ns/m
K = 20 N/m
F(s) = 1
La ecuacin del sistema es:
Mx + bx + Kx = F
Por lo tanto su transformada de Laplace ser:
Ms2X(s) + bsX(s) + KX(s) 0 F(s)
De este modo la Funcin De Transferencia entre la salida (desplazamiento X(s) ) y la
entrada F(s) ser:
X(s) / F(s) = 1 / Ms2 + bs + K
A) obtener la grfica de la salida del sistema en lazo abierto ante una entrada escaln
unitario:
X(s) / F(s) = 1 / s2 + 10s + 20
A-1) Representar grficamente la respuesta del sistema ante un escaln unitario
A-2) Comentar la grfica obtenida
C)La funcin de transferencia en lazo cerrado con un controlador PD del sistema que
estamos estudiando es la siguiente:
X(s) / F(s) = KDs + Kp / s2 + (10 + KD)s + (20 + Kp)
mantenemos el valor de la ganancia proporcional y haremos que KD sea igual a 10
C-1) Representar la grfica de la respuesta del sistema con regulador PD ante un escaln
unitario
C-2)Comentar la grfica obtenida y los cambios con respecto a los casos anteriores
D)En el caso de asociar un controlador PI a nuestro sistema, la f.d.t. del sistema resultante
ser:
X(s) / F(s) = Kps + K I / s3 + 10s2 + (20 + Kp)s + K I
E)Nuestro sistema con un controlador PID tendra una funcin de transferencia asi:
X(s) / F(s) = KD s2 + Kps + K I / s3 + (10 + KD)s2 + (20 + Kp)s + K I
E-1)Si la entrada es un escaln unitario, obtener la grfica de la salida de nuestro sistema
bajo la accion de un controlador PID
E-2)Comentar los resultados, analizando las mejoras obtenidas en la respuesta de nuestro
sistema.
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
1.- Obtener la funcin de transferencia del sistema en cadena abierta (w/V). Observar la
respuesta del sistema ante un cambio de consigna de escaln unitario 1V.
Es estable el sistema en cadena abierta?
Calcular Tp, Ts y Mp. Obtener, si es posible, el sistema de primer orden equivalente.
Kp=1
Kp=5
Kp=10
Kp=100
b) Regulador PI (Proporcional-Integral)
-
Calcular para cada caso Tp, Ts, Mp as como errores de posicin en rgimen permanente
Kp=1.7
Kp=10
Kp=20
Kp=100
b) Regulador PI
-
Kp=1.7; Ki=20;
Kp=17; Ki=200;
c) Regulador PID
Calcular para cada caso Tp, Ts, Mp as como ep en rgimen permanente. Analizar los
resultados.
Analizar el comportamiento del sistema con cada uno de los reguladores del apartado
anterior.
Con alguno de los reguladores anteriores se corrige la perturbacin?
http://lra.unileon.es/es/book/export/html/469