From 90d6582c7c70759457c78bdbd2d314318d784b7d Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Wed, 9 Jun 2021 11:05:14 +0200 Subject: [PATCH] Update sensor/actuator constants --- matlab/nano_hexapod/nano_hexapod.slx | Bin 46146 -> 47197 bytes org/nano_hexapod.org | 84 +++++++++++++++++++++++---- src/initializeNanoHexapodFinal.m | 45 ++++++++++---- 3 files changed, 109 insertions(+), 20 deletions(-) diff --git a/matlab/nano_hexapod/nano_hexapod.slx b/matlab/nano_hexapod/nano_hexapod.slx index dc9ea6ac1619976eda3dd0b06fa82d2c3bb05559..0db1b1e501877c6ed15c3a74f962b9aa7d39485e 100644 GIT binary patch delta 23957 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 N0))) +#+end_src + +#+name: tab:iff_frequency_zero +#+caption: Frequency of the poles corresponding to the IFF zeros (Hz). +#+attr_latex: :environment tabularx :width 0.2\linewidth :align c +#+attr_latex: :center t :booktabs t :float t +| 50.750 | +| 51.483 | +| 117.94 | +| 157.79 | +| 197.21 | +| 198.47 | + +And we indeed find the frequency of the zeros for the IFF plant. + ** Effect of IFF on the plant <> @@ -3421,15 +3460,15 @@ arguments args.motion_sensor_type char {mustBeMember(args.motion_sensor_type,{'struts', 'plates'})} = 'struts' %% Actuators args.actuator_type char {mustBeMember(args.actuator_type,{'2dof', 'flexible frame', 'flexible'})} = 'flexible' - args.actuator_Ga (6,1) double {mustBeNumeric} = ones(6,1)*1 % Actuator gain [N/V] - args.actuator_Gs (6,1) double {mustBeNumeric} = ones(6,1)*1 % Sensor gain [V/m] + args.actuator_Ga (6,1) double {mustBeNumeric} = zeros(6,1) % Actuator gain [N/V] + args.actuator_Gs (6,1) double {mustBeNumeric} = zeros(6,1) % Sensor gain [V/m] % For 2DoF args.actuator_k (6,1) double {mustBeNumeric} = ones(6,1)*0.35e6 % [N/m] args.actuator_ke (6,1) double {mustBeNumeric} = ones(6,1)*1.5e6 % [N/m] args.actuator_ka (6,1) double {mustBeNumeric} = ones(6,1)*43e6 % [N/m] - args.actuator_c (6,1) double {mustBeNumeric} = ones(6,1)*3e1 % [N/(m/s)] - args.actuator_ce (6,1) double {mustBeNumeric} = ones(6,1)*1e1 % [N/(m/s)] - args.actuator_ca (6,1) double {mustBeNumeric} = ones(6,1)*1e1 % [N/(m/s)] + args.actuator_c (6,1) double {mustBeNumeric} = ones(6,1)*3e0 % [N/(m/s)] + args.actuator_ce (6,1) double {mustBeNumeric} = ones(6,1)*1e0 % [N/(m/s)] + args.actuator_ca (6,1) double {mustBeNumeric} = ones(6,1)*1e0 % [N/(m/s)] args.actuator_Leq (6,1) double {mustBeNumeric} = ones(6,1)*0.056 % [m] % For Flexible Frame args.actuator_ks (6,1) double {mustBeNumeric} = ones(6,1)*235e6 % Stiffness of one stack [N/m] @@ -3545,8 +3584,33 @@ end #+end_src #+begin_src matlab -nano_hexapod.actuator.Ga = args.actuator_Ga; % Actuator gain [N/V] -nano_hexapod.actuator.Gs = args.actuator_Gs; % Sensor gain [V/m] +%% Actuator gain [N/V] +if all(args.actuator_Ga == 0) + switch args.actuator_type + case '2dof' + nano_hexapod.actuator.Ga = ones(6,1)*(-46.4); + case 'flexible frame' + nano_hexapod.actuator.Ga = ones(6,1); % TODO + case 'flexible' + nano_hexapod.actuator.Ga = ones(6,1)*23.4; + end +else + nano_hexapod.actuator.Ga = args.actuator_Ga; % Actuator gain [N/V] +end + +%% Sensor gain [V/m] +if all(args.actuator_Gs == 0) + switch args.actuator_type + case '2dof' + nano_hexapod.actuator.Gs = ones(6,1)*0.098; + case 'flexible frame' + nano_hexapod.actuator.Gs = ones(6,1); % TODO + case 'flexible' + nano_hexapod.actuator.Gs = ones(6,1)*(-4674824); + end +else + nano_hexapod.actuator.Gs = args.actuator_Gs; % Sensor gain [V/m] +end #+end_src 2dof diff --git a/src/initializeNanoHexapodFinal.m b/src/initializeNanoHexapodFinal.m index 5a1e2ea..d3dd46f 100644 --- a/src/initializeNanoHexapodFinal.m +++ b/src/initializeNanoHexapodFinal.m @@ -27,20 +27,20 @@ arguments args.motion_sensor_type char {mustBeMember(args.motion_sensor_type,{'struts', 'plates'})} = 'struts' %% Actuators args.actuator_type char {mustBeMember(args.actuator_type,{'2dof', 'flexible frame', 'flexible'})} = 'flexible' - args.actuator_Ga (6,1) double {mustBeNumeric} = ones(6,1)*1 % Actuator gain [N/V] - args.actuator_Gs (6,1) double {mustBeNumeric} = ones(6,1)*1 % Sensor gain [V/m] - % For 2DoF + args.actuator_Ga (6,1) double {mustBeNumeric} = zeros(6,1) % Actuator gain [N/V] + args.actuator_Gs (6,1) double {mustBeNumeric} = zeros(6,1) % Sensor gain [V/m] + % For 2DoF args.actuator_k (6,1) double {mustBeNumeric} = ones(6,1)*0.35e6 % [N/m] args.actuator_ke (6,1) double {mustBeNumeric} = ones(6,1)*1.5e6 % [N/m] args.actuator_ka (6,1) double {mustBeNumeric} = ones(6,1)*43e6 % [N/m] - args.actuator_c (6,1) double {mustBeNumeric} = ones(6,1)*3e1 % [N/(m/s)] - args.actuator_ce (6,1) double {mustBeNumeric} = ones(6,1)*1e1 % [N/(m/s)] - args.actuator_ca (6,1) double {mustBeNumeric} = ones(6,1)*1e1 % [N/(m/s)] + args.actuator_c (6,1) double {mustBeNumeric} = ones(6,1)*3e0 % [N/(m/s)] + args.actuator_ce (6,1) double {mustBeNumeric} = ones(6,1)*1e0 % [N/(m/s)] + args.actuator_ca (6,1) double {mustBeNumeric} = ones(6,1)*1e0 % [N/(m/s)] args.actuator_Leq (6,1) double {mustBeNumeric} = ones(6,1)*0.056 % [m] - % For Flexible Frame + % For Flexible Frame args.actuator_ks (6,1) double {mustBeNumeric} = ones(6,1)*235e6 % Stiffness of one stack [N/m] args.actuator_cs (6,1) double {mustBeNumeric} = ones(6,1)*1e1 % Stiffness of one stack [N/m] - % For Flexible + args.actuator_xi (1,1) double {mustBeNumeric} = 0.01 % Damping Ratio %% Controller args.controller_type char {mustBeMember(args.controller_type,{'none', 'iff', 'dvf'})} = 'none' @@ -114,8 +114,33 @@ switch args.actuator_type nano_hexapod.actuator.type = 3; end -nano_hexapod.actuator.Ga = args.actuator_Ga; % Actuator gain [N/V] -nano_hexapod.actuator.Gs = args.actuator_Gs; % Sensor gain [V/m] +%% Actuator gain [N/V] +if all(args.actuator_Ga == 0) + switch args.actuator_type + case '2dof' + nano_hexapod.actuator.Ga = ones(6,1)*(-46.4); + case 'flexible frame' + nano_hexapod.actuator.Ga = ones(6,1); % TODO + case 'flexible' + nano_hexapod.actuator.Ga = ones(6,1)*23.4; + end +else + nano_hexapod.actuator.Ga = args.actuator_Ga; % Actuator gain [N/V] +end + +%% Sensor gain [V/m] +if all(args.actuator_Gs == 0) + switch args.actuator_type + case '2dof' + nano_hexapod.actuator.Gs = ones(6,1)*0.098; + case 'flexible frame' + nano_hexapod.actuator.Gs = ones(6,1); % TODO + case 'flexible' + nano_hexapod.actuator.Gs = ones(6,1)*(-4674824); + end +else + nano_hexapod.actuator.Gs = args.actuator_Gs; % Sensor gain [V/m] +end nano_hexapod.actuator.k = args.actuator_k; % [N/m] nano_hexapod.actuator.ke = args.actuator_ke; % [N/m]