Well here's how I tune a PID:
First you must understand the system you're trying to tune and understand what parts of the PID it will need. For example a Segway type robot needs no integral term, so it's just a PD constroller (0 for integral). Honestly I'm not the best on this topic, I would strongly suggest build a PID learning system like the youtube video I linked above, then use the PID front end software for the Arduino pid library.
if you want some pid tuning reading (i skimmed this and it seems pretty good)
www.omega.com/temperature/z/pdf/z115-117.pdf
Also in order to graph everything: The easiest method is to have measurements and PID output (everything) outputted like this
serial.print(val1);
serial.print(val2);
serial.print(val3);
serial.println(val4);
so it comes out like this on the serial window for arduino:
val1, val2, val3, val4
val1, val2, val3, val4
val1, val2, val3, val4
Now copy the section that you want (it can be thousands of outputs) and press Ctrl C (right clicking won't give u option to copy it). Now paste all those readings in a text file and change the file extension to "new text file.csv".
You'll now be able to open it in excel and graph all the data.
I would think a boost would be somewhat proportional for when it turns on and any impulse loads. Integral to get to target voltage when there's a constant load. And possibly some derivative in case the load changes rapidly (limit overshoot).
---------- Post added at 16:31 ---------- Previous post was at 16:28 ----------
also fyi this forum is on my spam email and I probably won't see replies. If you need additional help leave a comment on my site and i'll come back here. Just say "hey come to this url" and i won't approve the comment, but i'll come back.
edit: I've had profs tell me that there are methods to tuning a PID, but most professionals end up spending alot of time just tweaking and playing around with the PID tunings. Have potentiometers so that you can edit the tunings while the program is running
so for example if you want a pot edit a variable from 0-10: 10*analogRead(potpin)/1023.;