diff --git a/controls/model/modelParameters.m b/controls/model/modelParameters.m
index f01946f1f512a9e114c26b68b801b0581d243f04..5af568c42ae034703801eb4d55c26d80c4cc5738 100644
--- a/controls/model/modelParameters.m
+++ b/controls/model/modelParameters.m
@@ -1,9 +1,9 @@
-    % Model Parameters
+% Log Analysis Toggle    
+    logAnalysisToggle = 1;          % 1 for log analysis, 0 for normal operation
+    
+% Model Parameters
     m = 1.244;                      % Quadrotor + battery mass
     g = 9.81;                       % Acceleration of gravity
-%     Jxx = 0.0277;                   % Quadrotor and battery motor of inertia around bx (pitch)
-%     Jyy = 0.0218;                   % Quadrotor and battery motor of inertia around by (roll)
-%     Jzz = 0.0332;                   % Quadrotor and battery motor of inertia around bz (yaw)
     Jxx = 0.0130;                   % Quadrotor and battery motor of inertia around bx (pitch)
     Jyy = 0.0140;                   % Quadrotor and battery motor of inertia around by (roll)
     Jzz = 0.0285;                   % Quadrotor and battery motor of inertia around bz (yaw)
@@ -33,4 +33,65 @@
     height_controlled_o = (((Rm*If + ...
     + (((omega_o * 2 * Rm * Kv * Kq  ...
     * Kd + 1)^2) - 1)/(4* Rm*Kv^2*Kq ...
-    *Kd))/Vb)*(Pmax- Pmin)+Pmin);
\ No newline at end of file
+    *Kd))/Vb)*(Pmax- Pmin)+Pmin);
+
+% Import Data and determine errors
+if logAnalysisToggle == 1
+    
+    % Import Data to Workspace
+    data = importdata('loggingAnalysis/logFiles/logData.csv');
+
+    % Set up time vector
+    time = data.data(:, 1);
+
+    % Determine x position error
+    x_setpoint = data.data(:, 25);
+    x_position = data.data(:, 20);
+    x_error = timeseries(x_setpoint - x_position, time);
+
+    % Determine y position error
+    y_setpoint = data.data(:, 26);
+    y_position = data.data(:, 21);
+    y_error = timeseries(y_setpoint - y_position, time);
+
+    % Determine z position error
+    z_setpoint = data.data(:, 27);
+    z_position = data.data(:, 22);
+    z_error = timeseries(z_setpoint - z_position, time);
+
+    % Determine pitch error
+    pitch_setpoint = data.data(:, 9);
+    pitch_value = data.data(:, 23);
+    pitch_error = timeseries(pitch_setpoint - pitch_value, time);
+
+    % Determine roll error
+    roll_setpoint = data.data(:, 10);
+    roll_value = data.data(:, 24);
+    roll_error = timeseries(roll_setpoint - roll_value, time);
+
+    % Determine yaw error
+    yaw_setpoint = zeros(length(time), 1); % NEEDS UPDATED WHEN LOG FILE INCLUDES YAW SETPOINT
+    yaw_value = ones(length(time), 1); % NEEDS UPDATED WHEN LOG FILE INCLUDES YAW VALUE
+    yaw_error = timeseries(yaw_setpoint - yaw_value, time);
+
+    % Determine pitch rate error
+    pitchrate_setpoint = data.data(:, 11);
+    pitchrate_value = data.data(:, 6);
+    pitchrate_error = timeseries(pitchrate_setpoint - pitchrate_value, time);
+
+    % Determine roll rate error
+    rollrate_setpoint = data.data(:, 12);
+    rollrate_value = data.data(:, 5);
+    rollrate_error = timeseries(rollrate_setpoint - rollrate_value, time);
+
+    % Determine yaw rate error
+    yawrate_setpoint = data.data(:, 13);
+    yawrate_value = data.data(:, 7);
+    yawrate_error = timeseries(yawrate_setpoint - yawrate_value, time);
+
+    % Pull motor commands from log
+    x_command = data.data(:, 14);
+    y_command = data.data(:, 15);
+    z_command = data.data(:, 8);
+    yaw_command = data.data(:, 16);
+end
diff --git a/controls/model/test_model.slx b/controls/model/test_model.slx
index d95ac846d3726b2898b9a6499f563588a52764c8..fcf716855f95156454eb3da5d19ef6c99b22301c 100644
Binary files a/controls/model/test_model.slx and b/controls/model/test_model.slx differ