Está en la página 1de 22

11.

ACCIONES BASICAS DE CONTROL


En un proceso químico algunas variables como la temperatura, presión, flujo o nivel
de líquido en un tanque son determinantes para su operación, de tal manera que se
hace necesario mantener regulados sus valores deseados para garantizar la
estabilidad y seguridad del mismo. Esto se realiza mediante dispositivos
(controladores) diseñados para desarrollar una acción sobre las desviaciones que se
observen en los valores de dichas condiciones. Lo anterior requiere del acoplamiento
con un mecanismo de medición y transmisión (Sensor/Transmisor) de la variable de
proceso como fuente de información para la acción correctiva junto con otro
mecanismo de ejecución de la acción reguladora decidida por el controlador.

Por acción básica se entiende que el controlador amplifique, integre o derive la


información de entrada o desarrolle una suma entre algunas de estas acciones. De
acuerdo a esto, los controladores que usualmente se incluyen dentro de un proceso
son los de acciones proporcional (P), proporcional – integral (PI), proporcional –
derivativo (PD) y proporcional – integral – derivativo (PID). Para algunas
situaciones se justifica un control denominado de dos posiciones o de encendido y
apagado (On/Off)

Casi todos los controladores industriales emplean como fuente de energía la


electricidad o la presión de un fluido como el aire. Los controladores también
pueden clasificarse, de acuerdo con el tipo de energía que utilizan en su operación,
como neumáticos, hidráulicos o electrónicos. El tipo de controlador que se use debe
decidirse con base en la naturaleza de la planta y las condiciones operacionales,
incluyendo consideraciones tales como seguridad, costo, disponibilidad,
confiabilidad, precisión, peso y tamaño.

11.1. ESTRUCTURA DE UN SISTEMA DE CONTROL

El control de una variable de proceso requiere de una estructura que incluye cuatro
elementos (Proceso, Sensor, Controlador, Elemento de Control Final) conectados de
tal manera que se establece un flujo de información que si es recirculada se describe
como un lazo de control retroalimentado (Feedback). Si el controlador desarrolla su
acción sin alimentarse de la información que se observa en la variable de proceso, se
dice que es un control anticipatorio (Feedforward)

Lazo de control por retroalimentación (Feedback)

La Figura 11.1 es un diagrama de bloques de un sistema de control industrial que


consiste de un controlador automático, un elemento de control final, un proceso y un
240

sensor (elemento de medición). Es un lazo cerrado donde la variable de salida del


proceso se mide y retroalimenta al controlador quien determina el error de dicha
medida con su valor de referencia y genera una acción que ejecuta el elemento de
control final para ajustar la variable de control al valor deseado

Figura 11.1. Lazo de control de un proceso por retroalimentación

El controlador detecta la señal de error, que por lo general está en un nivel muy bajo,
y la amplifica a un nivel lo suficientemente alto. La salida del controlador
automático se alimenta a un elemento de control final como un motor hidráulico o
eléctrico o una válvula neumática. Este elemento de control final es un dispositivo
de potencia que produce la entrada al proceso de acuerdo con la señal de control, a
fin de que la señal de salida se aproxime a la señal de entrada de referencia.

El sensor o elemento de medición es un dispositivo que convierte la variable de


salida en otra variable manejable, tal como un desplazamiento, una presión o un
voltaje que pueda usarse para comparar la salida con la señal de entrada de
referencia. Este elemento está en la trayectoria de retroalimentación del sistema en
lazo cerrado. El punto de ajuste del controlador debe convertirse en una entrada de
referencia con las mismas unidades que la señal de retroalimentación del sensor o
del elemento de medición.

Control por Anticipado (Feedforward)

La Figura 11.2 es un diagrama de bloques de un sistema de control industrial


anticipado. Se observa que se mide una variable sobre una corriente de entrada y
dicha información es comparada con la de referencia lo que se alimenta al
241

controlador para que ejecute su acción, a través del elemento de control final, quien
modifica la variable manipulada para mantener estable la variable de proceso.

Figura 11.2. Control de un proceso anticipado

