Inlämningsuppgift Enkel modellering av ett biologiskt reningsverk Mål Inlämningsuppgift Efter att ha genomfört denna uppgift ska du ha lärt dig att bygga enkla dynamiska modeller och att simulera dessa med hjälp av Matlab. Du ska också ha förståelse för hur modeller beskrivna i s k matrisformat översätts till normala differentialekvationer samt provat på att implementera en egen enkel numerisk lösningsalgoritm och diskretisera ett system av kontinuerliga differentialekvationer. Reningsverket Det simulerade reningsverket har följande principiella layout: Q in Ideal sedimentering Aerob Q e +Q w Q r Figur : Det simulerade reningsverket. Verket är byggt för att avskilja COD och att nitrifiera (ingen denitrifikation förekommer). Flödesvägarna för det partikulära materialet (X) beskrivs i Figur. För de lösta komponenterna (S) gäller att S = Sut, eftersom de inte berörs av en ideal sedimentering. Karakterisering av inkommande vatten antas ha genomförts och resultatet anges i Tabell. Anläggningsdata för verket anges i Tabell 2. Den biologiska modellen som beskriver reaktionerna i den aeroba bassängen finns angivna i matrisform i Tabell 3 (du ska enbart använda de gulmarkerade delarna av matrisen). De parametervärden du ska använda anges i Tabell (antag att temperaturen i inkommande vatten är 20 C). Vi antar också att verket är utrustat med automatisk syrereglering som klarar av att hålla en konstant syrekoncentration i den biologiska bassängen oberoende av hur mycket substrat och mikroorganismer som finns i reaktorn. Denna syrekoncentration antas ligga på 2 mg O 2 /l (ekvivalent med 2 mg (-COD)/l i modellens enheter). Detta innebär att du inte behöver beskriva syret med en differentialekvation utan enbart stoppa in värdet 2 mg(-cod)/l på de ställen där modellen kräver detta (d v s i de Monodliknande s k switchfunktioner som ingår i modellen t ex i termen /(K O,H + ).
Inlämningsuppgift Inkommande flöde Q in 20 000 m 3 /dygn Inkommande COD (enbart löst) S S,in 600 mg COD/l Inkommande ammonium S NH,in 30 mg N/l Inkommande nitrat S NO,in mg N/l Inkommande heterotrof biomassa,in 20 mg COD/l Inkommande autotrof biomassa X B,A,in 5 mg COD/l Inkommande syrehalt,in 0 mg (-COD)/l Tabell : Karakterisering av inkommande vatten. Aerob volym V 4000 m 3 Recirkulationsgrad r 50% (av Q in ) Tabell 2: Anläggningsdata Ideal sedimentering För att förenkla modellen i denna inledande hemuppgift antar vi att sedimenteringsprocessen kan beskrivas tillfredsställande med s k ideal sedimentering. Vid ideal sedimentering antar man att sedimenteringsprocessen klarar att producera det förtjockade slam som krävs för att upprätthålla den koncentration i den biologiska bassängen som krävs för en viss slamålder. Slamåldern definieras generellt som: V X θ S = Q e X e + Q w X w där index e betyder effluent (d v s utgående) och w betyder wastage (d v s slamuttag). Naturligtvis måste massbalansen över den tänkta sedimenteringsbassängen vara uppfylld, d v s (Q in + Q r ) X = Q r X r + Q w X w + Q e X e där X r = X w (index r står för return) och X är den totala koncentrationen av partikulärt material i den biologiska reaktorn. Med hjälp av den andra ekvationen kan vi skriva om ekvationen för slamåldern så att V X θ S = (Q in + Q r ) X Q r X r Vi har nu eliminerat beroendet av de utgående koncentrationerna ur ekvationen. Härur kan vi definiera ett värde för den s k förtjockningsfaktorn, γ, (d v s kvoten mellan X r och X) vilken beskriver hur mycket koncentrationen i returslamflödet för alla partikulära komponenter ökar p g a sedimenteringen. Uttrycket för γ ges nedan: γ = X r X = (Q in + Q r V θ S ) Q r 2
Active autotrophic biomass [M(COD)L -3] Particulate products arising from biomass decay [M(COD)L -3] Oxygen (negative COD) [M( COD)L -3] Nitrate and nitrite nitrogen [M(N)L -3] NH4+NH3 nitrogen [M(N)L-3] Styrning av biologisk vattenrening -02/03 Inlämningsuppgift j Component Process i SI 2 SS 3 XI 4 XS 5 XB,H 6 XB,A 7 XP 8 SO 9 SNO 0 SNH SND 2 XND 3 SALK Process Rate, ρj [ML-3T-] Aerobic growth of heterotrophs ixb i XB 4 ˆµ S H K S + S S K O,H + S O 2 Anoxic growth of heterotrophs 2.86 ixb 4 2.86 i XB 4 ˆµ S K O,H H K S + S S K O,H + S O NO η g K NO + S NO 3 4 5 6 7 8 Aerobic growth of autotrophs Decay of heterotrophs Decay of autotrophs Ammonification of soluble organic nitrogen Hydrolysis of entrapped organics Hydrolysis of entrapped organic nitrogen fp fp fp fp 4.57 Y A + Y A i XB Y A ixb fpixp ixb fpixp i XB 4 7Y A 4 ˆµ NH A K NH + S NH K O,A + S O X B,A bhxb,h baxb,a kasndxb,h X k S h K X + ( X S X B,H ) K O,H + S O K +η O,H S NO h K O,H + S O K NO + S NO ρ7(xnd/xs) Observed Conversion Rates [ML-3T-] r i = ν ij ρ j j r i = ν ij ρ j j Stoichiometric param: Heterotrophic yield: YH Autotrophic yield: YA Fraction of biomass yielding particulate products: fp Mass N/Mass COD in biomass: ixb Mass N/Mass COD in products from biomass: ixp Soluble inert organic matter [M(COD)L-3] Readily biodegradable substrate [M(COD)L -3] Particulate inert organic matter [M(COD)L -3] Slowly biodegradable substrate [M(COD)L -3] Active heterotrophic biomass [M(COD)L-3] Soluble biodegradable organic nitrogen [M(N)L -3] Particulate biodegradable organic nitrogen [M(N)L -3] Alkalinity Molar units Kinetic Parameters: Heterotrophic growth and decay: ˆµ H, KS, KO,H, KNO,bH Autotrophic growth and decay: ˆµ A, KNH, KO,A, ba Correction factor for anoxic growth of heterotrophs: ηg Ammonification: ka Hydrolysis: kh, KX Correction factor for anoxic hydrolysis: ηh Tabell 3: Den biologiska modellen i matrisform. Genom att definiera vilken slamålder vi önskar att systemet ska ha kan vi enkelt beräkna värdet på förtjockningsfaktorn som krävs för att uppnå detta. Observera att denna typ av ideal beräkning endast är giltig när systemet befinner sig i steady state men metoden ger trots allt en rimlig approximation av ett sedimenteringsförlopp utan att kräva några sofistikerade modeller. Den ideala sedimenteringsmodellen definierar följaktligen inte hur mycket slam som lämnar system via utgående vatten respektive slamuttag utan ger bara det sammantagna uttaget. Vill man nödvändigtvis ha en uppskattning på Q w är det rimligt att anta att X e = 0 vilket medför att: Q w = V θ S γ, X w = γx Koncentrationerna av de lösta komponenterna passerar igenom sedimenteringsbassängen utan att förändras. Man har alltså i en modell för ideal sedimentering skiljt på partikulärt och löst material. Det partikulära materialet såväl som det 3
Inlämningsuppgift IAWQ model parameters symbol unit 20 C 0 C literature Stoichiometric parameters Heterotrophic yield g cell COD formed (g COD oxidized) - 0.67 0.67 0.38-0.75 Autotrophic yield Y A g cell COD formed (g N oxidized) - 0.24 0.24 0.07-0.28 Fraction of biomass yielding particulate products f P dimensionless 0.08 0.08 Mass N/mass COD in biomass i XB g N (g COD) - in biomass 0.086 0.086 Mass N/mass COD in products from biomass i XP g N (gcod) - in endogenous mass 0.06 0.06 Kinetic parameters Heterotrophic max. specific growth rate ˆµ H day - 6.0 3.0 0.6-3.2 Heterotrophic decay rate b H day - 0.62 0.20 0.05-.6 Half-saturation coefficient (hsc) for heterotrophs K S g COD m -3 20 20 5-225 Oxygen hsc for heterotrophs K O,H g O 2 m -3 0.20 0.20 0.0-0.20 Nitrate hsc for denitrifying heterotrophs K NO g NO 3 -N m -3 0.50 0.50 0.-0.5 Autotrophic max. specific growth rate day - 0.80 0.30 0.2-.0 Autotrophic decay rate b A day - 0.20 0.0 0.05-0.2 Oxygen hsc for autotrophs K O,A g O 2 m -3 0.4 0.4 0.4-2.0 Ammonia hsc for autotrophs K NH g NH 3 -N m -3.0.0 Correction factor for anoxic growth of heterotrophs η g dimensionless 0.8 0.8 0.6-.0 Ammonification rate k a m 3 (g COD day) - 0.08 0.04 Max. specific hydrolysis rate k h g slowly biodeg. COD (g cell COD day) - 3.0.0 Hsc for hydrolysis of slowly biodeg. substrate K X g slowly biodeg. COD (g cell COD) - 0.03 0.0 Correction factor for anoxic hydrolysis ηh dimensionless 0.4 0.4 ˆµ A Tabell 4: Val av parametervärden. lösta kan antingen försvinna ut ur systemet via Q e + Q w eller recirkuleras via Q r. Dock är koncentrationerna av de lösta komponenterna desamma, såväl i den aeroba bassängen som i utgående vatten och recirkulationsflödet. Numerisk algoritm Du ska simulera (d v s integrera framåt i tiden) din modell med hjälp av den enklaste tillgängliga numeriska approximationen - Euler framåtapproximation. Denna innebär att du approximerar en differential med en riktningskofficient beräknad med hjälp av de två senast kända värdena, dvs dx dt = X(kh + h) X(kh) h där h är tidssteget och k är ett heltal. Med hjälp av initialvärdet X(0) kan man sedan integrera sig framåt i tiden. Du ska själv diskretisera modellens differentialekvationer (givna i kontinuerlig form i Tabell 3) enligt principen ovan och utnyttja de erhållna ekvationerna för att implementera din modell i Matlab. I Tabell 5 finner du förslag på lämpliga initialvärden för de olika variablerna i modellen. Enkelt exempel För att visa hur matrisbeskrivningen och Euler approximation fungerar, samt hur termerna som beror av flödestermerna inkluderas, visas hur ekvationen för S S i tanken ser ut i både kontinuerlig och diskret form. ds S dt = Q in V S S,in+ Q r V S S (Q in + Q r ) V S S ˆµ H 4 ( SS K S + S S ) ( K O + )
Inlämningsuppgift S S S NO S NH X B,A 5 mg COD/l 25 mg N/l 3 mg N/l 200 mg COD/l 200 mg COD/l Tabell 5: Lämpliga initialvärden. De första tre termerna i högerledet beskriver koncentrationsförändringen p g a flöde in respektive flöde ut ur tanken. Till detta kommer de biologiska reaktioner som sker i själva bassängen. I Tabell 3 (kolumn 2) kan de reaktioner som berör S S utläsas. I denna uppgift är det bara aeroba förhållanden som modelleras och vi försummar hydrolysprocessen. Därför kommer den enda processen som påverkar koncentrationen av löst organiskt substrat (S S ) vara den på rad (d v s tillväxt av heterotrof biomassa i aerob miljö, vars stökiometriska parameter beskrivs av termen / ). Den sista termen i högerledet i ekvationen ovan blir därför / multiplicerat med det tillhörande uttryck som finns i process rate-kolumnen (rad ). Denna ekvation kan därefter skrivas i diskret form med hjälp av Euler approximationen beskriven på sidan 4, vilket ger med Matlabliknande kod: SS(i+)=SS(i)+h*(Q in/v*ss in+q r/v*ss(i)-(q in+q r)/v*ss(i)... -/YH*myhatH*(SS(i)/(KS+SS(i)))*(SO/(KO+SO))*XBH(i)); Analogt med detta exempel kan de resterande fyra tillståndsekvationerna skrivas. Uppgifter ) Implementera den givna modellen för reningsverket i Matlab i diskret form och testa fram ett lämpligt tidssteg för din numeriska algoritm. Tänk på att försöka skriva koden för modellen på ett generellt sätt så att det blir enkelt att lägga till fler kinetiska reaktioner, flera bassänger och flödesvägar m m. Glöm inte att lägga in kommentarer i koden! 2) Hur stora blir koncentrationerna för de olika komponenterna i den aeroba reaktorn i steady state vid en slamålder på 0.5 dag, dag, 2 dagar respektive 5 dagar? Uppnås fullständig nitrifikation i alla fallen? För att du ska ha möjlighet att verifiera att du har implementerat dina modeller i Matlab på ett riktigt sätt så presenteras i Tabell 6 de korrekta steady state värdena för samtliga tillståndsvariabler för fallet slamålder = 2 dagar. Jämför dina värden och korrigera din modell om värdena inte överensstämmer. 3) Ändra den inkommande S S koncentrationen i ett steg (lämpligtvis en fördubbling), efter det att du uppnått steady state med inkommande vatten definierat enligt Tabell. Hur påverkar detta de andra tillstånden? Gör sedan samma sak med inkommande S NH och kommentera resultaten (du ska bara förändra en variabel i taget, d v s ställ tillbaka S S till det gamla konstanta värdet innan du 5
Inlämningsuppgift aeroba zonen S S X B,A S NO S NH steady state 4.86 mg COD/l 869 mg COD/l 84.50 mg COD/l 2.0 mg (-COD)/l 29.46 mg N/l.54 mg N/l Tabell 6: Steady state värden för slamålder = 2 dagar. gör en stegändring i S NH ). Använd en slamålder på 2 dygn. 4) Hur påverkar ett steg i inkommande flöde de andra tillståndsvariablerna (ställ först tillbaka stegstörningar från uppgift 3)? Vad skiljer i resultaten för S S och S NH och varför skiljer de sig åt? Använd en slamålder på 2 dygn. 5) Teoretiskt bör fullständig nitrifikation vid 20 C uppnås vid en slamålder på ca 5 dygn. Diskutera vad i den implementerade förenklade modellen (jämfört med den kompletta IAWQ AS Model No. i Tabell 3 som påverkar resultatet. Kan du komma på några andra faktorer i vår beskrivning av verket som påverkar resultatet? 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 Matlabgrafer 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 22 november 2002. 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. 0.30 och 2.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. Programmeringstips ) Systemet kommer att bli instabilt om steglängden h sätts för lång. Undvik h större än 0.00. Detta motsvarar ca.5 minuter eftersom alla hastigheter och 6
Inlämningsuppgift flöden har tidsenheten dygn. Det kan tänkas att du behöver minska h ytterligare för vissa simuleringar. 2) Eftersom h inte kan väljas särskilt stort kommer det att ta tämligen lång tid att uppnå steady state vid simuleringarna. För att snabba på simuleringen kan det vara lämpligt att inte spara alla tillstånden för varje tidssteg, ty operationer på långa vektorer (>000 element) tar lång tid i Matlab. Istället kan det vara klokt att antingen välja att en simulering, oavsett hur lång den är, skall spara tillstånden vid ett fixt antal tidpunkter eller så kan man spara värdet på tillstånden vart n:te tidsteg. Oavsett vilken metod ni använder så kan det vara bra att använda sig av funktionen mod (modulus). 3) När ni anser att ni uppnått steady state, så är det lämpligt att spara de då erhållna värdena för tillståndsvariablerna. Om ni använder dessa värden som nya initialtillstånd kommer ni snabbare till steady state nästa gång. Om man använder steady state värdena som initialtillståndsvärden kan man direkt lägga på ett steg och därmed förkorta körningarna avsevärt. 4) Operationer i Matlab går snabbast i matris- och vektor-form. Speciellt for-satser är oerhört tidskrävande på grund av att Matlab inte kompilerar scripts och functions, så dessa bör ersättas av matrisberäknar så långt som det är möjligt. Vektorer underlättar även administrationen av data. I det fall tillståndsvariablerna, S S, S NH m fl, lagras i en vektor skulle S S kunna nås via X() eller via X(t, ) i det fall tillstånden tillsammans med tiden lagras i en matris. 5) Matriser och vektorer bör ha initierats till sin fulla storlek innan de fylls med data. Använd X=zeros(m,n) för att skapa en noll-matris med m rader och n kolumner. 7