Force Control applied on the Simscape Model
-Cascade Control where the inner loop goal is to control the total wrench (forces and torques) applied to the upper part of the nano-hexapod.
@@ -296,7 +60,7 @@ Ideas:diff --git a/docs/active_damping_uniaxial.html b/docs/active_damping_uniaxial.html index a453799..d696d5c 100644 --- a/docs/active_damping_uniaxial.html +++ b/docs/active_damping_uniaxial.html @@ -4,237 +4,25 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- + -The sensitivity to disturbances are shown on figure 1. @@ -480,15 +268,15 @@ Then, it is applied on the simscape model.
Let define the system parameters. @@ -618,8 +406,8 @@ And the closed loop system is computed below.
Let’s load the undamped plant: @@ -661,8 +449,8 @@ The corresponding loop gains are shown in figure 7.
Let’s initialize the system prior to identification. @@ -715,8 +503,8 @@ And we save the damped plant for further analysis
As shown on figure 8:
@@ -752,8 +540,8 @@ For instance, the plots are not the same when using minreal
.
Now, look at the new damped plant to control. @@ -782,8 +570,8 @@ However, it increases coupling at low frequency (figure 11
@@ -817,15 +605,15 @@ In the Relative Motion Control (RMC), a derivative feedback is applied between t
Let define the system parameters. @@ -948,8 +736,8 @@ And the closed loop system is computed below.
Let’s load the undamped plant: @@ -992,8 +780,8 @@ The obtained loop gains are shown in figure 15.
Let’s initialize the system prior to identification. @@ -1046,8 +834,8 @@ And we save the damped plant for further analysis.
@@ -1114,15 +902,15 @@ In the Relative Motion Control (RMC), a feedback is applied between the measured
Let define the system parameters.
@@ -1269,8 +1057,8 @@ The obtained sensitivity to disturbances is shown in figure
-
Let’s load the undamped plant:
@@ -1309,8 +1097,8 @@ The controller is defined below and the obtained loop gain is shown in figure
Let’s initialize the system prior to identification.
@@ -1363,8 +1151,8 @@ And we save the damped plant for further analysis.
@@ -1467,8 +1255,8 @@ Direct Velocity Feedback:
Created: 2020-03-13 ven. 17:39 Created: 2020-04-17 ven. 09:36 Created: 2020-04-05 dim. 19:43 Created: 2020-04-17 ven. 09:34
+
+
-The principle of Cascade control is shown in Figure 13 and explained as follow:
+The principle of Cascade control is shown in Figure 15 and explained as follow:
To follow two objectives with different properties in one control system, usually a hierarchy of two feedback loops is used in practice.
This kind of control topology is called cascade control, which is used when there are several measurements and one prime control variable.
-Cascade control is implemented by nesting the control loops, as shown in Figure 13.
+Cascade control is implemented by nesting the control loops, as shown in Figure 15.
The output control loop is called the primary loop, while the inner loop is called the secondary loop and is used to fulfill a secondary objective in the closed-loop system. – taghirad13_paral
Figure 13: Cascade Control Architecture Figure 15: Cascade Control Architecture
@@ -669,7 +486,7 @@ The inner loop can be composed of the system controlled with the HAC-LAC topolog
Figure 14: Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the frame of the Legs Figure 16: Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the frame of the Legs
Figure 15: Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the Cartesian Frame Figure 17: Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the Cartesian Frame
+As the sample rotation around the vertical axis is not measure, the best we can do with the nano-hexapod is to not rotate around this same axis.
+
+One way to do it is shown in Figure 19.
+
+The controller \(\bm{K}_{R_z}\) is decomposed as shown in Figure 20.
+
+ Figure 19: Figure caption
+ Figure 20: Figure caption
4.2 Control Design
+4.2 Control Design
4.3 Identification of the damped plant
+4.3 Identification of the damped plant
4.4 Sensitivity to disturbances
+4.4 Sensitivity to disturbances
4.5 Damped Plant
+4.5 Damped Plant
4.6 Conclusion
+4.6 Conclusion
5.3 Damped Plant
+5.3 Damped Plant
6 Conclusion
+6 Conclusion
initializeReferences();
- initializeDisturbances('enable', false);
- initializeController();
+
initializeReferences();
+initializeDisturbances('enable', false);
+initializeController();
initializeSimscapeConfiguration('gravity', true);
- initializeLoggingConfiguration('log', 'all');
+
initializeSimscapeConfiguration('gravity', true);
+initializeLoggingConfiguration('log', 'all');
initializeGround();
- initializeGranite();
- initializeTy();
- initializeRy();
- initializeRz();
- initializeMicroHexapod();
- initializeAxisc();
- initializeMirror();
- initializeNanoHexapod();
- initializeSample();
+
initializeGround();
+initializeGranite();
+initializeTy();
+initializeRy();
+initializeRz();
+initializeMicroHexapod();
+initializeAxisc();
+initializeMirror();
+initializeNanoHexapod();
+initializeSample();
load('mat/conf_simulink.mat');
- set_param(conf_simulink, 'StopTime', '0.5');
+
load('mat/conf_simulink.mat');
+set_param(conf_simulink, 'StopTime', '0.5');
sim('nass_model');
- sim_no_compensation = simout;
+
sim('nass_model');
+sim_no_compensation = simout;
initializeGround();
- initializeGranite('type', 'init');
- initializeTy('type', 'init');
- initializeRy('type', 'init');
- initializeRz('type', 'init');
- initializeMicroHexapod('type', 'init');
- initializeAxisc();
- initializeMirror();
- initializeNanoHexapod('type', 'init');
- initializeSample('type', 'init');
+
initializeGround();
+initializeGranite('type', 'init');
+initializeTy('type', 'init');
+initializeRy('type', 'init');
+initializeRz('type', 'init');
+initializeMicroHexapod('type', 'init');
+initializeAxisc();
+initializeMirror();
+initializeNanoHexapod('type', 'init');
+initializeSample('type', 'init');
load('mat/conf_simulink.mat');
- set_param(conf_simulink, 'StopTime', '0.1');
+
load('mat/conf_simulink.mat');
+set_param(conf_simulink, 'StopTime', '0.1');
sim('nass_model');
+
sim('nass_model');
max(max(simout.Em.En.Data))
+
max(max(simout.Em.En.Data))
data2orgtable([Fgm 0 0 0; Ftym; Fym; Fsm], {'Granite', 'Translation Stage', 'Tilt Stage', 'Sample'}, {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}, ' %.1e ');
+
data2orgtable([Fgm 0 0 0; Ftym; Fym; Fsm], {'Granite', 'Translation Stage', 'Tilt Stage', 'Sample'}, {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}, ' %.1e ');
data2orgtable([Fhm; Fnm], {'Micro-Hexapod', 'Nano-Hexapod'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'}, ' %.1e ');
+
data2orgtable([Fhm; Fnm], {'Micro-Hexapod', 'Nano-Hexapod'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'}, ' %.1e ');
Foffset.mat
.
save('mat/Foffset.mat', 'Fgm', 'Ftym', 'Fym', 'Fzm', 'Fhm', 'Fnm', 'Fsm');
+
save('mat/Foffset.mat', 'Fgm', 'Ftym', 'Fym', 'Fzm', 'Fhm', 'Fnm', 'Fsm');
Foffset.mat
.
We now initialize the stages with the option Foffset
.
initializeGround();
- initializeGranite('Foffset', true);
- initializeTy('Foffset', true);
- initializeRy('Foffset', true);
- initializeRz('Foffset', true);
- initializeMicroHexapod('Foffset', true);
- initializeAxisc();
- initializeMirror();
- initializeNanoHexapod('Foffset', true);
- initializeSample('Foffset', true);
+
initializeGround();
+initializeGranite('Foffset', true);
+initializeTy('Foffset', true);
+initializeRy('Foffset', true);
+initializeRz('Foffset', true);
+initializeMicroHexapod('Foffset', true);
+initializeAxisc();
+initializeMirror();
+initializeNanoHexapod('Foffset', true);
+initializeSample('Foffset', true);
Foffset
.
And we simulate the system for 0.5 seconds.
load('mat/conf_simulink.mat');
- set_param(conf_simulink, 'StopTime', '0.5');
+
load('mat/conf_simulink.mat');
+set_param(conf_simulink, 'StopTime', '0.5');
sim('nass_model');
- sim_compensation = simout;
+
sim('nass_model');
+sim_compensation = simout;
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
+
@@ -644,7 +461,7 @@ The output control loop is called the primary loop, while the inner loop
7 Other Control Architectures
+7.1 Control to force the nano-hexapod to not do any vertical rotation
+Bibliography
@@ -718,7 +572,7 @@ Signals:
Created: 2020-04-01 mer. 16:16
+Created: 2020-04-17 ven. 09:35
We initialize all the stages with the default parameters. @@ -541,8 +307,8 @@ And we save them for further analysis.
We initialize all the stages with the default parameters. @@ -611,8 +377,8 @@ And we save them for further analysis.