Está en la página 1de 9

CONTROL AUTOMÁTICO

GUÍA DE FUNDAMENTOS

Precaución: Matlab es un software que es sensible a las letras mayúsculas y minúsculas (case sensitive).
Recomendación para comenzar un nuevo programa: Los siguientes comandos son usualmente empleados para
encerar y comenzar un nuevo programa sin tener problemas con variables anteriormente introducidas o confusión
con gráficas anteriormente generadas.

COMANDO FUNCIÓN
clc % limpia la pantalla del command window. (No borra el historial)

clear % borra todas las variables de la memoria. (No borra el historial)

close all % cierra todas las ventanas gráficas.

POLINOMIOS:
En Matlab, un polinomio se puede definir mediante un vector (fila) que contiene solo sus coeficientes. Estos
coeficientes deben ser introducidos de manera ordenada comenzando por el coeficiente del término de mayor
grado y separados por un espacio en blanco o una coma.

Ejemplo En Matlab
>> p = [4 5 3 8] %todos los elementos de un vector
%deben ir entre corchetes [ ]
𝑝(𝑠) = 4𝑠 3 + 5𝑠 2 + 3𝑠 + 8 p=
4 5 3 8 %resultado

>> p = [1 0 0 0 0 5 8] %todos los elementos de un vector


6 %deben ir entre corchetes [ ]
𝑝(𝑠) = 𝑠 + 5𝑠 + 8 p=

1 0 0 0 0 5 8 %resultado

RAÍCES DE UN POLINOMIO:
Las raíces de cualquier polinomio (sea el polinomio del numerador o el polinomio del denominador de una función
de transferencia) se puede determinar a través del comando: “roots (polinomio)”

Ejemplo En Matlab
Si el siguiente polinomio representa el polinomio del >> num = [4 5 3 8]
numerador de una función, y extraemos sus raíces, esos >> raices= roots(num)
valores corresponderían a los ceros de la función.
raices =
3 2 -1.5779 + 0.0000i
𝑛𝑢𝑚(𝑠) = 4𝑠 + 5𝑠 + 3𝑠 + 8 0.1640 + 1.1138i
0.1640 - 1.1138i
Si el siguiente polinomio representa el polinomio del >> den = [1 0 0 0 0 5 8]
denominador de una función, y extraemos sus raíces, >> raices= roots(den)
esos valores corresponderían a los polos de la función.
raices =

1
1.3248 + 0.8506i
1.3248 - 0.8506i
𝑑𝑒𝑛(𝑠) = 𝑠 6 + 5𝑠 + 8 -0.1965 + 1.4574i
-0.1965 - 1.4574i
-1.1283 + 0.4682i
-1.1283 - 0.4682i

CONSTRUIR UN POLINOMIO A PARTIR DE SUS RAÍCES:


Si lo que se conoce de un polinomio son sus raíces y no el polinomio propiamente, a este se lo puede reconstruir
con el comando: “poly([raíz raíz raíz …])”

Ejemplo En Matlab
Dadas las siguientes raíces, obtener el >>raices= [-3.3553 0.1777+1.0773i 0.1777-1.0773i]
respectivo polinomio:
>>polinomio=poly(raices)
raices =
-3.3553
0.1777 + 1.0773i polinomio =
0.1777 - 1.0773i 1.0000 2.9999 -0.0003 4.0000 %resultado

INTRODUCCIÓN DE UNA FUNCIÓN DE TRANSFERENCIA


Existen diferentes maneras para introducir una función de transferencia en Matlab, pero las maneras más usuales
o comunes son:

• Introducir el numerador y denominador de la función de transferencia por separado y luego unir estos
polinomios mediante el comando: “ tf (numerador , denominador) ”

Ejemplo En Matlab
>>num=[1 -1 1.5]
𝑠 2 − 𝑠 + 1.5 >>den=[1 0 3 0 17]
𝐺𝑝(𝑠) = 4
𝑠 + 3𝑠 2 + 17
>>Gp=tf(num,den)

Gp = % resultado
s^2 - s + 1.5
----------------
s^4 + 3 s^2 + 17

• Una segunda manera es a través de definir directamente a la “s” como el dominio de trabajo de la función
de transferencia: s= tf(‘s’)

Ejemplo En Matlab
>> s= tf(‘s’)
𝑠 2 − 𝑠 + 1.5
𝐺𝑝(𝑠) = 4
𝑠 + 3𝑠 2 + 17 >>Gp=(s^2 - s + 1.5)/(s^4 + 3*s^2 + 17)

Gp = % resultado
s^2 - s + 1.5
----------------
s^4 + 3 s^2 + 17

