clc;
%clear;

%Read values from spreadsheet



alpha = (resistance)./(2.*inductance_needed);

beta = sqrt(1./(inductance_needed.*capacitance)-resistance.^2 ./(4.*inductance_needed.^2));

%Considering stage 1 only
%n = 1000;
fs = 25; %Number of firing cycles
%t = linspace(0, fs.*firing_period(1)*10^-6, n);

%I = (vc_initial(1)./(beta(1)*(inductance_needed(1)))).*exp(-alpha(1).*t).*sin(beta(1).*t);
%Vc = vc_initial(1).*exp(-alpha(1).*t).*cos(beta(1).*t); %Capacitor voltage


n = 100; %Samples per stage
t = zeros([1 n*fs]);
I = zeros([1 n*fs]);
Vc = zeros([1 n*fs]);
V0 = zeros([1 fs]);
V0(1) = vc_initial(1);
prev_start = 1;
prev_end = n;

for i=1:fs
    start_i = (i-1)*n + 1;
    end_i = i*n;

    t_stage = linspace(0, firing_period(1)*10^-6, n);
    I_stage = (V0(i)./(beta(1)*(inductance_needed(1)))).*exp(-alpha(1).*t).*sin(beta(1).*t);
    Vc_stage = V0(i).*exp(-alpha(1).*t).*cos(beta(1).*t); %Capacitor voltage
    %t(start_i:end_i) = t(prev_end)+t_stage;
    %I(start_i:end_i) = I_stage;

    new_t = t(prev_end)+t_stage;
    t = a(t, new_t, start_i, end_i);
    I = a(I, I_stage, start_i, end_i);
    Vc = a(Vc, Vc_stage, start_i, end_i);
    if i < 25
        V0(i+1) = Vc(end_i-n/2);
    end

    prev_start = start_i;
    prev_end = end_i;
end


plot (t, Vc)