Monday, May 17, 2010

System identification

Took a crack at a control system over the weekend.

First tried model estimation using linear regression (input = ω's, control input, output = ω at next time step) to get a first-order system in each axis independently. Designed a lead compensator for pitch/roll (using angle estimate and low-passed gyro signal) and a lag for yaw (just using the gyro signal), but that was way unstable (oscillatory).

So I turned down the gains, but it was still oscillatory. 

Figured I needed to do some more system identification, so I put in a double chirp on each control input; swept up to 3 Hz. Bode ETFE didn't tell me much (I also don't really know how to interpret it, aside from there possibly being a pole of some sort at a slightly higher frequency than the end of my sweep), but it gave me more data on which to use the same linear regression technique to estimate coupled equations of motion. Designed an LQR off of that, and that gave me something very similar to what I'd had, but with the gains even lower.

First pass produced some funny gains from the integrated yaw rate to aileron and elevator control inputs. So changed the linear regression method to force decoupling of the yaw and pitch/roll modes. Tried that, worked all right (better than the lead/lag compensators, but probably just due to the lower gains), but there is a 4 Hz oscillation; doesn't explode (probably due to nonlinear effects), but definitely still there. At that high a frequency, I think it's either sensor mounting compliance (sensors are mounted on a sprung platform to reduce vibration noise), or servo or rotor dynamics.

What next? Perhaps I can try gain stabilization by putting an additional pole (at 2 Hz) on the yaw axis to give it a 40 dB/dec HF rolloff, like on the other axes. And if the problem is non-colocated control, then the additional phase lag will make it easier to add phase stabilization at 4 Hz.

Can also try a better system model; run the chirp up to 5 Hz this time to try to capture these dynamics. With this data, I can also try a parameter-based model identification (which is basically what I ended up doing when I forced the regression to decouple yaw and pitch/roll), like in Tischler's "System Identification Modeling of a Model-Scale Helicopter". Yeah, that sounds like what I'm trying to do...

No comments:

Post a Comment