% THis function will interpolate between any two points on a given discretized trajectory % Inputs % current_t - the current time step, or dependent variable of the trajectory % des_sim_traj - the entire vector/array of the wanted output trajectory % des_sim_time_traj - the corresponding dependent vector for des_sim_traj % Outputs % interp_ref - the interpolated value between the points bounding current_t % Created by Brevin Banks % Modified 4/20/2023 function interp_ref = traj_interp(current_t,des_sim_traj,des_sim_time_traj) % find the closest point to time in the chirp function [ d, ix ] = min(abs(des_sim_time_traj-current_t)); if ix <2 ix =2; % can't interpolate starter position without more than 2 samples elseif ix>length(des_sim_traj)-1 ix = length(des_sim_traj)-1; % can't interpolate end position without if more than 10000 samples end before_ref = des_sim_traj(ix-1); after_ref = des_sim_traj(ix+1); before_t = des_sim_time_traj(ix-1); after_t = des_sim_time_traj(ix+1); interp_ref = ((after_ref - before_ref)/(before_t-after_t))*current_t*(current_t-before_t)+before_ref; end