Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Technológiai folyamatok optimalizálása

Hasonló előadás


Az előadások a következő témára: "Technológiai folyamatok optimalizálása"— Előadás másolata:

1 Technológiai folyamatok optimalizálása
Optimalizálási feladatok megoldása MATLAB segítségével Ráduly Botond Mészáros Sándor

2 Feladat: Adott 3 párhuzamosan működtetett reaktor, egyenként 10, 15 illetve 20 m3 térfogatúak. Mindhárom reaktorban ugyanaz az elsőrendű reakció megy végbe: A  B, a rekcióállandó k A három reaktor összesen Q0 = 90 m3/h térfogatáramú, CA0 koncentrációjú nyersanyaggal van táplálva. Határozzuk meg a reaktorok bemenő térfogatáramát úgy, hogy az A konverziója maximális legyen. Q0, C0 Q1 Q2 Q3 V1 V2 V3 CA,1 CA,2 CA,3 Q0 = Q1 +Q2 +Q3 = 90 V1 = 10 V2 = 15 V3 = 20

3 Megoldás: meghatározzuk a célfüggvényt: Fcél = Q1·CA1 + Q2·CA2 + Q3·CA3 Felírjuk az anyagmérlegeket a reaktorokra: Q1·CA0 = V1 · CA1 · k Q2·CA0 = V2 · CA2 · k Q3·CA0 = V3 · CA3 · k Q1·CA0 / (V1 · k) = CA1 Q2·CA0 /( V2 · k )= CA2 Q3·CA0 /( V3 · k) = CA3 Fcél = (CA0 / k) ·(Q12/V1 + Q22/V2 + Q32/V3) Q1 +Q2 +Q3 = 90

4 2. megvizsgáljuk a célfüggvény és az egyenlőség típusát, meghatározzuk a feladattípust
- a célfüggvény nemlineáris, a feltételek lineáris összefüggések nemlineáris optimalizálás lineáris feltételekkel „fmincon” ellenőrizzük az fmincon függvény paramétereit

5 x = fmincon(Fcel,x0,A,B,C,D,AH,FH, NLF, options)
[ ],[ ] x = fmincon(Fcel,x0,A,B,C,D,AH,FH, NLF, options) célfüggvény nemlineáris feltétel kezdeti megoldás alsó és felső határ: AH ≤ x ≤ FH egyenlőség feltétel: C·x = D egyenlőtlenség feltétel: A·x ≤ B 3. Felírjuk a célfüggvényt: ‘2*x(1)^2 + 4/3*x(2)^2 + x(3)^2’ 4. Meghatározunk egy kezdeti megoldást, pl. x0 = [1 1 1]

