Kezdőoldal » Számítástechnika » Programozás » Milyen modszerrel programoznad...

Milyen modszerrel programoznad le a kovetkezot?

Figyelt kérdés
Van 4 szeleped amiket ki es be kapcsolhatsz. Van egy kulso nyomas erzekelo valtozod aminek az erteket periodikusan ellenorzod. 0-25 000 kozotti ertekeket vehet fol. A nyomas fuggvenyeben hol meg kell nyitni a szelepeket hol el kell zarni, ha a nyomas maximumon van akkor minden szelep legyen el zarva, ha a nyomas kicsi pl. 0-5000 kozott, akkor 1 szelep legyen zarva a tobbi nyitva.
2021. júl. 28. 12:35
 1/8 A kérdező kommentje:
A lenyeg hogy a szelepek aranyosan legyenek nyitva/zarva a terheltsegtol fuggoen.
2021. júl. 28. 12:36
 2/8 anonim ***** válasza:
Mi a kérdés? Mikrokontrolleren, plc-n, soft-plcn, vagy beágyazott rendszeren?
2021. júl. 28. 12:46
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

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 :)

2021. júl. 28. 13:21
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
100%
Sima switch case blokk, értéktől függően egyre több szelepet nyitni (kihasználni a fallthrought-t, már ha az adott nyelvben van)
2021. júl. 28. 13:34
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

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

2021. júl. 28. 17:30
 6/8 A kérdező kommentje:

felbontod a 0-25000-öt értékekre


de mi van ha 1000 db szelepet kell szabalyozni? generikus megoldas kellene

2021. júl. 28. 17:31
 7/8 A kérdező kommentje:

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


}

2021. júl. 28. 17:33
 8/8 anonim ***** válasza:
70%

"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ú)

2021. júl. 28. 19:09
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!