2
• Si se conocen los polos, ceros y la ganancia de la función de transferencia, se puede emplear el comando:
“zpk( [ceros], [polos], ganancia )”:

Ejemplo En Matlab
>> Gp= zpk( [-1], [0 -3 -2+i -2-i], 4)

Gp =
4 (s+1) % resultado
----------------------
s (s+3) (s^2 + 4s + 5)

4 (𝑠 + 1) o también:
𝐺𝑝(𝑠) =
𝑠 (𝑠 + 3) (𝑠 + 2 − 𝑖) (𝑠 + 2 + 𝑖)
>> ceros=[-1] %1 cero
¿Cuáles son los ceros, polos y la >> polos=[0 -3 -2+i -2-i] % 4 polos
ganancia de este sistema? >> ganancia= 4 %no se define como vector sino un valor
%real.
>>Gp= zpk( ceros,polos,ganancia)

Gp =
4 (s+1) % resultado
----------------------
s (s+3) (s^2 + 4s + 5)

CONVERSIÓN DE FORMATO:

✓ FRACCIONES PARCIALES:
Una función de transferencia puede ser descompuesta en fracciones simples (fracciones parciales) mediante
el comando “residue(numerador,denominador)” . Este comando exige que se introduzcan por separado el
numerador y el denominador de la función (como polinomios).

Si la función de transferencia tiene la forma polinómica:

Habiendo aplicado fracciones parciales: [r,p,k] = residue (numerador,denominador) la misma función de


transferencia será:

Al aplicar este comando Matlab calcula tres vectores: r, p, y k. El vector r presenta los valores de residuo (r1, r2,...,
rn), el vector p presenta los valores de los polos (p1, p2,..., pn) y k representa los términos directos de la expansión
de fracciones parciales.

Ejemplo En Matlab
>> num=[1 1]
>> den=[1 5 6]
𝑠+1 𝑠+1
𝐺= = 2 >> G=tf(num,den) %para comprobar
(𝑠 + 2)(𝑠 + 3) 𝑠 + 5𝑠 + 6

3
>>[r,p,k]=residue(num,den)

r=
2.0000
-1.0000

p=
-3.0000
-2.0000

k= %conjunto vacío = no existe


[]
Lo cual significa que habiendo aplicado fracciones parciales y calculando los coeficientes, la función de
transferencia se puede expresar como:
2 −1
𝐺= +
𝑠+3 𝑠+2

✓ DE FUNCIÓN DE TRANSFERENCIA A FORMA DE POLOS, CEROS Y GANANCIA


Si se conoce la función de transferencia, se puede llegar a expresar esta función en forma de polos, ceros y
ganancia con el comando “ tf2zp (numerador , denominador) ”. Este comando exige que se introduzcan por
separado el numerador y el denominador de la función (como polinomios).
Si la función de transferencia tiene la forma polinómica:

Esta función de transferencia en formato de polos (𝑝𝑛 ), ceros (𝑧𝑛 ) y ganancia (k) sería:

Ejemplo En Matlab
>> num=[4 1]
>> den=[1 5 6]
4𝑠 + 1 4𝑠 + 1
𝐺= = 2 >> G=tf(num,den) %para comprobar
(𝑠 + 2)(𝑠 + 3) 𝑠 + 5𝑠 + 6
>>[ceros,polos,B0]=tf2zp(num,den) %donde B0 representa la
%ganancia estática propia del sistema
ceros =
-0.2500

polos =
-3.0000
-2.0000

B0 =
4

Por tanto, la función de transferencia se puede reescribir como:

4
4 (𝑠 + 0.25)
𝐺=
(𝑠 + 3)(𝑠 + 2)
Si, por el contrario, lo conocido son los ceros, polos y ganancia y se quiere obtener el numerador y denominador
de la función de transferencia por separado:

>> [num2,den2] = zp2tf (ceros,polos,B0)

num2 =
0 4 1 % polinomio del numerador = 4s+1

den2 =
1 5 6 % polinomio del denominador = s2+5s+6

DIAGRAMA DE BLOQUES

• Bloques en serie: series ( función1, función2 )


Ejemplo En Matlab

% previamente definir G1 y G2

>> Gequivalente = series(G1,G2)

%para obtener el numerador y denominador por separado:


>>[num,den]= series(num1,den1,num2,den2) %se deben
colocar las dos funciones de transferencia con sus
numeradores separados de sus denominadores para obtener
el numerador de la función equivalente separado del
denominador de la misma función equivalente.

• Bloques en retroalimentación:
-> negativa: feedback(función1, función2, -1) o feedback(función1, función2) (se considera que por
default si no se coloca el número 1, se reconocerá como -1, es decir retroalimentación negativa).

