I am new to robotics, and currently trying to develop a purely numerical simulation of a quadcopter. As I understand, the problem of quadcopter control includes take-off control, hover stabilization and landing. However, I am only working with navigation control right now, foregoing take-off and landing. I am imagining a scenario wherein the quadcopter is already off the ground at a certain height (is that called hovering?) and it has to follow a trajectory in the presence of simulated noise (which I intend to introduce through random deviations in the angular orientations of the quadcopter) . The trajectory is nothing but a finely discretized curve in XYZ space (with a constant Z for now).
I am trying to build on this tutorial. It's a highly simplified model, just taking into account the thrust, external torques and frictional forces on the quadcopter. I have two questions here: 1. Is my setup even feasible just to demonstrate a proof of concept fuzzy control? 2. In this setup, and according to the initial condition mentioned above, I understand that if the quadcopter already has to be at a certain height h, then the net thrust in Z direction should balance the gravitational force. However, that would be the case at any height above the ground. But to get it to height h, how do I calculate the angular velocities in body frame that are required to keep it at that height? I am asking this because by means of affecting these velocities I'll be able to add some noise to the system and then work my way from there.
The platform for this numerical simulation is to be Matlab, if that information adds anything. I am planning to use only Matlab scripts for now, and not Simulink. As for my knowledge of dynamic systems, I understand basics of linear and rotational kinematics. I have only worked with implementing text book algorithms in a standard computer science course, and that's as far as my programming experience goes.