Saara
Sää Ohjaus Tynnärlampi Saara

Saara-esittely

Historiaa

   

SAARA

Ohjelmistoversio: SNAP 1.0.9, Dawn
Päälläoloaika: 27d, 01:38:57
FLASH-muistia: 1638400 tavua, vapaana 59392 tavua
RAM-muistia JVM:llä: 1179648 tavua, vapaana 360184 tavua
Web-palvelin: Tynamo-SNAP/1.0.4 (Non-commercial)
Palvelupyyntöjä: 2037

Saara on kesämökin lämmityksen ja valaistuksen ohjausjärjestelmä. Saaran avulla voidaan Internetin kautta kauko-ohjata lämmitystä sekä valaistusta. Lisäksi Saara mittaa lämpötiloja sekä sähkön kulutusta ja tallettaa nämä tiedot lokiin jota voidaan myöhemmin analysoida. Saarassa on myös kulunvalvonta joka antaa tarvittaessa hälytyksen poikkeavuuksista.

Toteutustekniikka

Saaran ydin on Ruotsalaisen Imsysin SNAP-moduli (Simple Network Application Platform). Modulissa on 2 MB FLASH, 8 MB RAM, Ethernet kontrolleri, sekä Imsysin oma ASIC-piiri, 0,35 µm tekniikalla toteutettu ja 80 MHz kellotaajuudella toimiva Cjip-mikroprosessori. Prosessori tukee useita käskykantoja; Java tavukoodi, C ja C++ sekä assembler käskykannat ovat valmiiksi tuettuja. Sisäisesti Cjip käyttää 72 bittiä leveitä mikrokoodikäskyjä joiden päälle muut käskykannat rakennetaan. Ytimeltään Cjip on CISC-tyyppinen arkkitehtuuri; prosessorissa on 36 KB ROM ja 18 KB RAM muistia kiinteille ja modifioitaville mikrokoodatuille käskykannoille. Prosessorin valmis Java-käskykanta kattaa suurimman osan (84 %) Javan virtuaalikoneen (JVM) tavukoodeista. Lisäksi mikrokoodilla on toteutettu myös osa käyttöjärjestelmän toimintoja. Siksi Cjip-prosessorilla toteutettu Java virtuaalikone on tehokkaampi kuin perinteinen kaikkia tavukoodeja ohjelmalla tulkkaava toteutus. Lisäksi RAMilla sijaitsevaa mikrokoodia voidaan vaihtaa lennossa, jolloin samanaikaisesti osa prosesseista voi suorittaa tehokkaita C-kielisiä rutiineja tai täysin omia mikrokoodattuja toiminteita. Muutettavan mikrokoodin avulla voidaan olemassaolevaa laitteistoa tarkemmin räätälöidä omiin tarpeisiin sopivaksi, vähän samaan tapaan kuin FPGA-piireissä alemman tason solut modifioidaan kulloisiinkiin tarpeisiin soveltuviksi. Muutettavan mikrokoodin avulla modifiointi tapahtuu vain hiukan korkeammalla tasoilla kuin FPGA-piireissä, siksi piipinta-alan hyödyntämistehokkuus on korkeampi, mutta räätälöintimahdollisuudet ovat rajatummat. Ohjelmistoympäristönä on Sunin JME, jonka melko kattavia kirjastoja on helppo laajentaa olioperustaisesti. Lisäksi Java-kielisiä luokkakirjastoja erilaisiin tarpeisiin on runsaasti saatavilla, ja Javan kohtuullisen alustariippumattomuuden johdosta niitä on melko helppo ottaa käyttöön omassa ympäristössä. Java tukee myös suoraan TCP/IP-protokollia, joten kytkeytyminen Internet-maailmaan on todella helppoa. Lokitiedot talletetaan RAM-muistiin joka on akkuvarmennettu. I/O laitteisiin SNAP kytkeytyy 1-Wire -liitynnän kautta. Liityntä on fyysisesti yksinkertainen ja Java-ympäristöstä löytyy suoraan ohjelmistotuki 1-Wire väylälle. SNAP-moduli on asennettu Taylecin Mini-T äitikortille jossa on RJ-45 (Ethernet), DB9S (RS-232) ja virtaliittimet (9 - 12 V).

