Home → Competencies

ME 295 - The Simulation of Physical Systems
Competencies

In this class you are expected to become proficient in five areas:

  1. LabView
  2. Nework Programming
  3. Use of the SceneGraph programming language
  4. Connecting: LabView, Graphics and Physics
  5. The integration of all of the above.
  6. Building web pages.

1.  LabView

LabView is a data acquisition package.  It is a graphical programming language. LabView is used extensively to control machines and to acquire data from machines.

In this class, you will create your own virtual machine and use LabView to control it and acquire data from it.

To fully learn LabView, you need to do two things:

    1. Learn how to use all of it's programming constructs:
      • loops,
      • logical tests,
      • structures,
      • wiring, etc.
    2. Use it to acquire data from a real hardware device via a data acquisition card.

Since this class does not involve real hardware, you will not be going to step 2.  That step will wait until you take a class that requires it.  You will learn all else about LabView in this class.

There is a complete parallel between C programming and LabView and you are expected to understand this and become competent at using LabView as a programming tool.

Finally, you will need to learn how to use LabView to connect to other programs over the internet.

2) Network Programming

You are expected to learn how to enable two computers to communicate with each other.  To this end, the following definitions are important:

A program is a file containing an instruction set, while a process is the running instantiation of the instruction set.  A user can execute a program an arbitrary number of times, and each time creates a unique process.  The user owns the processes.  There is a special type of process, a daemon, which is not owned by a user, but is owned and managed by the operating system.

A socket is the standard underlying software interface for computer network communications.  Sockets operate with four basic steps whose functionality can best be described with a “telephone” analogy:

  • First, a process creates the socket via the use of the socket function; this is analogous to installing a telephone jack into the wall. 
  • Next, the process invokes the bind function which is analogous to associating a number with the telephone. 
  • The invocation of the listen function is analogous to notifying the telephone company that the telephone is ready to receive calls. 
  • At this point the process issues the accept function which is analogous to picking up the telephone once it rings.
  • Meanwhile, a remote process invokes two functions – socket and connect – and then the two processes, can read and write to each other. 

While the socket libraries have many advanced features, you are expected to become competent with only these simple ones.  To this end, you must also understand the client/server concept:

Client/server model: A server process is structured so that it runs on a certain computer, and waits for service requests from client processes running on other computers.  The communication is made through the use of sockets.  The server issues: socket, bind, listen, and accept.  The client issues: socket and connect. At this point, the two programs can talk with each other.  There can be many clients.

3) Use of the SceneGraph programming language

OpenGL is the standard application interface to computer graphics. Inventor is an object oriented interface to OpenGL. It is a simple scene graph library.

While there are problems with it with regard to memory acquisition and data handling, you will not be creating complicated 3D scenes with lights and fog and textures.  To this end, Inventor will suffice for your training as a mechanical engineer.

You are expected to become competent at the following:

  1. Reading a data set and understanding the concept of a scene graph.
  2. Displaying it with a camera.
  3. Animating a scene.

4) Connecting: LabView, Graphics and Physics

You will be expected to write the software that connects three programs.  This is basically an integrative competency of the above.

5) The integration of all of the above.

First, a summary of what is expected in this class.

  • Choose a machine and understand the basic physics by writing free body diagrams of the machine.
  • Create drawings of the machine using a CAD tool.
  • Write a program that can analyze the physics
  • Turn that program into a server using the socket libraries: i.e. it waits for connections.
  • Display the machine using Inventor.
  • Control the machine using LabView
  • Understand how data is transferred between the machines.

6) Building web pages.

You are expected to demonstrate mastery of step 5 not only by showing the virtual machine in operation, but by creating web pages to demonstrate this.

The precise structure of the web pages will be given in class.