Friday, May 22, 2020

IoT Platform Endurance

The Lithium-Cobalt cells are generally rated at 230-240Wh/kg maximum theoretical energy density. Actual driving adds cooling/control and discharge limit, and the packs have equivalent 150 energy density for Tesla battery packs. The lithium manufacturing distillation electricity/fuel cost grows hyperbolically in relation to purity and energy density. For an all-around IoT platform, the cell energy density should be set at 190Wh/kg , and reserving 10% ion for extended battery life equates to 170Wh/kg. The general purpose IoT forces a landing/termination when ion is at 10% level because the 10% level can't sustain flight as shown in videos below. So, no protection or cooling circuits needed.

The GensAce900mah/Tattu1000mah airsoft riffle battery has capacity of 970mah. 4-S configuration. Flight time is 0.97Ah x 90% x 4 x 3.7V / 22.2W(power for cruise with HD video) = 0.582 hour = 35 minutes. The implication is that the craft should be reproduced for 1 billion units and deployed around the globe for traffic monitoring/road side assistance applications. Every person should have an assistant drone nearby whenever they step out of the door. Think terminator micro drones but on human's side. Each cell weighs 18.9 grams. Energy density 0.97Ah x 3.7V / 0.0189kg = 190Wh/kg. Takeoff weight is 250 grams. Total battery energy is 0.97Ah x 4 x 3.7V = 14.4Wh.

The DJI Mavic mini has 50% less flight time of 23 minutes with HD video while carrying 20% more "fuel" with 17.28Wh battery energy, as this video shows, .
The reason DJI's drone is much less fuel efficient is because the disk area of our IoT platform is much larger. DJI's 4 4-inch props have a combined 50 square inch area, which can be covered by a single 8 inch prop. Our IoT platform has a 19 inch prop with 280 square inches area, but the straight blades give a sloped wing loading halving the effected area to 140 square inches, equivalent of being covered by a 13.4 inch prop. We can calculate that our IoT platfrom's fuel efficiency is (17.28Wh/0.383h) / (14.4Wh/0.582h) = 45W / 24.7W = 1.82 times that of DJI's efficiency, or 1.68 times considering GPS power consumption of 8% is absent in this IoT build. So, the 140/50=2.8 disk area ratio is roughly the square of fuel economy ratio because 1.68x1.168=2.8. And fuel economy is proportional to prop diameter ratio, 13.4 / 8.0 = 1.68. This is expected Newtonian physics.

The endurance build dives in this video,
, which dives the same way as the other builds for adrenaline diving. It just needs extra labor to build. The extra 19 grams of battery pack weight needs 15 grams shaved from (sorted by increasing labor) the GPS (5.5 grams absent), body (5 grams reduction), fasteners (0.6 grams reduction), rotor(1.5 grams reduction), and ESC (2.5 grams reduction). And the custom battery pack itself needs most of the extra labor.

Battery Pack Build And Measurements
Use cuticle scissors/cutter and soldering iron at 350C to remove old wiring first, then the GensAce900 pack needs to be trimmed. The rotary tool cutting disk is commonly made of insulating ceramics, and we use it to cut out the first cell with the exposed perforation clamped tab. Cut the glass fiber plate itself so that the cell tabs remain soldered to the terminal. Do not cleave the cell tabs then attempt to solder the cell tabs because the cobalt alloy does not weld with other metals even with specialty soldering flux such as aluminum flux. 

The Tattu1000 2S cells have the exact same dimensions with a solid terminal glass fiber plate weighing 0.3 grams heavier per cell. The following illustrations use the Tattu1000. In the pictures, you can see the exposed lower right cell tab that is the middle pole of each pack. This is different from the GensAce900 pack shown in the 250 gram weight breakdown page, where the cell tab is behind in the canal of the carved glass fiber plate.
To start the build, the 2 packs are staggered by 1 inch with a temporary taping. The 22AWG charging wires are bent to the opposite poles and tied to the protruding top pack for the right side of the craft.
After soldering the 5 wires, the additional middle wire is tapped then soldered to the top positive pole of the lower pack. The yellow terminal is what cascades the 2 packs. After the temporary taping are removed, the permanent taping adds 0.26 grams of 26cm clear tape. The XT30 plug is 0.8 grams,  9 soldering joins weight 0.18 grams, and charging wire set weighs 2.4 grams. The Tattu1000 yields a 76.6+2.4+0.8+0.26+0.18=76.6+3.64=80.2 gram pack; The GensAce900 yields a 75.4+3.64=79 gram pack.

The GensAce900 capacity is measured between 949 and 998mAh at first charge cycle, depending on how balanced the cells are when they are depleted.
The Tattu1000 cells have the exact same capacities. The following picture's measurement was taken after about 1 dozen charge cycles and taken after this Tattu1000 packs were used for the video "World record endurance". You can also see the exposed the lower right cell tab.
The pack gave 870mAh electricity as shown in the picture of charging after the endurance flight video was taken. That means that the pack forced a landing with about 100mAh reservation.

Carbon fiber main shaft

The carbon fiber main shaft is 0.05mm smaller in diameter than titanium shaft. The short bell shaft amplifies the wabbling 5 times to 0.5mm as shown in thie video, , and the solution is to insert a 2mm wide tape on the wall of the bell shaft hole. But the tape can be easily cut by the sharp edges of the bell shaft whole and the shaft itself. So, the rim of the shaft whole needs very subtle scraping, and the shaft's end needs grinding where the grinding grain runs from the shaft bottom to the shaft side. And, also, when closing the bell with the stater, the bell needs to be lowered with an angle in a controlled manner to prevent snapping the bell on to the stater. The snapping would cut the tape. 