6 5. Meghatározunk az egyenlőség típusú feltétel együtthatóit úgy, hogy C·x = D
C = [1 1 1] D = [90] 6. Beírjuk az optimalizálási parancsot: [x,fval,exitflag,output] = fmincon(' ‘2*x(1)^2 + 4/3*x(2)^2 + x(3)^2’, x0, [],[],C, D) a megoldás: x = [ ] fval = 3600 exitflag = 1 output = iterations: 6 funcCount: 35 stepsize: 1 algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'

7 Feladat: Adott egy szakaszos reaktor amely egy szűrőegységhez kapcsolódik. A reakció t napot tart, ezután a reaktor tartalma a szűrőbe töltődik. A keletkező termék mennyisége a t reakcióidőtől függ és x tömegaránnyal jellemezhető (kg termék/kg töltet). A szűrés hatásfoka a termék tömegarányától (vagyis az x értékétől függ). A reaktor működtetési költsége 1000 euro/nap, a termék ára 10 euro/kg. Egy töltet tömege 500 kg. A t és x közötti összefüggést az alábbi kísérleti görbe mutatja: 1 1 x x 2 4 6 100 200 300 t a szűrés költsége (C)

8 Találjuk meg azt a t reakcióidőt amely maximalizálja a profitot
A célfüggvény: profit = Fcél = 1/t∙(10∙500∙x ∙t – C) amely a görbék segítségével kifejezhető az x függvényében. A célfüggvény tehát nem fejezhető ki analitikusan, de kiszámítható az értéke, illetve egy polinomiális regresszió segítségével megközelíthető. a kísérleti görbék adatai: x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 t (h) 1.4 2 2.7 3.5 4.3 5.1 6 Cszűrés (euro) - 230 170 120 80 50 32 25 20 18 felrajzolni a plot(t,x,’*’) paranccsal lehet

9 1. Defineáljuk az x, t és C vektorokat
2. Határozzuk meg a t = f(x) függvény együtthatóit. Az erre szolgáló Matlab parancs: p = polyfit(x,t,2), ahol 2 a regresszióhoz használt polinom rangja megoldás: p = [ ] vagyis t = ·x ·x – ellenőrizzük a megoldás helyességét: f = polyval(p,x) majd rajzoljuk fel a kapott eredményt plot (T,x,'*', f,x,':') legend('kiserleti adatok','modell') xlabel(‘t, [euro/500 kg]') ylabel('konverzio')

10 a másodfokú polinom jól leírja a kísérleti adatokat  t = 3
a másodfokú polinom jól leírja a kísérleti adatokat  t = ·x ·x –

11 3. Határozzuk meg a C = f(x) függvény együtthatóit a már ismertetett módon. Az erre szolgáló Matlab parancs: p = polyfit(x(3:end),C,2) megoldás: p = [ ] vagyis C = ·x ·x ellenőrizzük a megoldás helyességét: f = polyval(p,x) majd rajzoljuk fel a kapott eredményt: plot (C,x(3:end),'*', f,x,':') legend('kiserleti adatok','modell') xlabel('C, [euro/500 kg]') ylabel('konverzio')

12 a másodfokú polinom nem írja jól le a kísérleti adatokat  magasabb fokú polinom szükséges

13 Határozzuk meg a C = f(x) harmadfokú polinom együtthatóit a már ismertetett módon. Az erre szolgáló Matlab parancs: p = polyfit(x(3:end),C,3) megoldás: p = [ ] vagyis C = · x · x · x ellenőrizzük a megoldás helyességét: f = polyval(p,x) majd rajzoljuk fel a kapott eredményt: plot (C,x(3:end),'*', f,x,':') legend('kiserleti adatok','modell') xlabel('C, [euro/500 kg]') ylabel('konverzio')

14 a harmadfokú polinom sem írja jól le a kísérleti adatokat  magasabb fokú polinom szükséges

15 Határozzuk meg a C = f(x) negyedfokú polinom együtthatóit a már ismertetett módon. Az erre szolgáló Matlab parancs: p = polyfit(x(3:end),C,4) megoldás: p = [ ] vagyis C = · x · x · x · x ellenőrizzük a megoldás helyességét: f = polyval(p,x) majd rajzoljuk fel a kapott eredményt: plot (C,x(3:end),'*', f,x,':') legend('kiserleti adatok','modell') xlabel('C, [euro/500 kg]') ylabel('konverzio')

16 a negyedfokú polinom jól leírja a kísérleti adatokat, tehát
C = · x · x · x · x

17 Az azonosított kifejezésekkel irjuk fel a célfüggvényt x függvényeként:
Fcél = 1/t∙(10∙500∙x ∙t - C) = = 1/ ((3.9277·x ·x ) · · (10∙500∙x ∙ (3.9277·x ·x ) - - ( · x · x · x · x )) 5. Írjuk fel a feltételeket: 1 ≥ x ≥ 0.2 6. megvizsgáljuk a célfüggvény és az egyenlőség típusát, meghatározzuk a feladattípust nemlineáris optimalizálás alsó és felső határral „fmincon”

18 oldjuk meg a feladatot Matlab segítségével:
írjuk fel a célfüggvényt: function[f] = Fcel(x) f = -(1/ ( * x^ * x ) * ... (10 * 500 *x * ( * x^ * x ) - ... ( *x^ *x^ *x^ *x ))); az optimalizálási parancs: [x,fval,exitflag,output] = [1], [],[],[],[], [0.2],[1]) x = fval = exitflag = 1 output = iterations: 5 funcCount: 21 stepsize: 1 algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'

19 ellenőrizzük grafikusan a profit változását a konverzió függvényében:

20 az optimális konverzió az adott keresési tartományban tehát x = 0
az optimális konverzió az adott keresési tartományban tehát x = , az ennek megfelelő reakcióidő pedig t = nap (a t = ·x ·x – képlettel számolva).


Letölteni ppt "Technológiai folyamatok optimalizálása"

Hasonló előadás


Google Hirdetések