Lahenduse kavandamine ja valiku ettevalmistamine
Tööstuslikus juhtimises on servokontrollerid mootorite juhtimiseks üliolulised rakendustes, mis nõuavad täpset positsioneerimist ja juhtimist. See lähenemine on eriti sobiv rakendustele, mis nõuavad mootori pöörlemise täpset juhtimist või seadmete liikumist kindlatesse asenditesse. Enne valikuprotsessi alustamist on oluline ajami juhtimise põhimõtete põhjalik mõistmine.
Peame genereerima PWM-lainekuju ja väljastama DIR-signaali. Sobiva servodraiveri mudeli (nt T3a/T3L seeria) valimine pakub märkimisväärset kulu-jõudlust. PWM-i lainekuju saab rakendada täiustatud taimerite (nt TIM1/TIM8) abil, mis toetavad täiendavat väljundit ja surnud aja juhtimist, muutes need ideaalseks H-sildade juhtimiseks. Lisaks saab koodri tagasisidesignaali saada, kasutades TIM2/TIM3/TIM4/TIM5 inkrementaalkoodri ABZ-signaali lugemiseks.
PWM lainekuju genereerimine ja servoajami algoritmi rakendamine
PWM-sagedus valitakse tavaliselt vahemikus 10–20 kHz, et vältida kuuldavat müra ja vähendada lülituskadusid. PWM-lainekuju genereerimiseks saame TIM-taimeri hõlpsalt lähtestada, kasutades cubemxi tööriista. Allpool on näide PWM-i lähtestamise koodilõigust, võttes näiteks TIM1 kanali 1:
htim1.Instance=TIM1;
htim1.Init.Prescaler=0;
htim1.Init.CounterMode=TIM_COUNTERMODE_UP;
htim1.Init.Period=8399; // Määrake PWM-i sagedus 20 kHz.
htim1.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
HAL_TIM_PWM_Init(&htim1);
TIM_OC_InitTypeDef sConfigOC;
sConfigOC.OCMode=TIM_OCMODE_PWM1;
sConfigOC.Pulse=0; // Algseks töötsükliks on seatud 0%
sConfigOC.OCPolarity=TIM_OCPOLARITY_HIGH;
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
Arutleme servojuhtimisalgoritmi rakendamise üle. Servojuhtimine põhineb tavaliselt asukoha, kiiruse ja voolu kolme-ahelaga juhtimisstrateegial. See strateegia tagab, et süsteem saab servomootorit täpselt juhtida asukoha, kiiruse ja voolu tagasiside põhjal.
PID-kontroller teostab proportsionaalset, integraalset ja tuletisjuhtimist vea arvutamise teel, et genereerida PWM-signaal. Taimeri katkestuse korral loeme koodri positsiooni, arvutame vea ja kutsume funktsiooni PID_Update, et värskendada positsiooni ja kiiruse regulaatorit. Lõpuks reguleeritakse praeguse käsu põhjal PWM-signaali töötsükkel, et saavutada servomootori täpne juhtimine.
Peamiste parameetrite reguleerimisel on vaja põhjalikult arvesse võtta süsteemi dünaamilisi omadusi, stabiilsust ja reageerimiskiiruse nõudeid:
- Positsioneerimisahela parameetrite reguleerimine: esmalt reguleerige järk-järgult Kp, kuni süsteem hakkab ilmutama kergeid võnkumisi, seejärel seadke see 60% kriitilisest väärtusest, et tagada süsteemi stabiilsus ja reageerimiskiirus.
- Kiirusahela konstruktsiooni kaalutlused: kiirusahela ribalaius on tavaliselt seatud 5–10 korda suuremaks kui asendiahela ribalaius, et tagada kiire ja täpne kiiruse reguleerimine.
- Vooluahela töötlemine: vooluahelal on tavaliselt kõige kiirem reageerimiskiirus ja enamikul juhtudel tegeleb selle töötlemisega automaatselt servokontroller.
Riist- ja tarkvara projekteerimise käigus tuleb süsteemi stabiilsuse ja töökindluse tagamiseks põhjalikult läbi mõelda ja rakendada meetmeid erinevate võimalike häireteguritega tegelemiseks. PCB projekteerimisetapis on ülioluline tagada mootori toiteallika ja signaali maanduse tõhus eraldamine, kasutades ühe-punkti maandusmeetodit. Lisaks tuleks PWM-signaaliliinide jaoks kasutada keerdpaar- või varjestatud kaableid, et parandada signaali häiretevastast{4}. Kodeerija signaalisisendi jaoks on müra välja filtreerimiseks soovitatav kasutada RC-filtriahelat (näiteks 100 Ω takisti ja 100 pF kondensaatori kombinatsiooni).
Tarkvara projekteerimisel tuleks erilist tähelepanu pöörata kodeerija näitude müra vähendamisele. Müra mõju süsteemi jõudlusele minimeerimiseks on soovitatav kasutada liikuva keskmise filtreerimisalgoritmi.
Ehitame teie servosüsteemi
