For my MS thesis, i am proposing "Adaptive tuning Fuzzy PID controllers". Is this topic viable?
Secondly i would start off by simulating this in Matlab/ Simulink. For this i need to have Matlab / Simulink model of the PID controller for ardupilot mega. Now, is there any effort already done in this direction? How should i go about it?
AFAIK nobody is yet working on this. It is one area that the APM is sorely lacking. People frequently complain about the complexity of PID gain tuning.
People often claim that other stabilization boards work pretty much out of the box with minimal tuning. So I think writing some adaptive control loops would be very useful.
Autopilot boards like Paparazzi have demonstrated the usefulness of adaptive control loops in cases like structural damage (losing a section of wing). Having something like this could really add to safety.
Actually Now i am the point where i need a matlab/ simulink model for APM pid control. I need to ask
1. Any link explaining the APM pid control loop in detail so that i may start making matlab/ simulink model?
2. Any work previously done regarding APM pid on simulink/ matlab?
3. Is it a better and fast approach to start working on the fuzzy logic controller in arduino and combine it with the existing code?
I need valuable advice.
I would first look at how the Paparazzi project is using adaptive control loops. That should give you some ideas.
For the simulation I'd just use the SITL setup people are using here. If you want to model the formulas directly in matlab then you'll have to look at the code. I'd suggest starting with ArduPlane first, since it should be less complicated.
As Jake suggests, using SITL is the way to go. It will give you a pretty accurate idea of how well your control code is working.
You should also have a talk to Jon Challinger. Jon is re-working the control code in ArduPlane in preparation for the next major release. He has split out the control code into separate libraries, and has developed some much nicer control algorithms. See for example http://code.google.com/r/mrchallinger-wip/source/browse/?name=pullr....
So SITL is the way to go. Now for gain scheduling PID controller using fuzzy logic, either:
a) I need to develop arduino code for fuzzy logic from scratch, as i dont find it anywhere. OR
b) Design the Fuzzy logic control in MATLAB/ Simulink and target the Arduino Mega 2560 for implementation
After this i have to interface fuzzy controller with PID Controller code at the repository and then SITL.