Sei sulla pagina 1di 99

Herramientas para Sistemas

de Control en Matlab

Respuesta Transitoria de la Funcin de


Transferencia

Respuesta Transitoria de la Funcin de


Transferencia

Si deseamos obtener la funcin de transferencia de un


sistema en lazo abierto, es decir, dentro de un lazo con
retroalimentacin unitaria, debemos emplear el comando
feedback definindola de la siguiente manera:

Series.
Este comando nos brinda la
posibilidad de poder multiplicar dos
funciones de trasferencias o ser
manipuladas como bloque que se
encuentran en serie y que pueden
ser unidas originando
una sola.

>> sistema4=tf([1 3], [1 5])

>> sistema6=series(sistema4,sistema5)

Transfer function:
s+3
----s+5

Transfer function:
4 s + 12
-----------------s^3 + 7 s^2 + 10 s

>> sistema5=tf([4], [1 2 0])

>> sistema7=feedback(sistema6,1)

Transfer function:
4
--------s^2 + 2 s

Transfer function:
4 s + 12
----------------------s^3 + 7 s^2 + 14 s + 12

Lugar Geomtrico de las Races


Para obtener el lugar de las races, Matlab dispone del
comando rlocus. Las diferentes sintaxis para utilizar este
comando son:
rlocus(num,den): calcula y dibuja el lugar de las races
donde num y den son los vectores de los coeficientes en
potencia decrecientes de s de los polinomios del numerador
y denominador de la funcin de transferencia.

>> sistema4=tf([1 3], [1 5])


Transfer function:
s+3
----s+5
>> rlocus(sistema4)

>> sistema6
Transfer function:
4 s + 12
-----------------s^3 + 7 s^2 + 10 s
>>
rlocus(sistema6)

>> [z,p,k]=tf2zp([4 12],[1 7 10])


z = -3;

p = -5 , -2 ;

k =4

En Matlab disponemos del comando rlocfind el cual permite


determinar los polos del sistema para una valor
determinado de k.
Su sintaxis es: [k,poles] = rlocfind(num,den)
que permite determinar los polos para un valor determinado
de k.
En el plano complejo seleccionamos una localizacin y
Matlab retornar el valor de k para esta localizacin y los
polos asociados a esta ganancia.

>> [k,poles] = rlocfind(sistema6)


Select a point in the graphics window
selected_point =
-4.0509 - 0.0932i
k=
1.8798
poles =
-4.0492
-1.4754 + 1.8423i
-1.4754 - 1.8423i

Entrada Escaln.
Para determinar la respuesta en el tiempo ante una entrada
escaln unitario de algn sistema usamos l comando
step indicando el vector del numerador y del denominador
con sus respectivos parntesis.

step(num,den)
o haciendo uso de la funcin transferencia,previamente
declarada

step(nombre de la funcin transferencia)

>> sistema6
Transfer function:
4 s + 12
-----------------s^3 + 7 s^2 + 10 s
>> step(sistema6)

>> num=[1];
>>den=[1 0.25 1];
>>sistema1=tf(num,den);
>>step(sistema1)

Si la entrada escaln es de un valor de 5 y se desea ver la salida


hasta un tiempo de 100 segundos, la instruccin ser la siguiente:

>> num=[1];
>>den=[1 0.25 1];
>>sistema1=tf(num,den);
>> step(5*sistema1,0:0.1:100)

Entrada Impulso.
Si deseamos obtener la respuesta en el tiempo para una
entrada impulso unitario se usa el comando impulse,
con la sintaxis idntica a la que anteriormente habamos
utilizado con el comando step, Definimos en Matlab los
polinomios del numerador y denominador de la
funcin de transferencia, por ejemplo:
num=[1];
den=[1 0.25 1];
sistema1=tf(y,u);
impulse(sistema1)