Lämpötilamittaukset on toteutettu Dallasin DS18B20 1-Wire antureilla. Anturin tarkkuus on 0,5°C. Koska osa antureista on hyvinkin pitkien matkojen ja sekalaisten kaapelien päässä (esim. järven lämpötilamittaus), verkko on toteutettu tähtimäisenä Hobby Boardin kolmeen DS2409P piiriin pohjautuvan kuusikanavaisen kytkimen avulla. 240VAC kuormia ohjataan Taylec RelayIOWAD kortilla jossa on kahdeksan DS2405 piirin ohjaamaa relettä sekä neljäkanavainen A/D-muunnin DS2450. Releet on leimattu 12A, 250 VAC maksimikuormalle joten niitä voidaan huoletta käyttää 10A sulakkeen takana. A/D-muuntimella valvotaan käyttöjännitettä sekä akun varaustilaa. 240VAC jännitteitä tutkitaan Embedded Data Systemsin T4SS ja T2SS korteilla, jotka on kalustettu yhteensä kuudella Western Reserve Controlsin 1781-IM5S optoisolaattoriyksiköllä jotka kestävät 180-280VAC jännitteen ja jotka on kytketty kolmeen DS2406 piiriin. Rele- ja optoisolaattorikortit on myös kytetty 1-Wire väylään, ja kaikkiin niissä käytettyihin 1-Wire piireihin löytyy suoraan valmiit luokkakirjastot. Ulkomaailman yhteyksiä hoiteleva laitteisto- ja ohjelmistoratkaisu on siten äärimmäisen yksinkertainen. Järjestelmä kuluttaa virransäästötilassa (Ethernet PNY pois päältä) 1,3W (9V), idle-tilassa 2,3W ja täydellä prosessorikuormituksella 3,0 W. Koko järjestelmä on kasattu 4U korkuiselle ja 10" levyiselle asennuslevylle joka on asennettu Norjalaisen Elkon Link Office 10" asennuskaappiin.

Web-palvelin on toteutettu Shawn Silvermanin Tynamo palvelimella. Palvelin on todella yksinkertainen käyttää ja se on tehty sulautettuja järjestelmiä silmälläpitäen (pieni muistinkulutus ja laskennallisesti kevyet algoritmit). Palvelin tukee Servlettejä, joten dynaamiset Web-sivut ovat verraten helposti toteutettavissa. Lisäksi pavelimessa on valmiiksi toteutettuna autentikointi sekä Template-prosessointi.

Algoritmit

Lämpötiloista otetaan näytteitä 10 minuutin välein. Näytteenottohetkellä lämpötilanäytteitä otetaan kolme perättäin n. 1s välein. Nämä kolme näytettä sitten mediaanisuodatetaan. Suodatus tapahtuu asettamalla näytteet suuruusjärjestykseen, ja näistä otetaan keskimmäinen näyte (mediaani). Näin saadaan mahdollisen yksittäisen häiriön vaikutus lämpötilamittaukseen minimoitua. Mediaani on parempi poistamaan yksittäisen häiriön vaikutusta kuin keskiarvoistaminen, koska jokainen näytepiste vaikuttaa keskiarvoon aina vähän, mutta mediaaniin yksittäinen selvästi poikkeava näyte ei vaikuta lainkaan.

Lämpötilan muutosnopeudet arvioidaan sovittamalla ensimmäisen asteen lineaarinen käyrä pienimmän neliösumman menetelmällä viiteen viimeiseen lämpötilan näytepisteeseen (eli viimeisten 50 minuutin ajalta). Näin saadaan yksittäisten näytepisteiden virheiden vaikutus minimoitua, ja todellinen muutostrendi saadaan luotettavasti esiin. Näytepisteitä lisäämällä saadaan muutosnopeuden arvion tarkkuutta parannettua, mutta tällöin arvion viive kasvaa.

Poissaololämpöjen säätämiseen käytetään PI-säätäjää jonka asetusarvoksi saadaan ulkolämpötilan vuorokauden keskiarvo plus 3,5°C, kuitenkin minimin ollessa +5°C ja maksimin +18°C. Näin saadaan sisälämpötila aina hiukan suuremmaksi kuin ulkolämpötila, jolloin sisälle ei pääse kertymään liiaksi kosteutta ja lämmitysenergian kulutus saadaan pidettyä mahdollisimman alhaisena. Vuorokauden ulkokeskilämpötila saadaan arvioitua 10 minuutin välisistä mittauksista ensimmäisen asteen IIR-suotimella. PI-säätäjän lähtö ohjaa pulssisuhdemodulaattoria puolen tunnin käyntijaksolla joka on kytketty sähkölämmityksen ohjauskontaktoriin. Samainen puolen tunnin käyntijakso määrää myös PI-säätimen näytteenottointervallin. Koska käyntijakso on kontaktoria säästäen valittu suhteellisen pitkäksi, ei PID-säätöalgoritmia voida käyttää koska se vaatisi nopeampaa näytteenottoa. Säädin viritettiin asettamalla integrointitermi nollaksi ja kasvattamalla vahvistusta kunnes säätöpiiri värähtelee. Tästä värähtelyjaksosta sekä vahvistuksesta saadaan Ziegler-Nicholsin menetelmällä PI-säätimen parametrit.