AALBORG UNIVERSITET - DupontKoustrup.dk
AALBORG UNIVERSITET - DupontKoustrup.dk
AALBORG UNIVERSITET - DupontKoustrup.dk
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