Milyen modszerrel programoznad le a kovetkezot?
felbontod a 0-25000-öt értékekre,
ha 0-5k 1. szelep nyitva
5001-10000 1-3 szelep nyitva
10001-17500 2-4 szelep nyitva
25000nél meg mindegyik :)
Akkor pontositok, a fuggvenyt hogy irnad meg, ami megkapja parameterben a nyomast (p) es visszater egy 4 szelepek elemu tombbel sz[4]
function szabalyoz(p) : array[4]
{
sz[0] = 0
sz[1] = 0
sz[2] = 0
sz[3] = 0
... your code here
return sz
}
szelepek legyen 4 elembol allo tomb true/false vagy 0/1 ertekekkel teljesen mindegy
felbontod a 0-25000-öt értékekre
de mi van ha 1000 db szelepet kell szabalyozni? generikus megoldas kellene
Generikus esetre:
function szabalyoz(p) : array[]
{
p egesz szam a nyomast szimblizalja
len(sz) az sz tomb elemszama
min(p) p legkisebb erteke, peldamban 0
max(p) p felso hatarerteke, peldamban 25000
... your code here
return sz
}
"de mi van ha 1000 db szelepet kell szabalyozni? generikus megoldas kellene"
Innen kezdve sok értelme nincs a kérdésnek. 1000 db. szelepet már nem ilyen módszerekkel "szabályzunk" egyébként ez a feladat nem szabályzás, hanem vezérlés, mert nyilthurkú a feladat is meg a megoldás is.
Szintén rettenetesen nem mindegy amit 2-es kérdezett, hogy a mi a hardver. Szintén nem mindegy, hogy milyen szelepeket kell mozgatni, pl. nyit-zár szelep (és abból sem igazán mindegy, hogy milyen), proporcionális szelep, szabályzó szelep, háromjáratú szelep stb. Ok, hogy tudjuk a nyomást de mi a tömegáram (és mi a közeg)? Léteznek ilyen "elméleti megoldások" de a gyakorlatban ilyenkor szokott a 10. percben az egyik szelep tányér kiszakadni a helyéről, vagy a szállító cég csődbe megy a garanciaidőben cserélt szelepektől/hajtóművektől.
Szükséges-e az, hogy a szelepek igénybevétele azonos legyen? A gyakorlatban ha a szelepek azonos funkciójúak, és egyenranguak akkor törekszünk arra, hogy azonos igénybevételt kapjanak. Ez azt jelenti, hogy pl. a nyitás szám, vagy a nyitott idő legyen azonos. Azaz ne forduljon elő az (és ez gyakori hiba "kezdő" automatikásoknál), hogy az 1. és a 2.-es jelű szelep már 50 000-et kapcsolt és a hajtómű már tönkrement, addig a 3-as szelep talán csak néhány 100-at, és a 4. még egyet se, így a 3-asnál még szinte új a hajtómű, a 4-esnél meg gyári új, és így két hajtóművet cserélni kell, míg ha egyenletesen vannak kapcsolva a szelepek akkor még mindegyik csak kb. 12 000-13 000 kapcsolásnál járna, és még bőven nem kéne egyet se cserélni. Ugyanígy előfordulhat, hogy a 4. szelep (amit aztán még ritkábban nyitsz) berohad az állástól és azért nem fog működni. Ezért a gyakorlatban ha ezek egyenranguak és a te feladat leírásodban nem az szerepel, hogy az első szelepet kell nyitni x nyomásnál, hanem egy darab szelepet ezért itt figyelembe kéne venni, hogy mindig azt a szelepet kell soron következőleg nyitni amelyiknek a nyitás száma a legkisebb (ezzel biztosítható, hogy mindegyik szelep ugyannyiszor legyen nyitva-zárva és ne legyen az amit feljebb írtam). És azt kell zárni aminek a legnagyobb a nyitás száma. Ehhez számolni kell, hogy melyiket hányszor nyittottad ki és ez alapján "rendezni". A másik érdekes kérdés, hogy mi a szelep mozgatás ideje, ami szelepvezérlést ma programoztam olyan volt a szelep, hogy a nyitás ideje 45 másodperc, a zárás ideje 70 másodperc. Itt azt is figyelembe kell venni, hogy a szelep még bőven mozoghat amikor jön egy ellentétes parancs, akkor (és ezt majd a szelepgyártó és a gépész tervező megmondja, találkoztunk olyan pici occo kinai hajtóművel amit ha félállásban visszavezéreltünk akkor kb. 15 ilyen után tört a tengely, azoknál meg kellett várni amíg kinyit/bezár teljesen és egy másikkal zárni/nyitni ha közben úgy változtak a viszonyok, szintén olyan hajtómű, hogy hozzá képest a csiga F1-es versenyautó) vagy azt zárod/nyitod vissza ami éppen mozog, vagy egy másikat, itt bejöhet, az, hogy már fogalma sincs senkinek, hogy ez hogyan hat a nyomásokra. Nyilván lehet "általános" megoldás akár 1000 szelepre is. De ott már a mérési hibahatár és a kvantálási probléma is bejátszhat, mert ha 1000 db. szelepet akarsz így mozgatni ahhoz fél ezrelékes nyomásmérő kéne, amit elég nehezen fogsz beszerezni, mert max. 0,5%-os nyomásmérők léteznek, és ezek mechanikai hiszterézise se sokkal jobb. (Én még nem nagyon láttam olyan "elérhető árú, ipari" nyomásmérést ami 9-9,5bitnél nagyobb tényleges elektronikus+mechanikai felbontással rendelkezett volna ez gyakorlatban kb. 500-700 kvantálási lépést jelent. így 1000 szelepet már nem is fogsz tudni mozgatni, mert összesen max. 500-700 féle nyomás értéket fogsz kapni a nyomásméréstől. Azaz ennél finomabb mozgatásra eleve nincs is szükség, mert úgyse fog működni, ahhoz, hogy ez stabil legyen /az utolsó "értelmes" helyiérték billegni fog az utolsó szeleped állandóan nyitni-zárni fog, mert a nyomásmérésed ott fog billegni, a tapasztalat azt mutatja hogy max. a negyedével lehet számolni ami itt max. 100 db. beavatkozási pont lesz amit egyáltalán meg fogsz tudni "stabilan" különböztetni. És itt jön be az ami miatt nem túl rég kivágtuk a próbaidős "kollégát", hogy nem fogta fel, hogy "hát a gép kiírta 25000-ig 5 jegyre, hát akkor az annyi, nem, ez nem annyi hanem a 0-25000 tartományban lesz kb. 700 féle nyomás érték amit meg tudsz különböztetni, a többi szemfényvesztés és parasztvakítás, tehát ami értékeket látni fogsz és "tényleges lehet" az a 0,36,72,108..., minden más érték az ezek körüli zaj lesz, tehát fogsz látni 25-öt is, meg 83-at is, de ahhoz nem fog "valós" nyomáseltérés tartozni, és most egy jobb minőségű, precízebb nyomásmérőről beszéltem, nem a leggyagibb kinai csodáról amit szeretnek beépíteni, ami kb. 7bitnek megfelelő felbontású)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!