29.07.2013 Views

AALBORG UNIVERSITET - DupontKoustrup.dk

AALBORG UNIVERSITET - DupontKoustrup.dk

AALBORG UNIVERSITET - DupontKoustrup.dk

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Titelblad<br />

<strong>AALBORG</strong> <strong>UNIVERSITET</strong><br />

Den Teknisk-Naturvidenskabelige Basisuddannelse<br />

Titel: Automatisk radiatorstyring<br />

Tema: Modellernes virkelighed<br />

Undertema: Modeller for dynamiske systemer<br />

Projektperiode: P2<br />

Storgruppe: 9933<br />

Projektgruppe: 220<br />

Projektgruppens deltagere:<br />

__________________<br />

Christian Lodberg<br />

__________________<br />

Lars Alminde<br />

__________________<br />

Morten Bisgaard<br />

__________________<br />

Per Thoft Kærsgaard<br />

__________________<br />

Toke Koustrup<br />

__________________<br />

Tor Viscor<br />

Vejledere:<br />

Lars Peter Jensen<br />

Søren Hansen<br />

Oplagstal: 10<br />

Rapport sideantal: 100<br />

Bilag: 7<br />

Afsluttet: 23. maj 2000<br />

Synopsis.<br />

Vi har i dette projekt valgt at arbejde med<br />

automatisk radiatorsyring. Først analyseres<br />

baggrunden for en sådan styring, hvorefter<br />

der på baggrund af denne analyse benyttes<br />

matematisk modellering til opstilling af en<br />

model. Som led i opstillingen af den<br />

matematiske model benyttedes test og<br />

forsøgsresultater omkring en fysik model.<br />

Den matematisk model blev brugt til<br />

opstilling af en række regulerings algoritmer,<br />

der implementeredes i hardwaren. Dvs. at vi<br />

har skabt et embedded system, hvor vi har<br />

realiseren softwareløsningen i en<br />

hardwareløsning.<br />

Desuden anvendes seriel kommunikation<br />

mellem en PC og hardwaren. Sluttelig testes<br />

løsningen og der laves en teknologi<br />

vurdering, som anvendes med udgangspunkt<br />

i samfundet.<br />

I


I Forord<br />

Forord & Læsevejledning<br />

Vi er en gruppe på 6 personer, der har valgt at arbejde med automatisk radiatorstyring. Vi har valgt<br />

projekt på baggrund af, at vi har set udfordringer og muligheder for udvikling inden for hardware<br />

og software til løsning af problemstillingen.<br />

II Læsevejledning<br />

Kilder er markeret med firkantede klammer, f.eks. [Haugen]. Der vil af klammerne kun fremgå<br />

efternavnet eller en unik betegnelse. Resten af oplysningerne kan findes i litteraturlisten. Figurer har<br />

et unikt nummer. F.eks. figur 5.1. Alle figurer består af kapitlets nummer, efterfulgt af et<br />

fortløbende nummer, startende forfra ved hver kapitelstart. Formler er angivet i parenteser efter<br />

kapitel efterfulgt af et nummer. F.eks. vil den 3. formel i kapitel 2 være angivet (2.3).<br />

Fodnoter er angivet med tal 1 skrevet med hævet skrift og henviser til en note nederst på siden.<br />

Målgruppen er studerende på vores eget niveau og folk med interesse for hardware og software.<br />

Vi er opmærksomme på, at kilder fra internettet jævnligt opdateres og flyttes, hvorfor de anvendte<br />

kilder ligger på den vedlagte diskette i mappen "kilder". Når der henvises til integrerede<br />

komponenter benyttes disses serienumre. For yderligere information omkring disse komponenter<br />

henvises der til disses datablade.<br />

II


III Rapport struktur<br />

Vi vælger at opdele rapporten i 3 hoveddele:<br />

− Analysedel<br />

− Løsningsdel<br />

− Vurderingsdel.<br />

Indholdsfortegnelse<br />

I analysedelen gennemføres først Problemanalysen for at undersøge om der er et marked for en<br />

automatisk radiatorstyring, hvorefter projektet afgrænses til en løsning rettet imod en testmodel og<br />

der opstilles krav til løsningsdelen. Derefter analyseres denne model i Modellering for at skabe<br />

indblik i hvorledes system opfører sig og der opstilles en matematisk model til at beskrive denne<br />

opførsel.<br />

I løsningsdelen benyttes den matematiske model i Regulering som baggrund for en konstruktion<br />

af en reguleringsalgoritme. Denne algoritme opstiller nogle krav til hardwaren der derefter<br />

opbygges og beskrives i afsnittet Hardware. Så kan den serielle kommunikation opbygges og skaber<br />

derved en kommunikationsvej for hardwaren udadtil, hvilket bliver beskrevet i Seriel<br />

kommunikation. Efter at denne kommunikation er opbygget kan den softwaren der skal ligge i<br />

hardwaren fremstilles på baggrund af de forrige afsnit i løsningsdelen og beskrives i MCUsoftware.<br />

Endelig kan softwaren til PC'en udvikles som et interface således at det bliver muligt at<br />

påvirke reguleringen, hvilket gøres i afsnittet PC-software.<br />

I vurderingsdelen testes den samlede løsning og der konkluderes om hvorvidt løsningen opfylder<br />

kravene opstillet i analysedelen. Derefter vurderes den behandlede teknologi i forhold til<br />

forbrugeren og samfundet i Teknologi Vurdering og endelig konkluderes på baggrund af test og<br />

teknologivurdering over den samlede rapport.<br />

For at skabe overblik over rapportens opbygning opbygges et strukturdiagram, se nedenstående fig<br />

A.<br />

Problem-<br />

analyse<br />

Rapport<br />

Analyse Løsning Vurdering<br />

Model-<br />

lering<br />

Regule-<br />

ring<br />

Seriel-<br />

kommunikation<br />

Hardware Software<br />

MCU PC<br />

Figur A - Strukturdiagram over rapporten.<br />

Test<br />

Konklusion<br />

Teknologi-<br />

vurdering<br />

Gennem rapporten forefindes strukturdiagrammet som i formindsket udgave i sidehovedet således<br />

at læseren kan se i hvilken del af rapporten han befinder sig.<br />

III


Indholdsfortegnelse<br />

Indholdsfortegnelse<br />

Indledning:<br />

1.0 Indledning 1<br />

2.0 Metodevalg 2<br />

Analyse:<br />

2.0 Problemanalyse 3<br />

3.0 Modellering 22<br />

Løsning:<br />

4.0 Regulering 32<br />

5.0 Hardware 46<br />

6.0 Seriel Kommunikation 54<br />

7.0 MCU-Software 66<br />

8.0 PC-Software 75<br />

Vurdering:<br />

9.0 Test af løsning 78<br />

10.0 Teknisk Delkonklusion 11<br />

11.0 Teknologi vurdering 12<br />

12.0 Konklusion 13<br />

Litteraturliste:<br />

13.0 Litteraturliste 14<br />

Bilag:<br />

14.0 Bilag 1 (Laplace) 15<br />

15.0 Bilag 2 (Fysmod) 16<br />

16.0<br />

Appendiks:<br />

17.0 Appendiks 1 16<br />

IV


Indledning<br />

Det initierende problem for dette projekt er:<br />

Indledning<br />

”Hvorfor er det relevant at styre radiatorer”<br />

Det initierende problem er udsprunget fra en forestilling om, at der spildes energi ved udluftning,<br />

fordi folk ofte ikke husker at slukke for radiatoren mens de lufter ud. Man kunne forestille sig, at<br />

dette kunne overvindes ved en ”intelligent” radiator, som kan afgøre hvorvidt vinduet er åbent eller<br />

ej, og på baggrund deraf beslutte sig for, om det kan betale sig at varme op eller ej. Man kan<br />

endvidere forestille sig, at det er muligt at udbygge styringen med f.eks. natsænkning.<br />

Det er dette problem, som danner baggrund for vores projekt, hvor vi vil fokusere på en realisering<br />

af en styringsmekanisme til radiatorer i private hjem.<br />

Side 1 af 113


1.0 Metodevalg<br />

Metodebeskrivelse<br />

Vi vil i dette kapitel beskrive og vurdere de forskellige metoder, som bruges under hver af de tre<br />

forskellige faser af projektarbejdet.<br />

Metoder i analysedelen<br />

I analysedelen, benytter vi i problemanalysen os af en proaktiv teknologianalyse. Dvs. en analyse<br />

af de omgivelser, der kunne blive berørt af, eller der kunne berøre, et givent produkt. Dette giver en<br />

ide om hvorvidt det overhovedet kan betale sig at fortsætte med udviklingen af det givne produkt.<br />

Dette gør vi ud fra viden tilegnet via skrevet tekst i form af bøger og materiale publiceret på<br />

internettet.<br />

Denne type analyse sætter os istand til at vurdere produktet i forhold til et marked, og den<br />

forholder sig herfor til mulighederne i dette marked og er altså ikke en objektiv analyse af produktet<br />

af dets muligheder. Den sætter os ikke istand til decideret at analysere, hvilke styrker og svagheder<br />

der er knytter sig til produktet.<br />

Derudover benytter vi os i modelleringskapitlet af matematisk modellering. Dette er en metode til<br />

at finde en matematisk beskrivelse af dynamiske systemers opførelse under forskellige forhold.<br />

Dette bruges blandt andet til at kunne simulere disse systemers opførelse, samt senere til udvikling<br />

af reguleringssystemer for disses fysiske processer. Metoderne for bearbejdelse af dynamiske<br />

systemer er beskrevet i bogen ”Modelering av dynamiske systemer” [Haugen].<br />

Det er klart at matematisk modellering ikke kan beskrive virkeligheden nøjagtigt, men i stedet<br />

giver mulighed for at give en tilnærmelse til virkeligheden beskrevet ved matematiske udtryk.<br />

Vi anvender fysiske forsøg til verificering vore teorier og modeller, samt til at få indsigt i en række<br />

sammenhænge, der kan bestemmes eksperimentelt. Fysiske forsøg vil altid være idealiserede idet<br />

der kun udvælges specifikke måleparametre. Derudover påvirkes forsøg altid når der måles på<br />

disse.<br />

Metoder til softwareudvikling<br />

Under løsningsdelen benytter vi en meget anvendt fremgangsmåde til problemløsning i udvikling<br />

af software. Metoden benyttes ligeledes indirekte ved udviklingen af hardwaren. Metoden er bl.a.<br />

beskrevet i bogen ”Practical Object Oriented Development in C++ and Java” af Cay s. Horstman<br />

[Horstman]. Denne metode inddeler udviklingsarbejdet i følgende faser:<br />

- Analyse<br />

- Design<br />

- Implementation<br />

- Test<br />

I analysefasen anerkendes problemet, hvorefter det kan analyseres. Denne analyse har til formål at<br />

finde en overordnet struktur i problemet og finde ud af hvilke moduler det består af. Derefter<br />

analyseres disse underproblemer for at finde frem til matematiske relationer og algoritmer, der kan<br />

benyttes i løsningen af problemerne. Under analysefasen benyttes der ofte top-down diagrammer,<br />

der viser hvilke delproblemer det oprindelige problem kan opdeles i.<br />

I designfasen strukturers de, i analysefasen, fundne algoritmer til en helhed. Det skal bestemmes<br />

hvordan de moduler og undermoduler, som blev beskrevet i analysen, skal sættes sammen, dvs.<br />

Side 2 af 113


Metodebeskrivelse<br />

dataflow på modulniveau, og det samme skal ske for de enkelte delelementer. Herefter kigges der<br />

nærmere på de væsentligste programmeringsproblemer, som beskrives i flere detaljer og evt. skrives<br />

som pseudokode for at anskueliggøre løsningen. Pseudokode er en forenkling af<br />

programmeringssprog således, at det giver mulighed for at udvikle programkode uden af skulle<br />

tænke på det specifikke programmeringssprogs detaljer, og det er herfor en god platform til brug i<br />

implementationsfasen. I designfasen benyttes der flowcharts der viser hvorledes selve programmets<br />

forløb er.<br />

I implementationsfasen oversættes pseudokoden fra designfasen til det valgte<br />

programmeringssprog. Der beskrives hvilke vanskeligheder der evt. er opstået under<br />

implementeringen, og hvilke afvigelser og tilføjelser fra designfasen der evt. har vist sig<br />

nødvendige.<br />

I testfasen vil det færdige program vha. en driver og data fra virkeligheden blive testet for at<br />

undersøge om det fungerer korrekt. Endvidere vil de afvigelser, der eventuelt måtte dukke op, blive<br />

søgt forklaret. Der benyttes to forskellige typer test i rapporten [Koffman].:<br />

- Bottom-up test<br />

- Top-down test<br />

Bottom-up test fungerer ved, at de enkelte undermoduler implementeres i en driver, som forsyner<br />

undermodulet med data hvorved det bliver muligt at kontrollere om undermodulet fungerer efter<br />

hensigten. Denne type test benyttes løbene under implementationen.<br />

Top-down testen fungerer ved, at hovedprogrammet først testes hvorefter de enkelte undermoduler<br />

indsættes løbende. Denne type test bruges typisk ved samlingen af de forskellige softwaredele til en<br />

enhed.<br />

For at implementere disse tests, bruges delvis fysiske tests og delvis computersimulering, som<br />

agerer driver for de forskellige dele.<br />

Som programmeringssprog har vi valgt henholdsvis C++ til udvikling af software til PC og C til<br />

software på microcontrolleren. Dette er gjort dels fordi at C/C++ er fleksible sprog, som genererer<br />

effektiv programkode. Derudover er det en fordel at arbejde med beslægtede sprog på de to<br />

forskellige platforme, da dele af programkoden kan bruges på begge platforme uden et stort<br />

konverteringsarbejde.<br />

Metoder i vurderingsdelen<br />

Ligesom i analysedelen, bruges også under vurderingsdelen fysiske forsøg. Her dog som et<br />

testredskab til test af det færdige produkt.<br />

Under udarbejdelsen af vores teknologivurdering, benytter vi os af SWOT-analysen som er en<br />

analysetype, som søger at analysere et givent produkts styrker, svagheder, muligheder og trusler i<br />

forhold til omgivelserne. SWOT-analysen er beskrevet i ”Strategi og planlægning som læreprocess”<br />

af Lene Sørensen og Victor Vidal [Sørensen&Vidal].<br />

Side 3 af 113


2.0 Problemanalyse<br />

Problemanalyse<br />

Da vi i dette projekt vil arbejde med radiatorstyring, vil vi i problemanalysen undersøge og<br />

vurdere hvorvidt der er basis for at udvikle og producere et ”intelligent” radiatorstyringsprodukt.<br />

Dette vil ske gennem en proaktiv problemanalyse som vurderer hvor stort markedspotentialet for<br />

dette produkt er.<br />

Vi vil starte med at kigge på de tekniske systemer for at se på hvordan opvarmningen af et hus<br />

med radiator foregår. Dette vil være nødvendigt for at forstå, hvorvidt en regulator er nødvendig og<br />

i så fald hvilke opgaver den bedst vil kunne løse. Endvidere vil vi diskutere produktets<br />

markedspotentiale for forskellige opvarmningssystemer.<br />

Vi vil derefter kigge på den internationale og nationale energipolitik, da denne i det længere løb vil<br />

være medbestemmende for evt. love- og regelændringer, som i fremtiden vil påvirke det danske<br />

varmeforsyningssystem.<br />

Herefter vil vi beskæftige os med indeklimaproblemer affødt af forkert ventilation, og vi vil kigge<br />

på de love og reglementer som er normsættende for indeklima. Herunder vil vi diskutere behovet<br />

for udluftning.<br />

I forbindelse med styring af radiatoren vil vi kigge på begrebet embedded technology, som ofte<br />

sættes i forbindelse med ”intelligent” styring, hvorfor det kunne være relevant i forbindelse med en<br />

implementering af en radiatorstyring.<br />

De første tre afsnit bygger videre på hinandens resultater, mens afsnittet om embedded technology<br />

kan læses for sig. Til slut i problemanalysen vil vi samle vore konklusioner og på den baggrund<br />

lave problemformulering med projektafgrænsning og kravspecifikationer.<br />

2.1 Teknisk System<br />

Der findes i dag mange forskellige alternativer til opvarmning af boliger. I det følgende vil vi<br />

fremdrage forskellige muligheder og derefter give en nærmere beskrivelse af den, for os, mest<br />

relevante løsning. Vi ønsker dermed at undersøge, hvorfor radiatorer behøver styring. Endvidere vil<br />

vi beskrive og vurdere forskellige varmecirkulationssystemer og derpå konkludere hvilke systemer,<br />

der vil være mest relevant i forbindelse med automatisk radiatorstyring.<br />

2.1.1 Forsyningskilder<br />

En forsyningsmulighed for den private forbruger er elvarme, som giver god mulighed for præcis<br />

regulering af opvarmningen. I dag benyttes elvarme stort set kun i f.eks. sommerhuse hvor<br />

mulighederne for andre forsyningskilder er begrænsede enten pga. placering eller fordi<br />

anskaffelsesprisen er for stor i forhold til forbruget.<br />

Et mere udbredt alternativ er private brændselskedler, der forsyner enkelte husstande eller<br />

boligblokke. Denne løsning er mere energiøkonomisk end elopvarmning, men lider under en relativ<br />

høj anskaffelses pris og mulige problemer med brændselsforsyningen.<br />

En tredje mulighed er forsyning fra et fjernvarmesystem, hvilket vil sige, at varmen bliver<br />

produceret på et centralt sted og derefter sendt ud til forbrugerne i form af varmt vand.<br />

Fjernvarme har en anskaffelsespris der svarer nogenlunde til anskaffelsesprisen på private<br />

brændselskedler, men denne bliver ved fjernvarme reduceret meget, og i nogle tilfælde helt, af<br />

tilskud fra staten og fjernvarmeværket selv. Et eksempel på dette er f.eks. Terndrup<br />

Fjernvarmeværk, der ved at give gratis tilslutning har opnået en næsten total tilslutning i området.<br />

Side 4 af 113


Problemanalyse<br />

På landsbasis bliver fjernvarme i dag benyttet af over 50 % af Danmarks husstande [Rambøll] og<br />

tilslutningen er stadig stigende.<br />

2.1.2 Fjernvarmesystemet<br />

Fjernvarmesystemet fungerer ved at samle varmeproduktion på et centralt sted og derefter<br />

distribuere varmen ud til forbrugerne som varmt vand gennem et rørnet. En af fordelene ved at<br />

samle varmeproduktionen på et sted, er muligheden for at benytte andre opvarmningskilder, end<br />

ville være muligt ved lokal opvarmning. En af disse muligheder er bl.a. udnyttelsen af spildvarme<br />

fra affaldsafbrænding eller røggas afkøling i industrien. En anden mulighed er at kombinere el- og<br />

varmeproduktion på et kraftvarmeværk, hvor overskudsvarmen fra elproduktionen benyttes til<br />

varme. På et traditionelt kraftvarmeværk overgår store dele af energien til kølevand som blot går til<br />

spilde, men på et kraftvarmeværk benyttes der fjernvarmevand som kølevand, og der opnås dermed<br />

en meget større udnyttelse af energien [Christensen].<br />

Selvom et fjernvarmeværk benytter alternative opvarmningsmetoder så er en brændselskedel til<br />

konventionelle brændsler som f.eks. olie eller gas stadig nødvendig for ethvert fjernvarmeanlæg.<br />

Dette skyldes, at der stilles høje krav, både fra staten og forbrugerne, til fjernvarmeværkernes<br />

forsyningssikkerhed. Hvis f.eks. vinteren er meget streng, vil det resultere i et øget varmeforbrug,<br />

mens der er mindre spildvarme fra industrien. Dvs. at efterspørgslen stiger, mens udbuddet falder<br />

og fjernvarmeværket vil så kunne opleve problemer med at følge med efterspørgslen, og den<br />

konventionelle brændselskedel tages i brug.<br />

En ulempe ved fjernvarme er det effekttab, der er i rørnettet, men på trods af dette tab, er fordelene<br />

større end ulemperne så længe forbrugerne ikke er for spredte rent geografisk. Dette gælder også<br />

hvis fjernvarmeværket udelukkende bruger f.eks. oliekedel og derfor ikke har de økonomiske<br />

fordele ved udnyttelse af spildvarme fra f.eks. affaldsforbrænding.<br />

For at minimere varmetabet i ledningsnettet bestræber fjernvarmeværkerne sig på at holde en lav<br />

fremløbstemperatur, dvs. temperaturen på vandet når det forlader værket, og ligeledes om af få<br />

afkølet vandet mest muligt for at få en lav returløbstemperatur - altså en generel reduktion af<br />

temperaturniveauet i ledningsnettet. Dette gøres udfra betragtningerne om at varmeafgivning til<br />

omgivelserne sker lineært, dvs. at des større differencen mellem fjernvarmerørene og jorden er, des<br />

mere varmeafgivning finder der sted. For at sænke fremløbstemperaturen stilles der krav til<br />

forbrugerens evne til at udnytte varmen fra fjernvarmevandet, dvs. at der skal uddrives den samme<br />

varmemængde fra vand med lavere temperatur.<br />

En sænkning af returløbstemperaturen i forhold til fremløbstemperaturen kræver, at forbrugeren<br />

bliver bedre til at afkøle vandet. Denne forbedrede afkøling giver ligeledes den fordel, at<br />

varmeværket skal pumpe mindre vand rundt i systemet, og sparer derfor strøm til<br />

cirkulationspumperne.<br />

2.1.3 Afregningsmetoder<br />

Der er stor forskel på forskellige varmeværkers afregningsmetoder. Den mest almindelige i dag er<br />

afregning efter jouleforbrug, mens der stadig nogle steder, som f.eks. i Aalborg, afregnes efter m 3 -<br />

forbrug. Dette giver det problem, at man som forbruger sidst på fjernvarmenettet skal bruge mere<br />

vand end først på nettet for at opnå samme opvarmning, idet vandet bliver afkølet efterhånden som<br />

det kommer frem i nettet. Nogle værker har forsøgt sig med en kombination hvor forbrugere først<br />

på nettet skulle betale efter m 3 -forbrug, mens forbrugere senere skulle afregne efter jouleforbrug,<br />

Side 5 af 113


Problemanalyse<br />

men dette system har vist sig at være problematisk idet forholdsregningen mellem de to metoder er<br />

besværlig og svær at gøre retfærdig.<br />

Afregning efter jouleforbrug er en mere ligefrem og retfærdig metode, idet forbrugerne betaler<br />

præcist for den forbrugte energi. Metoden har dog den svaghed, at den ikke giver forbrugeren<br />

enticament til at spare på vandmængden på samme måde som m 3 -afregning og giver derfor jvf.<br />

2.2.2 fjernvarmeværket et energitab. Dette søger nogle værker at hindre ved at lægge en økonomisk<br />

straf på forbrugerne, der har et for højt vandforbrug. Afregningsmetoden kan også afhænge af<br />

hvilken installation den enkelte forbruger har.<br />

Endelig benytter de fleste fjernvarmeværker sig af faste afgifter der ofte afhænger af størrelsen på<br />

forbrugerens bolig enten regnet i m 2 eller m 3 . De faste afgifter giver det problem, at det ikke kan<br />

betale sig økonomisk for forbrugeren f.eks. at få installeret solfangere som et supplement til<br />

varmeforsyningen og dermed benytte mere miljørigtig energi.<br />

2.1.4 Intern varmesystem<br />

Når fjernvarmevandet er nået til forbrugerens<br />

bolig findes der flere forskellige alternativer til at<br />

udnytte det som varmekilde. Der skelnes i denne<br />

forbindelse mellem direkte kobling (figur 2.1)<br />

hvor fjernvarmevandet løber ind i boligen,<br />

igennem radiatorerne og ud igen uden mellemled,<br />

og indirekte kobling (figur 2.2) hvor boligen er<br />

forsynet med privat cirkulationssystem med<br />

cirkulationspumpe og hvor varmen bliver overført<br />

gennem en varmeveksler. Fælles for de forskellige<br />

systemer er, at overførselen af varme til<br />

brugsvandet, dvs. vandet i vandhanerne, oftest<br />

sker gennem en varmeveksler. Brugsvandet har<br />

dog ingen praktisk betydning for selve<br />

opvarmning- og radiatorsystemet, og vil derfor<br />

ikke blive beskrevet yderligere.<br />

Direkte forbindelse er den metode, hvor der<br />

sker mindst energitab, idet der ingen<br />

mellemled er involveret, og det er derfor den<br />

metode der benyttes i næsten alle nybyggerier<br />

i dag.<br />

Indirekte forbindelse giver et energitab i<br />

varmeveksleren, der med moderne teknikker<br />

begrænser sig til omkring 5%. Ligeledes sker<br />

der et elektrisk energitab idet systemet kræver<br />

en cirkulationspumpe til at cirkulere vandet<br />

gennem radiatorerne. Da der er tale om et<br />

forholdsvis lille, men lukket system er der stor<br />

forskel på om det er varmt eller koldt vand der<br />

Figur 2.1 - Direkte koblet<br />

fjernvarmesystem.<br />

Figur 2.2 - Indirekte koblet fjernvarmesystem<br />

med cirkulationspumpe og ekspansionsbeholder.<br />

cirkulerer i systemet idet varmt vand udvider sig i forhold til koldt og derved skaber trykforskelle.<br />

En ekspansionsbeholder er derfor nødvendig, som buffertank til udligning af trykforskel i systemet.<br />

Side 6 af 113


2.1.5 Radiatorer<br />

Problemanalyse<br />

Radiatorerne er det led i systemet, der er beregnet til at afsætte varme i boligen. En radiator<br />

fungerer på simplificeret form ved at fordele det varme vand ud på en større berøringsflade med<br />

luften, og derved fås det til at afgive dets varme bedre.<br />

Gamle radiatorer i ældre boliger fra før fjernvarmens tid, er ofte udformet til at kunne rumme<br />

meget store mængder vand i forhold til overfladearealet, idet man med et privat cirkulationssystem<br />

ikke bekymrede sig for hvor meget vandet blev afkølet. Hvis det ikke blev ne<strong>dk</strong>ølet helt kunne det<br />

bare cirkulere endnu en gang. Problemet opstår når et sådant gammelt system bliver tilsluttet et<br />

fjernvarmenet, og ne<strong>dk</strong>ølingseffektiviteten i boligens radiatorer er alt for dårlig. Hvis afregningen er<br />

efter m 3 vil boligejeren komme til at betale alt for meget for opvarmningen. Dette er ikke et<br />

umiddelbart problem hvis afregningen sker efter jouleforbrug, men i stedet kan boligejeren komme<br />

til – jævnfør 2.2.2 - at skulle betale en afgift.<br />

Dette problem løses med indsættelse af nye radiatorer, der i modsætning til ældre modeller kun<br />

rummer nogle få liter vand og har et større overfladeareal, og dermed sørger for en effektiv afkøling<br />

af vandet. Bedre afkøling giver mindre m 3 forbrug og derved billigere varme. Hvis en bolig<br />

modtager fjernvarmevand på 80 o C og afkøler det med 30 o C til 50 o C giver dette en udnyttelse på<br />

30.000 kcal/m 3 vand. Hvis boligens varmesystem forbedres således, at afkølingen kom op på 50 o C<br />

så returtemperaturen bliver 30 o C, giver det en udnyttelse på 50.000 kcal/m 3 [Teknologisk Institut].<br />

2.1.6 Regulering<br />

Afkølingen af fjernvarmevandet afhænger ikke kun af selve radiatortypen, men ligeledes af<br />

hvordan den reguleres. Reguleringen foregår ved hjælp af en variabel ventil, der kan regulere<br />

vandgennemstrømningen i radiatoren. Dette kan foregå manuelt, men dette giver problemer med<br />

indregulering, idet det ofte er store temperatursvingninger, der skal tages højde for, og det kræver<br />

derfor ofte reguleringer. Svingningerne kan blandt andet skyldes vejrforandringer og/eller<br />

gratisvarme fra personer og elinstallationer. Få mennesker har lyst til konstant at skulle regulere alle<br />

boligens radiatorer og dermed opstår kravet om en automatisk regulering.<br />

Dette gøres i dag hovedsageligt vha. termostater der i princippet fungerer som en slags<br />

temperaturafhængig tænd/sluk kontakt, som regulerer gennemstrømningen i radiatoren således, at<br />

temperaturen bliver holdt konstant. Dvs. at hvis der f.eks. er en stor opvarmning fra solen skruer<br />

termostaterne ned for radiatorerne og omvendt.<br />

Der er imidlertid visse begrænsninger ved termostater. Alle termostaterne skal justeres individuelt<br />

og giver derfor ingen mulighed for central styring af hele boligens temperatur, og er er ingen direkte<br />

mulighed for at natsænke temperaturen i nogle eller alle rum. Ligeledes opstår der et problem når<br />

termostaten opfanger et pludselig temperaturfald f.eks. som følge af åbning af vindue. Termostaten<br />

vil så forsøge at opveje temperaturfaldet ved at skrue helt op for radiatoren, og der vil derfor gå en<br />

masse varme til spilde. Der er derfor brug for en metode til at registrere om det er nyttesløst for<br />

termostaten at skrue op for temperaturen. Endelig vil en central styring lette reguleringen af<br />

opvarmningen i boligen. En central styring vil nemmest kunne konstrueres elektronisk og dette vil<br />

ligeledes åbne muligheder for en let implementation af natsænkning og individuel styring af<br />

radiatorerne.<br />

Side 7 af 113


2.1.7 Delkonklusion for det tekniske system<br />

Problemanalyse<br />

Vi kan konkludere, at en forbedret reguleringsmekanisme vil give en forbedret afkøling i<br />

radiatorerne. Denne forbedrede afkøling giver et størst økonomisk og energimæssig gevinst for<br />

forbrugeren ved et direkte koblet fjernvarmesystem, hvor det gælder om at få afkølet vandet så<br />

meget som muligt, inden det ledes ud i rørnettet igen. Ved et internt varmecirkulationssystem, så<br />

som private brændselskedler eller indirekte koblet fjernvarmesystem, kan afkølingen opnås ved blot<br />

at lade vandet cirkulere i systemet.<br />

Den økonomiske gevinst ved det direkte koblede fjernvarmesystem vil bestå i, at der ved m 3 -<br />

afregning vil fås mere energi ud af hver m 3 og derved bruges der færre m 3 vand. Ved afregning efter<br />

joule vil der kunne hentes en økonomisk gevinst, hvis den forbedrede ne<strong>dk</strong>øling kan spare<br />

forbrugeren for en økonomisk straf fra fjernvarmeværkets side.<br />

Endvidere konkluderer vi, at der kan vindes mere ved en forbedret afkøling gennem regulering ved<br />

gamle radiatorer end ved nye. Dette skyldes, at nye radiatorer i forvejen har en bedre afkøling end<br />

gamle. Ydermere kan det konkluderes, at reguleringen skal gøres på en sådan måde, at der tages<br />

hensyn til natsænkning, og at radiatoren skal slukkes når der åbnes vinduer. Ligeledes er central<br />

styret regulering en god ide, idet det vil gøre reguleringen lettere.<br />

Det er altså klart at produktet har størst markedspotentiale til fjernvarmesystemer, men derfor kan<br />

der stadig være en økonomisk og/eller miljømæssig gevinst ved et sådant produkt til andre<br />

varmesystemer. Vi vil herfor koncentrere os om et produkt til brug med fjernvarmesystemer.<br />

2.2 Energipolitik<br />

Vi vil i dette afsnit diskutere energipolitik. Først fra et overordnet synspunkt, hvorefter vi vil<br />

beskrive udviklingen i den danske energipolitik. Dette gøres for at klarlægge hvorfor og hvorvidt<br />

der er enticament til at arbejde med energibesparende foranstaltninger til fjernvarmemarkedet.<br />

Side 8 af 113


2.2.1 Overordnet energipolitik<br />

Der er siden oliekrisen i 1973 blevet<br />

fokuseret på energiforbruget i Danmark, om<br />

hvordan det kan mindskes og om hvordan<br />

energisektoren kan effektiviseres. Ligeledes<br />

fokuseres der på hvordan en økonomisk<br />

effektiv energisektor med en høj<br />

forsyningssikkerhed sikres. Dette skal gøres<br />

på en miljømæssig bæredygtig måde.<br />

Energiforbruget skal nedsættes, da den store<br />

udledning af miljøbelastende gasser, der ved<br />

energifremstilling slipper ud i atmosfæren, er<br />

skyld i store miljømæssige problemer. En af<br />

disse farlige gasser er drivhusgassen CO2,<br />

hvor Danmarks udledning per indbygger<br />

stadig er blandt den højeste i verden. Dette<br />

nødvendiggør en reduktion af udledningen.<br />

Den forøgede drivhuseffekt på kloden er et<br />

globalt problem, så derfor ønsker regeringen,<br />

at Danmark forsat skal have en aktiv rolle i<br />

gennemførelsen af internationale initiativer<br />

omkring CO2 udslip. Der gøres opmærksom<br />

på dette afsnittet er skrevet efter kilderne,<br />

