Вы находитесь на странице: 1из 46

PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

UNIVERSIDAD DEL ATLÁNTICO

FACULTAD DE INGENIERÍA

PROGRAMA DE INGENIERÍA QUÍMICA

MODELAMIENTO DE UN SISTEMA NO ISOTÉRMICO DE REACCIÓN QUÍMICA

INTEGRANTES:

EDWIN Y. CABALLERO AGUILAR

YESSICA P. CARVAJAL FONSECA

DANIELA LÓPEZ ARGUMEDO

TATIANA SUÁREZ MORENO

JAVIER TORRES PITALUA

DOCENTE: JUAN BERNARDO RESTREPO

BARRANQUILLA, 2019-I
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

1. DESCRIPCIÓN VERBAL Y DIAGRAMA DE FLUJO DE PROCESO DEL PROBLEMA

El reactor en consideración es un reactor de agitación continua con una camisa de refrigeración en la que el ciclopentanol
se produce a partir de ciclopentadieno por hidratación electrofílica catalizada por ácido en solución acuosa. Este reactor
fue descrito por primera vez por (Chen at al. 1995) y se adopta sin cambios en el presente documento. El esquema de
reacción y los parámetros se derivan mediante el modelado teórico basado en las propiedades físicas descritas en la
literatura para un proceso real. Los detalles de la derivación de los parámetros químicos y los antecedentes físico-químicos
también se muestran en la Tabla 1. (J. Vojtesek y P. Dostal, 2004)

Figura 1. Continuous stirred tank reactor (CSTR)

La Figura 1. muestra un diagrama esquemático del reactor. La principal reacción está dada por la transformación del
ciclopentadieno (sustancia A) en el producto ciclopentenol (sustancia B). El reactivo inicial ciclopentadieno también
reacciona en una reacción paralela no deseada al subproducto diciclopentadieno (sustancia D). Además, el
ciclopentanediol (sustancia C) se forma en una reacción consecutiva no deseada del producto ciclopentenol. La reacción
de van der Vusse, se describe en el siguiente esquema de reacción:

𝐴 ⃗⃗⃗⃗⃗⃗⃗
𝑘1 𝐵 ⃗⃗⃗⃗⃗
𝑘2 𝐶

2𝐴 ⃗⃗⃗⃗⃗⃗⃗
𝑘3 𝐷

El alimentado al reactor contiene sólo ciclopentadieno (sustancia A) con concentración cA0 y temperatura Tr0. La
evacuación de calor Qc se puede retirar del refrigerante mediante un intercambiador de calor externo.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Tabla 1. Parámetros del reactor


Constantes y Parámetros.

