Friktionen ger alltid en acceleration i motsatt riktning av rotationen, med andra ord en retardation, det ska kompenseras med ström åt samma håll som motorn snurrar oavsett hur motorn ska accelerera.
Om du menar att man ska hjälpa motorn åt samma håll som man vill att den ska accelerera åt för att övervinna friktionen så tänker du fel.
Jag har skummat genom Richardsoninterpolering lite och hittils fattar jag ingenting men jag ska göra ett nytt försök inom kort, det hela verkar intressant.
Servomotor-styrning, PID, diverse tester
Re: Servomotor-styrning, PID, diverse tester
Som du redan märkt är strömmen att föredra att reglera på. (Första reglerloopen, strömmen)
Om du kan mäta varvtalet så kan man använda en andra reglerloop (insignal varvtal, utsignal ström-börvärde) på denna att reglera på , för att i tredje loopen (insignal position, utsignal varvtal) använda positionen, det skulle bli en bättre reglering.
För att sedan ställa in denna reglering börjar man innifrån och arbetar utåt. (reglerloop 1, reglerloop 2, reglerloop 3).
Det första man gör att att kika på signalerna, så de inte är brusiga för det gillar inte D-delen, regleringen blir felaktig med brusiga signaler.
Om du skulle ändra på PID-algoritmen, så den också tar med D-delen för att integrera på?
Som du säkert redan märkt är D-delen en fördel, så länge som den filtreras på rätt sätt. Det bästa ska vara ett 2-poligt filter, dock har jag inte kodexempel på ett sådant.
För att få fram reglerparametrarna:
Harmoniska balansmetoden... läs om denna på nätet.
Du kan också framkoppla Bör-värde med en funktion till en framräknad (bias), så kommer du ungefär halvera över/underslängen på regleringen.
Om du kanske märkt så är I-delen bara för att få ett noll-reglerfel, denna del är långsam (instabilt system) och denna kan man med framkoppling plocka bort del av.
Parametrar:
Gain=2.625 ggr (Processförstärkning)
Ti=20.5 s (troligen 1/0.0488 = 20.49)
Td=15.75 s
Framkoppling: (för varvtalsreglering, inte aktuellt vid positionsregleringen)
Framkoppling= f(Bör), kan vara en tabell där du lägger in värden som ger de olika varvtalen.
Variabelräkning:
Err = (Bör - Är) * Gain
D = (Err - Err_old) * Td
P_D=Err + D
I = I + P_D / Ti (I_del min 0 ; max 255)
Err_old = Err
Out = P_I + I + Framkoppling (Min 0; max 255)
Hoppas du fick lite tips?
D-delen ska motverka P-delen, dvs, det är nog den finessen som ni tänker på med "friktion"-kompensering. Det får man på köpet om man lägger till en extra varvtalsreglerloop.
Den snabbaste regulatorn är PD-regulatorn, men den är inte exakt... kanske man kan använda för varvtalsreglering, jag skulle ana det, speciellt om man framkopplar utsignalen med funktion av börvärde för varvtalet.
Om du kan mäta varvtalet så kan man använda en andra reglerloop (insignal varvtal, utsignal ström-börvärde) på denna att reglera på , för att i tredje loopen (insignal position, utsignal varvtal) använda positionen, det skulle bli en bättre reglering.
För att sedan ställa in denna reglering börjar man innifrån och arbetar utåt. (reglerloop 1, reglerloop 2, reglerloop 3).
Det första man gör att att kika på signalerna, så de inte är brusiga för det gillar inte D-delen, regleringen blir felaktig med brusiga signaler.
Om du skulle ändra på PID-algoritmen, så den också tar med D-delen för att integrera på?
Som du säkert redan märkt är D-delen en fördel, så länge som den filtreras på rätt sätt. Det bästa ska vara ett 2-poligt filter, dock har jag inte kodexempel på ett sådant.
För att få fram reglerparametrarna:
Harmoniska balansmetoden... läs om denna på nätet.
Du kan också framkoppla Bör-värde med en funktion till en framräknad (bias), så kommer du ungefär halvera över/underslängen på regleringen.
Om du kanske märkt så är I-delen bara för att få ett noll-reglerfel, denna del är långsam (instabilt system) och denna kan man med framkoppling plocka bort del av.
Parametrar:
Gain=2.625 ggr (Processförstärkning)
Ti=20.5 s (troligen 1/0.0488 = 20.49)
Td=15.75 s
Framkoppling: (för varvtalsreglering, inte aktuellt vid positionsregleringen)
Framkoppling= f(Bör), kan vara en tabell där du lägger in värden som ger de olika varvtalen.
Variabelräkning:
Err = (Bör - Är) * Gain
D = (Err - Err_old) * Td
P_D=Err + D
I = I + P_D / Ti (I_del min 0 ; max 255)
Err_old = Err
Out = P_I + I + Framkoppling (Min 0; max 255)
Hoppas du fick lite tips?
D-delen ska motverka P-delen, dvs, det är nog den finessen som ni tänker på med "friktion"-kompensering. Det får man på köpet om man lägger till en extra varvtalsreglerloop.
Den snabbaste regulatorn är PD-regulatorn, men den är inte exakt... kanske man kan använda för varvtalsreglering, jag skulle ana det, speciellt om man framkopplar utsignalen med funktion av börvärde för varvtalet.
Re: Servomotor-styrning, PID, diverse tester
Ett tips i all välmening, tråden ändrades senast för 5 år sen...
Re: Servomotor-styrning, PID, diverse tester
Jag såg det också efteråt, satt och sökte efter något helt annat, men reglering är alltid roligt.