At last it's fire time.
I set up the static test fire stand as described in my earlier post. With the Arduino-based data acquisition system thoroughly validated, I was ready to rock.
For the first tests I used the v3 nozzle and the Festo MHJ series solenoid valve specified earlier. The v3 nozzle has a design intent of 7 newtons of force given a 100 PSI air supply at sea level.
The first step was to calibrate the force sensitive resistor pad as discussed here. Calibration consists of loading the pad with a series of known test masses and recording the voltages read by the Arduino analog read pin. With a little curve fitting and conversion from test masses (grams) to force (newtons) we get a mathematical relationship between voltage readings and force. Note that the test masses are loaded coaxially with the jet exhaust. Note also that the whole stack of test masses is pretty unstable and rather tricky to balance. This undoubtedly contributes to inconsistent distribution of the load across the resistor pad and adversely influences the calibration
After calibration I ran a series of test fires using progressively higher input pressure up to 100 PSI. The data looks like this:
The main thing to notice is the significant drop in pressure immediately after the valve opens at 1000 ms. The pressure recovers after the valve closes at 3000 ms. This phenomenon is called regulator droop and it affects all self-operated and pilot-operated regulators. Droop is OK as long as we can characterize it and relate it to jet force. We'll use real-time pressure monitoring in the HAPP just like the static fire stand so we'll always know what the jet supply pressure (and therefore force) is at any instant.
The real problem is that the droop pulls the manifold pressure down to about 60 PSI when the regulator is set for 100, thereby limiting the maximum jet force we can achieve. I tried to compensate by increasing the regulator setting as my air compressor goes to 155 PSI. Great idea, but then the limitation of the Festo valve became clear: It won't open when supply pressure is over 100 PSI - not surprising, as the datasheet says it's only rated to 87 PSI. So with this combination of valve and regulator (the regulator on my air compressor), there is no way to deliver 100 PSI to the nozzle.
The other thing to notice is the jet force. When the valve first opens the nozzle sees 100 PSI for an instant. But even then the jet force only achieves 4N versus a design intent of 7N. This is a significant underperformance. As I discussed, the force pad calibration for this setup is highly suspect, so it's best to see some cleaner data before drawing any conclusions.
For the next round I used the improved design of nozzle v6. This nozzle has a design intent of 11N at sea level with 100 PSI air supply. I also changed out the solenoid valve and used an AirTAC 4V230C. This valve has a published operating range of 114 PSI and a 3-position, 2-solenoid actuation that might let us go a bit higher. It has a Cv of 0.67, just enough versus our requirement of 0.65, and it was readily available. For future reference, this kind of 5/3-way valve could be used to power the plus and minus jet pairs on a HAPP axis. We'd need two of the 2/2-way Festo valves to accomplish the same (but the Festo pair would still be significantly lighter).
By looking at the photos, the improved calibration method for nozzle v6 should be apparent. I made a nice flat insert to place over the nozzle during calibration and provide a stable surface for adding test mass. This resulted in much more consistent calibration data and presumably more accurate jet force readings.
The test fire data looks like this:
Again we see the regulator droop (blue line). But now I've compensated by raising the regulator setting to 155 PSI. We achieve a max jet force of about 8.5N, which is within 22% of the target value. The data sheet for the force pad says that +/- 15% accuracy is normal, so we may in fact be getting close to 11N. There's probably no way to know for sure with the current test apparatus.
In addition, the XY resolution of the 3D printer I used can only guarantee the nozzle throat radius is within +/- 9.6% of nominal. We could be under-achieving on jet force in part due to an under-sized nozzle throat. This could be corrected in the future by designing a nozzle with a throat dimension that corresponds to a standard drill bit size. The throat could be reamed after printing to ensure dimensional accuracy.
Since you've persevered through this post, here's a video of some test firings. It may be difficult to appreciate just how loud the nozzle is. I can also tell you the difference in jet force between using the nozzle and simply letting the air vent out of the pneumatic tube is quite dramatic. The nozzle is definitely trying to do its job.
Poor Boba Fett... (Song credit: bometheus)
So what have we learned, and what's next? Well, the nozzles appear to be functioning, perhaps even somewhat close to design intent. But we have not characterized the pressure/force relationship with enough accuracy that we can use it in the flight controller software. As we've pushed the limitations of this test setup as far as practicable, we need another, more accurate approach to measuring jet force.
Fortunately there is a method with the potential to give errors as low as 1%. The general strategy will be to measure the inertia tensor of the HAPP (or a simple mockup) and with the inertia tensor known, we can fire some jets and measure the HAPP's angular acceleration. If we know the tensor and the acceleration then we can solve for the jet force. This follows from Euler's rotation equation:
and the fact that the change in angular momentum (H_dot) is equal to the jet force times the moment arm (how far the nozzle is from the HAPP center of gravity). This is a good strategy because eventually we have to measure the tensor anyway - the control software needs it so it can analyze the phase plane trajectories.
Easy to say, but now we need an appropriate test rig for measuring the tensor. Stay tuned!
P.S. Sorry, I slipped an equation into the blog... been trying not to do that :-)