Está en la página 1de 4

INSTITUTO TECNOLOGICO DE MORELIA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA

LABORATORIO DE CONTROL I

Práctica 5: “Reducción de diagrama de bloques con Matlab”

Objetivo:
Reducir diagramas de bloques con las utilerías de Matlab. Al finalizar la práctica, el
estudiante estará en capacidad de:
Realizar operaciones del álgebra de bloques para utilizarlos en la reducción de
diagramas de bloques. Por medio de MATLAB, podemos manipular diagramas de
bloques con el fin de simplificarlos o reducirlos.

Introducción:
MATLAB dispone en la actualidad de un amplio abanico de programas de apoyo
especializados, Adicionalmente, existen comandos en MATLAB que facilitan la labor,
tediosa en ocasiones, de reducir una representación en diagramas de bloques.
Se puede utilizar Matlab para la reducción de diagrama de bloques. Se dispone de tres
métodos 1.) Solución a través de los comandos series, parallel y feedback, 2.) Solución
mediante operaciones algebraicas y 3.) Solución mediante los comandos append y
connect.

Desarrollo:
Matlab tiene órdenes útiles para la reducción de sistemas de control en diagramas
de bloques, las instrucciones de Matlab que se verán en el transcurso de esta práctica
son:

series(G1, G2) Conexión en cascada de G1(s) y G2(s).


parallel(G1, G2) Conexión en paralelo de G1(s) y G2(s).
feedback(G, H, sing) Conexiones de lazo cerrado G(s) en la trayectoria directa y H(s)
como realimentación y sing (signo) es -1 para realimentación
negativa o +1 para retroalimentación positiva.
append(G1, G2, …, Gn) Agregación de sistemas (juntar varios sistemas).
connect(G Q inputs, outputs) Interconexión de los argumentos donde G es la matriz de
agregación, Q es una matriz de conexión de elementos, inputs son
las entradas del sistema y outputs son las salidas del seistema.

1
Para mejor entendimiento de cada una de las funciones utilizadas en la práctica se
recomienda utilizar la ayuda de Matlab.

Ejemplo:
Teniendo el diagrama de bloques de la figura se quiere reducir.

1. Solución a través de los comandos Series, Parallel y Feedback


'Solución a través de los comandos Series, Parallel, & Feedback'
numg1=[-1]; % Define numerador de G1(s).
deng1=[1]; % Define denominador de G1(s).
numg2=[0 2]; % Define numerador de G2(s).
deng2=[1 2]; % Define denominador de G2(s).
numg3=-0.125*[1 0.435]; % Define numerador de G3(s).
deng3=conv([1 1.23],[1 0.226 0.0169]); % Define denominador de G3(s).
numh1=[-1 0]; % Define numerador de H1(s).
denh1=[0 1]; % Define denominador de H1(s).
G1=tf(numg1,deng1); % Crea función de Transferencia G1(s).
G2=tf(numg2,deng2); % Crea función de Transferencia G2(s).
G3=tf(numg3,deng3); % Crea función de Transferencia G3(s).
H1=tf(numh1,denh1); % Crea función de Transferencia H1(s).
G4=series(G2,G3); % Calcula producto
G5=feedback(G4,H1); % Calcula retroalimentación
Ge=series(G1,G5); % Calcula producto
'T(s) a través de los comandos Series, Parallel, & Feedback'
T=feedback(Ge,1) % Calcula retroalimentación

2.) Solución a través de operaciones algebraicas


' Solución a través de operaciones algebraicas '
clear % Limpia variables.
numg1=[-1]; % Define numerador de G1(s).

2
deng1=[1]; % Define denominador de G1(s).
numg2=[0 2]; % Define numerador de G2(s).
deng2=[1 2]; % Define denominador de G2(s).
numg3=-0.125*[1 0.435]; % Define numerador de G3(s).
deng3=conv([1 1.23],[1 0.226 0.0169]); % Define denominador de G3(s).
numh1=[-1 0]; % Define numerador de H1(s).
denh1=[0 1]; % Define denominador de H1(s).
G1=tf(numg1,deng1); % Crea función de Transferencia G1(s).
G2=tf(numg2,deng2); % Crea función de Transferencia G2(s).
G3=tf(numg3,deng3); % Crea función de Transferencia G3(s).
H1=tf(numh1,denh1); % Crea función de Transferencia H1(s).
G4=G3*G2; % Calcula producto.
G5=G4/(1+G4*H1); % Calcula realimentación.
G5=minreal(G5); % Cancela términos comunes.
Ge=G5*G1; % Multiplica las F.T. de los lazos internos.
'T(s) a través de operaciones algebraicas'
T=Ge/(1+Ge); % F.T. de lazo cerrado.
T=minreal(T) % Cancela términos comunes.

3.) Solución de otro problema diferente con los comandos Append y Connect.
' Solución a través de los comandos Append y Connect'
'G1(s) = (-K1)*(1/(-K2s)) = 1/s' % Imprime etiqueta.
numg1=[ 1]; % Define numerador de G1(s).
deng1=[1 0]; % Define denominador de G1(s).
G1=tf(numg1,deng1); % Crea función de Transferencia G1(s).
'G2(s) = (-K2s)*(2/(s+2)' % Imprime etiqueta.
numg2=[-2 0]; % Define numerador de G2(s).
deng2=[1 2]; % Define denominador de G2(s).
G2=tf(numg2,deng2); % Crea función de Transferencia G2(s).
'G3(s) = -0.125(s+0.435)/((s+1.23)(s^2+0.226s+0.0169))' % Imprime
numg3= - 0.125*[1 0.435]; % Define numerador de G3(s).
deng3=conv([1 1.23],[1 0.226 0.0169]); % Define denominador de G3(s).
G3=tf(numg3,deng3); % Crea función de Transferencia G3(s).
System=append(G1,G2,G3); % Unir todos los subsistemas.
input=1; % La entrada es el primer subsistema G1(s).
output=3; % La salida es el tercer subsistema, G3(s).
Q=[1 -3 0 % Subsistema 1, G1(s), obtiene su entrada del
% negative de la salida del subsistema 3, G3(s).

3
2 1 -3 % Subsistema 2, G2(s), obtiene su entrada del
% subsistema 1, G1(s), y el negativo de la salida
% del subsistema 3, G3(s).
3 2 0]; % Subsistema 3, G3(s), obtiene su entrada del
% subsistema 2, G2(s).
T=connect(System,Q,input,output); % Conecta los subsistemas.
'T(s) a través de los comandos Append & Connect'
T=tf(T); % Crea F.T. de lazo cerrado.
T=minreal(T) % Cancela términos comunes.

Ejercicios:
Hacer un programa general que funcione para resolver diferentes diagramas de
bloques y probarlo con la reducción de los diagrama de bloques de las siguientes
figuras. Resolverlo también a mano!

También podría gustarte