Difference between revisions of "EGR 103/Fall 2015/Lab 2"

From PrattWiki
Jump to navigation Jump to search
Line 1: Line 1:
 
<div class="noautonum">__TOC__</div>
 
<div class="noautonum">__TOC__</div>
   
+
 
 +
== Errors / Additions ==
 +
None so far for Fall 2015!  
 +
 
 
== 2.1 Introduction ==
 
== 2.1 Introduction ==
 
The main purpose of this lab is to go through the process of writing a complete program to load a data set, manipulate the values, perform some analysis, and create a graph.  The following is a companion piece to the lab handout itself.  The sections in this guide will match those in the handout.
 
The main purpose of this lab is to go through the process of writing a complete program to load a data set, manipulate the values, perform some analysis, and create a graph.  The following is a companion piece to the lab handout itself.  The sections in this guide will match those in the handout.
Line 13: Line 16:
  
 
=== 2.3.1 Preview ===
 
=== 2.3.1 Preview ===
Read and work through this section, taking notes as you go on what is discussed.
+
Read and work through this section, taking notes as you go.  Type in the commands at the lettered sections to see how MATLAB responds.
  
 
=== 2.3.2 .m Files ===
 
=== 2.3.2 .m Files ===
Read and work through this section, taking notes as you go on what is discussed.
+
Read and work through this section, taking notes as you go.  Make sure you understand why certain lines from the script produce results on the screen and others do not.
  
 
== 2.4 Cantilever Beam Analysis ==
 
== 2.4 Cantilever Beam Analysis ==
Read and work through this section, taking notes as you go on what is discussed, especially how the equation was arranged to get displacement as a function of force based on how the experiment was conducted.
+
Read and work through this section, taking notes as you go. Note especially the process of rearranging the equation to get displacement as a function of force based on the fact that - for this experiment - the independent variable is the force.
  
 
To see the data set, go to UNIX (i.e. the MobaXterm window) and type
 
To see the data set, go to UNIX (i.e. the MobaXterm window) and type
 
  more Cantilever.dat
 
  more Cantilever.dat
You will see an 8x2 array of data.  The first column of numbers is the amount of ''mass'' in kg placed on the end of the beam - for this experiment, it ranged from 0 to about 0.8 kg (i.e. about 8 N).  The second column of numbers if the displacement measured in ''inches,'' because that is what the device I used measures in.  You should always take data in the original units of the device; you can convert it later.
+
You will see an 8x2 array of data.  The first column of numbers is the amount of ''mass'' in kg placed on the end of the beam - for this experiment, it ranged from 0 to about 0.8 kg (i.e. about 8 N).  The second column of numbers if the displacement measured in ''inches,'' because that is what the device I used measured in.  You should always take data in the original units of the device; you can convert it later.
  
 
Typically, data sets should have descriptions such as the items in the data set, units, perhaps the equipment and the person who took the measurements.  For this week, however, I wanted to give you a rectangular array of data that MATLAB can easily load.
 
Typically, data sets should have descriptions such as the items in the data set, units, perhaps the equipment and the person who took the measurements.  For this week, however, I wanted to give you a rectangular array of data that MATLAB can easily load.
  
 
== 2.5 Creating the Script ==
 
== 2.5 Creating the Script ==
Note when you open a second scripts that there are tabs in the editing window; you can choose which one to make active by clicking its tab.
+
Note when you open a second scripts that there are tabs in the editing window; you can choose which one to make active by clicking its tab.  Be careful not to accidentally click the part of the tab that closes that tab (the X).
  
 
=== 2.5.1 Lab Manual Syntax ===
 
=== 2.5.1 Lab Manual Syntax ===
Read this section, taking notes as you go on what is discussed.
+
For this lab, there will be several times you will simply type some items into the command window to see what they do before actually adding codes to the script.  Command line only items are surrounded by a box whereas code that goes in the script has a shadowbox.
  
 
=== 2.5.2 Comments ===
 
=== 2.5.2 Comments ===
While you are not explicitly required to include comments in your labs -- other than the header and community standard information at the top = comments are a great way to tell yourself and your TAs what you meant to do with particular chunks of code.   
+
While you are not explicitly required to include comments in your labs -- other than the header and community standard information at the top = comments are a great way to tell yourself and your TAs what you meant to do with particular chunks of code.  Also, note that a line starting with %% will set off a section in the editor window.  It will have no effect on the way the program runs, just what it looks like in your editing window.   
  
 
=== 2.5.3 Initializing the Workspace ===
 
