1 name, title of the presentation canonical thermodynamics & modelling tore haug-warberg bjørn...
TRANSCRIPT
1
Name, title of the presentation
Canonical Thermodynamics & Modelling
Tore Haug-WarbergBjørn Tore Løvfall
Olaf Trygve Berglihn
Cybernetica21 June 2006
2
Programme
1. Executive summary (THW) 2. Symbolic differentiation (BTL)3. Thermodynamic algebra (THW)4. Dynamic simulation (OTB)
Name, title of the presentation
3
What is thermodynamic modelling?• Thermodynamic modelling is about physical
state models. In the current context only simple systems shall be considered. Thus, the models assume uniform states (no gradients), and they are insensitive to geometry, to external fields, and to the previous history. In practice f (x) can be G(T, p, n), A(T, V, n) or (T, V, µ ).
Name, title of the presentation
4
When is it important?
• Thermodynamic modelling is important when there is a significant coupling between two or more of the system variables. This includes unit operations such as: Valves, compressors, expanders, reactors and separation units. Specialized units like hydraulic networks or heat exchanger networks are on the side-line of what we shall talk about.
Name, title of the presentation
5
Why bother?
• If done awkwardly, thermodynamic calculations require a lot of man-power and occupy excess CPU-time. One of the most difficult questions to ask is about standard states. As soon as two or more engineers are playing around with different simulators the result is quite often a big mess. Controlling the thermodynamic calculations means better modularity, increased re-usability and reduced maintenance costs.
Name, title of the presentation
6
Where does it fit in?• Good question, and this is why we are here to
listen to your problems. For many people in industry it is tempting to claim that ”the proof of the pudding lies in its eating”. However, we are talking about new technology and new thinking patterns here, and the biggest obstacle is maybe that people will not even taste the pudding because they do not recognize it as proper food.
Name, title of the presentation
7
Thermodynamic formalism
Name, title of the presentation
8
Newton-Raphson
Name, title of the presentation
9
Newton-Lagrange-Euler
Name, title of the presentation
10
Additional constraints
Name, title of the presentation
11
Canonical block structure (reactive flash)
Name, title of the presentation
12
Name, title of the presentation
13
Conclusions
• Canonical representation implies a highly structured equation system.
• Intensive and extensive variables are solved simultanously.
• The updated state is solved for explicitly.• Equilibrium and balance equations are solved
only once (linear functional) while iterating the transport equations many times.
Name, title of the presentation
14
Symbolic differentiation
• Traditional coding requires that all functions derivatives are implemented by hand.
• By collecting the function in a computer graph symbolic operations are possible.
• The derivatives can then be calculated by automatic procedures and exported to e.g. C.
• Higher order (>2) derivatives are feasible.
Name, title of the presentation
15
Declarations
• d1 = Dim.new• t = Variable.new(’T’)• dg = Parameter.new(’deltag’, d1, d1)• nrtl = Model.new(’nrtl’, t, n, r, dg, al)
Name, title of the presentation
16
Modelling• sumn = nrtl.expr(’sumn’, n).sum• x = nrtl.expr(’x’, n,sumn[nil]){|q,w| q/w}
etc. (5 more lines)
• dgex = nrtl.expr(’DeltaGex’,r[nil,nil],t[nil,nil],
x[nil,d1],x[d1,nil],
tmp3){|q,w,e,y,u| e*y*u*q*w}.sum
Name, title of the presentation
17
Ruby vs Matlab
• tmp1 = nrtl.expr(’tmp1’,x[nil,d1],
expG,x[d1,nil]){|q,w,e| q + w*e}
The same code written in MATLAB is:
• tmp1 = repmat(x,1,3) + expg.*repmat(x’,3,1);
Name, title of the presentation
18
• [x11, x21][nil,d1],
[[G11, G12], [G21, G22]],
[x12, x22][d1,nil]
• [x11, x21][d1], [G11, G12], [x12][nil]
[x11, x21][d1], [G21, G22], [x22][nil]
• [[ (x11, G11, x12), (x21, G12, x12)],
[ (x11, G21, x22), (x21, G22, x22)]]
Name, title of the presentation
19
Instantiation• d1.init(3)• r.init([8.314])
• dg.init([[0,-105.43,285.39],
[-36.852,0,-2.3302],
[754.56,11.362,0]])
• al.init([[0, 0.2, 0.2],[0.2, 0, 0.2],[0.2, 0.2, 0]])
Name, title of the presentation
20
API• Require ´rbct´
• c,d = SRKmodule::init([0,0,1])
• SRKmodule::set(d,SRKmodule::N,[4.3])• SRKmodule::set(d,SRKmodule::T,[298.15])• SRKmodule::set(d,SRKmodule::V,[5.0e-4])
• SRKmodule::srk(c,d)
Name, title of the presentation
21
Name, title of the presentation
22
Name, title of the presentation
23
Name, title of the presentation
24
Name, title of the presentation
25
Thermodynamic frameworks
• Thermodynamic process models consist of several sub-models (heat capacity, ideal gas, equation of state, etc.).
• Different frameworks are needed for metallurgy, oil & gas, polymers, etc.
• It would be great to represent all frameworks into one generic structure rather than programming several chains of explicit function calls.
Name, title of the presentation
26
Text book example
Name, title of the presentation
27
Ruby interface
n = [’nitrogen’,’methane’,’ethane’,
’propane’,’n-butane’]
A = Surface * Helmholtz * StandardState * [
MuTcp.extend(:poly3) *
MuThs.fun(:h0) + MuThs.extend(:s0).mix(n)] +
EquationOfState * [
ModTVNideal.extend(:idealgas).mix(n) ] +
EquationOfState * [ ModTVN.extend(:srk).mix(n) ]
Name, title of the presentation
28
Conclusions
• Thermodynamic frameworks can be captured in computer graphs using simple algebra.
• The graph acts as a wrapper and exports the entire model framework into C.
• Symbolic differentiation (gradients) is available to arbitrary order.
• Automatic documentation eliminates a common source of error.
Name, title of the presentation
29
Dynamic simulation using YASIM
• One-step solver with steplength control. Newton-Lagrange-Euler formulation.
• Thermodynamic state-estimator• Modularized, flexible interface.• Aggregation of simple units into complex units.• Export to simplified/linearlized models in Taylor-
expansion manifold for process control analysis.• Plug-flow and transport delay
Name, title of the presentation
30
Canonical representation
• A full thermodynamic problem is always stated.• Solve for both intensive and extensive variables.• Additional constraints are implemented as lambda
functions:• Analytical inverse is possible for the thermo-
dynamic coefficient matrix (at fixed topology).
Name, title of the presentation
31
Dynamic 2-phase flash
Name, title of the presentation
32
Name, title of the presentation
33
Simulation factory
• Node factory.• Thermo surface import.• Thermo model propagator (graph coloring
algorithm).• Species propagator (graph coloring algorithm).• Node aggregator. Injects flowsheet constitutive
equations (flow relations) and handles DOF-assignment.
Name, title of the presentation
34
Name, title of the presentation
35
Executive conclusions
Name, title of the presentation
• YASIM ≠ ASPEN (simulation vs design)• DASIM = YASIM + PFR + CSTR
36
High priority development
Name, title of the presentation
• Transport delay (PFR)• Dynamic reactive flash (multiphase reactor)• Stirred tank (CSTR)• Electrolyte handling• ATLAS-binding in Ruby• Simulation API • Automatic documentation