>> num=[1];
>>den=[1 0.25 1];
>>sistema1=tf(num,den);
>> impulse(sistema1

RESPUESTA A SEALES VARIANTES EN EL


TIEMPO
Como hemos visto en Matlab podemos obtener la
respuesta en el tiempo para una entrada escaln o
impulso, tambin podemos obtener respuesta para otras
entradas como rampas o sinusoides. El comando lsim
permite obtener la respuesta en el tiempo para un sistema
con una entrada u, donde u se define como una funcin
del tiempo. La sintaxis de este comando es:

lsim(num,den,u,t) donde num y den son


correspondientes a la funcin de transferencia.

RESPUESTA A SEAL RAMPA

>> t=0:0.1:10;
>> u=t;
>> num=[1];
>> den=[1 0.25 1];
>> y=lsim(num,den,u,t);
>> plot(t,y,t,u);

RESPUESTA A SEAL SENO

>> t=0:0.1:10;
>> u=sin(t);
>> num=[1];
>> den=[1 0.25 1];
>> y=lsim(num,den,u,t);
>> plot(t,y,t,u);

RESPUESTA A SEAL SENO

>> t=0:0.1:40;
>> u=sin(t);
>> num=[1];
>> den=[1 0.25 1];
>> y=lsim(num,den,u,t);
>> plot(t,y,t,u);
>> axis([0,40,-7,7])

Respuesta en Funcin de la frecuencia


Si deseamos realizar un anlisis de un sistema en funcin
de la frecuencia existen herramientas disponibles en
Matlab como son, los diagramas de Bode.

>> num=[1];
den=[1 0.25 1];
sistema3=tf(num,den)
bode(sistema3)
Transfer function:
1
---------------s^2 + 0.25 s + 1

Caso de Estudio resuelto con Matlab.

syms v s
z1=10^6; %Valores de las Resistencias;
z3=10^6; %Valores de las Resistencias;
z5=10^6;%Valores de las Resistencias;
z2=(1/(s*100*10^(-9)));%Valores del Capacitor;
z4=1/((s*100*10^(-9)));%Valores del Capacitor;
z6=(1/(s*100*10^(-9)));%Valores del Capacitor;
V=[v; 0;0];
Z=[ (z1+ z2), z2, 0; -z2, (z2+z3+z4), -z4; 0, -z4,
(z4+z5+z6)];
I=Z\V
ic3=I(3);
vco=ic3*z6;
sist1=vo/v

>> num1=[1];
>> den1=[0.001 0.05 0.8 5];
>> sistemaf=tf(num1,den1)
Transfer function:
1
-------------------------------0.001 s^3 + 0.05 s^2 + 0.8 s + 5

Simulink.
Simulink es una extensin de Matlab que nos permite
realizar simulaciones y anlisis de sistemas dinmicos.
Nos permite construir diagramas de bloques de manera
grfica, evaluar el desempeo del sistema y hacer
modificaciones en su diseo. En un nuestro caso
estudiaremos el paquete de Simulink para el anlisis de
Sistemas de Control, por lo tanto entendamos que
Simulink no es completamente un programa separado de
Matlab, sino una herramienta de el.
La ventana de Matlab estar siempre disponible mientras
ejecutemos una simulacin en Simulink.

Abrir Simulink
En la ventana de comandos de MATLAB escribir >>simulink y
apretar ENTER.
Tambin se puede entrar a simulink haciendo click en el
cono.

Galerias de Simulink

*La galera SOUCES:


* Los bloques que se

encuentran dentro son los


bloques de entrada, los
generadores de seales.

Este bloque se
utiliza para
ingresar
constantes.

Constant value: Aqu se


ingresa la contante.

*Ingresar Signal Generator

Este bloque se utiliza para


generar distintos tipos de
seales.

Wave form: El tipo de seal


Amplitude: La amplitud de la seal
Frequency: La frecuencia de la seal
Units: Herts o rad/seg

*Clock and Digital Clock

Este bloque se utiliza para Este bloque se utiliza para


generar una seal
generar una seal digital
anloga correspondiente
correspondiente al
al tiempo de evaluacin.
tiempo de evaluacin.

*Ingresar Constante

Este bloque se utiliza


para generar una
seal de pulso.

Step time: Tiempo de retardo


Inicial value: Valor de inicio
Final value: Valor despus del cambio
Sample time: Rate (evala la seal en un
tiempo especificado si se le ingresa 0 la
evaluacin es automtica)

Este bloque se utiliza para


generar una seal del
tipo y = mx + h.

Slope: m
Start time: cuando comienza a
funcionar
Initial output: h

Este bloque se utiliza para


generar una seal del
tipo senoidal.

Amplitude: Amplitud de la seal.


Frequency (rad/sec): Frecuencia en radianes por segundo
Phase (rad): Desfasage en radianes
Sample time: Rate (evala la seal en un tiempo
especificado si se le ingresa 0 la evaluacin es
automtica)

Este bloque utiliza una Este bloque utiliza una


memoria mat para
memoria comn para
generar la seal
generar la seal

*La galera SINKS:


*Los bloques que se

encuentran dentro son


los que registran las
salidas graficando o
guardando en
memorias.

Este bloque grafica


las seales

Las opciones que dispone el graficador son:


Zoom in: zoom ms cerca.
zoom out: zoom ms lejos.
zoom box: zoom sobre una regin determinada.
zoom autoscale: zoom automtico viendo todo el

*XY Graph

Este bloque grafica


las seales
segn X e Y

Las opciones que dispone el graficador son:


x-min: El valor de comienzo segn el eje x.
x-max: El valor de final segn el eje x.
y-min: El valor de comienzo segn el eje y.
y-max: El valor de final segn el eje y.
Sample time: Rate (evala la seal en un tiempo especificado si se le
ingresa 0 la evaluacin es automtica)

*Display

Este bloque muestra el valor de


la seal punto a punto o hasta
llegar a un valor constante.

Fomat: El tipo de forma que se va a visualizar.


Decimation: la precisin.
Sample time: Rate (evala la seal en un tiempo
especificado si se le ingresa 0 la evaluacin es
automtica)

*To File and To Workspace

Este bloque utiliza una memoria


mat para guardar la seal

Este bloque utiliza una memoria


comn para guardar la seal

*Stop Simulation

Este bloque detiene la


simulacin

Este bloque detiene la simulacin


cuando
el valor que se le ingresa es distinto
de 0 (cero).

*La galera CONTINUOUS:


Integrator and Derivatrive

Este bloque integra la seal


punto a punto y muestra el
acumulado hasta el
momento

Este bloque deriva la seal


punto a punto y muestra el
acumulado hasta el momento

*La galera MATH: Sum

Este bloque suma o resta


las seales punto a
punto.
Se puede visualizar circular
o rectangular.

Icon shape: La forma Rectangular o


Circular.
Listo of signs: Aqu se agrega + o
dependiendo lo que se necesite.

*Product

Este bloque
multiplica o
divide las
seales.

Number of input: El numero de entradas, si se


ingresan / la seas es dividida y si se coloca
* se multiplica, y si se coloca un numero
todas las entradas se multiplican.

*Math Function

Este bloque aplica a la


seal de entrada de
varias operaciones
matemticas.

Function: Es la lista de las


funciones disponibles.

*Math Function

Este bloque aplica a la seal de


entrada de varias
operaciones trigonomtricas
matemticas.

Function: Es la lista de las funciones


trigonomtricas disponibles.

*
Este bloque aplica a la seal de entrada el
comando de valor absoluto.
Este bloque entrega el signo de la seal de
entrada.
Ej: +20 +1 0 0 -20 -1
Este bloque acta como un sistema digital
interactuando con 0 y 1.

*Function
Este bloque compara las seales digitales o
anlogas pero con un resultado digital.
Este bloque une dos seales trasformndolas en
complejas para luego poder resolver cualquier
calculo de complejo sobre una seal nica.
Este bloque separa a la seal compleja en dos
seales comunes.

*Function
Este bloque convierte una seal polar en una
rectangular.

Este bloque convierte una seal rectangular en


una polar.

Este bloque resuelve sistemas.

*MATLAB Fcn
Bloque de funcin

En el parmetro MATLAB function: se


coloca el nombre del archivo de
extencion *.m generado en Matlab,
Output width: es el valor de
multiplicacin final de la salida.

*La galera SIGNAL & SYSTEMS:


From & GOTO

Estos bloques se utilizan para trasmitir una seal


de un lado al otro a travs estos bloques.
Es muy til cuando los sistemas se vuelven muy
complejos y se necesita una seal determinada

MUX & DEMUX


Estos bloques sirven
para unir seales y para
separarlas.

IN & OUT
Estos bloques son
utilizados en la
conformacin de
subsistemas.

Crear un modelo nuevo


Hacer click en el cono newmodel
Seleccionar el cono Simulink
para obtener los elementos del
modelo.

Librera de elementos

El modelo se crea en esta ventana

*
* Hacer click en File Save
* Seleccionar la carpeta donde guardar el archivo y nombrarlo.
* A medida que se va progresando en el modelo, recordar
guardarlo a menudo.

* Construir un modelo en Simulink que resuelva la siguiente


ecuacin diferencial:

dx
= 5sin ( 4t )
* Condicin inicial:
dt
x(0) = 2.

Diagrama del modelo


* El Input es la funcin 5sin(4t)
* El Output corresponde a la solucin de la ecuacin
diferencial: x(t)

x(0) = 2
dx
dt

5sin(4t)
(input)

1
s
integrator

x(t)
(output)

Arrastrar el bloque Sine


Wave desde la librera
Sources hasta la ventana de
trabajo

*Seleccionar un bloque operador


Arrastrar un bloque Integrator
desde la librera Continous
hasta la ventana de trabajo.

* Seleccionar un bloque para el


output
Arrastrar el bloque Scope
desde la librera Sinks hasta la
ventana de trabajo

*Conectar los bloques


con seales
* Ubicar el cursor en el puerto
de salida (>) del bloque Sine
Wave

* Arrastrar desde el puerto de


salida del bloque Sine Wave
hasta el puerto de entrada del
bloque Integrator

* Arrastrar desde la salida del


bloque Integrator hasta la
entrada del bloque Scope

Las flechas indican la direccin de la


seal.

Seleccionar los parmetros de simulacin

Doble click en el
bloque Sine
Wave e ingresar:
Amplitud = 5
Frecuencia = 4
Se forma as el
input deseado:
5sin(4t)

Seleccionar los parmetros de simulacin

Doble click en el
bloque Integrator e
ingresar la condicin
inicial = -2
Se satisface as:
x(0) = -2

Correr la simulacin.

En la ventana de
trabajo, click en
Simulation y
seleccionar
Start
Otra forma es
hacer click en el
signo 4

Resultados de la simulacin
Hacer doble click
en el bloque

Scope
Se visualiza el
output x(t) en la
ventana Scope

Ejemplo 2
* Construir un modelo en Simulink que resuelva la siguiente
ecuacin diferencial:
2

d x
dx
m 2 + c + kx = f (t )
dt
dt

* Condiciones iniciales = 0
* El input f(t) es una funcin escaln con magnitud 2
* parmetros: m = 0.4, c = 0.6, k = 1

Resolucin
*Primero, expresar la ecuacin en trminos de
la derivada de mayor orden:
2

d x
dx
m 2 = f (t ) c kx
dt
dt

*Crear un bloque de suma al lado izquierdo de


la ventana de trabajo.

Bloque
sum

d 2x
m 2
dt

Arrastrar el bloque Sum


desde la librera Math

Doble click en Sum para


cambiar los parmetros a
rectangular y + - -

Agregar un bloque gain (multiplicador) para


eliminar el coeficiente m y as despejar la
derivada de mayor orden:
d 2x
m 2
dt

1
m

d 2x
dt 2

Bloque
Sum

La constante m=0.4 , luego 1/m = 2.5

Arrastrar el bloque Gain


desde la librera Math

Doble click para cambiar


los parmetros del bloque
gain

* No olvidar ir conectando los bloques como se describi en


ejemplo 1.

* Agregar los bloques integrator para obtener la variable


deseada.

d 2x
m 2
dt

1
m

d 2x
dt 2

1
s

dx
dt

1
s

Bloque
Sum

* Las condiciones iniciales son cero, el bloque integrator


viene por defecto con este valor por lo que no es
necesario modificarlo en este caso.

Arrastrar los bloques


Integrator desde la
librera Continuous

Agregar el bloque scope desde la librera Sinks

* Conectar las seales integradas con bloques multiplicadores


(Gain) para crear los trminos del lado derecho de la
ecuacin diferencial:
d 2x
m 2
dt

Bloque
Sum

1
m
c

d 2x
dt 2

dx
dt

1
s

dx
dt

kx

1
s

Crear 2 nuevos bloques


Gain
Para girar el bloque gain,
seleccionarlo, click derecho y elegir
FLIP BLOCK en el men FORMAT

Doble click en los bloques


Gain para modificar los
parmetros.
C =0.6
K=1

*Completar el modelo
*Unir todas las seales al bloque sum fijndose
en los signos

*Agregar f(t)
f(t)
input

+
-

d 2x
m 2
dt

1
m

d 2x
dt 2

dx
dt

kx

1
s

dx
dt

1
s

No se puede mostrar
la imagen en este
momento.

c
k

x(t)
output

Doble click en el bloque Step


para cambiar los parmetros.
Para un paso de magnitud 2,
cambiar el Final Value a 2.

Indicar la ecuacin diferencia del siguiente sistema modelado:

Importando datos desde MATLAB (From Workspace Block)

Importando datos desde MATLAB (From Workspace Block)


>> t=0:0.1:100; % Varible independente
>>u=t.^2;
% Varible dependente
>>A=[t',u'];
% Formato de tabla

Importando datos desde MATLAB (From Workspace Block)

Exportando datos hacia el Workspace

*Step 1: Creating Blocks

89

Exportando datos hacia el Workspace

*Step 1: Creating Blocks

90

Exportando datos hacia el Workspace

*Step 2: Making connections

91

Exportando datos hacia el Workspace

Step 3: Set Parameters

*
92

Exportando datos hacia el Workspace

View output via Scope block

93

Exportando datos hacia el Workspace

*
94

Power System Blockset:


Esta librera, este programas es realmente extenso con
una gran capacidad para realizar diversos tipos de
sistemas elctricos y de de control, pero para comenzar a
interiorizarnos con el programa poco a poco y debido a
que este apunte esta dedicado para alumnos de Ing.
Elctrica los smbolos que utilizaremos son fciles de
reconocer.

Electrical Sources:
Esta librera
nos proporciona
los distintos
tipos de
fuentes que
necesitemos
para
desarrollar
sistemas
elctricos
bsicos.

Elements:
Esta librera
nos proporciona
los distintos
tipos de
elementos tales
como
resistencias,
capacitores,
inductancias,
transformadores
, etc.

Diodos motores y
medidores:
Esta nos proporciona
diodos, transistores, etc.
Esta nos proporciona
distintos tipos de motores
asincrnicos monofsicos
trifsicos, etc.

Esta nos da un voltmetro y


un ampermetro.

Ejemplo de un circuito

Potrebbero piacerti anche