Rework decoupling section
This commit is contained in:
parent
732aba5bb5
commit
4d86377bfd
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 190 KiB |
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 35 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="40.794662mm"
|
||||
height="46.37952mm"
|
||||
viewBox="0 0 40.794664 46.37952"
|
||||
width="68.196327mm"
|
||||
height="46.357521mm"
|
||||
viewBox="0 0 68.19633 46.357521"
|
||||
version="1.1"
|
||||
id="svg1203"
|
||||
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
|
||||
sodipodi:docname="detail_control_model_test_decoupling.svg"
|
||||
sodipodi:docname="detail_control_decoupling_model_test.svg"
|
||||
inkscape:export-filename="/home/thomas/Cloud/thesis/matlab/svd-control/figs/gravimeter_model.png"
|
||||
inkscape:export-xdpi="252"
|
||||
inkscape:export-ydpi="252"
|
||||
@ -26,16 +26,16 @@
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="4"
|
||||
inkscape:cx="104.5"
|
||||
inkscape:cy="84.5"
|
||||
inkscape:cx="99.625"
|
||||
inkscape:cy="66.625"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1440"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-width="2534"
|
||||
inkscape:window-height="1394"
|
||||
inkscape:window-x="11"
|
||||
inkscape:window-y="33"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:showpageshadow="2"
|
||||
@ -43,6 +43,25 @@
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<defs
|
||||
id="defs1197">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker9"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Concave triangle arrow"
|
||||
markerWidth="1"
|
||||
markerHeight="1"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.7)"
|
||||
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
|
||||
id="path9" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker12"
|
||||
@ -2033,6 +2052,36 @@
|
||||
id="path4470" />
|
||||
</g>
|
||||
</g>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker17513-1-2"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path17511-2-9"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Sstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker17601-2-5"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path17599-9-6"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(0.3,0,0,0.3,-0.69,0)" />
|
||||
</marker>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata1200">
|
||||
@ -2050,7 +2099,7 @@
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-39.1982, -20.2741)">
|
||||
transform="translate(-39.198222,-20.296063)">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.2;fill-rule:evenodd;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000"
|
||||
id="rect17717"
|
||||
@ -3118,5 +3167,185 @@
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2"
|
||||
transform="translate(-1.9430236,0.7448539)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 95.141215,47.200363 V 46.39527 l -1.18161,-0.388228 1.74865,-0.652061 -1.74865,-0.664122 1.74865,-0.707499 -1.74865,-0.699796 1.74865,-0.653532 -1.74865,-0.631163 1.18161,-0.767104 v -0.857424"
|
||||
id="path17444-0-3"
|
||||
sodipodi:nodetypes="ccccccccccc"
|
||||
inkscape:export-xdpi="252"
|
||||
inkscape:export-ydpi="252" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path17446-3-6"
|
||||
d="M 97.960955,47.200363 V 44.439336"
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path17450-6-0"
|
||||
d="m 97.014965,42.882042 v 1.557294 h 1.891991 v -1.557294"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path17454-0-6"
|
||||
d="m 97.319675,43.262895 h 1.282571"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path17456-6-2"
|
||||
d="m 97.960955,40.374346 v 2.888549"
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" />
|
||||
<rect
|
||||
y="41.922707"
|
||||
x="100.09568"
|
||||
height="3.7292752"
|
||||
width="1.0184269"
|
||||
id="rect17480-6-6"
|
||||
style="fill:none;fill-opacity:0.450598;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path17482-1-1"
|
||||
d="m 100.6049,40.616828 v 1.305878"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker17601-2-5)" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17513-1-2)"
|
||||
d="m 100.6049,45.651985 v 1.248463"
|
||||
id="path17482-3-8-8" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 94.372115,40.26688 h 7.174425 v -6.49745 h -7.174425 z"
|
||||
id="path2202-7-2"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 92.978656,33.569148 h -1.522721 v 15.23146 h 13.011445 v -15.23146 h -1.52411 v 13.70873 h -9.964614 z"
|
||||
id="path2220"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 97.961655,54.349968 -1.66191,2.87872 h 3.32383 z m 0,0"
|
||||
id="path2238-5" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 97.961655,54.558058 -3.32383,-5.75745 h 6.647665 z m 0,0"
|
||||
id="path2240-3" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.352777"
|
||||
d="m 99.090265,54.473988 c 0,0.62288 -0.50574,1.12724 -1.128609,1.12724 -0.62287,0 -1.12861,-0.50436 -1.12861,-1.12724 0,-0.62425 0.50574,-1.12861 1.12861,-1.12861 0.62287,0 1.128609,0.50436 1.128609,1.12861"
|
||||
id="path2242" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 99.090265,54.473988 c 0,0.62288 -0.50574,1.12724 -1.128609,1.12724 -0.62287,0 -1.12861,-0.50436 -1.12861,-1.12724 0,-0.62425 0.50574,-1.12861 1.12861,-1.12861 0.62287,0 1.128609,0.50436 1.128609,1.12861 z m 0,0"
|
||||
id="path2244" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.352777"
|
||||
d="m 98.337855,54.473988 c 0,0.20671 -0.168109,0.3762 -0.376199,0.3762 -0.20808,0 -0.3762,-0.16949 -0.3762,-0.3762 0,-0.20808 0.16812,-0.3762 0.3762,-0.3762 0.20809,0 0.376199,0.16812 0.376199,0.3762"
|
||||
id="path2246" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.214932;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 98.337865,54.473988 c 0,0.20671 -0.16813,0.37621 -0.37621,0.37621 -0.20808,0 -0.376199,-0.1695 -0.376199,-0.37621 0,-0.20808 0.168119,-0.3762 0.376199,-0.3762 0.20808,0 0.37621,0.16812 0.37621,0.3762 z m 0,0"
|
||||
id="path2248" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 91.455935,59.331578 h 13.011435 v -2.10702 H 91.455935 Z m 0,0"
|
||||
id="path2250" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 91.453615,28.136015 h 13.011435 v -2.10702 H 91.453615 Z m 0,0"
|
||||
id="path2250-7" />
|
||||
<g
|
||||
id="g8"
|
||||
transform="translate(-25.906613,-3.3905008)"
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000">
|
||||
<g
|
||||
id="g7"
|
||||
transform="translate(1.5886083,0.0381105)"
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1">
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,42.751794 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path2206" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,41.164293 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path5-6" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,39.576792 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path6" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,37.989291 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path7" />
|
||||
</g>
|
||||
<g
|
||||
id="g7-9"
|
||||
transform="translate(10.157917,0.0381105)"
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1">
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,42.751794 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path2206-4" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,41.164293 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path5-7" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,39.576792 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path6-8" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||
d="m 118.47656,37.989291 c 0,-0.267157 -0.21673,-0.48388 -0.48388,-0.48388 -0.26716,0 -0.48389,0.216723 -0.48389,0.48388 0,0.267163 0.21673,0.483886 0.48389,0.483886 0.26715,0 0.48388,-0.216723 0.48388,-0.483886 z m 0,0"
|
||||
id="path7-4" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 97.959325,30.89071 -1.66191,2.87872 h 3.32383 z m 0,0"
|
||||
id="path2238-5-6" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 97.959335,31.014735 1.66191,-2.87872 h -3.323829 z m 0,0"
|
||||
id="path2238-5-6-4" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.352777"
|
||||
d="m 99.087935,31.01473 c 0,0.62288 -0.50574,1.12724 -1.128609,1.12724 -0.62287,0 -1.12861,-0.50436 -1.12861,-1.12724 0,-0.62425 0.50574,-1.12861 1.12861,-1.12861 0.62287,0 1.128609,0.50436 1.128609,1.12861"
|
||||
id="path2242-6" />
|
||||
<path
|
||||
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:0.2;stroke:#000000;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
|
||||
d="m 99.087935,31.01473 c 0,0.62288 -0.50574,1.12724 -1.128609,1.12724 -0.62287,0 -1.12861,-0.50436 -1.12861,-1.12724 0,-0.62425 0.50574,-1.12861 1.12861,-1.12861 0.62287,0 1.128609,0.50436 1.128609,1.12861 z m 0,0"
|
||||
id="path2244-4" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.352777"
|
||||
d="m 98.335525,31.01473 c 0,0.20671 -0.168109,0.3762 -0.376199,0.3762 -0.20808,0 -0.3762,-0.16949 -0.3762,-0.3762 0,-0.20808 0.16812,-0.3762 0.3762,-0.3762 0.20809,0 0.376199,0.16812 0.376199,0.3762"
|
||||
id="path2246-9" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.214932;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 98.335535,31.01473 c 0,0.20671 -0.16813,0.37621 -0.37621,0.37621 -0.20808,0 -0.376199,-0.1695 -0.376199,-0.37621 0,-0.20808 0.168119,-0.3762 0.376199,-0.3762 0.20808,0 0.37621,0.16812 0.37621,0.3762 z m 0,0"
|
||||
id="path2248-5" />
|
||||
</g>
|
||||
<ellipse
|
||||
style="fill:none;stroke:#edb120;stroke-width:0.264583px;stroke-dasharray:0.529166, 0.529166;stroke-dashoffset:0;-inkscape-stroke:none"
|
||||
id="path2"
|
||||
cx="96.017471"
|
||||
cy="43.42514"
|
||||
rx="11.244791"
|
||||
ry="21.365105" />
|
||||
<ellipse
|
||||
style="fill:none;stroke:#edb120;stroke-width:0.264583px;stroke-dasharray:0.529167, 0.529167;stroke-dashoffset:0;-inkscape-stroke:none"
|
||||
id="path3"
|
||||
cx="73.792473"
|
||||
cy="60.623058"
|
||||
rx="4.1010418"
|
||||
ry="5.8872719" />
|
||||
<path
|
||||
style="fill:none;stroke:#edb120;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9)"
|
||||
d="m 77.738466,58.884523 c 3.053108,-0.442756 5.664814,-1.11082 7.881111,-2.38538"
|
||||
id="path8"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 188 KiB |
549
nass-control.org
549
nass-control.org
@ -98,8 +98,11 @@ Up to now, basic control strategy ("decentralized" control in the frame of the s
|
||||
|
||||
Discussion about:
|
||||
- *Use multiple sensors*: Discussion about two sensor control VS HAC-LAC VS Sensor Fusion ?
|
||||
- file:~/Cloud/research/papers/published/dehaeze19_compl_filter_shapin_using_synth/index.org
|
||||
- [[file:~/Cloud/research/papers/dehaeze21_desig_compl_filte/journal/dehaeze21_desig_compl_filte.org][file:~/Cloud/research/papers/dehaeze21_desig_compl_filte/journal/dehaeze21_desig_compl_filte.org]]
|
||||
- [[file:~/Cloud/research/papers/dehaeze20_optim_robus_compl_filte/matlab/dehaeze22_optim_robus_compl_filte_matlab.org]]
|
||||
- *Decoupling strategies*
|
||||
- [ ] file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org
|
||||
- file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org
|
||||
- *Control optimization*
|
||||
|
||||
** Unused
|
||||
@ -124,6 +127,30 @@ Discussion about:
|
||||
| X | Piezoelectric | Force, Position | Vibration isolation, Model-Based, Modal control: 6x PI controllers | Stiffness of flexible joints is compensated using feedback, then the system is decoupled in the modal space | [[cite:&yang19_dynam_model_decoup_contr_flexib]] |
|
||||
| | Voice Coil | Force | IFF, centralized (decouple) + decentralized (coupled) | Specific geometry: decoupled force plant. Better perf with centralized IFF | [[cite:&mcinroy99_dynam;&mcinroy99_precis_fault_toler_point_using_stewar_platf;&mcinroy00_desig_contr_flexur_joint_hexap]] |
|
||||
|
||||
*** Table with decoupling strategies
|
||||
|
||||
#+name: tab:detail_control_decoupling_review
|
||||
#+caption: Litterature review about decoupling strategy for Stewart platform control
|
||||
#+attr_latex: :environment tabularx :width 0.9\linewidth :align Xccc
|
||||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||||
| | *Actuators* | *Sensors* | *Control* | *Reference* |
|
||||
|---+---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| X | APA | Eddy current displacement | *Decentralized* (struts) PI + LPF control | [[cite:&furutani04_nanom_cuttin_machin_using_stewar]] |
|
||||
| X | PZT Piezo | Strain Gauge | Decentralized position feedback | [[cite:&du14_piezo_actuat_high_precis_flexib]] |
|
||||
|---+---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| | Voice Coil | Force | *Cartesian frame* decoupling | [[cite:&obrien98_lesson]] |
|
||||
| X | Voice Coil | Force | Cartesian Frame, Jacobians, IFF | [[cite:&mcinroy99_dynam;&mcinroy99_precis_fault_toler_point_using_stewar_platf;&mcinroy00_desig_contr_flexur_joint_hexap]] |
|
||||
| X | Hydraulic | LVDT | Decentralized (strut) vs Centralized (cartesian) | [[cite:&kim00_robus_track_contr_desig_dof_paral_manip]] |
|
||||
| X | Voice Coil | Accelerometer (collocated), ext. Rx/Ry sensors | Cartesian acceleration feedback (isolation) + 2DoF pointing control (external sensor) | [[cite:&li01_simul_vibrat_isolat_point_contr]] |
|
||||
| | Voice Coil | Accelerometer in each leg | Centralized Vibration Control, PI, Skyhook | [[cite:&abbas14_vibrat_stewar_platf]] |
|
||||
|---+---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| X | Voice Coil | Geophone + Eddy Current (Struts, collocated) | Decentralized (Sky Hook) + Centralized (*modal*) Control | [[cite:&pu11_six_degree_of_freed_activ]] |
|
||||
| X | Piezoelectric | Force, Position | Vibration isolation, Model-Based, *Modal control*: 6x PI controllers | [[cite:&yang19_dynam_model_decoup_contr_flexib]] |
|
||||
|---+---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| | PZT | Geophone (struts) | *H-Infinity* and mu-synthesis | [[cite:&lei08_multi_objec_robus_activ_vibrat]] |
|
||||
| | Voice Coil | Force sensors (struts) + accelerometer (cartesian) | Decentralized Force Feedback + Centralized H2 control based on accelerometers | [[cite:&xie17_model_contr_hybrid_passiv_activ]] |
|
||||
| | Voice Coil | Accelerometers | MIMO H-Infinity, active damping | [[cite:&jiao18_dynam_model_exper_analy_stewar]] |
|
||||
|
||||
*** "Closed-Loop" complementary filters
|
||||
<<ssec:detail_control_closed_loop_complementary_filters>>
|
||||
|
||||
@ -851,8 +878,8 @@ Prefixes:
|
||||
- =detail_control_decoupling=
|
||||
- =detail_control_cf=
|
||||
|
||||
** TODO [#A] Finish writing "multiple sensor" control section
|
||||
SCHEDULED: <2025-04-08 Tue>
|
||||
** DONE [#A] Finish writing "multiple sensor" control section
|
||||
CLOSED: [2025-04-09 Wed 13:55] SCHEDULED: <2025-04-08 Tue>
|
||||
|
||||
** TODO [#B] Review of control for Stewart platforms?
|
||||
|
||||
@ -887,10 +914,6 @@ Several considerations:
|
||||
:END:
|
||||
<<sec:detail_control_sensor>>
|
||||
|
||||
# file:~/Cloud/research/papers/published/dehaeze19_compl_filter_shapin_using_synth/index.org
|
||||
# [[file:~/Cloud/research/papers/dehaeze21_desig_compl_filte/journal/dehaeze21_desig_compl_filte.org][file:~/Cloud/research/papers/dehaeze21_desig_compl_filte/journal/dehaeze21_desig_compl_filte.org]]
|
||||
# [[file:~/Cloud/research/papers/dehaeze20_optim_robus_compl_filte/matlab/dehaeze22_optim_robus_compl_filte_matlab.org]]
|
||||
|
||||
** Introduction :ignore:
|
||||
|
||||
The literature review of Stewart platforms revealed a wide diversity of designs with various sensor and actuator configurations.
|
||||
@ -2207,57 +2230,37 @@ Looking forward, it would be interesting to investigate how sensor fusion (parti
|
||||
:END:
|
||||
<<sec:detail_control_decoupling>>
|
||||
|
||||
# file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org
|
||||
|
||||
** Introduction :ignore:
|
||||
|
||||
When dealing with MIMO systems, a typical strategy is to:
|
||||
- First decouple the plant dynamics (discussed in this section)
|
||||
- Apply SISO control for the decoupled plant (discussed in section ref:sec:detail_control_cf)
|
||||
The control of parallel manipulators (and any MIMO system in general) typically involves a two-step approach: first decoupling the plant dynamics using various strategies, which will be discussed in this section, followed by the application of SISO control for the decoupled plant (discussed in section ref:sec:detail_control_cf).
|
||||
|
||||
Another strategy would be to apply a multivariable control synthesis to the coupled system.
|
||||
Strangely, while H-infinity synthesis is a mature technology, it use for the control of Stewart platform is not yet demonstrated.
|
||||
From [[cite:&thayer02_six_axis_vibrat_isolat_system]]:
|
||||
#+begin_quote
|
||||
Experimental closed-loop control results using the hexapod have shown that controllers designed using a decentralized single-strut design work well when compared to full multivariable methodologies.
|
||||
#+end_quote
|
||||
When sensors are integrated within the struts, decentralized control may be applied, as the system is already well decoupled at low frequency.
|
||||
For instance, [[cite:&furutani04_nanom_cuttin_machin_using_stewar]] implemented a system where each strut consists of piezoelectric stack actuators and eddy current displacement sensors, with separate PI controllers for each strut.
|
||||
A similar control architecture was proposed in [[cite:&du14_piezo_actuat_high_precis_flexib]] using strain gauge sensors integrated in each strut.
|
||||
|
||||
- [X] Review of [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org::*Decoupling Strategies][Decoupling Strategies]] for stewart platforms
|
||||
- [ ] Add some citations about different methods
|
||||
- [ ] Maybe transform table into text
|
||||
An alternative strategy involves decoupling the system in the Cartesian frame using Jacobian matrices.
|
||||
As demonstrated during the study of Stewart platform kinematics, Jacobian matrices can be utilized to map actuator forces to forces and torques applied on the top platform.
|
||||
This approach enables the implementation of controllers in a defined frame.
|
||||
It has been applied with various sensor types including force sensors [[cite:&mcinroy00_desig_contr_flexur_joint_hexap]], relative displacement sensors [[cite:&kim00_robus_track_contr_desig_dof_paral_manip]], and inertial sensors [[cite:&li01_simul_vibrat_isolat_point_contr;&abbas14_vibrat_stewar_platf]].
|
||||
The Cartesian frame in which the system is decoupled is typically chosen at the point of interest (i.e., where the motion is of interest) or at the center of mass.
|
||||
|
||||
#+name: tab:detail_control_decoupling_review
|
||||
#+caption: Litterature review about decoupling strategy for Stewart platform control
|
||||
#+attr_latex: :environment tabularx :width 0.9\linewidth :align Xccc
|
||||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||||
| *Actuators* | *Sensors* | *Control* | *Reference* |
|
||||
|---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| APA | Eddy current displacement | *Decentralized* (struts) PI + LPF control | [[cite:&furutani04_nanom_cuttin_machin_using_stewar]] |
|
||||
| PZT Piezo | Strain Gauge | Decentralized position feedback | [[cite:&du14_piezo_actuat_high_precis_flexib]] |
|
||||
|---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| Voice Coil | Force | *Cartesian frame* decoupling | [[cite:&obrien98_lesson]] |
|
||||
| Voice Coil | Force | Cartesian Frame, Jacobians, IFF | [[cite:&mcinroy99_dynam;&mcinroy99_precis_fault_toler_point_using_stewar_platf;&mcinroy00_desig_contr_flexur_joint_hexap]] |
|
||||
| Hydraulic | LVDT | Decentralized (strut) vs Centralized (cartesian) | [[cite:&kim00_robus_track_contr_desig_dof_paral_manip]] |
|
||||
| Voice Coil | Accelerometer (collocated), ext. Rx/Ry sensors | Cartesian acceleration feedback (isolation) + 2DoF pointing control (external sensor) | [[cite:&li01_simul_vibrat_isolat_point_contr]] |
|
||||
| Voice Coil | Accelerometer in each leg | Centralized Vibration Control, PI, Skyhook | [[cite:&abbas14_vibrat_stewar_platf]] |
|
||||
|---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| Voice Coil | Geophone + Eddy Current (Struts, collocated) | Decentralized (Sky Hook) + Centralized (*modal*) Control | [[cite:&pu11_six_degree_of_freed_activ]] |
|
||||
| Piezoelectric | Force, Position | Vibration isolation, Model-Based, *Modal control*: 6x PI controllers | [[cite:&yang19_dynam_model_decoup_contr_flexib]] |
|
||||
|---------------+----------------------------------------------------+---------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------|
|
||||
| PZT | Geophone (struts) | *H-Infinity* and mu-synthesis | [[cite:&lei08_multi_objec_robus_activ_vibrat]] |
|
||||
| Voice Coil | Force sensors (struts) + accelerometer (cartesian) | Decentralized Force Feedback + Centralized H2 control based on accelerometers | [[cite:&xie17_model_contr_hybrid_passiv_activ]] |
|
||||
| Voice Coil | Accelerometers | MIMO H-Infinity, active damping | [[cite:&jiao18_dynam_model_exper_analy_stewar]] |
|
||||
Modal control represents another noteworthy decoupling strategy, wherein the "local" plant inputs and outputs are mapped to the modal space.
|
||||
In this approach, multiple SISO plants, each corresponding to a single mode, can be controlled independently.
|
||||
This decoupling strategy has been implemented for active damping applications [[cite:&holterman05_activ_dampin_based_decoup_colloc_contr]], which is logical as it is often desirable to dampen specific modes.
|
||||
The strategy has also been employed in [[cite:&pu11_six_degree_of_freed_activ]] for vibration isolation purposes using geophones, and in [[cite:&yang19_dynam_model_decoup_contr_flexib]] using force sensors.
|
||||
|
||||
Another completely different strategy, is to use implement a multivariable control directly on the coupled system.
|
||||
$\mathcal{H}_\infty$ and $\mu\text{-synthesis}$ were applied to a Stewart platform model in [[cite:&lei08_multi_objec_robus_activ_vibrat]].
|
||||
In [[cite:&xie17_model_contr_hybrid_passiv_activ]], decentralized force feedback was first applied, followed by $\mathcal{H}_2$ synthesis for vibration isolation based on accelerometers.
|
||||
$\mathcal{H}_\infty$ synthesis was also employed in [[cite:&jiao18_dynam_model_exper_analy_stewar]] for active damping based on accelerometers.
|
||||
[[cite:&thayer02_six_axis_vibrat_isolat_system]] compared $\mathcal{H}_\infty$ synthesis with decentralized control in the frame of the struts.
|
||||
Their experimental closed-loop results indicated that the $\mathcal{H}_\infty$ controller did not outperform the decentralized controller in the frame of the struts.
|
||||
These limitations were attributed to the model's poor ability to predict off-diagonal dynamics, which is crucial for $\mathcal{H}_\infty$ synthesis.
|
||||
|
||||
The goal of this section is to compare the use of several methods for the decoupling of parallel manipulators.
|
||||
|
||||
It is structured as follow:
|
||||
- Section ref:ssec:detail_control_decoupling_model: the model used to compare/test decoupling strategies is presented
|
||||
- Section ref:ssec:detail_control_decoupling_jacobian: decoupling using Jacobian matrices is presented
|
||||
- Section ref:ssec:detail_control_decoupling_modal: modal decoupling is presented
|
||||
- Section ref:ssec:detail_control_decoupling_svd: SVD decoupling is presented
|
||||
- Section ref:ssec:detail_control_decoupling_comp: the three decoupling methods are applied on the test model and compared
|
||||
- Conclusions are drawn on the three decoupling methods
|
||||
The purpose of this section is to compare several methods for the decoupling of parallel manipulators, an analysis that appears to be lacking in the literature.
|
||||
The analysis begins in Section ref:ssec:detail_control_decoupling_model with the introduction of a simplified parallel manipulator model that serves as the foundation for evaluating various decoupling strategies.
|
||||
Sections ref:ssec:detail_control_decoupling_jacobian through ref:ssec:detail_control_decoupling_svd systematically examine three distinct approaches: Jacobian matrix decoupling, modal decoupling, and Singular Value Decomposition (SVD) decoupling, respectively.
|
||||
The comparative assessment of these three methodologies, along with concluding observations, is provided in Section ref:ssec:detail_control_decoupling_comp.
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@ -2286,44 +2289,43 @@ freqs = logspace(0, 3, 1000);
|
||||
** Test Model
|
||||
<<ssec:detail_control_decoupling_model>>
|
||||
|
||||
- Instead of comparing the decoupling strategies using the Stewart platform, a similar yet much simpler parallel manipulator is used instead
|
||||
- to render the analysis simpler, the system of Figure ref:fig:detail_control_decoupling_model_details is used
|
||||
- Fully parallel manipulator: it has 3DoF, and has 3 parallels struts whose model is shown in Figure ref:fig:detail_control_decoupling_strut_model
|
||||
As many DoF as actuators and sensors
|
||||
- It is quite similar to the Stewart platform (parallel architecture, as many struts as DoF)
|
||||
Instead of utilizing the Stewart platform for comparing decoupling strategies, a simplified parallel manipulator is employed to facilitate a more straightforward analysis.
|
||||
The system illustrated in Figure ref:fig:detail_control_decoupling_model_test is used for this purpose.
|
||||
It possesses three degrees of freedom (DoF) and incorporates three parallel struts.
|
||||
Being a fully parallel manipulator, it is therefore quite similar to the Stewart platform.
|
||||
|
||||
Two frames are defined:
|
||||
- $\{M\}$ with origin $O_M$ at the Center of mass of the solid body
|
||||
- $\{K\}$ with origin $O_K$ at the Center of mass of the parallel manipulator
|
||||
Two reference frames are defined within this model: frame $\{M\}$ with origin $O_M$ at the center of mass of the solid body, and frame $\{K\}$ with origin $O_K$ at the center of stiffness of the parallel manipulator.
|
||||
|
||||
#+name: fig:detail_control_decoupling_model_details
|
||||
#+caption: 3DoF model used to study decoupling strategies
|
||||
#+attr_latex: :options [htbp]
|
||||
#+begin_figure
|
||||
#+attr_latex: :caption \subcaption{\label{fig:detail_control_decoupling_model_test}Geometrical parameters}
|
||||
#+attr_latex: :options {0.58\textwidth}
|
||||
#+begin_subfigure
|
||||
#+attr_latex: :scale 1
|
||||
#+attr_latex: :options [b]{0.60\linewidth}
|
||||
#+begin_minipage
|
||||
#+name: fig:detail_control_decoupling_model_test
|
||||
#+caption: Model used to compare decoupling strategies
|
||||
#+attr_latex: :float nil :scale 1
|
||||
[[file:figs/detail_control_decoupling_model_test.png]]
|
||||
#+end_subfigure
|
||||
#+attr_latex: :caption \subcaption{\label{fig:detail_control_decoupling_strut_model}Strut model}
|
||||
#+attr_latex: :options {0.38\textwidth}
|
||||
#+begin_subfigure
|
||||
#+attr_latex: :scale 1
|
||||
[[file:figs/detail_control_decoupling_strut_model.png]]
|
||||
#+end_subfigure
|
||||
#+end_figure
|
||||
#+end_minipage
|
||||
\hfill
|
||||
#+attr_latex: :options [b]{0.36\linewidth}
|
||||
#+begin_minipage
|
||||
#+begin_scriptsize
|
||||
#+latex: \centering
|
||||
#+attr_latex: :environment tabularx :width \linewidth :placement [b] :align cXc
|
||||
#+attr_latex: :booktabs t :float nil :center nil
|
||||
| | *Description* | *Value* |
|
||||
|-------+-----------------------+-------------------|
|
||||
| $l_a$ | | $0.5\,m$ |
|
||||
| $h_a$ | | $0.2\,m$ |
|
||||
| $k$ | Actuator stiffness | $10\,N/\mu m$ |
|
||||
| $c$ | Actuator damping | $200\,Ns/m$ |
|
||||
| $m$ | Payload mass | $40\,\text{kg}$ |
|
||||
| $I$ | Payload $R_z$ inertia | $5\,\text{kg}m^2$ |
|
||||
#+latex: \captionof{table}{\label{tab:detail_control_decoupling_test_model_params}Model parameters}
|
||||
#+end_scriptsize
|
||||
#+end_minipage
|
||||
|
||||
First, the equation of motion are derived.
|
||||
Expressing the second law of Newton on the suspended mass, expressed at its center of mass gives
|
||||
The equations of motion are derived by applying Newton's second law to the suspended mass, expressed at its center of mass eqref:eq:detail_control_decoupling_model_eom, where $\bm{\mathcal{X}}_{\{M\}}$ represents the two translations and one rotation with respect to the center of mass, and $\bm{\mathcal{F}}_{\{M\}}$ denotes the forces and torque applied at the center of mass.
|
||||
|
||||
\begin{equation}
|
||||
\bm{M}_{\{M\}} \ddot{\bm{\mathcal{X}}}_{\{M\}}(t) = \sum \bm{\mathcal{F}}_{\{M\}}(t)
|
||||
\end{equation}
|
||||
|
||||
with $\bm{\mathcal{X}}_{\{M\}}$ the two translation and one rotation expressed with respect to the center of mass and $\bm{\mathcal{F}}_{\{M\}}$ forces and torque applied at the center of mass.
|
||||
|
||||
\begin{equation}
|
||||
\begin{equation}\label{eq:detail_control_decoupling_model_eom}
|
||||
\bm{M}_{\{M\}} \ddot{\bm{\mathcal{X}}}_{\{M\}}(t) = \sum \bm{\mathcal{F}}_{\{M\}}(t), \quad
|
||||
\bm{\mathcal{X}}_{\{M\}} = \begin{bmatrix}
|
||||
x \\
|
||||
y \\
|
||||
@ -2335,7 +2337,7 @@ with $\bm{\mathcal{X}}_{\{M\}}$ the two translation and one rotation expressed w
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
In order to map the spring, damping and actuator forces to XY forces and Z torque expressed at the center of mass, the Jacobian matrix $\bm{J}_{\{M\}}$ is used.
|
||||
The Jacobian matrix $\bm{J}_{\{M\}}$ is employed to map the spring, damping, and actuator forces to XY forces and Z torque expressed at the center of mass eqref:eq:detail_control_decoupling_jacobian_CoM.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_jacobian_CoM}
|
||||
\bm{J}_{\{M\}} = \begin{bmatrix}
|
||||
@ -2345,15 +2347,15 @@ In order to map the spring, damping and actuator forces to XY forces and Z torqu
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
Then, the equation of motion linking the actuator forces $\tau$ to the motion of the mass $\bm{\mathcal{X}}_{\{M\}}$ is obtained.
|
||||
Subsequently, the equation of motion relating the actuator forces $\tau$ to the motion of the mass $\bm{\mathcal{X}}_{\{M\}}$ is derived eqref:eq:detail_control_decoupling_plant_cartesian.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_cartesian}
|
||||
\bm{M}_{\{M\}} \ddot{\bm{\mathcal{X}}}_{\{M\}}(t) + \bm{J}_{\{M\}}^{\intercal} \bm{\mathcal{C}} \bm{J}_{\{M\}} \dot{\bm{\mathcal{X}}}_{\{M\}}(t) + \bm{J}_{\{M\}}^{\intercal} \bm{\mathcal{K}} \bm{J}_{\{M\}} \bm{\mathcal{X}}_{\{M\}}(t) = \bm{J}_{\{M\}}^{\intercal} \bm{\tau}(t)
|
||||
\end{equation}
|
||||
|
||||
Matrices representing the payload inertia as well as the actuator stiffness and damping are shown in
|
||||
The matrices representing the payload inertia, actuator stiffness, and damping are shown in eqref:eq:detail_control_decoupling_system_matrices.
|
||||
|
||||
\begin{equation}
|
||||
\begin{equation}\label{eq:detail_control_decoupling_system_matrices}
|
||||
\bm{M}_{\{M\}} = \begin{bmatrix}
|
||||
m & 0 & 0 \\
|
||||
0 & m & 0 \\
|
||||
@ -2371,28 +2373,14 @@ Matrices representing the payload inertia as well as the actuator stiffness and
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
Parameters used for the following analysis are summarized in table ref:tab:detail_control_decoupling_test_model_params.
|
||||
|
||||
#+name: tab:detail_control_decoupling_test_model_params
|
||||
#+caption: Model parameters
|
||||
#+attr_latex: :environment tabularx :width 0.9\linewidth :align cXc
|
||||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||||
| *Parameter* | *Description* | *Value* |
|
||||
|-------------+----------------------------+-------------------|
|
||||
| $l_a$ | | $0.5\,m$ |
|
||||
| $h_a$ | | $0.2\,m$ |
|
||||
| $k$ | Actuator stiffness | $10\,N/\mu m$ |
|
||||
| $c$ | Actuator damping | $200\,Ns/m$ |
|
||||
| $m$ | Payload mass | $40\,\text{kg}$ |
|
||||
| $I$ | Payload rotational inertia | $5\,\text{kg}m^2$ |
|
||||
The parameters employed for the subsequent analysis are summarized in Table ref:tab:detail_control_decoupling_test_model_params, which includes values for geometric parameters ($l_a$, $h_a$), mechanical properties (actuator stiffness $k$ and damping $c$), and inertial characteristics (payload mass $m$ and rotational inertia $I$).
|
||||
|
||||
** Control in the frame of the struts
|
||||
<<ssec:detail_control_decoupling_decentralized>>
|
||||
|
||||
Let's first study the obtained dynamics in the frame of the struts.
|
||||
The equation of motion linking actuator forces $\bm{\mathcal{\tau}}$ to strut relative motion $\bm{\mathcal{L}}$ is obtained from eqref:eq:detail_control_decoupling_plant_cartesian by mapping the cartesian motion of the mass to the relative motion of the struts using the Jacobian matrix $\bm{J}_{\{M\}}$ eqref:eq:detail_control_decoupling_jacobian_CoM .
|
||||
|
||||
The transfer function from $\bm{\mathcal{\tau}}$ to $\bm{\mathcal{L}}$ is shown in equation eqref:eq:detail_control_decoupling_plant_decentralized.
|
||||
The dynamics in the frame of the struts are first examined.
|
||||
The equation of motion relating actuator forces $\bm{\mathcal{\tau}}$ to strut relative motion $\bm{\mathcal{L}}$ is derived from equation eqref:eq:detail_control_decoupling_plant_cartesian by mapping the Cartesian motion of the mass to the relative motion of the struts using the Jacobian matrix $\bm{J}_{\{M\}}$ defined in eqref:eq:detail_control_decoupling_jacobian_CoM.
|
||||
The obtained transfer function from $\bm{\mathcal{\tau}}$ to $\bm{\mathcal{L}}$ is shown in eqref:eq:detail_control_decoupling_plant_decentralized.
|
||||
|
||||
#+begin_src latex :file detail_control_decoupling_control_struts.pdf
|
||||
\begin{tikzpicture}
|
||||
@ -2405,20 +2393,19 @@ The transfer function from $\bm{\mathcal{\tau}}$ to $\bm{\mathcal{L}}$ is shown
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_control_struts.png]]
|
||||
# [[file:figs/detail_control_decoupling_control_struts.png]]
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_decentralized}
|
||||
\frac{\bm{\mathcal{L}}}{\bm{\mathcal{\tau}}}(s) = \bm{G}_{\mathcal{L}}(s) = \left( \bm{J}_{\{M\}}^{-\intercal} \bm{M}_{\{M\}} \bm{J}_{\{M\}}^{-1} s^2 + \bm{\mathcal{C}} s + \bm{\mathcal{K}} \right)^{-1}
|
||||
\end{equation}
|
||||
|
||||
At low frequency the plant converges to a diagonal constant matrix whose diagonal elements are linked to the actuator stiffnesses eqref:eq:detail_control_decoupling_plant_decentralized_low_freq.
|
||||
At low frequencies, the plant converges to a diagonal constant matrix whose diagonal elements are related to the actuator stiffnesses eqref:eq:detail_control_decoupling_plant_decentralized_low_freq.
|
||||
At high frequencies, the plant converges to the mass matrix mapped in the frame of the struts, which is generally highly non-diagonal.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_decentralized_low_freq}
|
||||
\bm{G}_{\mathcal{L}}(j\omega) \xrightarrow[\omega \to 0]{} \bm{\mathcal{K}^{-1}}
|
||||
\end{equation}
|
||||
|
||||
At high frequency, the plant converges to the mass matrix mapped in the frame of the struts, which is in general highly non-diagonal.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Compute Equation of motion
|
||||
l = 1; h=2;
|
||||
@ -2463,9 +2450,9 @@ C = J_CoM'*Cr*J_CoM;
|
||||
G_L = J_CoM*inv(M*s^2 + C*s + K)*J_CoM';
|
||||
#+end_src
|
||||
|
||||
The magnitude of the coupled plant $\bm{G}_{\mathcal{L}}$ is shown in Figure ref:fig:detail_control_decoupling_coupled_plant_bode.
|
||||
This confirms that at low frequency (below the first suspension mode), the plant is well decoupled.
|
||||
Depending on the symmetry in the system, some diagonal elements may be equal (such as for struts 2 and 3 in this example).
|
||||
The magnitude of the coupled plant $\bm{G}_{\mathcal{L}}$ is illustrated in Figure ref:fig:detail_control_decoupling_coupled_plant_bode.
|
||||
This representation confirms that at low frequencies (below the first suspension mode), the plant is well decoupled.
|
||||
Depending on the symmetry present in the system, certain diagonal elements may exhibit identical values, as demonstrated for struts 2 and 3 in this example.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
@ -2477,8 +2464,10 @@ for out_i = 1:3
|
||||
plot(freqs, abs(squeeze(freqresp(G_L(out_i,in_i), freqs, 'Hz'))), 'k-', ...
|
||||
'DisplayName', sprintf('$\\mathcal{L}_%i/\\tau_%i$', out_i, in_i));
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlim([freqs(1), freqs(end)]); ylim([1e-8, 1e-4]);
|
||||
leg = legend('location', 'northeast', 'FontSize', 8);
|
||||
xlim([freqs(1), freqs(end)]); ylim([2e-8, 4e-5]);
|
||||
xticks([1e0, 1e1, 1e2])
|
||||
yticks([1e-7, 1e-6, 1e-5])
|
||||
leg = legend('location', 'southwest', 'FontSize', 8);
|
||||
leg.ItemTokenSize(1) = 18;
|
||||
|
||||
if in_i == 1
|
||||
@ -2497,11 +2486,11 @@ end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_decoupling_coupled_plant_bode.pdf', 'width', 'full', 'height', 'tall');
|
||||
exportFig('figs/detail_control_decoupling_coupled_plant_bode.pdf', 'width', 'full', 'height', 600);
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_decoupling_coupled_plant_bode
|
||||
#+caption: Magnitude of the coupled plant.
|
||||
#+caption: Model dynamics from actuator forces to relative displacement sensor of each strut.
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_coupled_plant_bode.png]]
|
||||
|
||||
@ -2509,7 +2498,7 @@ exportFig('figs/detail_control_decoupling_coupled_plant_bode.pdf', 'width', 'ful
|
||||
<<ssec:detail_control_decoupling_jacobian>>
|
||||
**** Jacobian Matrix
|
||||
|
||||
As already explained, the Jacobian matrix can be used to both convert strut velocity $\dot{\mathcal{L}}$ to payload velocity and angular velocity $\dot{\bm{\mathcal{X}}}_{\{O\}}$ and Convert actuators forces $\bm{\tau}$ to forces/torque applied on the payload $\bm{\mathcal{F}}_{\{O\}}$ eqref:eq:detail_control_decoupling_jacobian.
|
||||
The Jacobian matrix serves a dual purpose in the decoupling process: it converts strut velocity $\dot{\mathcal{L}}$ to payload velocity and angular velocity $\dot{\bm{\mathcal{X}}}_{\{O\}}$, and it transforms actuator forces $\bm{\tau}$ to forces/torque applied on the payload $\bm{\mathcal{F}}_{\{O\}}$, as expressed in equation eqref:eq:detail_control_decoupling_jacobian.
|
||||
|
||||
\begin{subequations}\label{eq:detail_control_decoupling_jacobian}
|
||||
\begin{align}
|
||||
@ -2518,9 +2507,9 @@ As already explained, the Jacobian matrix can be used to both convert strut velo
|
||||
\end{align}
|
||||
\end{subequations}
|
||||
|
||||
The obtained plan (Figure ref:fig:detail_control_jacobian_decoupling_arch) has inputs and outputs that have physical meaning:
|
||||
- $\bm{\mathcal{F}}_{\{O\}}$ are forces/torques applied on the payload at the origin of frame $\{O\}$
|
||||
- $\bm{\mathcal{X}}_{\{O\}}$ are translations/rotation of the payload expressed in frame $\{O\}$
|
||||
The resulting plant (Figure ref:fig:detail_control_jacobian_decoupling_arch) have inputs and outputs with clear physical interpretations:
|
||||
- $\bm{\mathcal{F}}_{\{O\}}$ represents forces/torques applied on the payload at the origin of frame $\{O\}$
|
||||
- $\bm{\mathcal{X}}_{\{O\}}$ represents translations/rotation of the payload expressed in frame $\{O\}$
|
||||
|
||||
#+begin_src latex :file detail_control_decoupling_control_jacobian.pdf
|
||||
\begin{tikzpicture}
|
||||
@ -2546,18 +2535,18 @@ The obtained plan (Figure ref:fig:detail_control_jacobian_decoupling_arch) has i
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_control_jacobian.png]]
|
||||
|
||||
The transfer function from $\bm{\mathcal{F}}_{\{O\}$ to $\bm{\mathcal{X}}_{\{O\}}$, denoted $\bm{G}_{\{O\}}(s)$ can be computed using eqref:eq:detail_control_decoupling_plant_jacobian.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_jacobian}
|
||||
\frac{\bm{\mathcal{X}}_{\{O\}}}{\bm{\mathcal{F}}_{\{O\}}}(s) = \bm{G}_{\{O\}}(s) = \left( \bm{J}_{\{O\}}^{\intercal} \bm{J}_{\{M\}}^{-\intercal} \bm{M}_{\{M\}} \bm{J}_{\{M\}}^{-1} \bm{J}_{\{O\}} s^2 + \bm{J}_{\{O\}}^{\intercal} \bm{\mathcal{C}} \bm{J}_{\{O\}} s + \bm{J}_{\{O\}}^{\intercal} \bm{\mathcal{K}} \bm{J}_{\{O\}} \right)^{-1}
|
||||
\end{equation}
|
||||
|
||||
The frame $\{O\}$ can be any chosen frame, but the decoupling properties depends on the chosen frame $\{O\}$.
|
||||
There are two natural choices: the center of mass $\{M\}$ and the center of stiffness $\{K\}$.
|
||||
Note that the Jacobian matrix is only based on the geometry of the system and does not depend on the physical properties such as mass and stiffness.
|
||||
The frame $\{O\}$ can be selected according to specific requirements, but the decoupling properties are significantly influenced by this choice.
|
||||
Two natural reference frames are particularly relevant: the center of mass and the center of stiffness.
|
||||
|
||||
**** Center Of Mass
|
||||
|
||||
If the center of mass is chosen as the decoupling frame.
|
||||
The Jacobian matrix and its inverse are expressed in eqref:eq:detail_control_decoupling_jacobian_CoM_inverse.
|
||||
When the decoupling frame is located at the center of mass (frame $\{M\}$ in Figure ref:fig:detail_control_decoupling_model_test), the Jacobian matrix and its inverse are expressed as in eqref:eq:detail_control_decoupling_jacobian_CoM_inverse.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_jacobian_CoM_inverse}
|
||||
\bm{J}_{\{M\}} = \begin{bmatrix}
|
||||
@ -2591,16 +2580,15 @@ The Jacobian matrix and its inverse are expressed in eqref:eq:detail_control_dec
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_control_jacobian_CoM.png]]
|
||||
# [[file:figs/detail_control_decoupling_control_jacobian_CoM.png]]
|
||||
|
||||
Analytical formula of the plant is eqref:eq:detail_control_decoupling_plant_CoM.
|
||||
Analytical formula of the plant $\bm{G}_{\{M\}}(s)$ is derived eqref:eq:detail_control_decoupling_plant_CoM.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_CoM}
|
||||
\frac{\bm{\mathcal{X}}_{\{M\}}}{\bm{\mathcal{F}}_{\{M\}}}(s) = \bm{G}_{\{M\}}(s) = \left( \bm{M}_{\{M\}} s^2 + \bm{J}_{\{M\}}^{\intercal} \bm{\mathcal{C}} \bm{J}_{\{M\}} s + \bm{J}_{\{M\}}^{\intercal} \bm{\mathcal{K}} \bm{J}_{\{M\}} \right)^{-1}
|
||||
\end{equation}
|
||||
|
||||
At high frequency, converges towards the inverse of the mass matrix, which is a diagonal matrix eqref:eq:detail_control_decoupling_plant_CoM_high_freq.
|
||||
At high frequencies, the plant converges to the inverse of the mass matrix, which is a diagonal matrix eqref:eq:detail_control_decoupling_plant_CoM_high_freq.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_CoM_high_freq}
|
||||
\bm{G}_{\{M\}}(j\omega) \xrightarrow[\omega \to \infty]{} -\omega^2 \bm{M}_{\{M\}}^{-1} = -\omega^2 \begin{bmatrix}
|
||||
@ -2610,14 +2598,13 @@ At high frequency, converges towards the inverse of the mass matrix, which is a
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
Plant is therefore well decoupled above the suspension mode with the highest frequency.
|
||||
Such strategy is usually applied on systems with low frequency suspension modes, such that the plant corresponds to decoupled mass lines.
|
||||
Consequently, the plant exhibits effective decoupling at frequencies above the highest suspension mode as shown in Figure ref:fig:detail_control_decoupling_jacobian_plant_CoM.
|
||||
This strategy is typically employed in systems with low-frequency suspension modes [[cite:&butler11_posit_contr_lithog_equip]], where the plant approximates decoupled mass lines.
|
||||
|
||||
- [ ] Reference to some papers about vibration isolation or ASML?
|
||||
|
||||
The coupling at low frequency can easily be understood physically.
|
||||
When a static (or with frequency lower than the suspension modes) force is applied at the center of mass, rotation is induced by the stiffness of the first actuator, not in line with the force application point.
|
||||
this is illustrated in Figure ref:fig:detail_control_decoupling_model_test_CoM.
|
||||
The low-frequency coupling observed in this configuration has a clear physical interpretation.
|
||||
When a static force is applied at the center of mass, the suspended mass rotates around the center of stiffness.
|
||||
This rotation is due to torque induced by the stiffness of the first actuator (i.e. the one on the left side), which is not aligned with the force application point.
|
||||
This phenomenon is illustrated in Figure ref:fig:detail_control_decoupling_model_test_CoM.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Jacobian Decoupling - Center of Mass
|
||||
@ -2688,10 +2675,11 @@ exportFig('figs/detail_control_decoupling_jacobian_plant_CoM.pdf', 'width', 'hal
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_control_jacobian_CoK.png]]
|
||||
# [[file:figs/detail_control_decoupling_control_jacobian_CoK.png]]
|
||||
|
||||
\begin{equation}
|
||||
When the decoupling frame is located at the center of stiffness, the Jacobian matrix and its inverse are expressed as in eqref:eq:detail_control_decoupling_jacobian_CoK_inverse.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_jacobian_CoK_inverse}
|
||||
\bm{J}_{\{K\}} = \begin{bmatrix}
|
||||
1 & 0 & 0 \\
|
||||
0 & 1 & -l_a \\
|
||||
@ -2703,24 +2691,28 @@ exportFig('figs/detail_control_decoupling_jacobian_plant_CoM.pdf', 'width', 'hal
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
Frame $\{K\}$ is chosen such that $\bm{J}_{\{K\}}^{\intercal} \bm{\mathcal{K}} \bm{J}_{\{K\}}$ is diagonal.
|
||||
Typically, it can me made based on physical reasoning as is the case here.
|
||||
The frame $\{K\}$ was selected based on physical reasoning, positioned in line with the side strut and equidistant between the two vertical struts.
|
||||
However, it could alternatively be determined through analytical methods to ensure that $\bm{J}_{\{K\}}^{\intercal} \bm{\mathcal{K}} \bm{J}_{\{K\}}$ forms a diagonal matrix.
|
||||
It should be noted that the existence of such a center of stiffness (i.e. a frame $\{K\}$ for which $\bm{J}_{\{K\}}^{\intercal} \bm{\mathcal{K}} \bm{J}_{\{K\}}$ is diagonal) is not guaranteed for arbitrary systems.
|
||||
This property is typically achievable only in systems exhibiting specific symmetrical characteristics, as is the case in the present example.
|
||||
|
||||
The analytical expression for the plant in this configuration was then computed ref:eq:detail_control_decoupling_plant_CoK.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_CoK}
|
||||
\frac{\bm{\mathcal{X}}_{\{K\}}}{\bm{\mathcal{F}}_{\{K\}}}(s) = \bm{G}_{\{K\}}(s) = \left( \bm{J}_{\{K\}}^{\intercal} \bm{J}_{\{M\}}^{-\intercal} \bm{M}_{\{M\}} \bm{J}_{\{M\}}^{-1} \bm{J}_{\{K\}} s^2 + \bm{J}_{\{K\}}^{\intercal} \bm{\mathcal{C}} \bm{J}_{\{K\}} s + \bm{J}_{\{K\}}^{\intercal} \bm{\mathcal{K}} \bm{J}_{\{K\}} \right)^{-1}
|
||||
\end{equation}
|
||||
|
||||
Plant is well decoupled below the suspension mode with the lowest frequency.
|
||||
This is usually suited for systems which high stiffness.
|
||||
|
||||
\begin{equation}
|
||||
Figure ref:fig:detail_control_decoupling_jacobian_plant_CoK_results presents the dynamics of the plant when decoupled using the Jacobian matrix expressed at the center of stiffness.
|
||||
The plant is well decoupled below the suspension mode with the lowest frequency eqref:eq:detail_control_decoupling_plant_CoK_low_freq, making it particularly suitable for systems with high stiffness.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_CoK_low_freq}
|
||||
\bm{G}_{\{K\}}(j\omega) \xrightarrow[\omega \to 0]{} \bm{J}_{\{K\}}^{-1} \bm{\mathcal{K}}^{-1} \bm{J}_{\{K\}}^{-\intercal}
|
||||
\end{equation}
|
||||
|
||||
|
||||
The physical reason for high frequency coupling is schematically shown in Figure ref:fig:detail_control_decoupling_model_test_CoK.
|
||||
At high frequency, a force applied on a point which is not aligned with the center of mass.
|
||||
Therefore, it will induce some rotation around the center of mass.
|
||||
The physical reason for high-frequency coupling is illustrated in Figure ref:fig:detail_control_decoupling_model_test_CoK.
|
||||
When a high-frequency force is applied at a point not aligned with the center of mass, it induces rotation around the center of mass.
|
||||
This phenomenon explains the coupling observed between different degrees of freedom at higher frequencies.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Jacobian Decoupling - Center of Mass
|
||||
@ -2783,44 +2775,32 @@ exportFig('figs/detail_control_decoupling_jacobian_plant_CoK.pdf', 'width', 'hal
|
||||
<<ssec:detail_control_decoupling_modal>>
|
||||
**** Theory :ignore:
|
||||
|
||||
- A mechanical system consists of several modes:
|
||||
- Modal decomposition [[cite:&rankers98_machin]]
|
||||
#+begin_quote
|
||||
The physical interpretation of the above two equations is that any motion of the system can be regarded as a combination of the contribution of the various modes.
|
||||
#+end_quote
|
||||
- Mode superposition [[cite:&preumont94_random_vibrat_spect_analy;&preumont18_vibrat_contr_activ_struc_fourt_edition, chapt. 2]]
|
||||
- The idea is to control the system in the "modal space"
|
||||
[[cite:&heertjes05_activ_vibrat_isolat_metrol_frames]]
|
||||
IFF in modal space [[cite:&holterman05_activ_dampin_based_decoup_colloc_contr]] very interesting paper
|
||||
[[cite:&pu11_six_degree_of_freed_activ]]
|
||||
Modal decoupling represents an approach based on the principle that a mechanical system's behavior can be understood as a combination of contributions from various modes [[cite:&rankers98_machin]].
|
||||
|
||||
To convert the dynamics in the modal space, the equation of motion are first written with respect to the center of mass eqref:eq:detail_control_decoupling_equation_motion_CoM.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_equation_motion_CoM}
|
||||
\bm{M}_{\{M\}} \ddot{\bm{\mathcal{X}}}_{\{M\}}(t) + \bm{C}_{\{M\}} \dot{\bm{\mathcal{X}}}_{\{M\}}(t) + \bm{K}_{\{M\}} \bm{\mathcal{X}}_{\{M\}}(t) = \bm{J}_{\{M\}}^{\intercal} \bm{\tau}(t)
|
||||
\end{equation}
|
||||
|
||||
Let's make a change of variables:
|
||||
For modal decoupling, a change of variables is introduced eqref:eq:detail_control_decoupling_modal_coordinates where $\bm{\mathcal{X}}_{m}$ represents the modal amplitudes and $\bm{\Phi}$ is a $n \times n$[fn:detail_control_2] matrix whose columns correspond to the mode shapes of the system, computed from $\bm{M}_{\{M\}}$ and $\bm{K}_{\{M\}}$.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_modal_coordinates}
|
||||
\bm{\mathcal{X}}_{\{M\}} = \bm{\Phi} \bm{\mathcal{X}}_{m}
|
||||
\end{equation}
|
||||
with:
|
||||
- $\bm{\mathcal{X}}_{m}$ the modal amplitudes
|
||||
- $\bm{\Phi}$ a matrix whose columns are the modes shapes of the system which can be computed from $\bm{M}_{\{M\}}$ and $\bm{K}_{\{M\}}$.
|
||||
|
||||
By pre-multiplying the equation of motion eqref:eq:detail_control_decoupling_equation_motion_CoM by $\bm{\Phi}^{\intercal}$ and using the change of variable eqref:eq:detail_control_decoupling_modal_coordinates, a new set of equation of motion are obtained
|
||||
By pre-multiplying equation eqref:eq:detail_control_decoupling_equation_motion_CoM by $\bm{\Phi}^{\intercal}$ and applying the change of variable eqref:eq:detail_control_decoupling_modal_coordinates, a new set of equations of motion is obtained eqref:eq:detail_control_decoupling_equation_modal_coordinates where $\bm{\tau}_m$ represents the modal input, while $\bm{M}_m$, $\bm{C}_m$, and $\bm{K}_m$ denote the modal mass, damping, and stiffness matrices respectively.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_equation_modal_coordinates}
|
||||
\underbrace{\bm{\Phi}^{\intercal} \bm{M} \bm{\Phi}}_{\bm{M}_m} \bm{\ddot{\mathcal{X}}}_m(t) + \underbrace{\bm{\Phi}^{\intercal} \bm{C} \bm{\Phi}}_{\bm{C}_m} \bm{\dot{\mathcal{X}}}_m(t) + \underbrace{\bm{\Phi}^{\intercal} \bm{K} \bm{\Phi}}_{\bm{K}_m} \bm{\mathcal{X}}_m(t) = \underbrace{\bm{\Phi}^{\intercal} \bm{J}^{\intercal} \bm{\tau}(t)}_{\bm{\tau}_m(t)}
|
||||
\end{equation}
|
||||
The inherent mathematical structure of the mass, damping, and stiffness matrices [[cite:&lang17_under, chapt. 8]] ensures that modal matrices are diagonal [[cite:&preumont18_vibrat_contr_activ_struc_fourt_edition, chapt. 2.3]].
|
||||
This diagonalization transforms equation eqref:eq:detail_control_decoupling_equation_modal_coordinates into a set of $n$ decoupled equations, enabling independent control of each mode without cross-interaction.
|
||||
|
||||
- $\bm{\tau}_m$ is the modal input
|
||||
- $\bm{M}_m$, $\bm{C}_m$ and $\bm{K}_m$ are the modal mass, damping and stiffness matrices
|
||||
|
||||
Orthogonality of normal modes gives that the "the modal
|
||||
vectors uncouple the equations of motion making each dynamic equation independent of all the others" [[cite:&lang17_under]].
|
||||
The modal matrices are diagonal.
|
||||
|
||||
In order to implement such modal decoupling from the decentralized plant, architecture shown in Figure ref:fig:detail_control_decoupling_modal can be used.
|
||||
The dynamics from modal inputs $\bm{\tau}_m$ to modal amplitudes $\bm{\mathcal{X}}_m$ is fully decoupled.
|
||||
To implement this approach from a decentralized plant, the architecture shown in Figure ref:fig:detail_control_decoupling_modal is employed.
|
||||
Inputs of the decoupling plant are the modal modal inputs $\bm{\tau}_m$ and the outputs are the modal amplitudes $\bm{\mathcal{X}}_m$.
|
||||
This implementation requires knowledge of the system's equations of motion, from which the mode shapes matrix $\bm{\Phi}$ is derived.
|
||||
The resulting decoupled system features diagonal elements each representing second-order resonant systems that are straightforward to control individually.
|
||||
|
||||
#+begin_src latex :file detail_control_decoupling_modal.pdf
|
||||
\begin{tikzpicture}
|
||||
@ -2850,67 +2830,37 @@ The dynamics from modal inputs $\bm{\tau}_m$ to modal amplitudes $\bm{\mathcal{X
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_modal.png]]
|
||||
|
||||
Modal decoupling requires to have the equations of motion of the system.
|
||||
From the equations of motion (and more precisely the mass and stiffness matrices), the mode shapes $\Phi$ are computed.
|
||||
**** Example :ignore:
|
||||
|
||||
Then, the system can be decoupled in the modal space.
|
||||
The obtained system on the diagonal are second order resonant systems which can be easily controlled.
|
||||
Modal decoupling was then applied to the test model.
|
||||
First, the eigenvectors $\bm{\Phi}$ of $\bm{M}_{\{M\}}^{-1}\bm{K}_{\{M\}}$ were computed eqref:eq:detail_control_decoupling_modal_eigenvectors.
|
||||
While analytical derivation of eigenvectors could be obtained for such a simple system, they are typically computed numerically for practical applications.
|
||||
|
||||
Using this decoupling strategy, it is possible to control each mode individually.
|
||||
|
||||
- [ ] Do we need to measure all the states?
|
||||
I think so
|
||||
- [ ] Say that the eigen vectors are unitary
|
||||
Are they orthogonal?
|
||||
- [ ] Say that the obtained plant are second order systems
|
||||
|
||||
**** Example
|
||||
|
||||
From the mass matrix $\bm{M}_{\{M\}}$ and stiffness matrix $\bm{K}_{\{M\}}$ expressed at the center of mass, the eigenvectors of $\bm{M}_{\{M\}}^{-1}\bm{K}_{\{M\}}$ are computed.
|
||||
|
||||
\begin{equation}
|
||||
\bm{M}_{\{M\}} = \begin{bmatrix}
|
||||
m & 0 & 0 \\
|
||||
0 & m & 0 \\
|
||||
0 & 0 & I
|
||||
\end{bmatrix}, \quad
|
||||
\bm{K}_{\{M\}} = \begin{bmatrix}
|
||||
k & 0 & 0 \\
|
||||
0 & k & 0 \\
|
||||
0 & 0 & k
|
||||
\end{bmatrix}
|
||||
\begin{equation}\label{eq:detail_control_decoupling_modal_eigenvectors}
|
||||
\bm{\Phi} = \begin{bmatrix}
|
||||
\frac{I - h_a^2 m - 2 l_a^2 m - \alpha}{2 h_a m} & 0 & \frac{I - h_a^2 m - 2 l_a^2 m + \alpha}{2 h_a m} \\
|
||||
0 & 1 & 0 \\
|
||||
1 & 0 & 1
|
||||
\end{bmatrix},\ \alpha = \sqrt{\left( I + m (h_a^2 - 2 l_a^2) \right)^2 + 8 m^2 h_a^2 l_a^2}
|
||||
\end{equation}
|
||||
|
||||
Obtained
|
||||
The numerical values for the eigenvector matrix and its inverse are shown in eqref:eq:detail_control_decoupling_modal_eigenvectors_matrices.
|
||||
|
||||
\begin{equation}
|
||||
\bm{\Phi} = \begin{bmatrix}
|
||||
\frac{I - h_a^2 m - 2 l_a^2 m - \alpha}{2 h_a m} & 0 & \frac{I - h_a^2 m - 2 l_a^2 m + \alpha}{2 h_a m} \\
|
||||
0 & 1 & 0 \\
|
||||
1 & 0 & 1
|
||||
\end{bmatrix},\ \alpha = \sqrt{\left( I + m (h_a^2 - 2 l_a^2) \right)^2 + 8 m^2 h_a^2 l_a^2}
|
||||
\end{equation}
|
||||
|
||||
It may be very difficult to obtain eigenvectors analytically, so typically these can be computed numerically.
|
||||
|
||||
For the present test system, obtained eigen vectors are
|
||||
|
||||
Eigenvectors are arranged for increasing eigenvalues (i.e. resonance frequencies).
|
||||
|
||||
\begin{equation}
|
||||
\bm{\phi} = \begin{bmatrix}
|
||||
\begin{equation}\label{eq:detail_control_decoupling_modal_eigenvectors_matrices}
|
||||
\bm{\Phi} = \begin{bmatrix}
|
||||
-0.905 & 0 & -0.058 \\
|
||||
0 & 1 & 0 \\
|
||||
0.424 & 0 & -0.998
|
||||
\end{bmatrix}, \quad
|
||||
\bm{\phi}^{-1} = \begin{bmatrix}
|
||||
\bm{\Phi}^{-1} = \begin{bmatrix}
|
||||
-1.075 & 0 & 0.063 \\
|
||||
0 & 1 & 0 \\
|
||||
-0.457 & 0 & -0.975
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
- [ ] Formula for the plant transfer function
|
||||
The two computed matrices were implemented in the control architecture of Figure ref:fig:detail_control_decoupling_modal, resulting in three distinct second order plants as depicted in Figure ref:fig:detail_control_decoupling_modal_plant.
|
||||
Each of these diagonal elements corresponds to a specific mode, as shown in Figure ref:fig:detail_control_decoupling_model_test_modal, resulting in a perfectly decoupled system.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Modal decoupling
|
||||
@ -2944,7 +2894,7 @@ exportFig('figs/detail_control_decoupling_modal_plant.pdf', 'width', 'half', 'he
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_decoupling_modal_plant_modes
|
||||
#+caption: Plant using modal decoupling consists of second order plants (\subref{fig:detail_control_decoupling_modal_plant}) which can be used to control separately different modes (\subref{fig:detail_control_decoupling_model_test_modal})
|
||||
#+caption: Plant using modal decoupling consists of second order plants (\subref{fig:detail_control_decoupling_modal_plant}) which can be used to invidiually address different modes illustrated in (\subref{fig:detail_control_decoupling_model_test_modal})
|
||||
#+attr_latex: :options [htbp]
|
||||
#+begin_figure
|
||||
#+attr_latex: :caption \subcaption{\label{fig:detail_control_decoupling_modal_plant}Decoupled plant in modal space}
|
||||
@ -2965,47 +2915,31 @@ exportFig('figs/detail_control_decoupling_modal_plant.pdf', 'width', 'half', 'he
|
||||
<<ssec:detail_control_decoupling_svd>>
|
||||
**** Singular Value Decomposition
|
||||
|
||||
Singular Value Decomposition (SVD)
|
||||
- Introduction to SVD [[cite:&brunton22_data, chapt. 1]]
|
||||
- Singular value is used a lot for multivariable control [[cite:&skogestad07_multiv_feedb_contr]].
|
||||
Used to study directions in multivariable systems.
|
||||
Singular Value Decomposition (SVD) represents a powerful mathematical tool with extensive applications in data analysis [[cite:&brunton22_data, chapt. 1]] and multivariable control systems [[cite:&skogestad07_multiv_feedb_contr]], where it is particularly valuable for analyzing directional properties in multivariable systems.
|
||||
|
||||
# Should I consider only real matrices?
|
||||
|
||||
The SVD is a unique matrix decomposition that exists for every complex matrix $\bm{X} \in \mathbb{C}^{n \times m}$.
|
||||
The SVD constitutes a unique matrix decomposition applicable to any complex matrix $\bm{X} \in \mathbb{C}^{n \times m}$, expressed as:
|
||||
|
||||
\begin{equation}\label{eq:detail_control_svd}
|
||||
\bm{X} = \bm{U} \bm{\Sigma} \bm{V}^H
|
||||
\end{equation}
|
||||
|
||||
where $\bm{U} \in \mathbb{C}^{n \times n}$ and $\bm{V} \in \mathbb{C}^{m \times m}$ are unitary matrices with orthonormal columns, and $\bm{\Sigma} \in \mathbb{R}^{n \times n}$ is a diagonal matrix with real, non-negative entries on the diagonal.
|
||||
|
||||
If the matrix $\bm{X}$ is a real matrix, the obtained $\bm{U}$ and $\bm{V}$ matrices are real and can be used for decoupling purposes.
|
||||
|
||||
The idea to use Singular Value Decomposition as a way to decouple a plant is not new
|
||||
- [ ] Quick review of SVD controllers
|
||||
[[cite:&skogestad07_multiv_feedb_contr, chapt. 3.5.4]]
|
||||
where $\bm{U} \in \mathbb{C}^{n \times n}$ and $\bm{V} \in \mathbb{C}^{m \times m}$ are unitary matrices with orthonormal columns, and $\bm{\Sigma} \in \mathbb{R}^{n \times n}$ is a diagonal matrix with real, non-negative entries.
|
||||
For real matrices $\bm{X}$, the resulting $\bm{U}$ and $\bm{V}$ matrices are also real, making them suitable for decoupling applications.
|
||||
|
||||
**** Decoupling using the SVD
|
||||
|
||||
*Procedure*:
|
||||
Identify the dynamics of the system from inputs to outputs (can be obtained experimentally)
|
||||
Frequency Response Function, which is a complex matrix obtained for several frequency points $\bm{G}(\omega_i)$.
|
||||
The procedure for SVD-based decoupling begins with identifying the system dynamics from inputs to outputs, typically represented as a Frequency Response Function (FRF), which yields a complex matrix $\bm{G}(\omega_i)$ for multiple frequency points $\omega_i$.
|
||||
A specific frequency is then selected for optimal decoupling, with the targeted crossover frequency $\omega_c$ often serving as an appropriate choice.
|
||||
|
||||
Since real matrices are required for the decoupling transformation, a real approximation of the complex measured response at the selected frequency must be computed.
|
||||
In this work, the method proposed in [[cite:&kouvaritakis79_theor_pract_charac_locus_desig_method]] was used as it preserves maximal orthogonality in the directional properties of the input complex matrix.
|
||||
|
||||
Choose a frequency where we want to decouple the system (usually, the crossover frequency $\omega_c$ is a good choice)
|
||||
Following this approximation, a real matrix $\tilde{\bm{G}}(\omega_c)$ is obtained, and SVD is performed on this matrix.
|
||||
The resulting (real) unitary matrices $\bm{U}$ and $\bm{V}$ are structured such that $\bm{V}^{-\intercal} \tilde{\bm{G}}(\omega_c) \bm{U}^{-1}$ forms a diagonal matrix.
|
||||
These singular input and output matrices are then applied to decouple the system as illustrated in Figure ref:fig:detail_control_decoupling_svd, and the decoupled plant is described by eqref:eq:detail_control_decoupling_plant_svd.
|
||||
|
||||
As /real/ V and U matrices need to be obtained, a real approximation of the complex measured response needs to be computed.
|
||||
Compute a real approximation of the system's response at that frequency.
|
||||
[[cite:&kouvaritakis79_theor_pract_charac_locus_desig_method]]: real matrix that preserves the most orthogonality in directions with the input complex matrix
|
||||
|
||||
Then, a real matrix $\tilde{\bm{G}}(\omega_c)$ is obtained, and the SVD is performed on this real matrix.
|
||||
Unitary $\bm{U}$ and $\bm{V}$ matrices are then obtained such that $\bm{V}^{-\intercal} \tilde{\bm{G}}(\omega_c) \bm{U}^{-1}$ is diagonal.
|
||||
|
||||
Use the singular input and output matrices to decouple the system as shown in Figure ref:fig:detail_control_decoupling_svd
|
||||
|
||||
\begin{equation}
|
||||
G_{\text{SVD}}(s) = \bm{U}^{-1} \bm{G}_{\{\mathcal{L}\}}(s) \bm{V}^{-\intercal}
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_svd}
|
||||
\bm{G}_{\text{SVD}}(s) = \bm{U}^{-1} \bm{G}_{\{\mathcal{L}\}}(s) \bm{V}^{-\intercal}
|
||||
\end{equation}
|
||||
|
||||
#+begin_src latex :file detail_control_decoupling_svd.pdf
|
||||
@ -3032,30 +2966,25 @@ Use the singular input and output matrices to decouple the system as shown in Fi
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_svd.png]]
|
||||
|
||||
In order to apply the Singular Value Decomposition, we need to have the Frequency Response Function of the system, at least near the frequency where we wish to decouple the system.
|
||||
The FRF can be experimentally obtained or based from a model.
|
||||
|
||||
This method ensure good decoupling near the chosen frequency, but no guaranteed decoupling away from this frequency.
|
||||
|
||||
Also, it depends on how good the real approximation of the FRF is, therefore it might be less good for plants with high damping.
|
||||
|
||||
This method is quite general and can be applied to any type of system.
|
||||
The inputs and outputs are ordered from higher gain to lower gain at the chosen frequency.
|
||||
|
||||
- [ ] Do we loose any physical meaning of the obtained inputs and outputs?
|
||||
- [ ] Can we take advantage of the fact that U and V are unitary?
|
||||
Implementation of SVD decoupling requires access to the system's FRF, at least in the vicinity of the desired decoupling frequency.
|
||||
This information can be obtained either experimentally or derived from a model.
|
||||
While this approach ensures effective decoupling near the chosen frequency, it provides no guarantees regarding decoupling performance away from this frequency.
|
||||
Furthermore, the quality of decoupling depends significantly on the accuracy of the real approximation, potentially limiting its effectiveness for plants with high damping.
|
||||
|
||||
**** Example
|
||||
|
||||
Plant decoupling using the Singular Value Decomposition was then applied on the test model.
|
||||
A decoupling frequency of $\SI{100}{Hz}$ was used.
|
||||
The plant response at that frequency, as well as its real approximation and the obtained $\bm{U}$ and $\bm{V}$ matrices are shown in eqref:eq:detail_control_decoupling_svd_example.
|
||||
|
||||
\begin{equation}
|
||||
\begin{equation}\label{eq:detail_control_decoupling_svd_example}
|
||||
\begin{align}
|
||||
& \bm{G}_{\{\mathcal{L}\}}(\omega_c) = 10^{-9} \begin{bmatrix}
|
||||
& \bm{G}_{\{\mathcal{L}\}}(\omega_c = 2\pi \cdot 100) = 10^{-9} \begin{bmatrix}
|
||||
-99 - j 2.6 & 74 + j 4.2 & -74 - j 4.2 \\
|
||||
74 + j 4.2 & -247 - j 9.7 & 102 + j 7.0 \\
|
||||
-74 - j 4.2 & 102 + j 7.0 & -247 - j 9.7
|
||||
\end{bmatrix} \\
|
||||
& \xrightarrow[\text{approximation}]{\text{real}} \tilde{\bm{G}}_{\{\mathcal{L}\}(\omega_c)} = 10^{-9} \begin{bmatrix}
|
||||
& \xrightarrow[\text{approximation}]{\text{real}} \tilde{\bm{G}}_{\{\mathcal{L}\}}(\omega_c) = 10^{-9} \begin{bmatrix}
|
||||
-99 & 74 & -74 \\
|
||||
74 & -247 & 102 \\
|
||||
-74 & 102 & -247
|
||||
@ -3072,14 +3001,9 @@ The inputs and outputs are ordered from higher gain to lower gain at the chosen
|
||||
\end{align}
|
||||
\end{equation}
|
||||
|
||||
Once the $\bm{U}$ and $\bm{V}$ matrices are obtained, the decoupled plant can be computed using eqref:eq:detail_control_decoupling_plant_svd.
|
||||
|
||||
\begin{equation}\label{eq:detail_control_decoupling_plant_svd}
|
||||
\bm{G}_{\text{SVD}}(s) = \bm{U}^{-1} \bm{G}_{\{\mathcal{L}\}}(s) \bm{V}^{-\intercal}
|
||||
\end{equation}
|
||||
|
||||
The obtained plant shown in Figure ref:fig:detail_control_decoupling_svd_plant is very well decoupled. and not only around $\omega_c$.
|
||||
On top of that, the diagonal terms are second order plants.
|
||||
Using these $\bm{U}$ and $\bm{V}$ matrices, the decoupled plant is computed according to equation eqref:eq:detail_control_decoupling_plant_svd.
|
||||
The resulting plant, depicted in Figure ref:fig:detail_control_decoupling_svd_plant, exhibits remarkable decoupling across a broad frequency range, extending well beyond the vicinity of $\omega_c$.
|
||||
Additionally, the diagonal terms manifest as second-order dynamic systems, facilitating straightforward controller design.
|
||||
|
||||
#+begin_src matlab
|
||||
%% SVD Decoupling
|
||||
@ -3124,30 +3048,14 @@ exportFig('figs/detail_control_decoupling_svd_plant.pdf', 'width', 'wide', 'heig
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_decoupling_svd_plant
|
||||
#+caption: Svd plant $G_m(s)$
|
||||
#+caption: Plant dynamics $\bm{G}_{\text{SVD}}(s)$ obtained after decoupling using Singular Value Decomposition
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_svd_plant.png]]
|
||||
|
||||
|
||||
|
||||
- [ ] Do we have something special when applying SVD to a collocated MIMO system?
|
||||
As shown in Figure ref:fig:detail_control_decoupling_coupled_plant_bode, the plant is symmetrical.
|
||||
Paper by Skogestad mention that.
|
||||
"symmetric circular plants" [[cite:&hovd97_svd_contr_contr]]
|
||||
|
||||
|
||||
|
||||
|
||||
A second system, identical to the first in terms of dynamics.
|
||||
Just the sensor are changed.
|
||||
Instead of having relative motion sensors in the frame of the struts, three relative motion sensors are used as shown in Figure ref:fig:detail_control_decoupling_model_test_alt.
|
||||
Using Jacobian matrices, it is possible to compute the relative motion of each struts.
|
||||
So theoretically, it should be possible to control both systems the same way.
|
||||
|
||||
However, when applying the same SVD decoupling, plant of Figure ref:fig:detail_control_decoupling_svd_alt_plant is obtained.
|
||||
It has much more coupling.
|
||||
It is interesting to note that the coupling have local minimum near the chosen decoupling frequency.
|
||||
This is very logical as the decoupling matrices were computed from the plant response at that particular frequency.
|
||||
As it was surprising to obtain such a good decoupling at all frequencies, a variant system with identical dynamics but different sensor configurations was examined.
|
||||
Instead of using relative motion sensors aligned with the struts, three relative motion sensors were positioned as shown in Figure ref:fig:detail_control_decoupling_model_test_alt.
|
||||
Although Jacobian matrices could theoretically map between these different sensor arrangements, application of the same SVD decoupling procedure yielded the plant response shown in Figure ref:fig:detail_control_decoupling_svd_alt_plant, which exhibits significantly greater coupling.
|
||||
Notably, the coupling demonstrates local minima near the decoupling frequency, consistent with the fact that the decoupling matrices were derived specifically for that frequency point.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Simscape model with relative motion sensor at alternative positions
|
||||
@ -3229,44 +3137,34 @@ exportFig('figs/detail_control_decoupling_svd_alt_plant.pdf', 'width', 'half', '
|
||||
#+end_subfigure
|
||||
#+end_figure
|
||||
|
||||
The exceptional performance of SVD decoupling on the plant with collocated sensors warrants further investigation.
|
||||
This effectiveness may be attributed to the symmetrical properties of the plant, as evidenced in the Bode plots of the decentralized plant shown in Figure ref:fig:detail_control_decoupling_coupled_plant_bode.
|
||||
The phenomenon potentially relates to previous research on SVD controllers applied to systems with specific symmetrical characteristics [[cite:&hovd97_svd_contr_contr]].
|
||||
|
||||
** Comparison of decoupling strategies
|
||||
<<ssec:detail_control_decoupling_comp>>
|
||||
|
||||
The three proposed methods may seem very similar as each of them consists of pre-multiplying and post-multiplying the plant with constant matrices.
|
||||
However, the three methods also differs by a number of points which are summarized in Table ref:tab:detail_control_decoupling_strategies_comp.
|
||||
While the three proposed decoupling methods may appear similar in their mathematical implementation (each involving pre-multiplication and post-multiplication of the plant with constant matrices), they differ significantly in their underlying approaches and practical implications, as summarized in Table ref:tab:detail_control_decoupling_strategies_comp.
|
||||
|
||||
However, each method is quite different in terms of approach, and have different pros and cons.
|
||||
Each method employs a distinct conceptual framework: Jacobian decoupling is "topology-driven", relying on the geometric configuration of the system; modal decoupling is "physics-driven", based on the system's dynamical equations; and SVD decoupling is "data-driven", utilizing measured frequency response functions.
|
||||
|
||||
- Comparison of the three proposed methods
|
||||
- Different "approach" for the three methods:
|
||||
- Jacobian is based on geometry
|
||||
- Modal decoupling is based on dynamical equations
|
||||
- Singular Value Decoupling is based on measured frequency response function
|
||||
- Depending on the decoupling method, the physical interpretation of inputs and outputs:
|
||||
- With Jacobian decoupling, the inputs and outputs can be easily interpreted physically.
|
||||
Inputs correspond to force/torques applied on a particular frames
|
||||
Outputs corresponds to translation and rotations expressed on a particular frame
|
||||
- With modal decoupling, inputs are arranged to excite individual modes.
|
||||
By doing a modal analysis (using a FEA for instance) it can be understood how actuator forces are combined to individually excite the different modes.
|
||||
Similarly, the outputs are combined to measure the different modes separately.
|
||||
- For singular value decomposition, inputs (resp. outputs) are special directions that are ordered from maximum to minimum controllability (resp. observability), at the chosen frequency.
|
||||
For plants such as parallel manipulators, it is difficult to have a physical interpretations of the decoupled plants inputs and outputs.
|
||||
- [ ] It is really linked to controllability? (add reference about that)
|
||||
- Decoupling quality:
|
||||
- Jacobian: depending on the choice of frame, the plant may be well decoupled at low frequency (Center of Stiffness) or at high frequency (Center of Mass).
|
||||
If the system is designed to have both the CoK and the CoM at the same point, the use of Jacobian matrices may lead to excellent decoupling.
|
||||
- Modal: good decoupling is obtained for all frequencies.
|
||||
However, this is based on a model of the plant, and differences between the model and the physical implementation may lead to large off-diagonal elements.
|
||||
Diagonal elements are expected to be simple 2nd order low pass filters, which are easy to control.
|
||||
- SVD: as the decoupling matrices can be computed based on measured data, no model is required.
|
||||
Decoupling is expected to be good near the frequency chosen for computing the decoupling matrices, but may depend on how good the real approximation of the plant is for that particular frequency.
|
||||
Whether the decoupling quality can be guaranteed away from the chosen frequency is unknown.
|
||||
The physical interpretation of decoupled plant inputs and outputs varies considerably among these methods.
|
||||
With Jacobian decoupling, inputs and outputs retain clear physical meaning, corresponding to forces/torques and translations/rotations in a specified reference frame.
|
||||
Modal decoupling arranges inputs to excite individual modes, with outputs combined to measure these modes separately.
|
||||
For SVD decoupling, inputs and outputs represent special directions ordered by decreasing controllability and observability at the chosen frequency, though physical interpretation becomes challenging for parallel manipulators.
|
||||
|
||||
- "Frame" of the controllers: important to be able to tuned the controllers linked to performance metrics
|
||||
This difference in interpretation relates directly to the "control space" in which the controllers operate.
|
||||
When these "control spaces" meaningfully relate to the control objectives, controllers can be tuned to directly match specific requirements.
|
||||
For Jacobian decoupling, the controller typically operates in a frame positioned at the point where motion needs to be controlled, for instance where the light is focused in the NASS application.
|
||||
Modal decoupling provides a natural framework when specific vibrational modes require targeted control.
|
||||
SVD decoupling generally results in a loss of physical meaning for the "control space", potentially complicating the process of relating controller design to practical system requirements.
|
||||
|
||||
# Maybe not necessary
|
||||
There are other aspects that were not treated here such as:
|
||||
- how to integrate feedforward path and reference signals
|
||||
The quality of decoupling achieved through these methods also exhibits distinct characteristics.
|
||||
Jacobian decoupling performance depends on the chosen reference frame, with optimal decoupling at low frequencies when aligned at the center of stiffness, or at high frequencies when aligned with the center of mass.
|
||||
Systems designed with coincident centers of mass and stiffness may achieve excellent decoupling using this approach.
|
||||
Modal decoupling offers good decoupling across all frequencies, though its effectiveness relies on the accuracy of the system model, with discrepancies potentially resulting in significant off-diagonal elements.
|
||||
The diagonal elements typically manifest as second-order low-pass filters, facilitating straightforward control design.
|
||||
SVD decoupling can be implemented using measured data without requiring a model, with optimal performance near the chosen decoupling frequency, though its effectiveness may diminish at other frequencies and depends on the quality of the real approximation of the response at the selected frequency point.
|
||||
|
||||
#+name: tab:detail_control_decoupling_strategies_comp
|
||||
#+caption: Comparison of decoupling strategies
|
||||
@ -3302,11 +3200,6 @@ There are other aspects that were not treated here such as:
|
||||
| *Applicability* | Parallel Mechanisms | Systems whose dynamics that can be expressed with M and K matrices | Very general |
|
||||
| | Only small motion for the Jacobian matrix to stay constant | | Need FRF data (either experimentally or analytically) |
|
||||
|
||||
Conclusion about NASS:
|
||||
- Prefer to use Jacobian decoupling as we get more physical interpretation
|
||||
- Also, it is possible to take into account different specifications in the different DoF as the control is in a "frame" which corresponds to the specifications.
|
||||
For active damping however, it may be reasonable to work in the modal space as different damping may be applied to different modes [[cite:&holterman05_activ_dampin_based_decoup_colloc_contr]].
|
||||
|
||||
* Closed-Loop Shaping using Complementary Filters
|
||||
:PROPERTIES:
|
||||
:HEADER-ARGS:matlab+: :tangle matlab/detail_control_3_close_loop_shaping.m
|
||||
@ -4541,5 +4434,5 @@ colors = colororder;
|
||||
#+END_SRC
|
||||
|
||||
* Footnotes
|
||||
|
||||
[fn:detail_control_2]$n$ corresponds to the number of degrees of freedom, here $n = 3$
|
||||
[fn:detail_control_1]A set of two complementary filters are two transfer functions that sum to one.
|
||||
|
BIN
nass-control.pdf
BIN
nass-control.pdf
Binary file not shown.
658
nass-control.tex
658
nass-control.tex
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user