PID controller of a known system model
For a LTI system , knowing more than one of the following descriptions turns out to be redundant  (since one can be converted to another ):


Differential equation(s)
Impulse response 
Transfer Function


When designing a controller , the typical problem is to get one that reaches multiple performance requirements - eg max. overshoot , settling time, bandwidth , gain margin , phase margin, etc. The problem is further complicated when there are transport delays or the system is not minimum phase . Frequently a PI or PD controller is more appropriate than a PID.

Given a particular controller, it is easy to verify that it meets the requirements . The reverse procedure (find a suitable controller) is more complicated - and it is called tuning . There are several methods available , such as Ziegler - Nichols , Cohen - Coon, Fuzzy -logic based ... Tools like Matlab can also help - with a variety of pre-built scripts . Of course , starting with the assumption that you already know your plant (1, 2 or 3 above) . Otherwise , you have to use System Identification methods.