Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE INGENIERÍA
INTEGRANTES:
BARRANQUILLA, 2019-I
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1
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)
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
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:
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
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
𝑑𝑣
= 0, ρ𝑟 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 , 𝑞𝑟 = 𝑞𝑖 = 𝑞𝑟0
𝑑𝑡
𝑖𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 = 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑑𝑒 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 − 𝑠𝑎𝑙𝑖𝑑𝑎 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 + 𝑟𝑛𝑥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)
𝑑𝑡 𝑉
A B
𝑖𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 = 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑑𝑒 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 − 𝑠𝑎𝑙𝑖𝑑𝑎 𝑑𝑒𝑙 𝑟𝑒𝑎𝑐𝑡𝑜𝑟 − 𝑟𝑛𝑥1 + 𝑟𝑛𝑥2
𝑑(𝐶𝐵 ) 𝑞𝐵
𝑑𝑡
=0− 𝑉 𝐵
𝐶 − (−𝑘1 𝐶𝐴 ) + (−𝑘2 𝐶𝐴 ) (6)
𝑑(𝑇𝑅 ) 𝑞𝑟 ℎ𝑟 𝐴𝑟 𝑈
= (𝑇𝑅0 − 𝑇𝑅 ) − + (T𝐶 − 𝑇𝑅 ) (7)
𝑑𝑡 𝑉 ρ𝑟 C𝑃𝑟 V𝑟 ρ𝑟 C𝑃𝑟
𝑑(𝑇𝑐 ) 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)
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.
qr
Tc
TR
TRO
CA
CAO
CB
CB0
VR
Qc
U
AR
mc
TCO
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)
𝑟
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
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.
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.
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
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
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
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
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
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
𝐶𝐴 𝐶𝐵 𝑇𝑟 𝑇𝑐 𝐶𝐴𝑜 𝑇𝑟𝑜 𝑚𝑐 𝑞𝑟
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:
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
>>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)
𝑇𝑐 −0.6009𝑠 − 0.217
= 4
𝐶𝐴0 𝑠 + 3.188𝑠 + 2.63𝑠 2 + 0.7776𝑠 + 0.07173
3
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.
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.
Se pudieron observar las siguientes respuestas para una señal tipo escalón.
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.
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
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.
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.
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
%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);
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));
C=eye(4,4)
D=eye(4,4)
sys=ss(An,Bn,C,D)
Ftrans=tf(sys)
6. SistemaSF2.m
%
% 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
%
% 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];
% 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)
% 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
Modelo no linealizado
Modelo linealizado
PROYECTO DE CONTROL Y SIMULACIÓN 2019-1