1function mrac_theta_p = mrac_vector(eta_p, theta_ves_hat, theta_e_hat, F_C, F_tol, frc_ctrl)
2
3 kp = zeros(3,3);
4 p21 = zeros(3,3);
5 p22 = zeros(3,3);
6
7 Me_hat = theta_e_hat(:,1:3);
8 De_hat = theta_e_hat(:,4:6);
9 Ke_hat = diag((ones(3,1).*4 - abs(eta_p)\eye(3))*F_C);
10
11 M_hat = theta_ves_hat(1:3,:);
12 D_hat = theta_ves_hat(4:6,:);
13
14 for i=1:3
15 if frc_ctrl(i) == 1
16 kp(i,i) = -Ke_hat(i,i)/M_hat(i,i);
17 p21(i,i) = D_hat(i,i)/M_hat(i,i);
18 p22(i,i) = Ke_hat(i,i)/M_hat(i,i);
19 else
20 kp(i,i) = 1/(M_hat(i,i) + Me_hat(i,i));
21 p21(i,i) = kp(i,i)*(D_hat(i,i) + De_hat(i,i));
22 end
23 end
24
25 mrac_theta_p = [zeros(3,3); kp; p21; p22];