I need help with solving this. I am not too savvy with Matlab and was hoping I could get some help on here. Thanks in advance!
%% Initial Conditions:
% Initial Quaternion Elements (t=0):
q0 = [0.57 0.57 0.57]'q40 = 0.159% Initial Body Rate:
w0 = [0.1 0.1 0.1]' % rad/s
% Inital State:
state0 = [q0;w0]% Final time (sec)
tf = 50;%% Integrate
[t, state] = ode45(@KEQuaternion, [0 tf], state0);%% Plot
%plot(t, state*180/pi); grid
%xlabel('Time(sec)');
%ylabel('Euler Angles (Deg)');
%hold on; plot(t, 90*ones(size(t)), 'r--');
%legend('\psi','\theta','\phi','singular angle for \theta')
function statedot = KEQuaternion(state)%% Inputs:
% t :time(sec)
% state :states(rad), 3 by 1 vector
%% Outputs:
% statedot :Time derivate of states (rad/s), 3 by 1 vector
%% Define (or Redefine with current values):
q = [state(1); state(2); state(3)];w = [state(4); state(5); state(6)];%% Given:
% Quaternion Feedback Gain Matrices (4 cases):
% Case 1:
K1 = [201 0 0; 0 110 0; 0 0 78];% 10% inaccurate:
mew = 0.9;% Rate Gain Matrix:
D = 0.316*[1200 0 0; 0 2200 0; 0 0 3100];% Asymmetric rigid spacecraft inertia matrix:
J = [1200 100 -200; 100 2200 300; -200 300 3100];% Skewed Symmetric Matrix:
OM = [0 -w(3) w(2); w(3) 0 -w(1); -w(2) w(1) 0];u = mew*(-OM*J*w-D*w-K1*q)q4 = -1/2*w'*q%% Kinematic Equation for Quaternion
omegadot = OM*w+u;qdot = 1/2*OM*q + 1/2*q4*w;statedot = [omegadot;qdot]end
Best Answer