Mål Modellering och styrning av ett biologiskt reningsverk Efter att ha genomfört denna uppgift ska du ha lärt dig att bygga mera komplexa dynamiska modeller och att simulera dessa med hjälp av Matlab och dess inbyggda differentialekvationslösare. Vidare skall du ha provat olika sätt att styra syrehalten i de aeroba tankarna. Inledning I denna inlämningsuppgift skall den modell som byggdes i inlämningsuppgift 2 användas och utökas med några nya moduler. För att minska risken för felkodning och även bespara er arbete, skall ni använda en redan färdig reaktormodell som finns att ladda ner på hemsidan. Deluppgift 1 går ut på att undersöka syrekoncentrationens betydelse för den totala kvävereduktion i verket. Deluppgift 2-4 behandlar den nya utökade modellen. Använd i alla uppgifter i total slamålder på 7 dygn, Q r = 0.5Q in och Q intr = 2Q in. Reaktormodell Den givna reaktormodellen asm1mod.m finns att ladda ner på hemsidan. Reaktormodellen används i den modell som beskriver verket och som tillkallas av Matlab-lösaren. För att använda reaktormodellen krävs att man skriver modellen för hela verket på ett speciellt sätt. Reaktormodellen beskriver endast vad som händer i reaktorn, d v s hydrauliska och biokemiska reaktioner. Modellen är skriven så att det går att definiera ett godtyckligt antal inflöden till modellen. Detta kan utnyttjas för inflöde, returslamflöde och internrecirkulation, men kan även utnyttjas för att beskriva andra flöden, t.ex. extern koldosering. Syntax för reaktormodellen: dxdt=asm1mod(x, [xin1 xin2 xin3],[qin1 qin2 qin3], par, V, Kla, SO_sat,flag); där X är tillståndsvektorn, [xin1 xin2 xin3] är koncentrationerna i respektive inflöde [qin1 qin2 qin3] till reaktorn. I par finns de 19 parametervärdena i en speciell ordning. V är reaktorns volym och Kla är lufttillsättning. SO_sat är det aktuella värdet för syremättnad. Flaggan flag används för att aktivera syredynamiken. Om flag>0 är dynamiken aktiverad, om flag=0 är dynamiken inte aktiv. Om syredynamiken inte är aktiv är det viktigt att initialvärdena motsvarar de önskade syrehalterna i respektive reaktor. Nedan följer ett exempel hur modellen för inlämningsuppgift 2 skulle ha sett ut om du använt reaktormodellen asm1mod.m: function dxdt=model2_ideal(t,x); % oxygen dynamics 1
do=0; % do > 0 : oxygen dynamics; do = 0: no dynamics % parameters par(1)=0.67;par(2)=0.24;par(3)=0.08;par(4)=0.086;par(5)=0.06;par(6)=6; par(7)=0.62;par(8)=20;par(9)=0.2;par(10)=0.5;par(11)=0.8;par(12)=0.2; par(13)=0.4;par(14)=1;par(15)=0.8;par(16)=0.08;par(17)=3;par(18)=0.03; par(19)=0.4; % influent concentrations xin(1)=20; xin(2)=125; xin(3)=60; xin(4)=175; xin(5)=20; xin(6)=0; xin(7)=0; xin(8)=1; xin(9)=30; xin(10)=5; xin(11)=5; xin=xin ; % transpose into a column vector % flow rates and volumes qin=20000; qret=qin*0.5; qrec=qin*2; V1=2000; V2=6000; Vtot=V1+V2; % thinkening factor and sludge age - ideal settler SA=7; gamma=ones(11,1); gamma([3:6 11])=(qin+qret-Vtot/SA)/qret * ones(1,5); % particulate states are thickened gamma(7)=0; % DO concentration in return sluge flow = 0. % Kla parameters k1=300; k2=-0.42; %------------------------ TANK 1, ANOXIC ZONE-------------------------------% % DO-controller tank 1 dipart1=0; % not used since there is no aeration in tank 1 % derivatives tank 1 dxdt1=asm1mod(x(1:11), [xin X(12:22).*gamma X(12:22)], [qin qret qrec],par,v1,0,9.5,do); %------------------------ TANK 2, AEROBIC ZONE I ----------------------------% % DO-controller tank 2 ipart2=x(24); K2=1; Ti2=0.1;Soref2=2; e2=(soref2-x(18)); dipart2 = K2/Ti2*e2; u2=k2*e2+ipart2+0.27; if u2 > 1 u2=1; elseif u2 < 0 u2=0; end qair2=u2*7; Kla2=k1*(1-exp(k2*qair2)); So_sat=9.5; % derivatives tank 2 dxdt2=asm1mod(x(12:22),[x(1:11)], [qin+qret+qrec], par, V2, Kla2, 9.5,do); 2
%--------------------- RETURN DERIVATIVES -----------------------------------% % derivatives all tanks dxdt=[dxdt1 dxdt2 dipart1 dipart2] ; Modellen anropas med: [t, y] = ode15s( model2_ideal,[0 100],x0); Notera att initialvektorn har 24 element, d v s 11 för resp. reaktor och två för regulatorerna. Uppgifter 1) Använd modellen som du byggde i inlämningsuppgift 2 (med syrereglering) för att se hur syrehalten i den aeroba tanken påverkar den totala kvävereduktionen i det biologiska steget vid konstanta förhållanden (se tabell 1, inlämningsuppgift 2). Detta kan undersökas genom att börvärdet för syrehalten sätts till 0.5, 1.0,... 4.5, 5.0, simulera systemet och därefter studera hur den totala kvävekoncentrationen (S NO + S NH + S ND ) i den aeroba tanken beror av syrehalten. Försäkra dig om att du har nått stationäritet för varje börvärde på syret. Skriv lämpligen en m-fil som sätter börvärdet, kör simuleringen i förslagsvis 50 dagar samt sparar undan sista värdet för S NO, S NH och S ND. Plotta sedan börvärdet för syrekoncentrationen mot den total kvävekoncentration i aeroba tanken och kommentera resultatet. Vid vilken syrehalt skall man driva verket, om man bara skall minimera den totala halten utgående kväve? Kan du nämna några andra viktiga faktorer som spelar in då man bestämmer lämplig syrehalt i den aeroba reaktorn? 2) Komplettera modellen i inlämningsuppgift 2 så att den aeroba reaktorn delas upp i tre lika stora tankar på vardera 2000 m 3, allt enligt Figur 1. Q in Q intr Ideal sedimentering Anox Q w + Q e Q r Figur 1: Det simulerade reningsverket I övrigt gäller samma förutsättningar som i inlämningsuppgift 2 vad gäller karakterisering av inkommande vatten, parametervärden samt modellbeskrivning för respektive tank. Utelämna syredynamiken och sätt ds O = 0 i alla tankarna och håll 0 mg (-COD)/l i den anoxa och 2 mg 3
Anox reaktor reaktor 1 reaktor 2 S I 20 20 20 S S 7.4 3.9 2.6 X IP 1555 1557 1559 X S 70.7 39.2 22.8 X BH 1446 1459 1461 X BA 52.7 53.3 53.7 S O 0.0 2.0 2.0 S NO 0.8 3.8 6.6 S NH 8.8 5.0 2.5 S ND 0.7 1.0 0.9 X ND 3.8 2.4 1.6 Tabell 1: Steady state värden vid slamålder 7 dagar. (-COD)/l i de aeroba. Du kan nu kontrollera att du har implementerat en riktig modell genom att jämföra dina värden med de värden som anges i Tabell 1. 3) Anta samma resonemang för syreöverföring som i inlämningsuppgift 2 och styr syrehalten i de aeroba tankarna enligt den regleralgoritm som användes i föregående inlämningsuppgift till ett börvärde på 2.0 mg (-COD)/l. Det är därför lämpligt att använda sig av samma numeriska algoritm som i inlämningsuppgift 2, ode15s. Kan man se några skillnader på resultaten om man använder en totalomrörd aerob tank (inlämningsuppgift 2) eller tre mindre totalomrörda tankar? Förutsätt konstanta förhållanden (se tabell 1, inlämningsuppgift 2). Lämpliga offset värden för syreregulatorerna är: 0.27, 0.17 och 0.12. 4) Eftersom reningsverk har en varierande belastning kan det finnas skäl att anta att behovet av syre kommer att variera under dygnet. Vi har tidigare sett att det är framför allt nitrifikationen som kräver syre och därför kan det vara lämpligt att försöka styra syrehalten i den sista aeroba tanken genom att vi låter börvärdet till syreregulatorn variera beroende på den aktuella ammoniumkoncentrationen i tanken. Detta innebär att om nitrifikationen har gått långt i de två första aeroba tankarna (d v s låg S NH koncentrationen i flödet mellan de två sista reaktorerna) kommer behovet av syre att minska i den tredje aeroba tanken och energi kan sparas. Denna typ av reglering brukar kallas kaskadreglering och är ofta enkel att implementera. Utöka modellen med en kaskadreglering för syrehalten i den sista aeroba tanken. I vårt fall kan börvärdet för syrehalten i den tredje aeroba tanken bestämmas som en faktor av skillnaden mellan uppmätt och önskad ammoniumkoncentration: S O,ref = K(S NH α) (1) där K är en förstärkningsfaktor (lämpligt värde = 0.25) och α är önskad ammoniumhalt. Dock är det inte lönt att kräva en lägre ammoniumhalt än 1.0 mg N/l i den sista reaktorn. Vidare kan det vara en bra idé att begränsa 4
syrehalten till minst 0.5 mg (-COD)/l (omrörningen i en verklig reaktor ombesörjs av luftningen) och max 5 mg (-COD)/l (högre syrehalt är knappast ekonomiskt försvarbar). Vilka är fördelarna med denna typ av reglering? Kan du se speciella fördelar i fallet när man har en fördenitrifikationsprocess? Förutsätt konstanta förhållanden (se tabell 1, inlämningsuppgift 2). 5) Använd samma profil för inkommande avloppsvatten som i deluppgift 4, inlämningsuppgift 2 (kör variationen av inkommande S NH och Q in samtidigt) och notera hur syrehalten varierar i den sista aeroba tanken. Kommer en kaskadreglering m.h.a. ammoniumhalten i sista tanken att ge minskade eller ökade energikostnader? Jämför resultaten med och utan kaskadreglering (börvärdet för ammonium konstant lika med 1.0 mg N/l i fallet med kaskadreglering och börvärdet för syre konstant lika med 2.0 mg (-COD)/l i fallet utan kaskadreglering). Redovisning Redovisning av uppgiften kan ske antingen genom e-mail eller traditionell inlämning på papper. Om rapporten lämnas via e-mail (som en s k attached file ) så krävs att den är skriven i Word. Rapporten skall innehålla programutskrifter av era m-filer (kommenterad kod!), lämpliga Matlab-grafer samt beskrivande kommentarer och diskussion av resultaten. Då inlämningsuppgifterna ligger till grund för godkännande på kursen är dessa individuella, vilket innebär att alla kursdeltagare skall lämna in en personlig rapport. Sista inlämningsdatum är fredagen den 31 januari 2003. Rapporter via e-mail skickas till: jon.bolmstedt@iea.lth.se Jon Bolmstedt kommer att finnas tillgänglig för frågor angående uppgiften på torsdagar mellan kl. 10.30 och 12.30 på sitt tjänsterum. Om du är i behov av assistans vid andra tidpunkter går det bra att söka upp Jon (men ingen garanti finns att han är tillgänglig just då). Ännu bättre är att skicka eventuella frågor via e-mail så blir dessa besvarade så fort som möjligt. 5