11.3. ACCIONES DE LOS CONTROLADORES

Las acciones que realiza un controlador son las decisiones que se requieren para
compensar las perturbaciones observadas en la variable de proceso y que son
transmitidas al elemento de control final para que las ejecute. A continuación se
estudian las acciones de los controladores PID, además de la acción de dos
posiciones.

11.3.1 Acción de dos posiciones o de encendido y apagado (On/Off)

En un sistema de control de dos posiciones, el elemento de control final sólo tiene


dos posiciones fijas que es, en muchos casos, encendido o apagado.

En el control de dos posiciones, la señal de salida, m(t) permanece en un valor ya


sea máximo o mínimo, dependiendo de si la señal de error, e(t), es positiva o
negativa. De este modo,

m(t ) = M 1 , e(t ) > 0


m(t ) = M 2 , e(t ) < 0
242

En donde M1 y M2 son constantes. Es común que los controladores de dos


posiciones sean dispositivos eléctricos, en cuyo caso se usa extensamente una
válvula eléctrica operada por solenoides.

La Figura 11.3 superior muestra la entrada sinusoidal de amplitud uno y frecuencia


1.0 rad/seg a un controlador encendido/apagado. La respuesta del controlador
observada en la Figura 11.3 inferior, muestra que mientras la onda sinusoidal es
positiva el controlador se mantiene en la posición encendido (1) y cuando la onda
sinusoidal cambia a valores negativos el controlador cambia a la posición apagado (-
1) y sucesivamente alterna entre las dos posiciones de acuerdo al valor que tome su
variable de entrada. Las gráficas se obtienen con el archivo onoff.m codificado con
Matlab y que aparece al final del capítulo.

Figura 11.3 Controlador de dos Posiciones

11.3.2 Acción de control proporcional, P

Para una acción de control proporcional, la relación entre la salida del controlador,
m(t) y la señal de error, e(t) es:

m (t ) = K c e (t ) (11.1)
243

O bien, en cantidades transformadas por el método de Laplace,

M (s)
= Kc (11.2)
E (s)

Siendo Kc, la ganancia proporcional del controlador. Cualquiera que sea el


mecanismo real y la forma de la potencia de operación, el controlador proporcional
es, en esencia, un amplificador con una ganancia ajustable.

Para el estudio de la acción proporcional se considera un lazo cerrado de control


retroalimentado de una variable de un sistema de segundo orden con ganancia de
1/8 y dos polos con valores de -1/2 y -1/4. La ganancia del controlador proporcional
es de 2 y se considera tanto a la válvula como el sensor como sistemas de ganancia
pura con valores de 2 y 1, respectivamente. La respuesta del sistema ante un cambio
paso en la variable de entrada se desarrolla con el archivo prop.m y se muestra
gráficamente en la Figura 11.4. Se muestra la variación del error que se alimenta al
controlador proporcional y la amplificación que hace éste de dicha información de
acuerdo al valor de la ganancia; y que la variable de proceso se estabiliza con el
control proporcional después de un período de perturbación

Figura 11.4. Acción Proporcional en un Controlador


244

Lo anterior quiere decir que en la respuesta del control proporcional hay un error en
estado estable o desplazamiento (offset) para una entrada con un cambio paso. Este
desplazamiento se elimina si se incluye la acción de control integral en el
controlador.

11.3.3 Acción de control integral, I

En una acción de control integral, la rapidez de cambio en la respuesta del


controlador, m(t) es proporcional al error, e(t), es decir,

dm(t )
= K c e(t ) (11.3)
dt

O bien,

t
m (t ) = K c ∫ e (t ) dt (11.4)
0

En donde Kc, es una constante ajustable. La función de transferencia del controlador


integral es

M (s) Kc
= (11.5)
E(s) s

A partir de la ecuación (11.3) de deduce que si, por ejemplo, se duplica el valor de
e(t), el valor de m(t) varía dos veces más rápido y a partir de la ecuación (11.4) se
explica que cuando el error se hace igual a cero, el valor de m(t) permanece
constante. En ocasiones, la acción de control integral se denomina Control de
Reajuste (Reset)

