| 1 | loadString(" | 
|---|
| 2 | model Superheater | 
|---|
| 3 | parameter Integer N = 8 \"Number of finite volumes\"; | 
|---|
| 4 | parameter Real M = 500 \"Superheater wall mass\"; | 
|---|
| 5 | parameter Real c = 500 \"Wall specific heat\"; | 
|---|
| 6 | parameter Real cp = 2000 \"Steam cp\"; | 
|---|
| 7 | parameter Real UA = 1200 \"Total heat conductance external fluid\"; | 
|---|
| 8 |  | 
|---|
| 9 | parameter Real Te_des = 1000 \"Design value of the external fluid temperature\"; | 
|---|
| 10 | parameter Real Ti_des = 800 \"Design value of the inlet fluid temperature\"; | 
|---|
| 11 | parameter Real To_des = 888 \"Design value of the outlet fluid temperature\"; | 
|---|
| 12 | parameter Real wv_des = 1.0 \"Design value of the steam mass flow rate\"; | 
|---|
| 13 |  | 
|---|
| 14 | input Real wv \"Steam mass flow rate\"; | 
|---|
| 15 | input Real Ti \"Steam inlet temperature\"; | 
|---|
| 16 | input Real Te \"External fluid temperature\"; | 
|---|
| 17 | output Real To \"Outlet temperature\"; | 
|---|
| 18 | Real T[N] \"Volume outlet temperature\"; | 
|---|
| 19 | Real Q[N] \"Heat flows entering the volumes\"; | 
|---|
| 20 | equation | 
|---|
| 21 | M*c/N*der(T[1]) = cp*Ti - cp*T[1] + Q[1]; | 
|---|
| 22 | for j in 2:N loop | 
|---|
| 23 | M*c/N*der(T[j]) = wv*cp*T[j-1] - wv*cp*T[j] + Q[j]; | 
|---|
| 24 | end for; | 
|---|
| 25 | for j in 1:N loop | 
|---|
| 26 | Q[j] = UA/N*(Te-T[j]); | 
|---|
| 27 | end for; | 
|---|
| 28 | To = T[N]; | 
|---|
| 29 | initial equation | 
|---|
| 30 | for j in 1:N loop | 
|---|
| 31 | der(T[j]) = 0 \"Steady-state initial conditions\"; | 
|---|
| 32 | end for; | 
|---|
| 33 | end Superheater; | 
|---|
| 34 | "); | 
|---|
| 35 |  | 
|---|
| 36 | loadString(" | 
|---|
| 37 | model TestSuperheater | 
|---|
| 38 | Superheater SH; | 
|---|
| 39 | parameter Real DTi = 1 \"Inlet temperature change\"; | 
|---|
| 40 | parameter Real DTe = 1 \"External temperature change\"; | 
|---|
| 41 | parameter Real Dwv = SH.wv_des*0.02 \"Steam mass flow rate change\"; | 
|---|
| 42 | equation | 
|---|
| 43 | SH.Ti = SH.Ti_des + (if time > 1000 then DTi else 0); | 
|---|
| 44 | SH.Te = SH.Te_des + (if time > 2000 then DTe else 0); | 
|---|
| 45 | SH.wv = SH.wv_des + (if time > 0 then Dwv else 0); | 
|---|
| 46 | end TestSuperheater; | 
|---|
| 47 | "); | 
|---|
| 48 |  | 
|---|
| 49 | simulate(TestSuperheater); | 
|---|
| 50 | getErrorString() | 
|---|
| 51 |  | 
|---|