Variable Constant Current Supply
In the circuit you have drawn, you are missing the single one thing electronics engineer usually crave for: negative feedback.

Silicon in the real world tends to do a number of unpleasant things that we would not like it to do, like heating up, or behave in unpleasant manners.

Your circuit is quite straightforward, assuming the BJTs are ideal the current through the power device will be proportional to the current into the base of the N BJT. Your control pot should rather be a series resistor into the base, because right now you are controlling the circuit with a voltage signal, which means that the dependency is exponential, which is less than ideal.

The worst thing that can happen is due to the early effect: the current through the power device is not independent of the Vce, but rather varies with it, so it varies with the load, wheter it is resistive, or a voltage load.

If that is acceptable for your application, it is something only you can decide, depending on the inaccuracy you can accept.

Let me suggest you a rather simple topology, that can work very well, and leverages the mighty negative feedback:







simulate this circuit &ndash; Schematic created using CircuitLab

R1 needs to be small, it is called a shunt resistor. For 3 A full scale, something in the 100 mOhm range is ok.

OA1 needs to be an opamp with very low offset, and low drift in temperature if you'd like your circuit to be nice versus temperature.

R2 is the load, and that's about it.

How does this circuit work? The voltage across R1 is proportional to the current through it. The opamp will work hard to keep the plus input and the minus input at the same voltage, so if you use a 100 mOhm resistor for R1, and you provide 100 mV to the input node, you will get 1 A through R1 (and R2).

A few remarks:


The (ideal) gain of the circuit is just 1/R1, you might want to pick a 1% part for that
The power transistor needs to be able to dissipate 12 V x 3 A = 36 W, design accordingly
This circuit is not fast, at all. If you need a fast, accurate current source then it becomes somewhat trickier to design it.
OA1 needs a low offset because even 1 mV of input offset means 10 mA of output current offset.
You might want to add a resistive divider on the input node, so to use higher voltages to control the output current