diff options
-rw-r--r-- | plugins/ZamTube/triode.cpp | 5 | ||||
-rw-r--r-- | plugins/ZamTube/triode.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/plugins/ZamTube/triode.cpp b/plugins/ZamTube/triode.cpp index ac5ff6e..a1f9af2 100644 --- a/plugins/ZamTube/triode.cpp +++ b/plugins/ZamTube/triode.cpp @@ -6,18 +6,19 @@ using std::abs; #define DUMP(x) x T Triode::compute(T a, T R, T Vg, T Vk) { - T VakGuess = 100.; T Vgk = Vg - Vk; + T VakGuess = -mu * Vgk; T Vak = VakGuess; int iteration = 0; T err = 1e6; + T b; for (iteration = 0; (fabs(err)/fabs(Vak) > EPSILON) && (iteration <= ITER); iteration++){ VakGuess = iterateNewtonRaphson(Vak, TOLERANCE, Vgk, a, R); err = Vak - VakGuess; Vak = VakGuess; } - T b = Vak - R*getIa(Vgk, Vak); + b = Vak - R*getIa(Vgk, Vak); //printf("Vgate=%f Vk=%f Vgk=%f b=%f\n", Vgate, Vk, Vgk, b); return b; diff --git a/plugins/ZamTube/triode.h b/plugins/ZamTube/triode.h index 2f678a0..9db4d8f 100644 --- a/plugins/ZamTube/triode.h +++ b/plugins/ZamTube/triode.h @@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include <math.h> -#define EPSILON 1e-9 +#define EPSILON 1e-8 #define ITER 50 #define TOLERANCE 1e-6 |