-> positiva: feedback(función1, función2, +1)

Ejemplo En Matlab
Negativa:
% previamente definir G1 y G2

>> Gequivalente= feedback(G1,G2,-1)

% o también
>> Gequivalente= feedback(G1,G2)

%para obtener el numerador y denominador por


separado:
>>[num,den]= feedback(num1,den1,num2,den2) %se
deben colocar las dos funciones de transferencia con

5
sus numeradores separados de sus denominadores
para obtener el numerador de la función equivalente
separado del denominador de la misma función
equivalente.

Positiva:
% previamente definir G1 y G2

>> Gequivalente= feedback(G1,G2,+1)

%para obtener el numerador y denominador por


separado:
>>[num,den]=feedback(num1,den1,num2,den2+1)
%se deben colocar las dos funciones de transferencia
con sus numeradores separados de sus denominadores
para obtener el numerador de la función equivalente
separado del denominador de la misma función
equivalente.

• Bloques en pre-alimentación (en paralelo): parallel(función1, función2)


Ejemplo En Matlab

% previamente definir G1 y G2

>> Gequivalente= parallel(G1,G2) %solo de dos


funciones en dos funciones, no se puede añadir
directamente una tercera función (G3).

%para obtener el numerador y denominador por


separado:
>>[num,den]= parallel(num1,den1,num2,den2) %se
deben colocar las dos funciones de transferencia con
sus numeradores separados de sus denominadores
para obtener el numerador de la función equivalente
separado del denominador de la misma función
equivalente.

APLICACIÓN DE DIFERENTES TIPOS DE SEÑALES DE EXCITACIÓN O ENTRADAS

❖ ESCALÓN: step(magnitud*función_de_transferencia,opcional:vector_tiempo)

Ejemplo En Matlab
Excitar al sistema ante una % previamente definir G
entrada tipo escalón de 4 %para presentar gráficamente la respuesta del sistema ante una entrada
unidades de magnitud. tipo escalón:

(Ustedes deben escribir la >> step(4*G) %El sistema representado por la función de transferencia G
función de transferencia del %es excitado por una entrada escalón de 4 unidades. Si no
sistema). %se ha colocado explícitamente el tiempo de análisis,
%Matlab escogerá por sí solo el tiempo de estudio.

%si se quiere definir el tiempo de estudio:

6
>>tiempo=0:0.1:20 %se define el vector tiempo, el cual comienza en el
%valor de 0, avanza con pasos de 0.1 y finaliza en 20.
>>step(4*G,tiempo)

%en la gráfica obtenida, dar clic derecho y en características se pueden


obtener gráficamente los valores de los parámetros de diseño del
sistema para esta entrada.

>> stepinfo(4*G) % se obtienen los valores numéricos de los parámetros


% de diseño, estos valores son presentados en la
%pantalla principal de Matlab (command window).

%si es necesario obtener los datos numéricos y no los gráficos:


>>[respuesta,tiempo]=step(4*G)
O
>>[respuesta,tiempo]=step(4*G,tiempo)

❖ IMPULSO
Ejemplo En Matlab
Excitar al sistema ante una % previamente definir G
entrada tipo impulso. %para presentar gráficamente la respuesta del sistema ante una entrada
tipo impulso:

>> impulse(G) %si no se ha colocado explícitamente el tiempo de análisis,


(Ustedes deben escribir la %Matlab escogerá por sí solo el tiempo de estudio.
función de transferencia del
sistema). %si se quiere definir el tiempo de estudio:
>>tiempo=0:0.1:20 %se define el vector tiempo, el cual comienza en el
%valor de 0, avanza con pasos de 0.1 y finaliza en 20.
>>impulse(G,tiempo)

%si es necesario obtener los datos numéricos y no los gráficos:


>>[respuesta,tiempo]=impulse(G)

❖ Otras entradas que no han sido predefinidas en Matlab.


Comando: lsim(función de transferencia, entrada,tiempo)
Ejemplo En Matlab
Excitar al sistema ante una % previamente definir G
entrada tipo rampa. %para presentar gráficamente la respuesta del sistema ante una entrada
tipo impulso:

>>tiempo=0:0.1:20 %se define el vector tiempo, el cual comienza en el


(Ustedes deben escribir la %valor de 0, avanza con pasos de 0.1 y finaliza en 20.
función de transferencia del
sistema). >> rampa=5*tiempo %se define la entrada que se necesita, en este caso
es una rampa con pendiente 5, iniciando desde un valor 0.

>>respuesta=lsim(G,rampa,tiempo)

