Element One Energy – Del 2

Hei, igjen! Det har gått en del uker siden sist, og det er på tide med en ny oppdatering om hvordan det går i praksisperioden.

Forrige gang nevnte jeg såvidt at vi hadde begynt med å sette sammen en modell for en brenselcelle. Målet med modellen er å få et overblikk over hvor mye spenning brenselcellen produserer. I tillegg til dette, så er det også viktig å visualisere hvor i systemet spenning går tapt. Disse resultatene kan da brukes til å sammenligne med empirisk data som blir målt fra prototypen. 

For å i det hele tatt kunne sette sammen en slik modell, så trenger man litt kunnskap om hvordan en slik brenselcelle fungerer. Med et lite spark fra førsteemanuensis Jonathan fra HVL, så fikk vi utdelt to bøker som skulle inneholde nødvendige formler. Etter mange timer med å sette seg inn i det nye stoffet, så følte vi oss klare for å starte på selve modelleringen.

Når man skal modellere et system så forsøker man å finne frem til ligninger som beskriver systemet nøyaktig nok. Det kan være at man må lage disse ligningene selv, men heldigvis har noen gjort jobben før oss. Det betyr ikke at vi bare kan kopiere arbeidet eller bruke andre verktøy, fordi vi ønsker spesielt å se sammenhengene mellom en del parametre i tre dimensjoner. Her kommer vi til planleggingsfasen av prosjektet. Når man lager nye modeller, verktøy og annen programvare så bør man planlegge. Det er viktig med et definert mål og hva skal i det hele tatt prosjektet gjøre. Jeg og Amalie har aldri vært med på å definere slike grenser før, og sett i etterkant så kunne denne delen av prosjektet vært mye bedre. I hvert fall, så gjorde vi det beste vi kunne. Vi satt sammen et lite dokument bestående av hva ville ha ut av modellen (grafer, resultater, osv.), ligninger og hvilke funksjoner vi trengte.

Nå kommer selve moroa, nemlig å implementere ligningene og ideene i et programmeringsspråk. Jeg og Amalie valgte å bruke språket Python basert på at det går fort å skrive og egner seg veldig godt til vitenskapelig bruk. Siden dette er et prosjekt som vi utvikler for noen andre, så er det viktig å ta i bruk noen viktige prinsipper innenfor programutvikling. Det viktigste prinsippet er objektorientert programmering, og kort fortalt er dette at ulike objekter har kun ansvar for sin lille del av programmet. Ved å splitte om funksjonaliteten i modellen til ulike filer, så sørger man for at hver fil gjør bare det den er ment til å gjøre. Eksempler på disse filene er alt fra print til terminalen, hjelpefunksjoner og selve modellen. Selv om dette ikke er et veldig stort prosjekt, så er det viktig med riktig og god håndtering av feilmeldinger. Det kan fort bli slitsomt med mange filer og funksjoner, å finne ut hva og hvor feilen oppsto. Ved å ta hånd om disse med gode feilmeldinger så har vi gjort feilsøkingen veldig mye lettere.

Akkurat nå jobber vi med å tegne grafene og Amalie har i tillegg laget et enkelt brukergrensesnitt, hvis man ikke vil bruke terminalen. Jeg nevnte tidligere at planleggingsfasen burde vært bedre. Grunnen til dette er at vi står nå litt fast på hvordan man putter inn data i modellen, og i etterkant kunne vi gjort dette lettere for oss selv.

Det har vært tungt, men også lærerikt å prøve meg på program- og prosjektutvikling. Vi har ikke mer enn noen dager igjen av praksisperioden, og krysser fingrene for at vi blir ferdig i tide.