3-Axis Center of Gravity Measurement Device

Executive Summary:
The capstone team designed and created a device that automatically calculates the 3-axis center of gravity (CG) for any object weighing up to 50 pounds.
The CG affects a wide array of technologies, such as planes in flight, whether cars roll over, and how objects vibrate. Schweitzer Engineering Laboratory (SEL) has requested 
this device because current methods of calculating CG of their products can be inadequate. Currently, SEL uses computer design software to calculate the CG of their products. 
Due to the varied densities of electronics, these calculations can be inaccurate. The solution measures physical devices of any shape and density distribution, while also 
operating automatically. Accurate knowledge of the CG is important for SEL to deliver the highest quality products. SEL uses the CG when determining how the run failure analysis 
tests, as well as determining resonant frequency in power line monitors. With this data, SEL can more easily deliver the high-quality products they are known for. The device can 
reach accuracies of ±0.064” of the actual CG in the x and y directions and ±0.134” in the z. 
=Problem Definition=
==Background==
Schweitzer Engineering Laboratories (SEL) designs and manufactures a wide range of products which “protect, control, and automate power systems around the world.” SEL has a history of delivering high-quality reliable products dating back to 1984. To accomplish this SEL research, design, and test all their products at SEL facilities. To ensure quality and product life, SEL conducts a rigorous test process before putting products on the market. 
SEL engineers need to know the center of gravity (CG) when designing and testing products. The CG is important for failure analysis, vibration analysis, and determining resonate frequencies. Vibrations in rack mounted relays and power line monitors being blown by the wind are improved by SEL’s CG dependent design and test process. 
The current method employed by SEL engineers is to calculate the CG using computer-aided design software. This can be inaccurate due to the electronics in SEL products. The hundreds of small electronic components have varying density and location. This can result in the calculated CG being too inaccurate to be useful. By measuring the physical product, our device will deliver SEL engineers an accurate CG regardless of the number of electronic components or their varied densities. 
==Problem definition==
The goal of this project is to design and build a device which accurately measures the three-dimensional CG of SEL products. The CG will include X, Y, ad Z cartesian components. The device is requested to be fully automatic and operate within one minute.
At the project’s conclusion, the capstone team will deliver a fully functional prototype device to SEL with validation of its operation. We are also delivering a detailed report, as well as our files and documentation created during this project.
==Deliverables==
Proof of understanding of center of gravity measurement techniques
Validation of functionality and robustness of the porototype using representative SEL components 
Proper documentation of the design ideas and measurements used in the project
Record of bill of materials
A detailed final reoprt of the project with a team presentation
==Requirements==
Calculates the center of gravity for complex objects in 3 dimensions​
Can measure objects approximately 20" cube down to the size of a cellphone​
Is completely automatic after the sample is inserted​
Displays a result within 3 seconds of measurement concluding​
Has an accuracy within 1% or 0.1 inches​
Hold a static load of 50 pounds​
Operate 1 year without maintenance​
Operate from a standard 120VAC outlet
=Project Learning=
==Initial Design Ideas & Prototypes==
This project was done by a capstone team in 2018-2019. So, at first, the ideas and works done by the previous team were studied. After brainstorming and research, two methods for the calculation of CG were decided by the team. Two different prototypes were also developed following those methods.
===Compression method===
The test platform is supported by three or more load cells, and the CG location is calculated from the difference in force measurement at these three points. Since the CG position is determined by small differences in weight measurement at these 3 points, huge CG errors can result from side loads using this method. In order to find the third component of CG, in the z-direction, the object being measured needs to be tilted to a known angle. When doing research on this method many academic papers and the handbook of measurements stated that it was important to tare the scales before placing the object on the test apparatus.
For the prototype development from this method, a square cardboard was used as the platform. A variety of solid objects with known CG such as aluminum cube and acrylic cylinder were used. Cheap amazon mass scales were used as load cells and the platform was glued to three nails and was on top of the scales.
===Tension method===
Similar to the compression method, a variety of solid objects with known CG were placed on the grid (see Prototype 2: Tension Method), then using the difference of weight on each scale the CG could be calculated. The major benefit of this prototype was having perpendicular forces; as the straps hang straight down. The purpose of this method to was to investigate whether the imprecise force angle on the compression prototype was causing significantly inaccurate results. Our findings suggested that either method could adequately be used to calculate the CG, but due to the clunky nature of the design and shapes of common SEL devices, the suspended tabletop would likely be an inconvenience when placing objects on and off the surface. Additional negatives on the design, deterioration on straps leading to inaccurate results, swaying of table surface, limiting object size due to leg interference.
The prototype design for this method is a piece of square plywood suspended by three luggage scales and the scales are resting on holes on a tabletop surface.
==Math model==
===Statics method===
Statics was used to derive equations for x-axis & y-axis CG. This was done by summing moments about F1 which was set origin with the coordinate system defined in the left diagram. 
The last equation for the z coordinate was derived using a second FBD of the table tilted to a known angle and using an object with a known x coordinate. The percent error found in the X & Y axis was within the product requirement but for the z-axis, the percent error was huge.
200px|thumb|center|Static method 2-axis200px|thumb|center|Static method z-axis
===Vector line method===
Based on what was found for the previous method. We came to know that the z coordinate is somewhere above the x and y coordinates. Our idea was to define a vector line that goes through the x, y points perpendicular to the plate. Tilt the table and create a 2nd line and the z coordinate should be the intersection of these two lines.
200px|thumb|center|Vector line method
===Kumar et, al. method===
This method was based on the paper published in the Journal of Materials Science and Surface engineering by a group from the dept. of Mechanical engineering at the Bangalore institute of technology. This method uses a similar approach that was used previously with the vector line method. This method had taken into account the angle created by a line from the origin to the CG with the table surface while leveled. 
in this method, the mean offset of both blocks increases and are actually consistent with each other. This method helped us to derive an equation that is able to give consistent answers for multiple block sizes and that moving forward will be important to calibrate the final machine to account for this consistent offset.
200px|thumb|center|Free body diagram for Kumar et, al. method
=Design Development= 
===Design Iterations===
The final design concept of the team, for now, is an updated version of the previous capstone team design. The table will be made from aluminum and the dimension of the table are according to the product requirement This design is more compact and with the addition of pegboard, the design will be better to hold objects on the table. There are many things that would change in this design after getting some feedback from the concept design review like changing the position of the load cell to the bottom of the table. Use of small linear actuator, and use of different load cells.
2019	2020
 	thumb|center|Different peg shapes
