|
|
|
@@ -899,7 +899,7 @@ The decentralized acrshort:iff controller $\bm{K}_F$ corresponds to a diagonal c
|
|
|
|
|
\end{equation}
|
|
|
|
|
|
|
|
|
|
To determine how the acrshort:iff controller affects the poles of the closed-loop system, a Root Locus plot (Figure ref:fig:rotating_root_locus_iff_pure_int) is constructed as follows: the poles of the closed-loop system are drawn in the complex plane as the controller gain $g$ varies from $0$ to $\infty$ for the two controllers $K_{F}$ simultaneously.
|
|
|
|
|
As explained in cite:preumont08_trans_zeros_struc_contr_with,skogestad07_multiv_feedb_contr, the closed-loop poles start at the open-loop poles (shown by $\tikz[baseline=-0.6ex] \node[cross out, draw=black, minimum size=1ex, line width=2pt, inner sep=0pt, outer sep=0pt] at (0, 0){};$) for $g = 0$ and coincide with the transmission zeros (shown by $\tikz[baseline=-0.6ex] \draw[line width=2pt, inner sep=0pt, outer sep=0pt] (0,0) circle[radius=3pt];$) as $g \to \infty$.
|
|
|
|
|
As explained in cite:preumont08_trans_zeros_struc_contr_with,skogestad07_multiv_feedb_contr, the closed-loop poles start at the open-loop poles (shown by crosses) for $g = 0$ and coincide with the transmission zeros (shown by circles) as $g \to \infty$.
|
|
|
|
|
|
|
|
|
|
Whereas collocated IFF is usually associated with unconditional stability cite:preumont91_activ, this property is lost due to gyroscopic effects as soon as the rotation velocity becomes non-null.
|
|
|
|
|
This can be seen in the Root Locus plot (Figure ref:fig:rotating_root_locus_iff_pure_int) where poles corresponding to the controller are bound to the right half plane implying closed-loop system instability.
|
|
|
|
@@ -3172,6 +3172,11 @@ end
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
#+begin_src matlab
|
|
|
|
|
%% Find result with wanted parallel stiffness
|
|
|
|
|
[~, i_kp_vc] = min(abs(kps_vc - 1e3));
|
|
|
|
|
[~, i_kp_md] = min(abs(kps_md - 1e4));
|
|
|
|
|
[~, i_kp_pz] = min(abs(kps_pz - 1e6));
|
|
|
|
|
|
|
|
|
|
%% Define the obtained controllers
|
|
|
|
|
Kiff_kp_vc = Kiff_vc*opt_iff_kp_gain_vc(i_kp_vc);
|
|
|
|
|
Kiff_kp_vc.InputName = {'fu', 'fv'};
|
|
|
|
@@ -3184,13 +3189,6 @@ Kiff_kp_md.OutputName = {'Fu', 'Fv'};
|
|
|
|
|
Kiff_kp_pz = Kiff_pz*opt_iff_kp_gain_pz(i_kp_pz);
|
|
|
|
|
Kiff_kp_pz.InputName = {'fu', 'fv'};
|
|
|
|
|
Kiff_kp_pz.OutputName = {'Fu', 'Fv'};
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
#+begin_src matlab
|
|
|
|
|
%% Find result with wanted parallel stiffness
|
|
|
|
|
[~, i_kp_vc] = min(abs(kps_vc - 1e3));
|
|
|
|
|
[~, i_kp_md] = min(abs(kps_md - 1e4));
|
|
|
|
|
[~, i_kp_pz] = min(abs(kps_pz - 1e6));
|
|
|
|
|
|
|
|
|
|
%% Identify plants with choosen Parallel stiffnesses
|
|
|
|
|
model_config.Tuv_type = "parallel_k"; % Default: 2DoF stage
|
|
|
|
@@ -4276,8 +4274,6 @@ xticks([1e-1, 1e0, 1e1, 1e2, 1e3]);
|
|
|
|
|
xtickangle(0)
|
|
|
|
|
ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
|
|
|
|
ldg.ItemTokenSize = [20, 1];
|
|
|
|
|
|
|
|
|
|
linkaxes([ax1,ax2,ax3], 'y')
|
|
|
|
|
ylim([1e-8, 1e-2])
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|