function [inputs] = initializeInputs(opts_param) %% Default values for opts opts = struct('setpoint', false, ... 'ground_motion', false, ... 'ty', false, ... 'ry', false, ... 'rz', false ... ); %% Populate opts with input parameters if exist('opts_param','var') for opt = fieldnames(opts_param)' opts.(opt{1}) = opts_param.(opt{1}); end end %% Load Sampling Time and Simulation Time run init_sim_configuration.m %% Define the time vector time_vector = 0:Ts:Tsim; %% Create the input Structure that will contain all the inputs inputs = struct(); %% Set point [m, rad] if opts.setpoint setpoint = zeros(length(time_vector), 6); setpoint(ceil(10/Ts):end, 2) = 1e-6; % Step of 1 micro-meter in y direction else setpoint = zeros(length(time_vector), 6); end inputs.setpoint = timeseries(setpoint, time_vector); %% Ground motion if opts.ground_motion load('./mat/weight_Wxg.mat', 'Wxg'); ground_motion = 1/sqrt(2)*100*random('norm', 0, 1, length(time_vector), 3); ground_motion(:, 1) = lsim(Wxg, ground_motion(:, 1), time_vector); ground_motion(:, 2) = lsim(Wxg, ground_motion(:, 2), time_vector); ground_motion(:, 3) = lsim(Wxg, ground_motion(:, 3), time_vector); else ground_motion = zeros(length(time_vector), 3); end inputs.ground_motion = timeseries(ground_motion, time_vector); %% Translation stage [m] if opts.ty ty = zeros(length(time_vector), 1); else ty = zeros(length(time_vector), 1); end inputs.ty = timeseries(ty, time_vector); %% Tilt Stage [rad] if opts.ty ry = 3*(2*pi/360)*sin(2*pi*0.2*time_vector); else ry = zeros(length(time_vector), 1); end inputs.ry = timeseries(ry, time_vector); %% Spindle [rad] if opts.ty rz = 2*pi*0.5*time_vector; else rz = zeros(length(time_vector), 1); end inputs.rz = timeseries(rz, time_vector); %% Micro Hexapod u_hexa = zeros(length(time_vector), 6); inputs.micro_hexapod = timeseries(u_hexa, time_vector); %% Center of gravity compensation mass = zeros(length(time_vector), 2); inputs.axisc = timeseries(mass, time_vector); %% Nano Hexapod n_hexa = zeros(length(time_vector), 6); inputs.nano_hexapod = timeseries(n_hexa, time_vector); %% Save if no output argument if nargout == 0 save('./mat/inputs.mat', 'inputs'); end end