=== 2.5.3 Initializing the Workspace ===
Read and work through this section, taking notes as you go on what is discussed; note that there are several items you will simply be typing into the command window rather than your code.
+
Read and work through this section, taking notes as you go; note that there are several items you will simply be typing into the command window rather than your code.  The lines you will actually add from item 2. of this section are the two lines (one comment, one not) at the very end of the item 2. text.  Remember - if you ever get lost on what should be in this script, the completed script is at the end of the lab handout.
  
 
=== 2.5.4 Loading and Manipulating the Data ===
 
=== 2.5.4 Loading and Manipulating the Data ===
Read and work through this section, taking notes as you go on what is discussed.
+
Read and work through this section, taking notes as you go.
  
 
=== 2.5.5 Generating Plots ===
 
=== 2.5.5 Generating Plots ===
Read and work through this section, taking notes as you go on what is discussed.  Note that the code for this is pretty far under what you've written so far; you will be filling in the blank space later, just like Taylor Swift.
+
Read and work through this section, taking notes as you go.  Note that the code for this is pretty far under what you've written so far; you will be filling in the blank space later, just like Taylor Swift.
  
For the "During the lab, the instructor will have you create several different graphs in the command window..." go ahead and look at the following alternate plotting commands:
+
For the "During the lab, the instructor will have you create several different graphs in the command window..." this semester the instructor is going to let you navigate this part on your own. 
 +
go ahead and look at the following alternate plotting commands by typing them in the command window only; at the end, there will be a plot command that you paste into your document:
 +
==== Plotting a matrix ====
 
  plot(Cantilever)
 
  plot(Cantilever)
 
Plots the matrix itself - the data points are plotted by columns with the ''y'' value coming from the data points and the ''x'' value coming from the row of the matrix.  That is why there are two lines (two columns of data) and the domain goes from 1 to 8.
 
Plots the matrix itself - the data points are plotted by columns with the ''y'' value coming from the data points and the ''x'' value coming from the row of the matrix.  That is why there are two lines (two columns of data) and the domain goes from 1 to 8.
 +
==== Plotting with two inputs ====
 +
plot(Force, Displacement)
 +
