# How to develop motion model for RC plane

I'm interested in controlling an RC plane autonomously, and to do that I need a basic motion model.

How would I do this? Particularly without a wind tunnel?

Constructing a mathematical dynamic system model of your aircraft is always the first task for a control engineer. In my oppinion (without claim to completeness) there are three ways to do this:

1. Analytically: For this, you normally start out by acquiring air-tables via either software (such as XFLR5, or a bit more basic XFOIL, or a CFD Software package) or wind-tunel data. The forces and moments acting on the aircraft can then be inserted into the well-known equations of motion of an aircraft, to acquire the dynamic system of an aircraft. This method is useful especially when the aircraft only exists on paper and has not been built (yet). However it requires some skill/money to acquire the air-data correctly.

2. Experimentally: Instead of relying on careful analysis, you can also just observe what the aircraft does in flight and do a system identification. For retrofitting an autopilot to an existing aircraft which already flies, this is significantly cheaper, easier and can be more exact then to analytically identifying the aircrafts's dynamics. The approach is as follows: You take your aircraft and fly a series of system identification maneuvers and record the flight data. This is easily done, because you need a data collection system anyways, as you want to outfit the aircraft with an autopilot. You then process this data via some math (I recommend this or this books, which should be some light reading (attention sarcasm)) to obtain your dynamic model. If done correctly, this method is extremly powerful and not only works for aircraft but also for rotorcraft. The US Army for example often uses CIFER, a commercial software toolbox based on MATLAB/Simulink. Because identified systems are built from flight data, it is guaranteed to be correct, which is always a big plus! Unfortunately, I am not aware of any publicly available software packages which do the heavy lifting of implementing system identification algorithms for you. However a lot of papers on this topic, especially for small UAVs exist, for example here or here. Especially the latter paper already includes transfer functions, perhaps these transfer functions already fit your airframe sufficiently well? If not, I think it is feasible to copy these methods with not too much work (although, I think some work will be necessary)... Update Edit: Apparently the widely available Ardupilot software already contains a system identification mode which generates the necessary inputs and logs the aircraft response. As far as I can see you still have to implement the actual system identification algorithm yourself, however this at least makes the data collection easy.

3. Experimentally tuning: In this method, you take an easy to understand control structure (Most of the times this is a cascaded PID-controller) and tune the gains by hand until you are satisfied with the results. Normally you would need some intuition or do some analysis if your control structure is suitable for stabilizing the system in question, but for drones you can just use the typical cascaded PID controller. This methods on the one hand is the most popular and on the other hand requires the least knowledge about your aircraft. For drones this method is dirt cheap and simple. Because of this 99% of the drones (and even some manned aircraft) are tuned this way. There are plenty of guides of how to do this on the internet, I just picked one at random here. Note however that empirical tuning does not give you any analytical stability margins, also the performance can be bad, depending on how good or bad you are at tuning your aircraft.

I love your idea of first developing a model for your aircraft before developing a controller, as it opens up the field of control engineering! There exist so many cool controllers, and everyone is just doing PID control, but constructing a good model can be quite a lot of work... Also, I am sorry for not giving you more concrete pointers of how to apply or develop methods 1 and 2, but then I would be sitting here tomorrow... I hope you find a good solution for your needs.

• Yeah, allowing for MPC, trajectory optimization etc. I see PID loops everywhere, maybe it's because motion models are too complex or something idk Commented Jan 29 at 18:25
• Btw how do you collect flight data for short range behavior? IMU gives some information but doesn't include absolute speed and can't be used for more than a couple seconds. Commented Jan 29 at 19:37
• @FourierFlux You can use either a GPS sensor or pilot tubes for determining speed. Also AoA and Sideslip vanes can be used in addition to determine the speed vector. Often you just use all of these sensors for development. Please accept the answer, if you are satisfied... Commented Jan 29 at 20:59
• @FourierFlux Perhaps a relatively interesting paper for you is the following one: ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7942783, or this one tandfonline.com/doi/full/10.1080/23311916.2022.2114196. You will find more similar examples on google.scholar.de by searching for UAV, fixed wing and system identification as keywords. Commented Jan 30 at 13:14