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ť ?
algoritmus automatickej regulacie
Re: algoritmus automatickej regulacie
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.
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.
Re: algoritmus automatickej regulacie
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 spravitsharky-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.
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: algoritmus automatickej regulacie
Tvoj problem riesi derivacny regulator, upravis to asi taktu:
Je to len pseioudokod , tak to ber tak, k tej derivacneu casteste vynasob nejaku vhodnou konstanu.
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;
Re: algoritmus automatickej regulacie
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 nemamharrison314 napísal:Tvoj problem riesi derivacny regulator, upravis to asi taktu:
Je to len pseioudokod , tak to ber tak, k tej derivacneu casteste vynasob nejaku vhodnou konstanu.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;
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: algoritmus automatickej regulacie
tak t nahrad konstantou, ktoru ziskas empiricky
last mas dole napisane, je hodnota napetia v predchadzajucom merani
last mas dole napisane, je hodnota napetia v predchadzajucom merani