I recently figured out a way to use GPS 3-dimensional velocity data and the direction-cosine-matrix information in real time as a plane flies along, to estimate the 3 dimensional wind vector, and the 3 dimensional air speed vector, without a pitot tube or any other sort of airspeed sensor. It has been tested, and it works quite well.
 
The core of the theory for estimating wind speed is described here.
 
The basic idea is to first estimate the airspeed vector by relying on the fact that the determinant of the direction cosine matrix is equal to one. Therefore, when a plane rotates, the magnitude of the change in the GPS velocity is equal to the magnitude of the airspeed, times the magnitude of the change of the appropriate column of the direction cosine matrix. Then, once you know the airspeed vector, you can compute wind vector. Built into the algorithm is an immunity to any yaw error in the matrix.
 
The algorithm only works when the plane is rotating around the yaw or pitch axis, but not much rotation is needed, and once the wind vector is measured, it can be locked in during straight flights, and used to compute the airspeed even if the plane no longer yaws or pitches. However, when the plane is yawing and pitching, the algorithm produces a steady stream of up-to-date wind estimates, so it will work in situations (like the field where I fly) in which the wind varies in time and space.
 
As a bonus, the algorithm includes the vertical component of the wind, which of course is the slope or thermal lift, so we plan to develop a lift-seeking algorithm for sailplanes.
 
I want to thank Peter Hollands, who contributed a great deal to the development of the algorithm. He implemented the wind-compensation portion of the computations, made a lot of test flights, and wrote scripts to convert the raw telemetry to spreadsheets for analysis, and to kmz files for display in Google Earth.

Here is a jpg file, a spreadsheet, and a Goolge Earth kmz file, from one of Peter's flights.
 
Note in the kmz file that Peter has a plane icon to indicate which way the plane is heading, as determined by the direction-cosine matrix. Note that there is a very clear indication of the crab angle of the plane, so the firmware knows which way the plane is pointing, which way it is moving and which way the wind is blowing.
 
Peter's tests were successful, he was able to fly comfortably in heavy winds, including landing the plane in RTL mode.
 
Wind compensation is presently an option in the MatrixPilot code under the Source tab in the project repository, and will be available in the next release of the download code.
 
Once again, thanks to Peter Hollands and the rest of the UAV DevBoard team.
 
Best regards,
Bill Premerlani

Tags: DCM, airspeed, wind

Views: 3339

Reply to This

Replies to This Discussion

Bill,

If you were to add mag-heading and rudder position sensor, do you think it could estimate wind direction as well ??

Just thinking,
Dane
Hi Dane,

Well, actually we have figured out how to estimate wind direction and speed, without a magnetometer and without a pitot tube for measuring airspeed. It has been tested, it actually works. So, for airplanes, you can get by just fine without a magnetometer or an airpeed sensor.

Here is another link to the theory.

Best regards,
Bill
I wanted to put dummy pitot tubes just for scale look . now it seem I don't have to or can't :)). Good work , team,
Bill
I understand that the pitot is not used. I was thinking that if I were to assume that yaw and lateral slip were zero that I could estimate wind direction in order to add compensation for upcoming manuvers.

Also you mentioned two gps, I experimented with two placed the antenna in the wingtips roughly 30 feet apart for an INS... We ran into a few problems:
1. While banked one of the two was shadowed by the fuselage, putting a third in the top of the vertical stabilizer.
2. If you don't monitor the dop and correct for it seem that the geometry of the plane changes.
The experimnting that we did was a few years ago for a home brewed INS using a piper archer, beechcraft A36 and a vans rv-9 as test platfoms.

Dane
Hi Dane,

Thanks for your continued discussion on the subject. I am glad that you're interested, and I enjoyed your reporting of some of the things you've tried.

You said: "I understand that the pitot is not used. I was thinking that if I were to assume that yaw and lateral slip were zero that I could estimate wind direction in order to add compensation for upcoming manuvers."

I agree. If you assume that plane's airspeed vector is in the direction that the plane is pointing, and if you know the ground speed vector, it is an easy matter to compute the wind vector.

Regarding two GPSs, I don't recall mentioning that. I am using only one GPS receiver. What I said was that I used two sequential GPS measurements of the ground velocity vector. The method I am using produces some rather accurate results by leveraging the accuracy of the DCM algorithm's estimate of the attitude of the plane.

You might want to take a closer look at the paper I wrote to see how the technique works. Its pretty slick. It figures everything out using two sequential measurements from one GPS receiver, and the elements of the direction cosine matrix. There are two key concepts:

1. You can compute the magnitude of the airspeed vector from changes in the ground speed vector and changes in the direction cosines, by relying on the fact that determinant of the direction cosine matrix is one. So, the magnitudes of vectors are preserved when they are transformed. As a result, the magnitude of the change in the ground speed vector is identically equal to the magnitude of the airspeed vector, times the magnitude of the change of the row of the direction cosine matrix that is aligned with the fuselage.

2. Once you have airspeed, you can combine that information with ground speed to determine wind speed. That part is pretty easy, its just vector algebra.

Then, when you have the wind speed vector, you can take it into account in navigation and control.

Peter Hollands has tried it out in some heavy winds. The controls anticipated the wind during turns, crabbing just the right amount. His telemetry data agrees with the actual wind speed and direction at the field that day.

Best regards,
Bill
Bill,

RE two GPS: sorry, it must have been a senior moment. I have been doing a bunch of reading lately, and confused this thread with another.

I’ll spend more time with the doc and modeling, forgive me for thinking out loud.

The rational of my questions are based on my constant search for 'alternate redundancy'… in this case I think that INS/AHRS systems can use components of auto-yaw as additional input. The components of auto-yaw contain heading, rudder position and others.

Dane
Hi Dane,

Right. I realized later on that you must be thinking about using 2 GPS for "alternate redundancy".

No need to apologize for thinking out loud, that is just fine.

Best regards,
Bill
Amazing development. A lift seeking sailplane would be very interesting.

I would like to fly a 4 servo flaperon wing for best performance. This means 8 servo inputs (inc control) and 7 servo outputs. Do you know anybody who has expanded the UAVDevBoard to do more servos?

Regards, Matt
Hi Matt,

I do not know anybody to has expanded the UAVDevBoard to 8 inputs and 7 outputs. As it stands, its 5 inputs, 6 outputs.

The next generation of the board will have 8 inputs and 8 outputs.

Best regards,
Bill
Hi Rana,

I will try to attach the schematic and layout. Wish me luck.

Billu Bhaiya
Attachments:
Just read the linked pdf file. If I have understood things correctly, the results should apply not just to a fixed wing aircraft but also to a helicopter in forward or backwards flight. And equation 6 should hold even in sidewards flight. This would be quite useful as pitot tubes generally don't give good results on helicopters due to the downwash of the rotor blades.
Hi OpticalFlow,

I think the results could be revised and extended to helicopters, and possibly even quadricopters. When I have some time, I will look into it, or perhaps you could do that.

Certainly the results hold for a helicopter in forward or backwards flight, where there is airflow along the helicopter to align the "fuselage" of helicopter with its airspeed vector. But I am not sure if equations 4, 5, and 6 apply in other cases. The problem is the matrix that relates the airspeed vector to the "fuselage" vector may be changing as fast as the airspeed vector.

But I think the method can be extended by studying the case of a quadracopter. The trick is going to be to discover what the airspeed vector is aligned with during a hover. I think that it might be the horizontal projection of a vector that is parallel with the rotor shaft.

The case that I am worried about is a hover in a wind. In that case, a quadracopter "leans" into the wind.

Best regards,
Bill

RSS

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service