Lecture 1: Course Introduction Overview of Computers and their Applications in MAE. BJ Furman 29JAN2010

Lecture 1: Course Introduction Overview of Computers and their Applications in MAE BJ Furman 29JAN2010 The Plan for Today „ „ „ „ „ „ „ Welcome t...
Author: Jesse Robinson
2 downloads 1 Views 1MB Size
Lecture 1: Course Introduction Overview of Computers and their Applications in MAE

BJ Furman 29JAN2010

The Plan for Today „ „ „ „ „

„ „

Welcome to ME 30 Roll call Recap syllabus (aka, ‘greensheet’) Overview of computers and their applications in MAE Recap structured programming, algorithms, pseudocode, and flowcharts Ö Form of a C program Data types and variables

Learning Objectives „

Explain the focus of the course

„

Describe where and how computers are used by mechanical and aerospace engineers (MAEs)

„

List some of the software commonly used by MAEs

„

Describe what the major elements of a computer are and what they do conceptually

„

Explain what is meant by ‘structured programming’

„

Describe the structure of a C program

„

List and describe the important data types

„

Declare a variable

Roll Call

Review of the Syllabus and Where to Find Things „

Available at

„

www.engr.sjsu.edu/bjfurman/courses/ME30/ and sjsu.desire2learn.com My contact and office information My background Course information

„ „

… … … … … …

Course goals and learning objectives Textbook Policies and protocol Grading Resources Course schedule

Focus of ME 30 „

Solving problems with computers … …

„

Learn structured programming using the C language …

„

Learn the process for formulating a computational solution to a problem Practice the process

Get prepared for learning about mechatronics

Gain familiarity with other software used by MAEs for technical computing … …

Matlab Excel

Where and How are Computers Used in MAE? „

??

Where and How are Computers Used in MAE? 1 „

Technical and Personal Communication …

Email … Word processing „

(reports, procedures, etc.)

…

Presentations … Conferencing „

Computation and Analysis …

Arithmetic … Equation solving … Data analysis and visualization … Multiphysics and numerical modeling

sin(r)/r

Where and How are Computers Used in MAE? 2 „

Design … … … …

„

Solid modeling (ME 165) Finite Element Analysis (FEA) (ME 160) Dynamic modeling and simulation (ME 147, ME 187, ME 190) Design tradeoffs and analytical modeling of mechanical components and systems (ME 154, ME 157)

Gathering Information … … … … …

Web searches Patent searches Databases Vendor and other websites Datasheets

Where and How are Computers Used in MAE? 3 „

Testing and Experimental Work …

„

Laboratory and Factory Automation and Control …

„

Dynamic systems (ME 187, ME 190)

Instrumentation and Product Design …

„

Data acquisition from sensors (ME 120)

http://las.perkinelmer.com/Content/Images /smallImages/janusLabAuto.jpg

Embedded controllers (ME 106, ME 190)

MRP, Inventory, and Document Control … … … … …

Drawings Procedures Bill of Materials (BOM) Specifications Engineering change orders (ECOs)

http://www.plm.automation.siemens.com/en_us/products/teamcent er/solutions_by_product/mechatronics_process_management.shtm l

What Software is Most Often Used? 1 „

Technical and Personal Communication … … …

„

Email (MS Outlook, Mozilla Thunderbird) Word processing (MS Word, Open Office) Presentations (MS Power Point, Open Office)

Computation and Analysis … … … … …

Spreadsheets (MS Excel, Open Office Calc) Mathcad/Maple/Mathematica Matlab/Octave/Scilab TK Solver Maxima

What Software is Most Often Used? 2 „

Design …

Solid modeling (Solidworks, ProE, Inventor, Unigraphics) … Finite Element Analysis (Cosmos, ProMechanica, Nastran) … Dynamic modeling and simulation (Matlab/Simulink, ) … Design tradeoffs and analytical modeling of mechanical components and systems (Excel, Mathcad, Matlab, TK Solver) „

Gathering Information … … …