La ilustración gráfica de la acción integral se muestra en la Figura 11.5 construida


con el archivo integ.m. Se asigna una ganancia de 0.5 al controlador integral y se
considera tanto a la válvula como el sensor como sistemas de ganancia pura con
valor de 1. El sistema utilizado es de segundo orden con ganancia de 1/8 y dos polos
con valores de -1/2 y -1/4 y la variable de entrada se perturba con un cambio paso
unitario
245

La Figura 11.5 muestra que en un controlador de acción integral, con parámetros


apropiados, el error que se alimenta alcanza un valor de cero y la respuesta
correspondiente del controlador se mantiene constante. Observe que el valor de la
señal de salida del controlador en un instante cualquiera es el área debajo de la curva
de error, es decir, la integral o sumatoria de errores hasta el instante en
consideración. La variable de proceso se estabiliza en un valor sin diferencia con
respecto al valor de la variable deseada del proceso, es decir, sin error en estado
estacionario. La acción de control integral ha eliminado el error observado en la
respuesta del controlador proporcional pero puede conducir a una respuesta
oscilatoria de amplitud decreciente lenta o, incluso, de amplitud creciente y ambos
casos, por lo general, se consideran inconvenientes

Figura 11.5 Acción Integral en un Controlador

11.3.4 Acción de control Proporcional – Integral, PI

La acción de control proporcional – integral, PI, se define mediante la ecuación,

Kc t
m (t ) = K c e (t ) +
τI ∫ e(t )dt
0
(11.6)
246

O la función de transferencia del controlador es

M ( s)  1 
= K c 1 +  (11.7)
E ( s)  τIs

Siendo Kc la ganancia proporcional y τ I el denominado tiempo integral. Tanto Kc


como τ I son ajustables.

Significado del tiempo integral

El tiempo integral ajusta la acción de control integral, mientras que un cambio en el


valor de Kc afecta las partes integral y proporcional de la acción de control. El
inverso del tiempo integral se denomina velocidad de reajuste. La velocidad de
reajuste es la cantidad de veces por minuto que se duplica la parte proporcional de la
acción de control. La velocidad de reajuste se mide en términos de las repeticiones
por minuto. La Figura 11.6 muestra los perfiles de las acciones proporcional y
proporcional-integral de un controlador para un cambio paso unitario en el error de
entrada.

Figura 11.6 Acciones Proporcional y Proporcional – Integral


247

Se deduce que la acción proporcional hace una amplificación constante del error
alimentado de acuerdo a su ganancia (2). Para el controlador proporcional e integral,
la respuesta inicial es igual a la ganancia proporcional y esta respuesta se repite
sumada para períodos de tiempo igual al tiempo integral (1). La Figura 11. 6 es
construida con el archivo accpropinteg.m.

Error y Respuesta en una acción proporcional - integral

La ilustración gráfica de la acción proporcional e integral dentro de un lazo de


control se muestra en las Figuras 11.7 y 11.8 construidas con el archivo propinteg.m.

Figura 11.7. Error y Respuesta de un controlador proporcional e integral

Se utiliza el mismo sistema empleado para los casos anteriores y se asigna un valor
de 2 para la ganancia del controlador y un tiempo integral de 1. Con acciones de
control proporcional e integral no hay error en estado estable (offset) y la respuesta
del controlador es estable y diferente de cero.

En la Figura 11.8 se muestran las respuestas del lazo de control con acción solo
proporcional y con acciones proporcional e integral. Nuevamente, se observa que la
acción de control integral ha eliminado el error en estado estable que resulta en la
respuesta del controlador proporcional pero condujo a una respuesta oscilatoria de
amplitud decreciente lenta, lo que puede resultar inconveniente.
248

Figura 11.8 Respuesta de un controlador proporcional e integral

11.3.5 Acción de control proporcional – derivativa, PD

La acción de control proporcional – derivativa, PD, se define mediante la ecuación,

de (t )
m (t ) = K c e(t ) + K cτ d (11.8)
dt

M ( s)
ó = Kc (1 + τ d s ) (11.9)
E ( s)

