Lab 7

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

ECE 2006 UMD Lab 7

Experiment 7: Using MATLAB®

Introduction:

MATLAB® is a matrix based software “laboratory” from The MathWorks


(www.mathworks.com). It is used extensively in academia and industry for an amazing
variety of tasks. It has a suite of graphical user interfaces under the trade name
Simulink® that provide easy answers to many of engineering’s sticky questions.

This experiment is designed to introduce to the student to some of the basic procedures in
MATLAB in preparation for other courses where it will be used regularly.

Procedure:

1. Help Files: MATLAB has a good internal help command. In the MATLAB
window, type help then press the enter key.

Linear Algebra:

All MATLAB variables are treated as arrays (matrices). This is slightly intimidating at
first, but the advantages soon become clear.

Procedure:

1. Create a matrix by typing the following in the MATLAB workspace:

A = [1 2; 3 4]

2. Notice that the semicolon, ; , indicates a new row in the matrix. Create a second
matrix, B.

B = [5 6; 7 8]

3. Enter the variable name, A, as a command and notice that MATLAB remembers
everything you’ve entered previously.

4. The colon symbol, : , can be used to select columns or rows within a matrix.
Try the following commands:

y = A(1,:)
z = B(:,2)

ECE Department Page 1 12/25/2019


ECE 2006 UMD Lab 7

5. Perform the following algebraic manipulations of A and B

A+B
A*B
A/B

6. Solving systems of linear equations is extremely simple. Here’s an example of an


Ax=B system: Equation 1: 2x + 3y = 10 Equation 2: 1x – 3y = 8

A = [2 3; 1 -3]
B = [10;8]
X = inv(A)*B

Note: Try X = A\B as a shortcut for the 3rd line above

7. MATLAB matrices are not limited to real numbers. MATLAB defines i as the
square root of (-1). However, in electrical engineering, we reserve i for current
and therefore use j as the imaginary unit vector. Type in the following to make a
complex matrix and calculate its determinant.

j = sqrt(-1)
A = [ 1+j*2 3+j*4 ; 5+j*6 7+j*8 ]
B = det(A)

8. FOR YOUR REPORT: Write Nodal or Mesh equations for the following circuit
and solve the equations in MATLAB to find Vx and Ix.

Graphing Time Based Functions:

MATLAB is an excellent platform for visualizing time-based functions.

Procedure:

ECE Department Page 2 12/25/2019


ECE 2006 UMD Lab 7

1. Make an array of values to represent time by typing the following:

t = [0 : 0.1 : 10]

2. Describe a sine wave:

a = 10*sin(2*t)

3. Plot the sine wave versus time:

plot(t,a) (SCILAB command is plot2d(t,a))

4. Make the 3rd and 5th harmonic, add them to the fundamental sine wave and plot
the result (note that the semi-colon allows multiple commands on one line):

b = 3*sin(6*t); c = 1.5*sin(10*t); d = a + b + c
plot(t,d) (SCILAB command is plot2d(t,a))

5. FOR YOUR REPORT: Solve the following first order differential equation by
any method of your choosing, describe the solution as an equation in MATLAB
and plot it versus an appropriate time range.

dX/dt + 0.5 X = 10 with initial condition: X(0) = 5

Functions and M-files

MATLAB can be considered a fully functional programming language. As such it has the
ability to load external code (known as a script in MATLAB) and execute it. It also
allows users to create subroutines (known as functions in MATLAB). One can even call
a user-defined function from within another user-defined function (nesting). MATLAB
has an editor/debugger window that lets you create and debug a script called an M-File.

Procedure:

1. In MATLAB (SciPad instructions below), click on File in the top menu bar. In
the drop down window, click New>M-File. An editor window will appear. In
that editor window, type in the following script (note that the % symbol denotes a
comment line and the semi-colon, ; , will tell MATLAB to suppress the output of
that line when the script is executed):

% Just a simple stupid script


t = [0 : .1 : 10];
x = sin(t);
plot(t,x)

ECE Department Page 3 12/25/2019


ECE 2006 UMD Lab 7

Otherwise, in SCILAB, click on the new file symbol on the top menu bar, creating
a new SciPad window (note that the // denotes a comment line and the semi-
colon, ; , will tell SCILAB to suppress the output of that line when the script is
executed in the main program). Type in the following text:

// Just a simple stupid script


t = [0 : .1 : 10];
x = sin(t);
plot2d(t,x)

2. In MATLAB, if you were to change any of the above code, creating an obvious
error, note that the erroneous code will automatically be underlined in red,
indicating a problem. Hovering the mouse-pointer over the red underlining will
show a description of the error. Now, in the editor window, click on Debug in the
top menu bar and select Save and Run in the drop-down menu. Your code will be
executed in MATLAB.

In SCILAB, there is no direct error detection in the SciPad editor window. In the
SciPad Window, click on Execute>Load into Scilab. Your code will be executed.

3. Making M-file scripts such as the one above is an excellent way to develop
MATLAB code and also a great way to save a copy of what you’ve done.

4. The other way to use the M-File concept is to develop a custom function. Open a
new script window as described in step 1 above. Enter the following code in a
new script window:

function [mean,stdev] = stat(x)


% Interesting statistics for the array, x.
n = length(x);
mean = sum(x) / n;
stdev = sqrt(sum((x - mean).^2)/n); % Note the existence of a period
% before ^2. Having that period tells MATLAB to square each
% element separately, not the whole array.

In Scilab, paste the following code into a new SciPad window:

function [mean,stdev] = stat(x)


//Interesting statistics for the array, x.
n = length(x);
mean = sum(x) / n;
stdev = sqrt(sum((x - mean).^2)/n); //Note the existence of a period
// before ^2. Having that period tells SciLab to square each
// element separately, not the whole array.

ECE Department Page 4 12/25/2019


ECE 2006 UMD Lab 7

endfunction

5. Save this script as stat.m (for SciLab, save it as stat.sci)

6. MATLAB should now be able to call stat as a function. In the main MATLAB
command window, enter the following code. In SCILAB, in the SciPad window,
click on Execute>Load into SciLab, then execute the following code in the main
Scilab command window:

z = [.1 : .1 : .5]
[zmean, zstdev] = stat(z)

7. FOR YOUR REPORT: Write an M-File (or SciPad file) script to create two
custom functions called RtoP and PtoR. As a function, RtoP(x) will perform a
rectangular to polar conversion of the complex number, x. Similarly, PtoR(x,y)
will convert polar form to rectangular, where x = magnitude and y = angle in
degrees.

Conclusion
Your report will have a short introductory paragraph and a conclusion. In between create
three sections describing the work you performed to complete the tasks at the end of each
portion above. Include all MATLAB code, plots, etc.

ECE Department Page 5 12/25/2019

You might also like