ESC Build

Solder 3 main motor wires, and 2 points for each of the 2 ESCs that have the power supply pre-tin removed, 2 points for power distribution to buck converter, 2 points for camera/vtx power, totally 11 points, 0.23 grams of added solder.
The factory default Startup power with 3S is too weak, as the video below on the left.

Also, the maximum throughput is barely keeping up with punch torque as the above video on the right. 


Velcro strips use are split in the middle to cut the weight to half to bring down the craft under 250 grams.

Notice that the 250g weighing uses alternative grips(1.5g extra), alternative servo arrangements (1.2g+ 0.4g esc tabs extra but 0.6g solder reduction), CC3D+RX wire(0.6 reduction), alternative tail ESC(0.9g reduction), alternative tail boom(0.4g reduction), alternative RX kit wires (0.3 grams extra), and alternative tail motor(0.3 grams reduction). Net weight gain 0.6 grams.

Maintaining optimal airfoil angle 
The well-known helicopter dynamic says that cruising enhances lift. So, RPM needs to be lowered for the world record endurance to keep the cruising airfoil at 6.2 degrees at 100/200 throttle level. This is done by the transmitter RPM tuning knob to lower throttle 5 points from 85 to 80. The knob is multiplexed into throttle channel in the transmitter.

16 Amp ESC Substitutes

The 16 Amp BlHeli products earlier than year 2016 are not to be used because either the dampening can not be disabled or PI loop not available.

20 Amp BlHeli ESCs in the market don't have such problem. Further more, all 20 Amp and 16 Amp BlHeli (not BlHeli_s nor BlHeli_32) have the exact same weight.  Blade Thrust brand has navy blue PCB, DYS uses green, and LittleBee uses black. BlHeli_s or BlHeli_32 are not suitable because neither has the PI loop to provide constant stable RPMs.

Further fuel economy optimization

The overall efficiency has 2 peaks as shown in the video

The first hump (the extremely high peaks) is dominated by intrinsic efficiency of the propeller fluid dynamics curve because the motor electrical current is low and generates little waste heat; The second hump (very small, almost insignificant) is the high electrical efficiency given by the motor's tendency to need high RPM. 

Here below, the manufacturer's spec states that both 4004 300Kv and 400Kv motors weigh 52 grams, but, during our build note, we found that the 400Kv motor weighs 17.6g(bell) + 32.3g(stater) + 1.3g(without trimming/carving) = 51.2 grams. The peaks and humps are marked in the drawing.

We will optimize toward the first hump because the second hump's efficiency can only be, at best, 70% of the first hump's efficiency. We will not optimize with the thumbnail/front chart of the video because it only optimize the motor electrical input/output power ratio for the second humps, not the overall efficiency.

Based on manufacturer's specs, we can plot the trend of the efficiency of producing 250 gram thrust in relation to the motor's weight.
Bisection approximating the optimal fuel economy steps:

      1. Trading 7 grams of fuel weight for 7 grams addition of the motor weight for higher efficiency
efficiency is 15.4g/W , 15.4/14.3 =  1.077 , or 7.7% better efficiency
fuel quantity is (80-7)/80 = 0.9125, or 8.8% less fuel
so it actually reduces flight time by about  1.1%

      2. Trading 4 grams of fuel 
          efficiency is 15 , 14.9 / 14.3 = 1.049, or 4.9% more efficiency
          fuel quantity is 76/80 = 0.95, or 5% less fuel on board
          so, the trading reduces flight time by about 0.1%

      3. Trading 2 grams of fuel
          efficiency is 14.7 , 14.7/14.3=1.028 , or 2.8% more efficient
          fuel 78 / 80 = 0.975 , or 2.5% less fuel on board
          overall increase of flight time by 0.3%

      4. Trading 1 grams of fuel
          efficiency is 14.5 , 14.5/14.3=1.014 , 1.4% more efficient
          fuel 79 / 80 = 0.9875 , or 1.25% less fuel
          overall increase flight time 0.15% 

     So, the optimal weight of motor should be between 52 and 53 grams. The propeller's intrinsic efficiency is assumed to be 16g/W . Because this intrinsic value is fixed for the physical propeller, but motor weight can go up indefinitely, the assumed value should not be too far off from the real value, and the motor weight needs to be stipulated to achieve the maximum flight time.
     Optimizing tail motor fuel economy should not produce any significant improvement because the "first hump" is intrinsic of the propeller. Further hindering reinforcing tail motor efficiency is the fractioning of the tail power to the overall power ratio. The tail only consumes a small fraction of the overall power, so during the optimization steps, the overall electrical efficiency gain needs to be a small fraction of calculated motor efficiency gain, however, the weight taken out of fuel is directly taken out of flight time without fractioning. On the other direction of reducing tail motor weight, the current motor weight is only 2% of craft weight, so it is not possible to gain any flight time of 2% or higher by tail weight reduction. 

>>> print len


>>> print th


>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> th = 6.5

>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> th = 6.5005

>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> len = 11

>>> th = 5.5

>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> th = 5.409

>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> th = 5.4095

>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> th = 5.49

>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> len = 12

>>> th = 6

>>> math.sqrt((12*math.cos(math.radians(th))-len*math.cos(math.radians(6)))**2 + (12*math.sin(math.radians(th))+23-len*math.sin(math.radians(6)))**2) - math.sqrt( 23**2 + (len-12)**2 )


>>> 13 / 12


>>> 13 / 12.0


>>> 6.5 / 6.0


>>> 11 / 12.0


>>> 5.5 / 6.0


>>> 13 / 11.0