Siendo Kc la ganancia proporcional y τ d una constante denominada tiempo


derivativo. Ambos parámetros son ajustables.

Significado del tiempo derivativo

La acción de control derivativa, en ocasiones denominada control de velocidad,


ocurre donde la magnitud de la salida del controlador es proporcional a la velocidad
de cambio de la señal de error. El tiempo derivativo es el intervalo de tiempo
durante el cual la acción de la velocidad hace avanzar el efecto de la acción de
control proporcional.
249

Si la señal de error es una función rampa unitaria, la salida del controlador se


convierte en la que se muestra en la Figura 11.9. La acción de control derivativa
tiene un carácter de previsión. Sin embargo, es obvio que una acción de control
derivativa nunca prevé una acción que nunca ha ocurrido.

Figura 11.9. Acción Proporcional y Proporcional – Derivativa

Cuando una acción de control derivativa se agrega a un controlador proporcional,


aporta un medio de obtener un control con alta sensibilidad. Una ventaja de usar una
acción de control derivativa es que responde a la velocidad del cambio del error y
produce una corrección significativa antes de que la magnitud del error se vuelva
demasiado grande. Por tanto, el control derivativo prevé el error, inicia una acción
oportuna y tiende a aumentar la estabilidad del sistema.

Aunque el control derivativo no afecta en forma directa el error en estado estable,


añade amortiguamiento al sistema y, por tanto, permite el uso de un valor más
grande en la ganancia, lo cual provoca una mejora en la precisión en estado estable.

Debido a que el control derivativo opera sobre la velocidad de cambio del error, y no
sobre el error mismo, este modo nunca se usa solo. Siempre se emplea junto con una
acción de control proporcional o proporcional – integral.

La Figura 11.10 muestra las respuestas de los controladores proporcional,


proporcional-integral y proporcional derivativo para el proceso utilizado en los casos
250

anteriores con válvula y sensor con ganancias de uno. Se asigna la misma ganancia
de 2 para cada una de las acciones y tiempo integral de 2 y tiempo derivativo de 10

Figura 11.10 Acciones de Control P, PI y PD

Las respuestas observadas en la Figura 11.10 se obtienen con el archivo propder.m.


Se sugiere al estudiante modificar dicho archivo de tal manera que permita la
asignación de una ganancia diferente para la acción proporcional-derivativa y notar
que la acción derivativa controla la variable de proceso alcanzando un valor con un
error en estado estacionario y la ganancia puede tomar valores mayores

11.3.6 Acción de control proporcional – integral – derivativa, PID

La combinación de una acción de control proporcional, una acción de control


integral y una acción de control derivativa se denomina acción de control
proporcional – integral – derivativo o PID. Esta acción combinada tiene las ventajas
de cada una de las tres acciones de control individuales. La ecuación de un
controlador con esta acción combinada se obtiene mediante

Kc t de(t )
m(t ) = K c e(t ) +
τI ∫ e(t )dt + K cτ d
0 dt
(11.10)
251

M ( s)  1 
ó = K c 1 + + τ d s  (11.11)
E ( s)  τIs 

La Figura 11.11 muestra la respuesta rampa unitaria que compara las acciones
proporcionales, proporcional-derivativas y proporcional-integral-derivativa, con los
siguientes parámetros: ganancia es de 2 el tiempo integral de 2 y el tiempo
derivativo es de 3 y la pendiente de la rampa es 2.

Figura 11.11 Acción Proporcional-Integral-Derivativa

Si la señal de error es una función rampa unitaria, la salida del controlador PID es
una combinación de amplificación, reajuste y anticipación, propios de las acciones
proporcional, integral y derivativa.

En la Figura 11.12 se muestra la respuesta del control proporcional-integral-


derivativo a una variación paso unitario en su variable de entrada para el proceso
estudiado en los casos anteriores. Se asigna un valor de 200 para la ganancia un
tiempo integral de 0.5 y un tiempo derivativo de 0.5. No hay error estable y la
respuesta presenta una anticipación con respecto a una acción proporcional –
integral, mostrada en una gráfica mas amortiguada
252

