algoritmus automatickej regulacie

Programovacie jazyky, rady, poradňa...
Kamik
Light Expert
Light Expert
Príspevky: 65
Registrovaný: 28 jan 2008, 16:30

algoritmus automatickej regulacie

Príspevok od používateľa Kamik »

Zdravím potrebujem v c++ vytvoriť algoritmus automatickej regulácie voltov
neviem nič naist na nete tak písem sem . Malo by to byt niečo na takomto princípe
if (hodnota vstupu == ziadanej hodnota )
{
tak hodnota vystupu bude rovnaka ;
}
if (hodnota vstupu > ziadana hodnota)
{
tak hodnota vystupu bude znizena o 10%;
}
if (hodnota vstupu < ziadana hodnota)
tak hodnota vystupu bude zvisena o 10%;

vedel by niekto pomôcť ?
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: algoritmus automatickej regulacie

Príspevok od používateľa sharky-no »

a v com mas problem? v syntaxi? alebo ako?
sak si si to celkom pekne popisal, tak tam len spravne nahod premenne a podmienky a bude to takmer to iste ako to co si napisal.
Kamik
Light Expert
Light Expert
Príspevky: 65
Registrovaný: 28 jan 2008, 16:30

Re: algoritmus automatickej regulacie

Príspevok od používateľa Kamik »

sharky-no napísal:a v com mas problem? v syntaxi? alebo ako?
sak si si to celkom pekne popisal, tak tam len spravne nahod premenne a podmienky a bude to takmer to iste ako to co si napisal.
problem nieje v nicom ono to uz mam naprogramovane ale 100% funguje len prva podmienka ja to simulujem na pc vsetko takze tam si nemozem nastavit svoje vlastne napetie tam ide samo od seba takze neviem ci tie dve podmienky funguju spravne a hlavne to este musim doladit ked to napetie skoci o vela hore alebo dole tak aj regulacia sa bude musiet zvecsit alebo zmensit o viac percent a to neviem spravit
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: algoritmus automatickej regulacie

Príspevok od používateľa harrison314 »

Tvoj problem riesi derivacny regulator, upravis to asi taktu:

Kód: Vybrať všetko

last = hodnota napetia v minuej regulacii
t    = cas medzi krokmi simulacie
u - aktualne napetie
Up - pozadoane napetie

if( u == Up ) vyregulovane; // ja by som tam pridal aby podmienka latila v urcitom rozsahu , napr. +-1% Up
if( u <  Up  ) u -=  u*10% + (last -u ) /t;
f( u >  Up  )  u +=  u*10% + (last -u ) /t;
last = u;
Je to len pseioudokod , tak to ber tak, k tej derivacneu casteste vynasob nejaku vhodnou konstanu.
Kamik
Light Expert
Light Expert
Príspevky: 65
Registrovaný: 28 jan 2008, 16:30

Re: algoritmus automatickej regulacie

Príspevok od používateľa Kamik »

harrison314 napísal:Tvoj problem riesi derivacny regulator, upravis to asi taktu:

Kód: Vybrať všetko

last = hodnota napetia v minuej regulacii
t    = cas medzi krokmi simulacie
u - aktualne napetie
Up - pozadoane napetie

if( u == Up ) vyregulovane; // ja by som tam pridal aby podmienka latila v urcitom rozsahu , napr. +-1% Up
if( u <  Up  ) u -=  u*10% + (last -u ) /t;
f( u >  Up  )  u +=  u*10% + (last -u ) /t;
last = u;
Je to len pseioudokod , tak to ber tak, k tej derivacneu casteste vynasob nejaku vhodnou konstanu.
vsetko chapem len last = hodnota napetia v minuej regulacii ,t=cas medzi krokmi simulacie ako dostanem ? ja tam mam casovac ktory stale bezi a pocas menenia pozadovanej hodnoty sa meni aj vystupna hodnota ja tam ziadne kroky simulacie nemam
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: algoritmus automatickej regulacie

Príspevok od používateľa harrison314 »

tak t nahrad konstantou, ktoru ziskas empiricky

last mas dole napisane, je hodnota napetia v predchadzajucom merani
Napísať odpoveď