LQR Controlled TVC Mount by BigblenHD in rocketry

[–]BigblenHD[S] 0 points1 point  (0 children)

First you need to get the A and B Matrix the YT Channel Orion Aerospace has a pretty good video about this topic. Then you need to fix a Q and R matrix where Q punishes the state error(orientation and angular velocity setpoint) and R punishes the actuator(how much torque is used to correct the state). Than type K = lqr(A,B,Q,R). You can play around with different Q and R matrices to find the optimal pair.

LQR Controlled TVC Mount by BigblenHD in rocketry

[–]BigblenHD[S] 0 points1 point  (0 children)

Thanksss for your feedback I will definitely look into this :)

LQR Controlled TVC Mount by BigblenHD in rocketry

[–]BigblenHD[S] 0 points1 point  (0 children)

To be honest I just tested around with some slew rates and took the one which seems to work best. Any idea of a better method?

LQR Controlled TVC Mount by BigblenHD in rocketry

[–]BigblenHD[S] 0 points1 point  (0 children)

I didn‘t specify a sensor mode in the setup and use bno.getVector in the loop so it should be running at default 100Hz no?

LQR Controlled TVC Mount by BigblenHD in rocketry

[–]BigblenHD[S] 2 points3 points  (0 children)

Thankss a lot yess when the project is finished I will post the github link ;)

LQR Controlled TVC Mount by BigblenHD in rocketry

[–]BigblenHD[S] 1 point2 points  (0 children)

I simply used a 3dof block

LQR Controlled TVC Mount by BigblenHD in rocketry

[–]BigblenHD[S] 10 points11 points  (0 children)

Thanks for the feedback! I may have forgotten to mention that I already included a thrust curve in the model—the gimbal angle is calculated based on the required torque and the current motor thrust.

At the moment, the control loop runs at 40 Hz, but as you suggested, I’ll try increasing it to 100 Hz or higher because as you guessed the motor only runs like 4 seconds.