Joakim wrote:
No ehkä ei, mutta tuntuisi järkevältä, että säätöarvo olisi työntövarren asento eikä ainoastaan sen liike. Nythän säädöllä on tavallaan vain kolme tilaa: liikkuu vasemmalle, liikkuu oikealle ja on paikallaan. Tietysti liikettä voi tehdä eri aikamääriä kerraallaan. Säätöä myös haitannee se, ettei ole tietoa siitä ollaanko juuri törmäämässä rajoittimeen vai ei. Integraattorin antiwindup ainakin tarvitsisi tietoa säätövarasta.
No siis lämpötilakontrolloinnissa (jonka parissa olen itse puuhastellut paljon) monesti toimitaan juuri pelkästään muutoksen kanssa, koska lämpövuo itse mittauspisteeseen ei ole sama kuin mitä sitten työnnetään lämmitysvastukseen. Kuitenkin kun nykyään näytteistystaajuus voi jo olla korkea ja piireistä löytyy potkua, niin pelkällä muutoksella (ts. ero targettiin, tyypillisesti "e"-arvo) voi ihan hyvin kontrolloida systeemiä, kunhan siis PID-parametrit säädetään vastaamaan ko. systeemiä. Tätä varten kaupallisissa laitteissa on Autotune-toiminnot, jotka ajavat säätöajoja automaagisesti ja arpovat sopivat PID:t, joitten perusteella ulostuloteho säädetään vastaamaan haluttua muutostekijää.
Miten Petri toteuttaisi PIDin tuollaiselle ilman asentotunnistinta? Asentotunnistimella voisi PID-yhtälöllä laskea suoraan asennon, johon työntövarsi laitetaan. Jos asentoa ei tiedetä vaan säätö perustuu ainoastaan säätösuuntaan, mitä eroa on PID-yhtälön arvolla +1 ja +100? Kummallakin säädetään +-suuntaan, kunnes PID on nolla tai negatiivinen?
Ilman asentotietoa kysehän on vain laskennan taajuudesta ja näytteistystaajuudesta (onneksi sentään purjeveneessä toimintaviive on varsin pieni, lämpötilahommissa kun lämpötasapainon kanssa voi kestää ikuisuuksia mikä tekee säädöstä hankalaa). PID-laskennan ulostuloahan yleensä skaalataan jollekin halutulle arvoalueelle, jossa voi hyvin määritellä että jos ulostulo on <x niin ohjaukselle ei tehdä mitään.
Eli noin esimerkkisi itse mieltäisin siten, että jos PID:n säätöparametrit normitetaan välille -100-+100 niin arvolla 1 ohjaussignaaliin ei käytännössä kosketa mitenkään, mutta arvolla 100 sitten vedetään "täysi oikealle" kunnes seuraavassa laskentatapahtumassa tarkastetaan muutoksen suuruutta.
Varmasti asentotiedosta on apua, koska sen infoa voi käyttää hyväkseen, mutta ei se sinänsä välttämätön ole mun nähdäkseni, mutta tämä siis ihan teoriatason toteamuksena, juuri ne "epämääräiset" parametrit systeemeissä pakottavat käyttämään tuonkaltaisia systeemeitä paremman tarkkuuden saamiseksi. Voi siis olla, että purjeveneen ohjailu on itseasiassa varsin hankalaa. Luulen, että hankalin tapaus kai olisi se että vene on jo esim. kryssillä kääntynyt piihin tai yli, kahden suunnan säätö on mielestäni haastavampaa kuin pelkkä yhden suunnan säätö, missä systeemi tuottaa sinänsä staattisen vastavoiman. Voi olla että koska vastavoiman suunta vaihtelee niin sen takia asentotieto on must, että algoritmi voi päätellä jo siitä että onko peräsin periaatteessa oikeassa asennossa mutta vastavoiman suunta vain hetkellisesti muuttui (nouseva/laskeva puuska). No, ajan yli integroimalla tämän saa toki suodatettua.
Mutta siis pointti yhä on se, ettei PID-algoritmin sinänsä tarvitse tietää mitään siitä mitä tapahtuu algoritmin ulkopuolella (pl. "e"). Olen tehnyt kosteudensäätösysteemin, missä suljetun tilan suhteellista kosteutta säädetään RH1% sisälle PID-laskennalla, missä algoritmistä tulee ulos liukulukuja 0-10 (0 siis tarkoittaa että älä tee mitään, systeemin negatiiviset voimat tuottavat negatiivisen komponentin) jotka muunnetaan Fieldpoint-ulostuloa varten 0-0,5 voltin ulostulojännitteeksi, joka säätää ultraäänikosteutinta. Tässä systeemissä ei (muistaakseni, tein tuon 1,5 vuotta sitten päivässä tai jotain sinnepäin ja sittemmin useampi ihminen on twiikkaillut peruskoodia) ole mitään tarkistusta aiemmista säätöarvoista, vain "e":n mittaus ja sen perusteella tapahtuva säätö muistaakseni 10 kertaa sekunnissa. Tuloksena kuitenkin about niin tarkka kosteudenhallinta kuin on mahdollista (90% jakaumasta RH1% sisällä) systeemin parametrit huomioiden. Kuvaavaa kyllä on, että alle 100 eurolla saisi vastaavan kaupallisen kivan pikkuboksin joka tekee tuon kaiken automaagisesti siinä missä tuo systeemi vaatii sen tonnin (rauta+lisenssit) tietokoneen alustakseen
Mutta siis sen minkä olen "säätämisestä" oppinut on se, että siihen sisältyy paljon säätämistä ja ensin kannattaa kokeilla mahdollisimman yksinkertaisella tavalla että systeemin omat piirteet tulevat tutuksi ja sitten vasta suunnitella uber-järjestelmää joka täyttää veroilmoituksenkin siinä ohessa. Joskus kun se yksinkertaisinkin riittää.