==Final Design Concept==
The final design concept of the team, for now, is an updated version of the previous capstone team design. The table will be made from aluminum and the dimension of the table are according to the product requirement This design is more compact and with the addition of pegboard, the design will be better to hold objects on the table. There are many things that would change in this design after getting some feedback from the concept design review like changing the position of the load cell to the bottom of the table. Use of small linear actuator, and use of different load cells.
==Concept Selection==
The choice of linear actuator and load cell positions were dominated by the actuator design. Utilizing a pushrod design would require loadcells to be located differently than other design styles. Speed (efficiency), size, mechanical complexity, reliability, and monetary cost were all factors in choosing a design style. A decision matrix was made with all of the design styles previously noted, shown in Table 2:
 
Multiplier  
Pushrod
Angled Pushrod
Double pushrod
Cantilever
Direct Torque
Pulley
Drawbridge
Rachet Headrest
Efficiency/5
10
2
4
3
4
5
2
2
3
Cost/5
20
5
5
3
3
4
3
3
5
Size/5
20
2
5
2
5
4
3
4
5
Complexity/5
25
4
4
2
2
3
3
2
3
Reliability/5
25
5
4
4
3
3
5
4
2
Totals
100
77
88
56
65
72
68
62
71
==Mechanical==
The mechanical design changed significantly with the angled pushrod. The angled pushrod design is smaller, lighter, more efficient, and less mechanically complex than the single pushrod design of a previous capstone design team. The linear actuator is rated to 150 lbs with a stroke of 2 in and under the max product requirements mass of 50 lbs can raise or lower the table in under 5 seconds without problems. The tabletop and bottom are both rated to deflect less than 2% of the thickness (1/4 in) under load. This ensures that there should be little to no error associated with the deflection of the table in the calculations for X, Y and Z CGs. 
The tabletop was designed with slip fit 0.25 in holes for 0.25 in dowel pins. These pins are easy to insert and remove quickly, so fixturing a component for measuring is quick and easy for a variety of components. The 24 in x 24 in tabletop is engraved with numbered gridlines between the holes as well making it easy to view where the User Interface (UI) states the CG is. 
==Eletrical==
Originally the plan was to use the previous teams electrical design and re-adapt it to the new load cells. Testing with AD620 load cells permanently soldered to a perfboard and inputting to the Arduino’s Analog-Digital Converter (ADC) yielded poor results and made precise Z-axis CG readings impossible due to the poor resolution and inherent noise of the Arduino’s 10-bit ADC. For this reason, HX711 breakout boards were chosen for the final electrical design. The HX711 chips resolved many of the problems associated with the Arduino ADC and the AD620 Instrumentation amplifiers. The HX711 boards have a 24-bit ADC along with a Programmable Gain Amplifier (PGA) and on chip power supply for excitation voltage of the load cells and built in 50 and 60 Hz signal rejection. The HX711 chips communicate with the Arduino via digital I/O pins which greatly decreases the transmission noise associated with analog pins. All electrical connection to load cells are either shielded or run-in twisted pairs to decrease EMF interference from other electronics. 
In the final design the electrical components include an Arduino acting as the brain, the linear actuator motor, a BTS 7960 43 Amp motor driver to control the linear actuator, an AC to DC power supply, three load cells, three HX711 load cell amplifiers, an LCD screen to show the UI, and a pushbutton rotary encoder to control the UI. All connections possible were permanently soldered to decrease noise with temporary connections. All the electrical components minus the load cells and linear actuator were housed in a plastic electronics box with the LCD screen and rotary encoder mounted on the face of the box (Figure 6).
==Code and User Interface==
The full code can be found in our project portfolio. Most of the code is surrounded around the User Interface utilizing a switch-case statement to select different menu options. The different menu options are written as separate functions, called when whichever menu option is selected. The menu options available to the user are as follows:
Tare: Record loadcell values while loaded under the weight of the device and fixtures.
Take CG Measurements: Records loadcell values, actuates, records angled load, and displays XYZ CG
2D CG Measurements and Mass: Record load cells for XY CG coordinates and calculate object's mass (g)
Select an Origin: Allows the user to set a custom XYZ origin.
Diagnostic: Allows user to output raw loadcell values to Arduino's Serial Monitor
Reset Device: Reset all electronics by power cycling the device.
Menu options can be cycled through by rotating the encoder. Any option can be selected by pushing the pushbutton down on the encoder.
 
