The goal of this project was to apply bidirectional position and velocity control to the motor from Project 4. A PID controller was implemented in MATLAB Simulink RealTime and run on a XPC target. A potentiometer was used as the position and velocity control knob.
For details, here is a link to my Project 5 report:
public google drive
|
Test Setup |
Here are the results for both position control and velocity control with response to a PRBS input:
|
Position Control |
|
Velocity Control
|
As you can tell, the position control was better than the velocity control, but overall, both worked well. When the knob was used as an input, it would fight you if you tired to change the commanded position or velocity, which was cool. The report linked above has a lot more details.
The "real" goal of the project was to use the systemID parameters discovered in project 4 in an LQR/servo controller, while PID was a backup if you couldn't get LQR working. I simply didn't have the time to implement an LQR-type controller, and I don't think anyone in the class managed to this year.
Helpful resources:
Matlab/simulink documentation
http://en.wikipedia.org/wiki/PID_controller (for help on tuning PID gains)
No comments:
Post a Comment