Compare commits
	
		
			1 Commits
		
	
	
		
			ef7d7a54d5
			...
			571dfbffb4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 571dfbffb4 | 
@@ -3436,24 +3436,24 @@ function [nano_hexapod] = initializeNanoHexapodFinal(args)
 | 
			
		||||
arguments
 | 
			
		||||
    %% Bottom Flexible Joints
 | 
			
		||||
    args.flex_bot_type      char {mustBeMember(args.flex_bot_type,{'2dof', '3dof', '4dof', 'flexible'})} = '4dof'
 | 
			
		||||
    args.flex_bot_kRx (6,1) double {mustBeNumeric} = ones(6,1)*5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRy (6,1) double {mustBeNumeric} = ones(6,1)*5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRx (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRy (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRz (6,1) double {mustBeNumeric} = ones(6,1)*260 % Torsionnal stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kz  (6,1) double {mustBeNumeric} = ones(6,1)*1e8 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_bot_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cz  (6,1) double {mustBeNumeric} = ones(6,1)*1e2 % Axial Damping [N/(m/s)]
 | 
			
		||||
    args.flex_bot_kz  (6,1) double {mustBeNumeric} = ones(6,1)*8e7 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_bot_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cz  (6,1) double {mustBeNumeric} = ones(6,1)*0 % Axial Damping [N/(m/s)]
 | 
			
		||||
    %% Top Flexible Joints
 | 
			
		||||
    args.flex_top_type      char {mustBeMember(args.flex_top_type,{'2dof', '3dof', '4dof', 'flexible'})} = '4dof'
 | 
			
		||||
    args.flex_top_kRx (6,1) double {mustBeNumeric} = ones(6,1)*5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRy (6,1) double {mustBeNumeric} = ones(6,1)*5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRx (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRy (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRz (6,1) double {mustBeNumeric} = ones(6,1)*260 % Torsionnal stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kz  (6,1) double {mustBeNumeric} = ones(6,1)*1e8 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_top_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cz  (6,1) double {mustBeNumeric} = ones(6,1)*1e2 % Axial Damping [N/(m/s)]
 | 
			
		||||
    args.flex_top_kz  (6,1) double {mustBeNumeric} = ones(6,1)*8e7 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_top_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cz  (6,1) double {mustBeNumeric} = ones(6,1)*0 % Axial Damping [N/(m/s)]
 | 
			
		||||
    %% Jacobian - Location of frame {A} and {B}
 | 
			
		||||
    args.MO_B (1,1) double {mustBeNumeric} = 150e-3 % Height of {B} w.r.t. {M} [m]
 | 
			
		||||
    %% Relative Motion Sensor
 | 
			
		||||
@@ -3463,12 +3463,12 @@ arguments
 | 
			
		||||
    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)*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_k   (6,1) double {mustBeNumeric} = ones(6,1)*0.38e6 % [N/m]
 | 
			
		||||
    args.actuator_ke  (6,1) double {mustBeNumeric} = ones(6,1)*1.75e6 % [N/m]
 | 
			
		||||
    args.actuator_ka  (6,1) double {mustBeNumeric} = ones(6,1)*3e7 % [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_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]
 | 
			
		||||
@@ -3588,7 +3588,7 @@ end
 | 
			
		||||
if all(args.actuator_Ga == 0)
 | 
			
		||||
    switch args.actuator_type
 | 
			
		||||
      case '2dof'
 | 
			
		||||
        nano_hexapod.actuator.Ga = ones(6,1)*(-46.4);
 | 
			
		||||
        nano_hexapod.actuator.Ga = ones(6,1)*(-30.0);
 | 
			
		||||
      case 'flexible frame'
 | 
			
		||||
        nano_hexapod.actuator.Ga = ones(6,1); % TODO
 | 
			
		||||
      case 'flexible'
 | 
			
		||||
 
 | 
			
		||||
@@ -3,24 +3,24 @@ function [nano_hexapod] = initializeNanoHexapodFinal(args)
 | 
			
		||||
arguments
 | 
			
		||||
    %% Bottom Flexible Joints
 | 
			
		||||
    args.flex_bot_type      char {mustBeMember(args.flex_bot_type,{'2dof', '3dof', '4dof', 'flexible'})} = '4dof'
 | 
			
		||||
    args.flex_bot_kRx (6,1) double {mustBeNumeric} = ones(6,1)*5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRy (6,1) double {mustBeNumeric} = ones(6,1)*5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRx (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRy (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kRz (6,1) double {mustBeNumeric} = ones(6,1)*260 % Torsionnal stiffness [Nm/rad]
 | 
			
		||||
    args.flex_bot_kz  (6,1) double {mustBeNumeric} = ones(6,1)*1e8 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_bot_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cz  (6,1) double {mustBeNumeric} = ones(6,1)*1e2 % Axial Damping [N/(m/s)]
 | 
			
		||||
    args.flex_bot_kz  (6,1) double {mustBeNumeric} = ones(6,1)*8e7 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_bot_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_bot_cz  (6,1) double {mustBeNumeric} = ones(6,1)*0 % Axial Damping [N/(m/s)]
 | 
			
		||||
    %% Top Flexible Joints
 | 
			
		||||
    args.flex_top_type      char {mustBeMember(args.flex_top_type,{'2dof', '3dof', '4dof', 'flexible'})} = '4dof'
 | 
			
		||||
    args.flex_top_kRx (6,1) double {mustBeNumeric} = ones(6,1)*5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRy (6,1) double {mustBeNumeric} = ones(6,1)*5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRx (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % X bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRy (6,1) double {mustBeNumeric} = ones(6,1)*3.5 % Y bending stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kRz (6,1) double {mustBeNumeric} = ones(6,1)*260 % Torsionnal stiffness [Nm/rad]
 | 
			
		||||
    args.flex_top_kz  (6,1) double {mustBeNumeric} = ones(6,1)*1e8 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_top_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0.1 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cz  (6,1) double {mustBeNumeric} = ones(6,1)*1e2 % Axial Damping [N/(m/s)]
 | 
			
		||||
    args.flex_top_kz  (6,1) double {mustBeNumeric} = ones(6,1)*8e7 % Axial Stiffness [N/m]
 | 
			
		||||
    args.flex_top_cRx (6,1) double {mustBeNumeric} = ones(6,1)*0 % X bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRy (6,1) double {mustBeNumeric} = ones(6,1)*0 % Y bending Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cRz (6,1) double {mustBeNumeric} = ones(6,1)*0 % Torsionnal Damping [Nm/(rad/s)]
 | 
			
		||||
    args.flex_top_cz  (6,1) double {mustBeNumeric} = ones(6,1)*0 % Axial Damping [N/(m/s)]
 | 
			
		||||
    %% Jacobian - Location of frame {A} and {B}
 | 
			
		||||
    args.MO_B (1,1) double {mustBeNumeric} = 150e-3 % Height of {B} w.r.t. {M} [m]
 | 
			
		||||
    %% Relative Motion Sensor
 | 
			
		||||
@@ -30,12 +30,12 @@ arguments
 | 
			
		||||
    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)*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_k   (6,1) double {mustBeNumeric} = ones(6,1)*0.38e6 % [N/m]
 | 
			
		||||
    args.actuator_ke  (6,1) double {mustBeNumeric} = ones(6,1)*1.75e6 % [N/m]
 | 
			
		||||
    args.actuator_ka  (6,1) double {mustBeNumeric} = ones(6,1)*3e7 % [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_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]
 | 
			
		||||
@@ -118,7 +118,7 @@ end
 | 
			
		||||
if all(args.actuator_Ga == 0)
 | 
			
		||||
    switch args.actuator_type
 | 
			
		||||
      case '2dof'
 | 
			
		||||
        nano_hexapod.actuator.Ga = ones(6,1)*(-46.4);
 | 
			
		||||
        nano_hexapod.actuator.Ga = ones(6,1)*(-30.0);
 | 
			
		||||
      case 'flexible frame'
 | 
			
		||||
        nano_hexapod.actuator.Ga = ones(6,1); % TODO
 | 
			
		||||
      case 'flexible'
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user