The tare(), takeMeasurement(), and take2DMeasurement() functions all utilize the stdDev() and averge1() functions, student written functions for taking the standard deviation and average of the sample readings, respectively. The code stores 60 measurements for each load cell and then averages and takes the standard deviation. If the standard deviation is above a certain threshold the machine considers that off threshold and asks the user to restart the function. This decreases errors associated with bumping the table or an unsecured load. The user is asked to not touch the device while taking readings and to stand clear while the table is raising/lowering. These messages are displayed to the LCD screen. The CG measurements are also displayed to the LCD screen as well as to the Serial port of the Arduino so the data can be directly copied and pasted in a computer using the Arduino IDE serial monitor at 57600 baud.
==Design Evaluation==
After completing a design failure mode and effect analysis (DFMEA), the team isolated 14 different components with 19 different modes of failure. For example, some of the components listed are the Top Table, Load Cells, Arduino, Linear Actuator, Linear Actuator driver, and Dowel Pins. Most of the electronic devices have a multitude of subcomponents connected to them. The linear actuator, a mechanical device, with inner mechanical components (O-rings, threads, etc.), has electrical components (wires, motor, etc.) and each of these have conceivable methods of failure. In order to understand which component is most likely to fail and in what manner, DFMEA uses three terms to calculate a Risk Priority Number (RPN). To start, after listing the components, failures, and causes, the first term of the RPN is the Severity number. Severity ranges from 1 to 10 and describes how severe the failure is to the overall device function. For example, if the device loses power, the machine is useless and earns a severity of 10. Second, the probability is a 1 to 10 measure of how likely a failure mode for a component is. For example, If the device loses power only during severe weather, the probability is likely a rare phenomenon earning a value of 2. Lastly is detectability, a value of 1 to 10, describes the likelihood for a user to recognize the failure mode, either preemptively or retroactively. For example, a lack of power is detectable from noticing none of the device is functioning and earns a detectability of 1. Therefore, the RPN for the failure mode of Lack of Power earns a score of 20 (this is a low score). 
 
