||The first thing I wanted to implement was the control force
relation with airspeed. The faster the air flows over the control surface,
the more force is needed to make control movements.
To make a control system work this way, in the simplest form you need the airspeed and the control surface deflection angle info. At low airspeed, the force needed to make control deflections gradually increases, but even at the control limits, the opposing force will still be low. In this operation mode, the control is hardly self-centering.
When airspeed increases, the opposing force increases more rapidly with control deflection. In the upper range of airspeed, the centering force becomes very strong.
A control system with the above described force effect can be achieved by making a closed loop servo system with adjustable loop gain: An electric motor is mechanically linked to the control stick, while the control stick movement is sensed by a position sensor. (potmeter) An error amplifier measures the deviation of the control stick position and compares it to a reference. The resulting error signal is amplified, and drives the electric motor that moves the control stick in the direction to reduce the error signal. The bigger the amplifier gain, the higher the motor drive to move the stick back to reference position. The below diagrams show the basic system and response curves.
For my first trials I have made a simple servo system with power buffer for driving medium power motors, (up to ~ 120W)
The above schematic shows the servo system: I use L272 power OpAmp as
error amplier and driver for the NPN/PNP power buffer. The motor is driven
in H-bridge configuration: The right side of the circuit is an inverting
amplifier that drives the motor with the opposite signal of the left side.
The reference here is a fixed voltage at half the supply voltage. You could
add trim control to this reference, in order to shift the servo center
position. Also dynamic flight signals could be added to make the stick
vibrate or jolt.
At the control center position, the position potmeter wiper is also at half the suppy voltage. As soon as the stick is moved, the position signal differs from the reference voltage. This difference is amplified and drives the DC motor in the opposite direction. The amount of motor drive determines the opposing stick force. By increasing the amplier gain, the motor drive will increase for the same stick deviation.
Below some pictures of the servo/buffer. Due to class AB configuration, sufficient heat sinking is needed for the 4 power transistors, as the peak dissipation can go up to 50W when driving the rudder pedals force feedback motor. Average power is not high, as rudder is mostly in center position during normal flight.
Amplifier gain can be changed by reducing the resistor value that is
connected to the potmeter wiper. A simple way to achieve this is via
a light dependent resistor (LDR). In dark condition, this resistor has a
very high resistance. The LDR is light-coupled to an LED. If a current is flowing though the LED,
the LDR will reduce in resistance, thus reducing the total resistance
connected to the wiper and increasing the gain.
The circuit above shows the LED drive. In order to achieve a servo gain proportional to airspeed, the current to the LED that lights the LDR needs to vary with airpeed as well. I use the parallel port DAC 4th channel to drive three current sources, so that the three control channels (elevator, aileron and rudder pedals) can be controlled. Each current source has a gain-sensitivity adjustment for adjusting the force variation with airspeed for the three controls independently.
The tests with the Rudder
pedals with force feedback have shown that the system works. The force
accuracy may not be perfect, but it is a huge improvement over the static
centerforce of standard pedals.
It should be noted that the above analog system could very well be incorporated in a micro controller chip. Flightsim data, position feedback, and servo gain control could then be done via software. I would recommend to make use of a dedicated local position feedback, as reading the the position feedback from joystick via FS leads to unacceptable delays.