# Control methods

**URL:** <https://discuss.px4.io/t/control-methods/38761>\
**Category:** PX4 Autopilot\
**Created:** [May 15, 2024, 8:06am UTC](https://discuss.px4.io/t/control-methods/38761 "2024-05-15T08:06:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Amin\_Bassiri](https://discuss.px4.io/user_avatar/discuss.px4.io/amin_bassiri/32/16383_2.png) [@Amin\_Bassiri](https://discuss.px4.io/u/Amin_Bassiri)\
**Post date:** [May 15, 2024, 8:06am UTC](https://discuss.px4.io/t/control-methods/38761/1 "2024-05-15T08:06:27Z")

</div>

Hello, is there anyone who knows how to implement my control method, for example (NMPC, MPC, etc.)? instead of the PID controller on the quadrotor? Where should I go to change the control methods, and where should I start?

---

<div class="post-metadata">

**Author:** ![xdwgood](https://discuss.px4.io/user_avatar/discuss.px4.io/xdwgood/32/5429_2.png) [@xdwgood](https://discuss.px4.io/u/xdwgood)\
**Post date:** [May 16, 2024, 12:33am UTC](https://discuss.px4.io/t/control-methods/38761/2 "2024-05-16T00:33:47Z")

</div>

You can add your control method in src/lib/mpc…,then use it and replace rate/attitude/vel/position control,For example ,if you want to replace rate control,you can use your method here:

> const Vector3f att\_control = \_rate\_control.update(rates, \_rates\_setpoint, angular\_accel, dt, \_maybe\_landed || \_landed);

change

> const Vector3f att\_control = \_mpc\_control.update(rates, \_rates\_setpoint,);

---

<div class="post-metadata">

**Author:** ![Amin\_Bassiri](https://discuss.px4.io/user_avatar/discuss.px4.io/amin_bassiri/32/16383_2.png) [@Amin\_Bassiri](https://discuss.px4.io/u/Amin_Bassiri)\
**Post date:** [May 16, 2024, 8:35am UTC](https://discuss.px4.io/t/control-methods/38761/4 "2024-05-16T08:35:29Z")

</div>

ok, thank you 🙂 I got it.
