Timeline for Using a PID to control rotation
Current License: CC BY-SA 3.0
20 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
S May 4, 2020 at 8:03 | history | suggested | Rodrigo de Azevedo |
Added tags.
|
|
May 4, 2020 at 3:20 | review | Suggested edits | |||
S May 4, 2020 at 8:03 | |||||
S Mar 1, 2017 at 2:14 | history | suggested | DiaperHands | CC BY-SA 3.0 |
Update Hyperlinks
|
Feb 28, 2017 at 19:36 | review | Suggested edits | |||
S Mar 1, 2017 at 2:14 | |||||
Feb 28, 2017 at 0:47 | vote | accept | Joel Graff | ||
Feb 28, 2017 at 0:41 | comment | added | Joel Graff | I had initially assumed that, but I checked the original code and that's how the authors programmed it. I noticed they divided the output of their velocity PIDs by the acceleration due to gravity, but the angle PID computes the error using the euler angle as the current value. So it seems to me the intent was to take an angle for input and output an acceleration. | |
Feb 27, 2017 at 20:50 | answer | added | pshlady | timeline score: 2 | |
Feb 27, 2017 at 12:17 | comment | added | SF. | Note, if your input to PID is angle, your output will be target angular velocity, not target torque / angular acceleration. If you drive the torque with the output, you're doing DPD' (differential-proportional-differential 2nd degree) controller, not PID (proportional, integral, differential). To get the torque needed, you'll need to get the differential of your output, or pass it through another PID. | |
Feb 26, 2017 at 22:18 | comment | added | joojaa | A PD controller behaves like a spring damper, which can be tuned not to overshoot. In this case it has to be atleast a PD controller or it will oscillate. However due to the nature of this problem i dont think a PID is at all apropriate some model based controller would be much better. | |
Feb 26, 2017 at 22:01 | history | edited | Joel Graff | CC BY-SA 3.0 |
deleted 98 characters in body
|
Feb 26, 2017 at 21:51 | comment | added | nibot | Does your d gain have the right sign? | |
Feb 26, 2017 at 21:50 | comment | added | nibot | Could you embed the gif? I can't see it. | |
Feb 26, 2017 at 21:35 | comment | added | Joel Graff | Anyway, as I've said, I'm pretty sure this isn't a tuning issue. A simple 1.0 P controller results in the behavior in the gif link I shared. Adding any I or D causes it to oscillate out of control. Adjusting the P up or down makes it oscillate faster or slower, but no more or less. I could be wrong, but this looks like a physics problem, not a PID tuning problem. | |
Feb 26, 2017 at 21:34 | comment | added | Joel Graff | I updated to add a link to a gif that shows the drone oscillating, FWIW. (had to mutilate it a bit b/c I hit my 2-link limit), | |
Feb 26, 2017 at 21:34 | history | edited | Joel Graff | CC BY-SA 3.0 |
added 124 characters in body
|
Feb 26, 2017 at 21:32 | comment | added | Joel Graff | Using a genetic algorithm. I'm pretty sure it's not a tuning problem. The very nature of the PID is what's working against me. That is, so long as the PID hasn't reached it's set point, it continues to apply angular acceleration (in this case). So by the time it's reached it, it has applied way to much to be bale to correct quickly. In other words, it needs to reverse and start decreasing angular acceleration way before it reaches the set point. Much like trying to pilot a spaceship in a vaccuum. | |
Feb 26, 2017 at 21:10 | comment | added | Gürkan Çetin | Apparently, You need to tune the control gains. I would Start with p, then d and finally I gains. There are wonderful answers at robotics stack exchange site, which also include external links to web sites for theoretical background. | |
Feb 26, 2017 at 19:01 | comment | added | ericksonla | It sounds like it could very likely just be a tuning problem. How did you determine your constants? | |
Feb 26, 2017 at 18:40 | review | First posts | |||
Feb 27, 2017 at 6:58 | |||||
Feb 26, 2017 at 18:36 | history | asked | Joel Graff | CC BY-SA 3.0 |