The R4/R5 divider is crucial to the operation of the circuit as I designed it.
To do what you need to do, you need a circuit that does two things: First, it has the right gain. Second, it generates the correct offset. It is difficult to do this in one stage because the two things interact. If you adjust the gain to span the correct range (in this case, 0 to 3V, i. e. Δ=3V), that affects the offset by the same amount.
If you make both gain and offset independently adjustable with pots, it takes an iterative process of tweaking the gain, then the offset, then the gain again, then the offset, back and forth, almost forever, because the process doesn't converge very fast.
So here is what I did. I made the gain fixed. The goal is to have V(meter) change by 3V as the supply current goes from zero to 30A. Based on the equation, V(out) = 2.5 +12.5m*I(R1), Δ at V(out) = V(out)@30A -V(out)@0A= 2.5+0.0125*30 - 2.5V =2.875-2.5V= 0.375V
In order to create a Δ of 0 to 3V at V(meter), the gain from V(out) to V(meter) must be V(meter)/Δ(out) = 3V/0.375V = 8.
In order to generate the correct offset at V(meter) starting from the nominal output voltage of a TL431 of 2.495V, what does the inverting gain from V4 to the output of U1 have to be?
Well, we calculated that the gain from V(out) to V(meter) has to be eight, so that will effectively amplify the built-in 2.5V offset inside the sensor by 8 meaning that it would turn that to 8*2.5 = 20V. So if we start with 2.495V, applied to the inverting input of U2 via R2 and R3, we want to pick R3/R2 such that 2.495V becomes -20V at the output of U2. If we choose R2=10K, then R3 = 10000* 20/2.495 = 80160, which is where 80.6K came from...
So if we use that R3, what is the non-inverting gain of U1 starting from the unnamed node at its non-inverting input? It is 1+R3/R2 = 1+ 80600/10000 = 9.06.
Whoa, remember that we need a gain of 8 between V(out) and V(meter), but the amp we just built has a gain of 9.06. It solved the offset problem, but created a new one...
If we put a resistive divider R4/R5 between V(out) and the non-inverting input, then we can make the overall gain 8. To to that, the attenuation in the R4/R5 divider would have to be 8/9.06 = 0.883. With the values shown, 1960/(249+1960) = 0.887, which is real close.
Now, you have a problem with not showing zero on the cheapie Chinese DVM when the supply current is zero. That is not the fault of the design above. I think it is happening for an entirely different reason. First, I modify the simulation to show the error between V(meter) and an ideal circuit, which is shown as the new behavioral source B2 whose V=0.1*I(R1).
If I plot the error = V(meter)-V(ideal), you can see a couple of problems. First, the slope is a little off, but the glaring problem is the non-linearity down near 0A (0V on the x-axis).
That huge non-linearity is caused by the inability of U2 to pull its output pin all the way to zero V. If we temporarily apply a negative supply of -1V to U2 (I know you dont want to do this in real life, but we can do anything we want in simulation), then that gets rid of the glitch.
Go to your breadboard with the values of Rs I showed in post #2, and try the circuit at 3A power supply current and 30A. I expect that the meter will read very close to 0.30 and 3.00, but will not read 0.00 when the supply is shut off. If this happens, then that will prove that the problem of not nulling at zero A is related to amplifier's intrinsic non-linearity as it tries to pull its output pin to exactly the same voltage as is on its V- pin.
So I am going to reduce the error by using your new measured values for the HX50 offset, and the actual TL431 voltage.
I found non 1% values for R5 and R3 by trial and error which simultaneously set the overall gain and the offset to produce only a tiny error. This is what the values should be if you can produce exact values by putting 1% resistors in series...
So, now let us fix the inability of the amplifier to pull all the way to ground when its V- supply is also tied to ground. Try this: