Active Damping with an uni-axial model
Table of Contents
-
-
- 1. Undamped System +
- 1. Undamped System -
- 2. Integral Force Feedback +
- 2. Integral Force Feedback
-
-
- 2.1. One degree-of-freedom example +
- 2.1. One degree-of-freedom example -
- 2.2. Control Design -
- 2.3. Identification of the damped plant -
- 2.4. Sensitivity to disturbances -
- 2.5. Damped Plant -
- 2.6. Conclusion +
- 2.2. Control Design +
- 2.3. Identification of the damped plant +
- 2.4. Sensitivity to disturbances +
- 2.5. Damped Plant +
- 2.6. Conclusion
- - 3. Relative Motion Control +
- 3. Relative Motion Control
-
-
- 3.1. One degree-of-freedom example +
- 3.1. One degree-of-freedom example -
- 3.2. Control Design -
- 3.3. Identification of the damped plant -
- 3.4. Sensitivity to disturbances -
- 3.5. Damped Plant -
- 3.6. Conclusion +
- 3.2. Control Design +
- 3.3. Identification of the damped plant +
- 3.4. Sensitivity to disturbances +
- 3.5. Damped Plant +
- 3.6. Conclusion
- - 4. Direct Velocity Feedback +
- 4. Direct Velocity Feedback
-
-
- 4.1. One degree-of-freedom example +
- 4.1. One degree-of-freedom example -
- 4.2. Control Design -
- 4.3. Identification of the damped plant -
- 4.4. Sensitivity to disturbances -
- 4.5. Damped Plant -
- 4.6. Conclusion +
- 4.2. Control Design +
- 4.3. Identification of the damped plant +
- 4.4. Sensitivity to disturbances +
- 4.5. Damped Plant +
- 4.6. Conclusion
- - 5. Comparison +
- 5. Comparison -
- 6. Conclusion +
- 6. Conclusion
-First, in section 1, we will looked at the undamped system. +First, in section 1, we will looked at the undamped system.
Then, we will compare three active damping techniques:
-
-
- In section 2: the integral force feedback is used -
- In section 3: the relative motion control is used -
- In section 4: the direct velocity feedback is used +
- In section 2: the integral force feedback is used +
- In section 3: the relative motion control is used +
- In section 4: the direct velocity feedback is used
@@ -130,13 +134,13 @@ The disturbances are:
1 Undamped System
+1 Undamped System
All the files (data and Matlab scripts) are accessible here.
@@ -148,8 +152,8 @@ The performance of this undamped system will be compared with the damped system1.1 Init
+1.1 Init
We initialize all the stages with the default parameters. @@ -157,17 +161,17 @@ The nano-hexapod is a piezoelectric hexapod and the sample has a mass of 50kg.
initializeReferences(); -initializeGround(); -initializeGranite(); -initializeTy(); -initializeRy(); -initializeRz(); -initializeMicroHexapod(); -initializeAxisc(); -initializeMirror(); -initializeNanoHexapod('actuator', 'piezo'); -initializeSample('mass', 50); +initializeReferences(); + initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); + initializeMirror(); + initializeNanoHexapod('actuator', 'piezo'); + initializeSample('mass', 50);
K = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K', '-append'); -K_iff = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); -K_rmc = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); -K_dvf = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append'); +K = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K', '-append'); + K_iff = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); + K_rmc = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); + K_dvf = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append');
1.2 Identification
+1.2 Identification
We identify the various transfer functions of the system
G = identifyPlant(); +G = identifyPlant();
save('./mat/active_damping_uniaxial_plants.mat', 'G', '-append'); +save('./mat/active_damping_uniaxial_plants.mat', 'G', '-append');
1.3 Sensitivity to disturbances
+1.3 Sensitivity to disturbances
-The sensitivity to disturbances are shown on figure 1. +The sensitivity to disturbances are shown on figure 1.
-1.4 Undamped Plant
+1.4 Undamped Plant
-The “plant” (transfer function from forces applied by the nano-hexapod to the measured displacement of the sample with respect to the granite) bode plot is shown on figure 1. +The “plant” (transfer function from forces applied by the nano-hexapod to the measured displacement of the sample with respect to the granite) bode plot is shown on figure 1.
-2 Integral Force Feedback
+2 Integral Force Feedback
All the files (data and Matlab scripts) are accessible here.
@@ -263,23 +267,23 @@ All the files (data and Matlab scripts) are accessible heIntegral Force Feedback is applied. -In section 2.1, IFF is applied on a uni-axial system to understand its behavior. +In section 2.1, IFF is applied on a uni-axial system to understand its behavior. Then, it is applied on the simscape model.
2.1 One degree-of-freedom example
+2.1 One degree-of-freedom example
-2.1.1 Equations
+2.1.1 Equations
Figure 4: Integral Force Feedback applied to a 1dof system
@@ -342,16 +346,16 @@ This is attainable if we have:2.1.2 Matlab Example
+2.1.2 Matlab Example
Let define the system parameters.
m = 50; % [kg] -k = 1e6; % [N/m] -c = 1e3; % [N/(m/s)] +m = 50; % [kg] + k = 1e6; % [N/m] + c = 1e3; % [N/(m/s)]
A = [-c/m -k/m; - 1 0]; +A = [-c/m -k/m; + 1 0]; -B = [1/m 1/m -1; - 0 0 0]; + B = [1/m 1/m -1; + 0 0 0]; -C = [ 0 1; - -c -k]; + C = [ 0 1; + -c -k]; -D = [0 0 0; - 1 0 0]; + D = [0 0 0; + 1 0 0]; -sys = ss(A, B, C, D); -sys.InputName = {'F', 'Fd', 'wddot'}; -sys.OutputName = {'d', 'Fm'}; -sys.StateName = {'ddot', 'd'}; + sys = ss(A, B, C, D); + sys.InputName = {'F', 'Fd', 'wddot'}; + sys.OutputName = {'d', 'Fm'}; + sys.StateName = {'ddot', 'd'};
Kiff = -((sqrt(k*m)-c)/m)/s; -Kiff.InputName = {'Fm'}; -Kiff.OutputName = {'F'}; +Kiff = -((sqrt(k*m)-c)/m)/s; + Kiff.InputName = {'Fm'}; + Kiff.OutputName = {'F'};
sys_iff = feedback(sys, Kiff, 'name', +1); +sys_iff = feedback(sys, Kiff, 'name', +1);
2.2 Control Design
+2.2 Control Design
Let’s load the undamped plant:
load('./mat/active_damping_uniaxial_plants.mat', 'G'); +load('./mat/active_damping_uniaxial_plants.mat', 'G');
-Let’s look at the transfer function from actuator forces in the nano-hexapod to the force sensor in the nano-hexapod legs for all 6 pairs of actuator/sensor (figure 6). +Let’s look at the transfer function from actuator forces in the nano-hexapod to the force sensor in the nano-hexapod legs for all 6 pairs of actuator/sensor (figure 6).
-
Figure 6: Transfer function from forces applied in the legs to force sensor (png, pdf)
@@ -432,16 +436,16 @@ Let’s look at the transfer function from actuator forces in the nano-hexap The controller for each pair of actuator/sensor is:K_iff = -1000/s; +K_iff = -1000/s;
-The corresponding loop gains are shown in figure 7. +The corresponding loop gains are shown in figure 7.
-2.3 Identification of the damped plant
+2.3 Identification of the damped plant
Let’s initialize the system prior to identification.
initializeReferences(); -initializeGround(); -initializeGranite(); -initializeTy(); -initializeRy(); -initializeRz(); -initializeMicroHexapod(); -initializeAxisc(); -initializeMirror(); -initializeNanoHexapod('actuator', 'piezo'); -initializeSample('mass', 50); +initializeReferences(); + initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); + initializeMirror(); + initializeNanoHexapod('actuator', 'piezo'); + initializeSample('mass', 50);
K = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K', '-append'); -K_iff = -K_iff*eye(6); -save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); -K_rmc = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); -K_dvf = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append'); +K = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K', '-append'); + K_iff = -K_iff*eye(6); + save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); + K_rmc = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); + K_dvf = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append');
G_iff = identifyPlant(); +G_iff = identifyPlant();
save('./mat/active_damping_uniaxial_plants.mat', 'G_iff', '-append'); +save('./mat/active_damping_uniaxial_plants.mat', 'G_iff', '-append');
2.4 Sensitivity to disturbances
+2.4 Sensitivity to disturbances
-As shown on figure 8: +As shown on figure 8:
- The top platform of the nano-hexapod how behaves as a “free-mass”. @@ -517,13 +521,13 @@ However, as the goal is to make the relative displacement \(D\) as small as poss
The order of the models are very high and thus the plots may be wrong.
For instance, the plots are not the same when using minreal
.
@@ -532,7 +536,7 @@ For instance, the plots are not the same when using minreal
.
2.5 Damped Plant
+2.5 Damped Plant
Now, look at the new damped plant to control.
-It damps the plant (resonance of the nano hexapod as well as other resonances) as shown in figure 10. +It damps the plant (resonance of the nano hexapod as well as other resonances) as shown in figure 10.
--However, it increases coupling at low frequency (figure 11). +However, it increases coupling at low frequency (figure 11).
-2.6 Conclusion
+2.6 Conclusion
Integral Force Feedback:
@@ -588,13 +592,13 @@ Integral Force Feedback:3 Relative Motion Control
+3 Relative Motion Control
All the files (data and Matlab scripts) are accessible here.
@@ -605,18 +609,18 @@ In the Relative Motion Control (RMC), a derivative feedback is applied between t3.1 One degree-of-freedom example
+3.1 One degree-of-freedom example
-3.1.1 Equations
+3.1.1 Equations
Figure 12: Relative Motion Control applied to a 1dof system
@@ -672,16 +676,16 @@ This corresponds to a gain:3.1.2 Matlab Example
+3.1.2 Matlab Example
Let define the system parameters.
m = 50; % [kg] -k = 1e6; % [N/m] -c = 1e3; % [N/(m/s)] +m = 50; % [kg] + k = 1e6; % [N/m] + c = 1e3; % [N/(m/s)]
A = [-c/m -k/m; - 1 0]; +A = [-c/m -k/m; + 1 0]; -B = [1/m 1/m -1; - 0 0 0]; + B = [1/m 1/m -1; + 0 0 0]; -C = [ 0 1; - -c -k]; + C = [ 0 1; + -c -k]; -D = [0 0 0; - 1 0 0]; + D = [0 0 0; + 1 0 0]; -sys = ss(A, B, C, D); -sys.InputName = {'F', 'Fd', 'wddot'}; -sys.OutputName = {'d', 'Fm'}; -sys.StateName = {'ddot', 'd'}; + sys = ss(A, B, C, D); + sys.InputName = {'F', 'Fd', 'wddot'}; + sys.OutputName = {'d', 'Fm'}; + sys.StateName = {'ddot', 'd'};
Krmc = -(sqrt(k*m)-c)*s; -Krmc.InputName = {'d'}; -Krmc.OutputName = {'F'}; +Krmc = -(sqrt(k*m)-c)*s; + Krmc.InputName = {'d'}; + Krmc.OutputName = {'F'};
sys_rmc = feedback(sys, Krmc, 'name', +1); +sys_rmc = feedback(sys, Krmc, 'name', +1);
3.2 Control Design
+3.2 Control Design
Let’s load the undamped plant:
load('./mat/active_damping_uniaxial_plants.mat', 'G'); +load('./mat/active_damping_uniaxial_plants.mat', 'G');
-Let’s look at the transfer function from actuator forces in the nano-hexapod to the measured displacement of the actuator for all 6 pairs of actuator/sensor (figure 14). +Let’s look at the transfer function from actuator forces in the nano-hexapod to the measured displacement of the actuator for all 6 pairs of actuator/sensor (figure 14).
-
Figure 14: Transfer function from forces applied in the legs to leg displacement sensor (png, pdf)
@@ -763,16 +767,16 @@ The Relative Motion Controller is defined below. A Low pass Filter is added to make the controller transfer function proper.K_rmc = s*50000/(1 + s/2/pi/10000); +K_rmc = s*50000/(1 + s/2/pi/10000);
-The obtained loop gains are shown in figure 15. +The obtained loop gains are shown in figure 15.
-3.3 Identification of the damped plant
+3.3 Identification of the damped plant
Let’s initialize the system prior to identification.
initializeReferences(); -initializeGround(); -initializeGranite(); -initializeTy(); -initializeRy(); -initializeRz(); -initializeMicroHexapod(); -initializeAxisc(); -initializeMirror(); -initializeNanoHexapod('actuator', 'piezo'); -initializeSample('mass', 50); +initializeReferences(); + initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); + initializeMirror(); + initializeNanoHexapod('actuator', 'piezo'); + initializeSample('mass', 50);
K = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K', '-append'); -K_iff = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); -K_rmc = -K_rmc*eye(6); -save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); -K_dvf = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append'); +K = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K', '-append'); + K_iff = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); + K_rmc = -K_rmc*eye(6); + save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); + K_dvf = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append');
G_rmc = identifyPlant(); +G_rmc = identifyPlant();
save('./mat/active_damping_uniaxial_plants.mat', 'G_rmc', '-append'); +save('./mat/active_damping_uniaxial_plants.mat', 'G_rmc', '-append');
3.4 Sensitivity to disturbances
+3.4 Sensitivity to disturbances
-As shown in figure 16, RMC control succeed in lowering the sensitivity to disturbances near resonance of the system. +As shown in figure 16, RMC control succeed in lowering the sensitivity to disturbances near resonance of the system.
-3.5 Damped Plant
+3.5 Damped Plant
3.6 Conclusion
+3.6 Conclusion
Relative Motion Control:
@@ -885,13 +889,13 @@ Relative Motion Control:4 Direct Velocity Feedback
+4 Direct Velocity Feedback
All the files (data and Matlab scripts) are accessible here.
@@ -902,18 +906,18 @@ In the Relative Motion Control (RMC), a feedback is applied between the measured4.1 One degree-of-freedom example
+4.1 One degree-of-freedom example
-4.1.1 Equations
+4.1.1 Equations
Figure 19: Direct Velocity Feedback applied to a 1dof system
@@ -932,7 +936,7 @@ In terms of the stage deformation \(d = x - w\): (ms^2 + cs + k) d = -ms^2 w + F_d + F \end{equation}-The direct velocity feedback law shown in figure 19 is: +The direct velocity feedback law shown in figure 19 is:
\begin{equation} K = -g @@ -969,16 +973,16 @@ This corresponds to a gain:4.1.2 Matlab Example
+4.1.2 Matlab Example
Let define the system parameters.
m = 50; % [kg] -k = 1e6; % [N/m] -c = 1e3; % [N/(m/s)] +m = 50; % [kg] + k = 1e6; % [N/m] + c = 1e3; % [N/(m/s)]
A = [-c/m -k/m; - 1 0]; +A = [-c/m -k/m; + 1 0]; -B = [1/m 1/m -1; - 0 0 0]; + B = [1/m 1/m -1; + 0 0 0]; -C = [1 0; - 0 1; - 0 0]; + C = [1 0; + 0 1; + 0 0]; -D = [0 0 0; - 0 0 0; - 0 0 1]; + D = [0 0 0; + 0 0 0; + 0 0 1]; -sys = ss(A, B, C, D); -sys.InputName = {'F', 'Fd', 'wddot'}; -sys.OutputName = {'ddot', 'd', 'wddot'}; -sys.StateName = {'ddot', 'd'}; + sys = ss(A, B, C, D); + sys.InputName = {'F', 'Fd', 'wddot'}; + sys.OutputName = {'ddot', 'd', 'wddot'}; + sys.StateName = {'ddot', 'd'};
G_xdot = [1, 0, 1/s; - 0, 1, 0]; -G_xdot.InputName = {'ddot', 'd', 'wddot'}; -G_xdot.OutputName = {'xdot', 'd'}; +G_xdot = [1, 0, 1/s; + 0, 1, 0]; + G_xdot.InputName = {'ddot', 'd', 'wddot'}; + G_xdot.OutputName = {'xdot', 'd'};
sys = series(sys, G_xdot, [1 2 3], [1 2 3]); +sys = series(sys, G_xdot, [1 2 3], [1 2 3]);
sys
as defined below.
The controller \(K_\text{DVF}\) is:
Kdvf = tf(-(sqrt(k*m)-c)); -Kdvf.InputName = {'xdot'}; -Kdvf.OutputName = {'F'}; +Kdvf = tf(-(sqrt(k*m)-c)); + Kdvf.InputName = {'xdot'}; + Kdvf.OutputName = {'F'};
sys_dvf = feedback(sys, Kdvf, 'name', +1); +sys_dvf = feedback(sys, Kdvf, 'name', +1);
-The obtained sensitivity to disturbances is shown in figure 20. +The obtained sensitivity to disturbances is shown in figure 20.
-
Figure 20: Sensitivity to disturbance when DVF is applied on the 1dof system (png, pdf)
@@ -1057,39 +1061,39 @@ The obtained sensitivity to disturbances is shown in figure -4.2 Control Design
+4.2 Control Design
Let’s load the undamped plant:
load('./mat/active_damping_uniaxial_plants.mat', 'G'); +load('./mat/active_damping_uniaxial_plants.mat', 'G');
-Let’s look at the transfer function from actuator forces in the nano-hexapod to the measured velocity of the nano-hexapod platform in the direction of the corresponding actuator for all 6 pairs of actuator/sensor (figure 21). +Let’s look at the transfer function from actuator forces in the nano-hexapod to the measured velocity of the nano-hexapod platform in the direction of the corresponding actuator for all 6 pairs of actuator/sensor (figure 21).
--The controller is defined below and the obtained loop gain is shown in figure 22. +The controller is defined below and the obtained loop gain is shown in figure 22.
K_dvf = tf(3e4); +K_dvf = tf(3e4);
Figure 22: Loop Gain for DVF (png, pdf)
@@ -1097,24 +1101,24 @@ The controller is defined below and the obtained loop gain is shown in figure4.3 Identification of the damped plant
+4.3 Identification of the damped plant
Let’s initialize the system prior to identification.
initializeReferences(); -initializeGround(); -initializeGranite(); -initializeTy(); -initializeRy(); -initializeRz(); -initializeMicroHexapod(); -initializeAxisc(); -initializeMirror(); -initializeNanoHexapod('actuator', 'piezo'); -initializeSample('mass', 50); +initializeReferences(); + initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); + initializeMirror(); + initializeNanoHexapod('actuator', 'piezo'); + initializeSample('mass', 50);
K = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K', '-append'); -K_iff = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); -K_rmc = tf(zeros(6)); -save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); -K_dvf = -K_dvf*eye(6); -save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append'); +K = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K', '-append'); + K_iff = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_iff', '-append'); + K_rmc = tf(zeros(6)); + save('./mat/controllers_uniaxial.mat', 'K_rmc', '-append'); + K_dvf = -K_dvf*eye(6); + save('./mat/controllers_uniaxial.mat', 'K_dvf', '-append');
G_dvf = identifyPlant(); +G_dvf = identifyPlant();
save('./mat/active_damping_uniaxial_plants.mat', 'G_dvf', '-append'); +save('./mat/active_damping_uniaxial_plants.mat', 'G_dvf', '-append');
4.4 Sensitivity to disturbances
+4.4 Sensitivity to disturbances
Figure 23: Sensitivity to disturbance once the DVF controller is applied to the system (png, pdf)
@@ -1163,7 +1167,7 @@ And we save the damped plant for further analysis. -4.5 Damped Plant
+4.5 Damped Plant
4.6 Conclusion
+4.6 Conclusion
Direct Velocity Feedback:
@@ -1196,28 +1200,28 @@ Direct Velocity Feedback:5 Comparison
+5 Comparison
-5.1 Load the plants
+5.1 Load the plants
load('./mat/active_damping_uniaxial_plants.mat', 'G', 'G_iff', 'G_rmc', 'G_dvf'); +load('./mat/active_damping_uniaxial_plants.mat', 'G', 'G_iff', 'G_rmc', 'G_dvf');
5.2 Sensitivity to Disturbance
+5.2 Sensitivity to Disturbance
@@ -1225,21 +1229,21 @@ Direct Velocity Feedback: -
@@ -1247,7 +1251,7 @@ Direct Velocity Feedback: - -
5.3 Damped Plant
+5.3 Damped Plant
Created: 2020-04-17 ven. 09:36
+Created: 2021-02-20 sam. 23:08
Alternative Micro-Station Architecture
Table of Contents
-
-
- 1. Current Micro-Station Architecture -
- 2. Alternative Micro-Station Architecture -
- 3. Alternative Metrology Architecture -
- 4. First rough specification of the stages - Maneuverability -
- 5. Advantages -
- 6. Disadvantages +
- 1. Current Micro-Station Architecture +
- 2. Alternative Micro-Station Architecture +
- 3. Alternative Metrology Architecture +
- 4. First rough specification of the stages - Maneuverability +
- 5. Advantages +
- 6. Disadvantages
1 Current Micro-Station Architecture
+1 Current Micro-Station Architecture
Motion Requirements: @@ -62,11 +56,11 @@ For each of these motion requirements, a position stage is associated:
-The architecture is shown in Figure 1. +The architecture is shown in Figure 1.
-
Figure 1: Architecture of the Micro-Station
@@ -92,8 +86,8 @@ Requirements on Tx an Rx motions are not specified.2 Alternative Micro-Station Architecture
+2 Alternative Micro-Station Architecture
If we remove the requirement of having to control each motion with an independent position stage, we can think of other mechanical architectures. @@ -118,7 +112,7 @@ A short stroke hexapod with flexible hinges can be used to compensate the positi
-The mechanical architecture can then be composed of (see Figures 2 and 3): +The mechanical architecture can then be composed of (see Figures 2 and 3):
- One long stroke hexapod for position @@ -127,14 +121,14 @@ The mechanical architecture can then be composed of (see Figures +
- Possible singularities in the required maneuverability for the Long stroke Hexapod? @@ -273,7 +267,7 @@ The require displacement of each leg of the hexapod can be computed with the inv
- 1. Simplified Model +
- 1. Simplified Model -
- 2. Rotating X-Y platform +
- 2. Rotating X-Y platform -
- 3. Stewart Platform with Amplified Actuators +
- 3. Stewart Platform with Amplified Actuators
-
-
- 3.1. Initialization -
- 3.2. APA-100 Amplified Actuator +
- 3.1. Initialization +
- 3.2. APA-100 Amplified Actuator
-
-
- 3.2.1. Identification -
- 3.2.2. Controller Design -
- 3.2.3. Effect of the Low Authority Control on the Primary Plant -
- 3.2.4. Effect of the Low Authority Control on the Sensibility to Disturbances +
- 3.2.1. Identification +
- 3.2.2. Controller Design +
- 3.2.3. Effect of the Low Authority Control on the Primary Plant +
- 3.2.4. Effect of the Low Authority Control on the Sensibility to Disturbances
- - 3.3. Optimal Stiffnesses +
- 3.3. Optimal Stiffnesses
-
-
- 3.3.1. Low Authority Controller +
- 3.3.1. Low Authority Controller
-
-
- 3.3.1.1. Identification -
- 3.3.1.2. Effect of the Low Authority Control on the Primary Plant -
- 3.3.1.3. Effect of the Low Authority Control on the Sensibility to Disturbances +
- 3.3.1.1. Identification +
- 3.3.1.2. Effect of the Low Authority Control on the Primary Plant +
- 3.3.1.3. Effect of the Low Authority Control on the Sensibility to Disturbances
- - 3.3.2. High Authority Controller +
- 3.3.2. High Authority Controller
- - 3.4. Direct Velocity Feedback with Amplified Actuators +
- 3.4. Direct Velocity Feedback with Amplified Actuators
- - 4. APA300ML +
- 4. APA300ML
-
-
- 4.1. Initialization -
- 4.2. Identification -
- 4.3. Controller Design -
- 4.4. Effect of the Low Authority Control on the Primary Plant -
- 4.5. Control in the leg space -
- 4.6. Sensibility to Disturbances and Noise Budget -
- 4.7. Simulations of Tomography Experiment -
- 4.8. Results +
- 4.1. Initialization +
- 4.2. Identification +
- 4.3. Controller Design +
- 4.4. Effect of the Low Authority Control on the Primary Plant +
- 4.5. Control in the leg space +
- 4.6. Sensibility to Disturbances and Noise Budget +
- 4.7. Simulations of Tomography Experiment +
- 4.8. Results
- 1. Parameters -
- 2. Centrifugal forces for light and heavy sample -
- 3. Centrifugal forces as a function of the rotation speed -
- 4. Maximum rotation speed as a function of the mass +
- 1. Parameters +
- 2. Centrifugal forces for light and heavy sample +
- 3. Centrifugal forces as a function of the rotation speed +
- 4. Maximum rotation speed as a function of the mass
- \(M\) is the total mass of the rotating elements in \([kg]\) @@ -61,14 +65,14 @@ The centrifugal forces are defined as represented Figure 1
- 1. Initialization of the Experimental Conditions -
- 2. Without compensation -
- 3. Simulation to compute the required force in each joint -
- 4. New simulation with compensation of gravity forces -
- 5. Conclusion +
- 1. Initialization of the Experimental Conditions +
- 2. Without compensation +
- 3. Simulation to compute the required force in each joint +
- 4. New simulation with compensation of gravity forces +
- 5. Conclusion
- section 3: first the stages are initialize in such a way that they are rigid, and the forces/torques applied at the location of their joints is measured -
- section 4: Then, the equilibrium position of each joint is modified in such a way that at t=0, the forces in each joints exactly compensate the forces due to gravity forces +
- section 3: first the stages are initialize in such a way that they are rigid, and the forces/torques applied at the location of their joints is measured +
- section 4: Then, the equilibrium position of each joint is modified in such a way that at t=0, the forces in each joints exactly compensate the forces due to gravity forces
- 1. Control Configuration - Introduction -
- 2. Tracking Control in the Frame of the Nano-Hexapod - Basic Architectures +
- 1. Control Configuration - Introduction +
- 2. Tracking Control in the Frame of the Nano-Hexapod - Basic Architectures -
- 3. Active Damping Architecture - Collocated Control (link) +
- 3. Active Damping Architecture - Collocated Control (link) -
- 4. HAC-LAC Architectures (link) +
- 4. HAC-LAC Architectures (link)
-
-
- 4.1. HAC-LAC using IFF and Tracking control in the frame of the Legs -
- 4.2. HAC-LAC using IFF and Tracking control in the Cartesian frame -
- 4.3. HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the task space -
- 4.4. HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the space of the legs -
- 4.5. HAC-LAC using DVF - the HAC controller is positioning the sample w.r.t. the granite in the task space -
- 4.6. HAC-LAC using DVF - the HAC controller is positioning the sample w.r.t. the granite in the space of the legs +
- 4.1. HAC-LAC using IFF and Tracking control in the frame of the Legs +
- 4.2. HAC-LAC using IFF and Tracking control in the Cartesian frame +
- 4.3. HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the task space +
- 4.4. HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the space of the legs +
- 4.5. HAC-LAC using DVF - the HAC controller is positioning the sample w.r.t. the granite in the task space +
- 4.6. HAC-LAC using DVF - the HAC controller is positioning the sample w.r.t. the granite in the space of the legs
- - 5. Cascade Architectures (link) +
- 5. Cascade Architectures (link)
-
-
- 5.1. Cascade Control with HAC-LAC Inner Loop and Primary Controller in the task space -
- 5.2. Cascade Control with HAC-LAC Inner Loop and Primary Controller in the joint space +
- 5.1. Cascade Control with HAC-LAC Inner Loop and Primary Controller in the task space +
- 5.2. Cascade Control with HAC-LAC Inner Loop and Primary Controller in the joint space
- - 6. Force Control (link) -
- 7. Other Control Architectures +
- 6. Force Control (link) +
- 7. Other Control Architectures
- \(\bm{\tau}\): Forces applied in each leg @@ -85,7 +89,7 @@ The system consist of the following inputs and outputs (Figure +
Figure 2: Alternative Micro-Station Architecture
Figure 3: Alternative Micro-Station Architecture
@@ -142,8 +136,8 @@ The mechanical architecture can then be composed of (see Figures -3 Alternative Metrology Architecture
+3 Alternative Metrology Architecture
As the motion of the sample does not change, the metrology could be the same as the one planned for the current micro-station architecture. @@ -172,8 +166,8 @@ Kinematic mount of the metrology frame supporting both the spherical mirrors and
4 First rough specification of the stages - Maneuverability
+4 First rough specification of the stages - Maneuverability
The required maneuverability of the long stroke hexapod corresponds to the wanted 6d pose of the sample (except the Rz rotation done by the Spindle): @@ -201,8 +195,8 @@ Moreover the dynamical errors of each stage are very difficult to estimate, thus
5 Advantages
+5 Advantages
Mechanics: @@ -252,8 +246,8 @@ Also Tx scans and Rx scans can be performed.
6 Disadvantages
+6 Disadvantages
Created: 2020-05-07 jeu. 14:04
+Created: 2021-02-20 sam. 23:08
Amplified Piezoelectric Stack Actuator
Table of Contents
-
-
-The model represents the amplified piezo APA100M from Cedrat-Technologies (Figure 1). +The model represents the amplified piezo APA100M from Cedrat-Technologies (Figure 1). The parameters are shown in the table below.
-
Figure 1: Picture of an APA100M from Cedrat Technologies. Simplified model of a one DoF payload mounted on such isolator
@@ -166,28 +171,28 @@ The parameters are shown in the table below. -1 Simplified Model
+1 Simplified Model
1.1 Parameters
+1.1 Parameters
m = 1; % [kg] +m = 1; % [kg] -ke = 4.8e6; % [N/m] -ce = 5; % [N/(m/s)] -me = 0.001; % [kg] + ke = 4.8e6; % [N/m] + ce = 5; % [N/(m/s)] + me = 0.001; % [kg] -k1 = 0.96e6; % [N/m] -c1 = 10; % [N/(m/s)] + k1 = 0.96e6; % [N/m] + c1 = 10; % [N/(m/s)] -ka = 65e6; % [N/m] -ca = 5; % [N/(m/s)] -ma = 0.001; % [kg] + ka = 65e6; % [N/m] + ca = 5; % [N/(m/s)] + ma = 0.001; % [kg] -h = 0.2; % [m] + h = 0.2; % [m]
Kiff = -8000/s; +Kiff = -8000/s;
1.2 Identification
+1.2 Identification
Identification in open-loop.
%% Name of the Simulink File -mdl = 'amplified_piezo_model'; +%% Name of the Simulink File + mdl = 'amplified_piezo_model'; -%% Input/Output definition -clear io; io_i = 1; -io(io_i) = linio([mdl, '/w'], 1, 'openinput'); io_i = io_i + 1; % Base Motion -io(io_i) = linio([mdl, '/f'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs -io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % External Force + %% Input/Output definition + clear io; io_i = 1; + io(io_i) = linio([mdl, '/w'], 1, 'openinput'); io_i = io_i + 1; % Base Motion + io(io_i) = linio([mdl, '/f'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs + io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % External Force -io(io_i) = linio([mdl, '/Fs'], 3, 'openoutput'); io_i = io_i + 1; % Force Sensors -io(io_i) = linio([mdl, '/x1'], 1, 'openoutput'); io_i = io_i + 1; % Mass displacement + io(io_i) = linio([mdl, '/Fs'], 3, 'openoutput'); io_i = io_i + 1; % Force Sensors + io(io_i) = linio([mdl, '/x1'], 1, 'openoutput'); io_i = io_i + 1; % Mass displacement -G = linearize(mdl, io, 0); -G.InputName = {'w', 'f', 'F'}; -G.OutputName = {'Fs', 'x1'}; + G = linearize(mdl, io, 0); + G.InputName = {'w', 'f', 'F'}; + G.OutputName = {'Fs', 'x1'};
%% Name of the Simulink File -mdl = 'amplified_piezo_model'; +%% Name of the Simulink File + mdl = 'amplified_piezo_model'; -%% Input/Output definition -clear io; io_i = 1; -io(io_i) = linio([mdl, '/w'], 1, 'input'); io_i = io_i + 1; % Base Motion -io(io_i) = linio([mdl, '/f'], 1, 'input'); io_i = io_i + 1; % Actuator Inputs -io(io_i) = linio([mdl, '/F'], 1, 'input'); io_i = io_i + 1; % External Force + %% Input/Output definition + clear io; io_i = 1; + io(io_i) = linio([mdl, '/w'], 1, 'input'); io_i = io_i + 1; % Base Motion + io(io_i) = linio([mdl, '/f'], 1, 'input'); io_i = io_i + 1; % Actuator Inputs + io(io_i) = linio([mdl, '/F'], 1, 'input'); io_i = io_i + 1; % External Force -io(io_i) = linio([mdl, '/Fs'], 3, 'output'); io_i = io_i + 1; % Force Sensors -io(io_i) = linio([mdl, '/x1'], 1, 'output'); io_i = io_i + 1; % Mass displacement + io(io_i) = linio([mdl, '/Fs'], 3, 'output'); io_i = io_i + 1; % Force Sensors + io(io_i) = linio([mdl, '/x1'], 1, 'output'); io_i = io_i + 1; % Mass displacement -Giff = linearize(mdl, io, 0); -Giff.InputName = {'w', 'f', 'F'}; -Giff.OutputName = {'Fs', 'x1'}; + Giff = linearize(mdl, io, 0); + Giff.InputName = {'w', 'f', 'F'}; + Giff.OutputName = {'Fs', 'x1'};
Figure 2: Matrix of transfer functions from input to output in open loop (blue) and closed loop (red)
@@ -257,11 +262,11 @@ Giff.OutputName = {'Fs', 'x1'};1.3 Root Locus
+1.3 Root Locus
Figure 3: Root Locus
@@ -269,8 +274,8 @@ Giff.OutputName = {'Fs', 'x1'};1.4 Analytical Model
+1.4 Analytical Model
If we apply the Newton’s second law of motion on the top mass, we obtain: @@ -291,16 +296,16 @@ Re-injecting that into the previous equations gives:
Ga = 1/(m*s^2 + k1 + ke*ka/(ke + ka)) * ... - [ 1 , k1 + ke*ka/(ke + ka) , ke/(ke + ka) ; - -ke*ka/(ke + ka), ke*ka/(ke + ka)*m*s^2 , -ke/(ke+ka)*(m*s^2 + k1)]; -Ga.InputName = {'F', 'w', 'f'}; -Ga.OutputName = {'x1', 'Fs'}; +Ga = 1/(m*s^2 + k1 + ke*ka/(ke + ka)) * ... + [ 1 , k1 + ke*ka/(ke + ka) , ke/(ke + ka) ; + -ke*ka/(ke + ka), ke*ka/(ke + ka)*m*s^2 , -ke/(ke+ka)*(m*s^2 + k1)]; + Ga.InputName = {'F', 'w', 'f'}; + Ga.OutputName = {'x1', 'Fs'};
Figure 4: Comparison of the Identified Simscape Dynamics (solid) and the Analytical Model (dashed)
@@ -308,8 +313,8 @@ Ga.OutputName = {'x1', 'Fs'};1.5 Analytical Analysis
+1.5 Analytical Analysis
For Integral Force Feedback Control, the plant is: @@ -336,68 +341,68 @@ Thus, we wish to maximize \(p/z\), which is equivalent as to minimize \(k_1\) an
m = 1; -k1 = 1e6; -ka = 1e6; -ke = 1e6; +m = 1; + k1 = 1e6; + ka = 1e6; + ke = 1e6; -Giff.InputName = {'f'}; -Giff.OutputName = {'Fs'}; + Giff.InputName = {'f'}; + Giff.OutputName = {'Fs'};
2 Rotating X-Y platform
+2 Rotating X-Y platform
This analysis gave rise to a paper (Dehaeze and Collette 2020).
2.1 Parameters
+2.1 Parameters
m = 1; % [kg] +m = 1; % [kg] -ke = 4.8e6; % [N/m] -ce = 5; % [N/(m/s)] -me = 0.001; % [kg] + ke = 4.8e6; % [N/m] + ce = 5; % [N/(m/s)] + me = 0.001; % [kg] -k1 = 0.96e6; % [N/m] -c1 = 10; % [N/(m/s)] + k1 = 0.96e6; % [N/m] + c1 = 10; % [N/(m/s)] -ka = 65e6; % [N/m] -ca = 5; % [N/(m/s)] -ma = 0.001; % [kg] + ka = 65e6; % [N/m] + ca = 5; % [N/(m/s)] + ma = 0.001; % [kg] -h = 0.2; % [m] + h = 0.2; % [m]
Kiff = tf(0); +Kiff = tf(0);
2.2 Identification
+2.2 Identification
Rotating speed in rad/s:
Ws = 2*pi*[0, 1, 10, 100]; +Ws = 2*pi*[0, 1, 10, 100];
Gs = {zeros(length(Ws), 1)}; +Gs = {zeros(length(Ws), 1)};
%% Name of the Simulink File -mdl = 'amplified_piezo_xy_rotating_stage'; +%% Name of the Simulink File + mdl = 'amplified_piezo_xy_rotating_stage'; -%% Input/Output definition -clear io; io_i = 1; -io(io_i) = linio([mdl, '/fx'], 1, 'openinput'); io_i = io_i + 1; -io(io_i) = linio([mdl, '/fy'], 1, 'openinput'); io_i = io_i + 1; + %% Input/Output definition + clear io; io_i = 1; + io(io_i) = linio([mdl, '/fx'], 1, 'openinput'); io_i = io_i + 1; + io(io_i) = linio([mdl, '/fy'], 1, 'openinput'); io_i = io_i + 1; -io(io_i) = linio([mdl, '/Fs'], 1, 'openoutput'); io_i = io_i + 1; -io(io_i) = linio([mdl, '/Fs'], 2, 'openoutput'); io_i = io_i + 1; + io(io_i) = linio([mdl, '/Fs'], 1, 'openoutput'); io_i = io_i + 1; + io(io_i) = linio([mdl, '/Fs'], 2, 'openoutput'); io_i = io_i + 1; -for i = 1:length(Ws) - ws = Ws(i); - G = linearize(mdl, io, 0); - G.InputName = {'fx', 'fy'}; - G.OutputName = {'Fsx', 'Fsy'}; - Gs(i) = {G}; -end + for i = 1:length(Ws) + ws = Ws(i); + G = linearize(mdl, io, 0); + G.InputName = {'fx', 'fy'}; + G.OutputName = {'Fsx', 'Fsy'}; + Gs(i) = {G}; + end
Figure 5: Transfer function matrix from forces to force sensors for multiple rotation speed
@@ -435,11 +440,11 @@ end2.3 Root Locus
+2.3 Root Locus
Figure 6: Root locus for 3 rotating speed
@@ -447,8 +452,8 @@ end2.4 Analysis
+2.4 Analysis
The negative stiffness induced by the rotation is equal to \(m \omega_0^2\). @@ -460,7 +465,7 @@ Thus, the maximum rotation speed where IFF can be applied is: Let’s verify that.
Ws = 2*pi*[140, 160]; +Ws = 2*pi*[140, 160];
%% Name of the Simulink File -mdl = 'amplified_piezo_xy_rotating_stage'; +%% Name of the Simulink File + mdl = 'amplified_piezo_xy_rotating_stage'; -%% Input/Output definition -clear io; io_i = 1; -io(io_i) = linio([mdl, '/fx'], 1, 'openinput'); io_i = io_i + 1; -io(io_i) = linio([mdl, '/fy'], 1, 'openinput'); io_i = io_i + 1; + %% Input/Output definition + clear io; io_i = 1; + io(io_i) = linio([mdl, '/fx'], 1, 'openinput'); io_i = io_i + 1; + io(io_i) = linio([mdl, '/fy'], 1, 'openinput'); io_i = io_i + 1; -io(io_i) = linio([mdl, '/Fs'], 1, 'openoutput'); io_i = io_i + 1; -io(io_i) = linio([mdl, '/Fs'], 2, 'openoutput'); io_i = io_i + 1; + io(io_i) = linio([mdl, '/Fs'], 1, 'openoutput'); io_i = io_i + 1; + io(io_i) = linio([mdl, '/Fs'], 2, 'openoutput'); io_i = io_i + 1; -for i = 1:length(Ws) - ws = Ws(i); - G = linearize(mdl, io, 0); - G.InputName = {'fx', 'fy'}; - G.OutputName = {'Fsx', 'Fsy'}; - Gs(i) = {G}; -end + for i = 1:length(Ws) + ws = Ws(i); + G = linearize(mdl, io, 0); + G.InputName = {'fx', 'fy'}; + G.OutputName = {'Fsx', 'Fsy'}; + Gs(i) = {G}; + end
Figure 7: Root Locus for the two considered rotation speed. For the red curve, the system is unstable.
@@ -499,28 +504,28 @@ end3 Stewart Platform with Amplified Actuators
+3 Stewart Platform with Amplified Actuators
3.1 Initialization
+3.1 Initialization
initializeGround(); -initializeGranite(); -initializeTy(); -initializeRy(); -initializeRz(); -initializeMicroHexapod(); -initializeAxisc(); -initializeMirror(); +initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); + initializeMirror(); -initializeSimscapeConfiguration(); -initializeDisturbances('enable', false); -initializeLoggingConfiguration('log', 'none'); + initializeSimscapeConfiguration(); + initializeDisturbances('enable', false); + initializeLoggingConfiguration('log', 'none'); -initializeController('type', 'hac-iff'); + initializeController('type', 'hac-iff');
Kp = 1e8; % [N/m]
+ Kp = 1e8; % [N/m]
3.2 APA-100 Amplified Actuator
+3.2 APA-100 Amplified Actuator
3.2.1 Identification
+3.2.1 Identification
K = tf(zeros(6)); -Kiff = tf(zeros(6)); +K = tf(zeros(6)); + Kiff = tf(zeros(6));
Ms = [1, 10, 50]; +Ms = [1, 10, 50];
initializeNanoHexapod('actuator', 'amplified'); +initializeNanoHexapod('actuator', 'amplified');
3.2.2 Controller Design
+3.2.2 Controller Design
-The loop gain for IFF is shown in Figure 8. +The loop gain for IFF is shown in Figure 8.
-The corresponding root locus is shown in Figure 9. +The corresponding root locus is shown in Figure 9.
-Finally, the damping as function of the gain is display in Figure 10. +Finally, the damping as function of the gain is display in Figure 10.
-
Figure 8: Dynamics for the Integral Force Feedback for three payload masses
@@ -589,14 +594,14 @@ Finally, the damping as function of the gain is display in Figure +
Figure 9: Root Locus for the IFF control for three payload masses
Figure 10: Damping ratio of the poles as a function of the IFF gain
@@ -606,17 +611,17 @@ Finally, the damping as function of the gain is display in Figure -Kiff = -1e4/s*eye(6); +Kiff = -1e4/s*eye(6);
3.2.3 Effect of the Low Authority Control on the Primary Plant
+3.2.3 Effect of the Low Authority Control on the Primary Plant
Figure 11: Primary plant in the task space with (dashed) and without (solid) IFF
@@ -624,13 +629,13 @@ The following controller for the Decentralized Integral Force Feedback is used: -
Figure 12: Primary plant in the space of the legs with (dashed) and without (solid) IFF
Figure 13: Coupling in the primary plant in the task with (dashed) and without (solid) IFF
@@ -638,7 +643,7 @@ The following controller for the Decentralized Integral Force Feedback is used: -
Figure 14: Coupling in the primary plant in the space of the legs with (dashed) and without (solid) IFF
@@ -646,11 +651,11 @@ The following controller for the Decentralized Integral Force Feedback is used:3.2.4 Effect of the Low Authority Control on the Sensibility to Disturbances
+3.2.4 Effect of the Low Authority Control on the Sensibility to Disturbances
Figure 15: Norm of the transfer function from vertical disturbances to vertical position error with (dashed) and without (solid) Integral Force Feedback applied
@@ -659,15 +664,15 @@ The following controller for the Decentralized Integral Force Feedback is used:3.3 Optimal Stiffnesses
+3.3 Optimal Stiffnesses
Based on the analytical analysis, we can determine the parameters of the amplified piezoelectric actuator in order to be able to add a lots of damping using IFF: @@ -682,53 +687,53 @@ However, this might not be realizable.
3.3.1 Low Authority Controller
+3.3.1 Low Authority Controller
3.3.1.1 Identification
+3.3.1.1 Identification
The nano-hexapod is initialized with the following parameters:
initializeNanoHexapod('actuator', 'amplified', ... - 'k1', 1e4, ... - 'ke', 1e6, ... - 'ka', 1e6); +initializeNanoHexapod('actuator', 'amplified', ... + 'k1', 1e4, ... + 'ke', 1e6, ... + 'ka', 1e6);
-The obtain plan for the IFF control is shown in Figure 16. -The associated Root Locus is shown in Figure 17. +The obtain plan for the IFF control is shown in Figure 16. +The associated Root Locus is shown in Figure 17.
Based on that, the following IFF gain is chosen:
Kiff = -1e3/s*eye(6); +Kiff = -1e3/s*eye(6);
Figure 16: Plant dynamics for IFF with the amplified piezoelectric stack actuator
Figure 17: Root Locus for IFF with the amplified piezoelectric stack actuator
Figure 18: Damping of the modes as a function of the IFF gain
@@ -736,19 +741,19 @@ Based on that, the following IFF gain is chosen:3.3.1.2 Effect of the Low Authority Control on the Primary Plant
+3.3.1.2 Effect of the Low Authority Control on the Primary Plant
3.3.1.3 Effect of the Low Authority Control on the Sensibility to Disturbances
+3.3.1.3 Effect of the Low Authority Control on the Sensibility to Disturbances
Figure 19: Effect of disturbance with and without IFF
@@ -758,31 +763,31 @@ Based on that, the following IFF gain is chosen:
3.3.2 High Authority Controller
+3.3.2 High Authority Controller
3.3.2.1 Controller Design
+3.3.2.1 Controller Design
h = 2.5; -Kl = 5e6 * eye(6) * ... - 1/h*(s/(2*pi*40/h) + 1)/(s/(2*pi*40*h) + 1) * ... - 1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ... - (s/2/pi/50 + 1)/(s/2/pi/50) * ... - (s/2/pi/10 + 1)/(s/2/pi/10) * ... - 1/(1 + s/2/pi/200); +h = 2.5; + Kl = 5e6 * eye(6) * ... + 1/h*(s/(2*pi*40/h) + 1)/(s/(2*pi*40*h) + 1) * ... + 1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ... + (s/2/pi/50 + 1)/(s/2/pi/50) * ... + (s/2/pi/10 + 1)/(s/2/pi/10) * ... + 1/(1 + s/2/pi/200);
Kl = 3e10 * eye(6) * ... - 1/s * ... - (s+0.8)/s * ... - (s+50)/(s+0.01) * ... - (s+120)/(s+1000) * ... - (s+150)/(s+1000); +Kl = 3e10 * eye(6) * ... + 1/s * ... + (s+0.8)/s * ... + (s+50)/(s+0.01) * ... + (s+120)/(s+1000) * ... + (s+150)/(s+1000);
load('mat/stages.mat', 'nano_hexapod'); -K = Kl*nano_hexapod.kinematics.J*diag([1, 1, 1, 1, 1, 0]); +load('mat/stages.mat', 'nano_hexapod'); + K = Kl*nano_hexapod.kinematics.J*diag([1, 1, 1, 1, 1, 0]);
3.3.2.2 Sensibility to Disturbances and Noise Budget
+3.3.2.2 Sensibility to Disturbances and Noise Budget
We identify the transfer function from disturbances to the position error of the sample when the HAC-LAC control is applied.
3.3.2.3 Simulations of Tomography Experiment
+3.3.2.3 Simulations of Tomography Experiment
Let’s now simulate a tomography experiment. To do so, we include all disturbances except vibrations of the translation stage.
initializeDisturbances(); -initializeSimscapeConfiguration('gravity', false); -initializeLoggingConfiguration('log', 'all'); +initializeDisturbances(); + initializeSimscapeConfiguration('gravity', false); + initializeLoggingConfiguration('log', 'all');
3.3.2.4 Results
+3.3.2.4 Results
3.4 Direct Velocity Feedback with Amplified Actuators
+3.4 Direct Velocity Feedback with Amplified Actuators
Lack of collocation.
initializeController('type', 'hac-dvf'); -K = tf(zeros(6)); -Kdvf = tf(zeros(6)); +initializeController('type', 'hac-dvf'); + K = tf(zeros(6)); + Kdvf = tf(zeros(6));
Ms = [1, 10, 50]; +Ms = [1, 10, 50];
initializeNanoHexapod('actuator', 'amplified', ... - 'k1', 1e4, ... - 'ke', 1e6, ... - 'ka', 1e6); +initializeNanoHexapod('actuator', 'amplified', ... + 'k1', 1e4, ... + 'ke', 1e6, ... + 'ka', 1e6);
4 APA300ML
+4 APA300ML
4.1 Initialization
+4.1 Initialization
initializeGround(); -initializeGranite(); -initializeTy(); -initializeRy(); -initializeRz(); -initializeMicroHexapod(); -initializeAxisc(); -initializeMirror(); +initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); + initializeMirror(); -initializeSimscapeConfiguration(); -initializeDisturbances('enable', false); -initializeLoggingConfiguration('log', 'none'); + initializeSimscapeConfiguration(); + initializeDisturbances('enable', false); + initializeLoggingConfiguration('log', 'none'); -initializeController('type', 'hac-dvf'); + initializeController('type', 'hac-dvf');
Kp = 1e8; % [N/m]
+ Kp = 1e8; % [N/m]
4.2 Identification
+4.2 Identification
K = tf(zeros(6)); -Kdvf = tf(zeros(6)); +K = tf(zeros(6)); + Kdvf = tf(zeros(6));
Ms = [1, 10, 50]; +Ms = [1, 10, 50];
initializeNanoHexapod('actuator', 'amplified', 'k1', 0.4e6, 'ka', 43e6, 'ke', 1.5e6); +initializeNanoHexapod('actuator', 'amplified', 'k1', 0.4e6, 'ka', 43e6, 'ke', 1.5e6);
4.3 Controller Design
+4.3 Controller Design
Damping as function of the gain Finally, we use the following controller for the Decentralized Direct Velocity Feedback:
Kdvf = 5e5*s/(1+s/2/pi/1e3)*eye(6); +Kdvf = 5e5*s/(1+s/2/pi/1e3)*eye(6);
4.4 Effect of the Low Authority Control on the Primary Plant
+4.4 Effect of the Low Authority Control on the Primary Plant
4.5 Control in the leg space
+4.5 Control in the leg space
We design a diagonal controller with all the same diagonal elements. @@ -968,45 +973,45 @@ The design controller is as follows:
h = 2.0; -Kl = 1e9 * eye(6) * ... - 1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ... - 1/h*(s/(2*pi*200/h) + 1)/(s/(2*pi*200*h) + 1) * ... - (s/2/pi/10 + 1)/(s/2/pi/10) * ... - 1/(1 + s/2/pi/300); +h = 2.0; + Kl = 1e9 * eye(6) * ... + 1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ... + 1/h*(s/(2*pi*200/h) + 1)/(s/(2*pi*200*h) + 1) * ... + (s/2/pi/10 + 1)/(s/2/pi/10) * ... + 1/(1 + s/2/pi/300);
load('mat/stages.mat', 'nano_hexapod'); -K = Kl*nano_hexapod.kinematics.J*diag([1, 1, 1, 1, 1, 0]); +load('mat/stages.mat', 'nano_hexapod'); + K = Kl*nano_hexapod.kinematics.J*diag([1, 1, 1, 1, 1, 0]);
4.6 Sensibility to Disturbances and Noise Budget
+4.6 Sensibility to Disturbances and Noise Budget
We identify the transfer function from disturbances to the position error of the sample when the HAC-LAC control is applied.
-
Figure 20: Amplitude Spectral Density of the vertical position error of the sample when the HAC-DVF control is applied due to both the ground motion and spindle vibrations
Figure 21: Amplitude Spectral Density of the vertical position error of the sample in Open-Loop and when the HAC-DVF control is applied
Figure 22: Cumulative Amplitude Spectrum of the vertical position error of the sample in Open-Loop and when the HAC-DVF control is applied
@@ -1014,17 +1019,17 @@ We identify the transfer function from disturbances to the position error of the4.7 Simulations of Tomography Experiment
+4.7 Simulations of Tomography Experiment
Let’s now simulate a tomography experiment. To do so, we include all disturbances except vibrations of the translation stage.
initializeDisturbances(); -initializeSimscapeConfiguration('gravity', false); -initializeLoggingConfiguration('log', 'all'); +initializeDisturbances(); + initializeSimscapeConfiguration('gravity', false); + initializeLoggingConfiguration('log', 'all');
4.8 Results
+4.8 Results
Bibliography
Created: 2020-09-01 mar. 13:48
+Created: 2021-02-20 sam. 23:08
Centrifugal Forces
Table of Contents
-
-
-The centrifugal forces are defined as represented Figure 1 where: +The centrifugal forces are defined as represented Figure 1 where:
Figure 1: Centrifugal forces
1 Parameters
+1 Parameters
We define some parameters for the computation. @@ -79,8 +83,8 @@ The mass of the sample can vary from \(1\,kg\) to \(50\,kg\) to which is added t
M_light = 16; % mass of excentred parts mooving [kg] -M_heavy = 65; % [kg] +M_light = 16; % mass of excentred parts mooving [kg] + M_heavy = 65; % [kg]
w_light = 2*pi; % rotational speed [rad/s] -w_heavy = 2*pi/60; % rotational speed [rad/s] +w_light = 2*pi; % rotational speed [rad/s] + w_heavy = 2*pi/60; % rotational speed [rad/s]
R = 0.01; % Excentricity [m]
+ R = 0.01; % Excentricity [m]
2 Centrifugal forces for light and heavy sample
+2 Centrifugal forces for light and heavy sample
From the formula \(F_c = m \omega^2 r\), we obtain the values shown below. @@ -139,15 +143,15 @@ From the formula \(F_c = m \omega^2 r\), we obtain the values shown below.
3 Centrifugal forces as a function of the rotation speed
+3 Centrifugal forces as a function of the rotation speed
-The centrifugal forces as a function of the rotation speed for light and heavy sample is shown on Figure 2. +The centrifugal forces as a function of the rotation speed for light and heavy sample is shown on Figure 2.
-
Figure 2: Centrifugal forces function of the rotation speed
@@ -155,29 +159,29 @@ The centrifugal forces as a function of the rotation speed for light and heavy s4 Maximum rotation speed as a function of the mass
+4 Maximum rotation speed as a function of the mass
-We plot the maximum rotation speed as a function of the mass for different maximum force that we can use to counteract the centrifugal forces (Figure 3). +We plot the maximum rotation speed as a function of the mass for different maximum force that we can use to counteract the centrifugal forces (Figure 3).
-From a specified maximum allowed centrifugal force (here set to \(10\,[N]\)), the maximum rotation speed as a function of the sample’s mass is shown in Figure 3. +From a specified maximum allowed centrifugal force (here set to \(10\,[N]\)), the maximum rotation speed as a function of the sample’s mass is shown in Figure 3.
F_max = 10; % Maximum accepted centrifugal forces [N] +F_max = 10; % Maximum accepted centrifugal forces [N] -R = 0.01; + R = 0.01; -M_sample = 0:1:100; -M_reflector = 15; + M_sample = 0:1:100; + M_reflector = 15;
Figure 3: Maximum rotation speed as a function of the sample mass for an allowed centrifugal force of \(100\,[N]\)
@@ -187,7 +191,7 @@ M_reflector = 15;Created: 2020-05-07 jeu. 14:05
+Created: 2021-02-20 sam. 23:09
Compensating the gravity forces to start at steady state
Table of Contents
-
-
-The problem is that in presence of gravity, the system does not start at steady state and experience a transient phase (section 2). +The problem is that in presence of gravity, the system does not start at steady state and experience a transient phase (section 2).
In order to start the simulation at steady state in presence of gravity:
-
-
1 Initialization of the Experimental Conditions
+1 Initialization of the Experimental Conditions
We don’t inject any perturbations and no reference tracking. @@ -76,11 +71,11 @@ initializeLoggingConfiguration('log',
2 Without compensation
+2 Without compensation
- + Let’s simulate the system without any compensation of gravity forces.
@@ -111,10 +106,10 @@ sim_no_compensation = simout;-And we can observe on Figure 1 that there are some motion in the system. +And we can observe on Figure 1 that there are some motion in the system.
-3 Simulation to compute the required force in each joint
+3 Simulation to compute the required force in each joint
4 New simulation with compensation of gravity forces
+4 New simulation with compensation of gravity forces
-
+
We now initialize the stages with the option Foffset
.
5 Conclusion
+5 Conclusion
This initialization technique permits to compute the required forces/torques to be applied in each joint in order to compensate for gravity forces. This initialization should be redone for each configuration (change of sample mass, change of tilt angle), but not when changing the stiffness of joints, for instant when changing from lorentz based nano-hexapod or piezo based. @@ -380,7 +375,7 @@ This initialization should be redone for each configuration (change of sample ma
Created: 2020-04-17 ven. 09:34
+Created: 2021-02-20 sam. 23:07
Control of the Nano-Active-Stabilization-System
Table of Contents
-
-
-The system consist of the following inputs and outputs (Figure 1): +The system consist of the following inputs and outputs (Figure 1):
Figure 1: Block diagram with the inputs and outputs of the system
@@ -94,7 +98,7 @@ The system consist of the following inputs and outputs (Figure 2. +From \(\bm{r}_\mathcal{X}\) and \(\bm{\mathcal{X}}\), we can compute the required small change of pose of the nano-hexapod’s top platform expressed in the frame of the nano-hexapod’s base as shown in Figure 2.@@ -106,7 +110,7 @@ This can we considered as: -
Figure 2: Block diagram corresponding to the computation of the position error in the frame of the nano-hexapod
@@ -116,15 +120,15 @@ This can we considered as: In this document, we see how the different outputs of the system can be used to control of position \(\bm{\mathcal{X}}\). -1 Control Configuration - Introduction
+1 Control Configuration - Introduction
In this section, we discuss the control configuration for the NASS.
-From skogestad07_multiv_feedb_contr: +From (Skogestad and Postlethwaite 2007):
@@ -149,24 +153,24 @@ Decoupling elements will be used to convert quantities from the joint space to t
-Decentralized controllers will be largely used both for Tracking control (Section 2) and for Active Damping techniques (Section 3) +Decentralized controllers will be largely used both for Tracking control (Section 2) and for Active Damping techniques (Section 3)
-Combining both can be done in an HAC-LAC topology presented in Section 4. +Combining both can be done in an HAC-LAC topology presented in Section 4.
-The use of decentralized controllers is proposed in Section 5. +The use of decentralized controllers is proposed in Section 5.
2 Tracking Control in the Frame of the Nano-Hexapod - Basic Architectures
+2 Tracking Control in the Frame of the Nano-Hexapod - Basic Architectures
In this section, we suppose that we want to track some reference position \(\bm{r}_{\mathcal{X}_n}\) corresponding to the pose of the nano-hexapod’s mobile platform with respect to its fixed base. @@ -184,11 +188,11 @@ However, thanks to the forward and inverse kinematics, the controller can either These to configuration are described in the next two sections.
2.1 Control in the frame of the Legs
+2.1 Control in the frame of the Legs
-