[Miljø- og energiministeriet '99] og [Miljø-<br />

og energiministeriet '98].<br />

Problemanalyse<br />

Fordelingen af EU’s forpligtelser i Kyotoaftalen<br />

Mål i 2008 – 2012 i Ændringen af<br />

forhold til udledning i udledneing af<br />

1990<br />

drivhusgasser i pct.<br />

Luxemburg -28<br />

Danmark -21<br />

Tyskland -21<br />

Østrig -13<br />

Storbritannien -12,5<br />

Belgien -7,5<br />

Italien -6,5<br />

Holland -6<br />

Finland 0<br />

Frankrig 0<br />

Irland 13<br />

Spanien 15<br />

Grækenland 25<br />

Portugal 27<br />

EU samlet -8,1<br />

Figur 2.3 – EU landenes forpligtelser i forbindelse med Kyotoaftalen.<br />

Kilde: Evaluering af grønne afgifter og erhvervene 1999.<br />

Regeringens vilje til at gøre en indsats udtrykkes bedst ved en stærk og troværdig hjemlig indsats.<br />

Dette kræver at regeringen påvirker forbrugernes energivaner, og til dette har regeringen flere<br />

muligheder. Folk kan tvinges gennem lovmæssige indgreb, afgifter, oplysningskampagner og der<br />

kan gives økonomisk tilskud til f.eks. udskiftning af gamle hvidevarer. Endelig kan regeringen føre<br />

strukturpolitik ved f.eks. at støtte fjernvarme.<br />

Omdrejningspunktet i energipolitikken er den nationale indsats for CO2 reduktion og nye<br />

internationale forpligtigelser i Kyotoaftalen supplerer nu den danske CO2–målsætning se (fig.2.3). I<br />

1997 forbedres klimakonventionen ved vedtagelse af Kyoto-aftalen i henhold til den tidligere<br />

Torontoaftale. Aftalen omfatter 160 lande, der bestræber sig på at sænke udledningen af CO2 og<br />

andre drivhusgasser, se fig. 2.3. Danmark har i forbindelse med Kyoto-aftalen forpligtet sig til at<br />

reducere den gennemsnitlige udledning af drivhusgasser med 21% i perioden 2008-2012 målt i<br />

forhold til 1990 niveauet.<br />

I 2005 skal Danmark, såvel som andre industrilande, have gjort bevislige fremskridt for at<br />

overholde denne miljøforpligtigelse. De overordnede mål er store opgaver for Danmark,<br />

sammenlignet med andre lande (se fig. 2.3), men det hænger sammen med, at Danmark gerne vil<br />

fremstå som et foregangsland for en bæredygtig udvikling på energiområdet. Regeringen har derfor<br />

i denne forbindelse i 1996 fremsat en energihandlingsplan kaldet ”Energi 21”.<br />

De forskellige internationale aftaler og øget samarbejde har bevirket, at de enkelte lande har fået<br />

mere indflydelse på udformningen af international energipolitik. Dette har betydet, at vi har fået en<br />

bedre udformning og implementering af den nationale energipolitik i et samspil mellem<br />

Side 9 af 113


Problemanalyse<br />

internationale initiativer. Hermed har Danmark fået nogle gode muligheder for at sætte fingeraftryk<br />

på internationale indsatsområder, da Danmark har store erfaringer på det energipolitiske område.<br />

2.2.2 Energihandlingsplan – Energi 21<br />

Energi 21 er en handlingsplan, som regeringen fremsatte i 1996. Handlingsplanen fremsætter nye<br />

nationale initiativer, der kan beskrives under nøgleordene: ressourceudnyttelse og mindre<br />

miljøbelastning.<br />

I handlingsplanen fremgår det, at Danmark skal nå en CO2 reducering på 20% i 2005 i forhold til<br />

1988 niveauet. I forbindelse med dette blev der i energi 21- ”nye rammer for den danske el- og<br />

varmesektor og energibesparelse og effektivisering” - iværksat en række initiativer for at opfylde<br />

denne reduktion. De nye initiativer skal sikre, at denne sektor fortsat vil være økonomisk og<br />

teknologisk effektiv. Ydermere skal den indgå i en dynamisk samfundsudvikling, hvor<br />

bæredygtighedsmålene forfølges også internationalt. Dette fører til, at sektoren skal arbejde for:<br />

− Langsigtet, stabil udvikling af den danske energiforsyning.<br />

− Åbenhed og inddragelse af forbrugere.<br />

− Rationel ressourceanvendelse.<br />

− Teknisk forsyningssikkerhed.<br />

− Økonomisk effektivitet og samfundsøkonomisk optimering.<br />

− Aktiv international indsats.<br />

− Øget anvendelse af renere brændsler.<br />

2.2.3 Rammer for den danske el- og varmesektor<br />

I forlængelse af Energi 21 skal der således fastlægges en sammenhængende og langsigtet reform af<br />

rammerne for el- og varmesektoren. Målsætningen herfor er[Auken]:<br />

− At den danske el- og kraftvarmesektor styrkes.<br />

− At der findes aktører til at fortsætte miljø- og energipolitikken.<br />

− At forbrugerne fortsat har del i de anlægsaktiver, som de har finansieret.<br />

− At dansk erhvervsliv sikres stabile el- og varmepriser.<br />

− At danske leverandører har adgang til et stabilt investerings- og udviklingsmiljø på<br />

hjemmemarkedet.<br />

Det overordnede mål for disse målsætninger er CO2 reduktion. Dette kan gøres på to måder, enten<br />

ved energibesparelse eller ved at gå over til vedvarende energi. Som eksempel på energibesparelse<br />

kan man ved at omlægge den traditionelle el-produktion til kraftvarmeproduktion, udnytte den<br />

energi, som før gik tabt i kølevandet.<br />

Fjernvarmen har haft stor betydning for dansk energipolitik. Vi har været i stand til at omstille<br />

dansk energiforsyning, der er mindre miljøbelastende. Udbredelsen af fjernvarme har ikke kun<br />

opnået økonomiske, men også miljømæssige gevinster, jævnfør 2.1.2.<br />

Danmark er førende i Europa indenfor kraftvarmeproduktion. Fjernvarmeudbygningen og de deraf<br />

følgende besparelser yder et bidrag til, at de danske klimaforpligtelser, jvf. 2.1, opfyldes. Det er<br />

derfor af høj prioritet for regeringen, at fjernvarmeproduktionen bevares og videreudvikles.<br />

Regeringen har derfor iværksat særlige initiativer til etablering af små decentrale kraftvarmeværker.<br />

[Miljø- og energiministeriet '98]<br />

Side 10 af 113


2.2.4 Handlingsplan for energibesparelse<br />

Problemanalyse<br />

I forbindelse med energibesparelse ved rumopvarming, har Danmark i energi 21 forpligtet sig til at<br />

reducere energibehovet til rumopvarmning i nybyggeri med 50%. Med det bygningsreglement der<br />

trådte i kraft i 1995 er de 25% nået, men for at opnå de sidste 25% er der stadig brug for udvikling<br />

af nye teknikker til energibesparelse. Energibesparelse er også et personligt ansvar, hvorfor<br />

informationskampagner også er en del af regeringens politik.<br />

[Dyck-Madsen]<br />

2.2.5 Delkonklusion for energipolitik<br />

Vi har i dette afsnittet belyst den danske energipolitik fra forskellig synsvinkler og kan<br />

konkludere, at der er brug for reduktion af CO2-udslippet på baggrund af nationale og internationale<br />

forpligtelser, og at dette kan realiseres gennem en reduktion af energiforbruget. Et af de skridt som<br />

er sat i værk for at nå denne reduktion er den foresatte udbygning af kraftvarmeværkerne, som<br />

bidrager positivt til Danmarks CO2 balance.<br />

Vi kan altså konkludere, at der er gode muligheder i et energibesparende produkt rettet mod<br />

fjernvarmesystemet, som et skridt på vejen mod et formindsket dansk energiforbrug. Et sådant<br />

produkt kunne, jvf. 2.1.7, være en forbedret reguleringsmekanisme af fjernevarmeradiatorer.<br />

2.3 Indeklima<br />

Vi vil i dette afsnit undersøge om radiatorstyring er relevant udfra et sundhedsmæssigt synspunkt<br />

og hvorfor udluftning er en nødvendighed. I det ovenstående afsnit blev energipolitikken i Danmark<br />

gennemgået. Denne har sammen med sundhedspolitikken affødt en række love og reglementer<br />

angående indeklimaet i huse og andre bygninger. Disse har relevans i forbindelse med vores<br />

problemstilling, fordi dårligt ventilerede huse kræver mere manuel ventilation med vinduer, hvilket<br />

er en af motivationsfaktorene til vores initierende problem. Endvidere fordi vores produkt er en<br />

temperaturregulator vil vi undersøge temperaturens betydning for indeklimaet. Denne behandling<br />

vil tage udgangspunkt i følgende reglementer:<br />

− Bygningsreglement 1982<br />

− Bygningsreglement 1995<br />

Endvidere vil vi i gennemgangen tage udgangspunkt i et normalt parcelhus.<br />

Side 11 af 113


2.3.1 Bygningsreglementer<br />

Problemanalyse<br />

En af følgerne af oliekrisen i 1973 var, at der bl.a. kom forslag til hvordan varmetabet i huse kunne<br />

formindskes. Disse forslag mundede ud i bygningsreglementet fra 1982. Det havde det formål at<br />

skulle mindske varmetabet i bygninger ved bl.a. at tætne husene i forhold til tidligere.<br />

Ved indførslen af disse 1982 reglementet, fulgte der uheldigvis en uventet bieffekt med, som der<br />

på det tidspunkt ikke var taget højde for. Ved at lave husene mere energirigtige med mindre<br />

varmetab, blev husene mere tætte, faktisk så tætte, at husene ikke kunne ånde. Dette medførte at<br />

husene ikke blev ventilerede ordentligt og derved skabtes et dårligt indeklima, som også<br />

medvirkede til at ødelægge konstruktionerne. Den manglende udluftning/ventilation<br />

nødvendiggjorde en revurdering af reglerne, således at husene blev ventileret, og derved undgik<br />

man skader på huset og ikke mindst helbredet. Derfor blev der i 1995 indført love om hvordan og<br />

hvor meget huse mindst skal ventileres. Dermed ikke sagt, at der ikke blev gjort noget før 1995<br />

hvor lovene trådte i kraft, men der går noget tid inden de relevante myndigheder får undersøgt<br />

sagen tilstrækkeligt til at lave et decideret reglement. Nedenfor ses et udsnit af reglementet fra 1995<br />

[Boligministeriet].<br />

Lov 11.1stk1<br />

”Bygninger skal opføres, så der under normal brug af bygningerne kan opretholdes<br />

et sundheds- og sikkerhedsmæssigt tilfredsstillende indeklima.”<br />

Lov 11.2.2stk.3 [Boligministeriet]<br />

”Kravene til ventilation i rum med normal rumhøjde anses for opfyldt, når tilførslen<br />

af udeluft og udsugning udføres som angivet nedenfor. Størrelsen af udsugningen<br />

er angivet som volumenstrøm i l/s.<br />

Beboelsesrum<br />

Tilførsel af udeluft: Oplukkeligt vindue, lem eller dør samt en eller flere udluftningsventiler med en<br />

samlet fri åbning på mindst 30cm 2 pr. 25m 2 gulvareal…”<br />

Ligeledes har alle andre rum i bebyggelsen lignende udluftningskrav, der indbefatter enten<br />

oplukkelige vinduer, døre, lemme eller udluftningsventiler.<br />

De væsentlige indeklimafaktorer, som påvirker mennesket, kan man opdele i følgende 4<br />

hovedgrupper[Hørup].<br />

− Termisk miljø, de faktorer der har betydning for menneskets varmebalance.<br />

− Atmosfærisk miljø, de faktorer der har betydning for menneskets åndedræt og<br />

lugtesans.<br />

− Akustisk miljø, de faktorer der har betydning for menneskets lydopfattelse.<br />

− Optisk miljø, de faktorer der har betydning for menneskets lysopfattelse.<br />

Vi vil her nøjes med at kigge på de to første hovedgrupper, dvs. termisk og atmosfærisk miljø, da<br />

de to andre, akustisk og optisk miljø, ikke bliver påvirket synderligt af ventilation eller temperatur<br />

kontrol.<br />

Side 12 af 113


2.3.2 Termisk miljø<br />

For at mennesket føler sig godt tilpas,<br />

kræver det en passende temperatur<br />

omkring dem. Denne temperatur kaldes<br />

komfortområdet, og er det<br />

temperaturområde hvorved et menneske<br />

hverken føler varme eller kulde[Statens<br />

Byggeforskningsinstitut]. Dette<br />

komfortområde er afhængig af personen<br />

selv, arbejdet personen yder, påklædning,<br />

luftfugtighed og lufthastighed. Et eksempel<br />

på dette komfortområde er vist i fig. 2.5.<br />

Figuren gælder for lufthastigheder på<br />

omkring 0.2 m/s. Ved at ændre<br />

lufthastigheden, påvirkes komfortområdet.<br />

F.eks. vil en forøgelse af lufthastigheden til<br />

0.4 m/s rykke komfortområdet 1 o C op,<br />

mens en sænkning til 0.1m/s vil rykke<br />

komfortområdet 1 o C ned. Men<br />

lufthastigheder over 0.15 m/s ved<br />

stilsidende tilstand og over 0.4 m/s ved<br />

bevægende tilstand vil generelt føles<br />

ubehageligt. Ligeledes vil lufthastigheder<br />

på under 0.05 m/s give ubehag, da man her<br />

får problemer med at afgive fugt og varme.<br />

En anden temperaturfaktor der kan give<br />

Problemanalyse<br />

Figur 2.5 – Graf over<br />

komforttemperaturent(den grå zone) for<br />

lufttemperatur,afhængig af arbejdbelastning<br />

og påklædnings grad [Boligministeriet].<br />

ubehag, er temperaturændringen. F.eks. vil en daglig temperaturændring, i et opholdsrum, på mere<br />

end 4 o C føles ubehagelig.<br />

Kommer man ud af sit komfortområde, vil man i det kolde område opleve muskelspændinger,<br />

nedsat bevægelighed, samt til sidst kulderystelser. I det varme område vil man opleve at<br />

sve<strong>dk</strong>irtlerne går i gang, intellektuelle og manuelle præstationer reduceres, fejlfrekvens øges, samt<br />

hovedpine og anden utilpashed [Statens Byggeforskningsinstitut].<br />

Temperaturændringer i luften vil også påvirke luftfugtigheden. Det er den effekt der ses, når der<br />

dannes kondensvand på vinduet og fugt på væggene. Dette er vigtigt at huske, da mennesket ikke er<br />

i stand til direkte at mærke om luften er fugtig eller tør.<br />

2.3.3 Atmosfærisk miljø<br />

Den måde vi mennesker opfatter det atmosfæriske indeklima på, er ofte afhængig af<br />

forureningskilder af forskellige art[Hørup].<br />

Disse kan i grove træk opdeles som følgende:<br />

− Ubehagelige lugte<br />

− Gasarter og dampe<br />

− Husstøv<br />

− Industristøv<br />

Side 13 af 113


Problemanalyse<br />

Vi vil her se bort fra industristøv, da vi som førnævnt vil beskæftige os med private boliger og<br />

ikke med industrielle bygninger, samt forudsætter at industristøvet som regel ikke har den store<br />

indflydelse på almindelige boliger, skoler osv. Vi vil til gengæld kigge på luftfugtighed, da denne<br />

påvirker de andre forureningskilder [Statens Byggeforskningsinstitut].<br />

Som nævnt ovenfor, vil temperaturændringer medføre ændringer i luftfugtigheden. Derudover vil<br />

en person afgive fra 40 gram vanddamp til luften pr time ved stilstand, optil flere kilo ved hårdt<br />

arbejde. Hvis luftfugtigheden er for lav, vil slimhinder og hals tørre ud, samt resultere i nedsættelse<br />

af de naturlige filtreringsfunktioner. Et så tørt indeklima vil dog under normale omstændigheder<br />

ikke findes i Danmark, medmindre man aktivt tørrer luften. Lignende symptomer kan til gengæld<br />

også skyldes f.eks. gasser, dampe og støv, og vil derfor kunne observeres i Danmark.<br />

For høj luftfugtighed er ikke i sig selv skadeligt for mennesker, men påvirker nogle af de andre<br />

faktorer. Ved f.eks. ekstrem temperatur, vil en høj luftfugtighed forstærke dennes negative effekt på<br />

kroppen(se 2.3.1). Der vil ved høj luftfugtighed, ske kondensation på bygningsmaterialerne. Dette<br />

kan være direkte skadeligt for materialerne, samt give grobund for mikroorganismer som igen kan<br />

være skadelige for mennesker.<br />

Disse mikroorganismer, kan som de fleste andre småpartikler i husstøvet, blive optaget i<br />

menneskets filtersystemer. Disse systemer vil dog kun optage en hvis procentdel, og der vil derfor<br />

ved store forekomster stadig slippe en del igennem til vores indre organisme, hvilket kan resultere i<br />

infektioner.<br />

De andre dele af husstøv vil for det meste bestå af: bakterier, pollen, hudskæl, midedele, hår,<br />

tekstilfibre, maling, træ, metal og beton. Alle disse elementer er der nok af i de fleste<br />

vesteuropæiske huse til, at hvis der ikke bliver gjort noget ved det, vil det ophobe sig til<br />

sundhedsskadelige mængder og føre til allergiske symptomer, så som astma, øjenkatar, eller<br />

høfeber. Der er i Danmark ikke nogen love om maksimum støvindhold i et hus, men der er dog<br />

udluftningslove som mindsker ophobning af støvet.<br />

Ligeledes findes ingen officielle grænseværdier for gasser og dampe i boliger. De findes til<br />

gengæld i industrien og ville med noget omregning kunne bruges i boliger. Gasser og dampe kan i<br />

store koncentrationer være meget farlige, men vil i langt de fleste boliger ”kun” føre til fysisk<br />

irritation. Den største kilde for gasser og dampe, kommer fra madlavning, rengøring og rygning.<br />

Dog skal man passe på hvis man i sin bolig har et indelukket kontor med mange typiske elektriske<br />

kontorartikler så som kopimaskiner, fax, computer, scanner, osv. Da disse kan fremkalde en del<br />

ozon, som kan resultere i hovedpine, træthed, tørhed i hals og næse, og i store mængder,<br />

ødelæggelse af lungernes funktion. Hvad rygning angår, menes en del af de stoffer cigarretrøg<br />

består af, at være kræftfremkaldende, andre irriterer luftvejene og igen andre giver hovedpine og<br />

svimmelhed. Der skal også tages hensyn til, at cigarretrøg i en rygers bolig, er en forholdsmæssigt<br />

stor forureningskilde, og som grundregel skal et rum med ryger(e) have en 3 gange så stor<br />

udluftning som ellers. Derudover er cigarretrøg også en stor forureningskilde rent lugtmæssigt. En<br />

anden stor lugtmæssig forureningskilde er mennesket selv og eventuelle dyr i boligen, samt<br />

madlavning, nybehandlede overflader og visse byggematerialer.<br />

Om den præcise sammenhæng mellem lugte og sygdomme, findes endnu ikke noget sikkert, men<br />

for det meste vil de ovennævnte faktorer/lugte ikke være sundhedsskadelige, men en gene for<br />

beboerne. Men på trods af dette, vil det typisk være lugtgener alene, der får folk til at lufte ud, da<br />

det er den af generne der er nemmest at opdage.<br />

Side 14 af 113


2.3.4 Delkonklusion for indeklima<br />

Problemanalyse<br />

Det kan konkluderes, utilstrækkeligt ventilation er skadelige både for huset og dets beboere.<br />

Ligeledes ses det, at en stor del af de danske boliger, bl.a. grundet bygningsreglement 82, ikke<br />

automatisk bliver ventileret nok. Dette kompenseres der for ved åbning af vinduer og dette skaber<br />

jvf. 2.1.7 og 2.2.5 et problem. Derfor er en automatisk reguleringsmekanisme specielt egnet i disse<br />

Huse.<br />

Endvidere har vi kigget på forudsætningerne for et godt indeklima, som er en stabil og passende<br />

temperatur og god ventilation, som medvirker til at forhindre ophobningen af sundsskadelige<br />

partikler og organismer. En reguleringsmekanisme kan holde temperaturen på et ønsket niveau og<br />

kan endvidere reducere energispildet ved manuel udluftning, men pga. af f.eks. lugt gener vil man<br />

aldrig komme helt ud over manuel udluftning.<br />

2.4 Embedded technology<br />

I de sidste par år har der været meget fokus på begrebet embedded technology (ET), men det er<br />

stadigt meget svært præcist at forklare hvad det egentligt står for. I det følgende vil vi først beskrive<br />

hvordan elektronisk styring har udviklet sig, hvorefter vi vil beskrive en række af<br />

hverdagssituationer hvor brugeren enten i dag eller i fremtiden kan have glæde af ET. Meningen<br />

med disse eksempler er, at de skal danne et indtryk af dette noget diffuse begreb.<br />

Derefter vil vi forklare den udvikling som er sket indenfor elektronisk styring. På baggrund af<br />

disse eksempler vil vi prøve at give en definition på ET, som vi vil anvende som referenceramme i<br />

resten af projektet. Slutteligt vil vi diskutere hvorvidt og evt. hvordan ET kan have relevans i<br />

forbindelse med styring af radiatorer.<br />

2.4.1 Elektronisk styring før og nu<br />

Førhen var elektronisk styring af flere enheder bygget op omkring en central computer(se fig. 2.6),<br />

dette nødvendiggjorde, at der trækkes ledninger fra sensorer og til aktuatorer. Endvidere er der den<br />

usikkerhed, at hvis computeren går ned, vil det stoppe<br />

udførelse af alle opgaver.<br />

Det er desuden en dyr løsning hvis der kun er få<br />

opgaver som skal styres og derudover kan systemet<br />

Sensor 1<br />

Aktør 1<br />

kun udbygges i det omfang, computeren har<br />

overskydende regnekraft til.<br />

Sensor 2<br />

Styring<br />

Aktør 2<br />

Indenfor softwareudvikling er der i det sidste årti<br />

sket en stor udvikling. Der er sket et skift af<br />

programmeringsparadigme fra modulær<br />

programmering til objekt orienteret programmering,<br />

hvor det forsøges at in<strong>dk</strong>apsle de enkelte opgaver i<br />

enkelte enheder, der er lette at beskrive og anvende.<br />

Sensor 3<br />

Figur 2.6 - Eksempel på styring førhen. Alt data<br />

samles og bearbejdes ét sted.<br />

Denne udvikling skinner også igennem på<br />

hardwaresiden, hvor der i dag designes distribuerede systemer, som løser opgaverne tæt på<br />

problemet ved hjælp af en lille decentral computer. Disse decentrale computere kan overvåges og<br />

modtage instruktioner fra en central computer gennem et netværk.<br />

Side 15 af 113<br />

Aktør 3


Problemanalyse<br />

Denne decentrale arkitektur sikrer større pålidelighed, da en fejl et sted i systemet ikke blokerer<br />

hele systemet grundet den store uafhængighed af de enkelte enheder.<br />

Desuden er denne metode mere skalerbar, da det er lettere<br />

at ændre på systemet eller tilføje flere enheder.<br />

I mange situationer kan det vælges at lade de enkelte<br />

systemers brugerflade være placeret på en PC, der har<br />

forbindelse til systemerne gennem et netværk (se fig. 2.7).<br />

Dvs. brugeren interagerer med systemerne via PC’en, mens<br />

systemerne autonomt løser deres respektive opgave. Dette<br />

gør det muligt at styre mange systemer central, samtidigt<br />

med at regnekraften er placeret decentralt.<br />

2.4.2 Eksempler på ET<br />

Dataopsamling<br />

og noget<br />

styring<br />

Embedded<br />

system1<br />

Embedded<br />

system 2<br />

Embedded<br />

system 3<br />

Figur 2.7 - Eksempel på moderne styring.<br />

Selve styringen foregår hvor den skal bruges,<br />

men overvåges centralt gennem et netværk.<br />

En af ideerne bag ET er at give brugeren mere komfort, og at gøre styring af hverdags-elektroniske<br />

apparater lettere. F.eks. kan der i dag købes kaffemaskiner, som gør det muligt at indstille et<br />

tidspunkt, hvor den automatisk starter kaffebrygningen. Dette betyder for den morgentrætte bruger<br />

ekstra komfort, da ve<strong>dk</strong>ommende kan stå op til en varm kop kaffe, hvor brugeren før måske ikke<br />

havde tid til at vente på maskinen.<br />

En anden af ideerne bag ET er at spare ressourcer for forbrugeren. Et eksempel på dette kunne<br />

være de nye opvaskemaskiner fra Blomberg [Blomberg], som automatisk bedømmer hvor meget<br />

opvask, der er i maskinen op på baggrund heraf regulerer vandmængden, så der ikke spildes unødig<br />

energi og vand.<br />

Et tredje sted ET gør sig gældende er i bilindustrien, hvor der i moderne biler anvendes elektronik<br />

til styring af f.eks. ABS-bremser, tracktion-control og airbags. Disse mekanismer virker helt uden,<br />

at brugeren behøver at være bevidst om det, hvilket er en vigtig pointe når der tales om ET, da det<br />

skal være let for brugeren at anvende moderne teknologi uden at brugerne behøver at have indsigt i<br />

de tekniske detaljer.<br />

Eksempler på ET i den nære fremtid vil pege i retning af mere kommunikation mellem forskellige<br />

ET enheder. Disse enheder vil endvidere optræde mere autonomt, dvs. de bliver i stand til at løse<br />

mere komplicerede opgaver.<br />

Et eksempel på en fremtidig ET-applikation kunne være det intelligente køleskab. Dette køleskab<br />

kunne tænkes selv at holde styr på indholdet og sørge for at opretholde niveauet af dagligdagsvarer,<br />

som f.eks. mælk eller smør, ved at bestille nye forsyninger over internettet.<br />

Endvidere kunne man forstille sig, at der på husets pc kører et agentprogram som tilrettelægger<br />

familiens diæt på baggrund af en opskriftsdatabase sammenholdt med det indhold som det<br />

intelligente køleskab oplyser er til stede. Agenten vil så bestille de varer som dagens opskrift<br />

kræver, men som ikke allerede er til stede i køleskabet.<br />

2.4.3 Bluetooth netværk<br />

Selvom udviklingen går stærkt, kræver kommunikation<br />

mellem elektroniske enheder for det meste stadigvæk<br />

kabler. At tilslutte en printer, modem eller mus kan, selv<br />

her i starten af det 21. århundrede, være et<br />

irritationsmoment. Der er nok mange der drømmer om, at<br />

alt udstyret kunne ”tale” med hinanden, helt uden kabler.<br />

Side 16 af 113<br />

Figur 2.8 - En af anvendelses mulighederne<br />

for Bluetooth.


Problemanalyse<br />

I maj 1998 dannede Intel, Nokia, Ericsson, IBM og Toshiba Bluetooth Special Interest Group<br />

(BSIG). Selve navnet ”Bluetooth” er inspireret af den danske konge Harald Blåtand, der levede fra<br />

910 til 986.<br />

I starten var det trådløs kommunikation mellem mobiltelefoner og andet udstyr, der var målet for<br />

Bluetooth. Dette mål er senere blevet udvidet til at omfatte hele spektret fra kommunikation mellem<br />

bærbare og stationære computere og deres udstyr til alle former for elektronik i hjemmet, så<br />

hovedformålet med projekt Bluetooth er udvidet til nu også at udvikle billige og kompakte<br />

kommunikationsmoduler, der kan bygges ind i næsten alt.<br />

I dag er mere end 1100 firmaer med i BSIG og beskrivelsen af standarden fylder mere end 1500<br />

sider. Bluetooth 1.0 standarten blev i foråret 1999 gjort offentligt tilgængelig, så alle har mulighed<br />

for at udvikle til den.<br />

Efterhånden som Bluetooth standarden og evt. lignende standarder bliver mere udbredte, vil det<br />

blive lettere og billigere at producere produkter som kan kommunikere indbyrdes. F.eks. kunne det<br />

intelligente køleskab (afsnit. 2.4.2) kommunikere med pc’en via Bluetooth.<br />

Billig trådløs kommunikation, som Bluetooth, gør det nemt og billigt at installere elektroniske<br />

systemer i hjemmet. Og gør det hermed lettere at skabe et ”intelligent hus” dvs. et hus med en lang<br />

række af de elektroniske hjælpemidler, som der blev givet eksempler på i afsnit 2.4.2. (se fig. 2.8)<br />

2.4.4 Arbejdsdefinition på ET<br />

Som nævnt i indledningen er det svært at give en klar definition på begrebet ET, så i dette afsnit<br />

vil vi undersøge begrebet og give en definition, der vil tjene som referenceramme gennem resten af<br />

projektet. Da ET er et område med stor udvikling vil vi vores definition ikke relatere til ET i dag,<br />

men mere til hvordan ET vil se ud i morgendagens samfund.<br />

Oversættes ”embedded technology” direkte til dansk fås:<br />

”indlejret teknologi”. Den teknologi, der refereres til er<br />

elektronikken. Når man indlejrer elektronik, dvs. in<strong>dk</strong>apsler<br />

det, er selve elektronikken ”gemt” for brugeren, derfor må<br />

brugeren anvende apparatets grænseflade, hvis<br />

ve<strong>dk</strong>ommende vil påvirke det.<br />

Et ET-system er kendetegnet ved, at der imellem dets<br />

input og output foregår en avanceret beslutningsproces. For<br />

at gøre denne beslutningsproces mulig er kernen i et ETsystem<br />

en microcontroller, dvs. i princippet en lille<br />

computer. Denne lille computer gør det muligt at køre<br />

beslutningstagende software på systemet (se figur 2.9).<br />

Grænsefladen mellem ET-systemet og omverden kan<br />

etableres enten direkte som et antal knapper og displays<br />

uden på det fysiske system og/eller gennem et netværk.<br />

Input<br />

Brugergrænseflade<br />

Elektronik /<br />

software<br />

Output<br />

Figur 2.9 - Når først systemet er tilsluttet,<br />

kan man glemme alt om den avancerede<br />

teknologi, som er indlejret i det.<br />

Hvis styringen foregår gennem et netværk åbner det mulighed for, at mange systemer kan<br />

overvåges og styres centralt, f.eks. fra en PC.<br />

På baggrund af ovenstående kan vi opstille følgende tre vigtige kriterier, som vi vil lade definere et<br />

ET-system gennem resten af rapporten:<br />

– Systemet varetager en opgave, som kræver en autonom beslutningsproces.<br />

Side 17 af 113<br />

e<br />

m<br />

b<br />

e<br />

d<br />

d<br />

e<br />

d<br />

s<br />

y<br />

s<br />

t<br />

e<br />

m


Problemanalyse<br />

– Systemet betjenes gennem en grænseflade, som gør viden om systemdesignet unødvendigt.<br />

– Systemet kan kommunikere med andre enheder, men er i øvrigt et ”stand alone” system.<br />

Kigger vi igen på kaffemaskinen fra afsnit 2.4.1 er den, ifølge vores definition, ikke et ET-system,<br />

fordi den ikke kan kommunikere med andre enheder og fordi dens styrings er baseret på en simpel<br />

timer. Hvis en kaffemaskine skal være et ET system ifølge vores definition, skal den indeholdende<br />

en microcontroller og mulighed for kommunikation, så man f.eks. kunne starte kaffemaskinen fra<br />

sin mobiltelefon.<br />

2.4.5 ET og varmestyring<br />

I fremtidens intelligente hus kan vi forvente, at ejeren ønsker at kontrollere hele huset fra PC’en.<br />

For at gøre dette muligt skal den beskrevne ET-teknologi anvendes. Dette gør sig også gældende<br />

ved fremtidens opvarmingssystemer hvor brugeren vil kunne bestemme rumtemperaturerne centralt<br />

fra PC'en. Desuden vil beboeren af det intelligente hus forvente mere af sit opvarmingssystem end<br />

en boligejer forventer af sine termostater i dag. Den fremtidige boligejer kunne f.eks. ønske sig at<br />

systemet kan:<br />

– Tilpasse temperaturen efter beboernes døgnrytme, f.eks. natsænkning.<br />

– Slukke for varmen hvis der udluftes.<br />

– Føre statistik og evt. give forslag til besparelser.<br />

Hvis vore antagelser omkring udviklingen i fremtiden viser sig at være rigtige vil der i fremtiden<br />

komme et marked for ET systemer til styring af rumopvarmning hvorfor det vil være relevant at<br />

begynde at udvikle løsninger til dette.<br />

2.5 Problemformulering<br />

I afsnittet om det tekniske system så vi, at der er størst potentiale i en forbedret<br />

reguleringsmekanisme ved et direkte koblet fjernvarmesystem uanset afregningsmetoden.<br />

I vores diskussion af energipolitikken blev det endvidere klart, at regeringen langt ud i fremtiden<br />

vil støtte fjernvarmeproduktionen, da den medvirker til at nå de internationale og nationale<br />

energimålsætninger, som Danmark har forpligtet sig til at opfylde. Desuden er regeringen<br />

interesseret i løsninger, som kan medvirke til at sænke energiforbruget til opvarmning af boliger, for<br />

at leve op til kravet omkring 50% reduktion af varmeforbruget i nybyggerier.<br />

Indeklimaet i en del danske boliger viste sig at være et problem pga. de for høje krav til<br />

energieffektivitet, som blev stillet i bygningsreglementet fra 1982. For at undgå dårligt indeklima i<br />

disse huse, er det nødvendigt ofte at åbne vinduer for at ventilere boligen. Der er derfor potentiale i<br />

en reguleringsmekanisme, som formindsker energitabet ved at detektere om et vindue er åbent og<br />

lukke for radiatoren, mens der udluftes.<br />

Embedded technology viste sig at rumme mange fremtidsperspektiver, og det må forventes at<br />

fremtidens boligejere ønsker sig mere ”intelligente” huse, hvorfor ET netop er relevant, da det giver<br />

denne mulighed. Endvidere gav vi vores bud på en definition på ET-begrebet, som grundlæggende<br />

stiller krav om netværksforbindelse og en autonom beslutningsproces.<br />

Alt i alt har vi altså fundet ud af, at det er relevant at styre en radiator fordi fjernvarmeværkerne<br />

kræver stor afkøling af fjernvarmevandet, hvilket kan opnås gennem en god styring. Endvidere har<br />

vi fundet ud af at udluftning er en nødvendighed i boligen i dag, og at dette oftest sker ved<br />

Side 18 af 113


Problemanalyse<br />

vinduesåbning og det er dermed relevant at styre en radiator i udluftningssituationer. Ligeledes<br />

fandt vi ud af, at da radiatorstyring er energibesparende, og at der er politisk opbakning bag<br />

miljøforbedrende tiltag.<br />

Overordnet kan vi konkludere, at der er et godt potentiale i et produkt som opfylder følgende<br />

betingelser:<br />

– Det skal være designet til fjernvarmesystemer.<br />

– Systemet skal forbedre udnyttelsen af varmen i fjernvarmevandet.<br />

– Systemet skal minimere behovet for menneskelig regulering, dvs. det skal være intelligent nok<br />

til at håndtere alle situationer, som måtte opstå (kravet om autonomi).<br />

– Systemet bør kunne indgå i et netværk dedikeret til styring af alle automatiserede opgaver i en<br />

bolig.<br />

Herudover vil det være naturligt at produktet har en grafisk grænseflade placeret på boligens PC,<br />

så alle radiatorer kan styres centralt. Disse betingelser vil vi lade være styrende for resten af<br />

projektet og specielt for kravspecifikationerne.<br />

2.5.1 Kravspecifikation<br />

På baggrund af den forgangne analyse vil vi her formulere en række krav til et produkt, som kan<br />

bruges til automatisk radiatorstyring. Der tages her sigte på specifikationer til et virkeligt produkt til<br />

den private forbruger, som skal kunne klare sig på et virkeligt marked.<br />

1. Produktet skal kunne foretage automatisk radiatorregulering.<br />

2. Brugeren skal når produktet først er installeret ikke til daglig være opmærksom på det.<br />

3. Produktets grænseflade skal være placeret på en PC, dels for at imødekomme vores krav om<br />

netværkskommunikation, men også for at give mulighed for dataopsamling og samlet kontrol<br />

over rumtemperaturer i huset.<br />

4. Produktet skal kommunikere vha. Bluetooth - hvis vi havde valgt et ikke trådløst netværk, ville<br />

installationsomkostningerne i allerede byggede boliger være for høje.<br />

5. Produktet skal autonomt kunne regulere radiatoren på baggrund af brugerens ønsker om<br />

passende temperatur. Dette vil sige, at systemet skal kunne klare alle situationer uden brugerens<br />

indblanding, herunder afbrydning af opvarmning hvis vinduet åbnes.<br />

6. Det software som styrer regulatorerne fra PC’en skal være driftsikkert, let at betjene og må kun<br />

optage ressourcer i det omfang det er nødvendigt.<br />

7. Produktet skal være drift- og personsikker og have et minimalt strømforbrug.<br />

8. Endvidere skal produktet have en lang levetid (>15 år) idet dets omgivelser (hus, varmesystem)<br />

ligeledes er langtidsinvesteringer.<br />

Ovenstående krav opfyldes, af et produkt som benytter ET til regulering af radiatorer i private<br />

hjem. Det skal dog bemærkes at Bluetooth-netværket nødvendigvis kræver, at der også i huset<br />

installeres andre ET – applikationer som anvender Bluetooth, da hver enkelt enhed i netværket har<br />

en begrænset rækkevidde, ca. 10m, hvorfor en besked må routes 1 igennem flere ET – applikationer,<br />

før den når destinationen (PC’en).<br />

Det bør også bemærkes, at produktet under alle omstændigheder bliver relativt dyrt, hvis det skal<br />

implementeres i et helt hus, målgruppen er herfor begrænset til en gruppe af relativt velstående<br />

1 Dvs. beskeden må anvende andre ET-applikationer som mellemstationer.<br />

Side 19 af 113


Problemanalyse<br />

mennesker, som finder denne ET - udviklingen interessant. På lang sigt, specielt i forbindelse med<br />

nybyggeri, kan vi dog forvente, at produktet vil få en mere folkelig appel og pris.<br />

2.5.2 Projekt-afgrænsning<br />

Imidlertid er det produkt, som vi har specificeret i kravspecifikationerne uden for vores<br />

rækkevidde at udvikle med vores nuværende ressourcer og tidsramme. Derfor vil vi følgende<br />

skitsere en principiel løsning, som giver os mulighed for at afprøve nogle af de teknologier og ideer<br />

som ville have indgået i en virkelig løsning, jvf. 2.6.<br />

Vi har identificeret følgende punkter som nødvendige for at lave en principiel løsning, som i en vis<br />

udstrækning har samme anvendelighed som en virkelig løsning.<br />

1. En elektronisk løsning der autonomt kan regulere en radiator.<br />

2. Et kommunikationsvej mellem den elektroniske løsning og en computer.<br />

3. Et stykke software til PC, som agerer grænseflade mellem brugeren og det elektroniske<br />

system.<br />

Punkt 1, giver os mulighed for at eksperimentere med embedded technology. Punkt 2 erstatter<br />

Bluetooth netværket med en simplere kommunikationsteknik, f.eks. seriel kommunikation og<br />

endelig vil punkt 3 indeholde grænsefladen ligesom i den rigtige løsning, dog vil vi ikke stille krav<br />

til, at grænsefladen skal kunne operere under et moderne styresystem (som f.eks. Windows).<br />

Med hensyn til funktionalitet vil vi opstille følgende kriterier, som det afgrænsede system skal<br />

kunne opfylde:<br />

1. Det elektroniske system skal autonomt kunne overvåge temperaturen og på baggrund heraf<br />

styre en radiator. Herunder:<br />

a. Systemet skal kunne registrere om hvorvidt vinduet er åbent eller lukket på baggrund<br />

af temperatur.<br />

b. Systemet skal kunne udføre natsænkning.<br />

c. Systemet skal kunne fungere som en termostat således, at en ønsket indetemperatur<br />

opretholdes.<br />

2. Det elektroniske system skal over forbindelsen til PC’en kunne:<br />

a. Formidle dets status og rumtemperatur.<br />

b. Modtage ønsket temperaturindstilling.<br />

c. Modtage tidsramme for natsænkning.<br />

3. PC-softwaren skal kunne opsamle information fra det elektroniske system og præsentere<br />

disse til brugeren samt formidle brugerens ordrer til det elektroniske system, hvor de danner<br />

grundlag for reguleringen.<br />

4. Produktet skal konstrueres således at det fungerer under kontrollerede forhold i en<br />

forsøgsopstilling med en elektrisk radiator, men skal ligeledes konstrueres på en sådan vis,<br />

at det uden alvorlige komplikationer skal kunne implementeres i en virkelig bolig.<br />

Side 20 af 113


Problemanalyse<br />

I resten af projektet vil vi anvende denne afgrænsning som referenceramme og forsøge at udvikle<br />

en løsning som lever op til de her specificerede krav. Endvidere vil vi ved rapportens afslutning<br />

anvende denne afgrænsning til at vurdere hvorvidt det er lykkedes at opfylde disse specifikationer.<br />

Som man vil bemærke gennem resten af projektet, vil vi gang på gang genopfinde hjulet, dvs.<br />

udvikle løsninger fra bunden i stedet for at inddrage allerede eksisterende løsninger. Dette gøres<br />

idet vi i dette studieprojekt ønsker at lære så meget som muligt.<br />

Vi har valgt at udskifte vores varmekilde fra en varmtvandsradiator til en alm. el-radiator. Dette<br />

skyldes, at vi ikke har ressourcer og tid nok til at lave en automatisk styring af en<br />

varmvandsradiator, da det er meget mere kompliceret at beskrive matematisk.<br />

Side 21 af 113


3.0 Modellering<br />

Modellering<br />

Vi vil her konstruere en simplificeret model for de termiske processer i et rum, idet en sådan<br />

model senere kan blive en stor hjælp til udviklingen af de styringsalgoritmer, som skal<br />

implementeres i vores produkt. For at sætte os i stand til at designe en effektiv model, vil vi først<br />

benytte nogle analysemetoder, som giver os indblik i systemet og dets dynamik. Vi vil i denne<br />

forbindelse benytte matematisk modellering. Idet vi først udvider vores forståelse af systemet vil vi<br />

blive i stand til at træffe bedre og mere nuancerede designbeslutninger, og det giver os bedre<br />

mulighed for på forhånd, at vurdere hvordan løsningerne vil opføre sig i den endelige<br />

implementation.<br />

3.1 Matematisk modellering<br />

Matematiske modeller anvendes i dag i stor udstrækninger til produktudvikling. Som eksempel<br />

kan nævnes softwarepakker, der kan hjælpe bygningsingeniøren med at bestemme belastninger af<br />

de enkelte dele i et bygningsværk eller programmer, som kan bruges til støtte i udviklingen af<br />

elektroniske kredsløb.<br />

Når der udvikles en matematisk model analyseres sammenhænge mellem systemets input og<br />

output. Målet er at give en matematisk beskrivelse af den ”sorte boks”, som forbinder input og<br />

output (se fig. 3.1). Hvis dette skal lykkes kræver det, at systemet kan nedbrydes i så mange<br />

enkeltdele, at de hver kan beskrives ved hjælp af kendte matematisk udtryk, hvorefter alle<br />

udtrykkene samles i et sæt af ligninger, som udgør den<br />

matematiske model. Dette viser sig ofte at være umuligt i<br />

praksis, fordi virkeligheden er mere nuanceret end det er<br />

overkommeligt at modellere. Derfor indgår der i modellen<br />

en række af antagelser og afgrænsninger, som gør<br />

modelleringsarbejdet overkommeligt.<br />

I forbindelse med modeller vil vi beskrive deres<br />

præcision, dvs. hvor mange antagelser og tilnærmelser der<br />

Input "Sort boks" Output<br />

Figur 3.1 - Den matematiske model søger at<br />

beskrive hvad, som foregår i den sorte boks.<br />

er er gjort i forbindelse med dem, som deres detaljeringsgrad. Des flere antagelser og tilnærmelser,<br />

des lavere detaljeringsgrad.<br />

Da en tilnærmet model i sagens natur ikke er helt præcis, er det vigtigt, at det vurderes hvad<br />

modellen skal bruges til og på baggrund heraf hvilken detaljegrad der er nødvendigt, for at give<br />

tilfredsstillende resultater.<br />

Gennem arbejdet i den matematiske modelleringsproces opnås indsigt i de enkelte dele af systemet<br />

og det samspil som er imellem dem.<br />

Side 22 af 113


3.1.1 Mål for modellering<br />

Modellering<br />

Det system som er relevant for os at modellere, er et rum i en almindelige beboelsesejendom.<br />

Dette specificerer vi til at være bestående af fire vægge, gulv, loft og et vindue, samt en<br />

fjernvarmeradiator. Ved hjælp af ovenstående metoder er det vores mål at opnå følgende:<br />

- Indsigt i systemet og dets dynamik.<br />

- Mulighed for at bruge resultaterne i designfasen, specielt:<br />

1. Mulighed for at vurdere løsningsforslag inden implementation.<br />

2. Mulighed for at bestemme sensor antal og placeringer på baggrund af modellen.<br />

3.2 Afgrænsning af det fysiske system<br />

For at opnå en forståelse af de termiske forhold i et rum har vi valgt, at konstruere en skalamodel<br />

hvori vi vil kunne afprøve den matematiske model under kontrollerede forhold. Grunden til, at vi<br />

vælger at tilnærme et virkeligt rum med en skalamodel er, at der i virkeligheden er en masse<br />

faktorer vi ikke, med de ressourcer og den tidsramme vi har, kan tage højde for i den matematiske<br />

modellering. Den fysiske model er altså en tilnærmelse til virkeligheden og har derfor en laver<br />

detaljeringsgrad end virkeligheden, men stadig med en højere detaljeringsgrad end den matematiske<br />

model. Den giver os derfor god mulighed for at efterprøve om de antagelser og tilnærmelser vi gør i<br />

forbindelse med den matematiske model fungerer. Endelig vil den give os den mulighed, at hvis der<br />

opstår situationer, som ikke kan modelleres direkte matematisk, kan vi opstille nogle empirisk<br />

bestemte ligninger på baggrund af forsøgsresultater fra skalamodellen.<br />

3.2.1 Den fysiske model<br />

Modellen er opbygget som en kasse hvor vægge, loft og gulv, alle er lavet af ens flamingo plader.<br />

I en af modellens sider er der indsat et plexiglasvindue med mulighed for åbning og lukning (se<br />

bilag ”fysmod”). Radiatoren er konstrueret af viklet kantaltråd uden kortslutninger, hvorover<br />

spændingen kan reguleres. Heri ligger en væsentlig forskel fra et virkeligt rum, hvor der oftest vil<br />

forefindes en varmtvandsradiator, men vi vælger at benytte en elradiatoren da en sådan er meget<br />

lettere at have med at gøre. Vi gør følgende antagelser og tilnærmelser i den fysiske model i forhold<br />

til et virkeligt rum.<br />

– Vi negligerer et virkeligt rums interiør og dets indvirkning på varmeforhold.<br />

– Vi betragter alle vægge som værende vendt ud mod de samme omgivelser, hvorimod et virkeligt<br />

rum oftest vil have de fleste af væggene rettet mod forskellige omgivelser.<br />

– Vi benytter en elradiator i stedet for en varmvandsradiator, da en elradiator er lettere at<br />

konstruere og styre.<br />

– Vi benytter vægge der kun består af et materiale, hvorimod vægge i et virkeligt rum vil bestå af<br />

flere forskellige materialer.<br />

– Da modellen er anbragt indendørs kan vi ikke lave forsøg under realistiske<br />

udendørstemperaturer.<br />

Side 23 af 113


3.2.2 De fysiske processer<br />

Modellering<br />

Vi ved fra termodynamikken, at vores fysiske system vil gå mod en tilstand af termodynamisk<br />

ligevægt. Dvs. afgivelsen af termisk energi er lig med tilvæksten af termisk energi, dette vil ske når<br />

enten systemets temperatur er ens med dets omgivelser, eller når tabet af termisk energi gennem<br />

vægge og vindue tilsvarer til, den af radiatoren tilførte energi.<br />

For at bestemme hvor hurtigt og ved hvilken temperatur, der opnås termodynamisk ligevægt, må<br />

vi undersøge de fysiske processor som bidrager til ændringer i systemets indre energi. Disse er<br />

tilførsel af energi fra radiatoren og afgivelse af energi gennem vægge og vindue.<br />

I vores fysiske model sker energitilførslen fra en elektrisk radiator. Energien som omsættes i<br />

radiatoren omsættes enten som varme i tråden eller luften, eller den omsættes til strålingsvarme. Vi<br />

vil gøre den antagelse, at al effekt afsat i tråden, vil blive omsat til varme i luften.<br />

Gennem vægge og vindue kan der både tilføres eller afgives energi til systemet afhængig af om<br />

temperaturen er størst i systemet eller i dets omgivelser. Hvis kassen er lukket tæt til, vil alt varmen<br />

blive transporteret gennem væggene og vinduet. Dette sker ved termisk konduktivitet, dvs.<br />

varmeledning gennem materialet (se<br />

fig. 3.2a).<br />

På indersiderne i rummet vil<br />

temperaturen nær vægge, gulv og loft<br />

være lavere end den generelle<br />

temperatur i rummet og på ydersiden<br />

vil temperaturen være højere nær<br />

vægge, gulv og loft end<br />

udetemperaturen 2 (se fig. 3.2b). Dette<br />

skyldes, at varmeovergangen i<br />

materialerne påvirker temperaturen<br />

omkring det ledende materiale. Disse<br />

temperaturforskelle medfører, at der<br />

ved vægge, gulv og loft, både på<br />

ydersiden og indersiden, er et luftlag<br />

Figur 3.2 - Graf der viser temperaturen som en funktion af<br />

positionen gennem en væg. a viser forløbet uden konvektion, mens b<br />

viser forløbet med konvektion.<br />

med konvektionsstrømninger. Disse luftlag har betydning for varmekonduktiviteten, da den<br />

afhænger af temperaturforskellen mellem inder- og yderside af muren, men de er imidlertid meget<br />

besværlige, at modellere. Derfor er der ved varmetabsberegninger til bygninger indført en størrelse<br />

kaldet overgangsisolans, som betegner den isolerende virkning af disse luftlag og beregnes som<br />

konstant uafhængig af temperaturforskelle og materialer [Both].<br />

3.3 Den matematiske model<br />

Vi vil her udvikle en matematisk model af den i 3.2.1 beskrevne fysiske model. I det følgende vil<br />

alle enkeltdelene blive beskrevet og bearbejdet, for derefter at blive samlet i en differentialligning,<br />

som giver en tilnærmet beskrivelse af systemet. Herefter vil vi uddrage nogle matematiske<br />

konklusioner på baggrund af denne og slutteligt vil vi sammenholde ligningen med forsøgsresultater<br />

fra den fysiske model.<br />

2 Det forudsættes her at indetemperaturen er højere end udetemperaturen.<br />

Side 24 af 113


3.3.1 Varmekilde<br />

Modellering<br />

Vores varmekilde i den fysiske model er en elradiator, som vi antager afgiver alt effekten som<br />

varme i luften. Endvidere antager vi, at ændringer i radiatorens effektafgivelse sker momentant. Vi<br />

har altså en funktion R(t), som beskriver hvor meget effekt, der omsættes i radiatoren og dermed<br />

fordeles i rummet som varme. Funktionen R(t) afhænger udelukkende af den elektriske energi, som<br />

påføres systemet.<br />

3.3.2 Effekttab gennem vinduer og vægge<br />

Som beskrevet i 3.2.2 er effekttabet gennem en væg eller et vindue en kompliceret affære, idet der<br />

både sker varmeledning og varmekonvektion. Det er herfor meget svært, at udvikle en matematisk<br />

model for den dynamik, som udspiller sig ved og gennem væggen. Den del af varmetabet der sker<br />

ved varmeledning, kan beskrives med formlen:<br />

hvor:<br />

t ude − tinde<br />

P = A⋅<br />

(3.1)<br />

k<br />

∆x<br />

- P er den effekt der transporteres igennem materialet [W]<br />

- tude er udetemperaturen [K]<br />

- tinde er indetemperaturen [K]<br />

- A er areal af overgangsmaterialet [m 2 ]<br />

- k er varmeledningskoefficient [W/(m⋅K)]<br />

- ∆x er tykkelsen af materialet [m]<br />

Konstanterne k/∆x kaldes isolansen og betegnes R.<br />

For at beskrive varmetabet der sker gennem varmekonvektion benyttes overgangsisolansen<br />

Rovergang. Denne er jvf. 3.2.2 en tilnærmelse til konvektionen og benyttes ved, at den lægges til<br />

isolansen. Dermed er varmetabet gennem konvektion tilnærmet ved udtrykket for<br />

varmeledning[Both].<br />

Denne formel opstilles for både vægge og vindue:<br />

hvor:<br />

&<br />

- U(t) er udetemperaturen [K]<br />

- T(t) er indetemperaturen [K]<br />

- R er isolansen [(m 2 ⋅K)/W]<br />

U ( t)<br />

−T<br />

( t)<br />

P(<br />

t)<br />

vindue = Avindue<br />

⋅<br />

(3.2)<br />

R + R<br />

vindue<br />

vægge<br />

overgang<br />

U ( t)<br />

− T(<br />

t)<br />

P(<br />

t)<br />

vægge = Avægge<br />

⋅<br />

(3.3)<br />

R + R<br />

overgang<br />

Vi kan nu opstille en differentialligning udfra loven om energibalance i et termisk system. Denne<br />

ser ud som følger [Haugen]:<br />

dE(<br />

t)<br />

= ∑ Q(<br />

t)<br />

i i (3.4)<br />

dt<br />

Side 25 af 113


hvor:<br />

Modellering<br />

– E er systemets termiske energi [J]<br />

– t er tiden [s]<br />

– ΣiQi er summen af energistrømninger i systemet, dvs. tilført energi pr. sek. [W]<br />

Dette giver os følgende differentialligning for energibalancen af vores system:<br />

hvor:<br />

dE(<br />

t)<br />

= R(<br />

t)<br />

+ A<br />

dt<br />

vindue<br />

U ( t)<br />

−T<br />

( t)<br />

⋅<br />

R + R<br />

vindue<br />

R(t) er radiatorens effekttilførsel [W].<br />

3.3.3 Omregning fra energi til temperatur<br />

overgang<br />

+ A<br />

vægge<br />

U ( t)<br />

−T<br />

( t)<br />

⋅<br />

R + R<br />

vægge<br />

overgang<br />

Indtil nu har vi kigget på tilførsel og tab af effekt, men som output er vi interesseret i en funktion,<br />

som beskriver temperaturen i systemet. Et termisk systems energi (E) er proportional med<br />

temperaturen hvor proportionalitetsfaktoren er systemets varmekapacitet (C):<br />

hvor:<br />

C ⋅ T ( t)<br />

= E(<br />

t)<br />

(3.6)<br />

T(t) er temperaturen af systemet [K]<br />

C er systemets varmekapacitet [W/K]<br />

At finde varmekapaciteten (C=m⋅c) for systemet er imidlertid besværligt, da det vil være en for<br />

grov antagelse at sige, at temperaturen er konstant i hele systemet, vi er herfor nød til at kigge på<br />

luften, vinduet og væggene for sig.<br />

(3.5)<br />

Vi vil antage at temperaturen i luften er homogen, hvorfor vi kan sige, at varmekapaciteten af<br />

luften er:<br />

hvor:<br />

C = m ⋅ (3.7)<br />

luft cluft<br />

cluft er luftens specifikke varmekapacitet [W/(kg⋅K)]<br />

mluft er luftens masse [kg]<br />

Vanskeligere er det at bestemme varmekapaciteten for vægge og vindue, dette skyldes at<br />

temperaturen som beskrevet i 3.2.2 ikke er homogen gennem materialet, da temperaturen falder fra<br />

indersiden til ydersiden. Da vi antager, at der udelukkende transporteres varme gennem vægge og<br />

vindue ved termisk konduktivitet, vil det sige, at temperaturen falder lineært gennem materialet. På<br />

baggrund heraf tilnærmer vi temperaturen til at være gennemsnitstemperaturen i materialet. Vi kan<br />

altså opstille følgende for den termiske energi i vægge og vindue:<br />

T ( t)<br />

+ U ( T )<br />

Evindue = ( mvindue<br />

⋅c<br />

vindue ) (3.8)<br />

2<br />

&<br />

Side 26 af 113


hvor:<br />

Modellering<br />

T ( t)<br />

+ U ( T )<br />

Evægge = ( mvægge<br />

⋅c<br />

vægge ) (3.9)<br />

2<br />

c er materialets specifikke varmekapacitet [W/(kg⋅K)]<br />

m er materialets masse [kg]<br />

Systemets samlede termiske energi bliver da:<br />

T ( t)<br />

+ U ( t)<br />

E system = T ( t)<br />

⋅C<br />

luft + ⋅(<br />

Cvindue<br />

+ Cvægge<br />

) (3.10)<br />

2<br />

Sammenholdes det ovenstående med formel 5 giver det følgende differentialligning for systemet:<br />

d(<br />

T ( t)<br />

⋅ C<br />

luft<br />

T ( t)<br />

+ U ( t)<br />

+ ⋅ ( C<br />

2<br />

dt<br />

vindue<br />

+ C<br />

vægge<br />

))<br />

= R(<br />

t)<br />

+ A<br />

(3.11)<br />

vindue<br />

U ( t)<br />

− T ( t)<br />

⋅<br />

R + R<br />

vindue<br />

overgang<br />

+ A<br />

vægge<br />

U ( t)<br />

− T ( t)<br />

⋅<br />

R + R<br />

Vi vælger at betragte udetemperaturen som værende konstant, hvilket eliminerer U(t) på venstre<br />

side i ligning 3.12, idet differentialkoefficienten til en konstant er nul. Dette giver følgende udtryk<br />

der er repræsenteret som blokdiagram i figur 3.3:<br />

1 1<br />

d(<br />

T ( t)<br />

⋅ ( Cluft<br />

+ Cvindue<br />

+ Cvægge<br />

))<br />

2 2<br />

U ( t)<br />

− T ( t)<br />

U ( t)<br />

− T ( t)<br />

= R(<br />

t)<br />

+ Avindue<br />

⋅<br />

+ Avægge<br />

⋅<br />

dt<br />

R + R<br />

R + R<br />

R(t)<br />

U(t)<br />

+<br />

+<br />

A<br />

R<br />

tot<br />

tot<br />

+<br />

−<br />

C<br />

luft<br />

C<br />

+<br />

1<br />

vindue<br />

+ C<br />

2<br />

vægge<br />

(3.12)<br />

vindue<br />

overgang<br />

Figur 3.3 - Blokdiagram over den matematiske model.<br />

T &<br />

Side 27 af 113<br />

T(t)<br />

vægge<br />

vægge<br />

overgang<br />

overgang


Modellering<br />

Radiatoreffekten (R) summeres med effekttabet gennem vinduer og vægge. Ligningen forstærkes<br />

med 1/Ctot der er den samlede varmekapacitet af systemet, hvorefter den integreres. Systemet har<br />

tilbagekobling gemme effekttabet fra vinduer og vægge der benytter forskellen mellem T(t) og<br />

udetemperaturen U(t) der forstærkes således, at den giver effekttabet.<br />

3.3.4 Den matematiske models antagelser og tilnærmelser<br />

I forbindelse med den matematiske model er der i det ovenstående blevet opstillet følgende<br />

antagelser og tilnærmelser i forhold til den fysiske model.<br />

- Alt effekt i kantaltråden afsættes til luften i modellen, og at det sker momentant.<br />

- Varmen i luften fordeles således, at der er ens temperatur inde i hele modellen, dvs. at<br />

temperaturen i luften er homogen.<br />

- Temperaturen i omgivelserne regnes for konstant.<br />

- Ved transporten gennem væggene beskrives følgerne af konvektion med konstanten Rg og<br />

hele overgangen regnes derefter som konduktivitet.<br />

- Modellen fungerer bedst omkring et arbejdspunkt ved stuetemperatur, ± 40°C da væsentlige<br />

konstanter afviger udenfor dette område.<br />

3.4 Bearbejdelse med laplacetransformationen<br />

Laplacetransformationen er et nyttigt værktøj, der sætter brugeren i stand til at behandle<br />

vanskelige differentialligninger, som ville være næsten umulige at løse på sædvanlig vis.<br />

Laplaceoperatoren kan benyttes til at transformere differentialligninger over til rene algebraiske<br />

udtryk, som kan bearbejdes på klassisk vis. Den algebraiske ligning, der fremkommer slutteligt<br />

beskriver tidsresponset for det system, som differentialligningen blev stille op for. Dermed kan det<br />

ses, hvordan systemet vil reagere som en funktion af tiden.<br />

Metoder er som følger [Haugen]:<br />

- Differentialligningen laplacetransformeres.<br />

- De enkelte indgangsvariables laplacetransformerede funktionsudtryk findes og<br />

indsættes. Indgangsvariablerne er de variable der kan ændres og dermed have<br />

indflydelse på output.<br />

- Ligningen opstilles som overføringsfunktionen, hvorfra de relevante oplysninger<br />

om systemets forstærkning og tidskonstant kan findes.<br />

Med overføringsfunktionen har vi opnået tilstrækkelig viden omkring systemet til at forudse<br />

hvorledes det vil opføre sig. Hvis differentialligningen ønskes på algebraisk form fortsættes på<br />

følgende vis:<br />

- Ligningen ordnes således at udgangsvariablen, der er den variable som<br />

tidsresponset ønskes for, isoleres.<br />

- Ligningen kan inverslaplacetransformeres tilbage og giver så systemets<br />

tidsrespons på algebraisk form, hvilket kan benyttet til verificere den matematiske<br />

model og til at finde slutværditeoremet.<br />

Side 28 af 113


Modellering<br />

En differentialligning siges at befinde sig i tidsdomænet, mens den efter at være blevet<br />

laplacetransformeret befinder sig i frekvensdomænet. Hvis der foretages<br />

inverslaplacetransformation befinder ligningen sig igen i tidsdomænet, og kan derefter benyttes til<br />

at forudsige systemets tidsrespons.<br />

3.4.1 Arbejdspunktligning<br />

Ved laplacetransformation mistes information omkring begyndelsesbetingelserne for det<br />

modellerede system. For at imødegå dette vil vi lade vores matematiske beskrivelse tage<br />

udgangspunkt i et veldefineret arbejdspunkt, dvs. vores ligning vil beskrive ændringer i forhold til<br />

dette arbejdspunkt. En veldefineret tilstand i vores model indtræder når differentialledet i ligningen<br />

for systemet er 0. Dvs. når temperaturen er stabil:<br />

U ( 0)<br />

−T<br />

( 0)<br />

U ( 0)<br />

−T<br />

( 0)<br />

0 = R(<br />

0)<br />

+ Avindue<br />

⋅<br />

+ Avægge<br />

⋅<br />

(3.13)<br />

R + R<br />

R + R<br />

vindue<br />

overgang<br />

vindue<br />

overgang<br />

For at finde frem til arbejdspunktsligningen, dvs. en ligning der beskriver ændringer udfra et<br />

arbejdspunkt, trækkes ovenstående ligning 3.13 fra ligningen for modellen 3.12. Dette giver<br />

følgende overføringsfunktion, hvori der indsættes konstanter, gældende for vores fysiske model (fra<br />

bilag "Fysmod"):<br />

∆T<br />

( s)<br />

1<br />

=<br />

⇒<br />

∆R(<br />

s)<br />

⎛ 1 1 ⎞ A<br />

A<br />

vindue<br />

vægge<br />

s⎜C<br />

luft + Cvindue<br />

+ Cvægge<br />

) ⎟ +<br />

+<br />

⎝ 2 2 ⎠ R + R R + R<br />

(3.14)<br />

∆T<br />

( s)<br />

0.<br />

836<br />

=<br />

∆R(<br />

s)<br />

s ⋅ 991 + 1<br />

vindue<br />

overgang<br />

vindue<br />

overgang<br />

I denne ligning kan forstærkningen aflæses til at være 0.836 og tidskonstanten til at være 991.<br />

Hvis vi anvender slutværditeoremet på ligning 3.14. dvs. vi lader s gå mod nul, får vi at:<br />

∆T = ∆R<br />

⋅ 0.<br />

836 (3.15)<br />

Denne ligning fortæller hvor stor ændring i temperatur vi vil opnå ved en given effektændring, når<br />

systemet igen når en stabil tilstand. Det vil sige, at hvis vi ønsker at hæve temperaturen med 10<br />

grader, skal effektafgivelsens øges med 12W. Ligningen gælder generelt udfra et arbejdspunkt,<br />

hvilket gør at den beskriver både opvarmning og ne<strong>dk</strong>øling.<br />

Selvom overføringsfunktionen er sætter os i stand til at forudsige systemets overordnede reaktion,<br />

men for at kunne forudsige systemets værdi på et bestemt tidspunkt skal ligningen tilbage i<br />

tiddomænet. Gennem inverslaplacetransformation fås følgende algebraiske udtryk for<br />

differentialligning 2.13:<br />

991<br />

∆ T ( t)<br />

= ∆R<br />

⋅ 0.<br />

836(<br />

1−<br />

e ) ) (2.16)<br />

