Search the Community
Showing results for tags 'flight control system'.
Found 3 results
DerekF posted a blog entry in Digital Flight Control System for Foiling DinghiesElectronics module and servo now fully mounted on spirit and actuating the flap with torque to spare! First flight in mid June is on track! Last steps are some linkage adjustments and test tank time (in my hot tub)!
DerekF posted a blog entry in Digital Flight Control System for Foiling DinghiesWith much of the code and working and sensors talking to my Arduino board, it was time for some real world testing this past weekend. I always try to find as much information online regarding sensor characteristics or what has worked for others, but at some point there is no substitute for empirical data. At the heart of the feedback loop is our ability to measure altitude. We will be measuring altitude with a waterproof sonar sensor similar to those used in automotive bumpers. There is lots of data online about sensing all sorts of items including still / non-turbulent water. There is very little data online however, about the sensor's ability to accurately measure range to turbulent water. Not wanting to take my laptop out on the UFO for a live test, I decided to use my hot tub (jets going full throttle) to simulate very turbulent, moving water like we might see on a rough day on a UFO. The results were good news / bad news. The good news was that the sensor seemed totally unbothered by the turbulent water (vs. flat water). The bad news is that the sensor's ability to give accurate readings drops off a cliff as the sensor becomes off perpendicular from the turbulent water. Some of this can be solved with filtering and throwing out values that are clearly nonsensical on the high or low side. But reality is that we will need multiple sensors mounted at different roll angles. We will then choose which one to read based on the heel angle of the boat. Luckily, we have a good IMU on board with accel's and gyro's that should help us pick. I chose three sensors based on a +/-20 degree field of regard for the sensors and a max roll angle of +/-30 degrees for the UFO based on boat dimensions and a 1m ride height. Additionally, if the altitude sensor function in the code does not return a sensical value, I will have the PID loop operate under the assumption that elevation is unchanged or perhaps just max out flap camber. Typically, when heeled to windward, you want all the lift you can get and if you are heeled far to leeward you need to bring the boat back down off the foils and start over anyway. Last thought, if the multi-sonar sensor approach seems too impractical a radar or laser/optical altimeter could also be used. These sensors are more expensive but tend to have much wider fields of regard. There are a few available with good documentation for Arduino and that operate at K or Ka band. X-band is impractical as GPS carrier signals are in the X-band and we may run into RF co-existence / self-jamming issues (should a GPS ultimately be necessary). As a bonus we could use a doppler radar / lidar to also get boat speed through water. Thanks for reading! If
DerekF posted a blog entry in Digital Flight Control System for Foiling DinghiesA few more updates on the project with the selection of a servo and battery. Servo Sizing: I decided to actually measured the torque required to actuate the flap. I did my measurement out of the water and therefore I only measured the resistance of the linkage and the resistance of the rubber "spring" that mates the foil flap to the mainfoil. I did the measurement using a pull scale attached to the wand 6 inches from the pivot point of the wand. I found the required torque to be ~32 oz. at 6 inches -- or 192 in-oz's. Converting this to kg-cm which is how servos are spec'd, we are looking at 13.8 kg-cm for the linkage and rubber "spring" resistance. Note: I did this experiment without the paracord attached as it will not be necessary once the servo and linkage is installed. As discussed earlier, determining the amount of force imparted by water rushing past the flap is a complex fluid dynamics problem however there are several great calculators for RC aircraft servos online. I used the one at the link below: http://www.radiocontrolinfo.com/information/rc-calculators/rc-airplane-calculator/#Torque I had to make a few assumptions regarding servo deflection as I have not fully designed the linkage but all results were within a pretty tight range. If we were foiling through air we would need ~0.2 oz-in of torque to operate our flap at 18 knots airspeed. Given that water is ~825 times as dense as air, I will assume we need to multiply by 825 to get 165 oz-in of torque in addition to the 192 oz-in to overcome the rubber spring force. This gives us ~356 oz-in required or 25.6 kg-cm. Therefore, our total theoretical torque required to actuate the flap will be 25.6 kg-cm. The other feature we will need is self-locking. Looking at my GPS logs, even on high wind days, I am spending about a third of my time not on the foils. On lighter days, it can be over fifty percent. During this time, the main foil flap is at max lift when the boat is moving forward and the wand is being pushed back. This does add more drag but allows the boat to enter foil-assisted planing modes. But having to provide constant servo torque even when not foiling will likely kill the battery pretty quickly and seems wasteful. To be on the safe side, I have selected a 32 kg-cm part that has metal gears and is self locking. Some waterproofing will need to be done but there are countless tutorials on how to do this online. This part should have plenty of torque to actuate the foil flap and the self locking feature will save battery juice. Power Budget: With all parts now chosen, it's time to choose a battery that will meet our needs. As the battery is likely to be the physically largest component of the system, the battery size will drive the enclosure sizing as well. My power budget is below and the result looks ugly! Amps Volts Power (W) Arduino Mega 0.5 5 2.5 IMU 0.1 5 0.5 Sonar 0.1 5 0.5 GPS (optional) 0.5 5 2.5 Servo (Stall Current) 5 7.4 37 Total 43 Runtime 4 hours Wh required 172 2S LiPo Operating V 7.4 Ah required 23.24324324 The largest 2S RC battery I could find was 8Ah max. There are bigger batteries out there but options are few. The 800 pound gorilla in the room is the servo. While we might be able to get away with a smaller servo, having the torque headroom makes me feel much better especially on a prototype. Not to mention that worm gear, locking servos aren't too common so choices are limited. A linear actuator might also be an option but they typically respond much slower than rotary servos and are heavy and expensive--I will do some research in this area. The other design difficulty if we try to mimic the current mechanical system, is that even while not trying to foil, we will constantly be using servo torque / battery power just to fight the flap's rubber "spring" to max out flap deflection on the main foil. Soooo.....this leads me back to insisting on a self-locking servo so that we aren't using battery charge to max out flap deflection even when in irons. If a suitable self-locking servo was not able to be identified another options is to use a GPS to determine boat speed over ground and assume that it is equal to boatspeed through the water. Yes, I know that doesn't take ocean current into account, but I think it's a small price to pay right now to extend battery life. Ocean current could be taken into account at a later date with tide charts built into the firmware as well as heading data from the GPS or IMU. We could also implement a button on the tiller extension that allowed the sailor to activate the foiling system when ready to fly. My worry with a button is placement and wiring / cable harness. Any thoughts here from the peanut gallery? If we limit current draw to the servo until we are actually trying to foil, an 8Ah standard battery will give us about 90 minutes of foiling time under (close to) worst case power draw. I would still like to see more battery life, but 90 minutes of time actually on the foils is quite a bit. Hopefully, real world testing will tell us that we don't use as much power and can get closer to 2 hours of foiling time--we'll see. Sampling and Filtering of Ultrasonic Sensor: While out foiling a few days back it occured to me that simply using the sonar to look at current elevation is not really what we want. We want to know what the "average" elevation is over a ~1m stretch of water. This reduces the effect of wavelets or even small boat wake (big boat wake is a different story). The other thing we need to be cautious of is false readings. When looking at the sonar sensor output, I occasionally see 0.0cm readings. Clearly, these erroneous readings need to be filtered. As a result, I have decided to take 5 samples over a 1m distance (assuming 12 knots of boatspeed). My code then takes the median value. This mid-level vote (MLV) system comes close to the average of the readings and automatically eliminates outliers. MLV systems are often used in redundant aircraft altimeters for this very reason. The code is pretty flexible and if sample size or sample frequency needs to be updated it is not hard. Data Logging: Last thought of the post: we will probably need some data logging for the prototype phase. Specifically, it will be useful to understand the delay between commanding a deflection on the foil flap and seeing the boat actually pitch up. Understanding control loop delay will really help in tuning PID loops and eventually allow testing of algorithms to deal with more complex and challenging wave terrain. I have put zero thought energy into how to implement the data logger, but it needs to be on the tech roadmap. Thoughts?