Disclaimer: I'm by no means an electronics engineer, but do dabble in it from time to time; although not enough to even consider myself a hobbyist.
I am at a company right now and am designing a custom test rig to simulate very large machine PLC controls. Part of the design is to use a small DC motor to simulate the operation of the real AC motor used on the machine. Attempting to keep the cost as low as possible, I decided to spin my own, customized, bare bones circuit to create the operation that I need.
I am attempting to use a 4-20mA signal from the PLC to control the DC motor voltage level from ~0 to 18V, corresponding to a minimum RPM used for jog speed, and a maximum RPM used for run speed. The full load current of the motor is 1.5A. I have sketched up this circuit but do not have the parts to test it and would like to receive input before I do purchase parts as again I am not an electronics engineer and if I'm missing or not doing something that is critical, I'd like to be able to adjust before.
I attempted to simulate it with discrete components in MultiSim and found that the final output buffer had a minimum output voltage of 3.14 V. Without knowing a better way to level shift that for a low cost, I decided to whack in a high forward voltage drop diode to null the minimum voltage to effectively zero. I can already here Dave, and probably others screaming bloody murder

! Although if there is a better more efficient, and effective way to null this voltage please say so!
Thanks if you got this far and I appreciate any help ahead of time.
Sincerely, struggling controls engineer!