Thank you very much for the reminder! I will look at the examples later; I had forgotten about them.
Regarding the algorithm, I don’t have any good ideas at the moment. It might be possible to directly interpolate between the two PIDs using speed.
As speed increases, the efficiency of heli control decreases with increasing speed until one of the blades stalls. But to be honest, I think this feature might not be used by many people because we usually control the heli in Loiter mode or auto mode, and the flight controller will generally find a way to achieve the specified speed. I just thought of this; we might not need to spend too much effort on the attitude PID issue.
However, the RPM control PID will definitely be useful because the heli may use different RPMs depending on the mission. For example, it will increase RPM for high-speed flight or high maneuverability and decrease RPM for just hovering, thereby reducing power consumption.
I think direct interpolation might work. For example, set the highest and lowest RPM, and let the FC automatically switch to the corresponding PID.
I am sorry, it’s just an idea I haven’t tested yet. I spent too much time dealing with copter issues.
Considering the weight might be more complex. I think mot_exop might already serve a similar function? I’m not sure; we might need to focus more on the center of gravity issue. At the large cargo UAV (plane) development company I used to work for, they would input weight and center of gravity before takeoff, just like an airliner. However, for heli and copter, it’s more about hanging the payload for transport, so I think we might not need to spend too much time on this.
Actually, the main reason I want to only change the data in the RAM is because I’m concerned about the write-erase lifespan. The PID values are generally lower during heli takeoff and landing because there is no speed. Of course, resetting all parameters before the next flight is also what I hope for, just like setting MOT_HOVER_LEARN to 1; after a power-off, the FC always resets MOT_THST_HOVER.