UPDATE
July '10 - The flight control loading software
developed for the project is
now available
for free.
This section describes some experimental work I did on a DIY
force feedback system with some tests on a modified
joystick. Since then I have done more work on a
force feedback flight
yoke - so click on the image right to see this more
recent project.....
Introduction
Different System Approaches
Attempt 1
Attempt 2
Attempt 3
Software
Test Rig
Effects and Impressions So Far
Way Forward
Introduction
I've seen posts on various flight sim forums
that force feedback joysticks don't seem to work out all
that well for the more serious simmer. I've never actually
tried one so can't comment on how good they are. At the same
time however I've also had mentioned to me how interesting it would
be if there was an effective, low-cost control loading
system - they do seem to have an important role to play in many
commercial training simulators.
Well - always up for a
challenge!
Approaches
To be honest I'm not absolutely sure how
gaming style force feedback joysticks work - well the
principal is simple enough, force effects sent out
from the game to the joystick which are turned into variable
drive torques from electric motors attached to the joystick
motion axes. I've seen these drives described as "servos"
but Roland van Roy's DIY
modifications to an existing
joystick suggest that for some there is no position feedback involved
and a variable voltage demand on the motors is used to
generate what are effectively varying stall torques. These
torques are transferred to the joystick and have to be
resisted by the user and produce the force feedback effect.
The source of the force feedback signals is
pretty much hidden in the game coding, but the range of effects usually
includes various speed dependent effects, rumbles & clunks
of sorts
etc etc.
In
commercial control loading systems the
approach appears to be to model the control surfaces and
transmission elements dynamically as a mass/spring/damper
type system. The equation of motion of this modelled system
includes all the input force effects (including the pilot's
forces acting on the control yoke/stick and the aerodynamic forces
on the control surfaces) and is solved numerically in real
time to yield yoke acceleration, velocity and then position.
This calculated position response is used to drive the yoke
motion which is actually controlled by the drive motors
rather than the pilot - although it feels to the pilot as if
he/she's doing the driving.
The approach reminds me a bit of
power steering systems in which it's not the vehicle
driver's forces that turn the steering wheel but the
underlying hydraulic/electrical drive system.
By fine tuning
the parameters of the equation of motion the response of the
modelled system can be
engineered to match that of the real aircraft and so make
the controls feel the same as the real ones.
I thought this sounded the better approach
and started out with a view to replicate it......hmmm!
Attempt 1
Well, this first attempt came to grief fairly
quickly, foundering on the rock of load sensing! For the
approach to work it is necessary to measure accurately the
forces applied to the yoke by the pilot and to do this some
sort of load sensing is required. It is possible to buy
accurate load sensors, but they cost a fortune and in any
case they need to be cleanly engineered into the control
mechanisms to make sure they are measuring exactly what you want
them to measure. The cheapest options I could find were
Tekscan FlexiForce® sensors and
Peratech QTC Pills, but to
cut the story short couldn't see how to get either to work
sufficiently accurately at a reasonable cost and with a
manageable level of engineering effort. So....
Attempt 2
I think it is possible to retain the majority
of the elements of the commercial control loading approach
but to avoid the need for real-time load sensing. This
involves some manipulation of the system mathematical model
and the way it is solved but effectively involves monitoring
the control yoke position and using its difference from the
calculated position of the modelled system mass together
with an assumed mechanism stiffness to determine
what force must be being applied by the pilot. To test this I wrote a
small software application which reads the data from the
flight sim and does the control loading sums. And to
generate the feedback forces I set up a simple test servo
drive to my basic joystick using high torque RC type servos.
The software and mechanical / electrical systems are
described on page 3.
This approach seemed to work - after a
fashion. The joystick movements generate displacements in
the modelled system mass which can then be turned into servo
movements to generate the matching joystick forces. The
system behaviour can be altered by altering the mass,
stiffness, damping etc parameters in the model however it
was whilst attempting to "tune" this to get believable
control forces that the main problem with the approach
emerged. In short I could solve the equation of motion
without unstable oscillations emerging so long as the system
was "soft" and had a low natural frequency. The trouble is I
think the real aircraft control system mechanics are quite
stiff and have a fairly high natural frequency and to
numerically solve such a stiff system in real time needs a
very fast calculation loop time. My current software loops
at about 25 cycles per second - I think an order of
magnitude faster might really be needed. Without dedicating
a separate PC to the task and somehow also managing the slower
input of data from the flight sim I can't really solve this
with a low cost DIY system! So.......
Attempt 3
You need to move on to page 2 to read about
this one.....
© This site is
copyrighted, If you'd like more information or have any
comments please contact me at