0<br />

R0 er enhedsspringet i denne ligning og beskriver en konstant tilført radiator effekt, som<br />

påbegyndes til tiden t=0.<br />

− t<br />

Side 29 af 113


Modellering<br />

Udtrykket 3.17 har kun ∆R som input og afhænger derfor ikke af temperaturforskellen mellem<br />

inde- og udetemperatur i det øjeblik ∆Ro ændres. Grunden til, at den ikke optræder i vores<br />

arbejdspunktligning 3.16 er, at den elimineres under udledningen af denne (se bilag "LAPLACE").<br />

Dette skyldes vores tilnærmelse om, at al varmetransport sker ved konduktivitet (jvf. 3.2.2). Des<br />

større temperaturforskellen er des større betydning får konvektion. I vores model regnes<br />

konvektionen konstant som en isolans på 0.17, men i virkeligheden ændrer denne sig med<br />

temperaturforskellen. Overgangsisolansen er dog tilstrækkelig nøjagtig i et arbejdspunkt gældende<br />

for både ude- og indetemperaturen omkring stuetemperatur. Vi kan altså derfor forvente, at<br />

arbejdspunktligningen vil miste nøjagtighed des større temperaturforskellen er.<br />

3.5 Verificering af den matematiske model<br />

For at verificere om der er sammenhæng mellem den fysiske og den matematiske model, har vi<br />

gennemført en række forsøg med den fysiske model. Vi kan derigennem undersøge om den række<br />

af antagelser og tilnærmelser vi har foretaget i den matematiske model har været præcise nok til at<br />

give et resultat, der stemmer overens med virkeligheden. Forsøgene blev udført som op- og afkøling<br />

af kassen, hvor der blev taget temperaturmålinger indtil indetemperaturen havde stabiliseret sig.<br />

Nærmere beskrivelse findes i forsøgsbeskrivelserne i (bilag ”Forsøgsbeskrivelser”).<br />

Ved verifikation af arbejdspunktsligningen indsættes parametrene fra forsøg 1 i ligning 2.16 hvilket<br />

giver følgende algebraiske udtryk.<br />

∆ T ( t)<br />

= 35 ⋅ 0.<br />

836(<br />

1−<br />

e<br />

− t<br />

991<br />

Denne plottes i fig. 2.2 sammen med forsøgsresultaterne fra forsøg 1.<br />

Figur 3.4 – Grafen viser opvarmning for forsøget og den matematiske model.<br />

Af fig. 3.4 ses det, at de to grafer følger hinanden og vi kan derfor sige, at antagelserne i den<br />

matematiske model ikke er gået ud over nøjagtigheden i modellen. Den lille forskel der ligger i<br />

slutværdierne kan skyldes f.eks. at modellen er dårligere isoleres en antaget i den matematiske<br />

Side 30 af 113<br />

)


Modellering<br />

model, hvilket ganske rigtigt er tilfældet. Låget passer ikke helt præcist på modellen og vindue kan<br />

ikke lukkets helt tæt til. Dette gør at den matematiske model har en større forstærkning end den<br />

fysiske model.<br />

For at verificere arbejdspunktligningen ved ne<strong>dk</strong>øling betragtes den stabile termiske tilstand med<br />

konstant effekt på radiatoren som det nye arbejdspunkt. Når effekten fjernes ved ne<strong>dk</strong>ølingsforsøget<br />

kan ∆R(t) derfor betragtes som et negativ spring, hvilket plottes sammen med forsøgsresultaterne<br />

fra forsøg x.x i fig. 3.5:<br />

−0.<br />

001155⋅t<br />

∆ T ( t)<br />

= −35⋅<br />

0.<br />

837(<br />

1−<br />

e )<br />

Figur 3.5 – Grafen viser ne<strong>dk</strong>øling for forsøget og den matematiske model.<br />

Af fig. 3.5 ses at de to grafer for forsøget og den matematiske model følger hinanden pænt. Vi kan<br />

se at afkølingen for den matematiske model går langsommere end for forsøget. Forskellen kan<br />

ligesom sidst skyldes at den matematiske model er dårligere isoleres end antages, hvilket vil gøre<br />

udligningen af temperaturen hurtigere.<br />

3.6 Delkonklusion<br />

Der kan fra det ovenstående konkluderes, at det gennem en række tilnærmelser og antagelser er<br />

lykkedes, at skabe en matematisk model, der stemmer godt overens med den fysiske, de forklarede<br />

fejlkilder taget i betragtning. Vores overføringsfunktion og arbejdspunktsligning giver en<br />

tilstrækkelig detaljeret beskrivelse af systemet, som sætter os i stand til at forudsige systemets<br />

opførsel.<br />

Vi er opmærksomme på, at den matematiske model har et begrænset gyldighedsområde, idet den<br />

er opbygget på baggrund af den fysiske model og derved kun forholder sig til virkeligheden gennem<br />

antagelserne jvf. 3.2.1.<br />

Side 31 af 113


4.0 Regulering<br />

Regulering<br />

Reguleringen skal opfylde projektafgrænsningens 1. punkt; "det elektroniske system autonomt<br />

kunne overvåge temperaturen og på baggrund heraf styre en radiator” og de der tilhørende krav.<br />

Kravene til reguleringsalgoritmen er jvf. 3.5.2 følgende:<br />

1. Systemet skal kunne registrere om hvorvidt vinduet er åbent eller lukket på baggrund<br />

af temperatur.<br />

2. Systemet skal kunne udføre natsænkning.<br />

3. Systemet skal kunne fungere som en termostat således, at en ønsket indetemperatur<br />

opretholdes.<br />

At der skal reguleres på baggrund af temperaturen betyder ifølge den matematiske model at<br />

reguleringen både skal have indetemperaturen og en arbejdspunktstemperatur til rådighed. På<br />

baggrund af konklusionerne til den matematiske model vil vi benytte denne til at opstille<br />

reguleringsalgoritmerne for systemet.<br />

Vi vil ikke udvikle styringsalgoritmer til et virkeligt rum, men i stedet koncentrere os om at<br />

udvikle en styring til elradiatoren i den fysiske model. Vi vil imidlertid jvf. 2.5.1 bestræbe os på at<br />

opbygge styringen således, at den nemt vil kunne implementeres i et virkeligt rum.<br />

Der findes forskellige metoder til at konstruere en reguleringsalgoritme. Vi vælger at udvikle en<br />

løsning udfra logisk tænkning, fremfor at benytte mere gennemprøvede og anerkendte metoder, da<br />

løsningen skal bygge både på teorien fra den matematiske model og logiske valg fra empiriske<br />

forsøg.<br />

For at undersøge hvordan op- og ne<strong>dk</strong>ølingsprocesser finder sted når vinduet åbnes og lukkes vil<br />

vi med den fysiske model gennemføre forsøg med forskellige sammensætninger af åbnet og lukket<br />

vindue i både op- og ne<strong>dk</strong>ølingssammenhæng. Vi vil derefter sammenholde disse resultater med<br />

resultaterne fra den matematisk model og derudfra opstille en metode til påvisning om hvorvidt<br />

vinduet er åbent eller lukket.<br />

For at lette udviklingsarbejdet vil vi programmere en computermodel i C++ til at simulere den<br />

fysiske model på baggrund af differentialligning 3.12. Der simuleres på baggrund af<br />

differentialligningen og ikke det algebraiske resultat fra den matematiske model idet det lettere<br />

giver mulighed for at manipulere ligningen til at simulere f.eks. et åbent vindue. I<br />

computermodellen kan reguleringsalgoritmerne implementeres som et modul og kan løbende<br />

afprøves. Derved kan reguleringen komme til at fungere inden den implementeres i hardwaren.<br />

4.1 Computersimulation<br />

I modsætning til matematisk modellering, som udnytter symbolsk matematik, er<br />

computersimulering baseret på numeriske metoder. Der er en klar sammenhæng imellem de to, idet<br />

en computersimulering nødvendigvis må have nogle matematiske formler at simulere udfra. Men<br />

fordelen er netop computerens store regnekraft kan bruges til at bearbejde matematiske udtryk, som<br />

er vanskelige at bearbejde matematisk, f.eks. differentialligninger.<br />

En anden fordel ved computersimulationen er dens mulighed for fleksibilitet. Den kan udvikles på<br />

en sådan måde, at brugeren har god mulighed for at variere input og indsætte forskellige fysiske<br />

konstanter og startbetingelser, hvilket hjælper brugeren til, at få indsigt i det modellerede system,<br />

fordi ve<strong>dk</strong>ommende nemt kan ændre de forskellige variable og hurtigt få et resultat på baggrund<br />

heraf. Endeligt kan modellen udvikles på en sådan måde, at det er muligt at indsætte procedurer,<br />

Side 32 af 113


Regulering<br />

som simulerer mulige løsningsforslag. Dette giver mulighed for at vurdere løsningens opførsel og<br />

effektivitet, og hermed er der også mulighed for at opdage fejl eller mangler inden<br />

implementeringsfasen påbegyndes. Der er altså mulighed for at bottom-up teste<br />

reguleringsalgoritmerne inden implementationen i microcontrolleren.<br />

4.2 Analyse af reguleringen<br />

I analyse delen vil de enkelte problemstillinger blive analyseret og løst, og der vil blive opstillet<br />

top-down diagrammer over løsningerne. Selve reguleringsmodulet opdeles i to hoveddele:<br />

- Åbent vindue<br />

- Lukket vindue<br />

Under disse tre dele kaldes de enkelte<br />

undermoduler. Initialiseringen gennemløbes<br />

første gang og foretager de nødvendige<br />

indledende manøvrer. Under de to hoveddele<br />

åbent og lukket vindue skal<br />

styringsalgoritmerne som tidligere specificeret<br />

kunne løse følgende problemstillinger (fig. 4.1):<br />

- Opretholdelse af ønsket<br />

indetemperatur.<br />

- Natsænkning.<br />

- Registrering af åbnet vindue.<br />

- Registrering af lukket vindue.<br />

Regulering<br />

Åbent vindue Lukket vindue<br />

Registrering af<br />

lukning af<br />

vindue<br />

Natsænkning<br />

Registrering af<br />

åbning af<br />

vindue<br />

Opretholdelse<br />

af temperatur<br />

Figur 4.1 – Topdown over reguleringsalgoritmens<br />

opbygning i 2 hoveddele.<br />

Under lukket vindue vil der blive testet for åbning af vindue, og der vil ligeledes blive gennemført<br />

opvarmningstest som metode til registrering af åbent vindue i forbindelse med opvarmning. Under<br />

åbent vindue vil der blive teste for lukning af vindue.<br />

4.2.1 Opretholdelse af temperatur<br />

Styringsalgoritmerne skal ligeledes kunne opretholde en ønsket temperatur i rummet og derved<br />

fungere som en slags termostat. En ændring i rumtemperaturen kan betragtes som en ændring i<br />

energistrømningerne i systemet, dvs. en stigning i temperaturen svarer til mere energistrømning ind<br />

i systemet. Det betyder altså i praksis, at når temperaturen i rummet stiger skal effekten mindskes<br />

således, at temperaturen igen er stabil. Det omvendt gør sig gældende ved et fald i temperaturen.<br />

Stigninger i energistrømningerne ind i systemet vil i et virkeligt rum kunne bestå af varme fra elartikler<br />

eller mennesker. I den fysiske model eksisterer disse faktorer ikke og svingninger i<br />

effektindstrømningen vil kun finde sted gennem ændringer i udetemperaturen eller gennem kunstigt<br />

fremkaldte ændringer. Dette kunne f.eks. være indsættelse af et ekstra varmelegeme. En sådan<br />

effektændring indgår ikke i den matematiske model og styringen kan derfor ikke direkte tage højde<br />

for den, hvilket skaber behovet for en speciel termostatfunktion.<br />

Side 33 af 113


Regulering<br />

En simpel og effektiv metode er at regulere udfra den effekt der oprindeligt skulle til for at<br />

opretholde temperaturen, og det er derfor den metode vi vælger at arbejde videre med. Dvs. den<br />

effekt der teoretisk skulle kunne opretholde den ønskede temperatur under forudsætning af at kun<br />

udetemperaturen har indflydelse. Vi benytter altså udetemperaturen som arbejdspunkt, hvilket gør<br />

at der altid bliver taget højde for ændringer i udetemperaturen. Denne teoretiske effekt (Wteo) kan<br />

beregnes ved slutværditeoremet (ligning 3.16) udfra udetemperaturen på følgende vis:<br />

hvor:<br />

W<br />

teo<br />

Wteo er den teoretiske effekt.<br />

Tønsket er den ønskede temperatur.<br />

Tude er udetemperaturen.<br />

Tønsket<br />

−Tude<br />

= (4.1)<br />

0.<br />

837<br />

For at undersøge hvor meget der skal reguleres, benyttes forskellen mellem den ønskede<br />

temperatur og den øjeblikkelige indetemperatur. Denne difference vil være negativ hvis<br />

temperaturen er højere end den ønskede temperatur. Differencen multipliceres med en faktor (x) og<br />

lægges derefter til den teoretiske effekt. Dette giver den reelle effekt (Wrel) der er den effekt der er<br />

korrigeret for temperaturændringen.<br />

hvor:<br />

Wrel er den reelle effekt.<br />

Tinde er indetemperaturen.<br />

x er en skaleringsfaktor.<br />

( T − T ) ⋅ x<br />

Wrel = Wteo<br />

+ ønsket inde<br />

Med denne løsning kan der imidlertid opstå det problem at effekten og temperaturen stabiliseres et<br />

stykke fra den ønskede værdi. Dette sker fordi reguleringen ikke har hukommelse. Den regulerer<br />

udfra den øjeblikkelige situation og glemmer derved de ændring der er blevet gjort tidligere. Hvis<br />

der kommer en ændring i energistrømningerne i systemet således, at der sker en effektstigning (se<br />

tidligere i afsnittet), vil det forsage en opvarmning og indetemperaturen vil stige. Dette vil gøre, at<br />

effekten vil falde proportionalt dermed. Når effekten falder vil stigningen blive mindre og<br />

effektfaldet vil derfor også blive mindre. Dette gør, at der opnås en ligevægtstilstand, hvor<br />

temperaturen og effekten vil stabilisere sig. I denne stabile tilstand har reguleringen glemt, at den<br />

under opvarmningen, har sænket effekten. Temperaturen i den stabile tilstand er altså lavere den<br />

ville være, hvis der ikke var blevet reguleret under opvarmningen. Reguleringen benytter dog stadig<br />

denne "kunstigt" lave temperatur som udgangspunkt for at finde ud af, hvor meget effekten skal<br />

sænkes for at modvirke den ekstra effektkilde og derved er problemet opstået. Dette problem kan en<br />

stor skaleringsfaktor minimere.<br />

Skaleringsfaktoren x er et udtryk for hvor hurtigt reguleringen skal finde sted, og den er ligeledes<br />

et udtryk for hvor præcis reguleringen er. Des større faktoren, des hurtigere og mere præcis er<br />

reguleringen. I dette tilfælde vælges x til 50 3 idet det giver en hurtig regulering og tillige en god<br />

præcision. Dette giver følgende formel:<br />

( T − T ) ⋅50<br />

(4.2)<br />

W rel = Wteo<br />

+ ønsket inde (4.3)<br />

3 Faktoren er bestemt udfra empiriske forsøg i computermodellen.<br />

Side 34 af 113


Regulering<br />

Når der benyttes så stor en faktor opstår imidlertid det problem, at effektspringene kan blive meget<br />

store, og da radiatoren i den fysiske model har et begrænset virkeområde er det nødvendigt at<br />

afgrænse effekten til et interval der svarer til radiatorens formåen. Intervallet sættes til at ligge<br />

mellem 0 og 50 W.<br />

Natsænkning:<br />

Natsænkning implementeres let idet det blot kræver, at der i det specificerede tidsinterval<br />

indsættes den ønskede nattemperatur som Tønsket.<br />

4.2.2 Registrering af åbning af vindue<br />

Vi vil her gennemføre en analyse af de processer der foregår i systemet og derigennem<br />

fremkomme med en løsning til registrering af åbning af vindue. Ved en analyse af de termiske<br />

processer i den fysiske model kan følgende opdeling gennemføres:<br />

- Opvarmning med lukket eller<br />

åbent vindue.<br />

- Ne<strong>dk</strong>øling med lukket eller<br />

åbent vindue.<br />

- Stabil tilstand med lukket eller<br />

åbent vindue.<br />

Vi har altså 3 tilstande der hver<br />

kan optræde med 2 forskellige<br />

situationer. De 3 tilstande med<br />

lukket vindue er beskrevet<br />

indgående i afsnittet om den<br />

matematiske model, og vi vil derfor<br />

først koncentrere os om<br />

situationerne med åbent vindue.<br />

Dette kan analyseres gennem<br />

forsøg x.x (beskrevet i bilag<br />

Figur 4.2 – Forsøg x.x. Temperaturen som en funktion af<br />

tiden i sekunder. Først en opvarmning med lukket vindue<br />

og derefter en ne<strong>dk</strong>øling med åbent.<br />

”forsøgsbeskrivelse”) der først beskriver en opvarmning med lukket vindue. Når temperaturen har<br />

stabiliseret sig åbnes vinduet hvilket sætter en ne<strong>dk</strong>øling med åbent vindue i gang (se fig. 4.2).<br />

Under hele forløbet holdes radiatoreffekten konstant. På grafen ses det tydeligt hvornår vinduet blev<br />

åbnet og hvilken effekt det fik på temperaturen. Åbningen resulterer i et drastisk fald i temperaturen<br />

før den igen stabilisere sig på et lavere niveau.<br />

Vi vælger at betragte processer med åbne vindue som værende 1. ordens funktioner og derfor<br />

samme type funktion som processer med lukket vindue. Vi kan derfor ligeledes jvf. 3.4 betragte<br />

opvarmning og ne<strong>dk</strong>øling under samme funktion og stabil tilstand som værende slutværditeoremet<br />

for dem. Vi har altså begrænset de før omtalte 3 tilstande med hver 2 situationer til følgende 2<br />

hovedsituationer:<br />

- Åbnet vindue.<br />

- Lukket vindue.<br />

Side 35 af 113


Regulering<br />