7
%para graficar la respuesta obtenida:
>>plot(tiempo, respuesta)

Si se desea contraponer dos gráficas para comparar resultados, se puede usar el comando “hold on” al finalizar la
primera gráfica y “hold off” al finalizar la última gráfica.
Si se desea contraponer diferentes respuestas ante una entrada tipo escalón, se puede usar el comando
“step(G1,G2,…,Gn)”; para agregar la leyenda se emplea: “legend(‘título de función 1’,’título de función 2’)”

ESTUDIO DE ESTABILIDAD DE LOS SISTEMAS

❖ A TRAVÉS DEL ESTUDIO DE LOS POLOS DEL SISTEMA


Una vez generada la función de transferencia ya no se puede utilizar el comando: “roots” directamente para
determinar las raíces de la función, ya que hay un polinomio en el numerador y otro polinomio en el denominador,
así que, Matlab no sabrá en cuál de los dos polinomios debe trabajar para determinar las raíces. Una vez formada
la función de transferencia, para encontrar los polos y ceros de la función, se pueden usar los siguientes comandos:

COMANDO FUNCIÓN
pole(G) % determina los polos de la función de transferencia G
zero(G) % determina los ceros de la función de transferencia G

Introducción de la función de
Ejemplo Polos y ceros en Matlab
transferencia
num= [1 -2 3]
den=[5 1 0 9] >>polos_sistema=pole(G)
G=tf(num,den)
polos =
G= -1.2869 + 0.0000i
2
𝑠 − 2𝑠 + 3 s^2 - 2 s + 3 0.5434 + 1.0504i
𝐺(𝑠) = --------------- 0.5434 - 1.0504i
5𝑠 3 + 𝑠 2 + 9
5 s^3 + s^2 + 9

s=tf('s') >>ceros_sistema=zero(G)
G=(s^2-2*s+3)/(5*s^3+s^2+9)
ceros =
G=
s^2 - 2 s + 3 1.0000 + 1.4142i
--------------- 1.0000 - 1.4142i
5 s^3 + s^2 + 9

DIAGRAMA DE POLOS Y CEROS


Ejemplo En Matlab
Obtener el diagrama de polos y % previamente definir T
ceros de la siguiente función:
>>pzmap(T)
𝑠 2 + 15𝑠 + 3
𝑇(𝑠) = 3
5𝑠 + 𝑠 2 + 3𝑠 + 9

8
EJERCICIOS:

1. Para el siguiente sistema de planta, encuentre:

a. La función de transferencia de todo el sistema de planta al aplicar diagramas de bloques.

Resultado:

b. Encuentre los polos, ceros y ganancia del sistema.


c. Grafique los polos y ceros del sistema.
d. ¿Cuál es el tipo de comportamiento que presenta el sistema?
e. Calcule la frecuencia natural y el factor de amortiguamiento.
f. Obtenga la respuesta del sistema ante una entrada tipo escalón de 15 unidades.
g. Para los resultados del literal f, obtenga los valores de los parámetros de diseño: %MP, Tp, Te, Ta.
h. Obtenga la respuesta del sistema ante una entrada tipo escalón de 7.5 unidades.
i. Para los resultados del literal h, obtenga los valores de los parámetros de diseño: %MP, Tp, Te, Ta.
j. Contraponga las gráficas de los literales f y h. Coloque las correspondientes leyendas.
k. Compare gráficamente los resultados de los parámetros de diseño del literal j.

2. Para el siguiente sistema:


• Ganancia= 271
• Polos= (𝒔 + 𝟑)(𝒔 + 𝟏𝟖)(𝟑𝒔 + 𝟐𝒊)(𝟑𝒔 − 𝟐𝒊)
• Ceros= 2, -9
Encuentre:
a. La función de transferencia del sistema.
b. Grafique los polos y ceros del sistema.
c. ¿Cuál es el tipo de comportamiento que presenta el sistema?
d. Obtenga la respuesta del sistema ante una entrada tipo escalón impulso desde 0 segundos hasta 35
segundos.
e. Para los resultados del literal d, obtenga los valores de los parámetros de diseño: %MP, Tp, Te, Ta.
f. Obtenga la respuesta del sistema ante una entrada tipo escalón de 7.5 unidades desde 0 segundos hasta
35 segundos.
g. Para los resultados del literal f, obtenga los valores de los parámetros de diseño: %MP, Tp, Te, Ta.
h. Obtenga la respuesta del sistema ante una entrada tipo rampa con pendiente 2.3 unidades, desde 0
segundos hasta 35 segundos.
i. Contraponga las gráficas de los literales d, f y h. Coloque las leyendas correspondientes.

También podría gustarte