From the team’s DFMEA, three components, with a variety of modes, stood out by earning notably higher RPNs compared to other components. To start, the highest RPN was related to the Load Cells at a value of 200. The severity for the load cell failure is the highest at a value of 10, without functioning load cells the device ceases to perform its purpose. An additional contributor is the probability at 4, as overloading the load cells with too much weight can reasonably occur if someone is not warned of the weight limit. A person simply sitting on the tabletop could result is an overload. The detection of the load cell failure is not an obvious one at first, earning a detectability score of 5; a person would receive an out of bound threshold on the LCD, but may not know the root cause being the cells. Load Cell Overload is the greatest threat to breaking the machine and the recommendation is to place stickers on multiple locations noting the weight limitations. The second highest risk component is the Linear Actuator at a value of 140. The failure modes are Motor Failure, O-ring dislodgement, and noise. The severity for the linear actuator is a 7, due to limiting the functionality of the device. Without the linear actuator function, the device cannot calculate 3D CGs automatically, but performing two 2D calculations can be still done to find the 3D CG. The high score for the linear actuator is due to the probability at 5, meaning about 1 in 500 tests will result in the failure. During the testing, the team found O-rings could dislodge easily and relubrication should be completed every 100 tests or so. Lastly, with an RPN of 81 several electronics have the same failure mode which is disconnecting electrical cables. Disconnects would likely be due to the user interface box being displaced too far from the plates which would sever the connections. To eliminate the failure, a chain connecting the user interface box to the plates with a shorter length than the electrical wires could be added. 
==Validation==
The testing procedures used on the final prototype were similar to tests performed on earlier prototypes. Tests were performed on specimens with known centers of gravity. Known centers of gravity were calculated easily because the specimens were simple shapes, such as cubes, cylinders, and triangles. Additionally, the objects were a single homogeneous material, such as entirely aluminum, plastic, or iron. When the specimens have these two properties: simplistic geometry and homogeneous material the center of gravity can be calculated using analytical methods learned from a Statics engineering course. For example, knowing the CG for a cylinder, we can test the specimen on our device and compare the numbers to the known value. All the tests for validation were done in this manner. 
 
To validate the device with respect to the previously mentioned product requirements, several tests were performed. First, by running the device through the Take CG Measurements option several product requirements are simultaneously met. The Arduino (and rest of the device) is powered through 120V by being plugged into a standard wall outlet. After the device is tared with the fixture, the component can be placed on the plate, the calculations and operations are performed automatically. When timing the operation with a stopwatch the device consistently performs the calculations in ~52 seconds, meeting the < 60 second requirement. Additionally, the load cells are specified for weights of 50 pounds. To validate the weight limit, tests were performed with objects with point-load-like weight distribution right above an individual load cell and found the plate distributed the load effectively to not overload the cells. The tests show that with objects of 50 pounds or less will not overload any one load cell. With the top plate being over 20 inches wide, objects of that size or less can be measured. The budget had a remaining $661.57, meeting the $5000 total budget requirement. The device is built with components rated to last for cycles far above the expected use and can perform calculations for over a year without maintenance. Finally, the requirement of 1.0% or 0.1 inches of X, Y, and Z directions for the CG was met by performed a vast amount of testing (as laid out in the accuracy portion). The device can reach accuracies of ±0.064” in the x and y directions and ±0.134” in the z. The device performs best with objects of at least 1 kg in mass with. Also, to note measurements are more accurate the closer the cg of an object is to the front of the testing device. For best measurements objects should try to be placed with their CG on the front half of the testing table closest to the origin. All the product requirements provided by the client have been met by the MASSPOINT team.
=Team Members=
thumb|left 	Piyush Basnet 
Major: Mechanical Engineering 
Hometown: Kathmandu, Nepal 
Email: basn6967@vandals.uidaho.edu	thumb|left	Joseph Cornwall 
Major: Mechanical Engineering 
Hometown: Moscow, Idaho 
Email: corn6093@vandals.uidaho.edu
300px|thumb|left	Cameron Eggart
Major: Mechanical Engineering
Hometown: Walla Walla, Washington 
Email: egga1491@vandals.uidaho.edu	 	
 	Mark Jaszkowiak
Major: Mechanical Engineering
Hometown: Boise, Idaho 
Email: jasz8067@vandals.uidaho.edu	 	
 	Keegan Stanphill
Major: Mechanical Engineering
Hometown: Auburn, Washington 
Email: stan5417@vandals.uidaho.edu	 	
=Additional Documentation=
Project Schedule
Meeting Minutes
Client Interview
Presentations