This repository has been archived by the owner on Nov 13, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
application.tex
1961 lines (1787 loc) · 92.8 KB
/
application.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\chapter{Controller Design for a 1-DoF System}
\label{chap:application}
In this chapter, the synthesis conditions of the previous chapter is applied to a control design problem for a
rotational 1-DoF experimental setup. Different uncertainty structures are considered and compared.
\begin{figure}%
\centering
\includegraphics[width=0.6\columnwidth]{\impath/application/hendrix1dof}%
\caption[TU/e $1$-DoF Experimental Setup]{TU/e $1$-DoF Experimental Setup (Image is taken from \cite{hendrix})}%
\label{fig:app:onedof}%
\end{figure}
\section{The experimental setup}
At the Control Systems Technology department of Eindhoven University of Technology, a 1-Degree-of-Freedom prototype has been realized
within the project of constructing a 5-DoF haptics local device for robotically assisted eye surgery(\cite{hendrix}). The setup is shown
in \Cref{fig:app:onedof}. The actuation is provided to a capstan drive via a DC servo motor Maxon RE 35 which is connected to a statically
balanced circular strip plate. This piece is also connected to an inner segment via elastic elements and the relative motion of these
pieces make it possible to obtain a force measurement. An additional linear piece attached to the inner segment for handling the device.
Due to the capstan mechanism, there is a nominal rotational reduction of $i=\frac{1}{10}$. The system consists of four major inertial
components; the motor and the encoder, outer strip segment, inner segment and the linear end-effector. The physical values are given in
\Cref{tab:app:values}. The system can be approximated by the block diagram depicted in \Cref{fig:app:blodia}.
\begin{table}%
\caption{Physical Values of the Experimental Setup}
\centering
\begin{tabular}{l S l S l S}
\toprule
\multicolumn{2}{c}{Inertia \si{\kilo\gram\meter\squared}} &\multicolumn{2}{c}{Stiffness \si{\newton\meter\per\radian}}\\
\midrule
$J_{mot+enc}$ &7.0e-6 &$k_{mot}$ &1.5e2\\
$J_{pulley}$ &4.6e-7 &$k_{wire}$ &2.9e3\\
$J_{outer}$ &2.7e-4 &$k_{ts}$ &3.5e3\\
$J_{inner+end}$ &4.4e-4 &$k_{mot,b}$ &7.9e3\\
\bottomrule
\end{tabular}
\label{tab:app:values}
\end{table}
\begin{figure}[b]%
\centering
\begin{tikzpicture}[spring/.style={decoration={coil,pre length=#1,post length=#1,amplitude=1mm,segment length=1mm},decorate},
blodia/.style={draw,minimum height=1cm,minimum width=1.5cm},
scale=0.6,transform shape]
\coordinate (o) at (0,0);
\node[blodia] (pulley) at (-2cm,-2cm) {$J_{pulley}$};
\node[blodia,left= 2cm of pulley] (motenc) {$J_{mot+enc}$};
\node[blodia,anchor=west] (outer) at (4.0cm,1cm) {$J_{outer}$};
\node[blodia,right= 2cm of outer] (inner) {$J_{inner+ee}$};
\draw[spring=3mm] (motenc) -- (pulley)node[pos=0.5,above=3mm] {$k_{mot}$};
\draw (pulley) -| (o|-outer);
\draw[spring=3mm] (o|-outer) --++(2cm,0cm)node[pos=0.5,above=3mm] {$k_{mot,b}$} coordinate (temp);
\draw[spring=3mm] (temp) --(outer) node[pos=0.5,above=3mm] {$k_{wire}$};
\draw[spring=3mm] (outer) --(inner) node[pos=0.5,above=3mm] {$k_{ts}$};
\draw (o)--++(150:3mm)--++(-90:3mm) -- cycle;
\foreach\x in{-1,...,4}\draw[ultra thin] (150:3mm)++(0,-\x mm) --++(120:1.5mm);
\draw(150:3mm)++(0,2 mm) --++(0,-6.5mm);
\node (i) at (.6cm,0) {$i=\frac{1}{10}$};
\fill (o) circle (1.5pt);
\draw[-stealth] (motenc.west) |- ([yshift=5mm]motenc.north) node[above left] {$u(t)$};
\draw[-stealth] (motenc.west) |- ([yshift=-5mm]motenc.south) node[below left] {$\varphi(t)$};
\end{tikzpicture}
\caption[Simplified block diagram of the experimental setup ]{Simplified block diagram of the experimental setup (Adapted from \cite{
hendrix})}%
\label{fig:app:blodia}%
\end{figure}
If we enumerate all the blocks from left to right, starting from one to four, then the mathematical model of each device is given by:
\begin{align}
\frac{J_1}{i} \ddot{x}_1 &= \frac{u}{i} - \frac{k_1}{i}(x_1 - x_2)\\
\frac{J_2}{i} \ddot{x}_2 &= \frac{k_1}{i}(x_1 - x_2)-k_c(ix_2-x_3)\\
J_3 \ddot{x}_3 &= k_c(ix_2-x_3) - k_4(x_3-x_4)\\
J_4 \ddot{x}_4 &= k_4(x_3-x_4)
\end{align}
where $k_c = \inv{(\frac{1}{k_{wire}}+\frac{1}{k_{mot,b}})}$ and $u$ is the motor input. The theoretical model response is shown in
\Cref{fig:app:modfrf}. The identification and the model verification is also provided in \cite{hendrix}. Based on the
frequency response data, we have also added damping to the model artificially both to improve the numerical properties
of the model and also match the physical setup. The damping coefficients to each spring element/group is given in \Cref{%
tab:app:damp}. We will use the same model for the remote device in what follows below.
\begin{table}%
\centering
\begin{tabular}{l S}
\toprule
\multicolumn{2}{c}{Damping \si[per-mode=fraction]{\newton\meter\per\radian\second}}\\
\midrule
$b_{mot}$ & 1.8e-3\\
$b_{wire+mot,b}$ & 1.0e-5\\
$b_{ts}$ & 1.0e-3\\
\bottomrule
\end{tabular}
\caption{The additional damping coefficients that are included in the model.}
\label{tab:app:damp}
\end{table}
\begin{figure}[b]%
\centering
\begin{tikzpicture}
\begin{loglogaxis}[
enlargelimits=false,
grid=both,
width=0.8\textwidth,height=5cm,
ymin=5e-6,
yticklabel={\pgfmathprintnumber[fixed]{\tick}},
xlabel= Frequency,
ylabel= Magnitude,
x unit=\si{\hertz},
y unit=\si{\decibel},
log basis y=10,
yticklabel={\pgfmathparse{20*(\tick)}\pgfmathprintnumber[fixed]{\pgfmathresult}},
]
\addplot[red,thick] table[x=freq,y=resp1] {plotdata/figappmodfrf.txt};
\addplot[blue,dashed] table[x=freq,y=resp2] {plotdata/figappmodfrf.txt};
\addlegendentry[font=\tiny,align=left,anchor=west]{Motor $\rightarrow$ Encoder}
\addlegendentry[font=\tiny,align=left,anchor=west]{Motor $\rightarrow$ End Effector}
\end{loglogaxis}
\end{tikzpicture}
\caption{The frequency response of the hypothetical models from the motor actuation to the position measurements.}%
\label{fig:app:modfrf}%
\end{figure}
Note that up to the first zero of the system, same behavior can be represented with a second order transfer
function
\[
\tilde{G}(s) = \frac{1}{0.0015s^2 + 0.00287s + 0.25}.
\]
A similar simplification is used in \cite{cesarACC,cesarSYROCO} and the resulting controllers which are based on this model
have been experimentally implemented. Due to the low-frequency nature of the task, this simplification did not cause any problems
during the experiments.
We nevertheless present the full model LFT interconnection structure but in the controller design cases only the simplified
model is used. This is due to the fact that the system is altered significantly (e.g., the steel cables are replaced by plastic
cables and the housing of the shafts are subjected to wear etc.) from its original construction. Hence, we have
used a simple model obtained from identification experiments. This also serves as a perfect case where unmodeled dynamics
deviates from the theretical model and we have to rely on the approxiamte FRF measurements. Thus, we include the full LFT
model to demonstrate that the complexity of the model is not an essential obstacle and still can be used conveniently.
\subsection{Incorporating the human dynamics}
To be able to model both cases of \enquote{user holding/released the device} and \enquote{remote device is in free-air/contact}
cases we need to introduce a set of models of the possible human users and environment dynamics. However, those models depend on
grasp configuration, task-environment and other parameters. One can start with a predefined task case, say a MIS or a peg-in-hole
assembly and limit the relevant cases that can occur together with some engineering safety tolerance. That would reduce the
set of possible physically relevant operators significantly. In the absence of refined human and environment models, we would simply
follow the ubiquitous mass-spring-damper modeling paradigm as shown in \Cref{fig:app:attachhuman}. Here, we adopt the usage of an
external force model but this does not bring in any complications since we do not invoke any passivity assumptions. Moreover
we will assume that the parameters of the human dynamics vary in time. Additionally the human force $f_h$ is low-pass filtered to
emphasize the $\approx \SI{10}{\hertz}$ bandwidth.
%There is no structural distinction of applied force and human arm but we only
%model the relevant arm/hand trajectories thus the resulting combined response is not modified.
Note that by adding another under-damped mass-spring-damper component to the human dynamics one can also model the hand tremor
and motor noise if needed with the possibility of selecting the frequency band where these effects become dominant.
\begin{figure}%
\centering
\begin{tikzpicture}[spring/.style={decoration={coil,pre length=#1,post length=#1,
amplitude=1mm,segment length=1mm},decorate},
blodia/.style={draw,minimum height=1cm,minimum width=1.5cm},
damper/.style={decoration={markings,
mark connection node=dmp,
mark=at position 0.5 with
{\node (dmp) [inner sep=0pt,transform shape,rotate=-90,minimum width=5pt,minimum height=1pt,draw=none] {};
\draw ([xshift=1pt]dmp.north east) -- (dmp.south east) -- (dmp.south west) -- ([xshift=1pt]dmp.north west);
\draw ([yshift=-2pt]dmp.north) -- ([yshift=2pt]dmp.north);}}, decorate},
ground/.style={fill,pattern=north east lines,draw=none,minimum width=3mm,minimum height=10mm},
scale=0.8,transform shape]
\coordinate (outer) at (0,0);
\node[blodia,right= 2cm of outer] (inner) {$J_{inner+ee}$};
\draw[spring=3mm] ([yshift=2mm]outer) -- ([yshift=2mm]inner.west) node[pos=0.5,above=3mm] {$k_{ts}$};
\draw[damper] ([yshift=-2mm]outer) -- ([yshift=-2mm]inner.west) node[pos=0.5,below=2mm] {$b_{ts}$};
\draw[dashed] ([shift={(-5mm,-5mm)}]outer) -| (outer) |- ([shift={(-5mm,5mm)}]outer);
\node[draw,anchor=south east,minimum size=1cm] at (inner.north east) (humass){$m_h$};
\draw[spring=3mm] ([yshift=2mm]humass.east) -- ++(2cm,0mm) node[pos=0.5,above=3mm] {$k_{h}$};
\draw[damper] ([yshift=-2mm]humass.east) -- ++(2cm,0mm) node[pos=0.5,below=2mm] {$b_h$};
\draw coordinate (t2) at ([xshift=2cm]humass.north east) (t2) -- (t2|-humass.south east);
\node[ground,anchor=north west] at (t2) {};
\draw[stealth-] (inner.-10) --++(1cm,0) node[below]{$F_h$};
\end{tikzpicture}
\caption[Including the uncertain human model in the system ]{Including the uncertain human model in the
system shown in \Cref{fig:app:blodia}.}%
\label{fig:app:attachhuman}%
\end{figure}
The human arm model is identified experimentally by fitting a second order mass-spring-damper model for different grasp
configurations (see, e.g., \cite{cesarSYROCO}). Then, using these frequency response data, uncertainty intervals in which
the parameters of the human arm varies through time are selected. Similarly the environment is assumed to be a pure stiff
spring with time-varying stiffness coefficient. The parameter intervals are given in \Cref{tab:app:humparam}\footnote{We
keep using $m_h$ notation for convenience however it should be understood as $J_h$ due to the rotational nature of motion.}.
\begin{table}%
\centering
\begin{tabular}{r l l}\toprule
\multicolumn{3}{c}{Parameter Variation Intervals}\\\midrule
$m_h$ & $[0,0.53]$ &\si{\kilo\gram\meter\squared\per\radian}\\
$b_h$ & $[0,8.58]$ &\si{\newton\meter\second\per\radian}\\
$k_h$ & $[0,994.2]$ &\si{\newton\meter\per\radian}\\
$k_e$ & $[0,3000]$ &\si{\newton\meter\per\radian}\\
\bottomrule
\end{tabular}
\caption[Identified Uncertain Human Parameters as Rotational Mechanical Components]{%
Identified Uncertain Human Parameters as Rotational Mechanical Components.%
}
\label{tab:app:humparam}
\end{table}
Next, we obtain the LFT interconnection of the uncertain model. We first write down the equations of motion of the combined
inertial element $J_{inner+ee}$/$m_h$
\[
(J_4+m_h)\ddot{x}_4 = k_3(x_3-x_4) + b_3(\dot{x}_3-\dot{x}_4) - k_hx_4 - b_h\dot{x}_4 -f_h
\]
and hence
\[%\begin{align*}
\ddot{x}_4 = \inv{(J_4 + m_h)}\left(k_3(x_3-x_4) + b_3(\dot{x}_3-\dot{x}_4) - k_hx_4 - b_h\dot{x}_4 -f_h\right)
\]\[
= {%\underbracket
\left(\frac{1}{J_4} - \frac{1}{J_4}\frac{m_h}{J_4}\inv{\left(1+\frac{m_h}{J_4}\right)}\right)%
}%
\left(k_3(x_3-x_4) + b_3(\dot{x}_3-\dot{x}_4) - k_hx_4 - b_h\dot{x}_4 -f_h\right).
\]%\end{align*}
The first term in the second equality can be shown to be
\[
\delta_{m_h}{\displaystyle\star}\pmatr{-\frac{m_h}{2J_4}&\frac{m_h}{2J_4}\\-\frac{1}{J_4}&\frac{1}{J_4}}
\]
with $\delta_{m_h}(t)\in[0,2]$ for all $t>0$. Then, labeling the remaining uncertain terms with uncertainty outputs we have
\begin{align}
\ddot{x}_4 &= \frac{1}{J_4}\bigg(k_3(x_3-x_4) + b_3(\dot{x}_3-\dot{x}_4) - \frac{m_h}{2J_4}p_1 - p_2 - p_3 -f_h\bigg)\\
p_1 &= \delta_{m_h}q_1\\
p_2 &= \delta_{b_h}q_2\\
p_3 &= \delta_{k_h}q_3\\
q_1 &= \bigg(k_3(x_3-x_4) + b_3(\dot{x}_3-\dot{x}_4) - \frac{m_h}{2J_4}p_1 - p_2 - p_3 -f_h\bigg)\\
q_2 &= \frac{b_h}{2}\dot{x}_4\\
q_3 &= \frac{k_h}{2}x_4
\end{align}
where $\delta_{m_h},\delta_{b_h},\delta_{k_h}\in[0,2]$ for all $t>0$. The resulting state equations are obtained as
\begin{alignat}{4}\label{eq:prestateequations1}
\hat{E}\dot{x} &= \hat Ax &&+ \hat B_p p &&+ \hat B_w w &&+ \hat B_u u\\\label{eq:prestateequations2}
q &= \hat C_qx &&+ \hat D_{pq}p &&+ \hat D_{wq}w &&+ \hat D_{uq}u
\end{alignat}
where
\begin{equation}
\hat E =\pmatr{
\multirow{4}{*}{\scalebox{1.5}{$I_4$}} & & & & \\
& & & & \\
& & & & \\
& & & & \\
&J_1& & & \\
& &\frac{J_2}{i}& & \\
& & &J_3& \\
& & & &J_4
},
\hat B_p =
\pmatr{
0 &0 &0 \\
0 &0 &0 \\
0 &0 &0 \\
0 &0 &0 \\
0 &0 &0 \\
0 &0 &0 \\
0 &0 &0 \\
-\frac{m_h}{2J_4} &-1 &-1
},
\hat B_w =
\pmatr{0\\0\\0\\0\\0\\0\\0\\-1},
\hat B_u = \pmatr{0\\0\\0\\0\\1\\0\\0\\0}
\label{eq:eqrotmodelE}
\end{equation}
\begin{equation}
\hat A = \pmatr{
\multicolumn{4}{c}{\multirow{4}{*}{\scalebox{1.5}{$0_4$}}} &\multicolumn{4}{c}{\multirow{4}{*}{\scalebox{1.5}{$I_4$}}}\\
&&&&&&&\\
&&&&&&&\\
&&&&&&&\\
-k_1 &k_1 &0 &0 &-b_1 &b_1 &0 &0 \\
\frac{k_1}{i} &\frac{-k_1}{i}-ik_2 &k_2 &0 &\frac{b_2}{i} &\frac{-b_2}{i}-ib_2 &b_2 &0 \\
0 &ik_2 &-k_2-k_3 &k_3 &0 &ib_2 &-b_2-b_3 &b_3 \\
0 &0 &k_3 &-k_3 &0 &0 &b_3 &-b_3
}
\label{eq:rotmodelA}
\end{equation}
\begin{multline}
\hat Cq = \pmatr{
0 &0 &k_3 &-k_3 &0 &0 &b_3 &-b_3\\
0 &0 &0 &0 &0 &0 &0 &\frac{b_h}{2}\\
0 &0 &0 &\frac{k_h}{2} &0 &0 &0 &0
},\\
\hat D_{pq} = \pmatr{\frac{m_h}{2J_4} &-1 &-1\\0&0&0\\0&0&0},
\hat D_{wq} = \pmatr{-1\\0\\0},
\hat D_{uq} = \pmatr{0\\0\\0},
\label{eq:rotmodelCq}
\end{multline}
The position measurements are done at the
motor location with an encoder and the force measurements are based on the relative motion of the $J_{inner+ee}$ and
$J_{outer}$ since the elasticity of the coupling is known. This leads to the following measurement channel structure:
\begin{multline}
\hat Cy = \pmatr{
1 &0 &0 &0 &0 &0 &0 &0\\
0 &0 &k_3 &-k_3 &0 &0 &0 &0\\
},\\
\hat D_{py} = \pmatr{0 &0 &0\\0&0&0},
\hat D_{wy} = \pmatr{0\\0\\0},
\hat D_{uy} = \pmatr{0\\0\\0},
\label{eq:rotmodelCy}
\end{multline}
\subsection{Incorporating the environment dynamics}
The remote device is simply another copy of the local device, hence shares the same structure given by
\eqref{eq:prestateequations1},\eqref{eq:prestateequations2}. For the remote device, we only consider a spring with time-varying
characteristics however it can also be assumed to admit a more detailed structure similar to the human dynamics. It's relatively
simpler to obtain the LFT interconnection since we can simply remove the $\delta_{m_e},\delta_{b_e}$ uncertainty channels such
that only the environment stiffness coefficient remains uncertain. We will assume that the environment stiffness can change
arbitrarily fast in order to model hard contacts or sudden release from a constraint, say, sliding over an edge. The uncertainty
matrices are modified such that
\[
q = k_e x_4, p = \delta_{k_e} q.
\]
The environment uncertainty is selected as a time-varying parameter $k_e\in[0,3000]$ \si{\newton\meter\per\radian} to model
the relatively high stiff contacts.
\subsection{The Generalized Plant Model}
Combining the both device models, we can then define the performance channels. For the force tracking we select the error of
the force measurements to be minimized. For the position tracking we select the devices' encoder reading difference to be
minimized. We also penalize the actuator outouts to make the numerical optimization problem healthier. We will further emphasize
the frequency bands of interest with frequency dependent weights defined below. Translating these into
the matrix form, we obtain the following plant $G\in\mathcal{RH}_\infty^{(n_q+n_z+n_y)\times(m_p+m_w+m_u)}$
\begin{equation}
%\pmatr{\dot{x}\\\hline q\\ z\\ y} =
G \coloneqq \left[
\begin{array}{c|ccc}
A &B_p &B_w &B_u\\\hline
C_q &D_{pq} &D_{wq} &D_{uq}\\
C_z &D_{pz} &D_{wz} &D_{uz}\\
C_y &D_{py} &D_{wy} &0
\end{array}
\right]
%\pmatr{x\\ p\\ w\\ u}
\label{eq:app:genplantsymb}
\end{equation}
with particular entries are defined as the following; let $e_\frac{i}{8}$ denote the
$i$\textsuperscript{th} column of the $8\times 8$ identity matrix,
\begin{gather*}
A = I_2\otimes\hat{A} \\
B_p = \pmatr{\hat{B}_p&0\\0&-e_{\frac{8}{8}}},
B_w = I_2\otimes\hat{B}_w,
B_u = I_2\otimes\hat{B}_u\\
C_y = I_2\otimes\hat{C}_y,
D_{py} = 0\\%I_2\otimes\hat{D}_{py},
D_{wy} = 0\\%I_2\otimes\hat{D}_{wy}\\
C_q =\pmatr{\hat{C}_q &0\\0&\displaystyle\frac{k_e}{2}e^T_\frac{4}{8}},
D_{pq} = \pmatr{\hat{D}_{pq} &0\\0&0},
D_{wq} = \pmatr{\hat{D}_{wq} &0\\0&0},
D_{uq} = 0\\%\pmatr{\hat{D}_{uq} &0\\0&0}
\end{gather*}
Then, the performance channels are given by
\[
\begin{array}{rl}
z = \pmatr{x_l-x_r\\f_l-f_r\\u_l\\u_r}
\end{array}
\]
which can be expressed as
\[
C_z = \pmatr{e_\frac{1}{8}^T &-e_\frac{1}{8}^T\\
k_3(e_\frac{3}{8} -e_\frac{4}{8})^T &-k_3(e_\frac{3}{8} -e_\frac{4}{8})^T\\
\multicolumn{2}{c}{0}\\
\multicolumn{2}{c}{0}},
D_{pz} = D_{wz} = 0,D_{uz} = \pmatr{0_2\\I_{2}}.
\]
Thus, we have obtained a plant-uncertainty interconnection $\Delta-G$ where
\begin{equation}
\Delta\coloneqq \pmatr{\delta_{m_h}&&&\\&\delta_{b_h}&&\\&&\delta_{k_h}&\\&&&\delta_{k_e}}
\label{eq:realisticunc}
\end{equation}
%\subsection{Input/Output Weights Selection}
%Once we obtain the generalized plant, the performance channels are weighted to emphasize the frequency band of
%interest.
%
%\subsubsection{Input Weight}
%The human force is modeled as an external input to the system and without a weight it is only assumed to be a
%finite energy signal with no additional constraints. However, we are aware of the fact that the frequency
%spectrum of the human input is negligible beyond \SI{\approx 10}{\hertz}. Similarly the environment force spectrum
%is also not relevant since the environment uncertainty models the spring action up to \SI{3000}{\newton\meter\per\radian}.
%Thus, both channels are prefiltered with low-pass filters to constrain the possible inputs.
%%
%\[
%W_f = \frac{20\pi}{s+20\pi}
%\]
%
%
%\subsubsection{Output Weights}
%The position tracking error spectrum is nominally limited to the external inputs to the system since the position change
%is due to the human and environment forces acting on the system. For an additional safety factor, we choose the bandwidth
%of the filter to be around \SI{100}{\hertz}.
%%
%\[
%W_{pos} = \frac{2\cdot10^4\pi}{s^2 + 180\pi s+2\cdot10^4}
%\]
%
\subsection{Simplified System Model}
In the previous publications, \cite{cesarACC,cesarSYROCO} the simplified model is utilized while capturing the essential
complications making the problem substantially simpler. We have followed the same idea by adopting the scheme depicted in
\Cref{fig:app:simpdiag}. In this simplified model, the dynamics of the devices are lumped into second-order mass-spring-damper
models and the human/environment dynamics are interconnected directly to the corresponding device models.
\begin{figure}
\centering
\begin{subfigure}{0.4\linewidth}
\centering
\begin{tikzpicture}[>=latex,scale=0.85,transform shape]
\node[draw,inner xsep=4mm,inner ysep=2mm] (op) at (0,1.5) {Operator};
\node[draw] (mas) at (0,0) {Local Device};
\node[circle,draw,inner sep=2pt] (sum) at ([xshift=6mm]mas.east) {};
\draw[->] (op) -| (sum);
\draw[<-] (mas) -- (sum);
\draw[->] ([yshift=-5mm]sum.south) node[below](fm){$f_m$}-- (sum);
\draw[->] (op-|sum) -- ++(0,5mm)node[left] {$f_h$};
\draw[->] (mas.west) -| ++(-5mm,5mm) |- (op);
\node (xm) at ([xshift=-5mm]mas.west|-fm) {$x_m$};
\draw[->] (mas) -|(xm);
\end{tikzpicture}
\caption{}
\label{fig:app:simpdiaga}
\end{subfigure}
\hfill
\begin{subfigure}{0.4\linewidth}
\centering
\begin{tikzpicture}[>=latex,scale=0.85,transform shape]
\node[draw,inner xsep=1mm,inner ysep=2mm] (op) at (0,1.5) {Environment};
\node[draw] (mas) at (0,0) {Remote Device};
\node[circle,draw,inner sep=2pt] (sum) at ([xshift=6mm]mas.east) {};
\draw[->] (op) -| (sum);
\draw[<-] (mas) -- (sum);
\draw[->] ([yshift=-5mm]sum.south) node[below](fm){$f_s$}-- (sum);
\draw[->] (op-|sum) -- ++(0,5mm)node[left] {$f_e$};
\draw[->] (mas.west) -| ++(-7mm,5mm) |- (op);
\node (xm) at ([xshift=-7mm]mas.west|-fm) {$x_s$};
\draw[->] (mas) -|(xm);
\node (min) at ([shift={(-1mm,1.2mm)}]sum.150) {$\scriptstyle -$};
\end{tikzpicture}
\caption{}
\label{fig:app:simpdiagb}
\end{subfigure}
\caption{Diagram of (a) operator/local device and (b) environment/remote device.}
\label{fig:app:simpdiag}
\end{figure}
\begin{figure}%
\centering
\begin{tikzpicture}
\begin{loglogaxis}[name=plot1,
enlargelimits=false,
grid=both,
width=0.8\textwidth,height=5cm,
ymin=5e-6,
%yticklabel={\pgfmathprintnumber[fixed]{\tick}},
%xlabel= Frequency,
ylabel= Magnitude,
%x unit=\si{\hertz},
y unit=\si{\decibel},
log basis y=10,
yticklabel={\pgfmathparse{20*(\tick)}\pgfmathprintnumber[fixed]{\pgfmathresult}},
]
\addplot[red,thick] table[x index=0,y index=1] {plotdata/teleopidfrd.dat};
\addplot[blue,dashed] table[x index=0,y index=3] {plotdata/teleopidfrd.dat};
\addlegendentry[font=\tiny,align=left,anchor=west]{Local Device}
\addlegendentry[font=\tiny,align=left,anchor=west]{Remote Device}
\end{loglogaxis}
%
\begin{semilogxaxis}[at={(plot1.outer south)},anchor=outer north,
enlargelimits=false,
grid=both,
width=0.8\textwidth,height=5cm,
xlabel= Frequency,
ylabel= Phase,
x unit=\si{\hertz},
y unit=\si{\degree},
y filter/.code=\pgfmathparse{#1*360/(2*pi)}
%yticklabel={\pgfmathparse{deg(\tick)}\pgfmathprintnumber[fixed]{\pgfmathresult}},
]
\addplot[red,thick] table[x index=0,y index=2] {plotdata/teleopidfrd.dat};
\addplot[blue,dashed] table[x index=0,y index=4] {plotdata/teleopidfrd.dat};
\end{semilogxaxis}
\end{tikzpicture}
\caption{The frequency response data from the identification experiments.}%
\label{fig:app:idfrd}%
\end{figure}
For the performance objectives, it has been selected to minimize the position error $x_m-x_s$ and
the force error $f_h-f_e$, as opposed to minimizing $f_h-f_s$ and $f_e-f_m$ independently. In other words
it is the interaction forces we desire to match but not the individual force reference signals at each side.
However, this has an inherent well-posedness problem when the user releases the device. As can be seen in
\Cref{fig:app:simpdiag}, when the user dynamics are absent there is no control authority left to influence
$f_h$ (and $f_e$ too due to the same reasoning). Therefore, the system (control design problem) is analytically
uncontrollable (infeasible) for the full uncertainty region. However this can be avoided by allowing for
slight tolerances to account for the modeling imperfections and to avoid this analytical pathology.
The reason for this artificial problem is the over-simplification of the model since in the original model
the force sensor is not collocated with the human input. The force measurements are in fact obtained
via the relative motion of the outer and inner segments as we have modeled above. However, before we discard
this modeling approach, we would like to emphasize that the device is not ideally free from any friction and
measurement uncertainties. Thus even untouched the model still involves joint and cable frictions and unmodeled
inertial asymmetries which can be lumped into the human dynamics. Therefore, all these hard-to-model effects
can be reflected to the already uncertain human model. As a practical example, the friction of the device can
be attributed to the damping uncertainty of the human model. Hence, one can always assume that a minimal
interaction with the human is always present even though this minimal interaction might be due to the angular
inertia, friction etc.
%
%In the sequel, we will design three controllers with different uncertainty class assumptions. The first two
%cases will be using fixed mass and damping coefficients depicted in \Cref{fig:app:design1}.
\section{Three Controller Design Cases}
%
%\begin{figure}%
%\begin{subfigure}[b]{.45\linewidth}
%\centering
%\begin{tikzpicture}[>=latex,mygain/.style={isosceles triangle,draw,
%shape border rotate=180,
%isosceles triangle apex angle=60,
%inner sep=0,minimum height=7mm},myinteg/.style={draw,minimum height=9mm},
%sum/.style={circle,draw,inner sep=2pt},scale=0.87,transform shape,mygainrev/.style={mygain,mygain,shape border rotate=0},
%scale=0.75]
%\draw[dotted] (-0.5cm,-0.5cm) rectangle (7.5cm,2.6cm);
%\draw[dotted] (-0.5cm,5.5cm) rectangle (7.5cm,2.8cm);
%\node[myinteg] (integ1) at (1cm,2cm) {$\frac{1}{s}$};
%\node[myinteg,right= 1cm of integ1] (integ2) {$\frac{1}{s}$};
%\node[mygain,right= 1cm of integ2] (ms) {$\frac{1}{m_s}$};
%\draw[->] (ms) -- (integ2) node[near start,above]{$\ddot{x}_s$} coordinate[midway] (cs1);
%\draw[->] (integ2) -- (integ1) node[near start,above]{$\dot{x}_s$} coordinate[midway] (c12);
%\draw[->] (integ1) -- ++(-1.2cm,0) node[near start,above]{$x_s$}coordinate[midway] (c2);
%\node[mygainrev,above=13mm of ms.west,anchor=west] (me){$m_e$};
%\node[mygainrev,above=20mm of integ2.west,anchor=west] (be){$b_e$};
%\node[mygainrev,above=27mm of integ1.west,anchor=west,fill=blue!20] (ke){$k_e$};
%\node[mygainrev,below=10mm of integ2.west,anchor=west] (bs){$b_s$};
%\node[mygainrev,below=17mm of integ1.west,anchor=west] (ks){$k_s$};
%\node[sum] (mssum) at ([xshift=1cm]ms.east) {};
%\node[sum] (envsum) at (be-|mssum) {};
%\node[sum] (slasum) at (bs-|mssum) {};
%\node[sum,right= 1cm of envsum] (fesum) {};
%\node[sum,right= 1cm of mssum] (fssum) {};
%\draw[->] (cs1) |- (me);\draw[->] (c12) |- (be);\draw[->] (c2) |- (ke);
%\draw[->] (c12) |- (bs);\draw[->] (c2) |- (ks);\draw[->] (me) -| (envsum);
%\draw[->] (be) -- (envsum);\draw[->] (ke) -|(envsum);\draw[->] (envsum) -- (fesum);
%\draw[->] (bs) -- (slasum);\draw[->] (ks) -| (slasum);\draw[->](slasum) -- (mssum);
%\draw[->] (mssum)--(ms);\draw[->] (fssum)--(mssum);\draw[->](fesum)--(fssum);
%\draw[<-] (fesum) --++(5mm,0) node[above] {$f_e^*$};
%\draw[->] (fesum) |- ++(5mm,-10mm) node[above] {$f_e$};
%\draw[<-] (fssum) --++(0,-8mm) node[below] {$f_s$};
%\node at (6.3cm,-0.2cm) {Slave Device} node at (6.3cm,5.2cm){Environment};
%\node (min1) at ([shift={(-1mm,-1.2mm)}]mssum.200) {$\scriptstyle -$};
%\node (min2) at ([shift={(-1mm,1.2mm)}]fssum.150) {$\scriptstyle -$};
%\node[dashed,draw,minimum size=1.1cm,label={15:$\Delta_e$}] at (ke) {};
%\end{tikzpicture}
%\caption{Block diagram representation of the environment/slave device pair.}%
%\label{fig:app:design1a}%
%\end{subfigure}\hfill%
%\begin{subfigure}[b]{.5\linewidth}
%\centering
%\begin{tikzpicture}[>=latex,
%mygain/.style={isosceles triangle,draw,shape border rotate=180,isosceles triangle apex angle=60,inner sep=0,minimum height=7mm},
%myinteg/.style={draw,minimum height=9mm},
%sum/.style={circle,draw,inner sep=2pt},
%mygainrev/.style={mygain,mygain,shape border rotate=0},
%scale=0.6525,transform shape
%]
%\draw[dotted] (-0.5cm,-0.5cm) rectangle (9.1cm,2.6cm);
%\draw[dotted] (-0.5cm,5.5cm) rectangle (9.1cm,2.8cm);
%\node[myinteg] (integ1) at (1cm,2cm) {$\frac{1}{s}$};
%\node[myinteg,right= 1cm of integ1] (integ2) {$\frac{1}{s}$};
%\node[mygain,right= 1cm of integ2] (ms) {$\frac{1}{m_m}$};
%\draw[->] (ms) -- (integ2) node[near start,above]{$\ddot{x}_m$} coordinate[midway] (cs1);
%\draw[->] (integ2) -- (integ1) node[near start,above]{$\dot{x}_m$} coordinate[midway] (c12);
%\draw[->] (integ1) -- ++(-1.2cm,0) node[near start,above]{$x_m$}coordinate[midway] (c2);
%\node[mygainrev,above=13mm of ms.west,anchor=west] (me){$m_h$};
%\node[mygainrev,above=20mm of integ2.west,anchor=west] (be){$b_h$};
%\node[mygainrev,above=27mm of integ1.west,anchor=west,fill=blue!20] (ke){$k_h$};
%\node[mygainrev,below=10mm of integ2.west,anchor=west] (bs){$b_m$};
%\node[mygainrev,below=17mm of integ1.west,anchor=west] (ks){$k_m$};
%\node[sum] (mssum) at ([xshift=1cm]ms.east) {};
%\node[sum] (envsum) at ([xshift=-1cm]be-|mssum) {};
%\node[sum] (slasum) at (bs-|mssum) {};
%\node[sum,right= 3.5cm of envsum] (fesum) {};
%\node[sum,right= 2.5cm of mssum] (fssum) {};
%\draw[->] (cs1) |- (me);\draw[->] (c12) |- (be);\draw[->] (c2) |- (ke);
%\draw[->] (c12) |- (bs);\draw[->] (c2) |- (ks);\draw[->] (me) -| (envsum);
%\draw[->] (be) -- (envsum);\draw[->] (ke) -|(envsum);
%\draw[->] (bs) -- (slasum);\draw[->] (ks) -| (slasum);\draw[->](slasum) -- (mssum);
%\draw[->] (mssum)--(ms);\draw[->] (fssum)--(mssum);\draw[->](fesum)--(fssum);
%\draw[<-] (fesum) --++(5mm,0) node[above] {$f_h^*$};
%\draw[->] (fesum) |- ++(5mm,-10mm) node[above] {$f_h$};
%\draw[<-] (fssum) --++(0,-8mm) node[below] {$f_m$};
%\node at (7.8cm,-0.2cm) {Master Device} node at (7.8cm,5.2cm){Operator};
%\node (min1) at ([shift={(-1mm,-1.2mm)}]mssum.200) {$\scriptstyle -$};
%\node (min2) at ([shift={(-1mm,1.2mm)}]fssum.150) {$\scriptstyle -$};
%\node[draw] (filter) at ($(envsum)!0.5!(fesum)$)
%%{$\frac{\frac{s}{\omega_{zh}}+1}{\frac{s^2}{\omega_{ph}^2}+2z_{ph}\frac{s}{\omega_{ph}}+1}$};
%{$Q_h(s)$};
%\draw[->] (filter) -- (fesum);\draw[->] (envsum) -- (filter);
%\node[dashed,draw,minimum size=1.1cm,label={15:$\Delta_h$}] at (ke) {};
%\end{tikzpicture}
%\caption{Block diagram representation of the operator/master device pair.}%
%\label{fig:app:design1b}%
%\end{subfigure}
%\caption{The robust control design for only having the human/environment stiffness coefficients as uncertainties.}
%\label{fig:app:design1}
%\end{figure}
\subsection{Uncertain Plant with Arbitrarily Fast Time-Varying Stiffness Coefficients}
We start with designing a robust controller for an uncertain plant in which only the stiffness elements of the
human and the environment models are taken as arbitrarily fast varying real parametric uncertainties. Hence, the environment
is assumed to be a single spring and the human damping and the mass values are assumed to be the halves of the maximum
values identified by the experiments while leaving the stiffness coefficient as uncertain. Thus, the involved multipliers with
respect to these uncertainties are taken as full block multipliers i.e.
\[
\pmatr{\delta_h &\\ &\delta_e\\\hline 1 &0\\0&1}^T
\left(
\begin{array}{c|c}
Q &S\\\hline S^T &R
\end{array}
\right)
\pmatr{\delta_h &\\ &\delta_e\\\hline 1 &0\\0&1} \succeq 0
\]
for all $\delta_h\in[0,\bar{\delta}_h]\si{\newton\per\meter}$ and $\delta_e\in[0,\bar{\delta}_e]\si{\newton\per\meter}$.
By enforcing the constraint $Q\prec 0$ (and since zero uncertainty enforces $R\succeq 0$) it is sufficient to guarantee the
constraint over the whole parameter box by just checking at the corners of the hyperrectangle set $[0,\bar{\delta}_h]\times
[0,\bar{\delta}_e]$.
\pgfplotstableread{
ra ga rs gs
0 0 0.5000 1.3275
0.5233 9.5627 0.5223 2.4174
0.8324 10.0000 0.8316 4.3356
0.9996 7.0881 0.9898 5.3318
0.9999 5.2762 1.0000 4.8267
1.0000 4.8224 1.0000 4.7487
1.0000 4.7457 0.9997 4.7189
0.9999 4.7187 1.0000 4.7027
1.0000 4.7021 0.9959 4.6823
0.9999 4.6801 1.0000 4.6787
}\designonedata
\begin{figure}%
\raisebox{.3cm}{\begin{minipage}{.35\textwidth}
\pgfplotstabletypeset[
every head row/.style={before row={%
\toprule
\multicolumn{2}{c}{Analysis} & \multicolumn{2}{c}{Synthesis}\\
},
after row=\midrule,
},
every last row/.style={
after row=\bottomrule
},
columns/ra/.style ={column name={$r_a$},fixed,zerofill,precision=2},
columns/ga/.style ={column name={$\gamma_a$},fixed,precision=2},
columns/rs/.style ={column name={$r_s$},fixed,zerofill,precision=2},
columns/gs/.style ={column name={$\gamma_s$},fixed,precision=2},
]\designonedata
\end{minipage}}
\captionlistentry[table]{$D$-$K$ iteration progressfor Case 1}
%
%
\hfill
\begin{minipage}{.63\textwidth}
\begin{tikzpicture}
\pgfplotsset{set layers}
\begin{axis}[width=5.8cm,height=3.8cm,xmajorgrids,ylabel={$r_a$,$r_s$},
scale only axis,xmin=0.8,xmax=6.1,axis y line*=left,
legend style={at={(axis description cs: 0.97,0.76)},anchor=east}
]
\addplot+[mark=o,mark options = {solid,thin},SlateBlue2] table[x expr=\coordindex+1,y=ra] {\designonedata};
\addlegendentry{$r_a$}
\addplot+[mark=o,thin] table[x expr=\coordindex+1,y=rs] {\designonedata};\addlegendentry{$r_s$}
\end{axis}
\begin{axis}[scale only axis,xmin=0.8,xmax=6.1,width=5.8cm,height=3.8cm,
axis y line*=right,ylabel={$\gamma_a$,$\gamma_s$},
axis x line=none,every axis y label/.style={at={(ticklabel cs:0.5)},
anchor=near ticklabel,rotate=90,text opacity=0.5},
y tick label style={opacity=0.5},legend pos=south east,enlarge y limits={value=0.05,upper}
]
\addplot+[gray,
dotted,
thick,
mark=square*,
mark options={
solid,
thin,
opacity=0.2},
opacity=0.4] table[x expr=\coordindex+1,y=ga] {\designonedata};\addlegendentry{$\gamma_a$}
\addplot+[gray,
densely dashed,
thick,
mark=square*,
mark options={
solid,
thin,
fill opacity=0.2},
opacity=0.4] table[x expr=\coordindex+1,y=gs] {\designonedata};\addlegendentry{$\gamma_s$}
\end{axis}
\end{tikzpicture}
\end{minipage}
\captionsetup{labelformat=andtable}
\caption{The progress report of the $D$-$K$ iteration of the with increasing uncertainty
set size and resulting worst case-$\mathcal{L}_2$ gain.}
\label{fig:tab:design1}
\end{figure}
%===============================
% Empty table variable
%===============================
\let\designdataone\empty
%===============================
%===============================
%===============================
Then using the synthesis results from the previous chapter, we design a controller with the iteration steps given in
\Cref{fig:tab:design1}. Notice that, even though the iterations lead to full uncertainty case $r=1$, due to the performance
mismatch the iteration is continued until an agreement up to some precision is achieved.
\subsection{Uncertain Plant with Time-Varying Stiffness Coefficients with Bounded Rate of Variation}
After achieving robust stability with the first design, we then consider the fact that we are aware of additional bounds on
the rate of variations of the model parameters for the human hand. First of all we can safely assume that the human can not
exert full grasp force instantaneously though it can happen pretty fast. We have assumed that the human can grasp the handle
and fully squeeze in about half a second. Therefore, assuming that the human stiffness coefficient is differentiable, the
maximum values for the stiffness coefficient can be achieved in half a second and hence ${\displaystyle\max_{t>0}}\abs{\dot{k}_h(t)}\leq
2\overline{k}_h$.
Using the multiplier structure given in \Cref{sec:tvrovsec} for the slowly varying parameter, with basis function
\[
\Phi(s) = \pmatr{1\\\frac{1}{s+1}}
\]
we have the following multiplier for the control design;
\[\renewcommand*{\arraystretch}{0.8}
\setlength{\arraycolsep}{.5\arraycolsep}
\Pi(\iw) = \pmatr{\star}^*\left(
\begin{array}{cc|c|cc|c}
-D_1 & & &&&\\
&-D_2&&&&\\\hline
&&Q&&&S\\\hline
&&&D_1&&\\
&&&&D_2&\\\hline
&&S&&&R
\end{array}
\right)
\left(\begin{array}{cc|c|cc|c}
\Phi(\iw) &\Phi_c(\iw)&&&\\
0&I&&&&\\\hline
&&1&&&\\\hline
&&&\Phi(\iw)&&\\
&&&\Phi_b(\iw)&&\\\hline
&&&&&1
\end{array}
\right)
\]
where $\Phi^*(\iw)D_1\Phi(\iw)> 0$ for all $\omega\in\Realext$, $D_2\succ 0$, $Q<0$ and
\[
\pmatr{k_e\\1}^T\pmatr{Q &S\\S&R}\pmatr{k_e\\1}>0.
\]
for all $k_e(t)\in[0,3000],t\geq 0$.
We have obtained the lower worst-case $\mathcal{L}_2$ gains as shown in the \Cref{fig:tab:design2d1} with the simplest basis functions
of order one. Further, to demonstrate the conservatism reduction via increasing the basis length in the IQC multiplier parametrization,
we use the basis length $d=2$, i.e.,
\[
\Phi(s) = \pmatr{1\\\frac{1}{s+1}\\\frac{1}{(s+1)^2}}
\]
and we obtain better results which are given in \Cref{fig:tab:design2d2}. Increasing the length further does not contribute to
significant changes hence even with the shortest basis lengths we arrive at significantly improved results.
We validate the improvement through experiments given in the next section since the resulting worst-case $\mathcal{L}_2$ gains
tell very little, if any, about the real-time implementation performance\footnote{In fact, contemporary control literature is obsessed
with $\mathcal{L}_2$ gain. We emphasize that even the DC gain of a performance weight affects the feasible $\gamma$ level and
moreover if one has three different designs with $\gamma=8,4,2$ respectively, it doesn't mean that each design is twice as better.
Practically, it's a boolean indicator that something has been improved (whether relevant or not).}. In what
follows, the controller denoted by $C_2$ refers to the design with $d=2$.
\pgfplotstableread{
ra ga rs gs
0 0 0.2000 1.3294
0.1988 1.8272 0.1973 1.5588
0.3156 1.8610 0.3125 1.6971
0.8274 4.2413 0.8194 2.5392
0.9771 3.0788 0.9693 2.7080
0.9999 2.8015 0.9950 2.7255
0.9999 2.7399 1.0000 2.7296
0.9913 2.7094 0.9839 2.6928
1.0000 2.7275 1.0000 2.7182
1.0000 2.7155 1.0000 2.7158
}\designtwodataone
\pgfplotstableread{
ra ga rs gs
0 0 0.2000 1.3294
0.3640 2.4951 0.3606 2.0441
0.3605 1.9420 0.7753 3.0894
0.9395 3.3509 0.9435 2.7859
0.9394 2.7155 0.9352 2.4746
0.9918 2.6563 0.9895 2.5527
0.9991 2.5825 0.9992 2.5639
0.9999 2.5645 1.0000 2.5631
1.0000 2.5618 1.0000 2.5619
}\designtwodatadtwo
\begin{figure}%
\raisebox{.3cm}{\begin{minipage}{.35\textwidth}
\pgfplotstabletypeset[
every head row/.style={before row={%
\toprule
\multicolumn{2}{c}{Analysis} & \multicolumn{2}{c}{Synthesis}\\
},
after row=\midrule,
},
every last row/.style={
after row=\bottomrule
},
columns/ra/.style ={column name={$r_a$},fixed,zerofill,precision=2},
columns/ga/.style ={column name={$\gamma_a$},fixed,precision=2},
columns/rs/.style ={column name={$r_s$},fixed,zerofill,precision=2},
columns/gs/.style ={column name={$\gamma_s$},fixed,precision=2},
]\designtwodataone
\end{minipage}}
\captionlistentry[table]{$D$-$K$ iteration progress for Case 2 $d=1$}
%
%
\hfill
\begin{minipage}{.63\textwidth}
\begin{tikzpicture}
\pgfplotsset{set layers}
\begin{axis}[width=5.8cm,height=3.8cm,xmajorgrids,ylabel={$r_a$,$r_s$},
scale only axis,xmin=0.8,xmax=10.1,axis y line*=left,
legend style={at={(axis description cs: 0.97,0.76)},anchor=east}
]
\addplot+[mark=o,mark options = {solid,thin},SlateBlue2] table[x expr=\coordindex+1,y=ra] {\designtwodataone};
\addlegendentry{$r_a$}
\addplot+[mark=o,thin] table[x expr=\coordindex+1,y=rs] {\designtwodataone};\addlegendentry{$r_s$}
\end{axis}
\begin{axis}[scale only axis,xmin=0.8,xmax=10.1,width=5.8cm,height=3.8cm,
axis y line*=right,ylabel={$\gamma_a$,$\gamma_s$},
axis x line=none,every axis y label/.style={at={(ticklabel cs:0.5)},
anchor=near ticklabel,rotate=90,text opacity=0.5},
y tick label style={opacity=0.5},legend pos=south east,enlarge y limits={value=0.05,upper}
]
\addplot+[gray,
dotted,
thick,
mark=square*,
mark options={
solid,
thin,
opacity=0.2},
opacity=0.4] table[x expr=\coordindex+1,y=ga] {\designtwodataone};\addlegendentry{$\gamma_a$}
\addplot+[gray,
densely dashed,
thick,
mark=square*,
mark options={
solid,
thin,
fill opacity=0.2},
opacity=0.4] table[x expr=\coordindex+1,y=gs] {\designtwodataone};\addlegendentry{$\gamma_s$}
\end{axis}
\end{tikzpicture}
\end{minipage}
\captionsetup{labelformat=andtable}
\caption{The progress report of the $D$-$K$ iteration of the with increasing uncertainty set
size and resulting worst case-$\mathcal{L}_2$ gain.}
\label{fig:tab:design2d1}
\end{figure}
\begin{figure}%
\raisebox{.3cm}{\begin{minipage}{.35\textwidth}
\pgfplotstabletypeset[
every head row/.style={before row={%
\toprule
\multicolumn{2}{c}{Analysis} & \multicolumn{2}{c}{Synthesis}\\
},
after row=\midrule,
},
every last row/.style={
after row=\bottomrule
},
columns/ra/.style ={column name={$r_a$},fixed,zerofill,precision=2},
columns/ga/.style ={column name={$\gamma_a$},fixed,precision=2},
columns/rs/.style ={column name={$r_s$},fixed,zerofill,precision=2},
columns/gs/.style ={column name={$\gamma_s$},fixed,precision=2},
]\designtwodatadtwo
\end{minipage}}
\captionlistentry[table]{$D$-$K$ iteration progress for Case 2 with $d=2$}
%
%
\hfill
\begin{minipage}{.63\textwidth}
\begin{tikzpicture}
\pgfplotsset{set layers}
\begin{axis}[width=5.8cm,height=3.8cm,xmajorgrids,ylabel={$r_a$,$r_s$},
scale only axis,xmin=0.8,xmax=10.1,axis y line*=left,
legend style={at={(axis description cs: 0.97,0.5)},anchor=east}
]
\addplot+[mark=o,mark options = {solid,thin},SlateBlue2] table[x expr=\coordindex+1,y=ra] {\designtwodatadtwo};
\addlegendentry{$r_a$}
\addplot+[mark=o,thin] table[x expr=\coordindex+1,y=rs] {\designtwodatadtwo};\addlegendentry{$r_s$}
\end{axis}
\begin{axis}[scale only axis,xmin=0.8,xmax=10.1,width=5.8cm,height=3.8cm,
axis y line*=right,ylabel={$\gamma_a$,$\gamma_s$},
axis x line=none,every axis y label/.style={at={(ticklabel cs:0.5)},
anchor=near ticklabel,rotate=90,text opacity=0.5},
y tick label style={opacity=0.5},legend pos=south east,enlarge y limits={value=0.05,upper}
]
\addplot+[gray,
dotted,
thick,
mark=square*,
mark options={
solid,
thin,
opacity=0.2},
opacity=0.4] table[x expr=\coordindex+1,y=ga] {\designtwodatadtwo};\addlegendentry{$\gamma_a$}
\addplot+[gray,
densely dashed,
thick,
mark=square*,
mark options={
solid,
thin,
fill opacity=0.2},
opacity=0.4] table[x expr=\coordindex+1,y=gs] {\designtwodatadtwo};\addlegendentry{$\gamma_s$}
\end{axis}
\end{tikzpicture}
\end{minipage}
\captionsetup{labelformat=andtable}
\caption{The progress report of the $D$-$K$ iteration of the with increasing uncertainty
set size and resulting worst case-$\mathcal{L}_2$ gain.}
\label{fig:tab:design2d2}
\end{figure}
%===============================
% Empty table variables
%===============================
\let\designtwodataone\empty
\let\designtwodatadtwo\empty
%===============================
%===============================
%===============================
\subsection{Uncertain Plant with a More Complicated Human Model}
In this test case, we treat the mass-spring-damper parameters of the human model as slowly varying uncertainties
together with arbitrarily fast varying environment stiffness coefficient uncertainty. Therefore, we use three
dynamic multiplier blocks and a static multipliers for the overall design. Consequently, the uncertainty set is
significantly larger than the previous cases. The motivation for such complication is to be able to compare
whether a reduced mass argument would hold and provide better performance than this more realistic but at
the same time significantly more conservative design. Thus the $P-\Delta$ interconnection is modeled as
\[
\pmatr{q\\z\\y}= P \pmatr{p\\w\\u}, p=\Delta q
\]
where the uncertainty $\Delta$ is given by \Cref{eq:realisticunc}.
In this control design problem, we start by assuming the nominal case to be $P_{nom} = P\star 0.5\Delta$. This due to
the fact we have mentioned previously that the model loses the observability at the zero uncertainty case. Hence, we assume
that the uncertainty blocks assume the mid values of their corresponding intervals and we try to increase the set size
by expanding towards both ends simultaneously. Thus, for the uncertainty operator
\[
\Delta:\Real_+ \to [0,\overline{m_h}]\times[0,\overline{b_h}]\times[0,\overline{k_h}]\times[0,\overline{m_e}]
\]
we define the scaled uncertainty operator
\[
\Delta_s:\Real_+ \to [0,2]\times[0,2]\times[0,2]\times[0,2]
\]
where
\[
\Delta(t)=
\pmatr{\delta_{\vphantom{b}m_h}(t)&&&\\&\delta_{b_h}(t)&&\\&&\delta_{k_h}(t)&\\&&&\delta_{k_e}(t)} = \Delta_s(t) T = T \Delta_s(t)
\]
for all $t>0$ with $T=\diag{\frac{\overline{m_h}}{2},\frac{\overline{b_h}}{2},\frac{\overline{k_h}}{2},\frac{\overline{k_e}}{2}}$.
Then, we simply rewrite
\[
\Delta_s = \Delta_{ss} + I_4
\]