22 KiB
22 KiB
Control of the NASS with optimal stiffness
- Introduction
- Low Authority Control - Decentralized Integral Force Feedback
- Primary Control
- Simulations
Introduction ignore
Low Authority Control - Decentralized Integral Force Feedback
Introduction ignore
Initialization
We initialize all the stages with the default parameters.
initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc();
initializeMirror();
We set the references that corresponds to a tomography experiment.
initializeReferences('Rz_type', 'rotating-not-filtered', 'Rz_period', 1);
initializeSimscapeConfiguration();
initializeDisturbances('enable', false);
initializeLoggingConfiguration('log', 'none');
initializeController('type', 'hac-iff');
Identification
Kx = tf(zeros(6));
Kiff = tf(zeros(6));
Ms = [1, 10, 50];
Gm_iff = {zeros(length(Ms), 1)};
initializeNanoHexapod('k', 1e5, 'c', 2e2);
Controller Design
Root Locus
Damping as function of the gain
Kiff = -200/s*eye(6);
Primary Control
Introduction ignore
Identification
Gm_x = {zeros(length(Ms), 1)};
Gm_l = {zeros(length(Ms), 1)};
load('mat/stages.mat', 'nano_hexapod');
Controller in the task space
Translation
Kx = tf(zeros(6));
h = 1.5;
Kx(1,1) = 2e6 * ...
1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ...
(s/2/pi/1 + 1)/(s/2/pi/1) * ...
(s/2/pi/10 + 1)/(s/2/pi/10);
Kx(2,2) = Kx(1,1);
h = 1.5;
Kx(3,3) = 1e7 * ...
1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ...
(s/2/pi/1 + 1)/(s/2/pi/1) * ...
(s/2/pi/10 + 1)/(s/2/pi/10);
Rotations
h = 1.5;
Kx(4,4) = 1e5 * ...
1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ...
(s/2/pi/1 + 1)/(s/2/pi/1) * ...
(s/2/pi/10 + 1)/(s/2/pi/10);
Kx(5,5) = Kx(4,4);
h = 1.5;
Kx(6,6) = 2e5 * ...
1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ...
(s/2/pi/1 + 1)/(s/2/pi/1) * ...
(s/2/pi/10 + 1)/(s/2/pi/10);
Stability
for i = 1:length(Ms)
isstable(feedback(Gm_x{i}*Kx, eye(6), -1))
end
Simulation
Control in the leg space
h = 1.5;
Kl = 5e6 * eye(6) * ...
1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ...
(s/2/pi/1 + 1)/(s/2/pi/1) * ...
(s/2/pi/10 + 1)/(s/2/pi/10);
for i = 1:length(Ms)
isstable(feedback(Gm_l{i}(1,1)*Kl(1,1), 1, -1))
end