It looks like you have made an error in the mathematics.
Without deriving your equations from scratch, I note that you use a vector form for the target velocity.
v_t=[vx,vy,vz] %m/s
In fact, the true velocity of the target is the Euclidean norm of that vector, thus sqrt(vx^2 + vy^2 + vz^2). Yes, you can break it down in to vector components, thus velocities in x,y,z as you have done, but the overall velocity is the norm of the vector.
Likewise, you write these lines:
v_c=150 %m/s
a=(v_c.^2-v_t.^2);
So v_c is the chaser velocity, which is a SCALAR variable, not a vector. When you add or subtract a scalar and a vector, the result is to implicitly expand the scalar to the same size as the vector. What then is a? I'll expand it, to show a as the VECTOR:
a = [150^2 - vx^2, 150^2 - vy^2, 150^2 - vz^2]
So what you did is implicitly assume the chase vehicle is moving with a velocity vector of [150 150 150], thus a velocity of 150 m/s in EACH of x,y, and z. In effect, the chase vehicle is moving with a true velocity of 259.8 m/s, NOT 150 m/s.
norm([150 150 150])
ans =
259.807621135332
And that is a fundamental problem in your mathematics, though there may be other problems. I won't bother to rederive your equations, because it is clear this is an error. I'll let you do the mathematics to fix the problem, since this is your task to do in the end.