I have had a concern for some time about the attitude controller command model. I have had considerable difficulty in tuning heli’s to follow the target (desired) attitudes and rates. There are two parts to this concern. The first is that the attitude controller does not allow for any delay in the system, whether it be for controller computations or actuator. In some of my system identification efforts on helicopters, I’ve determined the delay in the helicopters to be around 40 milliseconds. If you look at the desired versus actual rate traces, I’ve seen 100 to 140 milliseconds. The second is the command model doesn’t represent physically the response of a helicopter. It takes time for the helicopter rotor head to develop the roll/pitch/yaw moment. It appears that the current command model assumes that the moment/acceleration is developed instantly. It is my belief that this makes tuning aircraft more difficult. The rate controller is at a disadvantage because it is trying to make the aircraft achieve an unrealistic target response. Aircraft with a quick response can be pretty easily tuned but those with a lagged response are more difficult to tune, requiring that the command model be slowed down considerably. I think slower responding aircraft could be tuned, providing a better response, if these concerns are addressed.
I have devised a new command model that provides a more realistic target response. It is based on a transfer function with a zeroth order numerator and 2nd order denominator, a second order lag. The response is defined with a damping ratio and natural frequency. The damping ratio is set to 0.95 to provide an nice approach to the steady state request with no overshoot. The time to steady state is defined by the user with the frequency. Time to steady state is 1/freq where the frequency is given in hz.
Here is a comparison of the attitude response between the current model and 2nd order lag transfer function. It is important to note that I have modified the output of the rate logging to log the feedforward rate that results from the pilot request. The input_tc for the current command model was 0.5 and the natural frequency for the 2nd order lag was 0.67 hz. The input is a step input to 20 deg requested roll angle. The current command model is shown on bottom with the 2nd order lag model shown on top. You can see the desired rate (red line) on both models start very sharply but the 2nd order lag model is rounded at the peak where the current command model has a sharp reversal. The start of the attitude response is rounded on the 2nd order lag where the current command model is very sharp. Both do a good job with a smooth approach to the target attitude
Next is the rate command model. This is a yaw rate command. The current command model yaw is shown on bottom and is basically a ramp in rate to 80 deg/s with a constant acceleration of 250 deg/s/s. This doesn’t model the actual response very well and makes it difficult for the actual aircraft to keep up. I used the same 2nd order lag model to accelerate the aircraft to the desired yaw rate which is shown in the top plot. The frequency was the same as the attitude response. So it could be increased for the rate response. Probably 2 hz, which produces a time to steady state rate of 0.5 seconds, would be a better choice. Again with the second order lag model, the aircraft response is better modeled and gives the aircraft a fighting chance to keep up.
I have the proposed command models and the time delay in the feedback path coded up. I hope to go and test this on an actual heli in the coming weeks.