Figura 11.12. Acción de control proporcional – integral – derivativo

11.4 SIMULINK

Las acciones de control se pueden estudiar utilizando las herramientas disponibles


en Simulink y construyendo los diagramas de bloques de cada uno de los lazos
retroalimentados. Para este propósito, es posible, el empleo de bloques como el
“Relay” que cumple la operación de un control de dos posiciones y el “PID
Controller” para especificar las acciones proporcional o integral o derivativa en un
controlador

Bloque “Relay”

El bloque “Relay” que se encuentra en la librería “Discontinuities” del mostrario de


Simulink simula a un controlador de dos posiciones dentro del diagrama de bloques
que represente a un sistema. Requiere de las especificaciones de los valores de M1 y
M2, que se introducen en la ventana de propiedades en los cuadros titulados “Output
when on” y “Output when off”. La Figura 11.3 muestra un diagrama sencillo con el
cual se puede observar la acción de un controlador de dos posiciones

Bloque “PID Controller”

El bloque “PID Controller” se encuentra en la librería “Simulink Extras”, dentro del


subconjunto “Additional Linear”.
253

Figura 11.13. Controlador de dos posiciones

La Figura 11.14 muestra la ventana de propiedades del bloque “PID Controller” para
especificar los parámetros dentro de los cuadros “Proportional”, “Integral” y
“Derivative”

Figura 11.14 Especificaciones de un controlador PID

Se observa en el cuadro que describe al bloque que la función de transferencia que


maneja el bloque se escribe en la siguiente forma:

I
P + + Ds
s

En los cuadros “Proporcional” y “Derivative” se especifican la ganancia


proporcional y el tiempo derivativo pero en el cuadro “Integral” se introduce el
inverso del tiempo integral. En caso de acción solo proporcional los cuadros Integral
y Derivative se especifican con cero.
254

11.5 MATLAB: COMANDOS UTILIZADOS

En los programas incluidos a continuación se utilizan los comandos “subplot”,


“fprintf” y “feedback”. Una descripción de ellos se resume a continuacón

Comando subplot

Mediante este comando se divide la ventana donde se despliegan gráficas de Matlab


para que se observen matrices de gráficas que se posicionan de acuerdo a la
localización que se especifique en los argumentos del comando. La sintaxis es:

Subplot(m,n,p)

Siendo “m”, el número de filas de la matriz, “n” el número de la columna y “p” el


número de la fila donde se posiciona la gráfica donde se posiciona la gráfica
columna columnas de la matriz de gráficas y p, las filas, c

Comando fprintf

Este comando escribe datos formateados a un archivo. La sintaxis es la siguiente:

fprintf(Archivo, Formato, Datos)

El ‘Archivo’ y el ‘Formato’ se escriben entre comillas simples. Si el archivo es el


mismo en el cual se inserta el comando, el primer argumento se omite. La escritura
del formato numérico se inicia con un signo de porcentaje seguido de una letra que
indica el carácter de conversión o representación del número. Entre ellos son
opcionales la escritura de alguna información como la siguiente:

%-6.2f

Después del signo de porcentaje se puede incluir un control para la alineación de la


salida con un signo menos o un signo mas o un cero. El signo menos hace una
justificación a la izquierda, el signo mas despliega el signo positivo o negativo y el
cero coloca ceros en vez de espacios. El número seis escrito a continuación
255

especifica el número mínimo de dígitos a imprimir. El número dos escrito a


continuación del punto indica el número de cifras decimales y la letra efe indica el
carácter de conversión, en este caso que los números se despliegan en formato de
punto fijo. Otros formatos como el notación decimal con signo, el exponencial con e
minúscula y uno mas compacto utilizan como caracteres las letras “d”, “e” y “g”,
respectivamente.

El formato numérico suele seguirse de un signo\ y de un carácter de escape que


indique si el cursor retrocede (b), se posiciona para una nueva línea abajo (n), se
desplaza en forma tabular (t), etc. Se pueden escribir leyendas antes y después de los
formatos numéricos, pero incluidas dentro de las comillas simples.

