Matlab, modelling a 555.

Thread Starter

THCynical

Joined May 5, 2014
26
Stuck again,

The question is quite long, I've only included the part I need help with.
I have to model a 555 and produce this graph
upload_2014-12-9_10-59-17.pngupload_2014-12-9_10-59-33.png
I don't know how to alternate between the two formula.
I have written in English

upload_2014-12-9_10-57-11.png
 

Thread Starter

THCynical

Joined May 5, 2014
26
clc
clear

t=1:1:100; %time

R1=1000; %temp presets
R2=1000;
C1=0.000001;

Vcc=10;
Vi=0; %Vi should vary
Vf=10; %Vf should vary

f = 1.44/((R1+(2*R2)).*C1); %frequencey
d = (R1+R2)/(R1+2*R2); %duty cycle

VCcha = Vf.^(1-exp(-t./(R1+R2)*C1)); %Vc charge
VCdis = Vi.*exp(-t/R2*C1); %Vc discharge

This is triangle
%while time passes
%1 VC = VCcha, until VCcha reaches ((2/3)*Vcc) THEN 2
%2 VC = VCdis, intil VCdis reaches ((2/3)*Vcc) THEN 1
%end

this is square
%if VC =((2/3)*Vcc) then Vo=Vcc
%esleif VC=((1/3)*Vcc) then Vo=0
%end

fprintf('Frequencey = %g Hz\n',f);
fprintf('Duty Cycle = %g \n',d);

plot(t,VCcha,t,VCdis)
title('555 Astable Multivibrator')
xlabel('Voltage(V)')
ylabel('Time(s)')
grid on
 

Thread Starter

THCynical

Joined May 5, 2014
26
Cheers WBahn, there's more to this than i thought, i will spend another while at it, but the problem relates to time (t)

I believe it needs to be a while loop, switching between charging and discharging, If statements setting conditions.

But time for the dis/charge equations needs to reset to zero at each change for the equations to work.

Some of my problem also, is just figuring out the syntax needed. as i say ill try put together something functional and report back.
 

WBahn

Joined Mar 31, 2012
32,823
What you are basically writing is a simulator, albeit a very simple one. So your main loop does nothing except increment time by some small amount and you keep track of the voltages at the key nodes and what state you are in. Then in each increment you calculate how much current is flowing and how much the node voltages change and then whether the state changes and you update all of those before moving on to the next time increment.
 
Top