[elektro] Statisztika matek

Moczik Gabor pm_levlista at progzmaster.hu
Sat Feb 28 16:16:45 CET 2009


Nemeth Tibor wrote:
> Nem teljesen azonos, de már jópár éve csináltam vezérlést egy gázpalack 
> töltőhöz. Adott 2..5 palack mindenféle gázokkal és egy üres palack a 
> mérlegen. Feladat adott összetételű és mennyiségű gázt belevezérelni 
> mágnesszelepek nyitásával. Itt ahogy fogy a gáz a palackokból illetve 
> ahogy emelkedik a nyomás a töltetben egyre változnak a viszonyok, 
> ráadásul ez egy huszonegyes játék, ha túlment vesztettél. Túlságosan 
> kicsi nyitási időket a szelepek nem tűrtek, kiszámíthatatlanul 
> viselkedtek. A mérlegelés viszont hosszadalmas volt. Itt kellett jól 
> extrapolálni.

Hat ez is egy izgalmas feladat lehetett...
Az enyem azert egyszerubb egy kicsit, barmikor ujra lehet merni, legfeljebb 
ketszer annyi ideig tart a meres, nehanyszor elofordul az belefer.

> Visszatérve aktuális problémádra, ha jól értem, a pontok adatait 
> eltárolod, hiszen ki akarod szűrni a gyanúsan hibás pontot. Ebben az 
> esetben nem igazán értem mi az előnye a numerikusan instabil, 
> programozásában bonyolultabb formulának. Ez akkor előnyös, ha nem tudod 
> vagy nem akarod eltárolni a pontokat. Ha mindig rendelkezésre állnak, 
> igaz két ciklusban, de stabil és egyszerűbb számítás végezhező. Futási 
> dőben biztos több, hiszen mindig elölről kezdi, de nem tudom, hogy ez 
> szempont-e.

Szempont a futási idő, de némi idő feláldozható ha ezzel egy robosztus 
algoritmust lehet létrehozni. Nem értem pontosan mire gondolsz az adatok 
eltárolásával kapcsolatban. Leírom a műszaki problémát konkrét számszerű 
adatokkal, így könnyebb mint paraméteresen gondolkodni.

Van egy mérendő munkadarab, amire ellenállásokat (221k..401k) lehet 
rákapcsolni, erre a kimenetén keletkezik egy feszültség. Engem az érdekel, 
hogy 30V-hoz és 48V-hoz mekkora ellenállás kell, és mondjuk kb. 15..70V-ig 
eléggé lineáris az összefüggés.

Sajnos elég nagy a szórás, van amelyik példány az első próba 
ellenállásértéknél 65V-ot ad, van amelyik 130-at. Emiatt ha fixen léptetem 
lefelé az ellenállást valamekkora lépésekkel, akkor elképzelhető hogy 
130..80V-ig lesznek mérési erdményeim, ebből fogok kiszámítani egy egyenest 
ami engem 30..48V-nál érdekel, aminek a környékén nincs is minta, lehet hogy 
nem is működik az áramkör ezen a munkaponton (selejt). Ha működik is, 
tipikusan 2-3V hibát okoz, mert ennyire fent már kicsit más a meredkség, nem 
teljesen lineáris.

Jelenleg egy olyan szempontot határoztam meg, hogy a 3-ik méréssel kéne 48V 
közelébe, az 5-ikkel (utolsó) 30V közelébe kerülni, a 4-ik valahol a kettő 
között. Egyenletesen felosztva a tartományt, ebből kijön hogy a 2-ik 57V, az 
első 66V körül kéne legyen.

Jelenleg:
1. Elvégzem az első mérést, a legkisebb ellenállással. Ha 66V vagy alatta 
van, akkor GOTO 2.
Ha 66V fölött van, akkor kiszámítom hogy mennyivel több mint 57V (már csak 
ezt lehet megcélozni, az első mérést már ellőttük). A meredekség átlagosan 
-1.2, ezzel kiszámolom hogy mennyivel léptessek odébb hogy kb. 57 legyen. GOTO 3

2. A 30V-ig "hátralévő" részt minden lépésben felosztom annyi enyenlő részre 
ahány mérés még hátra van, és ezt célzom meg a tipikus meredkséggel.

3. Ha megvan a második mérés, akkor itt egy sima arányosítással meghatározok 
egy kb. meredekséget, ezzel számolom a további mérést. Ha ez a meredekség 
irreálisra jön ki, pl. nincs -2 .. -0.8 között, akkor eldobom, inkább 
használom a tipikus -1.2-t, mert vagy mérési hiba van, vagy selejt a munkadarab.

Innentől ezzel közelít, nincs még ciklusonként lin. regresszió, nem nézi meg 
a további mérések után hogy jó-e ez a meredekség, egyelőre ennyi idő volt 
kísérletezni a géppel. Tapasztalatok viszont vannak:

  - volt már -3 meredekségű példány is, ezt elég szarul közelítette, mivel 
-2 alatti eredményt nem fogadta el. Kicseréltem a limitet -3.5 .. -0.8 -ra, 
ami nem biztos hogy jó ötlet...

- lehet hogy ha az első mérés nagyon magas, azt kérdés nélkül ki kéne dobni 
a végén, vagy inkább már rögtön az elején. Azaz ezen kívül 5 (össz 6) mérés 
lenne. Néha elhúzza a regresszió eredményét, és sum(abs(error))>=10 esetén 
nem fogadom el hitelesnek a mérést.

- ha mérési hiba van valahol az első két mérésnél, ebből kiszámít egy rossz 
meredekséget, akkor igencsak tévútra kerül, vagy messze 30V alá fog esni az 
utolsó mérés, vagy jóval fölé. Ezért is nem lesz jó ötlet -3.5 -ig elfogadni 
a két mérésből saccolt meredekséget, inkább többször kéne ellenőrizni.

Rettenet primitív ez még így, de azért nem olyan katasztrófális a helyzet, 
~2000db-ból kb. 15-20db-ot dobott félre. (az elfogadás feltétele egyelőre az 
volt, hogy sum(abs(error))<10 ÉS x[3]<55 ÉS x[5]<45 )
Valahogy el kéne dönteni, hogy mit tekintünk jó, mit hibás adatnak, 
lehetőleg minél előbb, nem csak a végén. Van még 1-2 elképzelésem, ha lesz 
idő kipróbálni, beszámolok a fejleményekről ha érdekel.

-- 
((( Móczik Gábor  )))--((( E~mail: "pm-01" @AT "progzmaster" .DOT "hu" )))
((( Skype: moczik )))



More information about the Elektro mailing list