Web searches (Google, other search engines) Patent searches (Google Patent, USPTO website) Databases (see the SJSU Articles & Databases website: http://www.sjlibrary.org/research/databases/index.htm?getType=3

… …

Vendor and other websites (Google, other search engines) Datasheets (Google, vendor websites)

What Software is Most Often Used? 3 „

Testing and Experimental Work …

„

Lab View, C, Matlab

Laboratory and Factory Automation and Control …

Lab View, C, Visual Basic

„

Instrumentation and (Mechatronic) Product Design … C, Matlab, Lab View (see “Real Men Program in C”)

„

Product Data Management … … …

Siemens PLM Oracle Agile Dassault Enovia

The Bottom Line Mechanical and aerospace engineers use computers widely „ You need to know how to use computers to help you be successful „ ME 30 will help you especially in the area of computation and analysis „

Focus will be on the C language … Exposure to Matlab …

„

I hope it will also whet your appetite to learn about mechatronics Next -->

Networking Introduce yourself to someone you DO NOT know „ Find out one thing about them that they like to do in their spare time „

Two minutes!

Back

What do computers actually do? „

Perform arithmetic operations …

„

Addition, subtraction, multiplication, division

Compare two values …

And decide among alternative courses of action „

„ „ „

If a > b, then do action c

Move data around internally (memory and peripherals) Input data (keyboard, mouse, sensors, etc.) Output data (display, I/O ports, etc.) And do all of this really fast ….

What’s Inside and How Does it Work?

Personal Computer (PC) Anatomy „

Case or housing …

„ „

Power supply Motherboard … … … … …

„

CPU Memory Video and audio chipsets Networking I/O ports

Hard disk …

„

Embedded computers likely not to have

Solid state sometimes now

Peripherals …

CD or DVD drive

Computer Block Diagram Disk controller

CPU

Memory

USB, Serial, Keyboard, Mouse, etc.

Ports

Video chipset

Display

Audio chipset

Speakers

Networking chipset Bus

Hard drive, CD/DVD

Internet

Memory „

„ „

Stores program instructions and data Each location has an ‘address’ Each location stores the information as ‘bits’ …

Binary ____its „

… … …

Zero or one

Memory (8-bit)

Address 0x10FE

0

1

1

0

0

1

1

0

0x10FF

0

1

0

1

0

1

0

0

0x1100

0

0

0

0

0

0

0

0

0xFFFF Bit

7

6

5

4

3

2

1

0

8 bits is one byte Information is ‘coded’ Memory is ‘written’ or ‘read’

CPU „

The ‘brain’ of your computer …

„

Carries out the instructions of your program

Essential components: …

Arithmetic Logic Unit (ALU) „

Does arithmetic and logic functions … …

…

…

Controls the actions inside the CPU

Registers „

…

Add and subtract (sometimes multiply and divide) Bit-wise logic: ƒ AND, OR, NOT, XOR Bit shift (left or right)

ALU CU

Control Unit (CU) „

…

CPU

Temporary locations to store data, instructions, and addresses

Clock „

Synchronizes operations in the CPU

Clock

Registers

Instructions

Data

Memory

Adapted from Fundamentals of Computer Organization and Architecture, M. Abd-El-Barr, H. El-Rewini, John Wiley and Sons, 2005

Ports „

Connection to the external world … … … … …

USB Serial Keyboard Monitor Pins on a microcontroller „

http://media.digikey.com/photos/Atmel %20Photos/453-64-TQFP.jpg

Voltage level determines whether a 0 or a 1 …

Ex. 5 V logic: ƒ < 1.5 V = 0 ƒ > 3.5 V = 1 http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf

Software „

The intermediary between you (the user) and the hardware …

Operating system (OS) see the next page „

…

Windows, OS X, Linux

Application programs „

End-user applications Word processor, solid modeler, etc. … Mathcad, Matlab, etc. …

„

Application development software (programming languages) … C, Matlab (sort of), Lab View (sort of), Python, Java, FORTRAN, etc.

Operating System (OS) „

A program that: …

…

Acts as an intermediary between hardware and application software Provides a consistent, stable way for applications to interact with hardware „

„

APIs, so you don’t have to do it all yourself

Examples: … … …

Windows XP/Vista Linux OS X

http://en.wikipedia.org/wiki/File:Operating_system_placement.svg

Create/Edit source files (your program!)

Program Development from Figure 1.11, p. 32 in HK

note additions!

Compile source files

Link compiled files Load executable file Run your program! Test Repeat process

Correct Not correct

Review

References „

http://www.karbosguide.com/

„

http://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Asus_a8n_VMCSM02.jpg /645px-Asus_a8n_VMCSM02.jpg Fir0002/Flagstaffotos. Retrieved 22MAY2009. http://en.wikipedia.org/wiki/Operating_system. Wikipedia. Retrieved 23MAY2009. http://www.embeddedsys.com/. Visited 23MAY2009.

„ „

Embedded Computers and Microcontrollers Microcontrollers ATtiny10 microcontroller, with 1K bytes of programmable Flash memory, and 32 bytes of internal SRAM

http://media.digikey.com/photos/Atmel %20Photos/313-64-TQFP.jpg

http://media.digikey.com/photos/Atmel %20Photos/453-64-TQFP.jpg

Single-board computer

http://www.electropages.com/articl eImages/large/12813.jpg

http://www.oxisso.com/Microcontrollers/At mega128TinyBoard_Show.jpg

Back http://www.embeddedsys.com/subpages/products/images/pdf/microsys_sbc1586_datasheet.pdf

Power Supply ATX power supply MFG: ECHO-STAR P/N: ES-450-24 STYLE: ATX-20/24 Input: 110/220 VAC 50-60Hz Output #1: +3.3V @ 28A #2:+5V @ 34A #3: +5VDCSB @ 2A #4: +12V @ 14A #5: -12V @ .8A #6: -5V @ .5A (450W Max combined output) http://www.mpja.com/prodinfo.asp?number=16581+PS

Back

Motherboard Asus a8n VMCSM02 - Supports AMD Socket 939 Athlon 64FX / Athlon 64 X2 / Athlon 64 - NVIDIA GeForce 6150 + nForce 430 - Dual-channel DDR400 - PCI Express architecture - Integrated GeForce6 GPU - Dual VGA Ouput:DVI-D & RGB - NVIDIA Gigabit LAN with NVIDIA ActiveArmor Firewall - 4 x SATA II (RAID 0, RAID 1, RAID 0+1, RAID 5) - 1394a Support - High Definition Audio

http://en.wikipedia.org/wiki/File:Asus_a8n_VMCSM02.jpg Fir0002/Flagstaffotos

Back

My Background „

Almost native SJ …

„

Willow Glen High School class of ’76

Education – first round …

UC Davis „ „

„

Industry experience – first round …

IBM GPD – 1982 - 1986 „

„

Stanford University 1986-1991 „

IBM SSD 1991 – 1993 „ „

3390 product development 5.25 in. spindle motor dev.

Academia …

„

Non-contact rotor balancing

Industry experience – second round …

„

3390 actuator development

Education – second round …

„

BSME – 1980 MEME – 1982

SJSU MAE – 1994 to pres.

Personal … … … …

Married 10-year old daughter Hobbies: build things, fix things, garden, read, hike, amateur radio (ARES) Most significant: relationship to God through Jesus Christ „

www.leaderu.com Æ Faculty Offices (under Academics)

Back

Structured Programming Sequence „ Selection „

IF … IF – ELSE … SWITCH …

„

Repetition WHILE … DO – WHILE … FOR …

Flowchart constructs

Algorithm „

What is an algorithm? A recipe … A procedure … Definition: …

„

“well-ordered collection of unambiguous and effectively computable operations, that when executed, produces a result and halts in a finite amount of time.” definition from: An Invitation to Computer Science (Gersting/Schneider) via http://www.cs.xu.edu/csci170/08f/sect01/Overheads/WhatIsAnAlgorithm.html (visited 19JUN2009)

Characteristics of an Algorithm „

Well-ordered: …

„

Unambiguous: …

„

the steps are in a clear order the operations described are understood by a computing agent without further simplification

Effectively computable: …

the computing agent can actually carry out the operation

Method for Developing an Algorithm 1. Define the problem: …

State the problem you are trying to solve in clear and concise terms.

2. List the inputs and the outputs …

Inputs: information needed to solve the problem … Outputs: what the algorithm will produce as a result

3. Describe the steps needed to convert or manipulate the inputs to produce the outputs. …

High level first … Refine steps until they are effectively computable operations.

4. Test the algorithm: …

choose data sets, and verify that your algorithm works!

Pseudocode „ „ „ „ „ „

natural language-like statements that precisely describe the steps of an algorithm Statements describe actions Focuses on the logic of the algorithm Avoids language-specific elements Written at a level so that code can be generated almost automatically from each statement Steps are numbered …

Subordinate numbers and/or indentation are used for dependent statements in selection and repetition structures .

Flowcharts - 1 „

Flowcharts …

A graphical tool that diagrammatically depicts the steps and structure of an algorithm or program Symbol

Name/Meaning

Symbol

Meaning

Process – Any type of internal operation: data transformation, data movement, logic operation, etc.

Connector – connects sections of the flowchart, so that the diagram can maintain a smooth, linear flow

Input/Output – input or output of data

Terminal – indicates start or end of the program or algorithm

Decision – evaluates a condition or statement and branches depending on whether the evaluation is true or false

Flow lines – arrows that indicate the direction of the progression of the program

Flowchart Constructs - Sequence and Selection

Control Structures

from Deitel & Deitel, 6th ed., p. 122

Flowchart Constructs - Repetition

from Deitel & Deitel, 6th ed., p. 122

Control Structures

Example: D&D 3.15c - 1 „

“Obtain a series of positive numbers from the keyboard, and determine and display their sum. Assume that the user types the sentinel value -1 to indicate "end of data entry"

„

Define the problem …

„

Statement pretty well defines the problem

List inputs and outputs … …

inputs: number entered from keyboard outputs: sum of number

Example: D&D 3.15c - 1 „

“Obtain a series of positive numbers from the keyboard, and determine and display their sum. Assume that the user types the sentinel value -1 to indicate "end of data entry"

„

Develop the algorithm …

High-level first, then refine: 1. Start 2. Declare variables: ________ 3. Repeat while number not equal to -1 3.1. get number 3.2. add to sum 4. Display sum Does this work?

Example: D&D 3.15c - 2 „

Develop the algorithm, cont. … Refine

1. Start 2. Declare variables: ________ 3. Repeat while number not equal to -1 3.1. get number 3.2. add to sum 4. Display sum

1. Start 2. Declare variables: num, sum 3. while num not equal to -1, continue doing: 3.1. Display prompt “Enter positive number” 3.2. Read number from the keyboard 3.3. Display number entered 3.4. add to sum 4. Display sum Are we there yet?

Example: D&D 3.15c - 3 „

Develop the algorithm, cont. …

Add a test to exclude negative numbers

1. Start 2. Declare variables: num, sum 3. while num not equal to -1, continue doing: 3.1. Display prompt “Enter positive number” 3.2. Read number from the keyboard 3.3. Display number entered 3.4. if num less than zero, then 3.4.1 continue 3.5. add to sum 4. Display sum Are we there now?

Flowchart

Start

Declare variables: num, sum Intialize variables: num = 0, sum = 0

1. Start 2. Declare variables: num, sum 3. while num not equal to -1, continue doing: 3.1. Display prompt “Enter positive number” 3.2. Read number from the keyboard 3.3. Display number entered 3.4. if num less than zero, then 3.4.1 continue 3.5. add to sum 4. Display sum

if num ! = -1

No Display sum

Yes

Display "Enter positive integer"

Read num from keyboard

Display num

Stop

Test the algorithm!

if num < 0

No sum = sum + num

Yes

Structure of a C Program „

A formal letter has a structure …

So does a program in C

Burford Furman Title Professor Dept. of Mech. and Aero. Eng San José State University San Jose, CA 95192-0087

block

July 20, 2009

Date

Dear Prof. Furman,

Salutation

I’m writing you to see if I can get into ME 30… …

Body

Sincerely,

Closing

Jane Student

Signature

C Code for D&D 3.15c Programmer’s block Pre-processor directive Main function (statements go between { } ) Declare and initialize variables

While loop (repetition structure)

return statement

Programmer’s Block „

Include important information (comments) to document the program: … … … … … … …

Title Date Author Description Inputs/Outputs Algorithm Revision history

Add comments using one of two methods: 1. /* put comment between */ (note: traditional C) 2. // comment (note: single line only)

Full program

# include (pre-processor directive) „

Includes a library file for ‘standard io’ …

functions for things like printing, etc.

Full program

main() function „

Your program needs a main() function …

Statements go between the braces { } … main() ends with the return keyword and usually the value zero „

If main() runs successfully, it returns a value of zero

Full program

Declare and initialize variables „

Variables must be declared before you can use them

Full program

while() Repetition Structure „

while (condition) repeat statements between { }

Full program

Suggest Documents