Comando feedback

Este comando determina la función de transferencia resultante de dos en paralelo


retroalimentadas negativamente. La sintaxis es:

H = feedback(h1, h2,Signo)

Las funciones de transferencia en paralelo son h1 y h2. Si la retroalimentación es


negativa sobrentiende el signo, en caso contrario es necesario colocar el signo
positivo

11.6 MATLAB: PROGRAMAS CODIFICADOS

Archivo onoff.m

function y = onoff(x)
global A w M1 M2
A = input('Amplitud de la onda sinusoidal = ');
w = input('Frecuencia angular de la onda sinusoidal = ');
M1 = input('Valor superior o Valor de encendido = ');
M2 = input('Valor inferior o Valor de apagado = ');
tmin = input('Limite inferior del periodo de tiempo = ');
tmax = input('Limite superior del periodo de tiempo = ');
dt = input('Incremento en el tiempo = ');
t = [tmin:dt:tmax];
N = (tmax - tmin)/dt;
for i = 1:(N + 1)
256

y(i) = A*sin(w*t(i));
end
subplot(2,1,1), plot(t,y);
axis([0 tmax -(A + 1) (A + 1)])
legend('Entrada Sinusoidal',4), xlabel('Tiempo','FontSize',14),
ylabel('Entrada','FontSize',14)
grid
for i = 1:(N + 1)
if y(i) >= 0;
y1(i) = M1;
elseif y(i) <= 0;
y1(i) = M2;
elseif y(i) == -0;
y1(i) = M2;
else
end
end
subplot(2,1,2), plot(t,y1);
axis([0 tmax -(A + 1) (A + 1)])
legend('Control Encendido/Apagado',4), xlabel('Tiempo','FontSize',14),
ylabel('Respuesta','FontSize',14)

grid

Archivo prop.m

function f = prop(t,y)
Kc = input('Ganancia del Controlador = ');
Kv = input('Ganancia de la Valvula = ');
Ks = input('Ganancia del Sensor = ');
K = input('Ganancia del sistema = ');
dX = input('Cambio paso en la variable de entrada = ');
to = input('Tiempo de Simulacion = ');
n = input('Numero de polos en la funcion de transferencia del sistema = ');
m = input('Numero de zeros en la funcion de transferencia del sistema = ');
for i = 1:n
fprintf('Polo Numero %1.0f \n',i);
p(i) = input('Valor = ');
if i < m +1
fprintf('Zero Numero %1.0f \n',i);
z(i) = input('Valor = ');
elseif m == 0
257

z = [];
end
end
Gp = zpk(z,p,K);
G = [1 0 Ks; Kc -1 0; 0 Kv*Gp -1];
B = [1; 0; 0];
R = (inv(G))*B*dX;
[y,t] = step(R,to);
plot(t,y(:,1),'k',t,y(:,2),'r',t,y(:,3),'b')
title('Accion Proporcional en un Controlador', 'FontSize',14);
xlabel('Tiempo', 'FontSize',14);
ylabel('Error y Respuesta', 'FontSize',14);

Archivo integ.m

function f = integ(t,y)
Kc = input('Ganancia del Controlador = ');
Kv = input('Ganancia de la Valvula = ');
Ks = input('Ganancia del Sensor = ');
K = input('Ganancia del sistema = ');
dX = input('Cambio paso en la variable de entrada = ');
to = input('Tiempo de Simulacion = ');
n = input('Numero de polos en la funcion de transferencia del sistema = ');
m = input('Numero de zeros en la funcion de transferencia del sistema = ');
for i = 1:n
fprintf('Polo Numero %1.0f \n',i);
p(i) = input('Valor = ');
if i < m +1
fprintf('Zero Numero %1.0f \n',i);
z(i) = input('Valor = ');
elseif m == 0
z = [];
end
end
Gp = zpk(z,p,K);
Gc = tf([Kc],[1 0]);
G = [1 0 Ks; Gc -1 0; 0 Kv*Gp -1];
B = [1; 0; 0];
R = (inv(G))*B*dX;
[y,t] = step(R,to);
plot(t,y(:,1),'k',t,y(:,2),'r',t,y(:,3),'b')
title('Accion Integral en un Controlador', 'FontSize',14);
258

