|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
|||||
|
|||||
|
Re: PID control help
Yes.
|
|
#2
|
||||
|
||||
|
Re: PID control help
Motor1 is controlled by a PID whose setpoint is the driver's position command and whose process variable is position feedback from encoder1. The output of this PID is limited to 90% to allow for motor tolerances as suggested by Steve in post#9. Motor2 is controlled by a closed-loop controller whose output is the sum of two terms: 1) the output from an Integral controller whose setpoint is encoder1 position and whose process variable is encoder2 position, and |
|
#3
|
|||||
|
|||||
|
Re: PID control help
Quote:
|
|
#4
|
||||
|
||||
|
Re: PID control help
Quote:
The problem I see with that is the transient response to large step changes in driver position command. Motor1 responds immediately to the large change, but Motor2's controller must wait for the error to form between encoder1 & encoder2. Granted, you could crank the P gain way up for Motor2, but it's not immediately clear how well that would work in practice. |
|
#5
|
|||||
|
|||||
|
Re: PID control help
Quote:
Yeah, that could definitely cause some problems. Depending on the system you might be able to tune it to react correctly, but it could difficult. The more you limit the speed of motor1 the better the system would react I'd imagine. The more I think about it, the more I like your original proposal. I wish I had a system I could try it out on. Last edited by notmattlythgoe : 11-02-2015 at 13:09. |
|
#6
|
|||
|
|||
|
Re: PID control help
Quote:
What Ether suggested is basically to send the same command to both motors simultaneously, and use the Integrated error between the positions to fine tune motor2. The Integrated error has high DC gain but slow "step response". The settled response for both systems should be similar, but the match while changing position should be much better with Ether's system. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|