diff --git a/dcm-simscape.html b/dcm-simscape.html index 834116d..b3c5612 100644 --- a/dcm-simscape.html +++ b/dcm-simscape.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +%% Tested bragg angles @@ -118,7 +120,7 @@ dz = d_off./(2* -+-
Figure 1: Jack motion as a function of Bragg angle
@@ -136,34 +138,34 @@ dz = d_off./(2*-1.2. Kinematics (111 Crystal)
++1.2. Kinematics (111 Crystal)
-The reference frame is taken at the center of the 111 second crystal.
-1.2.1. Interferometers - 111 Crystal
++1.2.1. Interferometers - 111 Crystal
Three interferometers are pointed to the bottom surface of the 111 crystal.
-The position of the measurement points are shown in Figure 2 as well as the origin where the motion of the crystal is computed. +The position of the measurement points are shown in Figure 2 as well as the origin where the motion of the crystal is computed.
-+
Figure 2: Bottom view of the second crystal 111. Position of the measurement points.
-The inverse kinematics consisting of deriving the interferometer measurements from the motion of the crystal (see Figure 3): +The inverse kinematics consisting of deriving the interferometer measurements from the motion of the crystal (see Figure 3):
\begin{equation} \begin{bmatrix} @@ -177,7 +179,7 @@ d_z \\ r_y \\ r_x \end{equation} -+-
Figure 3: Inverse Kinematics - Interferometers
@@ -185,7 +187,7 @@ d_z \\ r_y \\ r_x-From the Figure 2, the inverse kinematics can be solved as follow (for small motion): +From the Figure 2, the inverse kinematics can be solved as follow (for small motion):
\begin{equation} \bm{J}_{s,111} @@ -205,7 +207,7 @@ J_s_111 = [1, 0.07, -0.015+
Table 1: Sensor Jacobian \(\bm{J}_{s,111}\) @@ -237,7 +239,7 @@ J_s_111 = [1, 0.07, -0.015 -The forward kinematics is solved by inverting the Jacobian matrix (see Figure 4). +The forward kinematics is solved by inverting the Jacobian matrix (see Figure 4).
\begin{equation} \begin{bmatrix} @@ -251,13 +253,13 @@ x_1 \\ x_2 \\ x_3 \end{equation} -+-
Figure 4: Forward Kinematics - Interferometers
+
Table 2: Inverse of the sensor Jacobian \(\bm{J}_{s,111}^{-1}\) @@ -290,15 +292,15 @@ x_1 \\ x_2 \\ x_3 - -1.2.2. Piezo - 111 Crystal
++1.2.2. Piezo - 111 Crystal
-The location of the actuators with respect with the center of the 111 second crystal are shown in Figure 5. +The location of the actuators with respect with the center of the 111 second crystal are shown in Figure 5.
-+
Figure 5: Location of actuators with respect to the center of the 111 second crystal (bottom view)
@@ -319,14 +321,14 @@ d_z \\ r_y \\ r_x \end{equation} -+-
Figure 6: Inverse Kinematics - Actuators
-Based on the geometry in Figure 5, we obtain: +Based on the geometry in Figure 5, we obtain:
\begin{equation} \bm{J}_{a,111} @@ -346,7 +348,7 @@ J_a_111 = [1, 0.14, -0.1525+
Table 3: Actuator Jacobian \(\bm{J}_{a,111}\) @@ -392,13 +394,13 @@ d_{u_r} \\ d_{u_h} \\ d_{d} \end{equation} - +-
Figure 7: Forward Kinematics - Actuators for 111 crystal
+
-
Table 4: Inverse of the actuator Jacobian \(\bm{J}_{a,111}^{-1}\) @@ -432,8 +434,8 @@ d_{u_r} \\ d_{u_h} \\ d_{d} - -1.3. Save Kinematics
++1.3. Save Kinematics
-save('mat/dcm_kinematics.mat', 'J_a_111', 'J_s_111') @@ -443,15 +445,15 @@ d_{u_r} \\ d_{u_h} \\ d_{d}-2. Open Loop System Identification
++2. Open Loop System Identification
--2.1. Identification
++2.1. Identification
Let’s considered the system \(\bm{G}(s)\) with: @@ -462,11 +464,11 @@ Let’s considered the system \(\bm{G}(s)\) with:
-It is schematically shown in Figure 8. +It is schematically shown in Figure 8.
-+-
Figure 8: Dynamical system with inputs and outputs
@@ -508,8 +510,8 @@ State-space model with 3 outputs, 3 inputs, and 24 states.-2.2. Plant in the frame of the fastjacks
++2.2. Plant in the frame of the fastjacks
-load('mat/dcm_kinematics.mat'); @@ -517,11 +519,11 @@ State-space model with 3 outputs, 3 inputs, and 24 states.
-Using the forward and inverse kinematics, we can computed the dynamics from piezo forces to axial motion of the 3 fastjacks (see Figure 9). +Using the forward and inverse kinematics, we can computed the dynamics from piezo forces to axial motion of the 3 fastjacks (see Figure 9).
-+-
Figure 9: Use of Jacobian matrices to obtain the system in the frame of the fastjacks
@@ -542,7 +544,7 @@ The DC gain of the new system shows that the system is well decoupled at low fre+
+ + +
Table 5: DC gain of the plant in the frame of the fast jacks \(\bm{G}_{\text{fj}}\) @@ -574,17 +576,17 @@ The DC gain of the new system shows that the system is well decoupled at low fre -The bode plot of \(\bm{G}_{\text{fj}}(s)\) is shown in Figure 10. +The bode plot of \(\bm{G}_{\text{fj}}(s)\) is shown in Figure 10.
-+-
Figure 10: Bode plot of the diagonal and off-diagonal elements of the plant in the frame of the fast jacks
+-Computing the system in the frame of the fastjack gives good decoupling at low frequency (until the first resonance of the system).
@@ -593,11 +595,11 @@ Computing the system in the frame of the fastjack gives good decoupling at low f-2.3. Plant in the frame of the crystal
++2.3. Plant in the frame of the crystal
-+-
Figure 11: Use of Jacobian matrices to obtain the system in the frame of the crystal
@@ -652,18 +654,18 @@ The main reason is that, as we map forces to the center of the 111 crystal and n-3. Active Damping Plant (Strain gauges)
++3. Active Damping Plant (Strain gauges)
-In this section, we wish to see whether if strain gauges fixed to the piezoelectric actuator can be used for active damping.
-3.1. Identification
++3.1. Identification
@@ -704,33 +704,128 @@ G_sg = linearize(mdl, io);%% Input/Output definition @@ -671,13 +673,11 @@ clear io; io_i = 1; %% Inputs % Control Input {3x1} [N] -io(io_i) = linio([mdl, '/u'], 1, 'openinput'); io_i = io_i + 1; -% % Stepper Displacement {3x1} [m] -% io(io_i) = linio([mdl, '/d'], 1, 'openinput'); io_i = io_i + 1; +io(io_i) = linio([mdl, '/control_system'], 1, 'openinput'); io_i = io_i + 1; %% Outputs % Strain Gauges {3x1} [m] -io(io_i) = linio([mdl, '/sg'], 1, 'openoutput'); io_i = io_i + 1; +io(io_i) = linio([mdl, '/DCM'], 2, 'openoutput'); io_i = io_i + 1;- -1.4113e-13 +4.4443e-09 1.0339e-13 3.774e-14 1.0339e-13 --1.4113e-13 +4.4443e-09 3.774e-14 3.7792e-14 3.7792e-14 --7.5585e-14 +4.4444e-09 ++ ++
+Figure 12: Bode Plot of the transfer functions from piezoelectric forces to strain gauges measuremed displacements
+++As the distance between the poles and zeros in Figure 15 is very small, little damping can be actively added using the strain gauges. +This will be confirmed using a Root Locus plot. +
+-+ +4. Active Damping Plant (Force Sensors)
+++ +3.2. Relative Active Damping
+++++ +Krad_g1 = eye(3)*s/(s^2/(2*pi*500)^2 + 2*s/(2*pi*500) + 1); +++As can be seen in Figure 13, very little damping can be added using relative damping strategy using strain gauges. +
+ + +++ ++
+Figure 13: Root Locus for the relative damping control
+++Krad = -g*Krad_g1; ++++3.3. Damped Plant
++++The controller is implemented on Simscape, and the damped plant is identified. +
+ +++ +%% Input/Output definition +clear io; io_i = 1; + +%% Inputs +% Control Input {3x1} [N] +io(io_i) = linio([mdl, '/control_system'], 1, 'input'); io_i = io_i + 1; + +%% Outputs +% Force Sensor {3x1} [m] +io(io_i) = linio([mdl, '/DCM'], 1, 'openoutput'); io_i = io_i + 1; ++++ +%% DCM Kinematics +load('mat/dcm_kinematics.mat'); ++++ +%% Identification of the Open Loop plant +controller.type = 0; % Open Loop +G_ol = J_a_111*inv(J_s_111)*linearize(mdl, io); +G_ol.InputName = {'u_ur', 'u_uh', 'u_d'}; +G_ol.OutputName = {'d_ur', 'd_uh', 'd_d'}; ++++ + +%% Identification of the damped plant with Relative Active Damping +controller.type = 2; % RAD +G_dp = J_a_111*inv(J_s_111)*linearize(mdl, io); +G_dp.InputName = {'u_ur', 'u_uh', 'u_d'}; +G_dp.OutputName = {'d_ur', 'd_uh', 'd_d'}; +++++
+Figure 14: Bode plot of both the open-loop plant and the damped plant using relative active damping
++4. Active Damping Plant (Force Sensors)
-Force sensors are added above the piezoelectric actuators. @@ -738,8 +833,8 @@ They can consists of a simple piezoelectric ceramic stack. See for instance fleming10_integ_strain_force_feedb_high.
-4.1. Identification
++4.1. Identification
%% Input/Output definition @@ -798,16 +893,16 @@ G_fs = linearize(mdl, io);
+--
Figure 12: Bode plot of IFF Plant
+Figure 15: Bode plot of IFF Plant
-4.2. Controller - Root Locus
++4.2. Controller - Root Locus
-Kiff_g1 = eye(3)*1/(1 + s/2/pi/20); @@ -815,10 +910,10 @@ G_fs = linearize(mdl, io);+--
Figure 13: Root Locus plot for the IFF Control strategy
+Figure 16: Root Locus plot for the IFF Control strategy
@@ -829,8 +924,8 @@ Kiff = g*Kiff_g1;-4.3. Damped Plant
++4.3. Damped Plant
%% Input/Output definition @@ -871,13 +966,13 @@ G_dp.OutputName = {'d_ur', +--
Figure 14: Bode plot of both the open-loop plant and the damped plant using IFF
+Figure 17: Bode plot of both the open-loop plant and the damped plant using IFF
+-The Integral Force Feedback control strategy is very effective in damping the suspension modes of the DCM.
@@ -886,8 +981,8 @@ The Integral Force Feedback control strategy is very effective in damping the su-4.4. Save
++4.4. Save
-save('mat/Kiff.mat', 'Kiff'); @@ -897,18 +992,18 @@ The Integral Force Feedback control strategy is very effective in damping the sudiff --git a/dcm-simscape.org b/dcm-simscape.org index 88720e2..57b6f9c 100644 --- a/dcm-simscape.org +++ b/dcm-simscape.org @@ -738,13 +738,11 @@ clear io; io_i = 1; %% Inputs % Control Input {3x1} [N] -io(io_i) = linio([mdl, '/u'], 1, 'openinput'); io_i = io_i + 1; -% % Stepper Displacement {3x1} [m] -% io(io_i) = linio([mdl, '/d'], 1, 'openinput'); io_i = io_i + 1; +io(io_i) = linio([mdl, '/control_system'], 1, 'openinput'); io_i = io_i + 1; %% Outputs % Strain Gauges {3x1} [m] -io(io_i) = linio([mdl, '/sg'], 1, 'openoutput'); io_i = io_i + 1; +io(io_i) = linio([mdl, '/DCM'], 2, 'openoutput'); io_i = io_i + 1; #+end_src #+begin_src matlab @@ -762,12 +760,12 @@ dcgain(G_sg) #+end_src #+RESULTS: -| -1.4113e-13 | 1.0339e-13 | 3.774e-14 | -| 1.0339e-13 | -1.4113e-13 | 3.774e-14 | -| 3.7792e-14 | 3.7792e-14 | -7.5585e-14 | +| 4.4443e-09 | 1.0339e-13 | 3.774e-14 | +| 1.0339e-13 | 4.4443e-09 | 3.774e-14 | +| 3.7792e-14 | 3.7792e-14 | 4.4444e-09 | #+begin_src matlab :exports none -%% Bode plot for the plant +%% Bode plot for the plant (strain gauge output) figure; tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); @@ -788,7 +786,8 @@ end hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]); -legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 2); +legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2); +ylim([1e-14, 1e-7]); ax2 = nexttile; hold on; @@ -800,12 +799,173 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); hold off; yticks(-360:90:360); -ylim([-180, 180]); +ylim([-180, 0]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); #+end_src +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/strain_gauge_plant_bode_plot.pdf', 'width', 'wide', 'height', 'tall'); +#+end_src + +#+name: fig:strain_gauge_plant_bode_plot +#+caption: Bode Plot of the transfer functions from piezoelectric forces to strain gauges measuremed displacements +#+RESULTS: +[[file:figs/strain_gauge_plant_bode_plot.png]] + +#+begin_important +As the distance between the poles and zeros in Figure [[fig:iff_plant_bode_plot]] is very small, little damping can be actively added using the strain gauges. +This will be confirmed using a Root Locus plot. +#+end_important + +** Relative Active Damping +#+begin_src matlab +Krad_g1 = eye(3)*s/(s^2/(2*pi*500)^2 + 2*s/(2*pi*500) + 1); +#+end_src + +As can be seen in Figure [[fig:relative_damping_root_locus]], very little damping can be added using relative damping strategy using strain gauges. + +#+begin_src matlab :exports none +%% Root Locus for IFF +gains = logspace(3, 8, 200); + +figure; + +hold on; +plot(real(pole(G_sg)), imag(pole(G_sg)), 'x', 'color', colors(1,:), ... + 'DisplayName', '$g = 0$'); +plot(real(tzero(G_sg)), imag(tzero(G_sg)), 'o', 'color', colors(1,:), ... + 'HandleVisibility', 'off'); + +for g = gains + clpoles = pole(feedback(G_sg, g*Krad_g1, -1)); + plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:), ... + 'HandleVisibility', 'off'); +end + +% Optimal gain +g = 2e5; +clpoles = pole(feedback(G_sg, g*Krad_g1, -1)); +plot(real(clpoles), imag(clpoles), 'x', 'color', colors(2,:), ... + 'DisplayName', sprintf('$g=%.0e$', g)); +hold off; +xlim([-6, 0]); ylim([0, 2700]); +xlabel('Real Part'); ylabel('Imaginary Part'); +legend('location', 'northwest'); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/relative_damping_root_locus.pdf', 'width', 'wide', 'height', 'tall'); +#+end_src + +#+name: fig:relative_damping_root_locus +#+caption: Root Locus for the relative damping control +#+RESULTS: +[[file:figs/relative_damping_root_locus.png]] + +#+begin_src matlab +Krad = -g*Krad_g1; +#+end_src + +** Damped Plant +The controller is implemented on Simscape, and the damped plant is identified. + +#+begin_src matlab +%% Input/Output definition +clear io; io_i = 1; + +%% Inputs +% Control Input {3x1} [N] +io(io_i) = linio([mdl, '/control_system'], 1, 'input'); io_i = io_i + 1; + +%% Outputs +% Force Sensor {3x1} [m] +io(io_i) = linio([mdl, '/DCM'], 1, 'openoutput'); io_i = io_i + 1; +#+end_src + +#+begin_src matlab +%% DCM Kinematics +load('mat/dcm_kinematics.mat'); +#+end_src + +#+begin_src matlab +%% Identification of the Open Loop plant +controller.type = 0; % Open Loop +G_ol = J_a_111*inv(J_s_111)*linearize(mdl, io); +G_ol.InputName = {'u_ur', 'u_uh', 'u_d'}; +G_ol.OutputName = {'d_ur', 'd_uh', 'd_d'}; +#+end_src + +#+begin_src matlab +%% Identification of the damped plant with Relative Active Damping +controller.type = 2; % RAD +G_dp = J_a_111*inv(J_s_111)*linearize(mdl, io); +G_dp.InputName = {'u_ur', 'u_uh', 'u_d'}; +G_dp.OutputName = {'d_ur', 'd_uh', 'd_d'}; +#+end_src + +#+begin_src matlab :exports none +%% Comparison of the damped and undamped plant +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2,1]); +hold on; +plot(freqs, abs(squeeze(freqresp(G_ol(1,1), freqs, 'Hz'))), ... + 'DisplayName', 'd - OL'); +plot(freqs, abs(squeeze(freqresp(G_ol(2,2), freqs, 'Hz'))), ... + 'DisplayName', 'uh - OL'); +plot(freqs, abs(squeeze(freqresp(G_ol(3,3), freqs, 'Hz'))), ... + 'DisplayName', 'ur - OL'); +set(gca,'ColorOrderIndex',1) +plot(freqs, abs(squeeze(freqresp(G_dp(1,1), freqs, 'Hz'))), '--', ... + 'DisplayName', 'd - IFF'); +plot(freqs, abs(squeeze(freqresp(G_dp(2,2), freqs, 'Hz'))), '--', ... + 'DisplayName', 'uh - IFF'); +plot(freqs, abs(squeeze(freqresp(G_dp(3,3), freqs, 'Hz'))), '--', ... + 'DisplayName', 'ur - IFF'); +for i = 1:2 + for j = i+1:3 + plot(freqs, abs(squeeze(freqresp(G_dp(i,j), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ... + 'HandleVisibility', 'off'); + end +end +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]); +legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2); +ylim([1e-12, 1e-6]); + +ax2 = nexttile; +hold on; +plot(freqs, 180/pi*angle(squeeze(freqresp(G_ol(1,1), freqs, 'Hz')))); +plot(freqs, 180/pi*angle(squeeze(freqresp(G_ol(2,2), freqs, 'Hz')))); +plot(freqs, 180/pi*angle(squeeze(freqresp(G_ol(3,3), freqs, 'Hz')))); +set(gca,'ColorOrderIndex',1) +plot(freqs, 180/pi*angle(squeeze(freqresp(G_dp(1,1), freqs, 'Hz'))), '--'); +plot(freqs, 180/pi*angle(squeeze(freqresp(G_dp(2,2), freqs, 'Hz'))), '--'); +plot(freqs, 180/pi*angle(squeeze(freqresp(G_dp(3,3), freqs, 'Hz'))), '--'); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +yticks(-360:90:360); +ylim([-180, 0]); + +linkaxes([ax1,ax2],'x'); +xlim([freqs(1), freqs(end)]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/comp_damp_undamped_plant_rad_bode_plot.pdf', 'width', 'wide', 'height', 'tall'); +#+end_src + +#+name: fig:comp_damp_undamped_plant_rad_bode_plot +#+caption: Bode plot of both the open-loop plant and the damped plant using relative active damping +#+RESULTS: +[[file:figs/comp_damp_undamped_plant_rad_bode_plot.png]] + * Active Damping Plant (Force Sensors) :PROPERTIES: :header-args:matlab+: :tangle matlab/dcm_active_damping_iff.m diff --git a/dcm-simscape.pdf b/dcm-simscape.pdf index 6732f54..595ee5c 100644 Binary files a/dcm-simscape.pdf and b/dcm-simscape.pdf differ diff --git a/figs/comp_damp_undamped_plant_rad_bode_plot.pdf b/figs/comp_damp_undamped_plant_rad_bode_plot.pdf new file mode 100644 index 0000000..80e4bbf Binary files /dev/null and b/figs/comp_damp_undamped_plant_rad_bode_plot.pdf differ diff --git a/figs/comp_damp_undamped_plant_rad_bode_plot.png b/figs/comp_damp_undamped_plant_rad_bode_plot.png new file mode 100644 index 0000000..15f7a7f Binary files /dev/null and b/figs/comp_damp_undamped_plant_rad_bode_plot.png differ diff --git a/figs/relative_damping_root_locus.pdf b/figs/relative_damping_root_locus.pdf new file mode 100644 index 0000000..84bfb04 Binary files /dev/null and b/figs/relative_damping_root_locus.pdf differ diff --git a/figs/relative_damping_root_locus.png b/figs/relative_damping_root_locus.png new file mode 100644 index 0000000..b40e8c0 Binary files /dev/null and b/figs/relative_damping_root_locus.png differ diff --git a/figs/strain_gauge_plant_bode_plot.pdf b/figs/strain_gauge_plant_bode_plot.pdf new file mode 100644 index 0000000..1169e6d --- /dev/null +++ b/figs/strain_gauge_plant_bode_plot.pdf @@ -0,0 +1,1386 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20211130113217+01'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +109 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +110 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +111 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +112 0 obj +<< /Length 113 0 R /Filter /FlateDecode >> +stream +xϮ4Ipݷ`oe˖wV2$h.->'NduUf}3/KR&iʜ1YGxl'm?3b}H7b){YlGGZz?R_?տ"t×H L?Ę5s(?qZ}_q㦼=co1}˟6n|}Bq=KJ5miO_~>nϼsjc6>{Sۏ{Fm^[o1O_ -Created: 2021-11-30 mar. 11:26
+Created: 2021-11-30 mar. 11:44
KCnHixK/ -šSp}Ja_|O}{pm8k|iiT/4l%c44Y*\O0bmh˟44gzKq?^O_{,!q}ӗ&K9>c[=O_{,q`^R(ϲXC/ ==YwXc|ii3-/E8bKMP'?}ii2X \kOdqopBoW}ӗ&{yn{ ?KCOшsjDŽ=iT/ =M[&=S9펡e1gI{bev˗eycerd!!?}ioj t*i8/d[A{ӟ44Yhw[Ȏ/dzm;&/ =Mjxn[1O_{,}Cc_BOܸC2NjOd!oϽr8F=K~Oc-c}n m|ii}IК?|io+̞唎/_q1|bzǦNߴsw/ MO/4n[o/ M+?[/#}˗== _4tŭU߿47#8/_: -=0@`#f9"?}ih9Ko\w%Q_r:Rkw.?~^G~ۗ ykZo1f Ce~^;cU +o/RWxT=_"5)}HEݨ;_%"wW)}dEVxG,>d9o?Nhyp}4XZ2Y?0T2?1je ~`\e2~bkdĀ +y]+S&'bz,Z2?0T2?1ൺe2~bkUd%S5d&Ā2]W&C'<~?#!{Q96Q>~0pe?njŞ&{p?x!6߾撲1Gee7Ց>%dxlQG]+Ǝ>dLlQG]kÎ>d lQQG]>hk1'_z/OFy>)dkQu'M\cJ>ZuI'M[c>ZuIGDkQx:Ձ>dkO,ˇ21G^w:1GE]w:[xo}2T45pxSeOƛʱxd}2kIG]>)dkFX}RfQZW5TxT}Rc +K[>gU[7i>*hkm1'Y7d>*d +kQ%G]J>(hk1'5W7Y>*hke1'U7S>*djQMS>GSv>dseR4EXF}2ڵjIA']*`TA=.|4؏$\FBUʪ#XAuGϥp>(PuTp©x#}|:SsX_/d=^r6?GnfIv Ж";/Ǩ=6ߌԨ52|oGm?5*snSxKUt3cnOw[(w۞ݨ돽W̺AnҿAqJBe[¾I +&Q~h}7m9Gː=:x{i;{z?//O\}[^=9^g)Dp ,⁺%/E" +Zr-C/d֖^bhWMĎJoQaŒB8Dz7?fK빹ՍigM&CY5QfvO-=vvm-ZDXo_9~,LRL`=cZ"f6{0b̚KT~nugQLxHb$Y1-:ߵDZjRkߠCUJ:<\