xlabel('Tiempo', 'FontSize',14);
ylabel('Error y Respuesta', 'FontSize',14);

Archivo accpropinteg.m

function f = accpropinteg(t,y)
Kc = input('Ganancia del Controlador = ');
taui = input('Tiempo Integral = ');
to = input('Tiempo de Simulacion = ');
for i = 1:2
if i == 1
Gc(i) = tf([Kc],[0 1]);
else
tau(i) = taui;
Gc(i) = tf([Kc*tau(i) Kc],[tau(i) 0]);
end
[y,t] = step(Gc(i),to);
if i == 1
plot(t,y,'b')
hold on
axis([0 5 0 10])
grid
else
plot(t,y,'r')
end
end
title('Accion Proporcional-Integral en un Controlador', 'FontSize',14);
xlabel('Tiempo', 'FontSize',14);
ylabel('Respuesta', 'FontSize',14);ylabel('Respuesta', 'FontSize',14);

Archivo propinteg.m

function f = propinteg(t,y)
Kc = input('Ganancia del Controlador = ');
taui = input('Tiempo Integral = ');
Kv = input('Ganancia de la Valvula = ');
Ks = input('Ganancia del Sensor = ');
K = input('Ganancia del sistema = ');
dX = input('Cambio paso en la variable de entrada = ');
to = input('Tiempo de Simulacion = ');
n = input('Numero de polos en la funcion de transferencia del sistema = ');
259

m = input('Numero de zeros en la funcion de transferencia del sistema = ');


for i = 1:n
fprintf('Polo Numero %1.0f \n',i);
p(i) = input('Valor = ');
if i < m +1
fprintf('Zero Numero %1.0f \n',i);
z(i) = input('Valor = ');
elseif m == 0
z = [];
end
end
Gp = zpk(z,p,K);
B = [1; 0; 0];
for i = 1:2
if i == 1
tau(i) = 0;
Gc(i) = tf([Kc],[0 1]);
else
tau(i) = taui;
Gc(i) = tf([Kc Kc*tau(i)],[tau(i) 0]);
end
G = [1 0 Ks; Gc(i) -1 0; 0 Kv*Gp -1];
R = (inv(G))*B*dX;
[y,t] = step(R,to);
if i == 1
plot(t,y(:,3),'k')
hold on
else
plot(t,y(:,3),'r')
end

end
title('Accion Proporcional-Integral en un Controlador', 'FontSize',14);
xlabel('Tiempo', 'FontSize',14);
ylabel('Error y Respuesta', 'FontSize',14)

Archivo propder.m

function f = propder(t,y)
Kc = input('Ganancia del Controlador = ');
taui = input('Tiempo Integral = ');
taud = input('Tiempo Derivativa = ');
Kv = input('Ganancia de la Valvula = ');
260

Ks = input('Ganancia del Sensor = ');


K = input('Ganancia del Proceso = ');
n = input('Numero de Polos = ');
for i = 1:n
fprintf('Polo Numero %1.0f\n',i)
p(i) = input('Valor del Polo = ');
end
to = input('Tiempo de Simulacion = ');
z = [];
G = zpk(z,p,K);
G1 = series(G,Kv);
Gp = tf([Kc],[0 1]);
Gi = tf([Kc*taui Kc],[taui 0]);
Gd = tf([K*taud K],[0 1]);
FP = series(G1,Gp);
CP = feedback(FP,Ks);
[y,t] = step(CP,to);
plot(t,y,'b')
hold on
FI = series(G1,Gi);
CI = feedback(FI,Ks);
[y,t] = step(CI,to);
plot(t,y,'k')
FD = series(G1,Gd);
CD = feedback(FD,Ks);
[y,t] = step(CD,to);
plot(t,y,'r')
title('Acciones de Control','FontSize',14), xlabel('Tiempo','FontSize',14),
ylabel('Respuesta','FontSize',14)