I am currently working on a project for a Lego Mindstorms EV3 autopilot using Matlab/Simulink. Basically, I am using a closed loop control system with a PID controller for the control of the control surfaces. I'm using Simulink to construct the autopilot block diagram. The feedback loop consists of the gyro sensor. Now the gyro sensor is not accurate in the sense that it has some offset. It does not have any bias or noise. I need to get rid of the offset to give me the actual angle of the device. How could I solve this problem? I could use a low pass filter but how do I know what transfer function to use in Simulink?
Not sure about matlab/simulink, but siply substracting the offset is not possible? I would solve it in code, just
... dx=readDx(); dx=dx-offsetdx; ...
One reason is that the gyro is not being software reset. A hardware reset(unplugging and plugging in gyro) might help too