Sam Evans, Anthony Lokar, System Analysis 1
Alejandro Nunez, Benjamin Schneider
Group A – Instr. Richard Busick, GTA Jin Yang February 19, 2015
Executive Summary
During the system analysis process, the team downloaded data from the automatic control system (EEPROM) through MATLAB and then observed the value recordings on excel. The team then converted the recordings into physical parameters of: current, voltage, supplied power, and supplied incremental and total energy for each time phase. To make the calculations for the parameters, the team referenced the readouts from the Arduino and plugged-in the values into formulas. This process allowed for the optimization of certain parts of the code to conserve the battery life of the Advanced Energy Vehicle (AEV) and to further observe its behavior on the track from a quantitative standpoint.
The experiment was designed to aid groups in the coding for their AEV. By plotting the physical parameters of power and time, the team observed how much energy each portion of the code required. The graph was then broken up into various phases corresponding to the code (See Figure 2 in the Appendix). Then, the amount of energy required for each portion of code was recorded in Table 1 of the Appendix. From the data, it was noted that more power was required to move the AEV at higher speeds. Examining the graph (Figure 1 in the Appendix), between the three and five second mark the AEV had a supplied power of 8 Watts, using about 8 Joules of energy to maintain the speed over 2 seconds (see Table 1 in the Appendix). At this point, the AEV was moving slower than the five to six second marks, which had a supplied power around 11.5 watts.
The process of analyzing can aid the group with the coding of the AEV to make it energy efficient. There should be an optimal speed for both travel and power usage. Also, from the graph (Figure 1 in the Appendix) it was observed that more energy was required to increase the speed of the AEV from a resting position. By reducing the variation of speed the AEV travels, more energy may be conserved.
During the lab the team encountered various errors. Incorrect installation and set up of the MATLAB program meant that the team could not analyze the data collected on the AEV. The team worked around this issue by connecting the AEV to a new computer that had successfully installed the program. The team also ran into the issue of only discovering COM port 1 on the computer. This port was reserved for the computer, and could not be used. By plugging in the micro USB to different ports on the computer, an operating port was found. The team was then able to upload the code to the Arduino.
While running the AEV on the test desk stand it is recommended that one member holds the vehicle. Since the code was based on time it did not impact the data acquired by the AEV. Also, holding the AEV in place assured that the propellers did not run into the edge of the stand, potentially damaging them. It is also recommended that each team member has the sketchbook and MATLAB program downloaded and properly installed, that way, if one team member is experiencing difficulties uploading the code, the micro-USB could be transferred to another computer without losing any time.
During this lab the energy consumption of different functions in the AEV code was observed. It was noted that the higher the speed of the AEV, the more power was required. A large amount of energy was also required to reverse the motors on the AEV. The process of collecting data from the AEV and analyzing it will be used in the future in order to optimize the final code created for the AEV.
Appendix
(Click to enlarge)
Table 1: Energy Required for Each Phase of the AEV Code
Figure 1: Graph of Power Over Time for the Test Code
Figure 2: Phases for Each Section of the Energy Analysis Code
Energy Analysis 1 Code
void myCode()
{
reverse(1); // Reverses the motor for correct orientation
motorSpeed(4,0); // Makes all motors go at 0% power
goFor(1); //Repeats the command for 1 second
celerate(4,0,30,2); // Accelerates all motors from 0% to 30% power over 2 seconds
motorSpeed(4,30); // Makes the motors run a 30% power
goFor(2); // Repeats the last command for two seconds
reverse(4); // Reverses all motors
motorSpeed(4,40); //Makes all motors run at 40% power
goFor(1); // Repeats the last command for 1 second
brake(4); // Brakes all motors
goFor(1); // Repeats last command for 1 second
reverse(4); // Reverses all motors
motorSpeed(4,20); // Runs all motors at 40% power
goFor(1); // Repeats last command for 1 second
brake(4); // Brakes all motors
// And here——————————————————————————–
} // DO NOT REMOVE. end of void myCode()