Det er tydelig ud fra fig. 4.2 at tidsresponset og dermed tidskonstanten ikke er det samme med<br />

åbent og lukket vindue, ligesom forstærkningen også er forskellig. Både tidskonstanten og<br />

forstærkningen formindskes ved åben vindue, hvilket giver et forløb der er både hurtigere og med<br />

mindre udslag. Dette stemmer overens med den logiske slutning at effekttabet vil blive større når<br />

vinduet åbnes. Det kan sammenlignes med en forringelse af isolansen, dvs. en mindre R-værdi.<br />

For at kunne registrere om hvorvidt vinduet er åbent er det essentielt at koncentrere sig om<br />

detektering af skiftet mellem lukket til åbent. At konstatere et skift fra lukket til åbent er forholdsvis<br />

enkelt udfra forsøgsresultaterne, der viser det før omtalte fald i temperaturen, når der er tale om<br />

stabil tilstand og ne<strong>dk</strong>øling. Hvis vinduet åbnes under opvarmning kan ændringen ses i<br />

tidskonstanten og forstærkningen og radiatoren kan på baggrund deraf slukkes. Registreringen af<br />

temperaturfaldet kan ske ved en lagring af indetemperaturen over et tidsrum og så sammenligne den<br />

første med den sidste måling. Denne lagring kan finde sted i en tabel hvor alle pladserne rykkes en<br />

plads bagud hver gang der kommer en ny måling, som så lægges ind på den først plads. Tidsrummet<br />

der lagres over sættes til 120 sekunder idet der er tilstrækkelig tid til at ændringer i<br />

indetemperaturen vil være synlige. Testen skal dog ikke finde sted i det tilfælde, hvor den ønskede<br />

temperatur bliver sat ned således, at der fremkommer et tilsigtede temperaturfald. Dette betyder<br />

altså at testen ikke skal udføres og tabellen ikke opdateres, når den ønskede temperatur er mindre<br />

end indetemperatur. Ydermere skal tabellen initialiseres til den nye ønskede temperatur idet testen<br />

ellers ville opfange et temperaturfald når der igen sammenlignes værdier i tabellen.<br />

Alt efter vinduets størrelse og forskellen på udetemperatur og ønsket indetemperatur vil faldet ikke<br />

altid være så drastisk som vist i fig. 4.3 og vil derfor måske ikke kunne registreres, men desto<br />

mindre faldet er des mindre vil effekttabet fra radiatoren være.<br />

4.2.3 Registrering af lukning af<br />

vindue<br />

Registrering af lukning af vindue er<br />

vanskeligere end registrering af<br />

åbning, idet der ikke umiddelbart kan<br />

ses en ændring af temperturen som<br />

følge af lukningen. Hvis vinduet<br />

åbnes fra en stabil tilstand med effekt<br />

på radiatoren vil radiatoren slukke og<br />

der vil som tidligere beskrevet ske et<br />

drastisk temperatur fald. Når vinduet<br />

lukkes vil indvirkningerne på<br />

indetemperaturen være meget<br />

begrænsede og det besværliggør<br />

registreringen der skulle ske netop på<br />

baggrund af indetemperaturen.<br />

Figur 4.3 – En ne<strong>dk</strong>ølingskurve fra den fysiske model med<br />

slukket radiator og åbent vindue, hvor vinduet lukkes ca. ved<br />

måling 430.<br />

En løsningsmulighed kunne være at benytte det faktum, at væggene afkøles langsommere end<br />

luften. Det vil så føre til, at når vinduet lukkes vil der ske en lille opvarmning af luften som følge af<br />

væggenes højere temperatur. Dette er under forudsætning af, at vinduet ikke har været åbnet så<br />

længe at væggene ligeledes er blevet ne<strong>dk</strong>ølet til udetemperaturen. Endvidere vil der når vinduet<br />

lukkes opstå et lille temperaturspring idet trækken hører op. For at undersøge om hvorvidt dette kan<br />

Side 36 af 113


Regulering<br />

praktiseres er forsøg a.a blevet gennemført med målinger hver 10’ende sekund. Først opvarmes den<br />

fysiske model til en stabil tilstand hvorefter vinduet åbnedes og radiatoren slukkedes. Da<br />

temperaturen igen havde stabiliseret sig blev vinduet lukket og resultaterne sammenfattet i fig. 3.3.<br />

Vinduet lukkes omkring den 440 måling og den forventede stigningen ses svagt. Stigningen er<br />

imidlertid kun på ca. 0,5 grad og vil derfor være svær at detektere. I et virkeligt rum kan en så svag<br />

stigning fremkomme på andre måder end ved vindueslukning. Dette kunne f.eks. være en person<br />

der går forbi. I den fysiske model eksisterer der dog ikke sådanne fejlkilder og en stigning i<br />

temperaturen vil derfor, hvor svag den end er, kunne bruges til at registrere en vindues lukning.<br />

Registreringen skal blot ske meget nøjagtig.<br />

At stigningen ikke blev så kraftig som forventet skyldes formodentlig at væggene i den fysiske<br />

model er af flamingo, og derfor ikke<br />

indeholder særlig meget mere<br />

varmeenergi end luften. Hvis<br />

vindueslukningen var foretaget<br />

tidligere ville der have været mere<br />

varmeenergi tilbage i væggene og<br />

springet ville have været større.<br />

Det spring der ses stammer<br />

formodentlig fra det føromtalte<br />

temperaturspring der kommer af at<br />

trækken hører op når vinduet lukkes.<br />

Var væggene derimod af mursten eller<br />

lignende materiale der holder bedre på<br />

varmen, ville springet sandsynligvis<br />

være større. Endvidere ville et rum i et<br />

typisk hus, hvor temperatursensoren<br />

Figur 4.4 – Forsøgskurve i virkeligt rum med åbent vindue og<br />

slukket radiator hvor vinduet lukkes ca. ved måling 360.<br />

opsættes, have tilstødende rum langs de fleste af murerne. Hvis disse tilstødende rum ikke ligeledes<br />

er blevet ne<strong>dk</strong>ølet vil der transporteres noget varme fra dem og ind i det afkølede rum og dette vil<br />

resultere i en større spring i temperaturen når vinduet lukkes. For at afprøve dette er forsøg b.b<br />

blevet gennemført i en almindelig lejlighed med målinger hver 10’ende sekund. Af fig. 4.4 ses<br />

stigningen i temperaturen tydeligt omkring måling 350 hvor vinduet lukkes. Vi ser altså at metoden<br />

kan benyttes i både den fysiske model, hvor registreringen skal ske efter en lille stigning, og i et<br />

virkeligt rum hvor registreringen først skal ske efter en noget større stigning. Selve registreringen af<br />

temperaturændringen kan ske analogt med registreringen af åbning.<br />

En anden løsningsmulighed vil være at benytte den matematiske models tidskonstant og<br />

forstærkning som registreringsparametre. Dette kunne gøres ved at sætte effekt på radiatoren og<br />

derved påbegynde en opvarmning. Selve sammenligningen med den matematiske model kan foregå<br />

på flere forskellige måder:<br />

1. Opvarmning skal efter tidskonstanten have opnået 63% af sin endelige værdi som<br />

er den fastsatte sluttemperatur:<br />

Ttest<br />

= ( Tønsket<br />

− Tude<br />

) ⋅ 0.<br />

63<br />

(4.4)<br />

2. Hældningen på opvarmningen svarer det første stykke til tidskonstanten.<br />

Side 37 af 113


hvor:<br />

Regulering<br />

3. Den matematiske model kan benyttes til at på et vilkårligt tidspunkt (t) beregne en<br />

testtemperatur:<br />

−0.<br />

001155⋅t<br />

Ttest<br />

= R ⋅ 0.<br />

837(<br />

1−<br />

e )<br />

(4.4)<br />

R er radiatoreffekten.<br />

At benytte løsning 2 har den ulempe at opvarmningen er lidt ujævn i starten og det er derfor ikke<br />

sikkert at hældningen vil svare helt til tidskonstanten selvom vinduet er lukket. Løsning 1 har den<br />

ulempe at der skal ventes temmelig lang tid i vores model før testen kan udføres. Tidskonstanten er<br />

991 sekunder hvilket ca. svarer til 15 minutter. Vi vælger derfor at benytte 3. mulighed med<br />

beregning af testtemperaturen på et vilkårligt tidspunkt. Test tidspunktet sættes til 100 sekunder idet<br />

der er et stort nok tidsrum til at opvarmningen kan komme over ujævnhederne i starten, mens det<br />

stadig er noget kortere end tidskonstanten.<br />

Den temperatur der beregnes er temperaturændringen fra det arbejdspunkt som opvarmningen<br />

starter ved. Denne arbejdspunktstemperatur skal derfor lægges til testtempeaturen for at give et<br />

resultat der kan sammenlignes med den virkelige indetemperatur. Det giver følgende ligning:<br />

hvor:<br />

T<br />

T<br />

test<br />

test<br />

= R ⋅ 0.<br />

837(<br />

1−<br />

e<br />

= R ⋅ 0.<br />

0913 + T<br />

−0.<br />

001155 ⋅100<br />

arbejd<br />

Tarbejd er arbejdspunktstemperaturen.<br />

) + T<br />

Efter at testtemperaturen er beregnet kan forskellen mellem Ttest og Tinde så findes, og hvis der er<br />

Tinde er mindre end Ttest så foregår opvarmningen ikke efter den matematiske model. Vinduet er<br />

altså åbnet og opvarmningen standses. Hvis der er overensstemmelse mellem dem eller Tinde er<br />

større end Ttest betyder det, at vinduet er lukket og opvarmningen kan fortsætte. Denne test kan så<br />

udføres med passende tidsintervaller.<br />

Denne løsning har den svaghed, at der gennemføres en masse unødvendige opvarmninger.<br />

Endvidere tager løsningen ikke højde for om der under opvarmningen er sket en ændring i<br />

udetemperaturen, men dette er mindre relevant, idet der sjældent vil ske mærkbare ændringer der<br />

kan nå at få indflydelse, på de 100 sekunder som testen varer.<br />

Metoden med opvarmningstest kan imidlertid bruges til at minimere problemerne i den første<br />

løsningsmulighed ved, at kombinere de to løsninger. Den første løsning kan fortælle os om der er<br />

sket en stigning, og at det kunne skyldes at vinduet er blevet lukket. Der påbegyndes så en<br />

opvarmning med en effekt beregnet udfra formel 3.1 hvor der benyttes arbejdspunktstemperaturen i<br />

stedet for udetemperaturen. Efter 100 sekunder kan den anden løsning teste om opvarmning følger<br />

den matematiske model og dermed undersøge, om vinduet virkelig er blevet lukket. Hvis dette er<br />

tilfældet kan der overgås til en effekt beregnet udfra udetemperaturen og dermed give en<br />

opvarmning imod den ønskede temperatur. Hvis vinduet stadig er åbent, afbrydes opvarmningen og<br />

der ventes til næste gang der sker en stigning i temperaturen. Opvarmningstesten stiller det krav til<br />

termostatmodulet, at der ikke må reguleres under opvarmningen, idet det vil fremskynde<br />

opvarmningen og dermed vil Ttest blive højere end beregnet. Det kræver derfor, at termostatmodulet<br />

kun køres når opvarmningstesten er overstået.<br />

arbejd<br />

Side 38 af 113<br />

⇔<br />

(4.5)


Regulering<br />

4.2.4 Sammenfatning af åbning og lukning af vindue<br />

Analysen i 4.2.2 og 4.2.3 har givet os følgende værktøjer til registrering af skift mellem åbent og<br />

lukket vindue:<br />

- Åbning af vindue kan registreres ved et brat temperaturfald.<br />

- Lukning af vindue kan registreres ved en stigning i indetemperaturen.<br />

- Lukning af vindue kan bekræftes gennem en testopvarmning hvis parametre<br />

sammenholdes med den matematiske models for lukket vindue. Hvis der er<br />

overensstemmelse er vinduet lukket.<br />

Registreringen af temperaturstigning og<br />

temperaturfald kan principielt foregå på<br />

samme vis, men da registreringen af faldet<br />

ikke skal være så fintfølende som<br />

registreringen af en stigning, og da der<br />

ikke udføres test ved registreringen af fald,<br />

vil det være hensigtsmæssigt med en<br />

opsplitning. Registreringen af lukning skal<br />

kunne opfatte en meget lille ændring, og<br />

kan derfor komme til at registrere<br />

ændringer der intet har med lukning af<br />

vinduet at gøre. Disse vil blive korrigeret<br />

af testopvarmningen. Registreringen af<br />

fald vil ingen fejlkorrektion have og skal<br />

derfor være sikker når den melder åbent<br />

vindue. Da et åbent vindue vil give et brat<br />

fald i temperaturen skal registreringen af åbning først ske efter en forholdsvis stort fald. Opdelingen<br />

er skitseret i fig. 4.5 der viser et topdown over registrering af åbning og lukning, samt test af<br />

lukningen. Denne opdeling giver en korrektion til hovedopdelingen af programmet i fig. 4.1, idet<br />

opvarmningstesten skal indgå som et modul for sig.<br />

4.3 Design af reguleringsalgoritmen<br />

11:03<br />

Registering af<br />

lukning<br />

Registering af<br />

temperaturstigning<br />

Registering af<br />

åbning og<br />

lukning<br />

Test af<br />

lukning<br />

Test af om<br />

opvarmning følger<br />

matematisk model<br />

Registrering<br />

af åbning<br />

Registering af<br />

temperaturfald<br />

Figur 4.5 – Topdown over registreringsalgoritmen til<br />

registrering af åbning og lukning af vindue.<br />

I designfasen vil det blive beskrevet hvordan løsningerne blive sammensat til en fungerende<br />

helhed. Reguleringsalgoritmen konstrueres således, at den kan indsættes i et driverprogram som et<br />

enkelt funktionskald. Dvs. at reguleringen skal finde sted i et enkelt modul der udfra ude- og<br />

indetemperatur, samt forskellige brugerspecificerede input skal kunne foretage reguleringen og<br />

derudfra returnere en effekt. Dette enkelte modul skal så indeholde de tre hoveddele i reguleringen:<br />

Åbent vindue, lukket vindue og test. At samle reguleringen i et modul gør reguleringen lettere at<br />

implementere i et driverprogram, der i dette tilfælde er computersimulationen. Denne opbygges som<br />

en uendelig løkke, hvori reguleringen kaldes med passende tidsinterval. Dette betyder at<br />

reguleringen skal konstrueres sådan, at den aldrig kan gå fast 4 , således at hele programmet standses.<br />

Derfor kan reguleringen ligeledes betragtes som en uendelig løkke hvori driverprogrammet er<br />

indbygget som en forsinkelse der sørger for, at reguleringen kun køres når det er tid. Det forløb der<br />

4 Dvs. at programmet ikke må vente på at en begivenhed skal indtræffe.<br />

Side 39 af 113


Regulering<br />

kan ses i flowchartet i bilag 10 er en illustrering af, hvordan forløbet ser ud ”fra reguleringens<br />

synspunkt”. I det endelige forløb ligger driverprogrammet som hovedmodulet, der kalder<br />

reguleringen.<br />

Der skelnes i opbygningen af reguleringen mellem tre tilstande(mode):<br />

- 0 = Lukket vindue<br />

- 1 = Åbent vindue<br />

- 2 = Opvarmningstest<br />

Initialisering<br />

Først undersøges der om det er første gennemgang. Dette gøres ved kun at lade initialiseringen<br />

køre, når en tællervariabel er 0, hvilket den er sat til fra starten af og som, når initialiseringen køres,<br />

sættes til 1. Under initialiseringen sættes tilstand til 2 således, at der startes i testtilstand og derved<br />

undersøges der for om vinduet er åbent. Endvidere initialiseres en tabel, der benyttes til registrering<br />

af åbning og lukning af vinduet (jvf. 3.2.2), til indetemperaturen for at undgå problemer når tabellen<br />

benyttes. I initialiseringen tages ligeledes kopi af indetemperaturen til brug som arbejdspunkt når<br />

den første test skal udføres. Dette gør at reguleringen kan startes uvilkårligt om ude- og<br />

indetemperatur er ens.<br />

Natsænkning<br />

Derefter undersøges om det er natsænkningstid og i så fald sættes den ønskede temperatur til<br />

nattemperaturen og der tages en kopi af den oprindelige ønskede indetemperatur. Når<br />

natsækningstiden slutter sættes sluttemperaturen igen til den oprindelige værdi gemt i kopien. For at<br />

modvirke at temperaturfaldet frembragt af natsænkningen bliver registreret som vinduesåbning<br />

initialiseres tabellen til den nye sluttemperatur og der testes ikke for åbning af vindue mens den<br />

ønskede temperatur er mindre end indetemperaturen. Samme fremgangsmåde benyttes når den<br />

ønskede temperatur ændres i anden sammenhæng.<br />

Testtilstand<br />

Der undersøges for hvilke tilstand reguleringen befinder sig i og hvis der er første gennemløb vil<br />

det være 2, dvs. testtilstand. Dette sætter reguleringen istand til at vurdere om den befinder sig i<br />

åbent eller lukket tilstand fra starten af. I testtilstanden beregnes først en opvarmningseffekt udfra<br />

arbejdspunktet, der som tidligere nævnt er den temperatur testopvarmningen begyndes fra. Derefter<br />

beregnes en testtid, der bestemmer hvornår sammenligningen mellem den virkelige og den<br />

teoretiske indetemperatur skal finde sted. Den er, (jvf. 3.2.3), 100 sekunder hvortil der lægges en<br />

variabel, testvar, der i første gennemløb er 0 og først benyttes ved næste testopvarmning. Den sættes<br />

lig tiden inden der overgås fra tilstand åbent (1) til tilstand test (2) og sørger dermed for, at der<br />

sammenlignes 100 sekunder efter testen begyndte. Hvis tiden er lig testtiden og det dermed er tid til<br />

sammenligningen beregnes den teoretiske testtemperatur udfra arbejdspunktet og der undersøges<br />

om den er større den virkelige indetemperatur. Hvis de stemmer overens eller indetemperaturen er<br />

størst sættes tilstanden til lukket (0) og hvis ikke sættes tilstanden til åbent (1), hvorefter<br />

registreringstabellen initialiseres til indetemperaturen. Dette gøres idet vinduestesten, i tilstand<br />

åbent, ellers ville registrere den stigning der er sket i testopvarmningen og dermed vil der<br />

påbegyndes en ny test.<br />

Lukket vindue tilstand<br />

Side 40 af 113


Regulering<br />

Hvis vinduestesten forløber således, at der overgås til tilstand lukket, beregnes først den effekt der<br />

skal til for at opnå den ønskede temperatur. Derefter køres termostatdelen således, at effekten<br />

reguleres efter den ønskede temperatur. Endelig testes for temperaturfald og hvis et sådant er<br />

tilstede og det er stort nok overgås til tilstand åbent.<br />

Åbent vindue tilstand<br />

I tilstand åbent sættes effekten til 0 og der testes for temperaturstigning og hvis en sådan<br />

forekommer overgås til tilstand test. Ligeledes sættes arbejdspunktet lig med indetemperaturen<br />

således, at når der overgås til test vil indetemperaturen, hvorfra testen startes, blive benyttet som<br />

arbejdspunkt. Endelig sættes testvar som tidligere nævnt lig tiden.<br />

For at spare plads og lette overskueligheden af programmet opbygges visse programdele som<br />

selvstændige moduler:<br />

- Initialisering af tabel<br />

- Beregning af teoretiske effekt<br />

Effektberegningen forløber helt analogt med formlerne specificeret i 4.2.1 , mens initialiseringen<br />

af tabellen konstrueres med en løkke der for hver gennemløb tæller tabelpladsen en op og lægger<br />

indetemperaturen ind derpå.<br />

3.3.1 Design af undermoduler<br />

Pseudokoden for undermodulerne kan findes i bilag ”regulering”.<br />

Termostatmodul<br />

Termostatmodulet skal regulere effekten således, at indetemperaturen holdes på det ønskede<br />

niveau. Først beregnes den reelle effekt jvf. 3.2.1 og derefter gennemføres afgrænsningen af den<br />

reelle effekt således, at den passer indenfor radiatorens formåen der ligger mellem 0 og 50 watt.<br />

Modul til registrering af åbning og lukning<br />

Registreringen af åbning og lukning af vindue forløber på næsten samme vis og derfor vil kun<br />

åbningen blive beskrevet her. Den vil blive opbygget gennem lagring af indetemperaturen i en tabel,<br />

der bliver 120 pladser stor. Tabellens værdier skal for hver gennemløb rykkes en plads således, at<br />

den ældste værdi gilder ud og den nyeste værdi bliver indsat på den første plads. Først rykkes alle<br />

tabelpladserne en plads i tabellen således, at plads 1 får plads 2’s værdi, plads 2 får plads 3’s værdi<br />

osv. Dette fortsætter indtil plads 119 får 120’s værdi. Derefter lagres den nyeste temperatur på plads<br />

120 og forskellen mellem den ældste og den nyeste værdi findes. Hvis der er et tilstrækkelig stort<br />

fald i temperaturen fra første til sidste værdi er vinduet åbent. Hvis der var tale om registrering af<br />

lukning skulle vinduet registreres som lukket, når der sker en tilstrækkeligt stort temperaturstigning.<br />

Opvarmningstestmodulet<br />

Opvarmningstesten skal undersøge om en opvarmning foregår med åbent eller lukket vindue. Den<br />

bliver kun kaldt når opvarmningen har kørt testtiden på 100 sekunder. Først beregnes den teoretiske<br />

temperatur der burde være ifølge den matematiske model. Denne temperatur beregnes udfra den<br />

matematiske model ved tiden 100 sekunder hvortil der lægges arbejdspunktstemperaturen. Dernæst<br />

undersøges om den teoretiske temperatur er større den virkelige temperatur, og hvis den er det, så er<br />

vinduet stadig åbent. Hvis dette er tilfældet initialiseres vinduetest-tabelen til den nuværende<br />

Side 41 af 113


Regulering<br />

indetemperatur. Dette gøres som tidligere nævnt idet vinduestesten ellers ville finde en stigning fra<br />

den først til den sidste værdi således, at vinduet igen ville blive registeret som lukket.<br />

Side 42 af 113


Regulering<br />

Computermodel<br />

Ved udvikling af computermodellen tages der udgangspunkt i den matematiske model, men i<br />

stedet for at løse differentialligningerne analytisk bruger computeren ”brute force” til at løse<br />

problemerne, det vil sige computeren simulerer forløbet, ved at gennemføre iterative beregninger.<br />

Simuleringen beregner først varmemængden ved start på simulationen. Derefter kører den en<br />

løkke som modificerer varmemængden med effekt-bidrag, som beskrevet i den matematiske model<br />

(afsnit 2.3). Under hver kørsel af løkken beregnes en ny indetemperatur, og relevante data udskrives<br />

til skærmen.<br />

Udover den funktionalitet, som er beskrevet ved ovenstående kode-udsnit, indeholder programmet<br />

mulighed for at specificere startbetingelser, gemme data på disk med tidsbestemte intervaller og<br />

afbryde under kørslen. For detaljer om implementationen af disse muligheder henvises til bilag<br />

”kode”.<br />

Simuleringsprogrammet skal kunne simulere de forskellige problemstillinger, som reguleringsalgoritmerne<br />

skal tage højde for. Dette gøres så simpelt som muligt for ikke at skabe unyttige<br />

forstyrrelser i programmet. En vinduesåbning simuleres gennem en forringelse af vinduets isolans<br />

og en lukning af vinduet ved en genskabelse af vinduets oprindelige isolans. Derudover indsættes<br />

der en lille forøgelse af effekttilførslen i kortere tid, for at simulere varmeafgivelsen fra væggene.<br />

4.4 Implementation af computermodel og regulering<br />

Selve implementationen i C++ kode er foregået med top-down metoden. Dette vil sige, at først<br />

blev computermodellen programmeret først og gennemtestet. Derefter blev reguleringsmodulet<br />

implementeret og den blev benyttet som platform for de øvrige undermoduler der blev<br />

implementeret efterhånden. Der har altså hele tiden været et fungerende program som efterhånden<br />

blev udbygget mere og mere med de forskellige reguleringsdele, for til sidst, at danne det færdige<br />

program.<br />

For at reguleringen fra gang til gang kan ”huske” de forskellige tilstande, som f.eks. om vinduet er<br />

åbent eller lukket, er de fleste variable blevet deklareret for statiske. Det betyder at når<br />

reguleringsfunktionen forlades, gemmes de statiske variables værdier.<br />

Under implementationen blev computersimulationen udbygget med et array, der sørger for at<br />

forsinke effekten fra reguleringen således, at der tages højde for, at der er en tidsforsinkelse i<br />

radiatorens effektafgivelse. Dermed blev computersimulationen gjort mere virkelighedstro. Selve<br />

forsinkelsen blev designes på samme vis som temperaturarrayet blev i vinduetest.<br />

Side 43 af 113


4.5 Test<br />

Regulering<br />

For at vurdere om computermodellen er tilstrækkelig præcis som simulationsprogram på baggrund<br />

af den fysiske model, er der blevet udført en simulering uden reguleringen indsat(se fig. 3.8).<br />

Simulationen startes med ude- og indetemperatur på 20 grader og effekten 35 watt, samt<br />

udskrivning til fil hver 10’ende sekund. Efter 4000 sekunder simuleres et åbent vindue og efter<br />

7000 sekunder simuleres et lukket.<br />

Figur 4.6 – Graf over en simulation i computermodellen over åbning og lukning af vindue.<br />

Hvis fig. 4.8 sammenholdes med fig. 4.2 og 4.3 der er forsøgsgrafer fra den fysiske model ses det<br />

at det er er god overensstemmelse mellem simuleringen af åbning og lukning af vindue og åbning<br />

og lukning i den fysiske model. Værdien ved tidskonstanten og slutværdien for simulationen kan,<br />

jvf. 2.4.1, beregnes på følgende vis:<br />

Slutværdi = (effekt ⋅ 0.836) + Startværdi ⇔<br />

Slutværdi = (35 ⋅ 0.836) + 20 = 50 (4.6)<br />

Tidskonstantværdi = Slutværdi ⋅ 0.63 ⇔<br />

Tidskonstantværdi = 50 ⋅ 0.63 ≈ 38 (4.7)<br />

Hvis slutværdien og værdien ved tidskonstanten aflæses ses de til ca. at være henholdsvis 50 °C og<br />

38 °C, hvilket svare helt overens med de beregnede værdier. Computermodellen kan hermed<br />

opfylde sit formål (jvf. 3.0), som er at give mulighed for at afprøve forskellige<br />

reguleringsmekanismer i modellen for, at vurdere deres effektivitet.<br />

Reguleringen er blevet løbende testet i simulationsprogrammet, hvorved fejl og mangler kunne<br />

rettes efterhånden som implementationen skred frem. Slutteligt er der blevet foretaget en række test.<br />

for at undersøge, hvorvidt reguleringen lever op til de krav der blev stillet i 1.5.2. Første krav var at<br />

reguleringen på baggrund af temperaturen skulle være i stand til at detektere åbning og lukning af<br />

vindue. Figur 3.9 viser testresultaterne fra en simulering hvor inde- og udetemperaturen startes ved<br />

20 grader og vinduet lukket. Der tages målinger hver 10 sekund. De første 100 sekunder køres der<br />

opvarmningstest og denne konstaterede korrekt, at vinduet er lukket så opvarmningen fortsættes.<br />

Termostatfunktionen træder derefter i kraft og sætte fuld effekt på, til den ønskede temperatur på 50<br />

grader er opnået. Ved måling 500 simuleres en åbning af vinduet og ved 800 simuleres en lukning.<br />

Side 44 af 113


Regulering<br />

Den simulerede åbning registreres omkring måling 500 som den skal og der slukkes for effekten.<br />

Ved måling 800 registreres en mulig lukning og en testopvarmning sættes i gang. Ved måling 810<br />

konstaterer testen at vinduet er lukket og reguleringen sættes på og den ønskede temperatur opnås<br />

igen.<br />

Figur 4.7 – Forsøgsresultater fra simulering af åbning og lukning af vindue med regulering.<br />

Det ses at reguleringen er i stand til at registrere åbning og lukning af vindue og reagere på<br />

baggrund deraf. Krav 1 er altså opfyldt<br />

For at undersøge om termostatfunktionen og natsænkningen fungerer blev følgende forsøg udført<br />

(se fig. 4.10), hvor der tages målinger hver 10 sekund. Ude- og indetemperatur begynder ved 20<br />

grader og stiger til 50 grader. Ved måling 250 sekunder indsættes en ekstra effektkilde på 10 watt<br />

og den fjernes igen ved måling 400. Ved 500 påbegyndes natsækning til 35 grader som stoppes igen<br />

ved måling 1000. Under natsænkningen indsættes der en effektkilde på –10 watt fra måling 600 til<br />

700. Reguleringen reagerer som den skal på den ekstra effektkilde ved at sænke effekten med ca. 10<br />

watt og holder derved temperaturen næsten konstant. Når natsækningen begynder sørger<br />

reguleringen for at sænke temperaturen så hurtigt så muligt ved at sætte effekten lig 0 for derefter at<br />

opretholde den ønskede nattemperatur. Effekttabet fra måling 600 til 700 tages ligeledes højde for<br />

gennem reguleringen. Når natsænkningen slutter ved 1000 reguleres igen ind til den ønskede<br />

dagtemperatur.<br />

Side 45 af 113


Regulering<br />

Figur 4.8 – Forsøgsresultater fra simulering af natsænkning og termostatfunktion.<br />

Det ses at termostatfunktionen sænker effekten med ca. 10 watt når der indsættes en ekstra<br />

effektkilde på 10 watt og forhøjre med 10 når der indsættes –10 watt. og holder derved<br />

temperaturen konstant. Derved ses det at krav 2 og 3 fra 3.5.1 omkring natsænkning og regulering<br />

er opfyldt tilfredsstillende.<br />

Side 46 af 113


5.0 Hardwareløsningen<br />

Hardwareløsning<br />

For at kunne vise princippet i embedded technology, har vi valgt at bygge et hardware system<br />

bestående af MCU (Micro Controller Unit) med tilhørende hukommelse og analoge kredsløb til<br />

måling af temperaturer og regulering af effekt. Dette kapitel beskæftiger sig med fremstillingen af<br />

denne hardwareløsning.<br />

Der vil i dette afsnit blive gennemgående brugt nogle vigtige tekniske betegnelser. Disse vil kort<br />

blive beskrevet her:<br />

− En byte, bestående af 8 bit. Er den mindste enhed der opereres med i en MCU.<br />

− Hukommelse. Her skelnes mellem to forskellige typer af hukommelse, data og program. Data<br />

vil typisk ligge i en RAM kreds og vil blive slettet ved at forsyningsspændingen fjernes.<br />

Program vil ligge i en EPROM (Eraseable Program Read Only Memory), dette er selve<br />

programmet og vil ikke kunne ændres eller slettes af MCU’en.<br />

− Hvis et signal er inverteret, vil det sige der er byttet om på logisk høj og lav, dvs. at en høj<br />

spænding på et inverteret signal svarer til et binært 0. Dette er markeret med en streg over<br />

forkortelsen.<br />

5.1 Behovsanalyse for hardwareløsningen<br />

Vi vil her analysere hvilke krav, som det givne stykke hardware må opfylde. Vi har følgende<br />

overordnede krav fra problemanalysen (jvf. 2.7)<br />

− En elektronisk løsning der autonomt kan regulere en radiator.<br />

− Et netværk mellem den elektroniske løsning og en computer.<br />

− Et stykke software til pc, som agerer grænseflade mellem brugeren og det elektroniske<br />

system.<br />

Herudaf kan vi se, at der stilles følgende krav til hardwareløsningen:<br />

1. Den skal kunne regulere effekttilførslen til en radiator.<br />

2. Den skal være i stand til at kommunikere med en PC.<br />

Derudover kan vi på baggrund kapitlet om regulering tilføje følgende krav:<br />

3. Den skal kunne måle to forskellige temperaturer.<br />

4. Den skal have tilstrækkelig datakraft til at udføre de beregninger, som<br />

reguleringsalgoritmen kræver.<br />

Følgende vil vi beskrive hvordan vi har valgt at imødekomme disse krav. De enkelte hardwaredele<br />

som her beskrives, vil blive uddybet nærmere under gennemgangen af design af løsningen.<br />

Kravet om datakraft<br />

For at opnå den fornødne datakraft, har vi valgt at bruge en Micro Controller Unit (MCU) af typen<br />

80C535, som er produceret af Siemens. En MCU er en integreret kreds, som indeholder en Central<br />

Side 47 af 113


Hardwareløsning<br />

Processing Unit (CPU), samt en række periferi-enheder til løsning af diverse opgaver som f.eks.<br />

seriel kommunikation eller analog til digital konvertering.<br />

Denne MCU, som er en videreudvikling af den meget brugte 8051 fra INTEL, udmærker sig<br />

specielt i forhold til andre 8-bits MCU’er ved at indeholde instruktioner til brug ved multiplikation<br />

og division, hvilket er funktioner, som bruges indgående i reguleringsalgoritmen (jvf. 4.2)<br />

For at kunne bruge MCU’en er det nødvendigt at forbinde den med ekstern hukommelse i form af<br />

både ROM og RAM.<br />

Kravet om kommunikation med PC<br />

Den valgte MCU indeholder en periferie-enhed til seriel kommunikation. Brug af denne beskrives<br />

udførligt i kapitlet om seriel kommunikation.<br />

Kravet om effekt-regulering<br />

MCU’en giver mulighed for at regulere en spænding mellem 0-5V ved hjælp af puls-breddemodulation<br />

