Graphs set to zero in a two graphs plot

7 次查看(过去 30 天)

Hello,

When I run this code with non-zero values for Ieq and Req I just get the second function (I2) on the graph. I don't know why the first function (I1) in constantly zero despite the fact that it shouldn't be so. Vd_vec is equal to 0:0.001:Ieq*Req.

    function [ Vd,Id ] = solve_diode_graph( Ieq,Req,Vd_vec )
     V = Vd_vec;
     I1 = Ieq - (V/Req);
     I2 = (10^-12)*(exp(V/0.026)-1); 
     figure();
     plot(V, I1, V, I2);
     legend('Id1', 'Id2')
     Vd = [ ];
     Id = [ ];
    end

回答(1 个)

KL
KL 2017-5-12
编辑:KL 2017-5-12
if I1 is zero, it comes simply from the line I1 = Ieq - (V/Req);, which are your function inputs.
Nevertheless, according to your equations, I1 should start from Ieq and eventually would become zero in its final timestep since V(end) = Ieq*Req.
  3 个评论
KL
KL 2017-5-12
that's because of the scale, since your Ieq = 1, I1 starts from 1 and meets zero in the end which you cannot see on the graph because I2 starts from 0 and grows exponentially. use the right side y axis with proper limits and you'll see both on the same graph
KL
KL 2017-5-12
or a subplot
figure();
subplot(2,1,1)
plot(V, I1);
title('Id1')
subplot(2,1,2)
plot(V, I2)
title('Id2')

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by