Most engineering projects require some level of programming or scripting in order to automate calculations, perform data acquisition & post-processing, implement controls, use machine vision, etc. Although it is often more expedient and cost effective to leverage commercially available software if available, we observe an increasing need for custom software tools to satisfy a particular set of requirements that is not covered by commercial offerings. In many cases, custom software is not stand-alone but needs to fit into a much larger process (e.g., hardware test and validation) with the goal of improving its speed and efficiency. So, understanding the overall company goals is critical to the success and adoption of custom software tools.
Correctly scoping a software project requires in-depth understanding of the customer's needs, the various use cases and the anticipation of future developments. On one hand, any piece of custom software should be architected to be easily maintainable and extensible by the future owner. On the other hand, the software should be limited in complexity and refrain from employing enterprise level functionality unless specifically called for. In other words, the approach needs to be balanced in order to be cost effective yet successful from a user perspective.
We have worked on a variety of software projects, some producing stand-alone software (various simulation tools as well as machine vision software) and some aimed at software supporting other processes (data acquisition and machine control).
Here is a list of software languages and libraries we have successfully used for completing projects, some of which were long-term, multi-year projects:
Languages: Visual C++, Excel VBA, LabView, C++Builder, Matlab, Simply Fortran
Libraries: STL, OpenCV, Numerical Recipes in C++, VTK
Sample Project 1: Thin Film Lubrication - Simulation of Fluid Bearings
Background: Fluid bearings play a significant role in many industrial applications and can be found in diverse fields such as internal combustion engines (oil bearings), hard disk drives (self-acting gas bearings), ultra-precision motion control equipment (pressurized air bearings), etc.
Figure shows pressure distribution for hybrid bearing (pressurized and self-acting)
Features: This software and associated tools (written and fully owned by NSES) simulates the fluid film thickness, load-carrying capacity, fluid consumption and dynamics of pressurized fluid bearings for a large range of ambient conditions. Both porous and orifice-compensated bearings are implemented using planar and cylindrical bearing surfaces as well as arbitrary geometries represented by structured and unstructured meshes. The stability analysis allows a solid body to be supported by multiple bearings. The application is multi-threaded to speed up parameter studies and sensitivity analyses.
Extensions: Beyond standard thin film lubrication applications, the fully object-oriented code can be extended to simulate, e.g., the performance of fluid seals with linear or rotating interfaces, subjected to steady-state and transient pressure differentials. Please contact us for any special requests.
Licensing: Source code and binary licenses available
Sample Project 2: Data Acquisition for Rotating Machinery
Background: Many test scenarios involving rotating machinery benefit from data acquisition at constant angular intervals instead of constant time intervals, which is far more common. There are many benefits to this approach, one of which is that the sampling occurs at fixed angular positions and is independent of speed. From a hardware perspective, the encoder signal from a rotary encoder can be used for sampling an analog signal provided that the data acquisition channel has enough bandwidth. In addition, lower sampling frequencies are easily realized by making a digital counter skip one or more encoder signal pulses between data samples.
Features: Acquiring data based on angular
intervals rather than based on time can be
implemented by using advanced LabView
features together with data acquisition
hardware from National Instruments.
Advantages: As already stated, the sampling
occurs at fixed angular positions independent
of speed. This greatly simplifies the data
structures containing measurement data as the
array sizes are kept constant. In addition, it
is easy to trigger periodic events at user defined
angles by means of counters.