(beskrives i afsnit ”MCU-software”. Vha. af en transistor af typen MOSFET 5 og en<br />

ekstern spændingskilde vil vi blive i stand til at regulere en vilkårlig stor spænding, afhængig af den<br />

eksterne spændingsforsyning, og derved bliver det muligt, at styre effekt-afgivelsen i radiatoren.<br />

Måling af temperaturer<br />

Der findes specielle kredsløb til måling af temperaturer. En løsning er at bruge en LM35DZ, som<br />

er en integreret kreds til måling af temperatur. Denne kreds har en udgangsspænding, der hænger<br />

lineært sammen med den omgivende temperatur. Da disse sensorer kun har en udgangsspænding på<br />

0 til 500 mV er det nødvendigt at forstærke signalet, tilpas til at MCU’ens analog til digital<br />

konverter kan gennemføre konverteringen. Dette vælger vi at gøre med operationsforstærkere.<br />

Det temperaturområde, som der skal måles i, er begrænset til området mellem 10 – 60°C, da<br />

hardwareløsningen produceres med henblik på den fysiske model.<br />

5.1.2 Overordnet løsningsskitse<br />

På baggrund overvejelserne gjort i sidste afsnit<br />

er der i fig. 5.1, opstillet en skitse af<br />

hardwareløsningen, som viser de enkelte dele og<br />

deres relative placering.<br />

Vi har valgt at placere MCU’en og dens<br />

tilhørende komponenter på et print, som herefter<br />

kaldes for Single Board Computer (SBC).<br />

Komponenterne til effektregulering og måling af<br />

temperatur er placeret på et separat print.<br />

Strømforsyningen, som er placeret på det<br />

analoge print, skal levere passende spændinger til<br />

de enkelte kredsløb.<br />

Komponenten MAX232 er nødvendig for at<br />

konvertere MCU’ens serielle signaler til et andet<br />

spændingsniveau, som lever op til RS-232<br />

standarden for seriel kommunikation (jvf. x.1.1).<br />

5 En MOSFET er en effekttransistor.<br />

Side 48 af 113<br />

Analog print<br />

Temperatur-<br />

sensor ude<br />

Forstærker<br />

Temperatur-<br />

sensor inde<br />

Forstærker<br />

Strøm-<br />

forsyning<br />

Effekttrin<br />

Radiator<br />

MCU<br />

80C535<br />

Single Board Computer<br />

MAX232<br />

Figur 5.1 - Hardwareløsningen kan samles<br />

på to print. Et til MCU og et til analog delen.<br />

PC<br />

RAM<br />

ROM


5.2 Design af hardwareløsning<br />

Hardwareløsning<br />

På baggrund af behovsanalysen, og den opstillede skitse af hardwareløsningen, vil vi i dette afsnit<br />

beskrive designet af de enkelte dele og deres sammensætning.<br />

5.2.1 SBC – Single board computer<br />

I dette afsnit beskrives designet af SBC’en, under gennemgangen beskrives først begreber og<br />

kredsløb, som knytter sig til MCU’ens brug af den eksterne hukommelse. Herefter beskrives de<br />

andre kredsløb som med førnævnte tilsammen udgør SBC’en. For yderligere information, omkring<br />

MCU’en henvises til dens databog [Siemens].<br />

Clock-frekvens<br />

MCU’en behøver et pulserende signal fra en krystal, for at kunne udføre operationer. Den valgte<br />

type MCU forsynes typisk med en clock-frekvens på mellem 1 - 12MHz og vi har valgt en krystal<br />

på 12 MHz. Denne clock-frekvens er som tidligere nævnt valgt, da den er specielt velegnet til brug i<br />

forbindelse med seriel kommunikation, og desuden resulterer en højere clock-frekvens i en større<br />

datakraft.<br />

En machine cycles består af 12 clockpulser og dette betyder at ved 12MHz er en machine cycle 1<br />

µs lang. En machine cycle er den tid MCU er om at udfører de mindste udregninger. Dette betyder<br />

at med en clock-frekvens på 12MHz regner MCU med en hastighed af 1MHz.<br />

Databus<br />

Databussen er det sæt af forbindelser mellem MCU og den eksterne hukommelse hvori de data,<br />

der sendes mellem førnævnte enheder transmitteres. Databussen på MCU’en er 8 bit bred, dvs. den<br />

består af 8 forbindelser. Selve bussen består af port 6 0, som også bruges til adressebussens<br />

mindstbetydende bits (0-7), så det er nødvendigt at skelne disse to fra hinanden ved hjælp af en<br />

latch (beskrevet senere).<br />

Adressebus<br />

Adressebussen er ligeledes som databussen en gruppe af forbindelser på printet. Adressebussen<br />

fortæller RAM og ROM, hvor i hukommelsen databussen enten skal modtage eller sende data fra<br />

eller til.<br />

MCU’en kan adressere op til 64kB vha. 16 adresse bit. Adressebussen realiseres ved at port 0<br />

fungerer som de laveste adresser, og port 2 som de højeste.<br />

Kontrolbus<br />

Denne bus fortæller hukommelsen, hvilken type af hukommelse der skal reagere, og om der skal<br />

læses eller skrives til den pågældende hukommelseskreds.<br />

Kontrolbussen består af følgende signaler:<br />

WR : Write. Bruges til at fortælle hukommelsen, at der nu skal skrives til den.<br />

RD : Read. Bruges til at fortælle hukommelsen, at der nu skal læses i den.<br />

PSEN : Program Store Enable. Bruges til at fortælle, at det er ROM der skal læses fra. MCU’en<br />

kan ikke skrive i hukommelse, der aktiveres af dette signal.<br />

6 De ben på MCU’en som står for at sende og modtage data, grupperes i grupper på 8, som hver kaldes for en port.<br />

Side 49 af 113


Hardwareløsning<br />

Latch<br />

MCU’en benytter, ligesom Intels 8051, en multiplexed 7 data og adresse bus. For at skelne imellem<br />

hvilke signaler, som hører til adressebussen og hvilke der hører til databussen, benyttes en latch af<br />

typen 74HC573N.<br />

I praksis betyder dette, at dataene stadigvæk findes på port 0, mens den laveste adresse-byte nu<br />

findes på udgangen af 74HC573N.<br />

Adresse byten på latchen opdateres fra MCU’en ved at MCU’en sætter kontrolsignalet ALE<br />

(Adress Latch Enable), hvorefter latchen<br />

læser værdien på port 0 og kopierer denne<br />

værdi på sine egne udgange. Herefter sletter<br />

MCU’en ALE-signalet, hvorefter værdien på<br />

port 0 igen opfattes som databussen.<br />

Dette giver mulighed for at sende både en<br />

data- og en adressebyte på kun en port. Der<br />

bliver derfor alt i alt overført 16 bit<br />

information over kun 9 ben på MCU’en.<br />

Implementeringen af 74HC573 ses på fig. 5.3.<br />

Figur 5.2 – Diagram for latch-kredsløbet. Latchen læser den<br />

nederste adressebusbyte fra MCU’ens port 0, når ALEsignalet<br />

er højt.<br />

Hukommelse<br />

For at MCU’en skal kunne fungere er det<br />

nødvendigt med hukommelse, da denne indeholder dels den programkode, som MCU’en skal<br />

udføre og dels de variable som den skal arbejde på. Der skelnes her mellem to typer: ROM og<br />

RAM.<br />

ROM<br />

Denne type af hukommelse skal programmeres på forhånd og kan ikke ændres eller slettes af<br />

MCU’en. Det er i denne type af hukommelse at selve programkoden er placeret. Der bruges<br />

EPROM af typen 27C512, hvilket giver 64kB program hukommelse.<br />

En EPROM af typen 27C512 behøver, udover forbindelse til adresse og data bus, nogle<br />

kontrolsignaler. Disse kontrol signaler skal fortælle EPROM om den skal være aktiv og om der skal<br />

komme data ud på data bussen. Der bruges to kontrol signaler til 27C512: CE (chip enable) og OE<br />

(output enable). Disse to skal begge to være logisk lav, når MCU’en ønsker data fra EPROM, derfor<br />

kan PSEN sættes direkte til dem begge.<br />

RAM<br />

Er den hukommelse, som MCU’en skal lægge sine variabler og indsamlede data i. MCU’en har<br />

512 bytes indbygget RAM. Opgaven stiller dog større krav til mængden af RAM. Derfor har vi<br />

valgt at forsyne SBC-printet med en 20256, der giver os 32kB RAM. Der kræves flere<br />

kontrolsignaler til RAM, end ROM. Dette skyldes at RAM-kredsen skal vide hvorvidt der skal<br />

skrives eller læses i den. Der bruges i alt 3 kontrol signaler til RAM af typen 20256: WE (Write<br />

Enable), OE (Output Enable) og CE (Chip Enable).<br />

CE skal fortælle kredsen om den skal være aktiv. Dette signal har vi forbundet til adresse bit 15 8 ,<br />

som altid er lavt ved adressering i de første 32kB. Derved bruges A15 til at aktiverer RAM. RAM<br />

kredsen reagerer kun når CE er aktiv, samtidig med WE eller OE .<br />

7 Dvs. at de samme udgange bruges til flere funktioner.<br />

8 Dvs. den 16’ende bit.<br />

Side 50 af 113


Hardwareløsning<br />

OE virker som for ROM, fortæller om kredsen skal sende data til databussen fra den af<br />

adressebussen angivne adresse. Dette signal er forbindet til kontrolbussens RD signal, der angiver<br />

om der skal læses fra hukommelsen.<br />

WE dette signal fortæller kredsen, at den data der er på databussen skal gemmes i den adresse der<br />

er på adressebussen. Dette udføres dog kun hvisCE er aktiv. WE er forbundet til kontrolbussens<br />

WR signal.<br />

Reset-kredsløb<br />

For at beskytte MCU’en mod<br />

elektrisk støj i det øjeblik der<br />

skabes et spændingsfald over den,<br />

og for at give MCU’en tid til at<br />

gennemføre et fuldt reset vi valgt<br />

at lave et RC kredsløb (se fig.<br />

5.3). Dette RC led er tilsluttet på<br />

sådan en måde, at ved tilsluttet<br />

forsyningsspænding vil<br />

kondensatoren C5 lade op<br />

begrænset af resistoren R8,<br />

Figur 5.3 - Krystallet, X1, generer den nødvendige frekvens for at<br />

MCU’en kan fungerer. RC leddet, der består af R8 og C5 ,laver "power<br />

on reset".<br />

hvorved forsyningsspændingen til MCU’en stiger jævnt til 5V. Desuden kan MCU’en genstartes<br />

manuelt ved at kortsluttes gennem kondensatoren C5 vha. kontakten SW1.<br />

Seriel interface<br />

Den indbyggede serielle port på MCU benytter TTL-spændingsniveauer (0 til 5 Volt). Disse skal<br />

(jvf. 5.1.2) omdannes til det spændingsniveau, som er specificeret af RS-232 standarden for seriel<br />

kommunikation (+/-12V). For at omdanne disse niveauer benytter vi kredsen MAX232, der behøver<br />

tilslutning til fire kondensatorer (jvf. "datablad") for at omdanne disse niveauer. Fordelen ved denne<br />

kreds, er at vi ikke behøver en separat spændings forsyning på ± 12 Volt.<br />

5.2.2 Analog print<br />

Følgende gennemgås de forskellige teori om og design af de forskellige analoge kredsløb, som er<br />

placeret på ”det analoge” print.<br />

Temperaturmåling<br />

Til måling af temperaturen både inde og ude benyttes to temperatursensorer af typen LM35. Disse<br />

skal have en forsyningsspænding på mellem 4 og 20V. På diagrammet for hele det analoge kredsløb<br />

(se bilag nr. ?), ses ben nr. 1, som er der hvor indgangsspændingen skal føres ind.<br />

Udgangsspændingen (ben nr. 3) på temperatursensoren er 10mV/°C, dvs. at udgangsspændingen er<br />

lineær afhængig af temperaturen.<br />

Side 51 af 113


Forstærkning<br />

Som beskrevet i tidligere (jvf. 5.1) er<br />

udgangssignalet fra temperatursensorerne 0 –<br />

500mV, men da analog til digital konverteren<br />

skal bruge en spænding på 0 – 5V, vil det<br />

betyde at en forstærkning på 10 gange er<br />

nødvendig for at kunne konvertere signalet.<br />

Til det bruger vi en operationsforstærker (Op<br />

Amp).<br />

Hardwareløsning<br />

En operationsforstærker, forstærker i sig<br />

selv flere 1000 gange. For at få den ønskede<br />

forstærkning på 10 gange, bruges<br />

mo<strong>dk</strong>oblings teknik.<br />

Det der bliver forstærket i en Op Amp er<br />

forskellen mellem + og – indgangene. Ved at<br />

gøre den ene indgang afhængig af<br />

udgangssignalet er der mulighed for at<br />

Figur 5.4 – Operationsforstærker med mo<strong>dk</strong>obling.<br />

regulerer forstærkningen. Dette er det der<br />

kaldes for mo<strong>dk</strong>oblingsteknik.<br />

Som det ses på fig. 5.5 er en del af udgangssignalet ført tilbage til den inverterede indgang, via en<br />

spændingsdeler (Rm og Rn). Når der kommer spænding på Vin vil denne blive forstærket og komme<br />

ud på Vout. Denne udgangsspænding vil blive delt i spændingsdeleren, og en del vil komme ind på<br />

den inverterede indgang, derved vil spændingsforskellen mellem + og – indgangene blive mindre<br />

og dermed vil udgangsspændingen falde. Ved at varierer forholdet mellem Rm og Rn er det muligt at<br />

justerer forstærkningen.<br />

Spændingsforstærkningen (Av) for en ikke-inverterende kobling beregnes som følgende:<br />

⎛ Rm<br />

⎞<br />

A<br />

⎜<br />

⎟<br />

V = + 1<br />

⎝ Rn<br />

⎠<br />

Der vælges en modstand Rn til 1kΩ og da der ønskes en spændingsforstærkning på 10 gange, kan<br />

modstanden Rm beregnes til følgende:<br />

Rm = (A’-1)·Rn<br />

Rm = (10-1)·1kΩ = 9kΩ<br />

Da der skal bruges en meget presis forstærkning og mulighed for at kunne justerer denne, bruges en<br />

multiturn potentiometer til Rm.<br />

Side 52 af 113


Hardwareløsning<br />

Effektregulering<br />

Ved at benytte Timer 2 til generering af PBM, fås<br />

et udgangssignal på 0 eller 5V fra MCU. Disse<br />

pulser skal føre til en afsat effekt i en radiator,<br />

mellem 0 og 50W. MCU’en kan klare at blive<br />

belastet med 80µA, derfor er det nødvendigt at<br />

forstærke pulsen.<br />

Når pulsen går høj skal transistoren åbne hurtigt, da<br />

der ellers vil blive afsat meget effekt i transistoren,<br />

som vil medfører, at den vil brænde af. Derfor<br />

benyttes her en MOSFET af typen BUZ90.<br />

Fordelene ved at benytte en FET er at<br />

indgangsimpedansen er stor, og derfor vil der ikke<br />

blive trukket stor strøm fra MCU’en. En anden vigtig<br />

fordel er, at en FET er meget hurtig. Det er vigtigt at Figur 5.5 – Effektregulering med PBM.<br />

transistoren er hurtig, fordi at mellem de to yderpunkter afsættes der effekt i transistoren. De to<br />

yderpunkter er henholdsvis 0 og 5 V på gate.<br />

Da BUZ90 ikke har en indbygget beskyttelses diode sættes en modstand på 1MΩ mellem gate og<br />

source, for at beskytte mod statisk elektricitet.<br />

Selve opstillingen med BUZ90 ses på fig. 5.5.<br />

Af databladet fremgår det at ved et input til gate på 5 V, er den indre modstand mellem drain og<br />

source ca. 2,5 Ohm. Dette betyder at der afsættes en effekt i selve transistoren, som gør at den bliver<br />

varm, derfor monteres en køleplade som kan aftage den effekt.<br />

Strømforsyning<br />

Der skal bruges 5V til SBC’en og temperatursensorerne, og der benyttes 12V og –5v til<br />

operationsforstærkerne.<br />

For at skabe disse spændingsnivauer benyttes spændingsregulatorer af typerne 78XX og 79XX.<br />

XX angiver hvilken spænding regulatoren vil give. Typen 78XX vil give en positiv<br />

udgangsspænding og 79XX vil give en negativ udgangsspænding.<br />

For at få den ønskede forsyningsspænding, skal der tilføres en spænding på indgangen på mindst<br />

2V over det ønskede udgangsspænding.<br />

På diagrammet (se fig. 5.6) for spændingsregulatoren ses nogle kondensatorer der er ført til jord<br />

(GND). Kondensatorerne er til for at fjerne elektrisk støj og for at forhindre spændingsregulatoren i<br />

at gå i selvsving, hvilket kan fører til, at den brænder af.<br />

Figur 5.6 - Diagram for spændingsforsyning.<br />

Side 53 af 113


5.3 Implementation og test<br />

Hardwareløsning<br />

Selve implementationen designet kan ses på bilag x.x.x og bilag x.x.x, hvor diagrammerne for de<br />

to print er gengivet.<br />

For at teste SBC’en har vi programmeret simple programmer, som er brændt i en EPROM,<br />

hvorefter disse er kørt på MCU’en. Kontrol af programudførelsen er sket ved at måle på de enkelte<br />

ben ved hjælp af et oscilloskop. Disse testprogrammer indfattede bl.a.:<br />

− Tael. Program der tæller op på portene 1, 4 og 5. På den laveste bit skal pulserne være<br />

hurtigst og frekvensen halveres når der gås en bit op. Dette giver mulighed for at måle på<br />

portene om MCU, ROM og Latch virker.<br />

− All_1. Program der sætter alle port ben til logisk høj. Dette giver mulighed for at måle på<br />

portene om MCU, ROM og Latch virker.<br />

− All_0. Program der sætter alle port ben til logisk lav. Dette giver mulighed for at måle på<br />

portene om MCU, ROM og Latch virker.<br />

− PWM. Et program der skal lave pulsbredde modulation. Denne test giver mulighed for at<br />

teste Timer 2, MCU, Latch og ROM.<br />

− Seriel. Program der kan modtage en byte serielt, MCU trækker en fra denne byte og sender<br />

den tilbage. Dette giver mulighed for at teste serielt interface, seriel porten og opsætningen<br />

af seriel porten.<br />

Alle disse test programmer gør det muligt at teste om hardwaren virker efter hendsigten.<br />

Disse tests ville i starten kun køre en lille tid, for derefter at starte forfra. Gruppen undersøgte<br />

sagen, og det viste sig at Siemens har udviklet på 80C535. Denne udvikling har ført til at ben 4 (PE)<br />

skal sættes til stel, ellers startes Watchdog timeren 9 automatisk og resetter MCU efter 65536 µs. I<br />

databladet fremgår det, at ved brug af ”C” kredse skal ben 4 sættes til Vcc. Forskellen fremgår dog<br />

af betegnelsen på selve kredsen, de nye kredse hedder SAB80C535N LB.<br />

De enkelte kredsløb på det analoge print blev testet, ved at måle udgangssignalerne med et<br />

voltmeter. Der startedes med spændingsregulatorerne, for at have en fast forsyning til de andre dele<br />

inden disse kontrolleres.<br />

For at kalibrere var fremgangsmåden at starte med temperatursensorerne, for derefter at kalibrer<br />

forstærkerne. Denne rækkefølge var nødvendig for at have et realistisk og kendt indgangssignal til<br />

Op Amp. Kalibreringen blev foretaget ved, at sætter den ene temperatursensor ned i vand ved 10°C<br />

og derefter indstille udgangsspændingen til 0V. Derefter blev forstærkningen kalibreret til 10 gange.<br />

Den anden temperatursensor blev kalibreret ved sammenligning med den første sensor.<br />

Kalibreringen blev afslutte med at sætte sensorerne til MCU og aflæse den målte værdi. Endelig er<br />

hele hardwareløsningen blevet løbende testet i forbindelse med udviklingen af software til seriel<br />

kommunikation og MCU-software. Idet at softwaren løbende er blevet afprøvet på MCU’en og<br />

outputtet heraf evalueret (Jvf. ”Ser-kom” og ”MCU-SW”).<br />

Under test af det analoge print blev det klart, at effekt driver transistoren bliver meget varm. Den<br />

påmonterede køleplades temperatur måltes til 50 grader. Dette, har vi fundet, skyldes 3 ting:<br />

9 En watchdog timer er, som navnet antyder, en vagthund. Når den startes vil den tælle til 65536 og derefter resette<br />

MCU. Den kan dog nulstilles ved at sætte et flag.<br />

Side 54 af 113


Hardwareløsning<br />

1. Indgangsspændingen på gate er maksimum 5 volt. Derved er den indre modstand mellem drain<br />

og source ca. 2,5 Ohm. Radiatoren trækker en strøm på ca. 1,15 A og derved er effekt bidraget<br />

til transistoren ca. 6 Watt.<br />

2. Når transistoren skal skifte mellem ON og OFF (F.eks. ved Timer 2 overflow) afsættes der<br />

effekt i transistoren. Dette skyldes at transistoren ikke er helt ON før der begynder at løbe strøm<br />

til radiatoren.<br />

3. Radiatoren er viklet som en spole, derved fås en spole virkning når der skiftes mellem tænd og<br />

slukket. Dette gør, at ved et skift fra slukket til tænd vil spolen (radiatoren) trække en stor strøm,<br />

men forsyningsspændingen vil stadigvæk ligge over transistoren. Derved afsættes der en spids<br />

effekt på ca. 44 Watt i transistoren. Disse 44 Watt afsættes dog kun kortvarigt, men de afsættes<br />

ved hver Timer 2 overflow.<br />

At radiatoren virker som spole (3) kan der ikke umiddelbart gøres noget ved, dette ses der også<br />

bort fra da det er en demomodel. Det skal dog huskes at den effekt der rent faktisk bliver afsat i<br />

selve radiatoren er en smule mindre end den beregnede. Dette resulterer som sagt, i at FETtransistoren<br />

bliver varm. Det fremgår af databladet at transistoren kan tåle at blive 150 grader varm,<br />

derfor fremstilles ikke en praktisk løsning på problemet. Her følger teoretiske løsningsforslag på<br />

problemer med effektdelen:<br />

En løsning på 1 er at forstærke spændingen før den sættes ind på gate, derved mindskes den indre<br />

modstand og effekten der afsættes i FET. For at mindske effektafsættelsen ved skift (2) kan<br />

periodetiden nedsættes. Dette resulterer i færre skift og dermed mindre effekt afsat i transistoren.<br />

Side 55 af 113


6.0 Seriel kommunikation<br />

Seriel kommunikation<br />

Vi vil i dette kapitel beskæftige os med at udvikle det software til både PC og MCU, som skal stå<br />

for kommunikation mellem de to enheder. Vi har valgt at benytte seriel kommunikation, da det er<br />

godt understøttet af både PC og MCU, desuden er det en simpel og veldokumenteret<br />

kommunikationsform.<br />

Inden vi påbegynder udviklingen vil vi præcisere de krav, som er opstillet i afsnit 2.6.1:<br />

1. Det elektroniske system skal over forbindelsen til PC’en kunne:<br />

a. Formidle dets status og rumtemperatur.<br />

b. Modtage ønsket temperaturindstilling.<br />

c. Modtage tidsramme for natsænkning<br />

For softwaren til seriel kommunikation kan vi fra ovenstående præcisere følgende krav:<br />

6.1 Analysefasen<br />

2. Softwaren både til PC og MCU skal være i stand til både at sende og modtage data<br />

serielt.<br />

3. Dette skal kunne ske asynkront med at PC og MCU udfører andre opgaver, dvs.<br />

den serielle software ikke må være afhængig af brugerprogrammet.<br />

4. Softwaren skal kunne formidle data gennem forbindelsen uden fejl, men den skal<br />

ikke kunne garantere, at der ikke kan opstå fejl, hvorfor klienter af de<br />

transmitterede data, selv må vurdere dataenes gyldighed.<br />

Vores system består af en MCU forbundet gennem en seriel forbindelse til en PC. Endvidere skal<br />

der både på PC’en og MCU’en være et interface, kaldet en API 10 , til de applikationer, som kører på<br />

systemet og skal benytte seriel kommunikation. Denne består af de funktioner, som applikationerne<br />

kan kalde for at bruge seriel kommunikation.<br />

Hver af disse elementer vil blive beskrevet i analysefasen, først beskrives seriel kommunikation<br />

generelt, hvorefter der kigges på PC’ens hardware til håndtering af seriel kommunikation og<br />

hvilken software, der skal fungere som API. Herefter beskrives ligeledes hardware og software til<br />

seriel kommunikation på MCU’en.<br />

6.1.1 Seriel kommunikation<br />

Ved seriel kommunikation sendes eller modtages en bit ad gangen, f.eks. fra et modem til en<br />

computer. I hver ende af forbindelsen bliver disse bit samlet i grupper af typisk 8 bit (en byte) og<br />

sendes derefter videre til den enhed, som skal behandle dataene. Vi vil i dette afsnit koncentrere os<br />

om de data, som sendes over forbindelsen, mens vi i senere afsnit vil se hvordan de bruges af<br />

henholdsvis en PC og MCU.<br />

En seriel forbindelse kan oprettes med kun to ledere, en til stel og en til signaler, men da det ofte er<br />

ønskværdigt at kunne sende og modtage på samme tid, bruges der oftest tre ledere: En til stel<br />

(forkortet GND), en til at sende (forkortet TxD) og en til at modtage (forkortet RxD). TxD- og<br />

10 API: Applikation Programming Interface.<br />

Side 55 af 113


Seriel kommunikation<br />

RxD-lederne krydser hinanden i forbindelsen, sådan, at den ene endes sendeledning er forbundet<br />

med den anden endes modtageledning. En sådan forbindelse, som kan sende og modtage på samme<br />

tid, kaldes for en Full-Duplex forbindelse, mens en forbindelse som kun kan kommunikere en vej<br />

ad gangen siges at være Half-Duplex.<br />

RS-232 standarden<br />

RS-232 er den mest udbredte standard for seriel kommunikation, hvorfor vi har valgt at benytte<br />

denne. Standarden beskriver hvordan data, der sendes på forbindelsen skal fortolkes og hvordan<br />

benene på de forskellige stik skal forbindes. Følgende er de vigtigste karakteristika behandlet, for<br />

mere information henvises til [Peacock].<br />

Signaler der sendes over forbindelsen opfattes som et binært 1,<br />

hvis spændingen i lederen er mellem –3V til -15V og som et<br />

binært 0 hvis spændingen ligger mellem 3V til 15V. Det<br />

udefinerede område mellem –3V og 3V sikrer, at svage signaler<br />

med lille spænding ikke forveksles.<br />

Figur 6.1 – Skitse af D9-stik.<br />

PC og MCU forbindes med et kabel med 9 forbindelser med et D9-stik (se fig. 6.1), dvs. D9 har 9<br />

benforbindelser. På fig. 6.2, ses en oversigt over de forskellige forbindelser.<br />

D-Type.<br />

9 pin Nr.<br />

Forkortelser Fulde navn Funktion<br />

Pin 3 TxD Transmit data Seriel data output<br />

Pin 2 RxD Receive data Seriel data input<br />

Pin 7 RTS Request to send Angiver at modemet er klar til at bytte data<br />

Pin 8 CTS Clear to send Når modemet modtager et signal fra modemet i den<br />

anden ende går denne aktiv<br />

Pin 6 DSR Data set ready Fortæller UART at den er klar til at etablere<br />

forbindelse<br />

Pin 5 SG Signal ground Fortæller at modemet er klar til at etablere<br />

forbindelse<br />

Pin 1 CD Carrier detect Informere modemet at UART er klar til at bytte data<br />

Pin 4 DTR Data terminal<br />

ready<br />

Går aktiv, når modemet får signal fra telefonlinien<br />

Pin 9 RI Ring indicator Modemet signalerer at det modtager et opkald.<br />

Figur 6.2 – Figur som viser signaler og deres respektive benplaceringer og funktioner på et D9--stik.<br />

Som det kan ses indeholder RS-232 standarden flere forbindelser end omtalt i afsnit 6.1 Disse<br />

ekstra forbindelser kan bruges til at sende en række styresignaler, men de er ikke nødvendige for at<br />

gennemføre seriel kommunikation. I stedet for at lade disse benforbindelser være udefinerede 11 ,<br />

forbindes de som vist på fig. 6.3, hvilket sikrer, at PC’en ”tror”, at der er en forbindelse 12 , et kabel<br />

der forbinder to enheder på denne måde kaldes et null-modem.<br />

11 Dvs. de ikke er forbundet til noget.<br />

12 Dette har relevans, hvis man vil teste porten fra et terminalprogram eller ligende. Men ikke for det software, som vi<br />

udvikler til at styre kommunikationen.<br />

Side 56 af 113


Seriel kommunikation<br />

Baud-rate<br />

For at kommunikere over forbindelsen skal<br />

der specificeres en hastighed. Denne betegnes<br />

baud–rate (udtales bo), og den specificerer hvor<br />

mange bits, der sendes over forbindelsen pr.<br />

sek. Det vil sige, at hvis forbindelsen er sat op<br />

til f.eks. 110 baud, vil det tage 1/110s at sende<br />

en bit. Typiske baud - rates ved<br />

kommunikation med MCU’er er: 110, 150,<br />

300, 1200, 2400, 4800 og 9600 baud. Figur 6.3 – Tilslutning af benforbindelser på D9, når<br />

ekstra styresignaler ikke ønskes benyttes[Peacock].<br />

Start-, stop- og databit<br />

Når en enhed sender en karakter (typisk 8 bit) sender den først en start-bit, som fortæller<br />

modtageren, at der følger data. Ligeledes efter transmission af dataene sendes, der en stop-bit for at<br />

markere afslutningen på transmissionen (se fig. 6.4.). Startbitten er binært 0, og stop bitten er binært<br />

1. Normalt udgør databittene 8 bit,<br />

men det er muligt med andre<br />

konfigurationer, ligesom det er muligt<br />

at ændre antallet af stop-bits til 2.<br />

Figur 6.4 – Transmission af en byte m. start- og stopbit. Hver<br />

firkant tager 1/Baud-rate sekunder at sende. [Peacock].<br />

Paritet<br />

RS-232 standarden giver også mulighed for brug af op til tre paritetsbit. Disse bit beskriver om<br />

den sendte karakter har et lige eller ulige antal binære 1 taller. Hermed er der mulighed for at<br />

detektere om, der er opstået fejl i transmissionen. Fejl kan opstå som følge af elektronisk støj, eller<br />

hvis kablet er så langt, at spændingsfaldet er tilstrækkeligt til at forstyrre signalet.<br />

Opsætning af forbindelse<br />

Vi har valgt at bruge en meget simpel opsætning uden paritet, hvilket medfører, at der ikke er<br />

mulighed for detektion af fejl opstået pga. af støj i lederne. Derfor må softwaren, som bruger<br />

dataene, selv vurdere hvorvidt dataene er sandsynlige og evt. bede om en retransmission. Endvidere<br />

har vi valgt en baud rate på 9600 baud, fordi den valgte MCU kan genere netop denne baud-rate<br />

uden brug af timerenhed. Alt i alt ser vores opsætning ud som følger:<br />

6.1.2 PC-UART<br />

- 9600 baud<br />

- 8 databit<br />

- Ingen paritet<br />

- Én start og én stop bit<br />

Processoren i PC'en kommunikerer ikke direkte gennem den serielle forbindelse, dette sker i stedet<br />

ved hjælp af en UART 13 , som er en chip monteret på bun<strong>dk</strong>ortet i computeren 14 . Denne chip<br />

kontrolleres af processoren gennem en række af registre, som er placeret i det specielle område af<br />

hukommelsen som Intel kompatible processorer bruger til kommunikation med perifere enheder<br />

[Intel]. I alt har UART’en 8 af disse registre (oversigt på fig. 6.5), men vi vil her kun gennemgå de<br />

for os relevante, yderligere information kan hentes i databladet for en TLC16450 [Texas].<br />

13 Universal Asynchronous Receiver Transmitter<br />

14 Eller evt. som en integreret del af bun<strong>dk</strong>ortets øvrige kredse.<br />

Side 57 af 113


Seriel kommunikation<br />

Register nr. Beskrivelse<br />

0 Transmitter/Receive-buffer / Divisor latch low byte<br />

1 Interrupt enable register / Divisor latch high byte<br />

2 Interrupt identifikation register/ FIFO control register<br />

3 Line control register<br />

4 Modem control register<br />

5 Line status register<br />

6 Modem status register<br />

7 Scratch register<br />

Figur 6.5 – Oversigt over UART’ens registre.<br />

UART’ens placering i hukommelsen kan variere fra system til system, men det er fast standard at<br />

adressen på register nr. 0 (jvf. fig. 6.5) kan læses i BIOS dataområde på adresse 0000:0400h 15 . Den<br />

adresse, der læses her, vil vi efterfølgende kalde for kommunikationsportens basisadresse. De andre<br />

af UART’ens registre har adresserne basisadresse+register nr. Der opnås adgang til disse registre<br />

ved brug af funktionerne inportb (adresse) og outportb (adresse, data) som findes i headerfilen<br />

dos.h, disse to funktioner giver adgang til det før omtalte input-/outputområde i processorens<br />

adresserum. Følgende beskrives de væsentligste af UART’ens registre.<br />

Register 0: Transmitter-/receivebuffer<br />

Dette register er i virkeligheden to fysiske adskilte registre. Hvis der læses fra registret, læses den<br />

byte, som er modtaget gennem den serielle forbindelse, og hvis der skrives til registret vil den byte<br />

der skrives sendes gennem den serielle forbindelse. Da de to registre er fysisk adskilte, kan der både<br />

modtages og sendes data samtidigt. I det øjeblik der skrives til dette register, vil UART’en<br />

påbegynde at sende den skrevne byte gennem forbindelsen.<br />

Register 1: Interrupt enable<br />

Dette register bestemmer hvornår UART’en skal generere et interrupt 16 . Et binært 1 i bit 0 bevirker,<br />

at UART’en genererer et interrupt, hver gang den har modtaget en byte data.<br />

Register 0 og 1: Divisor latch<br />

De to registre har til sammen en anden funktion når bit 7 i register 3 sættes til 1. Når denne bit er 1<br />

kan der til register 0 og 1 skrives den 16 bits værdi, som bruges til at genere den ønskede baud-rate.<br />

Dette sker i samarbejde med en ekstern oscillerende krystal, som giver UART’en et signal med en<br />

fast frekvens. Denne frekvens deles med det tal der skrives i register 0 og 1. Herved generes<br />

UART’ens arbejdsfrekvens og dermed også baud-raten. For kommunikation med 9600 baud skal<br />

register 0 indeholde 0Ch og register 1 skal indeholde 00h.<br />

Det skal bemærkes, at i det øjeblik bit 7 i register 3 sættes til 1 bliver data sendt til register 0 og 1<br />

omdirigeret til et internt register i UART’en, der er altså igen tale om et fysisk separat register.<br />

15 ’h’ angiver at tallet er angivet i det hexadecimale talsystem.<br />

16 Interrupts diskuteres i afsnit 1.1.3<br />

Side 58 af 113


Register 3: Line control<br />

Dette register bestemmer hvilket<br />

format de serielle data skal have.<br />

Bit 0 og bit 1 bestemmer hvor<br />

mange databit der skal sendes ad<br />

gangen. I vores tilfælde sættes<br />

begge bits til 1 for at opnå 8<br />

databits.<br />

Bit 2 bestemmer antallet af stop<br />

bits, som i vores tilfælde er 1<br />

svarende til at bitten sættes til 1.<br />

Seriel kommunikation<br />

Bit nr. Funktion<br />

7 1: Register 0&1 giver adgang til baud-rate registret.<br />

0: Register 0&1 fungerer normalt.<br />

6 Ingen betydning her.<br />

5,4,3 Paritetskontrol (0,0,0 svarer til ingen paritetskontrol)<br />

2 1: 2 stop bit<br />

0: 1 stop bit<br />

1,0 Antal databit (1,1 giver 8 databit)<br />

Figur 6.6 – Oversigt over Line Control registret.<br />

Bit 3,4,5 bestemmer hvordan paritet skal fortolkes, vi sætter alle bittene til 0, hvorved paritet ikke<br />

bruges.<br />

Desuden, som før omtalt, bestemmer bit 7 om register 0 og 1 fungerer normalt, eller om skrive<br />

instruktioner til dem resulterer i en ændring af baud-raten (Register oversigt på fig. 6.6).<br />

Register 5: Line status<br />

Dette register indeholder information om status på forbindelsen. Interessant for os er bit 0, som<br />

angiver hvorvidt der er data klar i register 0 eller ej. Når der læses fra register 0, sættes bit 0 i<br />

register 5 automatisk til 0. Denne bit kontrolleres derfor for et binært 1, inden man læser den<br />

modtagene byte fra register 0.<br />

6.1.3 PC-Interruptsystemet<br />

Hvis processoren i en PC hele tiden skulle kontrollere om der er en nyt data tilgængelig fra<br />

UART’en, vil en substantiel del processorens ressourcer bruges på denne opgave. For at undgå dette<br />

benyttes interrupts. I dette afsnit forklares hvad interrupts er og hvordan de benyttes i Intelarkitekturen<br />

17 .<br />

Interrupts giver eksterne enheder mulighed for at signalere til processoren, at en eller anden<br />

begivenhed er indtruffet. Når processoren modtager dette signal vil den afslutte den igangværende<br />

instruktion, gemme værdierne af de interne registre i hukommelsen, og fortsætte programudførelsen<br />

fra et sted i hukommelsen, hvor der er placeret software til behandling af denne type begivenhed.<br />

Når softwaren har afsluttet sin behandling giver den signal til processoren om at interruptet er<br />

afsluttet, hvorved processoren henter indholdet af sine registre tilbage og fortsætter<br />

programudførelsen fra det sted hvor interruptet indtraf.<br />

17 Det var Intel som oprindeligt udviklede 8051 serien af microcontrollere.<br />

Side 59 af 113


Seriel kommunikation<br />

Intel kompatible processorer (80x86) har 256 mulige<br />

interruptkilder, men det er kun 16 af dem, som bruges med<br />

ekstern hardware. Den eksterne hardware er ikke direkte<br />

forbundet til processoren, som kun har et ben til interrupt<br />

identifikation, men går i stedet igennem en PIC 18 -kreds. Når<br />

PIC-kredsen modtager et interrupt signal fra en enhed<br />

signalerer den et interrupt til processoren. Når processoren<br />

modtager dette signal afslutter den igangværende instruktion,<br />

hvorefter den signalerer til PIC-kredsen, at den er klar til at<br />

behandle interruptet. Herefter placerer PIC-kredsen nummeret<br />

på interruptkilden (se figur 6.7) på processorens databus.<br />

Processoren læser dette nummer og bestemmer på baggrund<br />

heraf hvor i hukommelsen den skal fortsætte<br />

programudførelsen.<br />

Vi er interesseret i interrupt nr. 4, fordi det via UART’en kan<br />

genere interrupts når der modtages en ny databyte gennem<br />

kommunikationsport 1. Desuden er vi interesseret i interrupt nr.<br />

Interrupt nr. Interruptkilde<br />

0 System timer<br />

1 Tastatur<br />

2<br />

3 Seriel porte 2 og 4<br />

4 Seriel porte 1 og 3<br />

5 Ly<strong>dk</strong>ort<br />

6 Floppy disk<br />

7 Parallel porten<br />

8 Realtidsur<br />

9<br />

10<br />

11<br />

12 Mus<br />

13 Matematisk processor<br />

14 Hard-disk<br />

15<br />

Figur 6.7 – Oversigt over de forskellige<br />

hardware interrupts.<br />

0, som generer et interrupt for hver 55ms, da dette interrupt kan bruges til med jævne mellemrum at<br />

kontrollere om brugerprgrammet ønsker at sende data serielt.<br />

PIC-kredsen 19<br />

Som navnet antyder skal denne kreds programmeres. Dette sker, som ved UART’en, gennem en<br />

række registre i processorens I/O-område. Det er muligt at specificere hvilke interrupts kredsen skal<br />

reagere på. Det vil sige, at kredsen kun sender et interruptsignal til processoren hvis den angivne<br />

interruptkilde er specificeret til at generere et interrupt. Dette gøres ved at skrive til registret på<br />

adresse 0021h, hvor bit 0-7 angiver om interrupt 0-7 skal signaleres til processoren. På denne måde<br />

er det muligt at slå specifikke interruptkilder til og fra efter behov.<br />

PIC-kredsen skal desuden have besked når processoren har udført et interrupt, herved nulstilles<br />

interruptet i kredsen og den er klar til at modtage et nyt interrupt fra denne kilde. Nulstilling sker<br />

ved at sende værdien 20h til adresse 0020h.<br />

Interrupt-vektorer<br />

For at processoren ved hvor i hukommelsen den skal finde det software, som skal behandle<br />

interruptet, ligger der fra adresse 0000:0000h til 0000:04ff en tabel med 256 adresser, en til hver af<br />

de 256 mulige interrupts. Hver af disse adresser kaldes for en interrupt-vektor. Når et interrupt<br />

startes læser processoren på interruptets vektor hvor i hukommelsen den kan finde den ønskede<br />

software-rutine.<br />

For at bruge et interrupt må der derfor skrives i denne tabel hvor softwaren, kaldet for en Interrupt<br />

Service Rutine (ISR), er placeret. Dette gøres med kommandoen setvect (Vektor nr., adresse) fra<br />

headerfilen dos.h. For at efterlade systemet intakt efter sit program er udført, er det en god ide at<br />

gemme adressen på den gamle ISR, inden man overskriver den med sin egen ISR-adresse. Når så<br />

ens program afsluttes bruges setvect til at genindsætte den gamle ISR. Indholdet af en vektor læses<br />

med kommandoen getvect (vektor nr.).<br />

18 PIC: Programmable Interrupt Controller<br />

19 I vireligheden styres de 16 interrupts af to forbundne PIC-kredse, men da de to interrupts som har vores interesse<br />

begge af styret af den første kreds. Vil vi i dette afsnit ikke diskutere brug af interrupt 9-15.<br />

Side 60 af 113


6.1.4 MCU-UART<br />

Seriel kommunikation<br />

MCU-systemet har ligesom PC’en en UART, men i MCU-systemet er denne en del af selve<br />

MCU’en og ikke en periferier enhed. Selvom UART’en er en integreret del af MCU’en kan den<br />

køre parallelt med de andre funktioner i MCU’en. Følgende vil de forskellige kontrolregistre på<br />

MCU’en blive gennemgået og det vil blive forklaret hvordan MCU’en generer sin baud-raten 20 .<br />

SBUF registret<br />

SBUF (Seriel buffer) registret svarer til register 0 på PC’en, dvs. den er buffer både for sidst<br />

modtagende byte og for den byte der sendes og ligeledes som ved PC’en påbegyndes transmission i<br />

det øjeblik der skrives til SBUF registret.<br />

SCON registret<br />

SCON (seriel control) registret styrer<br />

seriel portens konfiguration. (Register<br />

oversigt fig. 6.8) Specielt bestemmer<br />

registret hvilken type forbindelse der<br />

skal oprettes. Da vi har valgt at bruge 8<br />

databit (jvf. 6.1.1) er der kun en<br />

mulighed, nemlig mode 1.<br />

De to interruptbits TI, RI har også<br />

interesse, da vi her kan se om<br />

UART’en har genereret et interrupt<br />

fordi den enten har sendt eller<br />

modtaget en byte.<br />

Endvidere skal det huskes at bit 4 skal<br />

sættes før UART’en kan begynde at<br />

modtage data fra den serielle<br />

forbindelse.<br />

Bit nr. Funktion<br />

7,6 Vælger type af forbindelse:<br />

0,0: Synkroniseret forbindelse (mode 0)<br />

0,1: 8 databit med variabel baud-rate (mode 1)<br />

1,0: 9 databit med fast baud-rate (mode 2)<br />

1,1: 9 databit med variabel baud-rate (mode 3)<br />

5 Bruges til kommunikation mellem flere microcontrollere<br />

4 Receiver enable. Denne bit sættes for at kunne modtage data<br />

3,2 Niende bit ved 9 databit. (en bit til både sende- og modtage<br />

bufferen<br />

1 Sende interruptflag. Bliver 1 når sendebufferen (SBUF) er<br />

tømt. (TI)<br />

0 Modtage interruptflag. Bliver 1 når modtagebufferen<br />

(SBUF) er fyldt. (RI)<br />

Figur 6.8 – Oversigt over SCON- registret.<br />

Baud-rate generation<br />

I mode 1 kan baud-raten generes ved brug af MCU’ens timer/counter 21 1. Timer/counter 1 tæller<br />

antallet af clock-frekvensen og hver gang den har talt 65535 perioder vil alle bittene i tæller<br />

registeret gå fra 1 til 0, dette kaldes et overløb og perioden mellem hver overløb svarer til<br />

1/(baudrate). Afhængig af hvordan timer/counter 1 sættes op, kan der opnås baud-rates mellem 110<br />

og 62500 baud.<br />

Hvis MCU’en drives af en krystal på nøjagtig 12mHz er det imidlertid muligt at genere baud-rates<br />

på henholdsvis 4800 baud og 9600 baud direkte ud fra clock-frekvensen. Dette sker uden brug af<br />

timer/counter 0, hvorfor denne metode er at foretrække, da timer/counter hermed kan bruges til<br />

andre opgaver. Baud-rate generation på denne måde vælges ved at sætte bit 7 i ADCON (A/D<br />

Converter Control) registret, og baud-raten vælges til 9600 baud ved at sætte bit 7 i PCON (Port<br />

Control) registret. De to nævnte registres resterende bit har ingen funktion i forbindelse med seriel<br />

kommunikation<br />

20 For yderligere uddybning omkring MCU'ens UART henvises til [Siemens]<br />

21 Timer/counter 1 er en anden periferier enhed i MCU’en. JVF “MCU-software”<br />

Side 61 af 113


6.1.5 MCU-interruptsystemet<br />

Seriel kommunikation<br />

Interruptsystemet på MCU'en styres af en række registre i MCU’en, vigtigst er IEN0 og IEN1<br />

(Interrupt Enable 0/1), hvor det vælges hvilke interrupts, der skal være aktiverede. I vores tilfælde<br />

skal bit 4 i IEN0 sættes for at aktivere interrupts for seriel-porten. Det serielle interrupt har sin<br />

interrupt-vektor på adresse 0023h.<br />

På MCU’en vil der genereres et serielt interrupt, hvis der enten er sendt eller modtaget en byte.<br />

Der er ikke som på PC’en mulighed for selv at specificere ved hvilke hændelser UART’en skal<br />

genere et interrupt (jvf. afsnit 1.1.2 ”register 1”). Men interruptrutinen kan undersøge dette ved at<br />

læse bittene TI og RI fra SCON registret (jvf. figur 1.8) Endvidere skal de to nævnte bit slettes<br />

inden interrupt service rutinen forlades, da interruptsystemet udløser interrupt i det øjeblik det<br />

konstateres at enten TI eller RI går fra 0 til 1, hvilket ikke kan ske hvis de i forvejen er sat til 1.<br />

6.1.6 Buffer og API<br />

Ved hjælp af UART og interrupts kan vi nu sende og modtage data på både PC og MCU, men for,<br />

at det skal være bekvemt for brugersoftwaren at kommunikere gennem den serielle forbindelse, skal<br />

vi have udviklet vores API, dvs. de funktioner, som brugerprogrammet skal kalde for at bruge det<br />

serielle interface. Desuden skal vi sørge for, at de data der modtages ikke går tabt, hvis ikke<br />

brugersoftwaren når at læse data fra seriel porten inden den næste byte modtages. Der skal altså<br />

udvikles en buffer mekanisme, der kan opbevare dataene midlertidigt og desuden skal denne<br />

mekanisme være let for brugersoftwaren at anvende. Herved undgås, at brugersoftwaren behøver at<br />

bekymre sig om detaljerne ved seriel kommunikation.<br />

For at imødekomme dette vil vi anvende en cirkulær FIFO 22 -<br />

buffer. Denne muliggør at bufferen har en konstant størrelse og,<br />

at det først ankomne element hentes ud først. Denne bufferform<br />

kræver et array, 2 pointere og en statusvariabel. Et eksempel kan<br />

ses på fig. 6.9.<br />

Eksemplet viser en cirkulær buffer på 9 lagerenheder.<br />

Firstpointer peger på det første element i bufferen og Lastpointer<br />

peger på den første ledige plads i bufferen. Statusvariablen er 4<br />

svarende til, at bufferen indeholder 4 elementer (de prikkede<br />

kasser). Hvis der skal hentes data fra bufferen udlæses værdien på<br />

position 1, firstpointer inkrementeres med 1 og statusvariablen<br />

dekrementeres med en og bliver 3.<br />

Hvis der skal gemmes data i bufferen gemmes det på<br />

position 5 og både lastpointer og Statusvariablen<br />

inkrementeres begge med 1, hvorved lastpointer igen peger på<br />

den første ledige plads i bufferen.<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

Statusvariabel<br />

4<br />

Lastpointer<br />

Firstpointer<br />

Figur 6.9 – Cirkulær buffer med 9<br />

elementer, pointere og statusvariabel.<br />

Når bufferen er tom vil firstpointer og lastpointer pege på samme position og statusvariablen vil<br />

være 0 svarende til, at bufferen er tom. Når en af pointerne inkrementeres til at pege på det 9’ende<br />

element, wrapper pointeren, dvs. den bringes til at pege på position 0 i stedet for. I det tilfælde at<br />

lastpointer ”overhaler” firstpointer dvs. bufferen fyldes, må der ikke kunne skrives mere i bufferen.<br />

22 First In/First Out<br />

Side 62 af 113


Seriel kommunikation<br />

Derfor skal statusvariablen kontrolleres inden der skrives i bufferen, så det ikke er muligt at<br />

overskrive data.<br />

6.2 Design af Seriel interface<br />

Målet for det serielle interface er at skabe en kommunikationsvej mellem to programmer, der er<br />

placeret på hver sin platform, henholdsvis PC og MCU. På fig. 6.10 ses de enkelte komponenter i<br />

dette system og sammenhængene imellem dem. I dette afsnit vil vi kigge nærmere på hvordan de<br />

enkelte softwarekomponenter skal programmeres, og hvordan de enkelte komponenter kan bringes<br />

til at virke sammen.<br />

6.2.1 Design af PC-software<br />

PC MCU<br />

Forbindelse oplevet<br />

af bruger software<br />

Bruger<br />

Software<br />

API<br />

Interrupts<br />

PC-UART<br />

Seriel forbindelse<br />

Bruger<br />

Software<br />

API<br />

Interrupts<br />

MCU-UART<br />

Softwareniveau<br />

Hardwareniveau<br />

Figur 6.10 – Opstilling af de enkelte komponenter, som deltager i udførelsen<br />

af den serielle kommunikation mellem de to brugerprogrammer.<br />

Vi vil her diskutere designet af softwaren til det serielle interface på PC’en. Som det ses på fig.<br />

6.10, er der 3 elementer (UART, Interrupts og API), som skal bringes til at virke sammen. Da der<br />

både er tale om hardware- og softwareelementer skal interfacet dels sætte hardwaren op med de<br />

ønskede indstillinger og dels indeholde de rutiner som skal behandle de data, som modtages og skal<br />

sendes.<br />

Opsætning af UART<br />

Først konfigureres PC’ens UART. Dette indebærer at UART’ens basisadresse findes ved at læse<br />

på adresse 0000:0400h i hukommelsen. Herefter bruges basisadressen til at programmere<br />

UART’ens registre med de ønskede værdier (jvf. 6.1.2).<br />

Design af cirkulær buffer<br />

Da bufferen tillige er grænseflade til brugerprogrammet, er det ønskværdigt at det er designet på<br />

en sådan måde, at brugerprogrammet enkelt kan betjene sig af den, uden at brugerprogrammet<br />

behøver at vide noget om seriel kommunikation. Herfor bruges C++’s mulighed for<br />

Side 63 af 113


Seriel kommunikation<br />

programmering med klasser, som giver mulighed at udvikle en sådan grænseflade til<br />

brugerprogrammet 23 . Det skal bemærkes at der faktisk indgår to separate buffere i interfacet, både<br />

en modtage- og en sendebuffer.<br />

Vi vil lade bufferens grænseflade bestå af følgende funktioner, som også udgør API’en for den<br />

serielle kommunikation:<br />

Status () – Returnerer antallet af elementer i bufferen.<br />

Post (Dataelement) – Gemmer et dataelement i bufferen.<br />

Retrieve (Dataelement) – Returnerer et dataelement i bufferen.<br />

De tre funktioner skitseret ved hjælp af pseudokode i bilag ”pseudokode”.<br />

Som før nævnt skal der bruges to buffere i interfacet, en til at holde modtagende data og en til at<br />

holde de data der skal sendes. Disse to buffere skabes i C++ udfra de ovenfor beskrevne klasse, der<br />

fungerer som en skabelon. Kalder vi dem for Modtag og Send, kan de beskrevne funktioner i<br />

klassen benyttes ved f.eks. Modtag.status(), som returnerer status for modtagebufferen eller f.eks.<br />

Send.post(Data), som gemmer data i sendebufferen.<br />

Interrupt Service Rutiner<br />

Vi vil oprette et interrupt, som hver gang der modtages data på seriel-porten, sørger for at lagre<br />

denne information i modtage-bufferen. Hertil bruges interrupt nr. 4 (jvf. 6.1.3). Desuden vil vi<br />

oprette et interrupt som med jævne mellemrum kontrollerer om brugerprogrammet har skrevet i<br />

sende-bufferen, og hvis dette er tilfældet, viderebringe dataene til seriel porten. Hertil bruges<br />

system-timer interruptkilden (nr. 1), som genererer et interrupt for hver 55ms. ISR for modtage<br />

interruptet kan ses som pseudokode i bilag ”pseudo-kode”. De to ISR’er skal selvfølgelig initieres<br />

med Setvect() og der skal skrives til PIC-kredsens kontrolregister for at aktivere de ønskede<br />

interrupts (jvf. afsnit 1.1.3).<br />

6.2.2 Design af MCU-software<br />

Følgende behandler vi designet af det serielle interface til MCU. Som ved PC er det de tre<br />

elementer UART, Interrupts og API, som skal bringes til at virke sammen. Vi vælger på MCU’en<br />

kun at bruge buffer til at modtage data serielt, hvorimod dataene sendes serielt direkte uden brug af<br />

buffer. Dette gør interfacet simplere at programmere, og det sparer hukommelse til sende-bufferen.<br />

Til MCU’en programmeres der i C, da C++ ikke er egnet til små 8-bit computere bl.a. pga. et<br />

større hukommelsesforbrug. Herfor kan der ikke programmeres med klasser, som ved PC-interfacet.<br />

Opsætning af UART<br />

Som det første konfigureres MCU’ens UART ved at sætte de ønskede bit jvf. 6.1.4.<br />

Design af cirkulær buffer<br />

Designet af den cirkulære buffer følger så vidt muligt det samme design som PC-Bufferen (afsnit<br />

6.2.1), men da vi ikke kan arbejde med klasser, programmeres bufferen i stedet som globale<br />

variable og funktioner, som derfor kan kaldes overalt i programmet. Selve koden i funktionerne er<br />

den samme som ved PC-bufferen og pseudokoden herfra kan genbruges.<br />

23 Vi vil I denne rapport ikke omtale det objekt orienterede paradigme nærmere.<br />

Side 64 af 113


Seriel kommunikation<br />

Transmision af data<br />

Transmission af data sker som før nævnt direkte uden brug af buffer, der skal derfor heller ikke<br />

bruges et interrupt til at undersøge om der er data i bufferen, som skal sendes. Før vi kan sende en<br />

byte serielt, må vi først undersøge om UART’en er klar til at sende, dvs. den sidst sendte byte er<br />

færdigsendt. Dette er imidlertid et problem da, der ikke i MCU’ens UART er en bit som angiver<br />

dette. Dette problem løses ved at bruge det interrupt, som genereres når en byte er sendt af<br />

UART’en. Vi lader dette interrupt sætte et flag, dvs. en global variabel, som sendefunktionen skal<br />

vente på er sat før den må sende en ny byte til UART’en. Dette flag slettes så af sendefunktionen<br />

når den nye byte er sendt. Pseudokode for sendefunktionen og det serielle interrupt kan ses i bilag<br />

”pseudokode”.<br />

Modtagelse af data<br />

Når det serielle interrupt aktiveres ved at sætte bit 4 i MCU’ens IEN0-registret (jvf. 6.1.5)<br />

genereres både interrupts når der modtages en byte og når den sidste bit i SBUF er sendt. Derfor<br />

skal interrupt service rutinen selv finde ud af hvorfor interruptet indtraf. Dette gør den ved at læse i<br />

SCON registret hvor to bit angiver hvilken af de to årsager, som er grund til interruptet. Hvis<br />

interruptet skyldes at den sidste bit i sendebufferen er sendt, skal rutinen (som beskrevet ovenfor)<br />

sætte SFLAG, så der kan sendes mere data. Hvis interruptet skyldes, at der er modtaget en byte,<br />

skal denne gemmes i bufferen. Koden kan ses som pseudokode i bilag ”pseudokode”.<br />

Som det kan ses af pseudokoden er funktionen til at gemme i bufferen en del af selve interruptet,<br />

hvorimod det på PC’en var et funktionskald til bufferklassen. Dette skyldes at MCU’en ikke har en<br />

sende buffer, hvorfor gemme på buffer funktionen kun skal kaldes et sted; ved modtagelse af data.<br />

Der er herfor ikke brug for at programmere det som en funktion.<br />

6.2.3 Sammenfatning af design<br />

Ved det beskrevne design har vi opnået at kombinere de tre elementer UART, interrupts og buffer<br />

i en simpel API, der kun består af tre funktioner. Dette gør det let for et brugerprogram at anvende<br />

seriel kommunikation. Vi har i vid udstrækning brugt interrupts for at gøre interfacet så uafhængigt<br />

som muligt. Vi kunne have valgt at fokusere mere på at designe et mere generisk interface, dvs. et<br />

interface som let kan bruges i andre sammenhænge, men vi har konsekvent valgt at designe det med<br />

så lidt funktionalitet som muligt. Dette skyldes at prioriteterne har været hurtig udviklingstid og<br />

overskuelighed.<br />

6.3 Implementation og test<br />

Implementation er sket løbende som prototyping (jvf. ”Metodeafsnit”) og har ikke budt på store<br />

overraskelser. Der har dog været et par problemer med det simulationsprogrammet som er brugt<br />

under implementationen til MCU’en. Det viste sig, at simulationsprogrammets timing er en smule<br />

unøjagtig i forhold til den virkelige kreds.<br />

Softwaren er testet for ved at sende data mellem MCU og Computer. Det har vist sig, at der ikke er<br />

opstår fejl på forbindelsen som følge af støj. Hermed er krav 1 og 3 (jvf. Afsnit 1.0) overholdt og vi<br />

behøver ikke, i den øvrige software at tage højde for dette 24 .<br />

24 Så længe der er tale om et afgrænset projekt.<br />

Side 65 af 113


Seriel kommunikation<br />

Da interfacet hovedsageligt er interruptstyret imødekommes krav 2 (jvf. Afsnit 1.0), som siger at<br />

systemet skal kunne udføre andre opgaver simultant med det serielle interface. Dog er MCU’ens<br />

sende funktion ikke interruptstyret, hvorfor det kaldende program kan komme til at vente op til<br />

maksimalt 105 mikrosekunder på, at der sendes en byte serielt, da dette svarer til tiden, som det<br />

tager for at sende 8 databit, star- og stopbit. Dette vil ske hvis brugerprogrammet kalder<br />

sendefunktion umiddelbart to gange lige efter hinanden. Men det forventes ikke, at dette vil være<br />

anledning til problemer, da mange af MCU’ens funktioner kan køre helt uafhængigt af CPU’en<br />

(F.eks. Analog til digital konverteren). Desuden er en pause på 105 mikrosekunder negligeabelt i<br />

forhold til et reguleringsprogram, som skal regulere til et system med en responstid på ca. 850<br />

sekunder (jvf. 2.4.1).<br />

6.4 Fortolkning af data sendt gennem forbindelsen<br />

Vi kan på nuværende tidspunkt sende og modtage data serielt mellem MCU og PC. For at kunne<br />

benytte dette, må vi specificere hvordan henholdsvis PC og MCU skal fortolke disse data. For at<br />

specificere dette må vi først analysere hvilke kommandoer og data, der er brug for at formidle<br />

mellem de to enheder.<br />

MCU’en har kun behov for at kende den temperatur, som brugeren ønsker rummet skal have, for<br />

at kunne udføre den ønskede regulering. PC’en derimod skal kunne modtage alle væsentlige<br />

parametre fra MCU’en, såsom målte temperaturer og effekt, så brugeren på sin skærm kan se hvad<br />

temperaturen i rummet er og hvilken effekt, som løber gennem radiatoren. Desuden behøver PC’en<br />

at fortælle MCU’en hvornår natsænkning skal påbegynde eller afsluttes.<br />

Disse behov er opsat i følgende tabel (fig. 6.11), som viser hvem der initierer kommunikationen,<br />

hvorfor og hvilket svar der forventes.<br />

Ordre Initiator Beskrivelse Yderligere data Svar<br />

1 MCU Anmod om ønsket<br />

indetemperatur<br />

Ønsket indetemperatur<br />

2 PC Ny ønsket indetemperatur Ønsket<br />

fra bruger<br />

indetemperatur<br />

3 PC Anmod om temperaturer<br />

Indetemperatur,<br />

og effekt<br />

udetemperatur, effekt<br />

4 PC Påbegynd natsænkning Ønsket<br />

nattemperatur<br />

5 PC Afslut natsænkning Ønsket<br />

temperatur<br />

Fig. 6.11 – Viser hvem der initierer kommunikationen, hvorfor, hvilke data der efterfølger ordren og hvilket svar<br />

initiatoren forventer.<br />

Kommunikationen realiseres på den måde, at initiatoren sender ordrenummeret som første byte, og<br />

evt. data i efterfølgende bytes. Modtageren svarer så ved at gentage ordrenummeret som første byte<br />

hvorefter der følger svardata. Ved at gentage ordrenummeret sikres det, at MCU og PC kan fortolke<br />

hinandens ordre, selvom de begge har anmodet om data samtidigt. Da de ellers ikke i et sådan<br />

tilfælde kan vide om det data de har modtaget, er en ordre, eller om det svaret på sidste anmodning.<br />

Side 66 af 113


Seriel kommunikation<br />

Som eksempel forestiller vi os at PC’en ønsker at modtage nye værdier af temperaturer og effekt<br />

fra MCU’en. Den sender værdien 3, og modtager kort efter: 3, indetemperatur, udetemperatur,<br />

effekt. Som fire bytes.<br />

Hermed har vi specificeret hvordan de data, som sendes gennem den serielle forbindelse skal<br />

fortolkes og hvilke kommandoer det skal være muligt at bruge mellem de to enheder.<br />

Side 67 af 113


7.0 MCU-software<br />

MCU-software<br />

I dette kapitel vil vi koncentrere os om, at udvikle det software til SBC’en, som sætter denne i<br />

stand til at udføre reguleringen af radiatoren på baggrund af de ordrer, som modtages fra brugeren<br />

gennem det serielle interface.<br />

Først vil vi beskrive brugen af de enkelte perifere enheder i MCU'en, som vi vil gøre brug af.<br />

Disse er: Analog til digital konverteren (ADC), som vi skal bruge til at måle temperaturer med.<br />

Timer 2, som skal bruges til at regulere effekten med, vha. puls-bredde-modulation (PBM). Timer<br />

0, som kan generere tidsbestemte interrupts, så reguleringen kan udføres med jævne mellemrum.<br />

SBC'ens UART til seriel kommunikation bruges, men denne er indgående blevet beskrevet i<br />

kapitlet om seriel kommunikation. Desuden analyseres det hvordan vi kan arbejde med decimaltal<br />

på SBC'en, som ikke indeholder en matematisk hjælpeprocessor.<br />

Herefter diskuteres det design som skal bringe ovenstående enheder til at virke sammen på<br />

SBC'en. Til sidst diskuteres implementations- og testfasen.<br />

På microcontrolleren, bruges programmeringsproget C i stedet for C++, som vi bruger til<br />

udvikling af PC-software (jvf. x.2.2).<br />

7.1 Brug af periferi-enheder<br />

Følgende gennemgås de forskellige periferier enheder i MCU’en og de programmeringsteknikker<br />

som skal benyttes, for at MCU’en kan regulere radiatoren. For yderligere information om de enkelte<br />

periferi-enheder henvises bilag ”mcu-detal” og databogen for MCU’en [Siemens].<br />

7.1.1 Analog til digital konvertering<br />

For at kunne benytte det resultat som, de to temperaturfølere giver, skal signalerne første<br />

konverteres til digitale signaler. På MCU’en er der indbygget en Analog til Digital<br />

Konverteringskreds (ADC). Denne har 6 multiplexede indgange, AN0-AN5, dvs. den kan skifte<br />

imellem, at konvertere signalet fra 6 forskellige ben. Resultatet af konverteringen er en 8 bit værdi,<br />

dvs. et tal mellem 0-255, som er proportional med spændingen på inputbenet (0-5V). Ved at stille<br />

multitrimmerne (jvf. ”Hardware”) i temperaturmålekredsen sådan, at spændingen er 0V ved 10<br />

grader og 5V ved 60 grader opnås en nøjagtighed på 0,20 grader.<br />

Da vi skal måle både inde- og udetemperaturen, vælger vi at sætte ADC’en op således, at den<br />

udfører kontinuerlige konverteringer af indetemperaturen. Dvs. softwaren hele tiden kan læse den<br />

sidst konverterede indetemperatur i ADDAT-registret (Adc DATa). Hvis softwaren skal bruge en<br />

ny udetemperatur kalder den en funktion som afbryder ADC’ens målinger af indetemperatur og<br />

gennemfører en enkelt måling af udetemperaturen, hvorefter den igen sætter ADC’en op til at<br />

udføre kontinuerlige målinger af indetemperaturen.<br />

Fordelen ved hele tiden, at udføre kontinuerlige målinger af indetemperaturen er, at den sidste<br />

konvertering altid kan læses i ADDAT, hvorfor softwaren ikke behøver at vente de ca. 15<br />

mikrosekunder, som en konvertering tager.<br />

7.1.2 Puls bredde modulation<br />

SBC’en skal styre effekten af radiatoren, til dette benyttes Puls-Bredde-Modulation (PBM). Det vil<br />

i dette afsnit blive forklaret hvad PBM er, og hvordan MCU’en bruger timer 2 til dannelse af PBM.<br />

Side 68 af 113


MCU-software<br />

Ved at variere et signal mellem to spændingsniveauer er det muligt, gennemsnitligt set, at generere<br />

alle mulige spændinger imellem de to yderpunkter. Dette er princippet bag PBM. Hvis for eksempel<br />

der på en given udgang skiftes mellem lige lange perioder på henholdsvis 0 og 5V, opnås et signal<br />

med en gennemsnitlig spænding på 2.5V.<br />

Det er altså muligt at danne et signal med en vilkårlig spænding ved at variere spændingen mellem<br />

0 og maksspændingen i lige lange perioder, hvor spændingen holdes høj i en procentdel af perioden,<br />

svarende til den procentdel af maksspændingen, der ønskes på udgangen. Det skal dog hele tiden<br />

holdes i mente, at de komponenter der drives af denne spænding skal kunne operere ved denne<br />

pulserende spænding uden at blive overbelastede eller generere forstyrrelser pga. f.eks.<br />

selvinduktion.<br />

Til brug ved effektregulering af radiatoren, kræves der en større spænding en MCU’en kan levere<br />

på sine udgange (0-5V), derfor bruges udgangene til at styre en større spænding vha. effekttrinnet,<br />

som er beskrevet i afsnittet om hardwaren. Ved at styre dette effekttrin er det muligt at generere alle<br />

spændingsniveauer, som ligger inde for spændingsfaldet over effekttrinnet.<br />

For at generere PBM bruges MCU’ens interne timer 2. Denne timer har nogle tilhørende registre,<br />

der giver mulighed for opsætning af timerens virkemåde og pulsens bredde. Der er i alt 12 registre<br />

på hver 8 bit tilknyttet timer 2, disse giver mulighed for at generere op til fire uafhængige pulser,<br />

som hver er gennemført til et ben på MCU’en.<br />

En timer er en tids tæller, der når den er aktiveret, tæller antallet af machine-cycles. Dette foregår,<br />

for timer 2’s ve<strong>dk</strong>ommende, i et 16 bit register. Timer 2 sættes op til at begynde forfra ved<br />

overflow, dvs. når timeren har talt til maksimum. Derudover skrives der til et 16-bit<br />

sammenligningsregister, som hele tiden sammenlignes med indholdet af timer 2, når de to registre<br />

er ens, bliver signalet på udgangen binært højt, svarende til, at der på udgangen på MCU’en er en<br />

spænding på 5V. Når så timer 2 har talt til 65535 (16-bits maksimum), sættes udgangen automatisk<br />

igen til binært 0. Den gennemsnitlige udgangsspænding varieres altså ved at ændre på værdien i<br />

sammenligningsregistret.<br />

Opsætningen af timer 2 styres af to registre T2CON (Timer 2 CONtrol) og CCEN<br />

(Compare/Capture Enable). Opsætningen af disse er beskrevet i bilag ”mcu-detal”<br />

Software til PBM<br />

Vi ønsker at tilføre radiatoren en effekt på mellem 0-50W (Jvf. ”regulering”), da radiatoren har en<br />

resistans på 37.2Ω (jvf. bilag: ”fysisk model”), betyder det, at den ønskede spænding kan beregnes<br />

ved formlen:<br />

U = 37.<br />

2Ω⋅<br />

P<br />

(7.1)<br />

Da vi maksimalt ønsker en effekt på 50W, skal effektrinnet forsynes med et spændingsfald på<br />

43.1V, hvorved det vha. PBM bliver muligt at generere alle ønskelige effekter mellem 0-50W.<br />

Fort at anvende spændingen, beregnet i formel 1.1, til at generere pulser med skal den udtrykkes<br />

som antallet af machine-cycles ud af en hel periode (65536 cycles), hvori signalet skal være højt.<br />

Dette gøres ved at skalere formel 1.1. med forholdet mellem spændingsspændet og periodelængden<br />

(65536/43.1=1519.6). Dermed kan vi beregne hvor mange mikrosekunder i hver periode, udgangen<br />

skal være høj:<br />

Højperiode = 1519.<br />

6⋅<br />

37.<br />

2Ω⋅<br />

P<br />

Side 69 af 113<br />

(7.2)


MCU-software<br />

Det tal, der skal skrives til CC1-registret (Compare/Capture 1) 25 , er hele perioden(65536)<br />

substraheret med højperioden. Dette er fordi, at signalet først bliver højt i det øjeblik at CC1 er lig<br />

med timerregistret. CC1 Udregnes altså ved følgende formel:<br />

CC1 = 65536 −1519.<br />

6⋅<br />

37.<br />

2Ω⋅<br />

P<br />

Da udregningen af denne formel, er en meget beregningstung opgave for MCU’en at udføre pga.<br />

kvadratrodsudledningen. Har vi i stedet for at gennemføre den på MCU’en, valgt for hvert hele<br />

effekttrin at beregne værdierne på forhånd. Disse forudberegnede værdier er så lagt i en tabel,<br />

placeret i ROM-kredsen, som bruges til opslag når der ændres på effekten. Unøjagtigheden som<br />

skyldes afrundingen til nærmeste hele effekttrin, betyder pga. den kontinuerlige regulering, ikke<br />

andet end, at effekten, typisk vil stå og skifte mellem to forskellige værdier, når den har opnået den<br />

ønskede temperatur.<br />

Der er programmeret en funktion, som når den kaldes med den ønskede effekt, slår denne effekt op<br />

i tabellen og ændrer CC1-registret, sådan at den passer med den nye effekt. Denne funktion er<br />

skitseret med pseudokode i bilag ”MCU-pseudokode”.<br />

7.1.3 Timer 0<br />

Da reguleringsalgoritmen bruger tiden i sine udregninger, er det vigtigt, at den kaldes med faste<br />

intervaller. Til dette formål benyttes Timer 0 og interrupts.<br />

Vi vælger at køre reguleringsmekanismen for hver 10’ende sekund. Da timer 0 vil generere et<br />

interrupt for hver 65536 mikrosekunder. Skal timer 0’s ISR tælle interrupts op til de 10 sekunder er<br />

gået, den skal altså i alt tælle (10.000.000/65.536)µs= 152.6 interrupts. De 0,6 opnås ved, at ISR<br />

ved interrupt nr. 152 skriver (1-0,6)·65536≅26214 i timerens tæller register. Perioden til næste<br />

interrupt bliver da forkortet, så det passer med, at næste interrupt generes præcist på det 10’ende<br />

sekund (på nær afrundingsfejlen). På det 153’ende interrupt sætter ISR så et flag, som signalerer til<br />

hovedrutinen, at det nu er tid til at køre reguleringsfunktionen. Dette flag slettes så af<br />

reguleringsfunktionen, når den køres.<br />

7.1.4 Beregninger med decimaltal<br />

Den i afsnittet ”regulering” opstillede reguleringsalgoritme indebærer beregninger med decimaltal,<br />

hvilket stiller meget store krav til datakraft, fordi decimaltal, i forhold til integertal, dels kræver<br />

meget hukommelse og mange beregninger. Derfor har vi valgt ikke direkte at benytte decimaltal i<br />

MCU-softwaren, selvom C-sproget indeholder mulighed for at benytte dem 26 . Vi vil i dette afsnit<br />

gennemgå den programmeringsteknik som vi bruger for alligevel at kunne lave beregninger med<br />

tilstrækkelig præcision til at kunne udføre beregningerne dikteret af reguleringsalgoritmen.<br />

Hvis vi i titalssystemet begrænser os til at udføre regneoperationer på integertal vil summen af<br />

f.eks. tallene 4,7 og 5,9 give 9, men hvis vi forestiller os, at tallene før beregningen skaleres med en<br />

25 Dette register er det valgte sammenligningsregister.<br />

26 Desuden er vi ved forespørgsel i nyhedsgruppen comp.arch.embedded blevet frarådt at bruge float-typer på en så<br />

begrænset MCU.<br />

Side 70 af 113<br />

(7.3)


MCU-software<br />

faktor 10, bliver resultatet 106. Reduceres dette tal igen med faktoren 10 fås integertallet 10, derved<br />

er fejlen, i forhold til den tidligere beregningen, reduceret til en afrundingsfejl.<br />

Antallet af cifre efter kommaet, som skal have indflydelse på beregningen bestemmes af<br />

skaleringsfaktoren. Øges skaleringsfaktoren til f.eks. 1000 vil de tre mestbetydende cifre efter<br />

kommaet have indflydelse på udregningen.<br />

En ligende tankegang kan bruges til beregninger på microcontrolleren. De temperaturer,<br />

reguleringsalgoritmen arbejder på er tal beskrevet ved en byte, dvs. mellem 0-255, hvis vi skalerer<br />

disse værdier med 256 27 , hvilket svarer til at flytte bittene 8 pladser til højre, opnår vi en<br />

nøjagtighed på 1/256=0.004. Dette tal er nu udtrykt ved 2 bytes (16-bits), hvorfor vi ikke kan øge<br />

nøjagtigheden mere, da der yderligere skal være båndbredde til at udføre regneoperationer på disse<br />

tal. F.eks. hvis vi skal multiplicere to 16-bit værdier vil resultatet skulle udtrykkes ved 32-bit,<br />

hvilket er den største datatype, som understøttes af C-sproget. Desuden er en nøjagtighed på 0.004<br />

tilstrækkelige sammenlignet med vores målenøjagtighed på 0.20 grader (jvf. 7.1.1).<br />

Hvis to af disse tal multipliceres, skal man huske på, at produktet af de to bytes (en fra hver faktor)<br />

med information om decimalttalsværdien i resultatet fylder 16 bits. Derfor er det nødvendig at<br />

afrunde resultatet, ved at dividere med 256, inden der regnes videre med resultatet, så tallene er<br />

kompatible. Samme tankegang er gældende ved division, dog skal resultatet her multipliceres med<br />

256 i stedet.<br />

Det skal bemærkes at selvom mængden af beregninger er betydeligt reducerede ved ovenstående<br />

metode, er reguleringsalgoritmen stadig en beregningstung opgave for MCU’en, da den sættes til at<br />

beregne på 32-bit datatyper, selvom det kun er en 8-bits processor.<br />

7.2 Sammensætning af software<br />

Vi er nu kommet til det punkt hvor den egentlige software<br />

til<br />

MCU’en skal designes. Denne består af tre dele: Selve<br />

reguleringsalgoritmen, kommunikationssoftwaren<br />

(beskrevet i<br />

kapitel x.0) og den software som skal fortolke den<br />

serielle<br />

kommunikation. Disse ”rene” softwarekomponenter<br />

er<br />

afhængige af den foroven-beskrevne opsætning<br />

af hardware og<br />

hjælpefunktioner, som f.eks. funktionen til at variere effekten.<br />

Desuden anvendes også opsætningen af UART’en,<br />

Effektsom<br />

beskrevet i afsnit x.2.2. Forholdet mellem<br />

regulering<br />

disse softwarekomponenter og hardwaren er<br />

skitseret på fig. 7.1.<br />

Overordnet kører MCU-softwaren i en uendelig<br />

løkke, som<br />

først kontroller om der er kommet nye<br />

ordre<br />

fra PC’en, er dette tilfældet kaldes en funktion<br />

Temperatur-<br />

målere<br />

Regulering<br />

Protokol- fortolkning<br />

Seriel- kommunikation<br />

Opsætning af hardware<br />

Figur 7.1 – Viser sammenhængen mellem MCUsoftwaren<br />

og den underliggende hardware.<br />

27 256 er et ”rundt” tal i det binære talsystem, hvorfor MCU’en hurtigt kan gange med dette tal, ved at flyttes bittene til<br />

højre.<br />

Side 71 af 113<br />

RS-232


MCU-software<br />

som fortolker og reagerer på ordren. Dernæst kontrolleres det om timer 0’s ISR har signaleret, at det<br />

er tid til at køre reguleringen. Herefter gentages løkken, og der kontrolleres<br />

igen for nye ordrer fra<br />

PC’en.<br />

7.2.1<br />

Integration af det serielle interface<br />

Det serielle interface er integreret som beskrevet i kapitlet om seriel kommunikation.<br />

Dvs. at de<br />

andre<br />

softwarekomponenter benytter seriel kommunikation vha. den beskrevne API.<br />

7.2.2<br />

Integration af protokollen for seriel kommunikation<br />

Protokollen er integreret sådan, at der i hver gennemløb af den uendelige løkke, kontrolleres<br />

hvorvidt bufferen indeholder dataelementer. Hvis dette er tilfældet læses det første dataelement,<br />

som angiver hvilken kommando, der er tale om. På baggrund af kommandoen forgrenes der til det<br />

kode som skal fortolke denne kommando.<br />

Hvis f.eks. PC’en sender kommandoen 1 (jvf. x.4), som angiver, at PC’en følgende sender en ny<br />

ønsket temperatur, afventer MCU’en ankomsten af den næste byte, som når den ankommer skrives<br />

til den variabel som indeholder den temperatur, som der reguleres efter. Hvis kommandoen fra<br />

PC’en derimod er 3, svarende til at PC’en ønsker temperaturer og effekt sendt til den, Gentager<br />

MCU’en kommandoen og sender de krævede<br />

variable. Pseudokode for protokol-fortolkningen kan<br />

ses i bilaget ”Pseudo til MCU-SW”.<br />

Når MCU’en bliver tændt eller genstartet sender den en gang kommandoen 1, som beder PC’en<br />

om en ønsket rumtemperatur. Modtages denne ikke påbegynder<br />

MCU’en reguleringsfunktionen<br />

med<br />

de faste værdier som variablerne deklareres med.<br />

7.2.3<br />

Integration af reguleringsfunktionen<br />

På MCU’en repræsenteres temperaturen ikke ved Celsius-skalaen, men i stedet som det tal mellem<br />

0-255, som ADC’en måler. Dermed undgås det, at måleværdierne fra ADC’en skal konverteres<br />

til<br />

Celsius-grader i MCU’en, men det stiller det krav til PC-softwaren, at skal omregne mellem<br />

MCU’ens temperaturskala og Celsius’s.<br />

Tallene brugt på MCU omregnes til Celsius-skalaen ved at dividere dem med 5,1, som er forholdet<br />

mellem antallet af mulige temperaturværdier (255) og temperaturspændet fra 10-60 grader<br />

Celsius<br />

(50), hertil adderes så 10, som er nulpunktet for ADC’ens konvertering (jvf. 7.1.1).<br />

Det er dog stadigt nødvendigt at bruge den teknik, som er beskrevet i afsnit 7.1.4 ved videre<br />

beregning med disse tal, fordi der i reguleringsalgoritmen indgår konstanter, der er decimaltal og<br />

som<br />

ikke kan opnå en tilstrækkelig nøjagtighed ved at skalere dem med 5.1.<br />

Selve reguleringsfunktionen kaldes først i det øjeblik, at timer 0 ISR-funktionen<br />

har sat det flag,<br />

som angiver, at der er gået 10 sekunder. Reguleringsfunktionen kaldes da med<br />

temperaturparametrene indetemperatur, udetemperatur og ønsket temperatur. Disse skaleres, som<br />

beskrevet i afsnit 1.1.4, med 256 inden selve udregningerne finder sted. Alle udregninger udføres på<br />

normalvis, dog med den forskel, at alle<br />

konstanterne i reguleringsalgoritmen, også er skalerede med<br />

256 (jvf. ”pseudokode til reg.kap”).<br />

Efter endt regulering slettes flaget fra timer 0, og funktionen til opsætning af PBM kaldes med den<br />

nye<br />

effekt.<br />

Side 72 af 113


7.3 Implementation og test<br />

MCU-software<br />

Implementationen er foregået delvist på den egentlige SBC og delvist vha. af et simulatorprogram,<br />

som simulerer MCU’en. Ved test på SBC’en blev der til kommunikation<br />

brugt et terminalprogram<br />

og<br />

senere i processen anvendtes den egentlige brugerflade.<br />

.<br />

sendes vha. af<br />

II 28 Det blev hurtigt klart at protokollen skulle udvides med en række ordrer til brug ved fejlfinding<br />

Som f.eks. en ordre der returner om MCU’ens reguleringsfunktion tror, at vinduet er åbent eller<br />

lukket, eller om den er i gang med at teste dette. Desuden blev det klart, at de valgte ordrekoder<br />

(Jvf. 6.4) var upraktiske, hvorfor de blev adderet med 100, hvorved ordrene kunne<br />

bogstavtasterne på pc’ens tastatur. Dvs. i stedet for ordrekoderne 0,1..4,5 brugtes<br />

100,101,…104,105, som i ASC -koder svarer til bogstaverne D,E,F,G,H,J, som umiddelbart kan<br />

sendes<br />

fra et terminalprogram.<br />

Selve reguleringsfunktionen fungerede tilfredsstillende og nøjagtigheden af beregningerne viste<br />

sig tilstrækkelig. Reguleringsfunktionen er som før beskrevet meget beregningstung. Vha.<br />

simulatorprogrammet kan det ses, at selve reguleringsfunktionen i værste tilfælde tager ca. 25<br />

millisekunder at udføre. Dette er på ingen måde nok til at være problematisk, og det tyder derfor på,<br />

at reguleringsfunktionen<br />

uden problemer kunne have været implementeret med brug af floating<br />

point<br />

datatyper.<br />

Vi gør her opmærksom på at softwaren til MCU’en ikke opfylde kravspecifikationens punkt 2c:<br />

2. Det elektroniske system skal over forbindelsen<br />

til PC’en kunne:<br />

c.<br />

Modtage tidsramme for natsænkning<br />

Dette skyldes, at det har vist sig upraktisk at skulle programmere et sæt af funktioner på MCU’en<br />

som kan virke som 24 timers ur. Problemet kan løses ved at tilføje en speciel realtidskreds<br />

til<br />

SBC’en, som holder styr på tiden, eller som vi har valgt: at bruge pc’en realtidsur.<br />

Vores løsning betyder dog at SBC’en bliver afhængig af forbindelsen til PC’en for at kunne udføre<br />

natsænkning, og derfor kan den ikke leve helt op til vores<br />

definition på ET, som kræver, at det<br />

embeddede<br />

system kan udføre sine opgaver autonomt.<br />

Test er sket løbende under udviklingen af softwaren. Hver gang der er blevet tilføjet funktionalitet<br />

til programmet, er denne blevet testet og evt. ændringer foretaget inden påbegyndelse af<br />

implementation af flere programdele. Desuden er det endelige<br />

software testet i forbindelse med PC-<br />

softwaren,<br />

hvilket er beskrevet i kapitlet om test af løsning.<br />

28 American Standard Code for Information Interchange: Den mest anvendte for fortolkning af bogstaver, tal og tegn på<br />

computere.<br />

Side 73 af 113


8.0 PC-Software<br />

PC-Software<br />

Softwaren på PC'en skal tjene som et interface mellem brugeren og radiatorreguleringen på<br />

MCU'en. Til dette formål udvikles der en brugerflade der gennem en protokol (Jvf. 6.4) skal kunne<br />

samvirke med den serielle kommunikation. Ligeledes skal der jvf. 7.3 udvikles et ur der fra PC’em<br />

kan udføre natsænkning.<br />

8.1 Brugerflade<br />

Vi vælger at konstruere et eksempel på en brugerflade, der er rettet imod den virkelige løsning,<br />

men dog så begrænset, at den passer i proportion med resten af projektafgrænsningen. Da vi gerne<br />

vil have, at den enkelte bruger selv skal kunne ændre på radiatorens indstillinger, kræves en måde<br />

hvorpå en programeringsmæssigt uuddannet kan ændre på reguleringen, så denne passer bedre til<br />

brugeren. Derudover vil vi have, at brugeren skal kunne følge med i hvordan systemet har kørt.<br />

Dette kan gøres ved hjælp af en brugerflade, der skal omsætte dele af programmeringssproget til<br />

letforståeligt dansk, og den anden vej.<br />

8.1.1 Analyse af brugerflade<br />

Brugerfladen skal kunne opsamle data fra brugeren og præsentere disse og andre data på skærmen<br />

således, at brugeren hele tiden kan følge med i den øjeblikkelige situation. Ligeledes skal<br />

brugerfladen også kunne præsentere vigtige data i form af grafer således, at det skaber overblik. I<br />

forbindelse med natsænkning vælger vi desuden at indsætte et ur der udfra computernes ur giver<br />

klokken og datoen (se fig. 8.1).<br />

Klokkeslet<br />

Tid<br />

Dato<br />

De data brugeren skal kunne påvirke er:<br />

Brugerflade<br />

Opsamling af<br />

data fra<br />

bruger<br />

Graf<br />

Figur 8.1 - Topdown over brugerfladen.<br />

− Den ønskede temperatur i dagtimerne<br />

− Den ønskede temperatur i nattetimerne<br />

− Hvornår natsænkning skal starte og slutte<br />

Side 74 af 113<br />

Præsentering<br />

af data til<br />

bruger<br />

Visning af<br />

dataværdier


PC-Software<br />

Det er vigtigt, at disse påvirkninger ikke resulterer i, at systemet bryder sammen, for at undgå dette<br />

skal der laves en form for sikkerhed, der sørger for, at de input der kommer fra brugeren er<br />

realistiske. Dette vil ikke være relevant ved den fysiske model, men ved en virkelig løsning er det<br />

vigtigt at beskytte systemet mod en ukyndig bruger. Vi vælger at opsætte grænserne for<br />

indtastningerne udfra den fysiske models begrænsninger, hvilket vil sige, at der sættes grænser for<br />

bl.a. indetemperaturen, tiden osv.<br />

Præsentationen af data skal opbygges således, at brugeren skal kunne følge med i tilstandene i den<br />

fysiske model. For størst mulig overskuelighed skal både dataene og tiden konstant være til stede<br />

påskærmen, idet dette vil lette brugerens valg. For at gøre en grafpræsentation overskuelig i forhold<br />

til den fysiske model vælger vi at vise grafer over en time. Dette tidsrum vil i en virkelig løsning<br />

skulle forlænges betydeligt til evt. et døgn for virkelig at skabe overskuelighed, men dette er for<br />

langt et tidsrum at operere over i den fysiske model. Som relevant data at vise grafer over, udvælges<br />

indetemperaturen og effekten.<br />

8.1.2 Design af brugerflade<br />

For at gøre programmet<br />

overskueligt for brugeren, er det<br />

udadtil opbygget af en menu, som<br />

ved valg med piletasterne kan gå<br />

over til indtastnings-muligheder,<br />

og så tilbage til menuen. Den ene<br />

af valgene fører brugeren ind i en<br />

undermenu, med et nyt sæt af<br />

forskellige valg (se fig. 8.2).<br />

Dette er imidlertid kun det<br />

brugeren ser, hvorimod den<br />

egentlige programmering er lidt<br />

anderledes. Selve<br />

programopbygningen vil dog kun<br />

blive beskrevet kortfattet her, idet<br />

brugerfladen som tidligere nævnt,<br />

Hovedmenu<br />

Dagtemp Natsænkning Timeforløb Afslut<br />

Nattemperatur<br />

Natsænkning<br />

start<br />

Natsænkning<br />

slut<br />

Tilbage til<br />

hovedmenu<br />

Figur 8.2 - Brugerfladen således som det opleves fra brugerens side.<br />

kun er ment som et eksempel på hvorledes de nødvendige muligheder kan samles i et funktionelt<br />

program.<br />

Der blev fra start besluttet at lægge så meget af programmet ud på funktioner, således at<br />

programmet ville være opbygget af mange små moduler. Dette gør det nemmere at overskue,<br />

samtidig med, at det er nemt at ændre/opdatere programmet, da man i de fleste tilfælde kan nøjes<br />

med at lave ændringer i de enkelte undermoduler. For at give brugerfladen en mere autentisk<br />

opbygning i forhold til en virkelig løsning blev der benytte grafik. Dette medvirker til at give<br />

brugerfladen et mere præsentabelt ydre.<br />

Brugerfladen konstrueres således, at det kan kaldes i et hovedprogram som et enkelt funktionskald.<br />

Dette betyder, at brugerfladen bør opbygges således, at programmet ikke går fast et sted og derved<br />

standser hele hoved programmet. Dette er imidlertid vanskeligt at opnå i brugerfladen, idet<br />

programmet automatisk standser når det venter på indtastning af data. Dette giver dog ikke store<br />

problemer idet der på PC’en ikke ligger vigtige programdele, som f.eks. reguleringen, der ikke må<br />

stoppes. I værste fald standses dataopsamlingen til grafen, hvilket ingen indflydelse har på<br />

forholdene i den fysiske model.<br />

Side 75 af 113


PC-Software<br />

Uret konstrueres således, at det henter datoen og tiden direkte fra computerens realtids-ur. Datoen<br />

kan benyttes direkte, mens den tid der hentes er værdien af en timer der tæller op fra midnat af.<br />

Denne værdi skal altså divideres med antal tik, som timeren generer pr. sekund for at give antal<br />

sekunder siden midnat. Derudfra beregnes tiden i timer, minutter og sekunder og kan derved<br />

benyttes til at bestemme natsænkning. Dette gøres ved at undersøge når timer og minutter stemmer<br />

overens med natsænkningsstarten og når det er tilfældet sendes nattemperaturen som den ønskede<br />

temperatur. Når natsænkningsslutningen stemmer overens med tidspunktet sendes den oprindelige<br />

ønskede indetemperatur. Dermed benytter natsænkningen reguleringens oprindelig funktioner.<br />

Graffunktionen opbygges på samme vis som registreringen af åbnet og lukket vindue ved at<br />

værdierne gemmes i en tabel. Når der opsamles en ny måling rykkes alle værdierne en plads, den<br />

ældste værdi forsvinder ud af tabellen og den nye værdi lægges ind på den tomme plads.<br />

8.1.3 Implementation og test af brugerfladen<br />

For at lette programmeringen af grafikken, blev der benyttet det grafiske dos-interface, som er en<br />

del af Borland 29 compiler systemet. Dette er en ældre og primitiv måde at programmere grafik på,<br />

hvor højeste opløsning er VGA 30 . Dette giver ringe muligheder for at konstruere en virkeligt<br />

præsentabelt brugerflade, men til gengæld er det en let og hurtig mulighed for<br />

grafikprogrammering. Det viste sig under testen af brugerfladen at kan "gå ned" ved uheldige<br />

kombinationer at fejltastninger, hvilket havde været yderst uhensigtsmæssigt, hvis der havde været<br />

tale om et virkeligt produkt. Vi vælger dog ikke at bruge tid på at udbedre fejlen, da det kun er<br />

projektgruppen selv der skal benytte programmet.<br />

8.2 Protokol for PC-Software<br />

Selve PC-softwaren er opbygget som en uendelige løkke der kun kan afbrydes fra brugerfladen. I<br />

hvert gennemløb undersøges der om der er data i bufferen. PC'en kan, jvf. 6.4, udfra det første<br />

element i dataene, se hvilke type data der er tale om. Inden løkken påbegyndes sender PC'en<br />

kommandoen 3 og anmoder dermed om at få tilsendt temperaturer og effekten fra SBC'en, hvorefter<br />

der ventes indtil der ankommer data. Derefter påbegyndes løkken, hvor der først modtages data fra<br />

SBC'en. Hvis denne sender kommandoen 1 returnerer PC'en den ønskede indetemperatur og hvis<br />

den sender kommandoen 3 modtager PC'en temperaturer og effekten.<br />

Hvis brugeren fra brugerfladen ændre en ønskede indetemperatur fra brugerfladen sender PC'en<br />

kommandoen 2, samt den nye ønskede indetemperatur. Protokollen er opbygget på samme vis som<br />

protokollen på SBC’en og for psudokode henvises til bilag 8 for SBC’ens protokol.<br />

8.3 Implementation af PC-software<br />

Implementationen af PC-softwaren blev udført ved at den serielle kommunikation blev opsat først<br />

og testet med SBC’en, og først derefter blev brugerfladen implementeret. Under implementationen<br />

29 Denne kan downloades frit fra Borlands hjemmeside.<br />

30 Højeste opløsning i VGA er 640 x 480 pixels i 16 farver.<br />

Side 76 af 113


PC-Software<br />

af PC-softwaren blev protokollen udvidet, jvf. 7.3, således at den kom til at stemme overens med<br />

ændringerne i SBC’ens protokol.<br />

Side 77 af 113


9.0 Test af løsning<br />

Test af løsning<br />

Efter at alle løsningsdelene er blevet samlet til en færdig løsning skal denne testes for at undersøge<br />

om den samlet lever op til kravene (jvf. 2.5.2). Den færdige løsning består, som tidligere beskrevet,<br />

af på den ene side hardwaren med MCU-softwaren, bestående af seriel kommunikation og<br />

reguleringsalgoritmerne og på den anden side PC-softwaren, ligeledes med seriel kommunikation<br />

og med brugerfladen. Alle underdelene er hver for sig blevet testet og er blevet fundet funktionelle.<br />

Derefter er delene blev sat samme del for del til en større og større helhed og undervejs testet så<br />

godt som muligt. Der færdige løsning er altså blevet testet på forskellig vis med tilfredsstillende<br />

resultater, hvilket er beskrevet i løsningsdelenes implementation og test afsnit. Disse tests er<br />

imidlertid udelukkende blevet baserede på rene tekniske prøver og for at undersøge om løsningen<br />

virkelige opfylder de i problemanalysen specificerede krave skal den testes i den fysiske model.<br />

9.1 Ændringer som følge af tests<br />

Først blev der udført en række løbende tests hvorunder der blev opdaget en række mindre fejl. Det<br />

blev opdaget at der i de stabile tilstande optræder udsving i temperaturen som ikke umiddelbart<br />

burde være der. I de perioder hvor der er effekt på radiatoren og der reguleres kan der være en<br />

række forskellige årsager til udsvingene. Den matematiske model har jvf. 3.5 en større forstærkning<br />

end den fysiske model og derfor skal termostatfunktionen hele tiden regulere ind for at opnå den<br />

ønskede temperatur. Denne effekt modvirkes jvf. 5.3 tildels af at der bliver afsat en smule effekt i<br />

transistoren således at radiatoren får lidt mindre effekt end beregnet. Selve reguleringen køres kun<br />

hver 10. sekund og dette kan ligeledes give udsving i temperaturen idet de korrektioner som der<br />

foretages har indvirkning i alle 10 sekunder før der igen korrigeres og derved kan temperaturen nå<br />

at ændre sig så meget at der skal korrigeres modsat. Endelig er alle tidsforsinkende elementer i den<br />

fysiske model blevet elimineret i den matematiske model, hvilket kan give udsving i temperaturen<br />

idet der f.eks. stadig finder opvarmning sted lidt efter reguleringen har slukket for radiatoren.<br />

Når der er slukket for radiatoren ses udsvingene stadig, men dog svagere. Idet der er slukket for<br />

radiatoren kan udsvingene nu ikke skyldes de førnævnte problemer, men må i stedet skyldes<br />

hardware. Problemet blev undersøgt og det viste sig at selve støjen stammer fra de tre<br />

spændingsregulatorer. Støjen kommer fordi at der er blevet brugt kondensatorer der er viklede, dette<br />

giver en induktiv virkning. Dette kunne afhjælpes med at skifte disse kondensatorer ud med tental<br />

kondensatorer. Problemet indvirker ligeledes på udsvingene der ses ved effekt på radiatoren.<br />

Det viste sig også at tiden for opvarmningstesten på 100 sekunder var et for lille tidsrum til at<br />

testen kunne give et stabilt resultat. Tiden blev derfor sat op til 200 sekunder, hvilket gav den<br />

ønskede virkning. Ligeledes viste det sig at registreringen af temperaturstigning ved lukning af<br />

vindue var sat til et for lille spring, idet der som tidligere nævnt er udsving i den målte temperatur,<br />

hvilket gav mange fejlregistreringer. For at afhjælpe dette blev den temperaturforskel hvormed<br />

vindueslukning registreredes sat op til 1 °C.<br />

9.2 Udførelse af testen<br />

Testen blev udført med følgende opstilling (se bilag *.*) og består af følgende elementer:<br />

− Opvarmningstest og stabilisering<br />

− Ændring af dagtemperatur og stabilisering<br />

Side 78 af 113


Test af løsning<br />

− Åbning og lukning af vindue<br />

− Åbning af vindue efterfulgt af lukning og umiddelbar åbning igen<br />

− Natsænkning start og slut<br />

Vi valgte at lave de forskellige testdele direkte efter hinanden som en lang test, da vi så ved<br />

overgangen fra en test til en anden fik testet nogle af tingene en ekstra gang. Derfor er<br />

testresultaterne også i form af en lang graf. Vi har opdelt grafen i de forskellige deltest og de<br />

mellemopvarmninger, der har været nødvendige for at kunne fortsætte med den næste deltest (se fig<br />

9.1)<br />

Figur 9.1 - Graf over forsøgsresultaterne fra testforsøget.<br />

0-1820 sekunder<br />

Forsøget starter, jvf. 4.x, med en opvarmningstest der varer de først 200 sekunder. Der registers<br />

korrekt lukket vindue og reguleringen træder i funktion og bringer temperaturen op på den ønskede<br />

temperatur på 45 °C, Derefter lader vi den regulere i ca. 900 sek. for at sikre at den regulere korrekt<br />

hvilket den gør når der ses bort fra de føromtalte udsving(jvf. 9.1).<br />

1820-3600 sekunder<br />

Derefter ændres den ønskede dagtemperatur til 35 °C og der ventes igen på en stabil tilstand, som<br />

får lov til at køre i ca. 900 sek. Reguleringen sørger for at temperaturen korrekt sænkes til den nye<br />

ønskede temperatur og holder denne.<br />

3600-5600 Sekunder<br />

For at forberede test af åbning og lukning af vinduet, sættes den ønskede dagtemperatur til 45 °C<br />

og reguleringen sørger for at denne opnås og holdes.<br />

5600-6080 sekunder<br />

Vinduet åbnes og 50 sek. senere registreres at vinduet er åbent. 90 sek. senere lukkes vinduet og<br />

derefter går der endnu 70 sek. før reguleringen som ønsket starter opvarmningstesten. 200 sek.<br />

senere konkluderer testen så korrekt at vinduet er lukket og den lader igen indetemperatur stige<br />

imod den ønskede temperatur.<br />

Side 79 af 113


Test af løsning<br />

6080-7720 sekunder<br />

Vinduet åbnes igen og efter 30 sek. registreres dette, og indetemperatur falder efterhånden ned til<br />

udetemperatur. Ne<strong>dk</strong>ølingen er noget ujævn, hvilket kan skyldes at når inde og ude temperaturen<br />

nærmer sig hinanden, vil indetemperaturen ved åbent vindue være mere følsom overfor ændringer i<br />

udetemperaturen, så som folk, der går forbi, et ekstra vindpust fra en dør der åbner og lignende.<br />

Vinduet lukkes herefter og på trods af udsvingene fremkalder dette 100 sek. senere korrekt en<br />

opvarmningstest. Så snart denne går i gang åbnes vinduet igen for at undersøge om<br />

opvarmningstesten også kan falde ud til åbent vindue. Dette sker korrekt 200 sek. senere og<br />

temperaturen falder igen til en stabil tilstand.<br />

7720-8950 sekunder<br />

Efter et kort stykke tid, startes, pga. en temperaturstigning, endnu en test, og også denne falder<br />

rigtigt ud til åbent vindue. Da stigningen ikke var fremprovokeret af os, men af ukendte årsager<br />

viser det at opvarmningstesten opfylder sin funktion.<br />

7950-8950 sekunder<br />

For at forberede test af natsænkning, lukkes vinduet igen og indetemperatur stiger til 45 °C og<br />

stabilisere sig.<br />

8950-11150 sekunder<br />

Natsænkningen er på forhånd sat til at begynde ved 8950 sekunder og til at køre over 1200<br />

sekunder. Natsænkningen går i gang på det rigtige tidspunkt, og sænker indetemperaturen korrekt til<br />

30°C hvor den så holdes. Som den er sat til, slår natsænkningen fra efter 1200 sek. og<br />

indetemperaturen hæves igen til 45°C og derefter afsluttes testen.<br />

9.3 Teknisk delkonklusion<br />

De opstillede krav (jvf. 2.5.2) vil i det følgende blive behandlet en for en og der vil blive vurderet<br />

om hvorvidt løsningen lever op til dem.<br />

Først krav:<br />

1. Det elektroniske system skal autonomt kunne overvåge temperaturen og på baggrund heraf<br />

styre en radiator. Herunder:<br />

a. Systemet skal kunne registrere om hvorvidt vinduet er åbent eller lukket på baggrund<br />

af temperatur.<br />

b. Systemet skal kunne udføre natsænkning.<br />

c. Systemet skal kunne fungere som en termostat således, at en ønsket indetemperatur<br />

opretholdes.<br />

Kravet om at løsningen skal kunne overvåge temperaturen er, jvf. 5.3, opfyldt, idet der<br />

implementeres 2 temperature sensorer i forbindelse med hardwaren. Overvågningen sker autonomt<br />

idet MCU'en selv kan udføre temperaturmålingerne uden indblanding udefra.<br />

Styringen af radiatoren er blevet testet og det ses at systemet er i stand til udfra temperaturen<br />

korrekt at vurdere om vinduet er åbent eller lukket. Der kan registreres åbning af vindue som følge<br />

af temperaturfald og lukning af vindue som følge af temperaturstigning. Systemet er istand til at<br />

vurdere om temperaturstigningen virkelig skyldes vindueslukning eller anden påvirkning. Ligeledes<br />

Side 80 af 113


Test af løsning<br />

ses det at der udføres natsænkning på tilfredsstillende vis. Termostatfunktionen fungerer, dog med<br />

mindre komplikationer, hvilket giver en vis ustabilitet under stabil tilstand. Denne ustabilitet<br />

medfører at der fremkommer mindre temperatursvingninger der dog ikke er signifikante.<br />

Andet krav:<br />

2. Det elektroniske system skal ud over forbindelsen til PC’en kunne:<br />

a. Formidle dets status og rumtemperatur.<br />

b. Modtage ønsket temperaturindstilling.<br />

c. Modtage tidsramme for natsænkning.<br />

Det kan konkluderes at det er lykkedes på tilfredsstillende vis at oprette en forbindelse mellem<br />

PC'en og MCU'en. Over denne forbindelse sendes der fra MCU'en temperaturer, radiatoreffekt og<br />

vinduestilstand og fra PC'en sendes den ønskede indetemperatur og det kan dermed konkluderes at<br />

krav 2.a og 2.b er opfyldt. Det er jvf. 7.3 imidlertid ikke lykkedes at køre natsænkningen fra<br />

MCU'en og den er derfor blevet flyttet over på PC'en. Dette betyder at det elektroniske system ikke<br />

modtager tidsramme for natsænkningen, men istedet sendes nattemperaturen som ny ønsket<br />

indetemperatur. Dermed kan natsænkningen ikke udføres autonomt, hvilket gør at det ikke er<br />

lykkedes at gøre det elektroniske system til en "stand-alone" enhed.<br />

Tredje krav:<br />

3. PC-softwaren skal kunne opsamle information fra det elektroniske system og<br />

præsentere disse til brugeren samt formidle brugerens ordrer til det elektroniske system,<br />

hvor de danner grundlag for reguleringen.<br />

Det er lykkedes at skabe software til PC'en der er istand til at opsamle data fra MCU'en og<br />

præsentere disse på skærmen på forskellig vis og ligeledes kan opsamle data fra brugeren og<br />

videresende disse til MCU'en. Dermed er krav 3. opfyldt.<br />

Fjerde krav:<br />

4. Produktet skal konstrueres således at det fungerer under kontrollerede forhold i en<br />

forsøgsopstilling med en elektrisk radiator, men skal ligeledes konstrueres på en sådan<br />

vis, at det uden alvorlige komplikationer skal kunne implementeres i en virkelig bolig.<br />

Udfra de ovenforstående konklusioner ses det at det elektroniske system fungerer tilfredsstillede i<br />

den fysiske model. Det må dog ligeledes konkluderes at løsningen ikke umiddelbart kan<br />

implementeres i en virkelig bolig idet den matematiske model som reguleringen er bygget på<br />

baggrund af, kun gælder i den fysiske model. Hvis der udvikles en matematisk model på baggrund<br />

af en virkelig bolig er der dog ikke noget i vejen for at løsningen skulle kunne implementeres deri.<br />

Krav 4. er altså tildels opfyldt.<br />

Side 81 af 113


10.0 Teknologi vurdering<br />

Teknologi vurdering<br />

Vi vil i dette kapitel gennemføre en teknologivurdering af ET og i den forbindelse vil vi<br />

koncentrere os om to seperate analysefelter:<br />

− Det intelligente hus og dets bruger<br />

− Udviklingen af det danske IT samfund<br />

Vi søger ikke at give en tilbundsgående analyse af disse to analysefelter, men vil hovedsageligt<br />

benytte eksempler, som er vores bud på felternes status og udvikling.<br />

I analysen af det ”Det intelligente hus og dets bruger” vil vi arbejde videre med de forestillinger<br />

omkring det intelligente hus, som vi udviklede i problemanalysen (jvf. 2.4), men med fokus på<br />

brugeren i stedet for på teknikken.<br />

Da ET endnu er en ny trend i den teknologiske udvikling, mener vi, at det er for tidligt at give en<br />

konkret vurdering af dens samspil med samfundet. Derfor vil vi i stedet kigge på de bredere<br />

perspektiver i den danske udvikling mod et IT samfund. Dette mener vi er relevant fordi ET<br />

”trenden” unægtelig er en del af denne og derfor i vid udstrækning sammenlignelig hermed.<br />

10.1 Det intelligente hus og dets bruger<br />

I forbindelse med det intelligente hus og dets bruger kunne det være interessant at kigge på hvorfra<br />

ideerne og initiativerne omkring det intelligente hus stammer fra. Det kunne med andre ord være<br />

interessant at analysere om det er brugeren der kræver denne teknologi eller om det er industrien,<br />

som prøver at påvirke markedet på en sådan måde at der skabes efterspørgsel efter denne teknologi.<br />

For nyligt fik 50 familier i Ballerup installeret køleskabe med indbyggede skærme i<br />

køleskabsdøren[Nordhagen]. Skærmen kan bruges som web-portal og giver derfor mulighed for at<br />

trække på internettets ressourcer fra køkkenet, f.eks. kan den bruges til opslag af forskellige<br />

madopskrifter eller til at kontrollere bustiderne. Disse køleskabe er sponsoreret af en række<br />

virksomheder bl.a. Ericsson og Tele Danmark. Hele ordningen er ment som et forsøg, der skal give<br />

producenterne mulighed for at afprøve den nye teknologi på forbrugerne, så erfaringerne kan bruges<br />

til at modne producenternes produkter inden påbegyndelse af en storstilet markedsføring. Dette<br />

tyder på, at producenterne har et produkt de gerne vil af med, men de er nød til først at finde et<br />

passende marked til det. Dette gøres gennem forsøgsordninger som den ovenbeskrevne, men disse<br />

ordninger, som påkalder sig medieopmærksomhed, forstærker også forbrugernes interesse og<br />

forbereder dem på fremtidens produktvalg.<br />

Et andet tegn på, at der ikke er tale om market pull, dvs. markedet for produktet skabes af<br />

forbrugernes ideer og initiativer, er den nuværende udbredelse af systemer til intelligent styring i<br />

huse. Der findes i dag færdige systemer til intelligent styring af lys og varme m.m., f.eks. kan<br />

nævnes Intelligent House Control 31 (IHC), som er udviklet af det danske firma LK [LK]. Men da<br />

priserne for disse systemer ligger ca. 50% over priserne for almindelige installationer [Hvidfeldt],<br />

finder de ikke stor udbredelse, fordi aftagerne ikke er overbeviste om at disse systemer er kan tjene<br />

sig selv hjem i form af komfort og ressourcebesparelser.<br />

Det er vores opfattelse, at den almindelige danske forbruger endnu ikke er villig til at investere i<br />

produkter af denne type som leder udviklingen hen imod det intelligente hus. Vi mener dog, at de<br />

initiativer producenterne iværksætter i samspil med folks generelle stigende IT bevidsthed vil skabe<br />

et stort marked for disse teknologier i fremtiden. Specielt tror vi, at udviklingen vil accelerere når<br />

31 Dette system er i Danmark installeret i et omfang af flere tusinde parcelhuse [Hvidfeldt]<br />

Side 78 af 113


Teknologi vurdering<br />

priserne på intelligente applikationer når et leje, som ikke er markant højere en priserne på<br />

konventionelle installationer.<br />

Der er dog et område hvor brugen af intelligente applikationer i hjemmet er nået længere end i den<br />

brede danske befolkning. Det drejer sig om produkter som kan hjælpe handicappede med en række<br />

opgaver såsom åbning af døre og vinduer eller automatisk tænd og sluk af lys. Grunden til at<br />

integrationen af intelligente produkter synes at gå lettere når det drejer sig om handicappede,<br />

skyldes, at der på dette område er større tradition og behov for at tilpasse omgivelserne til<br />

brugeren. Desuden er brugergruppen af handicappede mere bevidste om hjælpemidlernes<br />

brugsværdi. En undersøgelse foretaget af center for tilgængelighed har sammenlignet to<br />

bofællesskaber for unge med fysisk funktionsnedsættelse, hvoraf det ene i bredt omfang har<br />

installeret intelligente hjælpemidler. Konklusionen på undersøgelsen er, at de intelligente produkter<br />

giver beboerne større handlefrihed og større livskvalitet [Hvidtfeldt]. Undersøgelsen påpeger i<br />

øvrigt, at beboerne i bofællesskabet med de intelligente produkter, gerne så mere intelligens i<br />

produkterne. F.eks. påpeger de at stemmestyring som en mulig forbedring af det nuværende system,<br />

som betjenes med en fjernbetjening.<br />

Et andet interessant aspekt i forholdet mellem brugeren og det intelligente hus er de forventninger<br />

brugeren har til dette intelligente hus. Argumentationen for det intelligente hus, som den ofte<br />

fremkommer i medierne er, at den kan spare tid for forbrugeren og øge forbrugerens komfort, samt<br />

spare ressourcer.<br />

Argumentet omkring tidsbesparelse, mener vi, dog er noget vagt idet den tid det tager at slukke<br />

kontakter og regulere på termostater nærmest er negligeabel. Dog kan man forestille sig, at ”det<br />

intelligente hus” i fremtiden kan blive så intelligent, at argumentet om tidsbesparelse bliver<br />

væsentligt. F.eks. hvis huset i fremtiden selv kan administrere dagligdags in<strong>dk</strong>øb.<br />

Det intelligente hus, mener vi, kan bidrage til brugerens komfort. Hvis for eksempel et sommerhus<br />

selv overvåger ejerens kalender over internettet og automatisk sætter varme på hvis ejeren har<br />

skrevet i kalenderen at han/hun tager i sommerhus i weekenden. Hvis det intelligente hus skal øge<br />

brugernes komfort er det dog et krav at det skal kunne skelne imellem de enkelte beboere og deres<br />

ønsker for at undgå at blive et irritationsmoment snarere end en hjælp, fordi det intelligente hus går<br />

fejl af brugernes ønsker.<br />

Endeligt, mener vi, at argumentet omkring ressourcebesparelse er det mest holdbare, da f.eks.<br />

automatisk lysstyring eller et varmestyringssystem vil kunne spare energi (jvf. afsnit 2.1.7).<br />

Vi ser i det intelligente hus en fare i, at det kan medvirke til at folk lettere kan lade sig isolere i<br />

deres hjem. Dette kan de fordi det intelligente hus og udbredelsen af internettet gør, at det ikke er<br />

nødvendigt at forlade huset for at gå på arbejde, handle eller underholde sig.<br />

Man kan frygte er der sker en ligende udvikling som den der skete da boligmassen ændrede sig fra<br />

lejlighedskomplekser til parcelhuse i 60’erne og 70’erne. Det medførte dengang at familierne blev<br />

”kernefamilier” som i højere omfang befandt sig i hjemmet end før denne udvikling hvor der var<br />

mere social kontakt pga. de trangere kår i boligkomplekserne. En ændring af hjemmet kan altså føre<br />

til en ændret social adfærd.<br />

Omvendt kunne det også tænkes at det intelligente hus af førnævnte årsager, kunne frigive så<br />

meget tid til brugen at denne har mere tid til at engagere sig socialt. Højst sandsynligt vil vi i<br />

fremtiden se begge muligheder.<br />

10.2 Udviklingen af det danske IT samfund<br />

Side 79 af 113


Teknologi vurdering<br />

Vi vil under denne gennemgang af det danske IT samfund ikke gøre nærmere rede for hvad et IT<br />

samfund er, men blot definere det som: Et samfund hvori informationsteknologi i vid udstrækning<br />

er integreret både blandt private og hos det offentlige.<br />

Vi vil ved hjælp af SWOT-analysens betragte det danske samfund som en samlet organisme der<br />

forsøger sig at tilpasse sig i forhold til dets omgivelser, dvs. det internationale samfund. Vi vil med<br />

dette analyseværktøj først give et situationsbillede af det danske IT samfund, hvorefter vi vil<br />

beskrive mulige strategier til at formindske fundne svagheder og strategier til stadig udvikling af<br />

styrker.<br />

På baggrund af denne analyse forventer vi at kunne vurdere hvilke parametre en markedsoperatør i<br />

det danske IT samfund, bør være opmærksom på, samt hvilke strategier, der kan styrke den danske<br />

IT udvikling og hermed også integrationen af embeddede systemer.<br />

10.2.1 Situationsbillede af det danske IT-samfund<br />

Følgende beskrives en række af styrker, svagheder, muligheder og trusler, som vi ser dem i det<br />

danske samfund nu. Slutteligt opstilles en SWOT-matrice, som giver et samlet overblik over de<br />

behandlede emner.<br />

Styrker i det danske IT samfund:<br />

Danmark er et rigt land med en sund økonomi, dette er en styrke for udviklingen mod et stærkere<br />

IT samfund, fordi denne udvikling kræver investeringer fra såvel private som offentlige<br />

institutioner. F.eks. kræver det store infrastrukturelle investeringer at opretholde en tilpas<br />

båndbredde i datatransmissionsnetværket til at sikre, at både virksomheder, private og offentlige<br />

myndigheder kan kommunikere med tilstrækkelige hastigheder.<br />

Det høje danske uddannelsesniveau er en anden styrke, som sikrer at danskere generelt har let ved<br />

at bruge den nye teknik og dens muligheder. Desuden sikrer det høje uddannelsesniveau, at<br />

Danmark kan producere bytteværdi, dvs. viden og egentlige produkter, som vi kan udveksle med<br />

andre lande og derved øge vores egen know-how og mængden af arbejdsmidler.<br />

Svagheder i det danske IT samfund:<br />

En svaghed ved det danske IT samfund er den gruppe af befolkningen, som ikke<br />

uddannelsesmæssigt, interessemæssigt eller økonomisk kan deltage på lige vilkår med resten af<br />

befolkningen i denne udviklingsproces. Faren består i at yderligere polarisering mellem den gruppe<br />

der forstår at udnytte IT og den der ikke gør, kan skabe sociale skel mellem de to forskellige<br />

grupper.<br />

En anden svaghed i det danske IT samfund er det begyndende problem med manglende<br />

kvalificeret arbejdskraft. I det øjeblik IT stillinger står ledige sænkes udviklingstempoet af det<br />

danske IT samfund og vi begynder at miste terræn til andre nationer.<br />

Muligheder i det danske IT samfund:<br />

Styrkerne i det danske IT samfund sikrer at vi har mulighed for at være aktive aktører på<br />

internationalt plan, fordi vi producerer viden og teknologiske produkter, som kan afsættes på det<br />

internationale marked.<br />

Fordi Danmark allerede er nået så langt med udviklingen af IT samfundet som vi er, giver det os<br />

mulighed for politisk at påvirke både det internationale samfund, samt de lande som aktivt følger<br />

udviklingen i Danmark for at lære af os.<br />

Side 80 af 113


Teknologi vurdering<br />

Endvidere er der gode muligheder for at IT samfundet kan bidrage til en styrkelse af demokratiet i<br />

Danmark. Udbredelsen af internettet gør, at der opstår flere forummer for politisk diskussion og det<br />

styrker den danske tradition om ytringsfrihed, fordi det giver enkeltmand mulighed for let og frit at<br />

publicere egne ideer og deltage i diskussioner.<br />

Trusler mod det danske IT samfund:<br />

Man kan forstille sig, at Danmark i fremtiden er for lille en enhed, til at kunne bevare sin integritet<br />

som et selvstændigt samfund, fordi den teknologiske udvikling vil bidrage til en så kraftigt<br />

liberalisering af den internationale økonomi. I en meget liberal international økonomi vil den<br />

samlede danske økonomi kun være en meget lille brik, som ikke længere beskyttes af national<br />

protektionisme.<br />

Som før nævnt vil mangel på kvalificeret arbejdskraft kunne svække det danske IT samfund. En<br />

trussel er herfor vores fortsatte evne til at producere denne arbejdskraft. For at kunne producere<br />

denne må optagelsen til de IT kompetencegivende uddannelser øges i en tid hvor<br />

ungdomsårgangene i forvejen er små. Desuden vælger mange unge med danske IT uddannelser i<br />

dag at søge arbejde i udlandet, hvilket følgelig bidrager negativt til det danske arbejdsmarked.<br />

På figur 10.1 er de<br />

ovenbehandlede emner placeret i<br />

SWOT-matricen for at give et<br />

samlet overblik. De i denne<br />

analyse behandlede emner, udgør<br />

selvfølgelig kun en lille del af den<br />

samlede mængde parametre som<br />

har indflydelse på udviklingen af<br />

det danske IT samfund. På trods<br />

af identificerede svgaheder er det<br />

klart, at Danmark sammenlignet<br />

med andre lande, er nået langt i<br />

udviklingen mod IT samfundet.<br />

Styrker<br />

Stærk økonomi.<br />

Godt uddannelsesniveau.<br />

Muligheder<br />

Eksport af viden og produkter.<br />

Politisk indflydelse.<br />

Styrkelse af demokratiet.<br />

10.2.2 Strategier til styrkelse af det danske IT samfund<br />

Svagheder<br />

Sociale skel.<br />

Mangel på IT arbejdskraft.<br />

Trusler<br />

Danmark er for lille et land.<br />

Mangel på IT arbejdskraft.<br />

Figur 10.1 – SWOT matricen opstillet for det danske IT samfund<br />

Vi vil i dette afsnit prøve at opstille strategier, som kan afhjælpe de problemer som blev<br />

identificeret i sidste afsnit, samt styrke de fundne styrker og muligheder yderligere. Disse opstilles i<br />

en udbygget SWOT-matrice (se figur 10.2), hvor strategierne samles under overskrifter som f.eks.<br />

Maxi-Mini, alt efter hvordan strategierne forventes at indvirke på det par af styrker, svagheder,<br />

muligheder eller trusler, som strategien forbinder (jvf. figur 10.2). F.eks. vil en Maxi-Maxi strategi<br />

på en gang forsøge at maksimere både organisationens styrker og muligheder.<br />

Vi vil under beskrivelsen af hver af vores foreslåede strategier endvidere forsøge at vurdere<br />

hvorvidt der i det danske samfund er kræfter, som forsøger sig med denne strategi for at styrke IT<br />

samfundet, heriblandt er det klart at folketinget og dermed det offentlige spiller en stor rolle.<br />

Side 81 af 113


Eksterne muligheder<br />

Eksport af viden og produkter<br />

Politisk indflydelse<br />

Styrkelse af demokratiet<br />

Eksterne trusler<br />

Danmark et for lille land<br />

Mangel på IT arbejdskraft<br />

Teknologi vurdering<br />

Interne styrker<br />

Stærk økonomi.<br />

Godt uddannelsesniveau.<br />

Maxi-Maxi strategier<br />

Økonomiske investeringer i<br />

uddannelse, forskning og<br />

infrastruktur.<br />

Maxi-Mini strategier<br />

Indgå i transnationale politiske<br />

fællesskaber.<br />

Interne svagheder<br />

Sociale skel.<br />

Mangel på IT arbejdskraft.<br />

Mini-Maxi strategier<br />

Iværksættelse af bred<br />

efteruddannelse, samt<br />

tilpasning af eksisterende<br />

uddannelser.<br />

Mini-Mini strategier<br />

Figur 10.2 - De vha. SWOT-analysen fundne strategier til styrkelse af det danske IT<br />

samfund.<br />

Tilpasse arbejdsmarkedet<br />

således, at det er attraktivt for<br />

højtuddannet arbejdskraft.<br />

Maxi-Maxi strategi<br />

Som eksempel på en Maxi-Maxi strategi har vi foreslået investeringer i uddannelse, forskning og<br />

infrastruktur. F.eks. vil investeringer i elektronisk infrastruktur, forøge brugernes muligheder for at<br />

anvende den nye teknologi, idet en øget båndbredde f.eks. vil kunne realisere digitalt TV.<br />

Som et eksempel på en anvendelse af denne strategi kan det fremhæves, at folketinget netop har<br />

bevilget 50 mio. kroner til oprettelse af et institut for forskning i energi fra vindmøller [JP], dette<br />

sker bl.a. for at styrke den danske vindmølleindustri og derved styrke den danske eksport.<br />

Maxi-Mini strategi<br />

Hvis Danmark vil minimere truslen af at være et "lille land", må vi sørge for at indgå i en række<br />

samarbejder med andre lande, som sigter på at sikre national stabilitet og vækst. Som et eksempel<br />

på et sådant samarbejde kan Danmarks medlemsskab af f.eks. OECD 32 nævnes.<br />

Mini-Maxi strategi<br />

Et middel til at minimere de skel i befolkningen som skyldes, at ikke alle mestrer den nye<br />

informations teknologi er efterudannelse. Efteruddannelse kan både medvirke til at give ukyndige<br />

bassale IT kundskaber og til omskoling af folk, så de kan varetage nye arbejdsopgaver i IT<br />

samfundet. Regeringen har eksempelvis ydet støtte til ”PC-kørekort”, som netop er en uddannelse<br />

som giver eleven et basalt kendskab til brug af informationsteknologi.<br />

Mini-Mini strategi<br />

For at undgå mangel på kvalificeret arbejdskraft pga. for få nyuddannede og fraflytning af højt<br />

uddannede til udlandet, må både folketinget og det private erhvervsliv aktiv søge at gøre det danske<br />

arbejdsmarked til et attraktivt arbejdsmarked for arbejdssøgende i IT branchen. For at sikre fortsat<br />

social retfærdighed må denne udvikling selvfølgelig rettes mod hele arbejdsmarkedet og ikke kun<br />

den del hvor der er mangel på arbejdskraft.<br />

32 OECD: Organisation for European Economy and Development.<br />

Side 82 af 113


Teknologi vurdering<br />

Et eksempel på anvendelse af denne strategi er det faktum, at private virksomheder i dag i større<br />

omfang tilbyder deres medarbejdere aktie-optioner i virksomheden, som en del af lønnen<br />

[Ingeniøren].<br />

Hvis den her gennemførte analyse af mulige strategier til styrkelse af det danske IT samfund skal<br />

sammenholdes med embedded technology, kan det fremføres at vores Maxi-Maxi strategi kan<br />

bruges i forbindelse med ET. Hvis f.eks. der investeres i ET systemer, som kan lette<br />

administrationsarbejdet i f.eks. forskningssektoren, vil der blive frigjordt ressourcer, som kan<br />

anvendes til en styrkning af forskningsindsatsen. Denne styrkelse resulterer i, at Danmark vil få<br />

bedre muligheder for at afsætte viden og produkter på det internationale marked.<br />

10.3 Afrunding på teknologivurderingen<br />

I det første analysefelt: ”det intelligente hus”, vurderede vi at, vi i øjeblikket befinder os i en fase<br />

hvor erhvervslivet modner forskellige produkter til det intelligente hus. Når den fase er afsluttet<br />

forventer vi, at se en forøget markedsføring af disse produkter, da vi mener, at producenterne selv<br />

må ud og påvirke markedet for at skabe en stor efterspørgsel blandt forbrugerne.<br />

Vi diskuterede hvilke fordele forbrugeren forventer sig af det intelligente hus og vurderede, at det<br />

umiddelbart ikke nu er muligt at indfri disse forventninger, men at udviklingen med tiden kan<br />

modne teknologien tilstrækkeligt dertil.<br />

Endvidere pointerede vi, at en udvidelse af hjemmets muligheder vil kunne føre til en ændret<br />

social adfærd, som kan bevæge sig i en positiv- og/eller negativ retning.<br />

Ved brug af SWOT-analysen gav vi en beskrivelse af det danske IT samfunds styrker, svagheder,<br />

muligheder og trusler, og herunder vurderede vi, at Danmark, sammenlignet med andre lande, er<br />

godt i gang med udviklingen frem mod IT samfundet.<br />

Desuden foreslog vi forskellige strategier, som efter vores vurdering, kan bidrage til styrke det<br />

danske IT samfund yderligere, samt samtidig minimere dets svagheder. Herefter eksemplificerede<br />

vi hvordan der kan være sammenhæng mellem de foreslåede strategier og brugen af embedded<br />

technology.<br />

Side 83 af 113


11.0 Konklusion<br />

Konklusion<br />

I konklusionen vil de enkelte underdele af rapporten (jvf. III) som er analyse, løsning og vurdering<br />

blive behandlet hver for sig. Derefter samles disse i en endelig konklusion på projektet.<br />

Analyse<br />

Gennem den proaktive problemanalyse blev det klart at der var et muligt marked for embedded<br />

technology herunder automatisk radiatorstyring. På baggrund blev der opstillet en række krav til en<br />

embedded automatisk radiatorstyring hvorefter disse krav blev tilpasset til et omfang der var<br />

passende for dette studieprojekt.<br />

Under modelleringen lykkedes det at opstille en brugbar matematisk model for et afgrænset fysisk<br />

system. Dette gav os et grundlag for forståelse af systemets opførsel.<br />

Løsning<br />

Den i modelleringen opnåede forståelse af systemet satte, sammen med de fysiske forsøg, os istand<br />

til at udvikle en reguleringsalgoritme, der med inde og ude temperaturen som input er i stand til at<br />

regulerer efter en bestemt temperatur og detekterer vinduets tilstand.<br />

For at kunne implementere denne reguleringsalgoritme blev der designet en single board computer<br />

samt temperaturmålere, kredsløb til effekt og spændings regulering.<br />

Desuden lykkedes det at bruge seriel kommunikation til at forbinde single board computeren og en<br />

PC, hvorved en bruger kunne kommunikere med det embedded system. Endvidere gav vi et<br />

eksempel på en interaktiv brugerflade, hvorfra en bruger kunne påvirke reguleringen.<br />

Vurdering<br />

Resten af konklusionen tilgår mandag.<br />

Side 79 af 113


12.0 Litteraturliste<br />

Konklusion<br />

Litteraturlisten er opbygges således, at forfatteren er anført med efternavnet først. I tilfælde af at<br />

der ikke er anført en egentlig forfatter benyttes den instans der har stået for kilden som forfatter.<br />

Derefter anføres kildens udgivelse år i parentes og kildens titel i kursiv. Så følger udgave, oplag,<br />

forlag og ISBN-nummer. Ved internet kilder angives efter titlen http-adresse, samt download dato.<br />

Der refereres efter det først ord og listen er opstillet i alfabetisk orden.<br />

Auken, Svend (2000) Energi 21 - Regeringens energihandlingsplan 1996, 2. oplag,<br />

ISBN: 87-7844-057-2<br />

Blomberg (2000) Blomberg, http://www.blomberg.<strong>dk</strong>, 18. Marts 2000<br />

Boligministeriet (1995) Bygningsreglement, Bygge og Boligstyrelsen, ISBN: 87-90247-01-9<br />

Both, Erik & Christiansen, Gunnar (1995) Termodynamik, 3. oplag, Den private Ingeniørfond,<br />

ISBN: 87-7381-056-8<br />

Christensen, Kaj og Petersen, B. Howald (1987) Fjernvarme, Polyteknisk Forlag,<br />

ISBN: 87-502-0649-4<br />

Dansk Standardiseringsråd (1983) Dansk Standart i Bygningsreglement 82, 1. udgave<br />

Dyck-Madsen, Søren (2000) Handlingsplan for Energibesparelser – Et forslag til principper og<br />

indsatsområder, http://www.ecocouncil.<strong>dk</strong>/, 16. Februar 2000<br />

Finansministeriet (1999) Evaluering af grønne afgifter og erhvervene 1999, ISBN: 87-7856-233-3<br />

Haugen, Finn (1994) Regulering av dynamiske systemer, Tapir, ISBN: 82-519-1433-7<br />

Hvidtfeldt, Peter (2000) Det tænkende hus, Jyllandsposten, Viden Om, 28. februar 2000<br />

Hørup Sørensen, Henning (1996) Ventilations Ståbi, 2. udgave, Jydsk Centraltrykkeri A/S,<br />

ISBN: 87-571-1982-1<br />

Intel (1986) 80386 databook, version 003, Intel Corp.<br />

Koffman, Eliot B. (1995) Turbo Pascal, 5. udgave, Addison Wesley Publishing Company Inc.,<br />

ISBN: 0-201-51219-4<br />

Miljø- og energiministeriet '98 (1998) Redegørelse om Dansk energipolitik 1998<br />

http://www.ens.<strong>dk</strong>/pub/epr98.htm, 16. februar 2000<br />

Miljø- og energiministeriet '99 (1999) Redegørelse om Dansk energipolitik 1999<br />

http://www.ens.<strong>dk</strong>/pub/epr99.htm, 16. februar 2000<br />

Nordhaugen, Poul (2000) På nettet via køleskabet, Jyllandsposten, Erhverv og Økonomi, 12. marts<br />

2000-05-16<br />

Side 80 af 113


Konklusion<br />

Peacock (2000) Beyondlogic, http://www.beyondlogic.org, 2. februar 2000.<br />

Poulsen, Henrik og Paulsen, Otto (1996) Standardsystemer for større brugerinstallationer, 1.<br />

oplag, 1. udgave, Dansk Teknologisk Institut, ISBN: 87-77756-451-0<br />

Rambøll (2000) Rambøll, http://www.ramboll.<strong>dk</strong>/energy/<strong>dk</strong>/fjernvarme.htm, 2. Marts 2000<br />

Siemens (1991) Microcomputer Components - SAB80515 / SAB80C515 Family, ed. 5.93, Siemens.<br />

Statens Byggeforskningsinstitut (1980) Indeklimaets påvirkninger, ISBN: 87-563-0303-3<br />

Strandgaard Andersen, Erik mfl. (1998) DATABOG fysik kemi, 10. udgave, 2. oplag, F&K<br />

forlaget, ISBN: 87-872-2959-5<br />

Svith, Flemming (2000) Når maskinerne erobre internettet, Jyllandsposten, 7. februar 2000<br />

Teknologisk Institut (1980) Varmeregulering i parcelhuse<br />

Texas (1996) Datablad for TL16C550A, Texas Instruments.<br />

Valbjørn, Ole (2000) Indeklimaproblemer, ISBN: 87-563-0880-9<br />

Side 81 af 113


1 Bilag nr. 1: Laplace<br />

Funktioner :<br />

T(t) - Indetemperaturen som funktion af tiden<br />

U(t) - Udetemperaturen som funktion af tiden<br />

R(t) - Radiatoreffekten som funktion af tiden<br />

Konklusion<br />

Differentialligningen for systemet opstilles på baggrund af 2.3.4:<br />

d(<br />

T(<br />

t)<br />

⋅C<br />

luft<br />

T(<br />

t)<br />

+ U(<br />

t)<br />

+ ⋅(<br />

C<br />

2<br />

dt<br />

vindue<br />

+ C<br />

vægge<br />

Ligningen for systemet i arbejdspunktet er:<br />

0 = R(<br />

0)<br />

+ A<br />

vindue<br />

)<br />

= R(<br />

t)<br />

+ A<br />

vindue<br />

x.1<br />

U ( 0)<br />

− T ( 0)<br />

⋅<br />

R + R<br />

overgang<br />

x.2<br />

vindue<br />

+ A<br />

U(<br />

t)<br />

−T<br />

( t)<br />

⋅<br />

R + R<br />

vægge<br />

vindue<br />

vindue<br />

overgang<br />

+ A<br />

U ( 0)<br />

− T ( 0)<br />

⋅<br />

R + R<br />

overgang<br />

vægge<br />

U(<br />

t)<br />

−T<br />

( t)<br />

⋅<br />

R + R<br />

De to ovenstående ligninger x.1 og x.2 substraters og giver dermed arbejdspunktsligningen:<br />

vægge<br />

overgang<br />

∆T&<br />

( t)<br />

+ ∆U&<br />

( t)<br />

⎛ A<br />

A ⎞<br />

vindue<br />

vægge<br />

∆T&<br />

( t)<br />

⋅C<br />

luft +<br />

⋅(<br />

Cvindue<br />

+ Cvægge<br />

) = ∆R(<br />

t)<br />

+ ⎜<br />

+<br />

⎟ ⋅(<br />

∆T<br />

( t)<br />

− ∆U<br />

( t))<br />

2<br />

⎜ Rvindue<br />

Rovergang<br />

Rvindue<br />

R ⎟<br />

⎝ +<br />

+ overgang ⎠<br />

x.3<br />

Da Udetemperaturen regnes konstant elimineres ∆U(t) i x.3:<br />

∆T&<br />

( t)<br />

⎛ A<br />

A ⎞<br />

vindue<br />

vægge<br />

∆T&<br />

( t)<br />

⋅C<br />

luft + ⋅ ( Cvindue<br />

+ Cvægge<br />

) = ∆R(<br />

t)<br />

+ ⎜<br />

+<br />

⎟ ⋅ ∆T<br />

( t)<br />

2<br />

⎜ Rvindue<br />

Rovergang<br />

Rvindue<br />

R ⎟<br />

⎝ +<br />

+ overgang ⎠<br />

x.4<br />

Arbejdspunktsligningen laplacetransformeres:<br />

⎛<br />

s⎜<br />

∆ T ( s)<br />

⋅C<br />

luft<br />

⎝<br />

∆T<br />

( s)<br />

⎞ ⎛ Avindue<br />

+ ⋅ ( Cvindue<br />

+ Cvægge<br />

) ⎟ = ∆R(<br />

s)<br />

+ ⎜<br />

2<br />

⎠ ⎜<br />

⎝ Rvindue<br />

+ Rovergang<br />

x.5<br />

A ⎞<br />

vægge<br />

+<br />

⎟ ⋅ ∆T<br />

( s)<br />

Rvindue<br />

+ R ⎟<br />

overgang ⎠<br />

Der løses for overføringsfunktionen:<br />

∆T<br />

( s)<br />

=<br />

∆R(<br />

s)<br />

⎛<br />

s⎜C<br />

⎝<br />

luft<br />

1<br />

+ C<br />

2<br />

vindue<br />

1<br />

+ C<br />

2<br />

vægge<br />

1<br />

⎞<br />

) ⎟ +<br />

⎠ R<br />

x.6<br />

vindue<br />

Side 82 af 113<br />

A<br />

vindue<br />

+ R<br />

overgang<br />

+<br />

R<br />

vindue<br />

A<br />

vægge<br />

+ R<br />

overgang


Der indsættes konstanter:<br />

Rvindue = kvindue / ∆xvindue = 0.004 / 0.17 = 0.024<br />

Rvægge = kvægge / ∆xvægge = 0.05 / 0.039 = 1.28<br />

Avindue = 0.034<br />

Avægge = 1.48<br />

Cluft = cluft ⋅ mluft = 1.00 ⋅ 164 = 164<br />

Cvindue = cvindue ⋅ mvindue = 1.5 ⋅ 160 = 240<br />

Cvægge = cvægge ⋅ mvægge = 1.2 ⋅ 1500 = 1800<br />

Rovergang = 0.17<br />

∆T<br />

( s)<br />

=<br />

∆R(<br />

s)<br />

s ⋅<br />

Konklusion<br />

1<br />

1184<br />

+<br />

∆T<br />

( s)<br />

0.<br />

836<br />

=<br />

∆R(<br />

s)<br />

s ⋅ 990 + 1<br />

1.<br />

195<br />

Side 83 af 113<br />


1.1 Bilag nr. 2: Fysmod<br />

Datablad: Fysiske model<br />

Konklusion<br />

Data for de materialer vi bruger i vores model[strandgaard]: Ved 0° og 101,3kPa ∼ 1 amt.<br />

Væggene (flamingo).<br />

Varmekonduktivitet (λ) = 0,039 [W/m⋅K]<br />

Specifik varmekapacitet 33 (c) = 1,2 [J/(kg⋅°C]<br />

Vinduet (plexiglas).<br />

Varmekonduktivitet (λ) = 0,17 [W/m⋅K]<br />

Specifik varmekapacitet = 1,5 [J/(kg⋅°C]<br />

Luft.<br />

Specifik varmekapacitet (c) = 1,0 [J/(kg⋅°C]<br />

Fysiske konstanter:<br />

Kasse overflade-areal indvendig.<br />

1,48m 2<br />

Vinduets areal.<br />

0,034m 2<br />

Luftens masse (indvendig).<br />

164,02g<br />

Tykkelsen af væggene (flamingo).<br />

0,05m<br />

Tykkelsen af vinduet (plexiglas).<br />

0,005m<br />

33 Denne værdi er oplyst af Thermisol der markedsfører flamingoen i Danmark<br />

Side 84 af 113<br />

Fig. Bilag1: Billede af vores fysiske model.


Radiator resistans:<br />

Rradiator=37.2Ω<br />

Vægten af væggene.<br />

1,5kg<br />

Vægten af vinduet.<br />

160g<br />

Konklusion<br />

Opbygning af den fysiske model.<br />

Den fysiske model er opbygget af flamingo, hvori der er indsat et vindue af plexiglas. Vinduet er<br />

monteret med hængsler, således at vinduet kan åbnes og lukkes. For at vinduet kan lukkes, således<br />

at den er fuldstændig tæt er der monteret en stykke træ til at spænde vinduet fast med.<br />

Væggene er limet sammen. Vinduet er først fast sat til en træ-plade, som er limet fast til selve<br />

kassen. Kassens låg er skåret skrå, for at tætne kassen bedre.<br />

Side 85 af 113


2 Bilag nr. 3: Forsøgsbeskrivelser<br />

1. Forsøg<br />

Konklusion<br />

Formål:<br />

Formålet med dette forsøg, er at give et billede af, hvordan temperaturen i et rum opfører sig med<br />

tiden, under forskellige forhold. Dette billede skal så sammenlignes med et teoretisk billede fra<br />

vores matematiske model.<br />

Opstilling:<br />

Forsøget er opstillet som vist i fig. Bilag2, hvor radiatoren ligger på en træplade i midten af<br />

kassen.<br />

Derudover sidder der 3 temperatursensore i kassen(se fig bilag1). Den 1. Sidder 3cm under vinduet<br />

midt for, den anden sidder midt i rummet ca.2 cm under loftet og den tredje sidder midt i rummet ca<br />

15 cm under loftet. Disse er koblet til en datalogger. Til sidst ligger der et termometer lige ved siden<br />

af kassen(højre side når man kigger på vinduessiden udefra).<br />

Kassen er opbygget som kan ses i fig. bilag1. Som Amperemeter, og voltmeter er brugt to<br />

multimetre af typen METEX M-3800 og strømforsyningen er af typen 2422-529<br />

Som termometre bruger vi 3 termometre af typen CI-650A TEMPERATURE SENSOR som er<br />

tilkoblet en datalogger af typen SCIENCE WORKSHOP r 750 INTERFACE MODEL CI7500 samt<br />

et termometer af typen QUARTS DIGI-THERMO (A40) til måling af udetemperatur. Som elektrisk<br />

varmekilde, har vi bygget en ”radiator” bestående af en træramme omviklet med 5.1 meter<br />

kantaltråd af 0,5mm tykkelse. De to ender er gennem krokodillenæb sat til strømforsyningen. Selve<br />

kassen er sat op på 4 mindre stykker flamingo(af samme type) for at undgå berøring mellem kasse<br />

og underlag.<br />

Udførelse:<br />

Vi startede med at foretage vores først aflæsning af termometrene, samtidig med at vi satte<br />

spænding over radiatoren. Denne satte vi til 34,4V (målt på voltmeteret), og vi målte 1,02 A på<br />

amperemeteret. Dataloggeren logger en måling pr. 10.sek. og udetemperaturen aflæses jævnligt<br />

igennem forsøget så udetemperaturen kunne holdes konstant. Da temperaturen efter 5000 sek.<br />

nogenlunde havde stabiliseret sig, slog vi strømforsyningen fra radiatoren, og aflæste temperaturen<br />

indtil temperaturen igen havde stabiliseret sig.<br />

Resultat:<br />

Disse to forsøg gav os følgende resultater (se discbilag forsøg1_1 og forsøg1_2) Graferne over<br />

resultaterne kan ses på fig. 3.4 og 3.5 .<br />

Fejlkilder:<br />

Ved videre brug af dette forsøg, skal der tages hensyn til at der er nogle usikkerheder/fejlkilder i<br />

forsøget. De første af dem er ved bygning af kassen:<br />

Limen brugt til samling af vægge og gulv på kassen, kender vi ikke massefylde, varmekapacitet<br />

eller varmeledningskoefficient på. Målene på kassen antager at lågets top sænkes helt ned i plan<br />

med væggenes top, dette passer dog ikke helt i praksis, dvs. at lidt af låget(mellem 5 og 20 mm )<br />

stikker udenfor, hvorved randforholdende ændres lidt. Derudover skal det huskes at da låget er<br />

bygget så det kiler sig fast, vil det ikke sidde helt tæt til væggene i hele lågets tykkelse. Endvidere<br />

er der også huller til termometrene, da disse stikkes ind igennem loft og vægge udefra, og utæthed<br />

Side 86 af 113


Konklusion<br />

ved vinduet samt ujævnheder i materialet. Derudover er der nogle fejlkilder i selve målingen af<br />

forsøget. Vi har kunne se at termometrene er noget uenige om temperaturen(+- op til næsten 2<br />

grader celsius), samt en usikkerhed i måleapparaterne(usammenhæng mellem effekt målt via<br />

modstand og spændingsmåling og effekt målt via spænding og strømmålinger.<br />

2. Forsøg<br />

Formål:<br />

Formålet med dette forsøg, er som i 1. forsøg at give et billede af, hvordan temperaturen i et rum<br />

opfører sig med tiden, denne gang dog ved åbning af vinduet efter temperatur stabilisering med<br />

konstant effekt på radiatoren. Dette har til formål at undersøge om det kan aflæses direkte på<br />

temperaturen om vinduet er åbent eller lukket.<br />

Opstilling:<br />

Forsøget er opstillet som i 1. Forsøg.<br />

Udførelse:<br />

Vi startede igen med at vi foretage vores først aflæsning af termometrene, samtidig med at vi satte<br />

spænding over radiatoren. Denne satte vi til 33,5V(målt med voltmeter) og amperemeteret viste<br />

1,07 A. Vi aflæste så termometrene hver 10. sek. Da temperaturen efter ca.7500 sek.. nogenlunde<br />

havde stabiliseret sig, åbnede vi vinduet og afventede igen en stabil tilstand. Under hele forsøget<br />

holdt vi ”ude” temperaturen i laboratoriet konstant.<br />

Resultat:<br />

Dette forsøg gav os følende resultater (se discbilag forsøg2). For graf over resultaterne se fig. 4.2.<br />

Fejlkilder:<br />

Fejlkilderne er de samme som ved forsøg 1.<br />

3. Forsøg<br />

Formål:<br />

Formålet med dette forsøg, er som i 1. forsøg at give et billede af, hvordan temperaturen i et rum<br />

opfører sig med tiden, denne gang ved lukning af vinduet efter temperatur stabilisering med slukket<br />

radiatoren. Dette har til formål at undersøge om det kan aflæses direkte på temperaturen om vinduet<br />

er åbent eller lukket.<br />

Opstilling:<br />

Forsøget er opstillet som i 1. Forsøg.<br />

Udførelse:<br />

Efter først at have forvarmet forsøgsrummet slukkede vi for radiatoren og åbnede vinduet. Under<br />

den efterfølgende ne<strong>dk</strong>øling aflæste vi termometrene hver 10.sek. Da temperaturen efter 4400 sek.<br />

nogenlunde havde stabiliseret sig, lukkede vi vinduet igen og aflæste så videre i noget så vi igen<br />

opnåede en stabil tilstand. Under hele forsøget holdt vi ”ude” temperaturen i laboratoriet konstant.<br />

Side 87 af 113


Konklusion<br />

Resultat:<br />

Dette forsøg gav os følende resultater<br />

(se discbilag forsøg3). For graf over resultaterne se fig. 4.3.<br />

Fejlkilder:<br />

Fejlkilderne er de samme som ved forsøg 1.<br />

4. Forsøg<br />

Formål:<br />

Formålet med dette forsøg, er at undersøge størrelsen af fænomenet, om at væggene vil holde på<br />

en del varme og at man derfor selv efter en umiddelbar stabilisering af temperaturen i et rum med<br />

åbent vindue, vil kunne se på temperaturen at vinduet lukkes.<br />

Opstilling:<br />

Forsøget er opstillet med en datalogger af typen ECO-LOG ECL-4 stående på et bord i en afstand<br />

af ca. 1 meter fra vinduet og i samme højde som bunden af denne. Dette forsøg er lavet i et<br />

tilfældigt rum.<br />

Udførelse:<br />

Med lukket radiator åbnedes vinduet i et opvarmet rum. Temperaturen aflæstes af en datalogger<br />

hver 10. Sek. Indtil en relativ stabil temperatur var opnået. Derefter lukkedes vinduet igen, stadig<br />

med dataloggeren kørende som før. Efter noget tid afsluttedes forsøget.<br />

Resultat:<br />

Dette forsøg gav os følende resultater (se discbilag forsøg4). For graf over resultaterne se fig. 4.4<br />

Fejlkilder:<br />

Der kan være en usikkerhed i måleinstrumentet, dog regnes denne for ubetydelig. Den største fejl<br />

ligger nok i dårlig isolering ud til varmere rum i bygningen, hvilket kan have holdt rummet varmere<br />

end ville være sket med kun væggene som faktore. Dog er denne ”fejl” tættere på det<br />

gennemsnitlige tilfælde end et totalt isoleret (i forhold til andre rum) rum. Den sidste fejlkilde er at<br />

komputeren som dataloggeren var selvfølgelig sat til og producerer også varme.<br />

Side 88 af 113


3 Bilag nr. 4: Regulering<br />

Termostatmodul:<br />

Konklusion<br />

1: difference temperatur = ønsket temperatur - indetemperatur<br />

2: difference effekt = difference temperatur * 50<br />

3: reel effekt = teoretisk effekt + difference effekt<br />

4: hvis reel effekt > 50 så<br />

5: reel effekt = 50<br />

6: hvis reel effekt < 0 så<br />

7: reel effekt = 0<br />

Modul til registrering af åbning:<br />

1: fra j=1 til j=119 gør<br />

2: tabelplads j = tabelplads j+1<br />

3: tabelplads 120 = indetemperatur<br />

4: difference temperatur = tabelplads 120 – tabelplads 1<br />

5: hvis difference temperatur < -5 så<br />

6: vindue = åbent<br />

Opvarmningstest:<br />

1: testtemp = effekt * 0.0913 + udetemperatur<br />

2: temperaturforskel = testtemp-indetemperatur<br />

3: hvis temperaturforskel < -2 og temperaturforskel > 2 så<br />

4: vindue = åbent<br />

5: initialiser tabel til indetemperatur<br />

Side 89 af 113


4 Computermodel:<br />

Konklusion<br />

1: Q = Indetemperatur * Samlet_Varmekapacitet<br />

2: fra 0 til sluttid gør<br />

3: udskriv: Indetemperatur og tid<br />

4: Q=Q+Radiatoreffekt+Tab_fra_Vægge_og_Vindue<br />

5: Indetemperatur=Q/Samlet_Varmekapacitet<br />

6: udskriv: Tab_fra_Vægge og Tab_fra_Vindue<br />

Simulering af åbning og lukning af vindue:<br />

1: hvis tid = åbningstid så<br />

2: vinduesisolans = lille<br />

3: hvis tid >= lukningstid og tid


5 Bilag nr. 5: Diagram for SBC<br />

Konklusion<br />

Side 91 af 113


6 Bilag nr. 6: Diagram for det analoge print<br />

Konklusion<br />

Side 93 af 113


Litteraturliste<br />

Bilag nr. 7: Seriel kommunikation - Pseudokode for udvalgte funktioner<br />

Funktioner til buffer<br />

Funktion: status()<br />

1: returner (Statusvariabel)<br />

Funktion: post (Dataelement)<br />

1: hvis Statusvariabel>=Max_antal så returner 0 //Bufferen er overfyldt og der<br />

returneres med fejlkode (0)<br />

2: Vektor_med_dataelementer [lastpointer]=Dataelement //Gem data i bufferen<br />

3: Statusvariabel= Statusvariabel +1; //Forøg statusvariabel<br />

4: lastpointer= lastpointer +1 //Peg på næste frie plads<br />

5: hvis lastpointer>(Max_antal-1) så lastpointer=0 //Wrapper pointeren?<br />

6: returner (1) //Data gemt alt OK.<br />

Funktion: retrieve (Dataelement)<br />

1: hvis Antalelementer(Max_antal-1) så firstpointer=0 //Wrapper pointeren?<br />

6: returner (1) //Data hentet returner OK<br />

Funktioner til PC ISR<br />

Funktion: Serielt_ISR()<br />

1: hvis DataKlarBitten er sat så Modtag.post(Data_Fra_UART) //NB:Hvis bufferen er fyldt,<br />

mistets data!<br />

2: outportb (0x20,0x20); //Signaler til PIC at interruptet<br />

Funktion: Sende_ISR()<br />

er afsluttet<br />

1: Så længe Sende.status()>0 så //Er der data at sende?<br />

2: Vent til SendeKlarBitten er sat //Vent til UART er klar<br />

3: Sende.retrieve(Data) //Læs data fra bufferen<br />

4: outportb(basisadresse,data ) //Send data til<br />

UART<br />

5: outportb (0x20,0x20); //Signaler til PIC at interruptet<br />

Bufferimplementation på MCU<br />

Funktion: Post(data)<br />

1: så længe SFLAG=0 så vent<br />

er afsluttet<br />

2: SBUF=data //Skriv data til UART<br />

3: SFLAG=0 //Slet ”klar til at sende” flaget<br />

Side 80 af 113


Funktioner til MCU ISR<br />

Funktion:Serielt_ISR()<br />

1: hvis interrupt skyldes sendt byte så:<br />

Litteraturliste<br />

2: SFLAG=1 //Sæt flag, så der kan sendes<br />

3: TI=0 //Nulstil interrupt<br />

4: hvis interruptet skyldes modtaget byte så:<br />

5: hvis Statusvariabel>=Max_antal) så returner (0) //ER bufferen overfyldt?<br />

6: Vektor_med_dataelementer [lastpointer]=SBUF //Gem data i bufferen<br />

7: Statusvariabel=Statusvariabel+1 //Forøg status<br />

8: lastpointer=lastpointer+1 //Peg på næste frie plads<br />

9: hvis lastpointer>(Max_antal-1) så lastpointer=0 //Wrapper pointeren?<br />

10: RI=0 //Nulstil interrupt<br />

Side 81 af 113


7 Bilag nr. 8: MCU-pseudokode<br />

Pseudokode for effekt-beregning:<br />

Litteraturliste<br />

Funktion: PBM(effekt)<br />

1: hvis effekt>50 så effekt=50<br />

//Undgå fencepost errors<br />

2: CCH1=effekthigh[effekt] //Slå HI-byte op i<br />

ROM-tabel<br />

3: CCL1=effektlow[effekt] //Slå LO-byte op i<br />

ROM-tabel<br />

Pseudokode for protokol-fortolkningen:<br />

1:hvis Antal_Elementer_I_Modtagebuffer > 0 så //Er der modtaget data?<br />

2: Byte=Hent()<br />

//Hent første element i buffer<br />

3: hvis Byte =1 eller 2 så //Hvis ordre nr. er<br />

1 eller 2<br />

4: Vent til Modtagelse_Af_Næste_Byte<br />

5: Ny_Ønsket_temperatur=hent() //Ny<br />

reguleringstemperatur<br />

6: hvis Byte=3 så<br />

//Hvis ordre nr. er 3<br />

7: post(3)<br />

//Gentag ordre<br />

8: post(indetemp)<br />

//Send ønskede data<br />

9: post(udetemp)<br />

10: post(effekt)<br />

Side 82 af 113


Bilag nr. 9: MCU-detaljer<br />

Litteraturliste<br />

Dette bilag indeholder yderligere detaljer omkring de enkelte periferi-enheder som bruges af<br />

softwaren på MCU’en.<br />

Analog til digital konverteren:<br />

ADC’en styres af ADCON (ADC control) registret, som indeholder 3 bit, der bestemmer hvilket<br />

ben signalet skal konverteres fra, en bit der bestemmer hvorvidt konverteringen skal ske løbende<br />

eller kun foretages én gang og endelig en bit der angiver om ADC’en er i gang med en konvertering<br />

eller ej. Efter opsætning af ADCON startes konvertering, ved at skrive til DAPR-registretet<br />

(digital/analog converter program register), der desuden kan bruges til at justere<br />

referencespændingen, hvilket vi ikke har gjort brug af. Ca. 15 mikrosekunder efter der er skrevet til<br />

DAPR-registret, kan resultatet aflæses i ADDAT-Registret (ADC DATa).<br />

Brug af timer 2 til PBM:<br />

T2CON:<br />

T2CON styrer den generelle opsætning af timer<br />

2. Bit 0&1 bruges til at sætte timer 2 op som timer.<br />

Bit 2&3 styrer hvornår timer 2 begynder at tælle<br />

forfra, i vores tilfælde sættes den op til automatisk<br />

at begynde forfra når den har nået maksimum.<br />

Bit 4 sættes til 0, hvorved timer 2 automatisk<br />

skifter output-signalet til højt, når timer 2 er lig<br />

med sammenligningsregistret.<br />

Bit 7 sættes til 1, hvilket bevirker at timeren<br />

tæller en op for hver anden machine-cycle. Herved<br />

opnås længere perioder og færre spændingsskift.<br />

Figur 1.1 – Oversigt over T2CONregistret<br />

Side 83 af 113<br />

Bit nr. Funktion<br />

7 Timer frekvens.<br />

0: OSC/12<br />

1: OSC/24<br />

6 Ingen funktion ved PBM<br />

5 Ingen funktion ved PBM<br />

4 Sammeligningsfunktion<br />

0: Mode 0 - Standard PBM<br />

1: Mode 1 – SW kontrolleret PBM<br />

2,3 Reload kilde:<br />

0, 0 og 0, 1: Reload ikke aktiv.<br />

1, 0: Reload ved timer 2 overflow.<br />

1, 1: Reload ved neg. Kant på P1.5.<br />

1,0 Timer 2 funktion:<br />

0, 0: Timer 2 stoppet.<br />

0, 1: Timer funktion, freq. Bestemt af bit 7.<br />

1, 0: Tæller, med P1.7 som input.<br />

1, 1: Gated timer.


CCEN:<br />

CCEN bestemmer hvordan de 4<br />

sammenligningsregistre skal bruges. Da vi kun<br />

skal bruge én puls, benytter vi kun<br />

sammenligningsregister CC1 (Compare/Capture<br />

1), som har udgang på ben 1 på port nr. 1 (kaldet<br />

P1.1).<br />

CC1 aktiveres ved at sætte bit 3, og slette bit 2.<br />

Herved bruges CC1-registret nu som<br />

sammenligningsregister. Hver gang CC1 er lig<br />

med timerregistret sættes ben P1.1 højt og hver<br />

gang timeren starter forfra sættes benet til 0.<br />

Figur 1.1 – Oversigt over CCENregistret<br />

Litteraturliste<br />

Bit nr. Funktion<br />

7, 6 Styrer sammenligner-register CC3.<br />

0, 0: Afbrudt.<br />

0, 1: Capture på positiv kant af P1.3.<br />

1, 0: Sammenligner aktiv.<br />

1, 1: Capture på skriv til CCL3<br />

5, 4 Styrer sammenligner-register CC2.<br />

0, 0: Afbrudt.<br />

0, 1: Capture på positiv kan af P1.2.<br />

1, 0: Sammenligner aktiv.<br />

1, 1: Capture på skriv til CCL2<br />

3, 2 Styrer sammenligner-register CC1.<br />

0, 0: Afbrudt.<br />

0, 1: Capture på positiv kan af P1.1.<br />

1, 0: Sammenligner aktiv.<br />

1, 1: Capture på skriv til CCL1<br />

1, 0 Styrer sammenligner-register CCR.<br />

0, 0: Afbrudt.<br />

0, 1: Capture på positiv kan af P1.0.<br />

1, 0: Sammenligner aktiv.<br />

1, 1: Capture på skriv til CCL0.<br />

Timer 0:<br />

Timer 0 kontrolleres af TMOD-registret (Timer MODe) og TCON-registret (Timer CONtrol). Det<br />

første vælger mellem forskellige mulige funktionsmetoder, i vores tilfælde konfigureres timer 0,<br />

som en 16-bit timer, som inkrementeres med en i hver machine-cycle, dvs. 1.000.000 gange i<br />

sekundet. Timeren startes ved at sætte TR0 (Timer 0 Run) bitten i TCON-registret. Herefter vil<br />

timer 0 generere et interrupt hver gang timerregistret wrapper, dvs. når værdien ændrer sig fra<br />

FFFFh til 0000h<br />

Side 84 af 113


Litteraturliste<br />

Side 85 af 113

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!