If MATLAB gets two arguments for the plot command, the first will be the independent (typically <math>x</math> coordinates and the second will be the dependent (typically <math>y</math> coordinates).  The default case is to connect the dots with blue line segments.  Note for this experiment that this plot would receive no credit - among other things, the axes are not labeled and there is no title.  Perhaps worse than that, you have connected eight discrete experimental data points with lines.  This is not appropriate for this experiment - instead, the data points should be plotted as individual points.
 +
==== Plotting different ways ====
 +
Take a look at the help file for plot in MATLAB:
 +
help plot
 +
and in particular the table in the middle of it. 
 +
 
  plot(Force, Displacement, 'mp')
 
  plot(Force, Displacement, 'mp')
 
Uses purple pentagrams.  It's adorable, though perhaps not professional.
 
Uses purple pentagrams.  It's adorable, though perhaps not professional.

Revision as of 21:55, 31 August 2015

Errors / Additions

None so far for Fall 2015!

2.1 Introduction

The main purpose of this lab is to go through the process of writing a complete program to load a data set, manipulate the values, perform some analysis, and create a graph. The following is a companion piece to the lab handout itself. The sections in this guide will match those in the handout.

2.2 Resources

You will want to have a browser open with the MATLAB:Script and MATLAB:Plotting pages available to you.

2.3 Getting Started

As with last week, you will want to use the

ssh -XY netid@login-teer.oit.duke.edu

command in MobaXterm to connect to a Teer machine. Follow the directions to connect, change into your EGR103 directory, make a new folder, change into it, copy things, then make a copy of your lab. Finally, start MATLAB.

2.3.1 Preview

Read and work through this section, taking notes as you go. Type in the commands at the lettered sections to see how MATLAB responds.

2.3.2 .m Files

Read and work through this section, taking notes as you go. Make sure you understand why certain lines from the script produce results on the screen and others do not.

2.4 Cantilever Beam Analysis

Read and work through this section, taking notes as you go. Note especially the process of rearranging the equation to get displacement as a function of force based on the fact that - for this experiment - the independent variable is the force.

To see the data set, go to UNIX (i.e. the MobaXterm window) and type

more Cantilever.dat

You will see an 8x2 array of data. The first column of numbers is the amount of mass in kg placed on the end of the beam - for this experiment, it ranged from 0 to about 0.8 kg (i.e. about 8 N). The second column of numbers if the displacement measured in inches, because that is what the device I used measured in. You should always take data in the original units of the device; you can convert it later.

Typically, data sets should have descriptions such as the items in the data set, units, perhaps the equipment and the person who took the measurements. For this week, however, I wanted to give you a rectangular array of data that MATLAB can easily load.

2.5 Creating the Script

Note when you open a second scripts that there are tabs in the editing window; you can choose which one to make active by clicking its tab. Be careful not to accidentally click the part of the tab that closes that tab (the X).

2.5.1 Lab Manual Syntax

For this lab, there will be several times you will simply type some items into the command window to see what they do before actually adding codes to the script. Command line only items are surrounded by a box whereas code that goes in the script has a shadowbox.

2.5.2 Comments

While you are not explicitly required to include comments in your labs -- other than the header and community standard information at the top = comments are a great way to tell yourself and your TAs what you meant to do with particular chunks of code. Also, note that a line starting with %% will set off a section in the editor window. It will have no effect on the way the program runs, just what it looks like in your editing window.

2.5.3 Initializing the Workspace

Read and work through this section, taking notes as you go; note that there are several items you will simply be typing into the command window rather than your code. The lines you will actually add from item 2. of this section are the two lines (one comment, one not) at the very end of the item 2. text. Remember - if you ever get lost on what should be in this script, the completed script is at the end of the lab handout.

2.5.4 Loading and Manipulating the Data

Read and work through this section, taking notes as you go.

2.5.5 Generating Plots

Read and work through this section, taking notes as you go. Note that the code for this is pretty far under what you've written so far; you will be filling in the blank space later, just like Taylor Swift.

For the "During the lab, the instructor will have you create several different graphs in the command window..." this semester the instructor is going to let you navigate this part on your own. go ahead and look at the following alternate plotting commands by typing them in the command window only; at the end, there will be a plot command that you paste into your document:

Plotting a matrix

plot(Cantilever)

Plots the matrix itself - the data points are plotted by columns with the y value coming from the data points and the x value coming from the row of the matrix. That is why there are two lines (two columns of data) and the domain goes from 1 to 8.

Plotting with two inputs

plot(Force, Displacement)

If MATLAB gets two arguments for the plot command, the first will be the independent (typically \(x\) coordinates and the second will be the dependent (typically \(y\) coordinates). The default case is to connect the dots with blue line segments. Note for this experiment that this plot would receive no credit - among other things, the axes are not labeled and there is no title. Perhaps worse than that, you have connected eight discrete experimental data points with lines. This is not appropriate for this experiment - instead, the data points should be plotted as individual points.

Plotting different ways

Take a look at the help file for plot in MATLAB:

help plot

and in particular the table in the middle of it.

plot(Force, Displacement, 'mp')

Uses purple pentagrams. It's adorable, though perhaps not professional.

plot(Force, Displacement, 'bh')

Using symbols that have cultural or religious meanings should be avoided unless wholly appropriate to the data set. Which is why we're just going to go ahead and use circles. On you own, however, try to get MATLAB to create a graph with red squares connected by a red dashed line.

2.5.6 Polynomials in MATLAB

Read and work through this section, taking notes as you go on what is discussed.

2.5.7 Generate Predictions

Read and work through this section, taking notes as you go on what is discussed. This part creates a new set of data points based on your equation so that you can actually plot it.

2.5.8 Generating Plots (revisited)

Read and work through this section, taking notes as you go on what is discussed. This part adds the new line to your old graph.

CRITICALLY IMPORTANT PART - never put an ending on the filname of a print command in MATLAB. MATLAB will automagically add the correct extension (for us, typically .ps) if there is not one, but if you put one, MATLAB will save the file to exactly that name. It could be a disaster if, for example you give a filename like lab2.tex...

2.6 The Assignment

Basically, once you get this script running perfectly, you are going to replicate it three times and change it to use three different data sets. Note: these three data sets are "cooked" - that is, I produced them; they did not come from an experiment.

2.6.1 What the .m-files Should Do

Read and work through this section, taking notes as you go on what is discussed.

2.6.2 The Lab Report

Read and work through this section, taking notes as you go on what is discussed. Note that the data sets have different numbers of points so the bottoms of the data tables will not line up. Also note that you should use the original data (masses and displacements in inches) in the tables.

2.6.3 Processing the Lab Report

Seriously - spell check!