diff --git a/doc/2021-06-23-Nano hexapode.xlsx b/doc/2021-06-23-Nano hexapode.xlsx new file mode 100644 index 0000000..54bb55c Binary files /dev/null and b/doc/2021-06-23-Nano hexapode.xlsx differ diff --git a/figs/IMG_20210625_083801.jpg b/figs/IMG_20210625_083801.jpg new file mode 100644 index 0000000..cce5c24 Binary files /dev/null and b/figs/IMG_20210625_083801.jpg differ diff --git a/figs/acc_top_plat_pos_x.jpg b/figs/acc_top_plat_pos_x.jpg new file mode 100644 index 0000000..de33cef Binary files /dev/null and b/figs/acc_top_plat_pos_x.jpg differ diff --git a/figs/acc_top_plat_pos_x.svg b/figs/acc_top_plat_pos_x.svg new file mode 100644 index 0000000..9533c3a Binary files /dev/null and b/figs/acc_top_plat_pos_x.svg differ diff --git a/figs/acc_top_plat_pos_y.jpg b/figs/acc_top_plat_pos_y.jpg new file mode 100644 index 0000000..67e94db Binary files /dev/null and b/figs/acc_top_plat_pos_y.jpg differ diff --git a/figs/acc_top_plat_pos_y.svg b/figs/acc_top_plat_pos_y.svg new file mode 100644 index 0000000..e9db7e9 Binary files /dev/null and b/figs/acc_top_plat_pos_y.svg differ diff --git a/figs/acc_top_plat_top_view.jpg b/figs/acc_top_plat_top_view.jpg new file mode 100644 index 0000000..6953bc1 Binary files /dev/null and b/figs/acc_top_plat_top_view.jpg differ diff --git a/figs/acc_top_plat_top_view.png b/figs/acc_top_plat_top_view.png new file mode 100644 index 0000000..33ae188 Binary files /dev/null and b/figs/acc_top_plat_top_view.png differ diff --git a/figs/acc_top_plat_zoom.jpg b/figs/acc_top_plat_zoom.jpg new file mode 100644 index 0000000..17358d1 Binary files /dev/null and b/figs/acc_top_plat_zoom.jpg differ diff --git a/figs/bode_Va_dL_effect_k_coef.pdf b/figs/bode_Va_dL_effect_k_coef.pdf new file mode 100644 index 0000000..f721e85 Binary files /dev/null and b/figs/bode_Va_dL_effect_k_coef.pdf differ diff --git a/figs/bode_Va_dL_effect_k_coef.png b/figs/bode_Va_dL_effect_k_coef.png new file mode 100644 index 0000000..a322269 Binary files /dev/null and b/figs/bode_Va_dL_effect_k_coef.png differ diff --git a/figs/bode_Va_dL_effect_m_coef.pdf b/figs/bode_Va_dL_effect_m_coef.pdf new file mode 100644 index 0000000..36a093e Binary files /dev/null and b/figs/bode_Va_dL_effect_m_coef.pdf differ diff --git a/figs/bode_Va_dL_effect_m_coef.png b/figs/bode_Va_dL_effect_m_coef.png new file mode 100644 index 0000000..c291f8c Binary files /dev/null and b/figs/bode_Va_dL_effect_m_coef.png differ diff --git a/figs/bode_Va_dL_effect_xi_damp.pdf b/figs/bode_Va_dL_effect_xi_damp.pdf new file mode 100644 index 0000000..ccf8634 Binary files /dev/null and b/figs/bode_Va_dL_effect_xi_damp.pdf differ diff --git a/figs/bode_Va_dL_effect_xi_damp.png b/figs/bode_Va_dL_effect_xi_damp.png new file mode 100644 index 0000000..9cbbffa Binary files /dev/null and b/figs/bode_Va_dL_effect_xi_damp.png differ diff --git a/figs/control_architecture_hac_iff_L.pdf b/figs/control_architecture_hac_iff_L.pdf new file mode 100644 index 0000000..abada49 Binary files /dev/null and b/figs/control_architecture_hac_iff_L.pdf differ diff --git a/figs/control_architecture_hac_iff_L.png b/figs/control_architecture_hac_iff_L.png new file mode 100644 index 0000000..b1d3999 Binary files /dev/null and b/figs/control_architecture_hac_iff_L.png differ diff --git a/figs/control_architecture_hac_iff_L.svg b/figs/control_architecture_hac_iff_L.svg new file mode 100644 index 0000000..35d1961 Binary files /dev/null and b/figs/control_architecture_hac_iff_L.svg differ diff --git a/figs/control_architecture_hac_iff_L_feedforward.pdf b/figs/control_architecture_hac_iff_L_feedforward.pdf new file mode 100644 index 0000000..5e5e024 Binary files /dev/null and b/figs/control_architecture_hac_iff_L_feedforward.pdf differ diff --git a/figs/control_architecture_hac_iff_L_feedforward.png b/figs/control_architecture_hac_iff_L_feedforward.png new file mode 100644 index 0000000..9577b90 Binary files /dev/null and b/figs/control_architecture_hac_iff_L_feedforward.png differ diff --git a/figs/control_architecture_hac_iff_L_feedforward.svg b/figs/control_architecture_hac_iff_L_feedforward.svg new file mode 100644 index 0000000..010a06d Binary files /dev/null and b/figs/control_architecture_hac_iff_L_feedforward.svg differ diff --git a/figs/control_architecture_iff.pdf b/figs/control_architecture_iff.pdf new file mode 100644 index 0000000..67e4fe8 Binary files /dev/null and b/figs/control_architecture_iff.pdf differ diff --git a/figs/control_architecture_iff.png b/figs/control_architecture_iff.png new file mode 100644 index 0000000..74f253c Binary files /dev/null and b/figs/control_architecture_iff.png differ diff --git a/figs/control_architecture_iff.svg b/figs/control_architecture_iff.svg new file mode 100644 index 0000000..d76ea79 Binary files /dev/null and b/figs/control_architecture_iff.svg differ diff --git a/figs/control_architecture_iff_feedforward.pdf b/figs/control_architecture_iff_feedforward.pdf new file mode 100644 index 0000000..0b2bf84 Binary files /dev/null and b/figs/control_architecture_iff_feedforward.pdf differ diff --git a/figs/control_architecture_iff_feedforward.png b/figs/control_architecture_iff_feedforward.png new file mode 100644 index 0000000..738df26 Binary files /dev/null and b/figs/control_architecture_iff_feedforward.png differ diff --git a/figs/control_architecture_iff_feedforward.svg b/figs/control_architecture_iff_feedforward.svg new file mode 100644 index 0000000..df78d1a Binary files /dev/null and b/figs/control_architecture_iff_feedforward.svg differ diff --git a/figs/damped_iff_plates_plant_comp_diagonal.pdf b/figs/damped_iff_plates_plant_comp_diagonal.pdf new file mode 100644 index 0000000..ca0d9b8 Binary files /dev/null and b/figs/damped_iff_plates_plant_comp_diagonal.pdf differ diff --git a/figs/damped_iff_plates_plant_comp_diagonal.png b/figs/damped_iff_plates_plant_comp_diagonal.png new file mode 100644 index 0000000..b1bbd06 Binary files /dev/null and b/figs/damped_iff_plates_plant_comp_diagonal.png differ diff --git a/figs/damped_iff_plates_plant_comp_off_diagonal.pdf b/figs/damped_iff_plates_plant_comp_off_diagonal.pdf new file mode 100644 index 0000000..b4d7777 Binary files /dev/null and b/figs/damped_iff_plates_plant_comp_off_diagonal.pdf differ diff --git a/figs/damped_iff_plates_plant_comp_off_diagonal.png b/figs/damped_iff_plates_plant_comp_off_diagonal.png new file mode 100644 index 0000000..9447338 Binary files /dev/null and b/figs/damped_iff_plates_plant_comp_off_diagonal.png differ diff --git a/figs/dvf_plant_comp_struts_plates.pdf b/figs/dvf_plant_comp_struts_plates.pdf new file mode 100644 index 0000000..a602135 Binary files /dev/null and b/figs/dvf_plant_comp_struts_plates.pdf differ diff --git a/figs/dvf_plant_comp_struts_plates.png b/figs/dvf_plant_comp_struts_plates.png new file mode 100644 index 0000000..2dfe3be Binary files /dev/null and b/figs/dvf_plant_comp_struts_plates.png differ diff --git a/figs/enc_plant_plates_effect_iff.pdf b/figs/enc_plant_plates_effect_iff.pdf new file mode 100644 index 0000000..d3fe191 Binary files /dev/null and b/figs/enc_plant_plates_effect_iff.pdf differ diff --git a/figs/enc_plant_plates_effect_iff.png b/figs/enc_plant_plates_effect_iff.png new file mode 100644 index 0000000..e32f215 Binary files /dev/null and b/figs/enc_plant_plates_effect_iff.png differ diff --git a/figs/enc_plates_dvf_coh.pdf b/figs/enc_plates_dvf_coh.pdf new file mode 100644 index 0000000..4ab52f3 Binary files /dev/null and b/figs/enc_plates_dvf_coh.pdf differ diff --git a/figs/enc_plates_dvf_coh.png b/figs/enc_plates_dvf_coh.png new file mode 100644 index 0000000..854976f Binary files /dev/null and b/figs/enc_plates_dvf_coh.png differ diff --git a/figs/enc_plates_dvf_comp_offdiag_simscape.pdf b/figs/enc_plates_dvf_comp_offdiag_simscape.pdf new file mode 100644 index 0000000..fb3ab99 Binary files /dev/null and b/figs/enc_plates_dvf_comp_offdiag_simscape.pdf differ diff --git a/figs/enc_plates_dvf_comp_offdiag_simscape.png b/figs/enc_plates_dvf_comp_offdiag_simscape.png new file mode 100644 index 0000000..028f08d Binary files /dev/null and b/figs/enc_plates_dvf_comp_offdiag_simscape.png differ diff --git a/figs/enc_plates_dvf_comp_simscape.pdf b/figs/enc_plates_dvf_comp_simscape.pdf new file mode 100644 index 0000000..49a5439 Binary files /dev/null and b/figs/enc_plates_dvf_comp_simscape.pdf differ diff --git a/figs/enc_plates_dvf_comp_simscape.png b/figs/enc_plates_dvf_comp_simscape.png new file mode 100644 index 0000000..9c76cd8 Binary files /dev/null and b/figs/enc_plates_dvf_comp_simscape.png differ diff --git a/figs/enc_plates_dvf_comp_simscape_all.pdf b/figs/enc_plates_dvf_comp_simscape_all.pdf new file mode 100644 index 0000000..ed3b102 Binary files /dev/null and b/figs/enc_plates_dvf_comp_simscape_all.pdf differ diff --git a/figs/enc_plates_dvf_comp_simscape_all.png b/figs/enc_plates_dvf_comp_simscape_all.png new file mode 100644 index 0000000..d0c9de5 Binary files /dev/null and b/figs/enc_plates_dvf_comp_simscape_all.png differ diff --git a/figs/enc_plates_dvf_frf.pdf b/figs/enc_plates_dvf_frf.pdf new file mode 100644 index 0000000..7c5ad0c Binary files /dev/null and b/figs/enc_plates_dvf_frf.pdf differ diff --git a/figs/enc_plates_dvf_frf.png b/figs/enc_plates_dvf_frf.png new file mode 100644 index 0000000..8a5f76d Binary files /dev/null and b/figs/enc_plates_dvf_frf.png differ diff --git a/figs/enc_plates_iff_coh.pdf b/figs/enc_plates_iff_coh.pdf new file mode 100644 index 0000000..4d32c0c Binary files /dev/null and b/figs/enc_plates_iff_coh.pdf differ diff --git a/figs/enc_plates_iff_coh.png b/figs/enc_plates_iff_coh.png new file mode 100644 index 0000000..bbe13cf Binary files /dev/null and b/figs/enc_plates_iff_coh.png differ diff --git a/figs/enc_plates_iff_comp_offdiag_simscape.pdf b/figs/enc_plates_iff_comp_offdiag_simscape.pdf new file mode 100644 index 0000000..0fa587d Binary files /dev/null and b/figs/enc_plates_iff_comp_offdiag_simscape.pdf differ diff --git a/figs/enc_plates_iff_comp_offdiag_simscape.png b/figs/enc_plates_iff_comp_offdiag_simscape.png new file mode 100644 index 0000000..e2070b7 Binary files /dev/null and b/figs/enc_plates_iff_comp_offdiag_simscape.png differ diff --git a/figs/enc_plates_iff_comp_simscape.pdf b/figs/enc_plates_iff_comp_simscape.pdf new file mode 100644 index 0000000..066296e Binary files /dev/null and b/figs/enc_plates_iff_comp_simscape.pdf differ diff --git a/figs/enc_plates_iff_comp_simscape.png b/figs/enc_plates_iff_comp_simscape.png new file mode 100644 index 0000000..020ac78 Binary files /dev/null and b/figs/enc_plates_iff_comp_simscape.png differ diff --git a/figs/enc_plates_iff_comp_simscape_all.pdf b/figs/enc_plates_iff_comp_simscape_all.pdf new file mode 100644 index 0000000..a58f5e6 Binary files /dev/null and b/figs/enc_plates_iff_comp_simscape_all.pdf differ diff --git a/figs/enc_plates_iff_comp_simscape_all.png b/figs/enc_plates_iff_comp_simscape_all.png new file mode 100644 index 0000000..932aff6 Binary files /dev/null and b/figs/enc_plates_iff_comp_simscape_all.png differ diff --git a/figs/enc_plates_iff_frf.pdf b/figs/enc_plates_iff_frf.pdf new file mode 100644 index 0000000..3bb922a Binary files /dev/null and b/figs/enc_plates_iff_frf.pdf differ diff --git a/figs/enc_plates_iff_frf.png b/figs/enc_plates_iff_frf.png new file mode 100644 index 0000000..da3853e Binary files /dev/null and b/figs/enc_plates_iff_frf.png differ diff --git a/figs/enc_plates_iff_gains_effect_dvf_plant.pdf b/figs/enc_plates_iff_gains_effect_dvf_plant.pdf new file mode 100644 index 0000000..d2fbae8 Binary files /dev/null and b/figs/enc_plates_iff_gains_effect_dvf_plant.pdf differ diff --git a/figs/enc_plates_iff_gains_effect_dvf_plant.png b/figs/enc_plates_iff_gains_effect_dvf_plant.png new file mode 100644 index 0000000..776b220 Binary files /dev/null and b/figs/enc_plates_iff_gains_effect_dvf_plant.png differ diff --git a/figs/enc_plates_opt_iff_comp_simscape_all.pdf b/figs/enc_plates_opt_iff_comp_simscape_all.pdf new file mode 100644 index 0000000..2115172 Binary files /dev/null and b/figs/enc_plates_opt_iff_comp_simscape_all.pdf differ diff --git a/figs/enc_plates_opt_iff_comp_simscape_all.png b/figs/enc_plates_opt_iff_comp_simscape_all.png new file mode 100644 index 0000000..4a915ab Binary files /dev/null and b/figs/enc_plates_opt_iff_comp_simscape_all.png differ diff --git a/figs/hac_iff_plates_exp_loop_gain_diag.pdf b/figs/hac_iff_plates_exp_loop_gain_diag.pdf new file mode 100644 index 0000000..7e6c374 Binary files /dev/null and b/figs/hac_iff_plates_exp_loop_gain_diag.pdf differ diff --git a/figs/hac_iff_plates_exp_loop_gain_diag.png b/figs/hac_iff_plates_exp_loop_gain_diag.png new file mode 100644 index 0000000..1b07afe Binary files /dev/null and b/figs/hac_iff_plates_exp_loop_gain_diag.png differ diff --git a/figs/hac_iff_struts_enc_plates_plant_bode.pdf b/figs/hac_iff_struts_enc_plates_plant_bode.pdf new file mode 100644 index 0000000..9aa24ab Binary files /dev/null and b/figs/hac_iff_struts_enc_plates_plant_bode.pdf differ diff --git a/figs/hac_iff_struts_enc_plates_plant_bode.png b/figs/hac_iff_struts_enc_plates_plant_bode.png new file mode 100644 index 0000000..68d2116 Binary files /dev/null and b/figs/hac_iff_struts_enc_plates_plant_bode.png differ diff --git a/figs/loop_gain_hac_iff_struts.pdf b/figs/loop_gain_hac_iff_struts.pdf new file mode 100644 index 0000000..1732683 Binary files /dev/null and b/figs/loop_gain_hac_iff_struts.pdf differ diff --git a/figs/loop_gain_hac_iff_struts.png b/figs/loop_gain_hac_iff_struts.png new file mode 100644 index 0000000..25cc1bc Binary files /dev/null and b/figs/loop_gain_hac_iff_struts.png differ diff --git a/figs/nano_hexapod_mounted.jpg b/figs/nano_hexapod_mounted.jpg new file mode 100644 index 0000000..476393b Binary files /dev/null and b/figs/nano_hexapod_mounted.jpg differ diff --git a/figs/open_loop_gain_feedforward_iff_struts.pdf b/figs/open_loop_gain_feedforward_iff_struts.pdf new file mode 100644 index 0000000..000f0a2 Binary files /dev/null and b/figs/open_loop_gain_feedforward_iff_struts.pdf differ diff --git a/figs/open_loop_gain_feedforward_iff_struts.png b/figs/open_loop_gain_feedforward_iff_struts.png new file mode 100644 index 0000000..f477db5 Binary files /dev/null and b/figs/open_loop_gain_feedforward_iff_struts.png differ diff --git a/figs/ref_track_hac_iff_struts_pos_error.pdf b/figs/ref_track_hac_iff_struts_pos_error.pdf new file mode 100644 index 0000000..17a36b8 Binary files /dev/null and b/figs/ref_track_hac_iff_struts_pos_error.pdf differ diff --git a/figs/ref_track_hac_iff_struts_pos_error.png b/figs/ref_track_hac_iff_struts_pos_error.png new file mode 100644 index 0000000..3a67579 Binary files /dev/null and b/figs/ref_track_hac_iff_struts_pos_error.png differ diff --git a/figs/ref_track_hac_iff_struts_yz_plane.pdf b/figs/ref_track_hac_iff_struts_yz_plane.pdf new file mode 100644 index 0000000..91b8945 Binary files /dev/null and b/figs/ref_track_hac_iff_struts_yz_plane.pdf differ diff --git a/figs/ref_track_hac_iff_struts_yz_plane.png b/figs/ref_track_hac_iff_struts_yz_plane.png new file mode 100644 index 0000000..e009ace Binary files /dev/null and b/figs/ref_track_hac_iff_struts_yz_plane.png differ diff --git a/figs/ref_track_hac_iff_struts_yz_time.pdf b/figs/ref_track_hac_iff_struts_yz_time.pdf new file mode 100644 index 0000000..fdb93f6 Binary files /dev/null and b/figs/ref_track_hac_iff_struts_yz_time.pdf differ diff --git a/figs/ref_track_hac_iff_struts_yz_time.png b/figs/ref_track_hac_iff_struts_yz_time.png new file mode 100644 index 0000000..c524dcc Binary files /dev/null and b/figs/ref_track_hac_iff_struts_yz_time.png differ diff --git a/figs/ref_track_test_nass.pdf b/figs/ref_track_test_nass.pdf new file mode 100644 index 0000000..5e17f03 Binary files /dev/null and b/figs/ref_track_test_nass.pdf differ diff --git a/figs/ref_track_test_nass.png b/figs/ref_track_test_nass.png new file mode 100644 index 0000000..485c830 Binary files /dev/null and b/figs/ref_track_test_nass.png differ diff --git a/matlab/mat/Khac_iff_struts.mat b/matlab/mat/Khac_iff_struts.mat new file mode 100644 index 0000000..a878320 Binary files /dev/null and b/matlab/mat/Khac_iff_struts.mat differ diff --git a/matlab/mat/Kiff.mat b/matlab/mat/Kiff.mat new file mode 100644 index 0000000..7b9285e Binary files /dev/null and b/matlab/mat/Kiff.mat differ diff --git a/matlab/mat/damped_plant_enc_plates.mat b/matlab/mat/damped_plant_enc_plates.mat new file mode 100644 index 0000000..57017ce Binary files /dev/null and b/matlab/mat/damped_plant_enc_plates.mat differ diff --git a/matlab/mat/feedforward_iff.mat b/matlab/mat/feedforward_iff.mat new file mode 100644 index 0000000..98ad26f Binary files /dev/null and b/matlab/mat/feedforward_iff.mat differ diff --git a/matlab/mat/identified_plants_enc_plates.mat b/matlab/mat/identified_plants_enc_plates.mat new file mode 100644 index 0000000..88143bf Binary files /dev/null and b/matlab/mat/identified_plants_enc_plates.mat differ diff --git a/matlab/mat/identified_plants_enc_struts.mat b/matlab/mat/identified_plants_enc_struts.mat new file mode 100644 index 0000000..a2dd16a Binary files /dev/null and b/matlab/mat/identified_plants_enc_struts.mat differ diff --git a/matlab/mat/reference_path.mat b/matlab/mat/reference_path.mat new file mode 100644 index 0000000..1789eee Binary files /dev/null and b/matlab/mat/reference_path.mat differ diff --git a/matlab/nano_hexapod_simscape.slx b/matlab/nano_hexapod_simscape.slx index a6e905f..efa9835 100644 Binary files a/matlab/nano_hexapod_simscape.slx and b/matlab/nano_hexapod_simscape.slx differ diff --git a/matlab/src/generateXYZTrajectory.m b/matlab/src/generateXYZTrajectory.m new file mode 100644 index 0000000..e3a15da --- /dev/null +++ b/matlab/src/generateXYZTrajectory.m @@ -0,0 +1,48 @@ +function [ref] = generateXYZTrajectory(args) +% generateXYZTrajectory - +% +% Syntax: [ref] = generateXYZTrajectory(args) +% +% Inputs: +% - args +% +% Outputs: +% - ref - Reference Signal + +arguments + args.points double {mustBeNumeric} = zeros(2, 3) % [m] + + args.ti (1,1) double {mustBeNumeric, mustBePositive} = 1 % Time to go to first point and after last point [s] + args.tw (1,1) double {mustBeNumeric, mustBePositive} = 0.5 % Time wait between each point [s] + args.tm (1,1) double {mustBeNumeric, mustBePositive} = 1 % Motion time between points [s] + + args.Ts (1,1) double {mustBeNumeric, mustBePositive} = 1e-3 % Sampling Time [s] +end + +time_i = 0:args.Ts:args.ti; +time_w = 0:args.Ts:args.tw; +time_m = 0:args.Ts:args.tm; + +% Go to initial position +xyz = (args.points(1,:))'*(time_i/args.ti); + +% Wait +xyz = [xyz, xyz(:,end).*ones(size(time_w))]; + +% Scans +for i = 2:size(args.points, 1) + % Go to next point + xyz = [xyz, xyz(:,end) + (args.points(i,:)' - xyz(:,end))*(time_m/args.tm)]; + % Wait a litle bit + xyz = [xyz, xyz(:,end).*ones(size(time_w))]; +end + +% End motion +xyz = [xyz, xyz(:,end) - xyz(:,end)*(time_i/args.ti)]; + +t = 0:args.Ts:args.Ts*(length(xyz) - 1); + +ref = zeros(length(xyz), 7); + +ref(:, 1) = t; +ref(:, 2:4) = xyz'; diff --git a/matlab/src/generateYZScanTrajectory.m b/matlab/src/generateYZScanTrajectory.m new file mode 100644 index 0000000..d40da82 --- /dev/null +++ b/matlab/src/generateYZScanTrajectory.m @@ -0,0 +1,83 @@ +function [ref] = generateYZScanTrajectory(args) +% generateYZScanTrajectory - +% +% Syntax: [ref] = generateYZScanTrajectory(args) +% +% Inputs: +% - args +% +% Outputs: +% - ref - Reference Signal + +arguments + args.y_tot (1,1) double {mustBeNumeric} = 10e-6 % [m] + args.z_tot (1,1) double {mustBeNumeric} = 10e-6 % [m] + + args.n (1,1) double {mustBeInteger, mustBePositive} = 10 % [-] + + args.Ts (1,1) double {mustBeNumeric, mustBePositive} = 1e-4 % [s] + + args.ti (1,1) double {mustBeNumeric, mustBePositive} = 1 % [s] + args.tw (1,1) double {mustBeNumeric, mustBePositive} = 1 % [s] + args.ty (1,1) double {mustBeNumeric, mustBePositive} = 1 % [s] + args.tz (1,1) double {mustBeNumeric, mustBePositive} = 1 % [s] +end + +time_i = 0:args.Ts:args.ti; +time_w = 0:args.Ts:args.tw; +time_y = 0:args.Ts:args.ty; +time_z = 0:args.Ts:args.tz; + +% Go to initial position +y = (time_i/args.ti)*(args.y_tot/2); + +% Wait +y = [y, y(end)*ones(size(time_w))]; + +% Scans +for i = 1:args.n + if mod(i,2) == 0 + y = [y, -(args.y_tot/2) + (time_y/args.ty)*args.y_tot]; + else + y = [y, (args.y_tot/2) - (time_y/args.ty)*args.y_tot]; + end + + if i < args.n + y = [y, y(end)*ones(size(time_z))]; + end +end + +% Wait a litle bit +y = [y, y(end)*ones(size(time_w))]; + +% End motion +y = [y, y(end) - y(end)*time_i/args.ti]; + +% Go to initial position +z = (time_i/args.ti)*(args.z_tot/2); + +% Wait +z = [z, z(end)*ones(size(time_w))]; + +% Scans +for i = 1:args.n + z = [z, z(end)*ones(size(time_y))]; + + if i < args.n + z = [z, z(end) - (time_z/args.tz)*args.z_tot/(args.n-1)]; + end +end + +% Wait a litle bit +z = [z, z(end)*ones(size(time_w))]; + +% End motion +z = [z, z(end) - z(end)*time_i/args.ti]; + +t = 0:args.Ts:args.Ts*(length(y) - 1); + +ref = zeros(length(y), 7); + +ref(:, 1) = t; +ref(:, 3) = y; +ref(:, 4) = z; diff --git a/matlab/src/getJacobianNanoHexapod.m b/matlab/src/getJacobianNanoHexapod.m new file mode 100644 index 0000000..f660c78 --- /dev/null +++ b/matlab/src/getJacobianNanoHexapod.m @@ -0,0 +1,34 @@ +function [J] = getJacobianNanoHexapod(Hbm) +% getJacobianNanoHexapod - +% +% Syntax: [J] = getJacobianNanoHexapod(Hbm) +% +% Inputs: +% - Hbm - Height of {B} w.r.t. {M} [m] +% +% Outputs: +% - J - Jacobian Matrix + +Fa = [[-86.05, -74.78, 22.49], + [ 86.05, -74.78, 22.49], + [ 107.79, -37.13, 22.49], + [ 21.74, 111.91, 22.49], + [-21.74, 111.91, 22.49], + [-107.79, -37.13, 22.49]]'*1e-3; % Ai w.r.t. {F} [m] + +Mb = [[-28.47, -106.25, -22.50], + [ 28.47, -106.25, -22.50], + [ 106.25, 28.47, -22.50], + [ 77.78, 77.78, -22.50], + [-77.78, 77.78, -22.50], + [-106.25, 28.47, -22.50]]'*1e-3; % Bi w.r.t. {M} [m] + +H = 95e-3; % Stewart platform height [m] +Fb = Mb + [0; 0; H]; % Bi w.r.t. {F} [m] + +si = Fb - Fa; +si = si./vecnorm(si); % Normalize + +Bb = Mb - [0; 0; Hbm]; + +J = [si', cross(Bb, si)']; diff --git a/matlab/src/getTransformationMatrixAcc.m b/matlab/src/getTransformationMatrixAcc.m new file mode 100644 index 0000000..cc4dd44 --- /dev/null +++ b/matlab/src/getTransformationMatrixAcc.m @@ -0,0 +1,23 @@ +function [M] = getTransformationMatrixAcc(Opm, Osm) +% getTransformationMatrixAcc - +% +% Syntax: [M] = getTransformationMatrixAcc(Opm, Osm) +% +% Inputs: +% - Opm - Nx3 (N = number of accelerometer measurements) X,Y,Z position of accelerometers +% - Opm - Nx3 (N = number of accelerometer measurements) Unit vectors representing the accelerometer orientation +% +% Outputs: +% - M - Transformation Matrix + +M = zeros(length(Opm), 6); + +for i = 1:length(Opm) + Ri = [0, Opm(3,i), -Opm(2,i); + -Opm(3,i), 0, Opm(1,i); + Opm(2,i), -Opm(1,i), 0]; + M(i, 1:3) = Osm(:,i)'; + M(i, 4:6) = Osm(:,i)'*Ri; +end + +end diff --git a/test-bench-nano-hexapod.html b/test-bench-nano-hexapod.html index 35adafe..bee3078 100644 --- a/test-bench-nano-hexapod.html +++ b/test-bench-nano-hexapod.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +-This document is dedicated to the experimental study of the nano-hexapod shown in Figure 1. +This document is dedicated to the experimental study of the nano-hexapod shown in Figure 1.
-
Figure 1: Nano-Hexapod
-Here are the documentation of the equipment used for this test bench (lots of them are shwon in Figure 2): +Here are the documentation of the equipment used for this test bench (lots of them are shwon in Figure 2):
Figure 2: Nano-Hexapod and the control electronics
-In Figure 3 is shown a block diagram of the experimental setup. -When possible, the notations are consistent with this diagram and summarized in Table 1. +In Figure 3 is shown a block diagram of the experimental setup. +When possible, the notations are consistent with this diagram and summarized in Table 1.
-
Figure 3: Block diagram of the system with named signals