You are here

Creating Function Structures and Component Flow Graphs in GraphSynth

Alfredo Vela

University of Texas Automated Design Lab, Spring 2011

 

This page will describe the steps followed to create product function structures (FS’s) and component flow graphs (CFG’s) using Dr. Matthew Campbell’s GraphSynth software and a MATLAB program developed by Andrew Tilstra. The graphs are added to the online repository of product assemblies at designfiles.org/assemblies and can be accessed for future research purposes.

 

Product Selection and Disassembly

                The first step is to select a mechanical or electro-mechanical product to be reverse engineered. Examples of past products are an electric inflator, a common alternator, and a hair dryer. These product’s FS’s and CFG’s can be accessed at designfiles.org/assemblies along with several other products. Keep in mind that the product should be capable of being disassembled with common hand tools. Next, completely disassemble the product. During disassembly, take pictures of the components within the product. Record how the components are connected or attached to one another and decide what kind of interactions exist between the components. This information will be useful during the creation of the FS and CFG. Figure 1 shows the components within an electric inflator. All of the main components such as the motor and the piston/cylinder assembly are visible. Taking good pictures will help when deciding what kind of structural and/or energy interactions exist between any two components.

Figure 1. Electric Inflator

                Completely disassemble the product and create a bill of materials (BOM). The BOM will serve as a record of each component’s mass, bounding dimensions, material, and manufacturing process.

 

Creating  a Function Structure in GraphSynth

                The next step is to create a function structure using GraphSynth. A function structure is a graphical representation of all of the important energy, material, and signal flows that exist within the product. Each node and arc will have a name and a label. The name will be arbitrary such as “n1” or “a1” etc. The nodes of the graph will represent the important components and they will be labeled as verbs representing the function that particular component carries out. For example, the node for a motor will be labeled “convert” since it converts electrical energy to rotational energy. The arcs will be labeled according the type of interaction that exists between any two nodes such as “Electrical Energy” or “Gas Material.” The GraphSynth user interface allows for easy addition and subtraction of nodes and arcs and allows the user to edit the names and labels of each. Figure 2 depicts the FS for the Electric Inflator.

Figure 2. Electric Inflator Function Structure

 

                The function structure does not contain all of the components within the product. It only contains the components necessary to complete the task. Structural components such as screws will not show up in the function structure.

 

Creating  a Design Structure Matrix with the HDDSM Manager

                Component flow graphs contain all of the components within the product, and therefore can be quite large with numerous nodes and arcs. To facilitate the process of creating a CFG, we utilized Andrew Tilstra’s MATLAB program that allows the user to easily create a Design Structure Matrix (DSM). The HDDSM Manager is a collection of MATLAB functions which create a graphical user interface for recording product architecture in the form of a DSM. A DSM can be thought of as a CFG in matrix form. The DSM is a detailed record of how components within a product interact with each other to perform a given task. It contains all of the energy flows, as well as structural interactions and relative motion. Once a DSM is created, another MATLAB script is ran to convert the DSM into a CFG that can be opened in GraphSynth.

The MATLAB program files can be found in a folder titled "HDDSM_Matlab.zip" at this link, along with HDDSM tutorials:

http://graphsynth.com/files/creating-FSs-and-CFGs/

Open MATLAB and set the directory to the HDDSM_Matlab folder. The tutorials are very useful and will help gain familiarity with the HDDSM manager.

The DSM is created based using an interaction basis, which is a list of 25 possible interactions that may exist between any two components. See Table 1.

The HDDSM manager allows the user to go through every possible pair of components and decide what types of interactions exist between the two components. Ultimately, the user will end up with a matrix portraying all of the interactions that exist within the product. Figure 3 shows the DSM of the electric inflator.

Figure 3. Electric Inflator Design Structure Matrix

 

DSM to CFG Conversion

                The next step is to convert the DSM into a CFG. This is done using a MATLAB script also found the HDDSM_Matlab folder. In the MATLAB command window, type in “HDDSMtoGS2Converter” then enter the name of the .mat file under which you saved your DSM. The script will run and output a code that can be saved as a GraphSynth file. Go to File->Save As and give the file a “.gxml” extension and save it to the appropriate location. This file can now be opened with GraphSynth and will be a CFG of the product. Figure 4 shows the CFG of the electric inflator created by conversion of the DSM.

Figure 4. Electric Inflator CFG

 

Link FS’s and CFG’s

             You should now have two GraphSynth graphs: the FS and the CFG. The last step is to provide the components within the CFG with an additional label. Every node within the FS should have an arbitrary name such as "n1." Add the node names from the FS to the label of the corresponding component within the CFG. For example, the "convert" node within the FS also has the name "n9" and represents the motor. So "n9" should be added to the "motor" node within the CFG. This will link the two graphs together and provide references as to which components carry out a particular function. Every node name within the FS should appear at least once within the CFG. Figure 5 shows the three representations of the motor. Now, one can look at the "motor" component within the CFG and know that it corresponds to the "convert" function within the function structure.

Figure 5. Linking FS's and CFG's.

 

 

 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer