JeffElecRC
Oct 26, 2005, 12:23 AM
Hi,
About me:
I'm an electrical eng student at Carleton U in Ottawa, Canada. I'm interested in making my own autopilot from the ground up (starting with the stability and control portion, then moving up to the navigation functions). I've been doing alot of research on the sensors and control loop aspect. I'm a capable programmer in ASM and C, and I can do circuit design; however, my control loop theory is a bit lacking (especially the practical implementation thereof). I was hoping you guys could help me out here.
My question:
I originally planned to use two SMM gyros from analog devices for the roll/pitch axis. My research indicated that a gyro alone would result in drift over several minutes due to integration error. Is it possible to increase the sampling rate to completely eliminate this? i.e. assuming I'm using 8-bit microcontrollers, use a stand-alone uC for each gyro, sample and integrate it as fast as possible, and return the integration sum to the autopilot processor?
If I incorporate an acceleromter to measure tilt in the same axis as the gyro to "realign" the gyro integrator to center... how do I incorporate the accelerometer into the feedback loop without it feeding incorrect readings during a coordinated turn?
My other thought was to use differential accelerometers, one on each wingtip, and a double integrator to measure roll of the aircraft. I presume that gravity and centripedal force during a coordinated turn will be the same on both wingtips therefore integrating the difference between the two of them should give you roll. Is there any problem with doing this? Or do I face the same problem of gradual integration sampling error? Could this be compensated for by adding a condition that says if the aircraft is "approximately" flying straight-and-level according to the integrator, and the values of the accelerometers are the same, then reset the integrator to zero.
Anyway. My last question is could you guys give me some links to good PRACTICAL information about autopilot control loops and implementing them in code?
Thanks alot. Sorry for the wordy post!
About me:
I'm an electrical eng student at Carleton U in Ottawa, Canada. I'm interested in making my own autopilot from the ground up (starting with the stability and control portion, then moving up to the navigation functions). I've been doing alot of research on the sensors and control loop aspect. I'm a capable programmer in ASM and C, and I can do circuit design; however, my control loop theory is a bit lacking (especially the practical implementation thereof). I was hoping you guys could help me out here.
My question:
I originally planned to use two SMM gyros from analog devices for the roll/pitch axis. My research indicated that a gyro alone would result in drift over several minutes due to integration error. Is it possible to increase the sampling rate to completely eliminate this? i.e. assuming I'm using 8-bit microcontrollers, use a stand-alone uC for each gyro, sample and integrate it as fast as possible, and return the integration sum to the autopilot processor?
If I incorporate an acceleromter to measure tilt in the same axis as the gyro to "realign" the gyro integrator to center... how do I incorporate the accelerometer into the feedback loop without it feeding incorrect readings during a coordinated turn?
My other thought was to use differential accelerometers, one on each wingtip, and a double integrator to measure roll of the aircraft. I presume that gravity and centripedal force during a coordinated turn will be the same on both wingtips therefore integrating the difference between the two of them should give you roll. Is there any problem with doing this? Or do I face the same problem of gradual integration sampling error? Could this be compensated for by adding a condition that says if the aircraft is "approximately" flying straight-and-level according to the integrator, and the values of the accelerometers are the same, then reset the integrator to zero.
Anyway. My last question is could you guys give me some links to good PRACTICAL information about autopilot control loops and implementing them in code?
Thanks alot. Sorry for the wordy post!