# Transient Analysis with Matlab

Considering the RC Circuit (also called RC network) shown in this figure

we can use the Kirchhoff’s current law (KCL) to write the following equation

and we can rearrange into the equation

The solution to the equation above is

where
Vm is the initial voltage across the capacitor
RC is the time constant

This solution represents the voltage across a discharging capacitor.

Now, to obtain the voltage across a charging capacitor, let us consider this figure that includes a voltage source

Again, using KCL, the equation describing the charging RC circuit is

If the capacitor is not charged initially, that is v0(t) = 0 when t = 0, then the solution to the equation above is given by

The following examples illustrate the use of Matlab for solving problems
related to RC circuits.

### Example 1 – Charging circuit

Assume that for the charging RC circuit above Vs = 10 volts and C = 10 microfarads. Plot the voltage across the capacitor if R equals 5k ohm, 10k ohms and 20k ohms. This just means that we are going to explore three time constants.

This code is one simple solution to the problem

% Define the voltage source
Vs = 10;
% Define the capacitor in the circuit
C = 10e-6;
% Define the time lapse that we're going to explore
t = 0 : 0.005 : 0.35;

% Define the resistors in each time constant and
% calculate the voltage across the capacitor

R1 = 5e3;
tau1 = R1*C;
V1 = Vs * ( 1 - exp(-t/tau1) );

R2 = 10e3;
tau2 = R2*C;
V2 = Vs * ( 1 - exp(-t/tau2) );

R3 = 20e3;
tau3 = R3*C;
V3 = Vs * ( 1 - exp(-t/tau3) );

% Plot the responses, all at once
plot(t, V1, 'b-', t, V2, 'ro', t, V3, 'k*')
grid
on
title('Transient Analysis - RC circuit')
xlabel(
'Time (s)')
ylabel(
'Voltage across capacitor (V)')
legend([
'RC_1 = ' num2str(tau1)],...
['RC_2 = ' num2str(tau2)],...
['RC_3 = ' num2str(tau3)], 'location', 'best')

The resulting plot is

From the resulting plot of our transient analysis, we see that if the time constant is small, it takes a shorter time for the capacitor to charge up (the smaller the time constant the faster the circuit response). We also can see that when the time constant is reached by each response, we have obtained more or less the 63% of the total voltage to be taken (that’s why the RC value is called the time constant).

### Example 2 -Charging / discharging RC circuit

In the same charging circuit above, the input voltage is now a rectangular pulse with an amplitude of 10 volts and a width of 0.5 seconds. If C = 10 microfarads, we’ll plot the output voltage, v0(t), for a resistance R equal to 5k ohms, and 20k ohms. The plots should start from 0s and end at 1s.

We are going to develop a function that will return the voltage and corresponding time of the response. We need to use the two formulas mentioned previously and that’s why we separate our code in two halves.

The input parameters are the voltage source (vs), the resistor (r) and capacitor (c).

function [v, t] = rectangular_RC(vs, r, c)
tau = r * c;

% First half of the pulse: 0.01 to 0.5 seconds
% Use the correct formula.

t1 = linspace(.01, 0.5, 50);
v1 = vs * (1 - exp(-t1/tau));

% Second half of the pulse: 0.51 to 1 seconds.
% Take into account the max voltage reached.
% Use the appropriate formula.

Vm = v1(end);
t2 = linspace(0.51, 1, 50);
v2 = Vm * exp(-t1/tau);

% Assemble the final vectors to return
t = [t1 t2];
v = [v1 v2];

Now, we are going to call the function from our main code, like this

% Given constants
vs = 10;
c = 10e-6;

% Case 1. R = 5k ohms
r1 = 5e3;
[v1, t1] = rectangular_RC(vs, r1, c);

% Case 2. R = 20k ohms
r2 = 20e3;
[v2, t2] = rectangular_RC(vs, r2, c);

% Plot the responses
plot(t1, v1, 'bo', t2, v2, 'r+')
grid on

title('RC circuit - rectangular input')
xlabel(
'Time (s)')
ylabel(
'Voltage (V)')
legend([
'R_1 = ' num2str(r1)], ...
['R_2 = ' num2str(r2)])

The resulting plot is

We can see that the first circuit reaches the maximum voltage of the source. The second circuit started its discharge before reaching the maximum voltage.

From 'RC circuit' to Matlab home

From 'RC circuit' to Electrical Calculations

 Top

## Related pages

exponential decay formula half lifebijection methodbinomial online calculatorfminsearchexample of simultaneous equationhow to manually calculate bmifuture annuity calculatoralgorithm to convert decimal to binaryexamples of amortizationtrapezoidal rule calculator onlinecombinational logic examplesexponential regression modelexpand matrix matlabdecimal to binary conversion examplesolved examples of nodal analysissolving systems of equations with matlabgeometric means formulahalf life formulasexponent in matlabslope calculator with equationpascals triangleintersection point of two vectorsslope and one point calculatorconvert ascii code to characterkcl and kvl solved problemswhat is meant by salvage valuehow to change from binary to decimalconvert binary numbers to hexadecimalbinary polynomial divisionascii code table for alphabetscurve fitting matlab codematlab conv examplepeak fitting matlabnet salvage value formulaconvert to octalsawtooth wavesgrowth or decay calculatorpythagoras theorem solverslope intercept form from two points calculatorascii value of alphabetstime constant calculator rcintegral calculatenum to hexmatlab invertmatlab interp2area under the curve matlabdirac impulsehow to do factorialsquadratic equation calculator programsalvage value equationsolids of revolution examplesintegrand calculatortaylor expansion of sinxgaus bellconvert binary numbers to hexadecimalhow to reverse a matrix in matlabhow to create a table in matlabmatlab programing examplescftool matlabmatlab csv writelaptop depreciation ratehow do i calculate square feet from inchesdefine functions matlabbasics of matlab programmingmatlab 3d graphsarea of irregular polygon calculatorpiecewise defined functionsascii character code tablefunction handles matlabconversion of octal to binarymaclaurin expansionnodal analysis calculatormatlab linear fittinghandles matlab