PD Control on the Nomad 200

Josh Kline's solution to short assignment 3, problem 3.
Graphs made with gnuplot. Use command "plot 'output' with lines".
For screen captures use import

Part 1. Proportional Control.

Goal: Find max gain that will over shoot, but have not further oscillations.
MAX_SPEED is 1000
DELAY is 1.5

GAIN = 0.65

The following two screen shots depict different behavior of the robot under the same conditions. One demonstrates the desired results, the other does not.
graph of robot position vs time
graph of robot position vs time
By repeated trials I was able to reproduce both results. The following trial barely overshot at all.
graph of robot position vs time

Gain = 0.50

Consistent results show the robot does not overshoot at all.
graph of robot position vs time

Solution: Gain = 0.60

I am going to choose a gain of 0.60 as my solution. Even though the robot sometimes displayed each of the three behavior types (oscillation, overshoot once , no-overshoot) it displayed the desired result (overshoot once), the majority of the time, much more so than either 0.65 or 0.55. Graphs of the three behaviors are below. I blame the irregularity of behavior on the high delay value.
graph of robot position vs time - overshoot once
graph of robot position vs time - oscillate
graph of robot position vs time - no overshoot

Part 2: Implementing Proportional Derivative control.

Goal: "Identify the parameters that give you maximum performance (i.e., minimum rise time) with no overshoot or oscillation."
MAX_SPEED is 1000
DELAY is 1.5

The best values appear to be
Setting GAIN to 0.5
Setting KD to 0.1
Here are three sample graphs.
graph of robot position vs time - best PD performance
graph of robot position vs time - best PD performance
graph of robot position vs time - best PD performance

Part 3a: Playing with delay.

Using the settings found in part two and changing the delay.

Delay of 3.0 oscillates and converges.
graph of robot position vs time - delay of 3.0
Delay of 3.5 also converges bu takes much longer to do so.
Delay of 4.0 oscillates and diverges.
graph of robot position vs time - delay of 4.0
Long term behavior of delay = 4.0. This may not be absolutly divergent but it looks at least unstable. Delay of 3.0 oscillates and converges.
graph of robot position vs time - delay of 4.0 long term

Part3b: Changing the Set Point

My program appeared not to change behavior drastically based on the location of the set point.
MAX_SPEED is 1000
DELAY is 1.5
Setting GAIN to 0.5
Setting KD to 0.1
Setting DELAY to 1.5
Setting x_sp to 2000
Connected to robot.
Here is an example with the set point at 2000.
graph of robot position vs time - set point 2000
An example run with the set point at -3000.
graph of robot position vs time - set point -3000


Copyright 2003 Josh Kline

Valid XHTML 1.1!