Diode - RC circuit differential equation

In summary, the conversation discusses the process of deriving a differential equation and solving it using Matlab. The individual asking for help has made progress but is experiencing issues with their code and the resulting graph. They receive advice on how to debug their code and make adjustments to improve the accuracy of their results. Eventually, they are able to successfully solve the equation and thank the expert for their assistance.
  • #1
Dethoven
13
0

Homework Statement


ShgElw8.png

I'm having difficulty deriving the differential equation, this is what I have so far. In order to solve it, I will be using Matlab, and I'll be using the equation dy/dx ≈ (y(x + dx) - y(x))/dx. Is my derivation correct so far?

Homework Equations


In picture.

The Attempt at a Solution


OxOHvq0.jpg

If it's correct, do I just need to make DVout/dt the subject, then apply the approx. derivative equation to then calculate the values?
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
You're on the right path, but ffter you've made your substitution for the derivative you'll want to isolate the "new" value ##v_{out}(t + dt)## so that you can calculate the new ##v_{out}## from its current value over the timestep dt.
 
  • #3
gneill said:
You're on the right path, but ffter you've made your substitution for the derivative you'll want to isolate the "new" value ##v_{out}(t + dt)## so that you can calculate the new ##v_{out}## from its current value over the timestep dt.
I've updated it as follows:
t0RN7wl.jpg


The problem I've had with this is that when I write a MATLAB program to solve it, and display it as a graph, it definitely doesn't seem correct. For some reason, the voltages are incredibly small, i.e. 2x10^-16.
 

Attachments

  • 20160420_135158.jpg
    20160420_135158.jpg
    40.1 KB · Views: 454
Last edited by a moderator:
  • #4
Your final expression for ##v_{out}(t + dt)## looks fine. Must be something to do with how you are doing the integration in MATLAB. So you'll be looking at debugging that. Maybe running for just a few timesteps and printing out the various variable values will help.

I'm not very familiar with MATLAB, but I get reasonable results using the same expression in MathCad.
 
  • #5
gneill said:
Your final expression for ##v_{out}(t + dt)## looks fine. Must be something to do with how you are doing the integration in MATLAB. So you'll be looking at debugging that. Maybe running for just a few timesteps and printing out the various variable values will help.

I'm not very familiar with MATLAB, but I get reasonable results using the same expression in MathCad.
If I post the code, would you be able to see where I'm going wrong if possible? The MATLAB language is rather basic, or at least what I've wrote.
 
  • #6
You can post the code (be sure to use code ... \code tags around it to preserve formatting). But you really should get some experience with debugging your own code.
 
  • #7
gneill said:
You can post the code (be sure to use code ... \code tags around it to preserve formatting). But you really should get some experience with debugging your own code.
I agree, I have tried debugging it although I honestly can't see what's wrong.

Code:
%Variables and constants
C = 0.001;
R = 10;
V0 = 2;
f = 50;
I = 0.000001;
dt = 0.01;
t = 0:dt:2;

Vin = V0 * sin(2*pi*f*t); %Input voltage
Vout(1) = 0; %Initial Vout

for n = 1:length(Vin) - 1,
    Vout(n + 1) = Vout(n) - ((Vout(n) * dt) / (R * C)) + ((I * dt / C) * (exp((Vin(n) - Vout(n) ) / 0.0259) - 1));
end

plot(t, Vin, 'k--', t, Vout, 'k')
ylim([0 2]); %Limits y-axis
xlabel('time');
ylabel('voltages');
 
  • #8
Check your timestep size. How does it compare to the period of the input waveform? What's a reasonable total time to cover, say, two full periods?
 
  • #9
gneill said:
Check your timestep size. How does it compare to the period of the input waveform? What's a reasonable total time to cover, say, two full periods?
I've now tidied it up, but the graph doesn't look promising. The Vin graph is fine, but the Vout isn't good at all, Vout does get quite large.
This is the new code:
Code:
%Variables and constants
C = 0.001;
R = 10;
V0 = 2;
f = 50;
I = 0.000001;
dt = 0.001;
t = 0:dt:0.08;

Vin = V0 * sin(2*pi*f*t); %Input voltage
Vout(1) = 0; %Initial Vout

for n = 1:length(Vin) - 1,
    Vout(n + 1) = Vout(n) - ((Vout(n) * dt) / (R * C)) + ((I * dt / C) * (exp((Vin(n) - Vout(n) ) / 0.0259) - 1));
end

plot(t, Vin, 'k--', t, Vout, 'k')
ylim([0 2.5]); %Limits y-axis
xlabel('time');
ylabel('voltages')

Here are the graphs:
YNGsIkY.png
 
  • #10
Vin should be between + and - 2 Volts, so you'll want to adjust the y-axis for its plot.

I think that your dt should be even smaller to begin with. Try something like a hundred "samples" per cycle of the input.

I see that your output voltage scale looks rather large. You'll need to find out how that happened. Try printing out the terms of the equation for a few iterations and see where they're headed.
 
  • #11
gneill said:
Vin should be between + and - 2 Volts, so you'll want to adjust the y-axis for its plot.

I think that your dt should be even smaller to begin with. Try something like a hundred "samples" per cycle of the input.

I see that your output voltage scale looks rather large. You'll need to find out how that happened. Try printing out the terms of the equation for a few iterations and see where they're headed.
Thank you very much, it is working perfectly now. I manually adjusted the scale for Vout since it was very much of the graph. Once again, thank you for your help.
 
  • #12
Glad I could help :smile:
 

FAQ: Diode - RC circuit differential equation

1. What is a diode-RC circuit differential equation?

The diode-RC circuit differential equation is a mathematical representation of the behavior of a simple circuit that contains a diode and a resistor-capacitor (RC) network. It describes the relationship between the voltage across the diode and the current flowing through it, taking into account the effects of the RC network.

2. How is the diode-RC circuit differential equation derived?

The diode-RC circuit differential equation is derived using Kirchhoff's circuit laws and the diode equation, which relates the current through a diode to the voltage across it. By combining these equations and taking into account the properties of the RC network, the differential equation can be derived.

3. What are the applications of the diode-RC circuit differential equation?

The diode-RC circuit differential equation is commonly used in the analysis and design of electronic circuits, particularly those involving diodes and RC networks. It can help predict the behavior of the circuit and determine the values of components needed to achieve a desired outcome.

4. What are the assumptions made in the diode-RC circuit differential equation?

The diode-RC circuit differential equation assumes that the diode is an ideal component with no resistance, and that the RC network is linear and has no parasitic effects. It also assumes that the circuit is in steady-state and that the diode is operating in the forward-biased region.

5. Can the diode-RC circuit differential equation be solved analytically?

Yes, the diode-RC circuit differential equation can be solved analytically using techniques such as separation of variables or Laplace transforms. However, in some cases, numerical methods may be necessary to obtain a solution due to the non-linear nature of the equation.

Similar threads

Replies
2
Views
2K
Replies
16
Views
1K
Replies
2
Views
1K
Replies
28
Views
2K
Replies
8
Views
2K
Replies
46
Views
9K
Replies
16
Views
2K
Replies
4
Views
3K
Replies
4
Views
2K
Back
Top