Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 04 27, 15:18. Visos datos yra GMT + 2 valandos.
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
Sveiki, gal kas turit pasirase PID temperaturos valdymui. Sildau su sildytuvu, sildytuva jyngines rele. Gal kam negaila pasidalinti isbandytu kodu. Man reikia inkubatoriui
[url]
https://en.wikipedia.org/wiki/PID_controller
[/url]
Dariau pagal šitą. Ten pabaigoje diskretus aprašytas "Pseudocode". Veikia padoriai.
Jei temperatūrą reguliuosi, ir tik įjungt išjungt, tai neigiamo signalo turi nebūti.
Ir pervesk bent į integer, su realiais daug vietos užima ir lėtai veikia.
Man į Atmega16 netilpo.
[url]
https://en.wikipedia.org/wiki/PID_controller
[/url]
Dariau pagal šitą. Ten pabaigoje diskretus aprašytas "Pseudocode". Veikia padoriai.
Jei temperatūrą reguliuosi, ir tik įjungt išjungt, tai neigiamo signalo turi nebūti.
Ir pervesk bent į integer, su realiais daug vietos užima ir lėtai veikia.
Man į Atmega16 netilpo.
gal galite pasidinti savo kodu? Pas manes stm32f103 tai resursu turi nepritrukti
Pas mane objektiniu prašyta:
Pido klasė atrodo taip:
Kodas:
class kitas_pidas{
private :
char startas;
int Kp;
int Ki;
int Kd;
int klaida_pries;
int integralas;
int dt;
int klaida;
int de;
int rezultatas ;
public:
kitas_pidas();
void _reguliavimas();
void _startas (char a){startas = a;}
char _busena () {return startas;}
Sveiki, gal kas turit pasirase PID temperaturos valdymui. Sildau su sildytuvu, sildytuva jyngines rele. Gal kam negaila pasidalinti isbandytu kodu. Man reikia inkubatoriui
iš tikrųjų, o kodėl inkubatoriui prireikė PID'o temperatūros valdymui? kokia histerezė? ar svarbus temperatūros kilimo / kritimo greitis?
kitimo greitis nera svarbus, man svarbu kad tuo tiksliau islaikytu nustatyta temperatura. pvz . reik kad butu 37,8 laipsnio, 39 jau labai blogai, 36 irgi ne ka geriau. norisi kad svyravimas butu tik 37,2 - 38,5 kazkur. pwz man idomu, kad su sildytuvu pasildai iki 37,8, sildytuvas atsijungia, bet jis dar siltas, vis dar sildo ora. reiketu sita kazkaip kompensuoti.
pagalvojau kad PID tiktu, jei netinka buciau dekingas kad uzvestumet ant tinkamesnio kelio?
Pas patį bus tokie niuansai:
Kur stovės temperatūros daviklis. Oras ne koks laidininkas šilumai.
Kaitinimo elementas turi inerciją. Arti kaitinimo elemento gali būti per karšta, nors daviklis per atstumą rodys normalią temperatūrą.
Pas patį bus tokie niuansai:
Kur stovės temperatūros daviklis. Oras ne koks laidininkas šilumai.
Kaitinimo elementas turi inerciją. Arti kaitinimo elemento gali būti per karšta, nors daviklis per atstumą rodys normalią temperatūrą.
oras bus maisomas ventiliatoriaus pagalba. temperatura turetu buti mazdaug vienoda visoje dezeje. uzsiakes esu keleta skirtingu davikliu, bus matyt kuris geriau ir tiksliau rodys
blah labai gera nuorodą pateikė.
Jei nori tikslumo, statyk ne relę, o optosemistorių ir kaitinimą valdyk kaip lėtą PWM (pvz 2s periodo). Tada ir PID teorija tiks.
Padėkit su PID'o matematika. Noriu patyrinėti greitaveiką 8 bitų mikrovaldiklyje.
Yra DC variklis su incrementiniu encoderiu. Aš noriu valdyti variklį keičiant jo pozicijos skaičių (galim sakyti apskritimo laipsnius) į PWM duty cycle. Kuo arčiau REAL_POSITION link NEED_POSITION (kuo mažesnis erroras), tuo mažesnis duty cycle. REAL_POSITION tapus lygiai NEED_POSITION, duty cycle tampa nulis.
Kadangi visose PID formulėse dalyvauja laipsniai, tai ir u(t) gauname laipsnius. O kaip tai konvertuoti į duty cycle?
u(t) = P (t) + I (t) + D (t);
P (t) = Kp * e (t);
I (t) = I (t — 1) + Ki * e (t);
D (t) = Kd * {e (t) — e (t — 1)};
Neprokatit, variklis turi inercija, tad stabdant varikli ta inercija reikes kompensuoti priesingo zenklo srove, t.y. reikes kazkiek "apmokyti".
Mačiau aš tą inerciją nuėmus įtampą, pusė skritulio tuščias apvažiuoja. O gal galėtum padėti pritempti tuos laipsnius iki duty cycle, noriu pažiūrėti kaip neveikia