What happens at V_i == vbi?
I'm looking at the following lines in the code:
if (V_i != vbi ) begin
j_photo = jphoto_max * (1 / tanh((V_i - vbi)/2/$vt) - 2*$vt/(V_i - vbi)); //calculate collection current
end
else begin
j_photo = 0; //fill the undefined point
end
(side comment: it would be nice to indent the if and else blocks)
I wonder: what really happens at V_i == vbi, and what happens in the limit as V_i -> vbi from either side?
Usually, in compact modeling, I tell people not to use == (or !=), because it is likely to produce incorrect derivatives.
In this model, at V_i == vbi, j_photo == 0, and d(j_photo)/dV_i == 0. However, I suspect that for V_i = vbi+epsilon, the derivative is not zero.
Is there some way to use a Taylor series around vbi to get a smooth derivative?
0 Like 0 Dislike
Xingshu Sun @ on
Hi Dr. Coram
Thanks for your comments.
At V_i == vbi, j_photo is zero from either side if you use Taylor series. d(j_photo)/d(V_i) is 1/3 at V_i = vbi as well if use Taylor series.
So I'm actually using Taylor series here to make sure it is continuous.
let me know if I answer your question..
Reply Report abuse
Please login to answer the question.