CA0 =5.1 [kmol/m^3] `Cpr= 3.01 [kJ/kg*K]


CBO = 0 [kmol/m^3] Cpc= 2.0 [kJ/kg*K]
k01 = 2.145e10 [min^-1] mc= 5 [kg]
k02 =2.145e10 [min^-1] rhor=934.2 [kg/m^3]
k03 =1.5072e8 [min^-1] qr=2365e-03 [m^3/min]
E01 /R= Qc=-18.55 [kJ/mim]
E02 /R= Ar=0.215 [m^2]
E03 /R= Tr0 =387.05 [K]
h1=-4200 [kJ/kmol^-1] Vr =0.01
h2=11000 [kJ/kmol^-1]
h3=41850[kJ/kmol^-1]

2. NIVEL DE DETALLE PARA EL MODELO

El MSBF que se elabora aquí para el reactor CSTR pretende conocer el proceso térmico y la variación en las concentraciones
de las especies. El caso de estudio de éste proyecto permite un nivel de detalle a escala macroscópica de la transferencia
energética en el proceso, orientado a la obtención de un modelo de parámetros concentrados. El artículo no menciona
ciertas especificaciones como las especies químicas, qué tan exotérmica es la reacción, la potencia del agitador y los
materiales del reactor y la chaqueta de enfriamiento. Por estas razones se formula una hipótesis de modelado, haciendo
ciertas consideraciones con el fin de simplificar las operaciones matemáticas necesarias para llegar al modelo:

a. Reactor continúo CSTR de volumen constante.


b. Mezclado homogéneo y perfecto
c. Densidad constante.
d. Reacción exotérmica
e. Presión constante
f. Se considera que no existe intercambio de energía entre el sistema y los alrededores
2.1 FORMULACIÓN DE HIPÓTESIS

En el presente trabajo se pretende dar respuesta la pregunta ¿

3. DEFINIR EL SISTEMA DE PROCESO QUE SE MODELARÁ

Para el modelo a plantear se toman dos sistemas de proceso, el primero es el reactor de Van de Vusse no isotérmico, y el
segundo es la chaqueta que lo recubre. La interacción de ambos sistemas es únicamente energética y ésta se da mediante
el contacto de los fluidos internos y externos con la pared del reactor, permitiendo la transferencia de calor por los
fenómenos de conducción y convección.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

SdeP SI REACTOR 𝑸̇ CHAQUETA SdeP SII

Figura 2. Diagrama de bloques de los Sistemas de Proceso definidos y su interacción energética.

4. BALANCE DE MATERIA Y ENERGÍA DE CADA SISTEMA DE PROCESO

Debido al objetivo que se tiene para el modelo, tanto el SdeP SI como el SdeP SII deben ser tenidos en cuenta al aplicar el
balance de energía, dado que la naturaleza exotérmica de la reacción de Van de Vusse no puede ser despreciada. Sin
embargo, el balance de masa será aplicado al SdeP SI con el fin de obtener el comportamiento de la concentración de las
especies en el tiempo.

La dinámica del reactor se puede describir mediante las siguientes ecuaciones diferenciales no lineales que se derivan de
balances de componentes para las sustancias A y B y de balances de energía para el reactor y la camisa de refrigeración.

a. Balance de masa

Se asumirá densidad y V al interior del reactor constante

𝑑𝑣
= 0, ρ𝑟 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 , 𝑞𝑟 = 𝑞𝑖 = 𝑞𝑟0
𝑑𝑡

𝑞𝑖 = 𝑓𝑙𝑢𝑗𝑜 𝑚𝑜𝑙𝑎𝑟 ρ𝑟 = 𝐷𝑒𝑛𝑠𝑖𝑑𝑎𝑑 , 𝑉 = 𝑣𝑜𝑙𝑢𝑚𝑒𝑛

b. Balance para el componente A

Se efectúan dos reacciones para el componente A las cuales son

A  B, cuya velocidad de reacción es −𝑟𝐴1 = 𝑘1 𝐶𝐴 (1)

2A  D , cuya velocidad de reacción es−𝑟𝐴3 = 𝑘3 𝐶𝐴2 (2)

𝑖𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 = 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑑𝑒 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 − 𝑠𝑎𝑙𝑖𝑑𝑎 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 + 𝑟𝑛𝑥1 + 𝑟𝑛𝑥3 (3)
𝑑(𝑉𝐶𝐴 )
= 𝑞𝐴0 𝐶𝐴0 − 𝑞𝑟 𝐶𝐴 + (−𝑘1 𝐶𝐴 ) + (−𝑘3 𝐶𝐴2 )
𝑑𝑡

𝑑(𝐶𝐴 ) 𝑑(𝑉)
𝑉 𝑑𝑡
+ 𝐶𝐴 𝑑𝑡
= 𝑞𝐴0 𝐶𝐴0 − 𝑞𝐴 𝐶𝐴 + (−𝑘1 𝐶𝐴 ) + (−𝑘3 𝐶𝐴2 ) (4)
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1
𝑑𝑣
Aplicando = 0 y 𝑞𝑟 = 𝑞𝑖 = 𝑞𝑟0 en (4) tenemos que
𝑑𝑡

𝑑(𝐶𝐴 ) 𝑞𝐴0
=( )(𝐶𝐴0 − 𝐶𝐴 ) + (−𝑘1 𝐶𝐴 ) + (−𝑘3 𝐶𝐴2 ) (5)
𝑑𝑡 𝑉

c. Balance de masa para el componente B

A  B

B  C , cuya velocidad de reacción es −𝑟𝐴2 = 𝑘2 𝐶𝐴

𝑖𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 = 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑑𝑒 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 − 𝑠𝑎𝑙𝑖𝑑𝑎 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 − 𝑟𝑛𝑥1 + 𝑟𝑛𝑥2

𝑑(𝐶𝐵 ) 𝑞𝐵
𝑑𝑡
=0− 𝑉 𝐵
𝐶 − (−𝑘1 𝐶𝐴 ) + (−𝑘2 𝐶𝐴 ) (6)

d. Balance de energía dentro del reactor

𝑑(𝑇𝑅 ) 𝑞𝑟 ℎ𝑟 𝐴𝑟 𝑈
= (𝑇𝑅0 − 𝑇𝑅 ) − + (T𝐶 − 𝑇𝑅 ) (7)
𝑑𝑡 𝑉 ρ𝑟 C𝑃𝑟 V𝑟 ρ𝑟 C𝑃𝑟

e. Balance de energía en la chaqueta de enfriamiento

𝑑(𝑇𝑐 ) 1
𝑑𝑡
=𝑚 (𝑄𝑐 + 𝐴𝑅 𝑈(T𝑅 − 𝑇𝑐 )) (8)
𝑐 𝐶𝑝𝑟

En las ecuaciones (5) - (8) t es el tiempo, c son concentraciones, T representa temperaturas, se usa cp para capacidades
térmicas específicas, q representa caudal volumétrico, Qc es eliminación de calor, V son volúmenes, ρ Representa
densidades, Ar es la superficie del intercambio de calor y U es el coeficiente de transferencia de calor. Los Subíndices a y
b pertenecen a los compuestos A y B, el subíndice r denota la mezcla reactiva, el subíndice c líquido de enfriamiento, sub
índice 0 es valores de alimentación (entrada) y sub índices s representa el estado estacionario. La ecuación (9), expresa el
cambio de la velocidad de reacción con respectó a la ley de Arrhenius,
−𝐸
𝑘𝑗(𝑇𝑟 ) = 𝑘0𝑗 ∗ exp (𝑅𝑇 ) (9)
𝑟

ℎ𝑟 = ℎ1 ∗ 𝑘1 + ℎ2 ∗ 𝑘2 + ℎ3 ∗ 𝑘3 (10)

Donde h significa entalpías de reacción y hr calor de reacción.

5. SELECCIÓN DE ECUACIONES DIFERENCIALES QUE APORTEN INFORMACIÓN IMPORTANTE EN EL MODELO

Las ecuaciones diferenciales descritas en el paso 4, suministran toda la información necesaria para resolver el sistema de
modelamiento. Teniendo en cuenta que el objetivo del modelo es conocer el proceso térmico, el cambio de concentración
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

de las especies con respecto al tiempo y el cambio de temperatura del fluido refrigerante en la chaqueta para trabajar con
4 ecuaciones y 4 incógnitas. Cabe resaltar que los datos generales del proceso fueron tomados del articulo base.
(J.Vojtesek y P. Dostal, 2004)

6. DEFINICIÓN PARA LAS EDB ESENCIALES LOS PARÁMETROS, LAS VARIABLES Y LAS CONSTANTES CONOCIDAS DEL
SISTEMA DE OPERACIÓN.

La tabla 2. muestra las variables y parámetros que brinda el sistema, necesarias para la solución de las EDB esenciales.

Tabla 2. Parámetros, variables y constantes conocidas del reactor

Variables Entradas Salidas Parámetros Perturbaciones

qr 
Tc 
TR 
TRO 
CA 
CAO 
CB 
CB0 
VR 
Qc 
U 
AR 
mc 
TCO  

7. ECUACIONES CONSTITUTIVAS QUE PERMITEN CALCULAR EL MAYOR NÚMERO DE PARÁMETROS EN CADA


SISTEMA DE PROCESO

El parámetro a determinar es la velocidad de reacción (kj) son funciones no lineales. expresado a través de la ley de
Arrhenius, ya que es el parámetro con mayor influencia en cada ecuación modelada anteriormente
−𝐸
𝑘𝑗(𝑇𝑟 ) = 𝑘0𝑗 ∗ exp (𝑅𝑇 ) (9)
𝑟

donde k0 representa factores pre-exponenciales y E son Energías de activación.

8. VERIFICACIÓN DE LOS GRADOS DE LIBERTAD

Los grados de libertad que seleccionamos para resolver el sistema de modelamiento (Tabla 3.) son los
siguientes:

𝐺𝐿 = #𝐸𝑐𝑢𝑎𝑐𝑖𝑜𝑛𝑒𝑠 − #𝐼𝑛𝑐𝑜𝑔𝑛𝑖𝑡𝑎𝑠 = 0
𝐺𝐿 = (𝐸𝑐5 + 𝐸𝑐7 + 𝐸𝑐6 + 𝐸𝑐8) − (𝑇𝑐 + 𝑇𝑟 + 𝐶𝐴 + 𝐶𝐵 ) = 0
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Tabla 3. Grados de libertad

Símbolo Parámetro/ecuación Naturaleza


Tc Temperatura refrigeración Incógnita
Tr Temperatura reacción Incógnita
CA Concentración de A a la salida Incógnita
CB Concentración de B a la salida Incógnita
Ec5 Ecuación diferencial Ecuación
Ec6 Ecuación diferencial Ecuación
Ec7 Ecuación diferencial Ecuación
Ec8 Ecuación diferencial Ecuación

9. DESARROLLO DEL MODELO

Para el desarrollo del modelo del sistema se utilizan las ecuaciones (5)-(8) donde en la ecuación (7) es la ecuación que
describe la variación de la temperatura en el reactor dado que se lleva a cabo una reacción exotérmica y debe
manipularse la temperatura de entrada al proceso.

DETERMINACIÓN DEL ESTADO ESTACIONARIO

Para dar solución a este sistema se desarrolló por medio de un programa en Matlab (anexo 3: SolSistema) Resuelve el
modelo y encuentra el estado estacionario, igualando cada una de las ecuaciones diferenciales a cero, los resultados se
pueden observar en la tabla 4. Éste programa utiliza a su vez los programas Sistema.m (anexo 1), que tiene la función que
usa Matlab para almacenar las cuatro ecuaciones diferenciales que el solver ode15s utilizará para calcular las soluciones
del modelo del CSTR; y SistemaSS.m (anexo 2) que tiene la función que usa Matlab para almacenar las cuatro ecuaciones
diferenciales que el solver fsolve utilizará para calcular el estado estacionario.

Tabla 4. Resultados estado estacionario

Estado estacionario
Cas (kmol/m3) CBs (kmol/m3) Tr (K) Tc (K)
3.0763 0.9244 374.2288 372.9443
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 3 . Variación de la concentración CA con respecto al tiempo

Se puede observar en la grafica un deceso en la concentración de A al principio y luego rápidamente al trascurrir 10 minutos
se observa una línea prácticamente constante. Con los datos y ecuaciones diferenciales obtenidas se simularon

Figura 4. Concentración de b con respecto al tiempo

En esta grafica se puede observar la producción de B que al trascurso de 5 minutos prácticamente alcanza su tasa más alta
de producción y luego encuentra su punto equilibrio. Con los datos y ecuaciones diferenciales obtenidas se simularon en
Matlab
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 5. Temperatura del reactor vs el tiempo

En la figura 5, se puede observar que la temperatura inicial del reactor es de 388.8 y al cabo de 10 minutos de operación
encuentra su punto de descenso y al pasar el tiempo su temperatura permanece constaté. Con los datos y ecuaciones
diferenciales obtenidas se simularon en MATLAB.

Figura 6. Tc vs tiempo

Se puede observar un descenso en la temperatura de la chaqueta con respecto al tiempo don al cabo de 10-20 minutos
alcanza una temperatura literalmente constante
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

CURVA GENERACIÓN- REMOCIÓN

Para confirmar que los datos obtenidos del estado estacionario pueden ser una aproximación al comportamiento
energético del reactor se desarrolló un código en Matlab (SS.m) que muestra los perfiles de temperatura del reactor y de
la refrigeración, como se observa en la figura 5. Esta indica la generación y remoción del calor al trascurso de la operación
en el reactor. Con los datos y ecuaciones diferenciales obtenidas se simularon en Matlab

Figura 7. Curva generación-remoción

Como se observa en la figura 5, el calor removido presenta un comportamiento lineal al transcurrir el tiempo, dado que
la temperatura en el flujo de refrigerante se intenta mantener constante; el calor generado corresponde al calor de la
reacción con respecto al tiempo, se nota que el calor aumenta en una curva pronunciada, esto debido a que se da la
reacción exotérmica en ese intérvalo, luego se estabiliza.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

LINEALIZACIÓN

Así mismo, se realizó la linealización del modelo alrededor del estado estacionario, a través del programa (LinealEE.m)
que linealiza el modelo y obtiene todas las funciones de transferencia (anexo 4).

A. Matriz Jacobiana

A B

𝐶𝐴 𝐶𝐵 𝑇𝑟 𝑇𝑐 𝐶𝐴𝑜 𝑇𝑟𝑜 𝑚𝑐 𝑞𝑟

𝑓1 𝑑𝑓1/𝑑𝐶𝐴 𝑑𝑓1/𝑑𝐶𝐵 𝑑𝑓1/𝑑𝑇𝑟 𝑑𝑓1/𝑑𝑇𝑐 𝑓1 𝑑𝑓1/𝑑𝐶𝐴𝑜 𝑑𝑓1/𝑑𝑇𝑟𝑜 𝑑𝑓1/𝑑𝑚𝑐 𝑑𝑓1/𝑑𝑞𝑟


𝑓2 𝑑𝑓2/𝑑𝐶𝐴 𝑑𝑓2/𝑑𝐶𝐵 𝑑𝑓2/𝑑𝑇𝑟 𝑑𝑓2/𝑑𝑇𝑐 𝑓2 𝑑𝑓2/𝑑𝐶𝐴𝑜 𝑑𝑓2/𝑑𝑇𝑟𝑜 𝑑𝑓2/𝑑𝑚𝑐 𝑑𝑓2/𝑑𝑞𝑟
[ ] [ ]
𝑓3 𝑑𝑓3/𝑑𝐶𝐴 𝑑𝑓3/𝑑𝐶𝐵 𝑑𝑓3/𝑑𝑇𝑟 𝑑𝑓3/𝑑𝑇𝑐 𝑓3 𝑑𝑓3/𝑑𝐶𝐴𝑜 𝑑𝑓3/𝑑𝑇𝑟𝑜 𝑑𝑓3/𝑑𝑚𝑐 𝑑𝑓3/𝑑𝑞𝑟
𝑓4 𝑑𝑓4/𝑑𝐶𝐴 𝑑𝑓4/𝑑𝐶𝐵 𝑑𝑓3/𝑑𝑇𝑟 𝑑𝑓4/𝑑𝑇𝑐 𝑓4 𝑑𝑓4/𝑑𝐶𝐴𝑜 𝑑𝑓4/𝑑𝑇𝑟𝑜 𝑑𝑓3/𝑑𝑚𝑐 𝑑𝑓4/𝑑𝑞𝑟

Para efectos de este programa, se definieron todas las variables como simbólicas.

 Salidas: syms CA CB Tr Tc
 Entradas: CAo Tro mc qr
 Parámetros: Vr hr rhor Cpr Ar U Cpc Qc E1R E2R E3R h1 h2 h3 k01 k02 k03

Se definieron las funciones EqnCA, EqnCB, EqnTr, EqnTc, que representan las ecuaciones diferenciales (5)-(8)

𝑞𝑟
𝐸𝑞𝑛𝐶𝐴 = × (𝐶𝐴𝑜 − 𝐶𝐴) − 𝑘1 × 𝐶𝑎 − 𝑘3 × 𝐶𝐴2
𝑉𝑟
𝑞𝑟
𝐸𝑞𝑛𝐶𝐵 = − × 𝐶𝐵 + 𝑘1 × 𝐶𝐴 − 𝑘2 × 𝐶𝐵
𝑉𝑟
𝑞𝑟 ℎ𝑟 𝑇𝑐 − 𝑇𝑟
𝐸𝑞𝑛𝑇𝑟 = × (𝑇𝑟𝑜 − 𝑇𝑟) − + 𝐴𝑟 × 𝑈 ×
𝑉𝑟 𝑟ℎ𝑜𝑟 × 𝐶𝑝𝑟 𝑉𝑟 × 𝑟ℎ𝑜𝑟 × 𝐶𝑝𝑟

1
𝐸𝑞𝑛𝑇𝑐 = × (𝑄𝑐 + 𝐴𝑟 × 𝑈 × (𝑇𝑟 − 𝑇𝑐))
𝑚𝑐 × 𝐶𝑝𝑐

Donde,
𝑘1 = 𝑘01 × 𝑒 −𝐸1𝑅/𝑇𝑟
𝑘2 = 𝑘02 × 𝑒 −𝐸2𝑅/𝑇𝑟
𝑘3 = 𝑘03 × 𝑒 −𝐸3𝑅/𝑇𝑟
𝑘4 = 𝑘04 × 𝑒 −𝐸4𝑅/𝑇𝑟

ℎ𝑟 = ℎ1 × 𝑘1 × 𝐶𝐴 + 𝐻2 × 𝑘2 × 𝐶𝐵 + ℎ3 × 𝑘3 × 𝐶𝐴2
1.1. Se calculó el Jacobiano del sistema EqnCA, EqnCB, EqnTr, EqnTc con respecto a las variables de salida, es decir A:

>> A=jacobian([EqnCA EqnCB EqnTr EqnTc],[CA CB Tr Tc])


PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Componentes de A
𝑞𝑟 𝐸1𝑅 𝐸3𝑅 𝐸3𝑅 𝐶𝐴 ∗ 𝐸1𝑅 𝑘01𝑒 (−𝐸1_𝑅)/𝑇𝑟)
𝐴11 = − − (𝑘01𝑒 − 𝑇𝑟 ) − 2𝐶𝐴𝑘03𝑒 − 𝑇𝑟 ; 𝐴12 = 0 ; 𝐴13 = −𝐶𝐴2 𝐸3𝑅 𝑘03𝑒 (− 𝑇𝑟 ) − ; 𝐴14 = 0
𝑉𝑟 𝑇𝑟 2
𝐸1
(− 𝑅 )
𝐸1𝑅 𝑞𝑟 𝐸2𝑅 𝐶𝐴𝐸1𝑅 𝑘01𝑒 𝑇𝑟 𝐶𝐵 ∗ 𝐸2𝑅 𝑘02𝑒 (−𝐸2_𝑅)/𝑇𝑟)
𝐴21 = 𝑘01𝑒 − 𝑇𝑟 ; 𝐴22 =− − (𝑘02𝑒 − 𝑇𝑟 ) ; 𝐴23 = − ; 𝐴24 = 0
𝑉𝑟 𝑇𝑟 2 𝑇𝑟 2
𝐸1𝑅 𝐸3𝑅 𝐸2𝑅
ℎ1𝑘01𝑒 − 𝑇𝑟+ 2𝐶𝐴ℎ3𝑘03𝑒 − 𝑇𝑟 ℎ2 ∗ 𝑘02𝑒 − 𝑇𝑟
𝐴31 = − ; 𝐴32 = ;
𝐶𝑝𝑟 ∗ 𝑟ℎ𝑜𝑟 𝐶𝑝𝑟 ∗ 𝑟ℎ𝑜𝑟

𝐸2𝑅 𝐸2𝑅
𝐶𝐴𝐸1𝑅 ℎ1𝑘01𝑒 −(𝐸1_𝑅)/𝑇𝑟) 𝐶𝐵 𝐸2𝑅 ℎ2 𝑘02𝑒 − 𝑇𝑟 𝐶𝐴2 𝐸3𝑅 ℎ3𝑘03𝑒 −( 𝑇𝑟 )
𝑞𝑟 2 + 2 + 𝐴𝑟 ∗ 𝑈 𝐴𝑟 ∗ 𝑈
𝐴33 =− − 𝑇𝑟 𝑇𝑟 𝑇𝑟 2 − ; 𝐴34 =
𝑉𝑟 𝐶𝑝𝑟 ∗ 𝑟ℎ𝑜𝑟 𝐶𝑝𝑟 ∗ 𝑉𝑟 ∗ 𝑟ℎ𝑜𝑟 𝐶𝑝𝑟 ∗ 𝑉𝑟 ∗ 𝑟ℎ𝑜𝑟

𝐴𝑟 ∗ 𝑈 𝐴𝑟 ∗ 𝑈
𝐴41 = 0; 𝐴42 = 0; 𝐴43 = ; 𝐴44 = −
𝐶𝑝𝑐 ∗ 𝑚𝑐 𝐶𝑝𝑐 ∗ 𝑚𝑐

1.2. Se calculó el Jacobiano del sistema EqnCA, EqnCB, EqnTr, EqnTc con respecto a las variables de entrada, es decir B:

𝑞𝑟 𝐶𝐴 − 𝐶𝐴𝑜
0 0 −
𝑉𝑟 𝑉𝑟
−𝐶𝐵/𝑉𝑟
𝐵= 0 0
𝑞𝑟
0
0 0 𝑇𝑟 − 𝑇𝑟𝑜
𝑉𝑟 2 −
0 −(𝑄𝑐 − 𝐴𝑟 ∗ 𝑈 ∗ (𝑇𝑐 − 𝑇𝑟))/(𝐶𝑝𝑐 ∗ 𝑚𝑐 ) 𝑉𝑟
[ 0 0 ]

B. Se evalúa los parámetros y los A y B en las condiciones de estado estacionario seleccionadas (Tabla 4.) y las
condiciones nominales (Tabla 1.)

−0.4461 0 −0.0319 0
𝐴𝑛 = [ 0.1016 −0.3381 0.0152 0 ]
−1.7587 −0.3974 −0.9595 0.5138
0 0 1.448 −1.448

0.0002 0 0 0
𝐵𝑛 = [ 0 0 0 0 ]
0 0.0002 0 0.5138
0 0 0 −1.448

Para convertir este sistema en el espacio de estados que obtuvimos mediante las matrices 𝑨 y 𝑩 a un sistema de
funciones de transferencia, primero se tiene que observar cuál es la notación de espacio de estados que usa Matlab.

𝑑𝑥/ 𝑑𝑡= 𝑨𝑥 + 𝑩𝑢 ; 𝑦 = 𝑪𝑥 + 𝑫𝑢
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

En este caso las salidas y los estados se asumen iguales, por lo tanto y=x, por ende C es la matriz identidad I de 4x4, y el
vector D se hace igual a la matriz identidad de ceros de 4x4, las misma dimensiones de B

1 0 0 0
𝐶 = [0 1 0 0]
0 0 1 0
0 0 0 1

1 0 0 0
𝐷 = [0 1 0 0]
0 0 1 0
0 0 0 1

Se crea un sistema de espacio de estados de la siguiente forma:

>>sys=ss((Am,Bm,C,D)

A=

𝑿𝟏 𝑿𝟐 𝑿𝟑 𝒖𝟒
𝑿𝟏 −𝟎. 𝟒𝟒𝟔𝟏 𝟎 −𝟎. 𝟎𝟑𝟏𝟗𝟑 𝟎

𝑿𝟐 𝟎. 𝟏𝟎𝟏𝟔 −𝟎. 𝟑𝟑𝟖𝟏 𝟎. 𝟎𝟏𝟓𝟐𝟑 𝟎


𝑿𝟑 −𝟏. 𝟕𝟓𝟗 −𝟎. 𝟑𝟗𝟕𝟒 −𝟎. 𝟗𝟓𝟗𝟓 𝟎. 𝟓𝟏𝟑𝟖
𝑿𝟒 𝟎 𝟎 𝟏. 𝟒𝟒𝟓 −𝟏. 𝟒𝟒𝟓

B=

𝒖𝟏 𝒖𝟐 𝒖𝟑 𝒖𝟒
𝑿𝟏 𝟎. 𝟐𝟑𝟔𝟓 𝟎 𝟎 𝟐𝟎𝟐. 𝟒
𝑿𝟐 𝟎 𝟏 𝟎 −𝟗𝟐. 𝟒𝟒
𝑿𝟑 𝟎 𝟎. 𝟐𝟑𝟔𝟓 𝟏 𝟏𝟐𝟖𝟐
𝑿𝟒 𝟎 𝟎 −𝟑. 𝟏𝟐𝒆 − 𝟎𝟔 𝟎

C=

𝑿𝟏 𝑿𝟐 𝑿𝟑 𝑿𝟒
𝒚𝟏 𝟏 𝟎 𝟎 𝟎
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

𝒚𝟐 𝟎 𝟏 𝟎 𝟎
𝒚𝟑 𝟎 𝟎 𝟏 𝟎
𝒚𝟒 𝟎 𝟎 𝟎 𝟏

D=

𝒖𝟏 𝒖𝟐 𝒖𝟑 𝒖𝟒
𝒚𝟏 𝟏 𝟎 𝟎 𝟎
𝒚𝟐 𝟎 𝟏 𝟎 𝟎
𝒚𝟑 𝟎 𝟎 𝟏 𝟎
𝒚𝟒 𝟎 𝟎 𝟎 𝟏

Una vez se ha creado este sistema, se convierte a función de transferencia a través de la función tf de Matlab.

>>Ftrans=tf(sys)

𝐶𝐴 𝑠 4 + 3.425𝑠 3 + 3.279𝑠 2 + 1.124𝑠 + 0.1253


= 4
𝐶𝐴0 𝑠 + 3.188𝑠 3 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173

𝐶𝐵 0.02403𝑠 2 + 0.05143𝑠 + 0.006318


= 4
𝐶𝐴0 𝑠 + 3.188𝑠 3 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173

𝑇𝑟 −0.4159𝑠 2 − 0.7511𝑠 − 0.217


=
𝐶𝐴0 𝑠 4 + 3.188𝑠 3 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173

𝑇𝑐 −0.6009𝑠 − 0.217
= 4
𝐶𝐴0 𝑠 + 3.188𝑠 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173
3

𝐶𝐴 −0.007551𝑠 2 − 0.01346𝑠 − 0.003688


= 4
𝑇𝑟0 𝑠 + 3.188𝑠 3 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173

𝐶𝐵 𝑠 4 + 3.188𝑠 3 + 2.634𝑠 2 + 0.7836𝑠 + 0.07294


= 4
𝑇𝑟0 𝑠 + 3.188𝑠 3 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

𝑇𝑟 0.2365𝑠 3 + 0.5271𝑠 2 + 0.3036𝑠 + 0.05153


= 4
𝑇𝑟0 𝑠 + 3.188𝑠 3 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173

𝑇𝑐 0.3417𝑠 2 + 0.2679𝑠 + 0.05153


= 4
𝑇𝑟0 𝑠 + 3.188𝑠 3 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173
𝐶𝐴 5.118 × 10−8 𝑠 + 1.73 × 10−8
= 4
𝑚𝑐 𝑠 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
𝐶𝐵 −2.442 × 10−8 𝑠 − 5.693 × 10−9
=
𝑚𝑐 𝑠 4 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
𝑇𝑟 𝑠 4 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
=
𝑚𝑐 𝑠 4 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
𝑇𝑐 −3.12 × 10−6 𝑠 3 − 5.44 × 10−6 𝑠 2 − 2.662 × 10−6 𝑠 − 3.967 × 10−7
=
𝑚𝑐 𝑠 4 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
𝐶𝐴 202.4 𝑠 3 + 514 𝑠 2 + 221.9 𝑠 + 24.14
= 4
𝑞𝑟 𝑠 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
𝐶𝐵 −92.44 𝑠 3 − 223.4 𝑠 2 − 76.69 𝑠 − 7.069
= 4
𝑞𝑟 𝑠 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
𝑇𝑟 1282 𝑠 3 + 2539 𝑠 2 + 1073 𝑠 + 117.4
= 4
𝑞𝑟 𝑠 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173
𝑇𝑐 𝑠 4 + 3.188 𝑠 3 + 1855 𝑠 2 + 992.2 𝑠 + 117.5
= 4
𝑞𝑟 𝑠 + 3.188 𝑠 3 + 2.63 𝑠 2 + 0.7776 𝑠 + 0.07173

COMPARACIÓN SISTEMA LINEAL Y SISTEMA LINEAL ANTE PERTURBACIÓN.

Para el análisis de un sistema de control es necesario conocer su comportamiento ante diferentes tipos de entradas o
perturbaciones, por lo que hará una comparación, de una serie de señales, tales como el impulso, el escalón y rampa. El
impulso es una entrada cuya duración en el tiempo es instantánea, en tanto que el escalón es una entrada cuya magnitud
es aplicada en forma constante a lo largo del tiempo. La rampa es una entrada cuya amplitud varía linealmente a lo largo
del tiempo. En la Tabla 5, se muestra la expresión matemática de cada una de ellas y su transformada de Laplace, en tanto
que en la Fig. # se muestra la representación gráfica de dichas entradas.

Tabla 5. Expresiones matemáticas y transformada de Laplace para cada perturbación


PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Para este análisis se utilizó el software de MATLAB que permite observar los tipos de respuesta, previa codificación del
sistema en estudio. La simulación no lineal del sistema modelado arrojo el comportamiento que se observa en la figura
para una señal tipo escalón unitario. La simulación obtenida quedo como se muestra en el anexo 5.

En la figura 8, se puede observar la variación del sistema con respecto al tiempo que sucede en el reactor CSTR con
chaqueta que se usó en este trabajo, tanto el modelo lineal como el no lineal. La linea de color azul muestran el
comportamiento del sistema lineal y la linea roja demarca el comportaiento de nuestro sistema no lineal.

Figura 8. Comportamiento de la concentración de A sin perturbaciones , para el modelo lineal y no lineal.

Figura 9. Comportamiento de la concentración de B sin perturbaciones, para el modelo lineal y no lineal.


PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 10. Comportamiento de T sin perturbaciones , para el modelo lineal y no lineal.

Figura 11. Comportamiento de Tc sin perturbaciones , para el modelo lineal y no lineal.

Se pudieron observar las siguientes respuestas para una señal tipo escalón.

 Comportamiento Para una perturbación tipo escalón en CA0

Figura 12. Comportamiento general de la perturbación escalón.


PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 13. Perturbación escalón en CA0

Figura 14. Comportamiento de la concentración de A frente a la perturbación escalón , para el modelo lineal y no lineal.

En esta grafica se puede observar una respuesta con retardo. Se observa un cambio abrupto al principio de la perturbación
en el sistema, luego encuentra muy rápido su punto de asentamiento, se observa también que la línea amarilla
correspondiente al no lineal está desviada, pero tiende a adoptar la misma tendencia de la lineal que es la azul.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 15. Comportamiento de la concentración de B frente a la perturbación escalón, para el modelo lineal y no lineal.

En la figura 15, se puede observar una respuesta con retardo. Muy parecida a la respuesta obtenida en la concentración
A. un alto cambio al principio del sistema y después de un tiempo consigue encontrar muy rápido su punto de
asentamiento, se observa también en la línea amarilla que es la del modelo no lineal un cambio algo menor y poca
desviación con respecto al modelo lineal

Figura 16. Comportamiento de Tc frente a la perturbación escalón, para el modelo lineal y no lineal

Se puede observar en la Figura 16, que la temperatura del refrigerante no se ve muy afectada por una perturbación tiempo
escalón, las cuales tienes casi el mismo comportamiento, tanto el modelo lineal como el no lineal.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 17. Comportamiento de Tc frente a la perturbación escalón, para el modelo lineal y no lineal

En la figura 17, se puede observar una pequeña variación al principio del sistema; pero rápidamente encuentra su punto
de asentamiento, ya sea para el modelo lineal y no lineal.

 Perturbación tipo pulso con una amplitud de 1 y un periodo de 5 segundos en la Tro

Figura 18 : comportamiento general de la perturbación pulso


PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 19 : perturbación pulso en Tr0

Figura 20. Comportamiento de la concentración de A frente a la perturbación pulso, para el modelo lineal y no lineal

En la figura 20, se puede observar una amplia variación en el sistema con una perturbación tipo pulso para la concentración
A al principio del sistema y al trascurso de un tiempo consigue encontrar rápidamente su punto de abastecimiento.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 21. Comportamiento de la concentración de B frente a la perturbación pulso , para el modelo lineal y no lineal.

En esta grafica se observa una gran variación en modelo línea con una perturbación pulso, unos altos picos de
concentración cada 5 segundos durante todo el tiempo que dura la perturbación y prácticamente se mantiene constante
esta perturbación en el sistema lineal, en el sistema no lineal se observa un aumento de la concentración de B y
rápidamente encuentra su punto de abastecimiento, prácticamente alto.

Figura 22. Comportamiento de Tr frente a la perturbación pulso , para el modelo lineal y no lineal.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 23 : Comportamiento de Tc frente a la perturbación pulso , para el modelo lineal y no lineal.

En las figuras 22 y 23, se puede observar que no tienen gran variación con una perturbación tipo pulso, no se ven afectadas
por esta. Al comparar con las gráficas sin perturbaciones se pudo observar que son prácticamente iguales, por ende la
perturbación tipo pulso no afecta la temperatura.

 Perturbación tipo rampa en mc

Figura 24. Comportamiento general de la perturbación rampa.


PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 25. perturbación rampa en mc

Figura 26. Comportamiento de la concentración de A frente a la perturbación rampa en mc, para el modelo lineal y no
lineal.

Esta perturbación tipo rampa con respecto a la concentración A se ve grandemente afectada en el modelo línea (ver
figuras 24-26). En la cual tiene un gran cambio al principio del sistema y al trascurrir el tiempo va aumentando lentamente
buscando su punto de abastecimiento. En el modelo no lineal se observa una gran variación al principio del sistema y al
trascurrir el tiempo va aumentando como en el modelo lineal; pero esta no tiene una gran variación, si no es poca y va
aumentando lentamente.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 27 : Comportamiento de la concentración de B frente a la perturbación rampa en mc, para el modelo lineal y no
lineal.

El comportamiento de la perturbación tipo rampa para la concentración B, como se observa en la figura 27, es una alta
variación al principio del sistema lineal y lentamente encuentra su punto de abastecimiento y para el modelo lineal una
gran variación al principio del sistema no lineal y prácticamente su punto de abastecimiento es muy cercano al pico de esta
perturbación.

Figura 28. Comportamiento de T frente a la perturbación rampa en mc , para el modelo lineal y no lineal.

En la figura 28. se puede observar unas pequeñas variaciones de la temperatura tanto en el modelo línea como el no lineal
altas temperaturas al principio del sistema y muy lentamente baja y encuentran su punto de abastecimiento.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 29. Comportamiento de Tc frente a la perturbación pulso en mc , para el modelo lineal y no lineal.

En la figura 29, se observa que la perturbación tipo pulso afecta un pequeño cambio en la temperatura al principio del
sistema tanto en el modelo lineal como no lineal, un pequeño tiempo de alta temperatura y abruptamente un descenso
buscando su punto de abastecimiento.

 Perturbación tipo pulso.

Figura 30. Perturbación escalón en qr


PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 31. Comportamiento de la concentración de A frente a la perturbación pulso en qr, para el modelo lineal y no lineal

El comportamiento del flujo tanto en modelo lineal y no lineal son grandes variación, prácticamente constante al
transcurrir el tiempo y se pueden observar perturbaciones abruptas en el modelo lineal y no lineal (Figura 30-31).

Figura 32. Comportamiento de la concentración de B frente a la perturbación pulso en qr, para el modelo lineal y no lineal

Se puede observar en la figura 32, que en el modelo lineal tienen unas grandes perturbaciones, pero cada perturbación va
variando hasta que llega un punto en el cual las fluctuaciones de la perturbación son repetitivas y en el modelo lineal las
perturbaciones prácticamente son constantes.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Figura 33. Comportamiento de T frente a la perturbación pulso en qr , para el modelo lineal y no lineal.

La perturbación tipo pulso para le temperatura en el flujo, se puede observar en el modelo lineal una perturbación alta y
poco a poco las fluctuaciones de esta perturbación se vuelven repetitivas y en el modelo no lineal son fluctuaciones
abruptas que suelen ser muy repetitivas( ver Figura 33).

Figura 34. Comportamiento de Tc frente a la perturbación pulso en qr, para el modelo lineal y no lineal.

La perturbación tipo pulso en la temperatura de la chaqueta se puede observar en el modelo lineal fluctuaciones abruptas
en esta perturbación al principio del sistema y luego etas fluctuaciones suelen ser bajas y repetitivas y en el modelo lineal
una alta fluctuaciones en la perturbación al principio y luego bajas fluctuaciones y repetitivas (Ver figura 34).
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

BIBLIOGRAFÍA
(Artículo principal) Vojtesek, Jiri & Dostál, Petr & Haber, Robert. (2004). Simulation and Control of a Continuous
Stirred Tank Reactor. Disponible online :
https://www.researchgate.net/publication/228567218_Simulation_and_Control_of_a_Continuous_Stirred_Tank_Rea
ctor

Chen, Hong & Kremling, H & Allgöwer, Frank. (1995). Nonlinear Predictive Control of a Benchmark CSTR. Proceedings
of the 3rd European Control Conference, Rome-Italy.. 3247-3252. Disponible online:
https://www.researchgate.net/profile/Hong_Chen54/publication/220045343_Nonlinear_Predictive_Control_of_a_Be
nchmark_CSTR/links/53f1f2c40cf272810e4c792a.pdf
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

ANEXOS

1. Sistema.m

function [Sys]= Sistema(t,x)

%Entradas

CA= x(1);
CB=x(2);
Tr=x(3);
Tc=x(4);

%Parámetros

k01=2.145e10;
k03=1.5072e8;
E2_R=9758.3;
h1=-4200;
h3=41850;
Vr=0.01;
Cpr=3.01;
Cpc=2.0;
U=67.2;
CAo=5.1;
Tro=387.05;
k02=2.145e10;
E1_R=9758.3;
E3_R=8560;
h2=11000;
rhor=934.2;
qr=2.365e-3;
Qc=-18.5583;
Ar=0.215;
%CBo=0;
mc=5;

%Ecuaciones auxiliares
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

k1=k01*exp(-E1_R/Tr);
k2=k02*exp(-E2_R/Tr);
k3=k03*exp(-E3_R/Tr);

hr=h1*k1*CA+h2*k2*CB+h3*k3*CA^2;

Sys=zeros(4,1);

Sys(1,1) = qr/Vr*(CAo-CA)-k1*CA-k3*CA^2;
Sys(2,1)=-qr/Vr*CB+k1*CA-k2*CB;
Sys(3,1) = qr/Vr*(Tro-Tr)-hr/(rhor*Cpr)+Ar*U*(Tc-Tr)/(Vr*rhor*Cpr);
Sys(4,1)=1/(mc*Cpc)*(Qc+Ar*U*(Tr-Tc));
End

2. SistemaSS.m
function [Sys]= SistemaSS(x)

%Entradas

CA= x(1);
CB=x(2);
Tr=x(3);
Tc=x(4);

%Parámetros

k01=2.145e10;
k03=1.5072e8;
E2_R=9758.3;
h1=-4200;
h3=41850;
Vr=0.01;
Cpr=3.01;
Cpc=2.0;
U=67.2;
CAo=5.1;
Tro=387.05;
k02=2.145e10;
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

E1_R=9758.3;
E3_R=8560;
h2=11000;
rhor=934.2;
qr=2.365e-3;
Qc=-18.5583;
Ar=0.215;
%CBo=0;
mc=5;

%Ecuaciones auxiliares

k1=k01*exp(-E1_R/Tr);
k2=k02*exp(-E2_R/Tr);
k3=k03*exp(-E3_R/Tr);

hr=h1*k1*CA+h2*k2*CB+h3*k3*CA^2;

Sys=zeros(4,1);

Sys(1,1) = qr/Vr*(CAo-CA)-k1*CA-k3*CA^2;
Sys(2,1)=-qr/Vr*CB+k1*CA-k2*CB;
Sys(3,1) = qr/Vr*(Tro-Tr)-hr/(rhor*Cpr)+Ar*U*(Tc-Tr)/(Vr*rhor*Cpr);
Sys(4,1)=1/(mc*Cpc)*(Qc+Ar*U*(Tr-Tc));
end

3. SolSistema.m

clear
clc
clf

Css=[0 0 0 0];

xs=fsolve(@SistemaSS,Css);

Sol=ode15s(@Sistema,[0 30],[5.1 0 387.05 386.05551]);

figure(1)
plot(Sol.x,Sol.y(1,:))
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

grid on
y=ylabel('CA [ kmol/m^3 ]');
y.Color='Red';
t=xlabel('t [min]');
t.Color='Red';
title('Concentración de A vs Tiempo')

figure(2)
plot(Sol.x,Sol.y(2,:))
grid on
y=ylabel('CB [ kmol/m^3 ]');
y.Color='Red';
t=xlabel('t [min]');
t.Color='Red';
title('Concentración de B vs Tiempo')

figure(3)
plot(Sol.x,Sol.y(3,:))
grid on
y=ylabel('Tr [ K]');
y.Color='Red';
x=xlabel('t [min]');
x.Color='Red';
title('Temperatura del Reactor vs Tiempo')

figure(4)
plot(Sol.x,Sol.y(4,:))
grid on
y=ylabel('Tc [ K]');
y.Color='Red';
x=xlabel('t [min]');
x.Color='Red';
title('Temperatura de la Chaqueta vs Tiempo')

%%
disp(' Estado Estacionario')
disp('---------------------------------------------------------')
disp(' CAs CBs Tr Tc')
disp(' ')
disp(xs)
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

disp('---------------------------------------------------------')

4. SS.m

clear
clc

%Parámetros

k01=2.145e10;
k03=1.5072e8;
E2_R=9758.3;
h1=-4200;
h3=41850;
Vr=0.01;
Cpr=3.01;
Cpc=2.0;
U=67.2;
CAo=5.1;
Tro=387.05;
k02=2.145e10;
E1_R=9758.3;
E3_R=8560;
h2=11000;
rhor=934.2;
qr=2.365e-3;
Qc=-18.5583;
Ar=0.215;
%CBo=0;
mc=5;

%Ecuaciones auxiliares

Tr=300:500;

k1=k01*exp(-E1_R./Tr);
k2=k02*exp(-E2_R./Tr);
k3=k03*exp(-E3_R./Tr);
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Tc=386.0551;

for i=1:length(Tr)
syms CA CB Qc

CA=vpasolve(qr/Vr*(CAo-CA)-k1(i)*CA-k3(i)*CA^2);
CB=vpasolve(-qr/Vr*CB+k1(i)*CA(2)-k2(i)*CB);

hr(i)=h1*k1(i)*CA(2)+h2*k2(i)*CB+h3*k3(i)*CA(2)^2;

Qc=solve(1/(mc*Cpc)*(Qc+Ar*U*(Tr(i)-Tc)));
QC(i)=double(-Qc);

end

clf
plot(Tr,hr)
hold on
plot(Tr,QC)
legend('Calor Generado','Calor Removido')
grid on
x=xlabel('t [ min ]');
x.Color='Red';
y=ylabel('Qc/Qr [kJ/min]');
y.Color='Red';
title('Temperatura del Reactor (Tr) vs Tiempo')

5. LinealEE.m

clear
clc

syms CA CB Tr Tc
syms CAo Tro mc qr
syms Vr hr rhor Cpr Ar U Cpc Qc E1_R E2_R E3_R h1 h2 h3 k01 k02 k03

k1=k01*exp(-E1_R/Tr);
k2=k02*exp(-E2_R/Tr);
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

k3=k03*exp(-E3_R/Tr);

hr=h1*k1*CA+h2*k2*CB+h3*k3*CA^2;

EqnCA= qr/Vr*(CAo-CA)-k1*CA-k3*CA^2;
EqnCB=-qr/Vr*CB+k1*CA-k2*CB;
EqnTr= qr/Vr*(Tro-Tr)-hr/(rhor*Cpr)+Ar*U*(Tc-Tr)/(Vr*rhor*Cpr);
EqnTc=1/(mc*Cpc)*(Qc+Ar*U*(Tr-Tc));

A=jacobian([EqnCA EqnCB EqnTr EqnTc],[CA CB Tr Tc])


B=jacobian([EqnCA EqnCB EqnTr EqnTc],[CAo Tro mc qr ])

An=double(subs(A,[CA CB Tr Tc qr CAo Tro mc Vr hr rhor Cpr Ar U Cpc Qc E1_R E2_R


E3_R h1 h2 h3 k01 k02 k03],...
[3.0763 0.9244 374.2288 372.9443 2.365e-3 5.1 387.05 5 0.01 6.6706e+03 934.2 3.01
0.215 67.2 2.0 -18.5583 9758.3 9758.3 8560 4200 11000 41850 2.145e10 2.145e10
1.5072e8]))

Bn=double(subs(B,[CA CB Tr Tc qr CAo Tro mc Vr hr rhor Cpr Ar U Cpc Qc E1_R E2_R


E3_R h1 h2 h3 k01 k02 k03],...
[3.0763 0.9244 374.2288 372.9443 2.365e-3 5.1 387.05 5 0.01 6.6706e+03 934.2 3.01
0.215 67.2 2.0 -18.5583 9758.3 9758.3 8560 4200 11000 41850 2.145e10 2.145e10
1.5072e8]))

C=eye(4,4)
D=eye(4,4)

sys=ss(An,Bn,C,D)
Ftrans=tf(sys)

6. SistemaSF2.m

function [sys,x0,str,ts,simStateCompliance] = sfuntmpl(t,x,u,flag)


%SFUNTMPL General MATLAB S-Function Template
% With MATLAB S-functions, you can define you own ordinary differential
% equations (ODEs), discrete system equations, and/or just about
% any type of algorithm to be used within a Simulink block diagram.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

%
% The general form of an MATLAB S-function syntax is:
% [SYS,X0,STR,TS,SIMSTATECOMPLIANCE] = SFUNC(T,X,U,FLAG,P1,...,Pn)
%
% What is returned by SFUNC at a given point in time, T, depends on the
% value of the FLAG, the current state vector, X, and the current
% input vector, U.
%
% FLAG RESULT DESCRIPTION
% ----- ------ --------------------------------------------
% 0 [SIZES,X0,STR,TS] Initialization, return system sizes in SYS,
% initial state in X0, state ordering strings
% in STR, and sample times in TS.
% 1 DX Return continuous state derivatives in SYS.
% 2 DS Update discrete states SYS = X(n+1)
% 3 Y Return outputs in SYS.
% 4 TNEXT Return next time hit for variable step sample
% time in SYS.
% 5 Reserved for future (root finding).
% 9 [] Termination, perform any cleanup SYS=[].
%
%
% The state vectors, X and X0 consists of continuous states followed
% by discrete states.
%
% Optional parameters, P1,...,Pn can be provided to the S-function and
% used during any FLAG operation.
%
% When SFUNC is called with FLAG = 0, the following information
% should be returned:
%
% SYS(1) = Number of continuous states.
% SYS(2) = Number of discrete states.
% SYS(3) = Number of outputs.
% SYS(4) = Number of inputs.
% Any of the first four elements in SYS can be specified
% as -1 indicating that they are dynamically sized. The
% actual length for all other flags will be equal to the
% length of the input, U.
% SYS(5) = Reserved for root finding. Must be zero.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

% SYS(6) = Direct feedthrough flag (1=yes, 0=no). The s-function


% has direct feedthrough if U is used during the FLAG=3
% call. Setting this to 0 is akin to making a promise that
% U will not be used during FLAG=3. If you break the promise
% then unpredictable results will occur.
% SYS(7) = Number of sample times. This is the number of rows in TS.
%
%
% X0 = Initial state conditions or [] if no states.
%
% STR = State ordering strings which is generally specified as [].
%
% TS = An m-by-2 matrix containing the sample time
% (period, offset) information. Where m = number of sample
% times. The ordering of the sample times must be:
%
% TS = [0 0, : Continuous sample time.
% 0 1, : Continuous, but fixed in minor step
% sample time.
% PERIOD OFFSET, : Discrete sample time where
% PERIOD > 0 & OFFSET < PERIOD.
% -2 0]; : Variable step discrete sample time
% where FLAG=4 is used to get time of
% next hit.
%
% There can be more than one sample time providing
% they are ordered such that they are monotonically
% increasing. Only the needed sample times should be
% specified in TS. When specifying more than one
% sample time, you must check for sample hits explicitly by
% seeing if
% abs(round((T-OFFSET)/PERIOD) - (T-OFFSET)/PERIOD)
% is within a specified tolerance, generally 1e-8. This
% tolerance is dependent upon your model's sampling times
% and simulation time.
%
% You can also specify that the sample time of the S-function
% is inherited from the driving block. For functions which
% change during minor steps, this is done by
% specifying SYS(7) = 1 and TS = [-1 0]. For functions which
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

% are held during minor steps, this is done by specifying


% SYS(7) = 1 and TS = [-1 1].
%
% SIMSTATECOMPLIANCE = Specifices how to handle this block when saving and
% restoring the complete simulation state of the
% model. The allowed values are: 'DefaultSimState',
% 'HasNoSimState' or 'DisallowSimState'. If this value
% is not speficified, then the block's compliance with
% simState feature is set to 'UknownSimState'.

% Copyright 1990-2010 The MathWorks, Inc.

%
% The following outlines the general structure of an S-function.
%
switch flag,

%%%%%%%%%%%%%%%%%%
% Initialization %
%%%%%%%%%%%%%%%%%%
case 0,
[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;

%%%%%%%%%%%%%%%
% Derivatives %
%%%%%%%%%%%%%%%
case 1,
sys=mdlDerivatives(t,x,u);

%%%%%%%%%%
% Update %
%%%%%%%%%%
case 2,
sys=mdlUpdate(t,x,u);

%%%%%%%%%%%
% Outputs %
%%%%%%%%%%%
case 3,
sys=mdlOutputs(t,x,u);
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

%%%%%%%%%%%%%%%%%%%%%%%
% GetTimeOfNextVarHit %
%%%%%%%%%%%%%%%%%%%%%%%
case 4,
sys=mdlGetTimeOfNextVarHit(t,x,u);

%%%%%%%%%%%%%
% Terminate %
%%%%%%%%%%%%%
case 9,
sys=mdlTerminate(t,x,u);

%%%%%%%%%%%%%%%%%%%%
% Unexpected flags %
%%%%%%%%%%%%%%%%%%%%
otherwise
DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));

end

% end sfuntmpl

%
%==================================================================
===========
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%==================================================================
===========
%
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes

%
% call simsizes for a sizes structure, fill it in and convert it to a
% sizes array.
%
% Note that in this example, the values are hard coded. This is not a
% recommended practice as the characteristics of the block are typically
% defined by the S-function parameters.
%
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

sizes = simsizes;

sizes.NumContStates = 4;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 4;
sizes.NumInputs = 4;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed

sys = simsizes(sizes);

%
% initialize the initial conditions
%
x0 = [5.1 0 387.05 386.05551];

%
% str is always an empty matrix
%
str = [];

%
% initialize the array of sample times
%
ts = [0 0];

% Specify the block simStateCompliance. The allowed values are:


% 'UnknownSimState', < The default setting; warn and assume DefaultSimState
% 'DefaultSimState', < Same sim state as a built-in block
% 'HasNoSimState', < No sim state
% 'DisallowSimState' < Error out when saving or restoring the model sim state
simStateCompliance = 'UnknownSimState';

% end mdlInitializeSizes

%
%==================================================================
===========
% mdlDerivatives
% Return the derivatives for the continuous states.
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

%==================================================================
===========
%
function sys=mdlDerivatives(t,x,u)

%Entradas
CAo=u(1);
Tro=u(2);
mc=u(3);
%qr=2.365e-3;
qr=u(4);

%Salidas
CA= x(1);
CB=x(2);
Tr=x(3);
Tc=x(4);

%Parámetros

k01=2.145e10;
k03=1.5072e8;
E2_R=9758.3;
h1=-4200;
h3=41850;
Vr=0.01;
Cpr=3.01;
Cpc=2.0;
U=67.2;
k02=2.145e10;
E1_R=9758.3;
E3_R=8560;
h2=11000;
rhor=934.2;;
Qc=-18.5583;
Ar=0.215;
%CBo=0;

%Ecuaciones auxiliares
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

k1=k01*exp(-E1_R/Tr);
k2=k02*exp(-E2_R/Tr);
k3=k03*exp(-E3_R/Tr);

hr=h1*k1*CA+h2*k2*CB+h3*k3*CA^2;

Sys=zeros(4,1);

Sys(1,1) = qr/Vr*(CAo-CA)-k1*CA-k3*CA^2;
Sys(2,1)=-qr/Vr*CB+k1*CA-k2*CB;
Sys(3,1) = qr/Vr*(Tro-Tr)-hr/(rhor*Cpr)+Ar*U*(Tc-Tr)/(Vr*rhor*Cpr);
Sys(4,1)=1/(mc*Cpc)*(Qc+Ar*U*(Tr-Tc));

sys = [Sys];

% end mdlDerivatives

%
%==================================================================
===========
% mdlUpdate
% Handle discrete state updates, sample time hits, and major time step
% requirements.
%==================================================================
===========
%
function sys=mdlUpdate(t,x,u)

sys = [];

% end mdlUpdate

%
%==================================================================
===========
% mdlOutputs
% Return the block outputs.
%==================================================================
===========
%
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

function sys=mdlOutputs(t,x,u)

sys = [x];

% end mdlOutputs

%
%==================================================================
===========
% mdlGetTimeOfNextVarHit
% Return the time of the next hit for this block. Note that the result is
% absolute time. Note that this function is only used when you specify a
% variable discrete-time sample time [-2 0] in the sample time array in
% mdlInitializeSizes.
%==================================================================
===========
%
function sys=mdlGetTimeOfNextVarHit(t,x,u)

sampleTime = 1; % Example, set the next hit to be one second later.


sys = t + sampleTime;

% end mdlGetTimeOfNextVarHit

%
%==================================================================
===========
% mdlTerminate
% Perform any end of simulation tasks.
%==================================================================
===========
%
function sys=mdlTerminate(t,x,u)

sys = [];

% end mdlTerminate
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

5. Modelo Simulink general sistema

Modelo no linealizado

Modelo linealizado
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1

Вам также может понравиться