Tanks in Series

N-CSTR (Continuously Stirred Tank Reactor) or Tanks in Series model

class rtdpy.ncstr.Ncstr(n, tau, dt, time_end)[source]

Bases: rtdpy.rtd.RTD

Create N CSTR in series (N-CSTR) AKA Tank in Series Residence Time Distribution (RTD) model. [1]

\[E(t) = \frac{1}{\tau}\left(\frac{t}{\tau}\right)^{n-1} \frac{n^n}{\left(n-1\right)!} \text{exp}\left[\frac{-nt}{\tau}\right]\]
Parameters
tauscalar

Mean residence time of all CSTRs. tau>0

nscalar

Number of CSTRs. Can be a real number n>0

dtscalar

Time step for RTD. dt>0

time_endscalar

End time for RTD. time_end>0

References

1

Levenspiel O. (1999) “Chemical Reaction Engineering: Third Edition” John Wiley & Sons, Inc.

Examples

>>> import matplotlib.pyplot as plt
>>> import rtdpy
>>> for n in [1, 2, 10]:
...     a = rtdpy.Ncstr(tau=1, n=n, dt=.01, time_end=3)
...     plt.plot(a.time, a.exitage, label=f"n={n}")
>>> plt.xlabel('Time')
>>> plt.ylabel('Exit Age Function')
>>> plt.legend()
>>> plt.show()
_images/NCstr-1.png
property dt

Time step for RTD

property exitage

Exit age distribution for RTD

property exitage_norm

Normalized Exit Age Distribtion for RTD

frequencyresponse(omegas)
Parameters
omegasndarray

frequencies at which to evaluate magnitude response

Returns
magnitudendarray

frequency magnitude response at omegas

funnelplot(times, disturbances)

Return maximum output signal due to square disturbances.

Uses method from [Garcia] . Also returns meshgrid for times and disturbance inputs for ease of plotting.

Parameters
timesarray_like, size m

Times to determine funnelplot

disturbancesarray_like, size n

Disturbance magnitudes

Returns
x2D meshgrid size (mxn)

times

y2D meshgrid size (mxn)

disturbances

response2D meshgrid size (mxn)

maximum response at (x,y)

References

Garcia

Garcia-Munoz S., Butterbaugh A., Leavesley I., Manley L.F., Slade D., Bermingham S. (2018) A flowhseet model for the development of a continuous process for pharmaceutical tablets: An industrial perspective. “AIChE Journal”, 64(2), 511-525.

integral()

Integral of RTD.

mrt()

Mean residence time of RTD.

property n

Number of CSTRS in series.

output(inputtime, inputsignal)

Convolves input signal with RTD

Parameters
inputtimendarray

Times of input signal, which must have same dt as RTD. Size m

inputsignalndarray

Input signal. Size n

Returns
outputsignalndarrary

Output signal at same dt. Size m + n -1

sigma()

Variance of RTD.

property stepresponse

Step respose of RTD

property stepresponse_norm

Normalized step respose of RTD

property tau

Mean Residence Time of all tanks combined.

property time

Time points for exitage function.

property time_end

Last time point for RTD