Add section about decoupling
3760
figs/detail_control_coupled_plant_bode.pdf
Normal file
BIN
figs/detail_control_coupled_plant_bode.png
Normal file
After Width: | Height: | Size: 134 KiB |
BIN
figs/detail_control_decoupling_modal.pdf
Normal file
BIN
figs/detail_control_decoupling_modal.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
114
figs/detail_control_decoupling_modal.svg
Normal file
@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="197.741" height="54.778" viewBox="0 0 197.741 54.778">
|
||||
<defs>
|
||||
<g>
|
||||
<g id="glyph-0-0">
|
||||
<path d="M 7.296875 -2.078125 C 7.328125 -2.234375 7.34375 -2.25 7.40625 -2.25 C 7.53125 -2.265625 7.671875 -2.265625 7.78125 -2.265625 C 8.03125 -2.265625 8.203125 -2.265625 8.203125 -2.5625 C 8.203125 -2.609375 8.171875 -2.734375 7.984375 -2.734375 C 7.765625 -2.734375 7.546875 -2.71875 7.3125 -2.71875 C 7.09375 -2.71875 6.859375 -2.703125 6.640625 -2.703125 C 6.25 -2.703125 5.28125 -2.734375 4.875 -2.734375 C 4.765625 -2.734375 4.578125 -2.734375 4.578125 -2.453125 C 4.578125 -2.265625 4.75 -2.265625 4.90625 -2.265625 L 5.28125 -2.265625 C 5.390625 -2.265625 5.9375 -2.265625 5.9375 -2.21875 C 5.9375 -2.203125 5.9375 -2.1875 5.859375 -1.9375 C 5.859375 -1.875 5.6875 -1.234375 5.6875 -1.234375 C 5.515625 -0.5625 4.71875 -0.296875 4.09375 -0.296875 C 3.515625 -0.296875 2.921875 -0.421875 2.453125 -0.796875 C 1.9375 -1.234375 1.9375 -1.921875 1.9375 -2.140625 C 1.9375 -2.59375 2.140625 -4.359375 3.109375 -5.453125 C 3.6875 -6.09375 4.640625 -6.515625 5.640625 -6.515625 C 6.890625 -6.515625 7.359375 -5.546875 7.359375 -4.734375 C 7.359375 -4.625 7.328125 -4.46875 7.328125 -4.375 C 7.328125 -4.234375 7.46875 -4.234375 7.59375 -4.234375 C 7.8125 -4.234375 7.828125 -4.234375 7.875 -4.4375 L 8.4375 -6.671875 C 8.453125 -6.734375 8.46875 -6.78125 8.46875 -6.84375 C 8.46875 -6.96875 8.328125 -6.96875 8.21875 -6.96875 L 7.296875 -6.265625 C 7.109375 -6.453125 6.59375 -6.96875 5.484375 -6.96875 C 2.3125 -6.96875 0.546875 -4.546875 0.546875 -2.515625 C 0.546875 -0.6875 1.9375 0.171875 3.796875 0.171875 C 4.828125 0.171875 5.53125 -0.171875 5.84375 -0.515625 C 6.09375 -0.265625 6.59375 0 6.671875 0 C 6.765625 0 6.78125 -0.078125 6.828125 -0.234375 Z M 7.296875 -2.078125 "/>
|
||||
</g>
|
||||
<g id="glyph-0-1">
|
||||
<path d="M 3.46875 -3.453125 L 5.296875 -3.453125 C 5.5 -3.453125 5.640625 -3.453125 5.796875 -3.609375 C 6 -3.765625 6 -4 6 -4.015625 C 6 -4.40625 5.640625 -4.40625 5.46875 -4.40625 L 2.203125 -4.40625 C 2 -4.40625 1.5625 -4.40625 1.046875 -3.921875 C 0.6875 -3.609375 0.3125 -3.109375 0.3125 -3 C 0.3125 -2.875 0.421875 -2.875 0.53125 -2.875 C 0.6875 -2.875 0.6875 -2.875 0.78125 -2.984375 C 1.15625 -3.453125 1.8125 -3.453125 2 -3.453125 L 2.890625 -3.453125 L 2.546875 -2.40625 C 2.453125 -2.15625 2.234375 -1.515625 2.15625 -1.265625 C 2.046875 -0.953125 1.859375 -0.421875 1.859375 -0.3125 C 1.859375 -0.046875 2.078125 0.125 2.328125 0.125 C 2.390625 0.125 2.890625 0.125 3 -0.53125 Z M 3.46875 -3.453125 "/>
|
||||
</g>
|
||||
<g id="glyph-0-2">
|
||||
<path d="M 5.71875 -3.734375 C 5.78125 -3.921875 5.78125 -3.9375 5.78125 -3.96875 C 5.78125 -4.1875 5.609375 -4.40625 5.3125 -4.40625 C 4.796875 -4.40625 4.671875 -3.9375 4.609375 -3.671875 L 4.34375 -2.640625 C 4.234375 -2.15625 4.03125 -1.40625 3.921875 -0.984375 C 3.875 -0.78125 3.578125 -0.53125 3.546875 -0.515625 C 3.4375 -0.453125 3.1875 -0.28125 2.875 -0.28125 C 2.28125 -0.28125 2.265625 -0.78125 2.265625 -1 C 2.265625 -1.609375 2.578125 -2.375 2.859375 -3.09375 C 2.953125 -3.359375 2.984375 -3.421875 2.984375 -3.59375 C 2.984375 -4.171875 2.40625 -4.484375 1.859375 -4.484375 C 0.8125 -4.484375 0.3125 -3.140625 0.3125 -2.9375 C 0.3125 -2.796875 0.46875 -2.796875 0.5625 -2.796875 C 0.671875 -2.796875 0.75 -2.796875 0.78125 -2.921875 C 1.109375 -4.03125 1.65625 -4.125 1.8125 -4.125 C 1.875 -4.125 1.96875 -4.125 1.96875 -3.921875 C 1.96875 -3.6875 1.859375 -3.4375 1.8125 -3.28125 C 1.421875 -2.28125 1.203125 -1.71875 1.203125 -1.203125 C 1.203125 -0.078125 2.203125 0.078125 2.78125 0.078125 C 3.03125 0.078125 3.375 0.046875 3.734375 -0.21875 C 3.46875 1 2.71875 1.640625 2.03125 1.640625 C 1.90625 1.640625 1.625 1.625 1.421875 1.515625 C 1.75 1.375 1.90625 1.109375 1.90625 0.84375 C 1.90625 0.484375 1.625 0.390625 1.421875 0.390625 C 1.046875 0.390625 0.703125 0.703125 0.703125 1.140625 C 0.703125 1.640625 1.234375 2 2.03125 2 C 3.171875 2 4.484375 1.234375 4.796875 0.015625 Z M 5.71875 -3.734375 "/>
|
||||
</g>
|
||||
<g id="glyph-0-3">
|
||||
<path d="M 5.3125 -3.984375 C 4.953125 -3.875 4.78125 -3.546875 4.78125 -3.296875 C 4.78125 -3.078125 4.953125 -2.84375 5.28125 -2.84375 C 5.625 -2.84375 6 -3.125 6 -3.609375 C 6 -4.140625 5.46875 -4.484375 4.859375 -4.484375 C 4.296875 -4.484375 3.921875 -4.0625 3.796875 -3.875 C 3.546875 -4.296875 3 -4.484375 2.4375 -4.484375 C 1.1875 -4.484375 0.5 -3.265625 0.5 -2.9375 C 0.5 -2.796875 0.65625 -2.796875 0.75 -2.796875 C 0.859375 -2.796875 0.9375 -2.796875 0.96875 -2.921875 C 1.265625 -3.828125 1.96875 -4.125 2.375 -4.125 C 2.765625 -4.125 2.9375 -3.953125 2.9375 -3.625 C 2.9375 -3.4375 2.796875 -2.890625 2.703125 -2.546875 L 2.375 -1.1875 C 2.21875 -0.578125 1.859375 -0.28125 1.53125 -0.28125 C 1.484375 -0.28125 1.25 -0.28125 1.046875 -0.421875 C 1.40625 -0.53125 1.59375 -0.859375 1.59375 -1.109375 C 1.59375 -1.328125 1.421875 -1.5625 1.09375 -1.5625 C 0.75 -1.5625 0.375 -1.28125 0.375 -0.796875 C 0.375 -0.265625 0.90625 0.078125 1.515625 0.078125 C 2.078125 0.078125 2.4375 -0.34375 2.5625 -0.53125 C 2.8125 -0.109375 3.375 0.078125 3.9375 0.078125 C 5.1875 0.078125 5.859375 -1.140625 5.859375 -1.46875 C 5.859375 -1.609375 5.71875 -1.609375 5.625 -1.609375 C 5.5 -1.609375 5.4375 -1.609375 5.390625 -1.484375 C 5.109375 -0.578125 4.390625 -0.28125 3.984375 -0.28125 C 3.609375 -0.28125 3.4375 -0.453125 3.4375 -0.78125 C 3.4375 -0.984375 3.5625 -1.515625 3.65625 -1.875 C 3.71875 -2.140625 3.953125 -3.0625 4 -3.21875 C 4.140625 -3.8125 4.5 -4.125 4.84375 -4.125 C 4.890625 -4.125 5.125 -4.125 5.3125 -3.984375 Z M 5.3125 -3.984375 "/>
|
||||
</g>
|
||||
<g id="glyph-1-0">
|
||||
<path d="M 6.703125 -1 C 6.703125 -1.078125 6.625 -1.078125 6.59375 -1.078125 C 6.5 -1.078125 6.5 -1.046875 6.46875 -0.96875 C 6.3125 -0.40625 6 -0.125 5.734375 -0.125 C 5.578125 -0.125 5.5625 -0.21875 5.5625 -0.375 C 5.5625 -0.53125 5.59375 -0.625 5.71875 -0.9375 C 5.796875 -1.140625 6.078125 -1.890625 6.078125 -2.28125 C 6.078125 -2.390625 6.078125 -2.671875 5.828125 -2.875 C 5.703125 -2.96875 5.5 -3.0625 5.1875 -3.0625 C 4.546875 -3.0625 4.171875 -2.65625 3.953125 -2.359375 C 3.890625 -2.953125 3.40625 -3.0625 3.046875 -3.0625 C 2.46875 -3.0625 2.078125 -2.71875 1.875 -2.4375 C 1.828125 -2.90625 1.40625 -3.0625 1.125 -3.0625 C 0.828125 -3.0625 0.671875 -2.84375 0.578125 -2.6875 C 0.421875 -2.4375 0.328125 -2.03125 0.328125 -2 C 0.328125 -1.90625 0.421875 -1.90625 0.4375 -1.90625 C 0.546875 -1.90625 0.546875 -1.9375 0.59375 -2.125 C 0.703125 -2.53125 0.828125 -2.875 1.109375 -2.875 C 1.28125 -2.875 1.328125 -2.71875 1.328125 -2.53125 C 1.328125 -2.40625 1.265625 -2.140625 1.21875 -1.953125 L 1.078125 -1.328125 L 0.84375 -0.4375 C 0.828125 -0.34375 0.78125 -0.171875 0.78125 -0.15625 C 0.78125 0 0.90625 0.0625 1.015625 0.0625 C 1.140625 0.0625 1.25 -0.015625 1.28125 -0.078125 C 1.328125 -0.140625 1.375 -0.375 1.40625 -0.515625 L 1.5625 -1.140625 C 1.609375 -1.296875 1.640625 -1.453125 1.6875 -1.609375 C 1.765625 -1.890625 1.765625 -1.953125 1.96875 -2.234375 C 2.171875 -2.515625 2.5 -2.875 3.015625 -2.875 C 3.421875 -2.875 3.421875 -2.515625 3.421875 -2.390625 C 3.421875 -2.21875 3.40625 -2.125 3.3125 -1.734375 L 3.015625 -0.5625 C 2.984375 -0.421875 2.921875 -0.1875 2.921875 -0.15625 C 2.921875 0 3.046875 0.0625 3.15625 0.0625 C 3.28125 0.0625 3.390625 -0.015625 3.421875 -0.078125 C 3.46875 -0.140625 3.515625 -0.375 3.546875 -0.515625 L 3.703125 -1.140625 C 3.75 -1.296875 3.796875 -1.453125 3.828125 -1.609375 C 3.90625 -1.90625 3.90625 -1.921875 4.046875 -2.140625 C 4.265625 -2.46875 4.609375 -2.875 5.15625 -2.875 C 5.546875 -2.875 5.5625 -2.546875 5.5625 -2.390625 C 5.5625 -1.96875 5.265625 -1.203125 5.15625 -0.90625 C 5.078125 -0.703125 5.046875 -0.640625 5.046875 -0.53125 C 5.046875 -0.15625 5.359375 0.0625 5.703125 0.0625 C 6.40625 0.0625 6.703125 -0.890625 6.703125 -1 Z M 6.703125 -1 "/>
|
||||
</g>
|
||||
<g id="glyph-2-0">
|
||||
<path d="M 6.96875 -2.140625 C 6.96875 -2.859375 6.390625 -3.4375 5.421875 -3.546875 C 6.453125 -3.734375 7.5 -4.46875 7.5 -5.40625 C 7.5 -6.140625 6.84375 -6.78125 5.65625 -6.78125 L 2.328125 -6.78125 C 2.140625 -6.78125 2.03125 -6.78125 2.03125 -6.578125 C 2.03125 -6.46875 2.125 -6.46875 2.3125 -6.46875 C 2.3125 -6.46875 2.515625 -6.46875 2.6875 -6.453125 C 2.875 -6.421875 2.953125 -6.421875 2.953125 -6.296875 C 2.953125 -6.25 2.953125 -6.21875 2.921875 -6.109375 L 1.59375 -0.78125 C 1.484375 -0.390625 1.46875 -0.3125 0.6875 -0.3125 C 0.515625 -0.3125 0.421875 -0.3125 0.421875 -0.109375 C 0.421875 0 0.5 0 0.6875 0 L 4.234375 0 C 5.796875 0 6.96875 -1.171875 6.96875 -2.140625 Z M 6.59375 -5.453125 C 6.59375 -4.578125 5.75 -3.625 4.53125 -3.625 L 3.078125 -3.625 L 3.703125 -6.09375 C 3.796875 -6.4375 3.8125 -6.46875 4.234375 -6.46875 L 5.515625 -6.46875 C 6.390625 -6.46875 6.59375 -5.890625 6.59375 -5.453125 Z M 6.046875 -2.25 C 6.046875 -1.265625 5.15625 -0.3125 3.984375 -0.3125 L 2.640625 -0.3125 C 2.5 -0.3125 2.484375 -0.3125 2.421875 -0.3125 C 2.328125 -0.328125 2.296875 -0.34375 2.296875 -0.421875 C 2.296875 -0.453125 2.296875 -0.46875 2.34375 -0.640625 L 3.03125 -3.40625 L 4.90625 -3.40625 C 5.859375 -3.40625 6.046875 -2.671875 6.046875 -2.25 Z M 6.046875 -2.25 "/>
|
||||
</g>
|
||||
<g id="glyph-2-1">
|
||||
<path d="M 6.421875 -2.375 C 6.421875 -2.484375 6.296875 -2.484375 6.296875 -2.484375 C 6.234375 -2.484375 6.1875 -2.453125 6.171875 -2.375 C 6.078125 -2.09375 5.859375 -1.390625 5.171875 -0.8125 C 4.484375 -0.265625 3.859375 -0.09375 3.34375 -0.09375 C 2.453125 -0.09375 1.40625 -0.609375 1.40625 -2.15625 C 1.40625 -2.71875 1.609375 -4.328125 2.59375 -5.484375 C 3.203125 -6.1875 4.140625 -6.6875 5.015625 -6.6875 C 6.03125 -6.6875 6.625 -5.921875 6.625 -4.765625 C 6.625 -4.375 6.59375 -4.359375 6.59375 -4.265625 C 6.59375 -4.171875 6.703125 -4.171875 6.734375 -4.171875 C 6.859375 -4.171875 6.859375 -4.1875 6.921875 -4.359375 L 7.546875 -6.890625 C 7.546875 -6.921875 7.515625 -7 7.4375 -7 C 7.40625 -7 7.390625 -6.984375 7.28125 -6.875 L 6.59375 -6.109375 C 6.5 -6.25 6.046875 -7 4.9375 -7 C 2.734375 -7 0.5 -4.796875 0.5 -2.5 C 0.5 -0.859375 1.671875 0.21875 3.1875 0.21875 C 4.046875 0.21875 4.796875 -0.171875 5.328125 -0.640625 C 6.25 -1.453125 6.421875 -2.34375 6.421875 -2.375 Z M 6.421875 -2.375 "/>
|
||||
</g>
|
||||
<g id="glyph-3-0">
|
||||
<path d="M 5.453125 -1.734375 C 5.453125 -1.90625 5.296875 -1.90625 5.1875 -1.90625 L 1.015625 -1.90625 C 0.90625 -1.90625 0.75 -1.90625 0.75 -1.734375 C 0.75 -1.578125 0.921875 -1.578125 1.015625 -1.578125 L 5.1875 -1.578125 C 5.28125 -1.578125 5.453125 -1.578125 5.453125 -1.734375 Z M 5.453125 -1.734375 "/>
|
||||
</g>
|
||||
<g id="glyph-4-0">
|
||||
<path d="M 3.28125 0 L 3.28125 -0.25 L 3.03125 -0.25 C 2.328125 -0.25 2.328125 -0.34375 2.328125 -0.5625 L 2.328125 -4.421875 C 2.328125 -4.609375 2.3125 -4.609375 2.125 -4.609375 C 1.671875 -4.171875 1.046875 -4.171875 0.765625 -4.171875 L 0.765625 -3.921875 C 0.921875 -3.921875 1.390625 -3.921875 1.765625 -4.109375 L 1.765625 -0.5625 C 1.765625 -0.34375 1.765625 -0.25 1.078125 -0.25 L 0.8125 -0.25 L 0.8125 0 L 2.046875 -0.03125 Z M 3.28125 0 "/>
|
||||
</g>
|
||||
</g>
|
||||
<clipPath id="clip-0">
|
||||
<path clip-rule="nonzero" d="M 25 15 L 173 15 L 173 54.558594 L 25 54.558594 Z M 25 15 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-1">
|
||||
<path clip-rule="nonzero" d="M 0.269531 34 L 26 34 L 26 36 L 0.269531 36 Z M 0.269531 34 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-2">
|
||||
<path clip-rule="nonzero" d="M 176 19 L 197.214844 19 L 197.214844 51 L 176 51 Z M 176 19 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<path fill-rule="nonzero" fill="rgb(89.99939%, 89.99939%, 89.99939%)" fill-opacity="1" d="M 25.527344 53.5625 L 171.957031 53.5625 L 171.957031 16.398438 L 25.527344 16.398438 Z M 25.527344 53.5625 "/>
|
||||
<g clip-path="url(#clip-0)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-dasharray="2.98883 2.98883" stroke-miterlimit="10" d="M -73.510396 -18.656574 L 73.512731 -18.656574 L 73.512731 18.658104 L -73.510396 18.658104 Z M -73.510396 -18.656574 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-0" x="90.574123" y="10.612989"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="99.372466" y="12.100958"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.008898 -14.173635 L 17.00731 -14.173635 L 17.00731 14.175166 L -17.008898 14.175166 Z M -17.008898 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-0" x="94.341853" y="38.385435"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -69.027457 -14.173635 L -35.011249 -14.173635 L -35.011249 14.175166 L -69.027457 14.175166 Z M -69.027457 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-0" x="37.592841" y="37.793832"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-3-0" x="45.61732" y="34.192428"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-4-0" x="51.819092" y="34.192428"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="45.119339" y="40.246891"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 35.013584 -14.173635 L 69.029792 -14.173635 L 69.029792 14.175166 L 35.013584 14.175166 Z M 35.013584 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-1" x="141.324446" y="37.793832"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-3-0" x="149.125829" y="34.192428"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-4-0" x="155.327601" y="34.192428"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="148.415707" y="40.246891"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip-1)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -74.161461 0.000765138 L -97.874362 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.053535 0.000765138 L 1.609818 1.683338 L 3.088442 0.000765138 L 1.609818 -1.681808 Z M 6.053535 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 22.05293, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-1" x="5.067657" y="29.689676"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="10.235712" y="31.178642"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -34.513145 0.000765138 L -22.138979 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.051465 0.000765138 L 1.607747 1.683338 L 3.086372 0.000765138 L 1.607747 -1.681808 Z M 6.051465 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 73.863586, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-1" x="70.998458" y="31.178642"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 17.505415 0.000765138 L 29.87958 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.053326 0.000765138 L 1.609609 1.683338 L 3.088233 0.000765138 L 1.609609 -1.681808 Z M 6.053326 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 125.674232, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-2" x="123.087356" y="29.24946"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 69.527896 0.000765138 L 93.240798 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 98.741025, 34.981231)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 194.804688 34.980469 L 190.378906 33.304688 L 191.851562 34.980469 L 190.378906 36.65625 Z M 194.804688 34.980469 "/>
|
||||
<g clip-path="url(#clip-2)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.051442 0.000765138 L 1.607724 1.683338 L 3.086349 0.000765138 L 1.607724 -1.681808 Z M 6.051442 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 188.777671, 34.981231)"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-3" x="178.339435" y="29.689676"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="184.877936" y="31.178642"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
BIN
figs/detail_control_decoupling_svd.pdf
Normal file
BIN
figs/detail_control_decoupling_svd.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
120
figs/detail_control_decoupling_svd.svg
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="186.403" height="54.778" viewBox="0 0 186.403 54.778">
|
||||
<defs>
|
||||
<g>
|
||||
<g id="glyph-0-0">
|
||||
<path d="M 7.296875 -2.078125 C 7.328125 -2.234375 7.34375 -2.25 7.40625 -2.25 C 7.53125 -2.265625 7.671875 -2.265625 7.78125 -2.265625 C 8.03125 -2.265625 8.203125 -2.265625 8.203125 -2.5625 C 8.203125 -2.609375 8.171875 -2.734375 7.984375 -2.734375 C 7.765625 -2.734375 7.546875 -2.71875 7.3125 -2.71875 C 7.09375 -2.71875 6.859375 -2.703125 6.640625 -2.703125 C 6.25 -2.703125 5.28125 -2.734375 4.875 -2.734375 C 4.765625 -2.734375 4.578125 -2.734375 4.578125 -2.453125 C 4.578125 -2.265625 4.75 -2.265625 4.90625 -2.265625 L 5.28125 -2.265625 C 5.390625 -2.265625 5.9375 -2.265625 5.9375 -2.21875 C 5.9375 -2.203125 5.9375 -2.1875 5.859375 -1.9375 C 5.859375 -1.875 5.6875 -1.234375 5.6875 -1.234375 C 5.515625 -0.5625 4.71875 -0.296875 4.09375 -0.296875 C 3.515625 -0.296875 2.921875 -0.421875 2.453125 -0.796875 C 1.9375 -1.234375 1.9375 -1.921875 1.9375 -2.140625 C 1.9375 -2.59375 2.140625 -4.359375 3.109375 -5.453125 C 3.6875 -6.09375 4.640625 -6.515625 5.640625 -6.515625 C 6.890625 -6.515625 7.359375 -5.546875 7.359375 -4.734375 C 7.359375 -4.625 7.328125 -4.46875 7.328125 -4.375 C 7.328125 -4.234375 7.46875 -4.234375 7.59375 -4.234375 C 7.8125 -4.234375 7.828125 -4.234375 7.875 -4.4375 L 8.4375 -6.671875 C 8.453125 -6.734375 8.46875 -6.78125 8.46875 -6.84375 C 8.46875 -6.96875 8.328125 -6.96875 8.21875 -6.96875 L 7.296875 -6.265625 C 7.109375 -6.453125 6.59375 -6.96875 5.484375 -6.96875 C 2.3125 -6.96875 0.546875 -4.546875 0.546875 -2.515625 C 0.546875 -0.6875 1.9375 0.171875 3.796875 0.171875 C 4.828125 0.171875 5.53125 -0.171875 5.84375 -0.515625 C 6.09375 -0.265625 6.59375 0 6.671875 0 C 6.765625 0 6.78125 -0.078125 6.828125 -0.234375 Z M 7.296875 -2.078125 "/>
|
||||
</g>
|
||||
<g id="glyph-1-0">
|
||||
<path d="M 4.3125 -1.578125 C 4.3125 -1.890625 4.1875 -2.171875 4.046875 -2.328125 C 3.796875 -2.578125 3.6875 -2.609375 2.796875 -2.8125 C 2.65625 -2.84375 2.421875 -2.90625 2.359375 -2.921875 C 2.1875 -2.984375 1.890625 -3.15625 1.890625 -3.5625 C 1.890625 -4.109375 2.515625 -4.671875 3.234375 -4.671875 C 3.984375 -4.671875 4.34375 -4.234375 4.34375 -3.578125 C 4.34375 -3.484375 4.3125 -3.328125 4.3125 -3.265625 C 4.3125 -3.171875 4.40625 -3.171875 4.4375 -3.171875 C 4.546875 -3.171875 4.546875 -3.203125 4.578125 -3.328125 L 4.9375 -4.796875 C 4.9375 -4.828125 4.921875 -4.890625 4.84375 -4.890625 C 4.8125 -4.890625 4.796875 -4.875 4.703125 -4.796875 L 4.359375 -4.390625 C 4.109375 -4.765625 3.671875 -4.890625 3.234375 -4.890625 C 2.265625 -4.890625 1.390625 -4.09375 1.390625 -3.296875 C 1.390625 -3.1875 1.40625 -2.90625 1.625 -2.65625 C 1.859375 -2.375 2.109375 -2.3125 2.59375 -2.203125 L 3.171875 -2.0625 C 3.40625 -2.015625 3.828125 -1.859375 3.828125 -1.328125 C 3.828125 -0.765625 3.234375 -0.109375 2.4375 -0.109375 C 1.828125 -0.109375 1.09375 -0.328125 1.09375 -1.09375 C 1.09375 -1.171875 1.109375 -1.328125 1.140625 -1.453125 C 1.140625 -1.46875 1.140625 -1.484375 1.140625 -1.484375 C 1.140625 -1.578125 1.0625 -1.578125 1.03125 -1.578125 C 0.9375 -1.578125 0.921875 -1.5625 0.890625 -1.4375 L 0.546875 -0.046875 C 0.53125 -0.015625 0.515625 0.015625 0.515625 0.0625 C 0.515625 0.09375 0.546875 0.140625 0.625 0.140625 C 0.65625 0.140625 0.671875 0.125 0.765625 0.046875 C 0.828125 -0.046875 1.015625 -0.265625 1.09375 -0.34375 C 1.453125 0.0625 2 0.140625 2.421875 0.140625 C 3.46875 0.140625 4.3125 -0.765625 4.3125 -1.578125 Z M 4.3125 -1.578125 "/>
|
||||
</g>
|
||||
<g id="glyph-1-1">
|
||||
<path d="M 5.984375 -4.65625 C 5.984375 -4.671875 5.96875 -4.75 5.890625 -4.75 C 5.71875 -4.75 5.5 -4.71875 5.328125 -4.71875 C 5.109375 -4.71875 4.8125 -4.75 4.609375 -4.75 C 4.546875 -4.75 4.46875 -4.734375 4.46875 -4.59375 C 4.46875 -4.5 4.5625 -4.5 4.59375 -4.5 C 4.8125 -4.484375 4.875 -4.40625 4.875 -4.296875 C 4.875 -4.203125 4.828125 -4.125 4.75 -4.015625 L 2.46875 -0.65625 L 1.84375 -4.203125 C 1.828125 -4.265625 1.828125 -4.28125 1.828125 -4.3125 C 1.828125 -4.5 2.21875 -4.5 2.265625 -4.5 C 2.390625 -4.5 2.46875 -4.5 2.46875 -4.65625 C 2.46875 -4.65625 2.46875 -4.75 2.359375 -4.75 C 2.15625 -4.75 1.65625 -4.71875 1.453125 -4.71875 C 1.28125 -4.71875 0.859375 -4.75 0.6875 -4.75 C 0.625 -4.75 0.546875 -4.734375 0.546875 -4.59375 C 0.546875 -4.5 0.640625 -4.5 0.71875 -4.5 C 1.109375 -4.5 1.125 -4.453125 1.15625 -4.28125 L 1.90625 -0.046875 C 1.9375 0.09375 1.953125 0.140625 2.078125 0.140625 C 2.21875 0.140625 2.25 0.09375 2.3125 -0.015625 L 4.96875 -3.921875 C 5.234375 -4.296875 5.453125 -4.46875 5.828125 -4.5 C 5.90625 -4.5 5.984375 -4.515625 5.984375 -4.65625 Z M 5.984375 -4.65625 "/>
|
||||
</g>
|
||||
<g id="glyph-1-2">
|
||||
<path d="M 6.203125 -2.9375 C 6.203125 -3.953125 5.5 -4.75 4.375 -4.75 L 1.84375 -4.75 C 1.703125 -4.75 1.625 -4.75 1.625 -4.59375 C 1.625 -4.5 1.703125 -4.5 1.84375 -4.5 C 1.953125 -4.5 1.984375 -4.5 2.109375 -4.484375 C 2.25 -4.46875 2.265625 -4.453125 2.265625 -4.390625 C 2.265625 -4.390625 2.265625 -4.34375 2.234375 -4.234375 L 1.3125 -0.546875 C 1.265625 -0.3125 1.25 -0.25 0.703125 -0.25 C 0.578125 -0.25 0.5 -0.25 0.5 -0.09375 C 0.5 0 0.578125 0 0.703125 0 L 3.1875 0 C 4.734375 0 6.203125 -1.421875 6.203125 -2.9375 Z M 5.546875 -3.15625 C 5.546875 -3 5.484375 -1.796875 4.78125 -1.015625 C 4.515625 -0.703125 3.921875 -0.25 3.0625 -0.25 L 2.109375 -0.25 C 1.890625 -0.25 1.890625 -0.25 1.890625 -0.3125 C 1.890625 -0.3125 1.890625 -0.359375 1.921875 -0.46875 L 2.875 -4.265625 C 2.921875 -4.484375 2.9375 -4.5 3.21875 -4.5 L 4.109375 -4.5 C 4.890625 -4.5 5.546875 -4.109375 5.546875 -3.15625 Z M 5.546875 -3.15625 "/>
|
||||
</g>
|
||||
<g id="glyph-1-3">
|
||||
<path d="M 5.3125 -3.28125 L 5.5 -4.609375 C 5.5 -4.703125 5.40625 -4.703125 5.28125 -4.703125 L 1.015625 -4.703125 C 0.828125 -4.703125 0.828125 -4.703125 0.765625 -4.546875 L 0.328125 -3.328125 C 0.328125 -3.296875 0.296875 -3.234375 0.296875 -3.203125 C 0.296875 -3.171875 0.3125 -3.09375 0.421875 -3.09375 C 0.5 -3.09375 0.515625 -3.140625 0.5625 -3.265625 C 0.96875 -4.375 1.203125 -4.453125 2.25 -4.453125 L 2.546875 -4.453125 C 2.75 -4.453125 2.765625 -4.4375 2.765625 -4.375 C 2.765625 -4.375 2.765625 -4.34375 2.734375 -4.234375 L 1.8125 -0.578125 C 1.75 -0.3125 1.734375 -0.25 1 -0.25 C 0.75 -0.25 0.6875 -0.25 0.6875 -0.09375 C 0.6875 -0.078125 0.703125 0 0.8125 0 C 1 0 1.203125 -0.015625 1.40625 -0.015625 L 2 -0.03125 L 2.625 -0.015625 C 2.8125 -0.015625 3.03125 0 3.21875 0 C 3.265625 0 3.375 0 3.375 -0.15625 C 3.375 -0.25 3.296875 -0.25 3.09375 -0.25 C 2.953125 -0.25 2.8125 -0.25 2.6875 -0.265625 C 2.453125 -0.28125 2.4375 -0.3125 2.4375 -0.390625 C 2.4375 -0.4375 2.4375 -0.453125 2.46875 -0.5625 L 3.375 -4.203125 C 3.421875 -4.40625 3.4375 -4.421875 3.59375 -4.4375 C 3.625 -4.453125 3.875 -4.453125 4.015625 -4.453125 C 4.4375 -4.453125 4.609375 -4.453125 4.796875 -4.390625 C 5.109375 -4.296875 5.125 -4.09375 5.125 -3.84375 C 5.125 -3.734375 5.125 -3.640625 5.0625 -3.28125 L 5.0625 -3.203125 C 5.0625 -3.140625 5.109375 -3.09375 5.171875 -3.09375 C 5.28125 -3.09375 5.296875 -3.15625 5.3125 -3.28125 Z M 5.3125 -3.28125 "/>
|
||||
</g>
|
||||
<g id="glyph-2-0">
|
||||
<path d="M 7.625 -6.65625 C 7.625 -6.734375 7.578125 -6.78125 7.5 -6.78125 C 7.25 -6.78125 6.953125 -6.75 6.6875 -6.75 C 6.359375 -6.75 6.015625 -6.78125 5.703125 -6.78125 C 5.640625 -6.78125 5.515625 -6.78125 5.515625 -6.59375 C 5.515625 -6.484375 5.609375 -6.46875 5.671875 -6.46875 C 5.9375 -6.453125 6.125 -6.34375 6.125 -6.140625 C 6.125 -6 5.984375 -5.765625 5.984375 -5.765625 L 2.9375 -0.921875 L 2.265625 -6.171875 C 2.265625 -6.34375 2.484375 -6.46875 2.953125 -6.46875 C 3.078125 -6.46875 3.1875 -6.46875 3.1875 -6.671875 C 3.1875 -6.75 3.109375 -6.78125 3.0625 -6.78125 C 2.65625 -6.78125 2.234375 -6.75 1.828125 -6.75 C 1.640625 -6.75 1.453125 -6.75 1.28125 -6.75 C 1.09375 -6.75 0.90625 -6.78125 0.75 -6.78125 C 0.671875 -6.78125 0.5625 -6.78125 0.5625 -6.59375 C 0.5625 -6.46875 0.640625 -6.46875 0.796875 -6.46875 C 1.359375 -6.46875 1.375 -6.375 1.40625 -6.125 L 2.1875 -0.015625 C 2.21875 0.1875 2.25 0.21875 2.375 0.21875 C 2.546875 0.21875 2.578125 0.171875 2.65625 0.046875 L 6.234375 -5.640625 C 6.71875 -6.421875 7.140625 -6.453125 7.5 -6.46875 C 7.625 -6.484375 7.625 -6.65625 7.625 -6.65625 Z M 7.625 -6.65625 "/>
|
||||
</g>
|
||||
<g id="glyph-2-1">
|
||||
<path d="M 7.546875 -6.671875 C 7.546875 -6.671875 7.546875 -6.78125 7.40625 -6.78125 C 7.078125 -6.78125 6.734375 -6.75 6.40625 -6.75 C 6.0625 -6.75 5.6875 -6.78125 5.375 -6.78125 C 5.3125 -6.78125 5.1875 -6.78125 5.1875 -6.578125 C 5.1875 -6.46875 5.28125 -6.46875 5.375 -6.46875 C 5.9375 -6.453125 6.046875 -6.25 6.046875 -6.03125 C 6.046875 -6 6.015625 -5.859375 6.015625 -5.828125 L 5.125 -2.28125 C 4.78125 -0.953125 3.640625 -0.09375 2.65625 -0.09375 C 1.96875 -0.09375 1.4375 -0.53125 1.4375 -1.375 C 1.4375 -1.375 1.4375 -1.71875 1.546875 -2.15625 L 2.515625 -6.015625 C 2.59375 -6.375 2.625 -6.46875 3.34375 -6.46875 C 3.609375 -6.46875 3.6875 -6.46875 3.6875 -6.671875 C 3.6875 -6.78125 3.578125 -6.78125 3.546875 -6.78125 L 2.265625 -6.75 L 0.984375 -6.78125 C 0.90625 -6.78125 0.796875 -6.78125 0.796875 -6.578125 C 0.796875 -6.46875 0.890625 -6.46875 1.078125 -6.46875 C 1.078125 -6.46875 1.296875 -6.46875 1.453125 -6.453125 C 1.640625 -6.421875 1.71875 -6.421875 1.71875 -6.296875 C 1.71875 -6.234375 1.625 -5.8125 1.5625 -5.59375 L 1.34375 -4.71875 L 0.734375 -2.265625 C 0.671875 -1.984375 0.671875 -1.828125 0.671875 -1.6875 C 0.671875 -0.46875 1.5625 0.21875 2.609375 0.21875 C 3.859375 0.21875 5.09375 -0.90625 5.421875 -2.21875 L 6.296875 -5.734375 C 6.40625 -6.140625 6.578125 -6.4375 7.375 -6.46875 C 7.421875 -6.46875 7.546875 -6.484375 7.546875 -6.671875 Z M 7.546875 -6.671875 "/>
|
||||
</g>
|
||||
<g id="glyph-2-2">
|
||||
<path d="M 5.390625 -1.421875 C 5.390625 -1.515625 5.296875 -1.515625 5.265625 -1.515625 C 5.171875 -1.515625 5.15625 -1.484375 5.125 -1.34375 C 4.984375 -0.78125 4.796875 -0.109375 4.390625 -0.109375 C 4.171875 -0.109375 4.078125 -0.234375 4.078125 -0.5625 C 4.078125 -0.78125 4.203125 -1.25 4.28125 -1.59375 L 4.546875 -2.671875 C 4.578125 -2.8125 4.6875 -3.1875 4.71875 -3.34375 C 4.765625 -3.578125 4.875 -3.953125 4.875 -4.015625 C 4.875 -4.1875 4.734375 -4.28125 4.578125 -4.28125 C 4.53125 -4.28125 4.28125 -4.265625 4.203125 -3.921875 L 3.453125 -0.9375 C 3.4375 -0.90625 3.046875 -0.109375 2.328125 -0.109375 C 1.8125 -0.109375 1.703125 -0.5625 1.703125 -0.921875 C 1.703125 -1.484375 1.984375 -2.265625 2.25 -2.953125 C 2.359375 -3.25 2.40625 -3.390625 2.40625 -3.578125 C 2.40625 -4.015625 2.09375 -4.390625 1.59375 -4.390625 C 0.65625 -4.390625 0.28125 -2.953125 0.28125 -2.859375 C 0.28125 -2.765625 0.40625 -2.765625 0.40625 -2.765625 C 0.5 -2.765625 0.515625 -2.78125 0.5625 -2.9375 C 0.8125 -3.796875 1.1875 -4.171875 1.5625 -4.171875 C 1.65625 -4.171875 1.8125 -4.15625 1.8125 -3.84375 C 1.8125 -3.609375 1.703125 -3.3125 1.640625 -3.171875 C 1.28125 -2.1875 1.078125 -1.5625 1.078125 -1.078125 C 1.078125 -0.140625 1.75 0.109375 2.296875 0.109375 C 2.953125 0.109375 3.296875 -0.34375 3.46875 -0.5625 C 3.578125 -0.15625 3.921875 0.109375 4.359375 0.109375 C 4.703125 0.109375 4.9375 -0.125 5.09375 -0.4375 C 5.265625 -0.796875 5.390625 -1.421875 5.390625 -1.421875 Z M 5.390625 -1.421875 "/>
|
||||
</g>
|
||||
<g id="glyph-2-3">
|
||||
<path d="M 5.0625 -4.03125 C 5.0625 -4.28125 4.859375 -4.28125 4.671875 -4.28125 L 1.890625 -4.28125 C 1.703125 -4.28125 1.3125 -4.28125 0.875 -3.8125 C 0.546875 -3.453125 0.265625 -2.96875 0.265625 -2.921875 C 0.265625 -2.921875 0.265625 -2.8125 0.390625 -2.8125 C 0.46875 -2.8125 0.484375 -2.859375 0.546875 -2.9375 C 1.03125 -3.703125 1.59375 -3.703125 1.8125 -3.703125 L 2.625 -3.703125 L 1.65625 -0.515625 C 1.625 -0.390625 1.5625 -0.1875 1.5625 -0.15625 C 1.5625 -0.046875 1.625 0.125 1.84375 0.125 C 2.171875 0.125 2.21875 -0.15625 2.25 -0.3125 L 2.921875 -3.703125 L 4.578125 -3.703125 C 4.71875 -3.703125 5.0625 -3.703125 5.0625 -4.03125 Z M 5.0625 -4.03125 "/>
|
||||
</g>
|
||||
<g id="glyph-2-4">
|
||||
<path d="M 4.9375 -1.421875 C 4.9375 -1.515625 4.859375 -1.515625 4.828125 -1.515625 C 4.71875 -1.515625 4.71875 -1.484375 4.6875 -1.34375 C 4.515625 -0.6875 4.328125 -0.109375 3.921875 -0.109375 C 3.65625 -0.109375 3.625 -0.359375 3.625 -0.5625 C 3.625 -0.78125 3.65625 -0.859375 3.765625 -1.296875 L 3.984375 -2.1875 L 4.328125 -3.578125 C 4.40625 -3.859375 4.40625 -3.875 4.40625 -3.921875 C 4.40625 -4.09375 4.28125 -4.1875 4.125 -4.1875 C 3.875 -4.1875 3.734375 -3.96875 3.703125 -3.75 C 3.515625 -4.125 3.234375 -4.390625 2.78125 -4.390625 C 1.625 -4.390625 0.390625 -2.921875 0.390625 -1.484375 C 0.390625 -0.546875 0.9375 0.109375 1.71875 0.109375 C 1.921875 0.109375 2.40625 0.0625 3 -0.640625 C 3.078125 -0.21875 3.4375 0.109375 3.90625 0.109375 C 4.25 0.109375 4.484375 -0.125 4.640625 -0.4375 C 4.8125 -0.796875 4.9375 -1.421875 4.9375 -1.421875 Z M 3.546875 -3.125 L 3.0625 -1.1875 C 3 -1 3 -0.984375 2.859375 -0.8125 C 2.421875 -0.265625 2.015625 -0.109375 1.734375 -0.109375 C 1.234375 -0.109375 1.09375 -0.65625 1.09375 -1.046875 C 1.09375 -1.53125 1.421875 -2.765625 1.640625 -3.21875 C 1.953125 -3.796875 2.40625 -4.171875 2.796875 -4.171875 C 3.4375 -4.171875 3.578125 -3.359375 3.578125 -3.296875 C 3.578125 -3.234375 3.5625 -3.171875 3.546875 -3.125 Z M 3.546875 -3.125 "/>
|
||||
</g>
|
||||
<g id="glyph-2-5">
|
||||
<path d="M 4.828125 -3.78125 C 4.859375 -3.921875 4.859375 -3.9375 4.859375 -4.015625 C 4.859375 -4.1875 4.71875 -4.28125 4.578125 -4.28125 C 4.46875 -4.28125 4.3125 -4.21875 4.234375 -4.0625 C 4.203125 -4.015625 4.125 -3.703125 4.09375 -3.53125 L 3.890625 -2.734375 L 3.4375 -0.953125 C 3.40625 -0.796875 2.96875 -0.109375 2.328125 -0.109375 C 1.8125 -0.109375 1.703125 -0.546875 1.703125 -0.90625 C 1.703125 -1.375 1.875 -1.984375 2.21875 -2.859375 C 2.375 -3.265625 2.40625 -3.375 2.40625 -3.578125 C 2.40625 -4.015625 2.09375 -4.390625 1.59375 -4.390625 C 0.65625 -4.390625 0.28125 -2.953125 0.28125 -2.859375 C 0.28125 -2.765625 0.40625 -2.765625 0.40625 -2.765625 C 0.5 -2.765625 0.515625 -2.78125 0.5625 -2.9375 C 0.828125 -3.875 1.234375 -4.171875 1.5625 -4.171875 C 1.640625 -4.171875 1.8125 -4.171875 1.8125 -3.84375 C 1.8125 -3.609375 1.71875 -3.34375 1.640625 -3.15625 C 1.25 -2.109375 1.078125 -1.53125 1.078125 -1.078125 C 1.078125 -0.1875 1.703125 0.109375 2.28125 0.109375 C 2.671875 0.109375 3 -0.0625 3.28125 -0.34375 C 3.15625 0.171875 3.03125 0.671875 2.640625 1.1875 C 2.375 1.53125 2 1.8125 1.546875 1.8125 C 1.40625 1.8125 0.96875 1.78125 0.796875 1.40625 C 0.953125 1.40625 1.078125 1.40625 1.21875 1.28125 C 1.3125 1.1875 1.421875 1.0625 1.421875 0.875 C 1.421875 0.5625 1.15625 0.53125 1.046875 0.53125 C 0.828125 0.53125 0.5 0.6875 0.5 1.171875 C 0.5 1.671875 0.9375 2.03125 1.546875 2.03125 C 2.5625 2.03125 3.59375 1.125 3.875 0.015625 Z M 4.828125 -3.78125 "/>
|
||||
</g>
|
||||
<g id="glyph-3-0">
|
||||
<path d="M 5.453125 -1.734375 C 5.453125 -1.90625 5.296875 -1.90625 5.1875 -1.90625 L 1.015625 -1.90625 C 0.90625 -1.90625 0.75 -1.90625 0.75 -1.734375 C 0.75 -1.578125 0.921875 -1.578125 1.015625 -1.578125 L 5.1875 -1.578125 C 5.28125 -1.578125 5.453125 -1.578125 5.453125 -1.734375 Z M 5.453125 -1.734375 "/>
|
||||
</g>
|
||||
<g id="glyph-4-0">
|
||||
<path d="M 3.28125 0 L 3.28125 -0.25 L 3.03125 -0.25 C 2.328125 -0.25 2.328125 -0.34375 2.328125 -0.5625 L 2.328125 -4.421875 C 2.328125 -4.609375 2.3125 -4.609375 2.125 -4.609375 C 1.671875 -4.171875 1.046875 -4.171875 0.765625 -4.171875 L 0.765625 -3.921875 C 0.921875 -3.921875 1.390625 -3.921875 1.765625 -4.109375 L 1.765625 -0.5625 C 1.765625 -0.34375 1.765625 -0.25 1.078125 -0.25 L 0.8125 -0.25 L 0.8125 0 L 2.046875 -0.03125 Z M 3.28125 0 "/>
|
||||
</g>
|
||||
</g>
|
||||
<clipPath id="clip-0">
|
||||
<path clip-rule="nonzero" d="M 19 15 L 167 15 L 167 54.558594 L 19 54.558594 Z M 19 15 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-1">
|
||||
<path clip-rule="nonzero" d="M 0.078125 34 L 20 34 L 20 36 L 0.078125 36 Z M 0.078125 34 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-2">
|
||||
<path clip-rule="nonzero" d="M 164 19 L 185.730469 19 L 185.730469 51 L 164 51 Z M 164 19 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<path fill-rule="nonzero" fill="rgb(89.99939%, 89.99939%, 89.99939%)" fill-opacity="1" d="M 19.6875 53.5625 L 166.117188 53.5625 L 166.117188 16.398438 L 19.6875 16.398438 Z M 19.6875 53.5625 "/>
|
||||
<g clip-path="url(#clip-0)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-dasharray="2.98883 2.98883" stroke-miterlimit="10" d="M -73.512932 -18.656574 L 73.510195 -18.656574 L 73.510195 18.658104 L -73.512932 18.658104 Z M -73.512932 -18.656574 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-0" x="79.082719" y="10.612989"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="87.881062" y="12.100958"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-1" x="93.135447" y="12.100958"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-2" x="99.529614" y="12.100958"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.007512 -14.173635 L 17.008696 -14.173635 L 17.008696 14.175166 L -17.007512 14.175166 Z M -17.007512 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-0" x="88.504535" y="38.385435"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -69.029993 -14.173635 L -35.013785 -14.173635 L -35.013785 14.175166 L -69.029993 14.175166 Z M -69.029993 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-0" x="30.871108" y="39.155314"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-3-0" x="38.864712" y="35.554906"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-3" x="45.066484" y="35.554906"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 35.011048 -14.173635 L 69.027256 -14.173635 L 69.027256 14.175166 L 35.011048 14.175166 Z M 35.011048 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-1" x="135.459241" y="39.019863"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-3-0" x="143.315402" y="35.419455"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-4-0" x="149.517174" y="35.419455"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip-1)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -74.160075 0.000765138 L -92.20557 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054921 0.000765138 L 1.607281 1.683338 L 3.085906 0.000765138 L 1.607281 -1.681808 Z M 6.054921 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 16.215612, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-2" x="4.876457" y="31.178642"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -34.515681 0.000765138 L -22.141516 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052851 0.000765138 L 1.609133 1.683338 L 3.087758 0.000765138 L 1.609133 -1.681808 Z M 6.052851 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 68.026268, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-3" x="66.20491" y="31.178642"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 17.506801 0.000765138 L 29.880966 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054712 0.000765138 L 1.607073 1.683338 L 3.085697 0.000765138 L 1.607073 -1.681808 Z M 6.054712 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 119.836914, 34.981231)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-4" x="118.230066" y="31.178642"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 69.52536 0.000765138 L 87.570855 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 92.903707, 34.981231)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 183.324219 34.980469 L 178.894531 33.304688 L 180.367188 34.980469 L 178.894531 36.65625 Z M 183.324219 34.980469 "/>
|
||||
<g clip-path="url(#clip-2)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054711 0.000765138 L 1.607071 1.683338 L 3.085696 0.000765138 L 1.607071 -1.681808 Z M 6.054711 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 177.293947, 34.981231)"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-5" x="175.711111" y="29.24946"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 22 KiB |
BIN
figs/detail_control_jacobian_decoupling_arch.pdf
Normal file
BIN
figs/detail_control_jacobian_decoupling_arch.png
Normal file
After Width: | Height: | Size: 10 KiB |
148
figs/detail_control_jacobian_decoupling_arch.svg
Normal file
@ -0,0 +1,148 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="209.079" height="56.826" viewBox="0 0 209.079 56.826">
|
||||
<defs>
|
||||
<g>
|
||||
<g id="glyph-0-0">
|
||||
<path d="M 7.296875 -2.078125 C 7.328125 -2.234375 7.34375 -2.25 7.40625 -2.25 C 7.53125 -2.265625 7.671875 -2.265625 7.78125 -2.265625 C 8.03125 -2.265625 8.203125 -2.265625 8.203125 -2.5625 C 8.203125 -2.609375 8.171875 -2.734375 7.984375 -2.734375 C 7.765625 -2.734375 7.546875 -2.71875 7.3125 -2.71875 C 7.09375 -2.71875 6.859375 -2.703125 6.640625 -2.703125 C 6.25 -2.703125 5.28125 -2.734375 4.875 -2.734375 C 4.765625 -2.734375 4.578125 -2.734375 4.578125 -2.453125 C 4.578125 -2.265625 4.75 -2.265625 4.90625 -2.265625 L 5.28125 -2.265625 C 5.390625 -2.265625 5.9375 -2.265625 5.9375 -2.21875 C 5.9375 -2.203125 5.9375 -2.1875 5.859375 -1.9375 C 5.859375 -1.875 5.6875 -1.234375 5.6875 -1.234375 C 5.515625 -0.5625 4.71875 -0.296875 4.09375 -0.296875 C 3.515625 -0.296875 2.921875 -0.421875 2.453125 -0.796875 C 1.9375 -1.234375 1.9375 -1.921875 1.9375 -2.140625 C 1.9375 -2.59375 2.140625 -4.359375 3.109375 -5.453125 C 3.6875 -6.09375 4.640625 -6.515625 5.640625 -6.515625 C 6.890625 -6.515625 7.359375 -5.546875 7.359375 -4.734375 C 7.359375 -4.625 7.328125 -4.46875 7.328125 -4.375 C 7.328125 -4.234375 7.46875 -4.234375 7.59375 -4.234375 C 7.8125 -4.234375 7.828125 -4.234375 7.875 -4.4375 L 8.4375 -6.671875 C 8.453125 -6.734375 8.46875 -6.78125 8.46875 -6.84375 C 8.46875 -6.96875 8.328125 -6.96875 8.21875 -6.96875 L 7.296875 -6.265625 C 7.109375 -6.453125 6.59375 -6.96875 5.484375 -6.96875 C 2.3125 -6.96875 0.546875 -4.546875 0.546875 -2.515625 C 0.546875 -0.6875 1.9375 0.171875 3.796875 0.171875 C 4.828125 0.171875 5.53125 -0.171875 5.84375 -0.515625 C 6.09375 -0.265625 6.59375 0 6.671875 0 C 6.765625 0 6.78125 -0.078125 6.828125 -0.234375 Z M 7.296875 -2.078125 "/>
|
||||
</g>
|
||||
<g id="glyph-0-1">
|
||||
<path d="M 3.46875 -3.453125 L 5.296875 -3.453125 C 5.5 -3.453125 5.640625 -3.453125 5.796875 -3.609375 C 6 -3.765625 6 -4 6 -4.015625 C 6 -4.40625 5.640625 -4.40625 5.46875 -4.40625 L 2.203125 -4.40625 C 2 -4.40625 1.5625 -4.40625 1.046875 -3.921875 C 0.6875 -3.609375 0.3125 -3.109375 0.3125 -3 C 0.3125 -2.875 0.421875 -2.875 0.53125 -2.875 C 0.6875 -2.875 0.6875 -2.875 0.78125 -2.984375 C 1.15625 -3.453125 1.8125 -3.453125 2 -3.453125 L 2.890625 -3.453125 L 2.546875 -2.40625 C 2.453125 -2.15625 2.234375 -1.515625 2.15625 -1.265625 C 2.046875 -0.953125 1.859375 -0.421875 1.859375 -0.3125 C 1.859375 -0.046875 2.078125 0.125 2.328125 0.125 C 2.390625 0.125 2.890625 0.125 3 -0.53125 Z M 3.46875 -3.453125 "/>
|
||||
</g>
|
||||
<g id="glyph-1-0">
|
||||
<path d="M 3.40625 1.640625 C 3.40625 1.546875 3.328125 1.546875 3.296875 1.546875 C 2.46875 1.5 2.296875 1.03125 2.296875 0.859375 L 2.296875 -0.921875 C 2.296875 -1.25 2.046875 -1.5625 1.484375 -1.734375 C 2.296875 -1.984375 2.296875 -2.421875 2.296875 -2.75 L 2.296875 -4 C 2.296875 -4.40625 2.296875 -4.578125 2.546875 -4.765625 C 2.75 -4.921875 2.984375 -5 3.25 -5.015625 C 3.34375 -5.015625 3.40625 -5.015625 3.40625 -5.109375 C 3.40625 -5.203125 3.328125 -5.203125 3.234375 -5.203125 C 2.4375 -5.203125 1.765625 -4.875 1.765625 -4.328125 L 1.765625 -2.703125 C 1.765625 -2.546875 1.765625 -2.296875 1.5625 -2.125 C 1.296875 -1.90625 1.03125 -1.84375 0.796875 -1.828125 C 0.703125 -1.828125 0.65625 -1.828125 0.65625 -1.734375 C 0.65625 -1.640625 0.71875 -1.640625 0.75 -1.640625 C 1.515625 -1.59375 1.703125 -1.1875 1.734375 -1.046875 C 1.765625 -0.96875 1.765625 -0.953125 1.765625 -0.703125 L 1.765625 0.703125 C 1.765625 0.953125 1.765625 1.21875 2.171875 1.484375 C 2.46875 1.671875 2.953125 1.734375 3.234375 1.734375 C 3.328125 1.734375 3.40625 1.734375 3.40625 1.640625 Z M 3.40625 1.640625 "/>
|
||||
</g>
|
||||
<g id="glyph-1-1">
|
||||
<path d="M 3.40625 -1.734375 C 3.40625 -1.828125 3.328125 -1.828125 3.296875 -1.828125 C 2.484375 -1.875 2.296875 -2.359375 2.296875 -2.546875 L 2.296875 -4.09375 C 2.296875 -4.453125 2.296875 -4.6875 1.890625 -4.953125 C 1.59375 -5.140625 1.09375 -5.203125 0.828125 -5.203125 C 0.71875 -5.203125 0.65625 -5.203125 0.65625 -5.109375 C 0.65625 -5.015625 0.71875 -5.015625 0.75 -5.015625 C 1.609375 -4.96875 1.75 -4.46875 1.765625 -4.328125 L 1.765625 -2.546875 C 1.765625 -2.203125 2.046875 -1.890625 2.578125 -1.734375 C 1.765625 -1.5 1.765625 -1.046875 1.765625 -0.71875 L 1.765625 0.53125 C 1.765625 0.96875 1.765625 1.09375 1.515625 1.296875 C 1.375 1.40625 1.125 1.515625 0.796875 1.546875 C 0.703125 1.546875 0.65625 1.546875 0.65625 1.640625 C 0.65625 1.734375 0.71875 1.734375 0.828125 1.734375 C 1.59375 1.734375 2.296875 1.421875 2.296875 0.859375 L 2.296875 -0.765625 C 2.296875 -0.984375 2.296875 -1.578125 3.328125 -1.640625 C 3.328125 -1.640625 3.40625 -1.640625 3.40625 -1.734375 Z M 3.40625 -1.734375 "/>
|
||||
</g>
|
||||
<g id="glyph-1-2">
|
||||
<path d="M 5.4375 -1.734375 C 5.4375 -1.90625 5.28125 -1.90625 5.1875 -1.90625 L 1 -1.90625 C 0.90625 -1.90625 0.75 -1.90625 0.75 -1.734375 C 0.75 -1.5625 0.921875 -1.5625 1 -1.5625 L 5.1875 -1.5625 C 5.265625 -1.5625 5.4375 -1.5625 5.4375 -1.734375 Z M 5.4375 -1.734375 "/>
|
||||
</g>
|
||||
<g id="glyph-2-0">
|
||||
<path d="M 5.75 -2.953125 C 5.75 -4.03125 4.96875 -4.875 3.734375 -4.875 C 2.078125 -4.875 0.484375 -3.328125 0.484375 -1.765625 C 0.484375 -0.640625 1.296875 0.140625 2.5 0.140625 C 4.15625 0.140625 5.75 -1.375 5.75 -2.953125 Z M 5.078125 -3.1875 C 5.078125 -2.6875 4.859375 -1.671875 4.21875 -0.921875 C 3.71875 -0.375 3.09375 -0.09375 2.546875 -0.09375 C 1.8125 -0.09375 1.1875 -0.59375 1.1875 -1.609375 C 1.1875 -1.96875 1.296875 -2.953125 1.921875 -3.75 C 2.390625 -4.3125 3.0625 -4.65625 3.6875 -4.65625 C 4.40625 -4.65625 5.078125 -4.203125 5.078125 -3.1875 Z M 5.078125 -3.1875 "/>
|
||||
</g>
|
||||
<g id="glyph-2-1">
|
||||
<path d="M 5.296875 -3.265625 L 5.484375 -4.59375 C 5.484375 -4.6875 5.390625 -4.6875 5.265625 -4.6875 L 1 -4.6875 C 0.828125 -4.6875 0.8125 -4.6875 0.765625 -4.546875 L 0.328125 -3.3125 C 0.328125 -3.28125 0.296875 -3.21875 0.296875 -3.1875 C 0.296875 -3.15625 0.3125 -3.09375 0.421875 -3.09375 C 0.5 -3.09375 0.515625 -3.125 0.5625 -3.265625 C 0.96875 -4.375 1.1875 -4.4375 2.25 -4.4375 L 2.546875 -4.4375 C 2.75 -4.4375 2.75 -4.4375 2.75 -4.375 C 2.75 -4.375 2.75 -4.328125 2.71875 -4.21875 L 1.8125 -0.578125 C 1.75 -0.3125 1.734375 -0.25 1 -0.25 C 0.75 -0.25 0.6875 -0.25 0.6875 -0.09375 C 0.6875 -0.078125 0.703125 0 0.8125 0 C 1 0 1.203125 -0.015625 1.40625 -0.015625 L 2 -0.03125 L 2.625 -0.015625 C 2.8125 -0.015625 3.015625 0 3.203125 0 C 3.265625 0 3.359375 0 3.359375 -0.15625 C 3.359375 -0.25 3.296875 -0.25 3.078125 -0.25 C 2.953125 -0.25 2.8125 -0.25 2.671875 -0.265625 C 2.4375 -0.28125 2.421875 -0.3125 2.421875 -0.390625 C 2.421875 -0.4375 2.421875 -0.453125 2.453125 -0.5625 L 3.375 -4.203125 C 3.421875 -4.390625 3.4375 -4.421875 3.59375 -4.4375 C 3.625 -4.4375 3.859375 -4.4375 4 -4.4375 C 4.421875 -4.4375 4.609375 -4.4375 4.78125 -4.390625 C 5.09375 -4.28125 5.109375 -4.09375 5.109375 -3.84375 C 5.109375 -3.71875 5.109375 -3.640625 5.0625 -3.28125 L 5.046875 -3.203125 C 5.046875 -3.125 5.09375 -3.09375 5.15625 -3.09375 C 5.265625 -3.09375 5.28125 -3.15625 5.296875 -3.265625 Z M 5.296875 -3.265625 "/>
|
||||
</g>
|
||||
<g id="glyph-3-0">
|
||||
<path d="M 6.28125 -6.65625 C 6.28125 -6.75 6.21875 -6.78125 6.140625 -6.78125 C 5.890625 -6.78125 5.28125 -6.75 5.046875 -6.75 L 3.578125 -6.78125 C 3.5 -6.78125 3.375 -6.78125 3.375 -6.578125 C 3.375 -6.46875 3.453125 -6.46875 3.703125 -6.46875 C 3.9375 -6.46875 4.03125 -6.46875 4.28125 -6.453125 C 4.53125 -6.421875 4.59375 -6.390625 4.59375 -6.25 C 4.59375 -6.1875 4.578125 -6.125 4.546875 -6.046875 L 3.40625 -1.484375 C 3.171875 -0.53125 2.5 0 1.984375 0 C 1.71875 0 1.203125 -0.09375 1.046875 -0.609375 C 1.078125 -0.609375 1.15625 -0.609375 1.15625 -0.609375 C 1.546875 -0.609375 1.8125 -0.9375 1.8125 -1.234375 C 1.8125 -1.5625 1.53125 -1.65625 1.375 -1.65625 C 1.1875 -1.65625 0.703125 -1.53125 0.703125 -0.859375 C 0.703125 -0.25 1.234375 0.21875 2.015625 0.21875 C 2.921875 0.21875 3.953125 -0.4375 4.203125 -1.421875 L 5.375 -6.046875 C 5.453125 -6.375 5.46875 -6.46875 6.015625 -6.46875 C 6.171875 -6.46875 6.28125 -6.46875 6.28125 -6.65625 Z M 6.28125 -6.65625 "/>
|
||||
</g>
|
||||
<g id="glyph-4-0">
|
||||
<path d="M 3.28125 0 L 3.28125 -0.25 L 3.015625 -0.25 C 2.328125 -0.25 2.328125 -0.34375 2.328125 -0.5625 L 2.328125 -4.40625 C 2.328125 -4.59375 2.3125 -4.609375 2.109375 -4.609375 C 1.671875 -4.171875 1.046875 -4.15625 0.75 -4.15625 L 0.75 -3.90625 C 0.921875 -3.90625 1.375 -3.90625 1.765625 -4.109375 L 1.765625 -0.5625 C 1.765625 -0.34375 1.765625 -0.25 1.0625 -0.25 L 0.8125 -0.25 L 0.8125 0 L 2.046875 -0.03125 Z M 3.28125 0 "/>
|
||||
</g>
|
||||
<g id="glyph-5-0">
|
||||
<path d="M 9.21875 -6.40625 C 9.328125 -6.8125 8.609375 -6.8125 8.03125 -6.8125 L 3.5625 -6.8125 C 3.09375 -6.765625 2.625 -6.625 2.203125 -6.328125 C 2 -6.1875 1.8125 -6 1.75 -5.78125 C 1.75 -5.65625 1.8125 -5.609375 1.921875 -5.609375 C 2.078125 -5.609375 2.296875 -5.6875 2.515625 -5.8125 C 2.59375 -5.859375 2.65625 -5.90625 2.71875 -5.9375 C 2.890625 -5.96875 3.09375 -5.96875 3.28125 -5.96875 L 4.328125 -5.96875 L 4.171875 -5.203125 C 4 -4.484375 3.765625 -3.78125 3.5 -3.078125 C 3.1875 -2.265625 2.796875 -1.453125 2.359375 -0.65625 C 2.34375 -0.625 2.328125 -0.578125 2.296875 -0.5625 C 1.921875 -0.578125 1.625 -0.765625 1.421875 -1.046875 C 1.40625 -1.09375 1.34375 -1.109375 1.265625 -1.109375 C 1.109375 -1.109375 0.890625 -1.03125 0.671875 -0.90625 C 0.359375 -0.734375 0.15625 -0.5 0.15625 -0.359375 C 0.15625 -0.359375 0.15625 -0.328125 0.171875 -0.3125 C 0.453125 0.109375 0.9375 0.328125 1.515625 0.3125 C 1.59375 0.3125 1.65625 0.296875 1.734375 0.28125 C 2.296875 0.1875 2.84375 -0.140625 3.25 -0.59375 C 3.390625 -0.734375 3.5 -0.890625 3.578125 -1.046875 C 3.921875 -1.65625 4.21875 -2.265625 4.484375 -2.890625 L 6.4375 -2.890625 C 6.4375 -2.78125 6.515625 -2.75 6.625 -2.75 C 6.765625 -2.75 7 -2.8125 7.21875 -2.953125 C 7.484375 -3.109375 7.6875 -3.296875 7.734375 -3.4375 L 7.765625 -3.59375 C 7.765625 -3.703125 7.703125 -3.75 7.59375 -3.75 L 4.828125 -3.75 C 5.078125 -4.40625 5.28125 -5.0625 5.453125 -5.734375 L 5.5 -5.96875 L 7.078125 -5.96875 C 7.453125 -5.96875 7.96875 -5.96875 7.9375 -5.859375 C 7.9375 -5.734375 8 -5.6875 8.109375 -5.6875 C 8.265625 -5.6875 8.5 -5.78125 8.71875 -5.90625 C 8.984375 -6.046875 9.1875 -6.265625 9.21875 -6.40625 Z M 9.21875 -6.40625 "/>
|
||||
</g>
|
||||
<g id="glyph-5-1">
|
||||
<path d="M 7.453125 -1.53125 C 7.453125 -1.640625 7.328125 -1.65625 7.28125 -1.65625 C 6.96875 -1.65625 6.109375 -1.265625 6 -0.75 C 5.515625 -0.75 5.171875 -0.796875 4.375 -0.953125 C 4.015625 -1.015625 3.21875 -1.171875 2.65625 -1.171875 C 2.578125 -1.171875 2.46875 -1.171875 2.390625 -1.15625 C 2.71875 -1.71875 2.84375 -2.1875 3.015625 -2.84375 C 3.21875 -3.625 3.609375 -5.015625 4.359375 -5.859375 C 4.5 -6 4.53125 -6.046875 4.796875 -6.046875 C 5.25 -6.046875 5.421875 -5.6875 5.421875 -5.375 C 5.421875 -5.265625 5.390625 -5.15625 5.390625 -5.109375 C 5.390625 -5 5.515625 -4.984375 5.5625 -4.984375 C 5.703125 -4.984375 6 -5.0625 6.390625 -5.3125 C 6.78125 -5.59375 6.84375 -5.765625 6.84375 -6.046875 C 6.84375 -6.5625 6.53125 -6.96875 5.875 -6.96875 C 5.25 -6.96875 4.34375 -6.671875 3.53125 -5.953125 C 2.390625 -4.953125 1.890625 -3.3125 1.609375 -2.1875 C 1.453125 -1.59375 1.25 -0.78125 0.828125 -0.453125 C 0.71875 -0.359375 0.390625 -0.109375 0.390625 0.046875 C 0.390625 0.15625 0.5 0.171875 0.5625 0.171875 C 0.640625 0.171875 0.9375 0.15625 1.5 -0.25 C 1.859375 -0.25 2.203125 -0.234375 3.109375 -0.0625 C 3.546875 0.03125 4.28125 0.171875 4.84375 0.171875 C 6.171875 0.171875 7.453125 -1 7.453125 -1.53125 Z M 7.453125 -1.53125 "/>
|
||||
</g>
|
||||
<g id="glyph-5-2">
|
||||
<path d="M 7.71875 -1.0625 C 7.71875 -1.171875 7.609375 -1.1875 7.546875 -1.1875 C 7.375 -1.1875 7.046875 -1.078125 6.765625 -0.859375 C 6.375 -0.859375 6.046875 -0.859375 5.890625 -2.09375 L 5.71875 -3.625 C 8.34375 -5.046875 9 -5.703125 9 -6.234375 C 9 -6.640625 8.625 -6.8125 8.328125 -6.8125 C 7.890625 -6.8125 7.203125 -6.3125 7.203125 -6.078125 C 7.203125 -6.015625 7.21875 -5.953125 7.375 -5.9375 C 7.6875 -5.90625 7.703125 -5.671875 7.703125 -5.609375 C 7.703125 -5.5 7.671875 -5.4375 7.4375 -5.265625 C 7.03125 -4.953125 6.3125 -4.546875 5.671875 -4.1875 C 5.53125 -5.09375 5.53125 -5.578125 5.40625 -6.015625 C 5.171875 -6.8125 4.65625 -6.8125 4.359375 -6.8125 C 3 -6.8125 2.40625 -6 2.40625 -5.75 C 2.40625 -5.640625 2.53125 -5.609375 2.59375 -5.609375 C 2.59375 -5.609375 2.921875 -5.609375 3.359375 -5.9375 C 3.6875 -5.9375 4.0625 -5.9375 4.203125 -4.96875 L 4.375 -3.484375 C 3.703125 -3.109375 2.78125 -2.625 2.046875 -2.140625 C 1.609375 -1.859375 0.5625 -1.1875 0.5625 -0.578125 C 0.5625 -0.171875 0.90625 0 1.21875 0 C 1.65625 0 2.34375 -0.484375 2.34375 -0.734375 C 2.34375 -0.84375 2.234375 -0.859375 2.15625 -0.859375 C 1.96875 -0.890625 1.84375 -1.015625 1.84375 -1.203125 C 1.84375 -1.3125 1.890625 -1.375 2.15625 -1.5625 C 2.625 -1.921875 3.375 -2.328125 4.4375 -2.921875 C 4.640625 -1.125 4.65625 -1 4.6875 -0.890625 C 4.921875 0 5.453125 0 5.78125 0 C 7.140625 0 7.71875 -0.828125 7.71875 -1.0625 Z M 7.71875 -1.0625 "/>
|
||||
</g>
|
||||
</g>
|
||||
<clipPath id="clip-0">
|
||||
<path clip-rule="nonzero" d="M 30 17 L 178 17 L 178 56.613281 L 30 56.613281 Z M 30 17 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-1">
|
||||
<path clip-rule="nonzero" d="M 187 21 L 208.160156 21 L 208.160156 53 L 187 53 Z M 187 21 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<path fill-rule="nonzero" fill="rgb(89.99939%, 89.99939%, 89.99939%)" fill-opacity="1" d="M 30.890625 55.621094 L 177.269531 55.621094 L 177.269531 18.472656 L 30.890625 18.472656 Z M 30.890625 55.621094 "/>
|
||||
<g clip-path="url(#clip-0)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-dasharray="2.98883 2.98883" stroke-miterlimit="10" d="M -73.513301 -18.656946 L 73.510409 -18.656946 L 73.510409 18.655131 L -73.513301 18.655131 Z M -73.513301 -18.656946 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-0" x="92.248642" y="10.647259"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="101.043898" y="12.438369"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-0" x="105.107762" y="12.438369"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-1" x="111.355961" y="12.438369"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.007671 -14.172435 L 17.008703 -14.172435 L 17.008703 14.174543 L -17.007671 14.174543 Z M -17.007671 -14.172435 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-0" x="99.683889" y="40.448981"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -69.028789 -14.172435 L -35.012416 -14.172435 L -35.012416 14.174543 L -69.028789 14.174543 Z M -69.028789 -14.172435 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-3-0" x="42.103533" y="38.983437"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-2" x="48.5581" y="34.740129"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-1" x="54.757697" y="34.740129"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="47.604301" y="42.361556"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-0" x="51.668165" y="42.361556"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-1" x="57.916364" y="42.361556"/>
|
||||
</g>
|
||||
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 35.013448 -14.172435 L 69.029821 -14.172435 L 69.029821 14.174543 L 35.013448 14.174543 Z M 35.013448 -14.172435 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-3-0" x="145.687243" y="38.848033"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-2" x="152.14181" y="34.605721"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-4-0" x="158.341407" y="34.605721"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="151.188012" y="42.226153"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-0" x="155.251875" y="42.226153"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-1" x="161.500075" y="42.226153"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -74.160671 -0.000907509 L -103.543442 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.05153 -0.000907509 L 1.610177 1.682256 L 3.08932 -0.000907509 L 1.610177 -1.684071 Z M 6.05153 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 27.420323, 37.045971)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-5-0" x="4.795874" y="29.717255"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="13.879859" y="31.508365"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-0" x="17.943722" y="31.508365"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-1" x="24.191922" y="31.508365"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -34.514137 -0.000907509 L -22.139553 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052019 -0.000907509 L 1.610665 1.682256 L 3.085885 -0.000907509 L 1.610665 -1.684071 Z M 6.052019 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 79.212805, 37.045971)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-0-1" x="76.347686" y="33.244716"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 17.506982 -0.000907509 L 29.881566 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052517 -0.000907509 L 1.60724 1.682256 L 3.086384 -0.000907509 L 1.60724 -1.684071 Z M 6.052517 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 131.005277, 37.045971)"/>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-5-1" x="126.824335" y="33.244716"/>
|
||||
</g>
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 69.5281 -0.000907509 L 98.910871 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 104.081517, 37.045971)"/>
|
||||
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 205.757812 37.046875 L 201.332031 35.371094 L 202.804688 37.046875 L 201.332031 38.722656 Z M 205.757812 37.046875 "/>
|
||||
<g clip-path="url(#clip-1)">
|
||||
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.053363 -0.000907509 L 1.608086 1.682256 L 3.087229 -0.000907509 L 1.608086 -1.684071 Z M 6.053363 -0.000907509 " transform="matrix(0.995614, 0, 0, -0.995614, 199.730998, 37.045971)"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-5-2" x="178.936777" y="29.71825"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-0" x="188.49567" y="31.508365"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-2-0" x="192.559534" y="31.508365"/>
|
||||
</g>
|
||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||
<use xlink:href="#glyph-1-1" x="198.807733" y="31.508365"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 20 KiB |
BIN
figs/detail_control_jacobian_plant.pdf
Normal file
BIN
figs/detail_control_jacobian_plant.png
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
figs/detail_control_modal_plant.pdf
Normal file
BIN
figs/detail_control_modal_plant.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
figs/detail_control_model_test_decoupling.pdf
Normal file
BIN
figs/detail_control_model_test_decoupling.png
Normal file
After Width: | Height: | Size: 23 KiB |
2906
figs/detail_control_model_test_decoupling.svg
Normal file
After Width: | Height: | Size: 161 KiB |
BIN
figs/detail_control_svd_plant.pdf
Normal file
BIN
figs/detail_control_svd_plant.png
Normal file
After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 41 KiB |
849
nass-control.org
@ -153,6 +153,7 @@ file:~/Cloud/research/papers/dehaeze20_virtu_senso_fusio/index.org
|
||||
SCHEDULED: <2025-04-03 Thu>
|
||||
|
||||
file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org
|
||||
Especially [[file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org::*SVD / Jacobian / Model decoupling comparison][SVD / Jacobian / Model decoupling comparison]]
|
||||
|
||||
- [ ] Copy Content
|
||||
- [ ] Copy Tikz figures
|
||||
@ -1128,8 +1129,6 @@ W2 = generateWF('n', 2, 'w0', 2*pi*10, 'G0', 1/10, 'Ginf', 1000, 'Gc', 0.45);
|
||||
#+begin_src matlab :exports none :results none
|
||||
%% description
|
||||
figure;
|
||||
tiledlayout(1, 1, 'TileSpacing', 'None', 'Padding', 'None');
|
||||
ax1 = nexttile();
|
||||
hold on;
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
plot(freqs, 1./abs(squeeze(freqresp(W1, freqs, 'Hz'))), '--', 'DisplayName', '$|W_1|^{-1}$');
|
||||
@ -1893,7 +1892,7 @@ Several examples were used to emphasize the simplicity and the effectiveness of
|
||||
However, the shaping of the complementary filters' magnitude does not allow to directly optimize the super sensor noise and dynamical characteristics.
|
||||
Future work will aim at developing a complementary filter synthesis method that minimizes the super sensor noise while ensuring the robustness of the fusion.
|
||||
|
||||
* Decoupling Strategies
|
||||
* Decoupling
|
||||
:PROPERTIES:
|
||||
:HEADER-ARGS:matlab+: :tangle matlab/detail_control_2_decoupling.m
|
||||
:END:
|
||||
@ -1901,6 +1900,8 @@ Future work will aim at developing a complementary filter synthesis method that
|
||||
|
||||
** Introduction :ignore:
|
||||
|
||||
- [ ] Add some citations about different methods
|
||||
|
||||
# *This report is based on*:
|
||||
# - file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org
|
||||
# - [X] Maybe not relevant, as it is experimental results based on the Stewart platform file:/home/thomas/Cloud/meetings/group-meetings-me/2021-08-16-Nano-Hexapod-Control/2021-08-16-Nano-Hexapod-Control.org
|
||||
@ -1915,10 +1916,15 @@ Assumptions:
|
||||
Review of decoupling strategies for Stewart platforms:
|
||||
- [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org::*Decoupling Strategies][Decoupling Strategies]]
|
||||
|
||||
The goal of this section is to compare the use of several methods for the decoupling of parallel manipulators.
|
||||
|
||||
- [ ] What example should be taken?
|
||||
*3dof system*? stewart platform?
|
||||
Maybe simpler.
|
||||
It is structured as follow:
|
||||
- Section ref:ssec:detail_control_decoupling_comp_model: the model used to compare/test decoupling strategies is presented
|
||||
- Section ref:ssec:detail_control_comp_jacobian: decoupling using Jacobian matrices is presented
|
||||
- Section ref:ssec:detail_control_comp_modal: modal decoupling is presented
|
||||
- Section ref:ssec:detail_control_comp_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
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@ -1941,28 +1947,839 @@ Review of decoupling strategies for Stewart platforms:
|
||||
<<m-init-other>>
|
||||
#+end_src
|
||||
|
||||
** Interaction Analysis
|
||||
** Test Model
|
||||
<<ssec:detail_control_decoupling_comp_model>>
|
||||
|
||||
** Decentralized Control (actuator frame)
|
||||
Let's consider a parallel manipulator with several collocated actuator/sensors pairs.
|
||||
|
||||
** Center of Stiffness and center of Mass
|
||||
System in Figure ref:fig:detail_control_model_test_decoupling will serve as an example.
|
||||
|
||||
- Example
|
||||
- Show
|
||||
We will note:
|
||||
- $b_i$: location of the joints on the top platform
|
||||
- $\hat{s}_i$: unit vector corresponding to the struts direction
|
||||
- $k_i$: stiffness of the struts
|
||||
- $\tau_i$: actuator forces
|
||||
- $O_M$: center of mass of the solid body
|
||||
- $\mathcal{L}_i$: relative displacement of the struts
|
||||
|
||||
#+name: fig:detail_control_model_test_decoupling
|
||||
#+caption: Model use to compare decoupling techniques
|
||||
[[file:figs/detail_control_model_test_decoupling.png]]
|
||||
|
||||
#+begin_src matlab
|
||||
%% System parameters
|
||||
l = 1.0; % Length of the mass [m]
|
||||
h = 2*1.7; % Height of the mass [m]
|
||||
|
||||
la = l/2; % Position of Act. [m]
|
||||
ha = h/2; % Position of Act. [m]
|
||||
|
||||
m = 400; % Mass [kg]
|
||||
I = 115; % Inertia [kg m^2]
|
||||
|
||||
%% Actuator Damping [N/(m/s)]
|
||||
c1 = 2e1;
|
||||
c2 = 2e1;
|
||||
c3 = 2e1;
|
||||
|
||||
%% Actuator Stiffness [N/m]
|
||||
k1 = 15e3;
|
||||
k2 = 15e3;
|
||||
k3 = 15e3;
|
||||
|
||||
%% Unit vectors of the actuators
|
||||
s1 = [1;0];
|
||||
s2 = [0;1];
|
||||
s3 = [0;1];
|
||||
|
||||
%% Location of the joints
|
||||
Mb1 = [-l/2;-ha];
|
||||
Mb2 = [-la; -h/2];
|
||||
Mb3 = [ la; -h/2];
|
||||
|
||||
%% Jacobian matrix
|
||||
J = [s1', Mb1(1)*s1(2)-Mb1(2)*s1(1);
|
||||
s2', Mb2(1)*s2(2)-Mb2(2)*s2(1);
|
||||
s3', Mb3(1)*s3(2)-Mb3(2)*s3(1)];
|
||||
|
||||
%% Stiffnesss and Damping matrices of the struts
|
||||
Kr = diag([k1,k2,k3]);
|
||||
Cr = diag([c1,c2,c3]);
|
||||
|
||||
%% Mass Matrix in frame {M}
|
||||
M = diag([m,m,I]);
|
||||
|
||||
%% Stiffness Matrix in frame {M}
|
||||
K = J'*Kr*J;
|
||||
|
||||
%% Damping Matrix in frame {M}
|
||||
C = J'*Cr*J;
|
||||
|
||||
%% Plant in frame {M}
|
||||
G = J*inv(M*s^2 + C*s + K)*J';
|
||||
#+end_src
|
||||
|
||||
The magnitude of the coupled plant $G$ is shown in Figure ref:fig:detail_control_coupled_plant_bode.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
tiledlayout(3, 3, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||
|
||||
for out_i = 1:3
|
||||
for in_i = 1:3
|
||||
nexttile;
|
||||
plot(freqs, abs(squeeze(freqresp(G(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([1e-1, 2e1]); ylim([1e-6, 1e-2]);
|
||||
legend('location', 'northeast', 'FontSize', 8);
|
||||
|
||||
if in_i == 1
|
||||
ylabel('Mag. [m/N]')
|
||||
else
|
||||
set(gca, 'YTickLabel',[]);
|
||||
end
|
||||
|
||||
if out_i == 3
|
||||
xlabel('Frequency [Hz]')
|
||||
else
|
||||
set(gca, 'XTickLabel',[]);
|
||||
end
|
||||
end
|
||||
end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_coupled_plant_bode.pdf', 'width', 'full', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_coupled_plant_bode
|
||||
#+caption: Magnitude of the coupled plant.
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_coupled_plant_bode.png]]
|
||||
|
||||
** Decentralized Plant / Control in the frame of the struts
|
||||
** Jacobian Decoupling
|
||||
<<ssec:detail_control_comp_jacobian>>
|
||||
|
||||
The Jacobian matrix can be used to:
|
||||
- Convert joints velocity $\dot{\mathcal{L}}$ to payload velocity and angular velocity $\dot{\bm{\mathcal{X}}}_{\{O\}}$:
|
||||
\[ \dot{\bm{\mathcal{X}}}_{\{O\}} = J_{\{O\}} \dot{\bm{\mathcal{L}}} \]
|
||||
- Convert actuators forces $\bm{\tau}$ to forces/torque applied on the payload $\bm{\mathcal{F}}_{\{O\}}$:
|
||||
\[ \bm{\mathcal{F}}_{\{O\}} = J_{\{O\}}^T \bm{\tau} \]
|
||||
with $\{O\}$ any chosen frame.
|
||||
|
||||
By wisely choosing frame $\{O\}$, we can obtain nice decoupling for plant:
|
||||
\begin{equation}
|
||||
\bm{G}_{\{O\}} = J_{\{O\}}^{-1} \bm{G} J_{\{O\}}^{-T}
|
||||
\end{equation}
|
||||
|
||||
The obtained plan corresponds to forces/torques applied on origin of frame $\{O\}$ to the translation/rotation of the payload expressed in frame $\{O\}$.
|
||||
|
||||
#+begin_src latex :file detail_control_jacobian_decoupling_arch.pdf
|
||||
\begin{tikzpicture}
|
||||
\node[block] (G) {$\bm{G}$};
|
||||
\node[block, left=0.6 of G] (Jt) {$J_{\{O\}}^{-T}$};
|
||||
\node[block, right=0.6 of G] (Ja) {$J_{\{O\}}^{-1}$};
|
||||
|
||||
% Connections and labels
|
||||
\draw[<-] (Jt.west) -- ++(-1.2, 0) node[above right]{$\bm{\mathcal{F}}_{\{O\}}$};
|
||||
\draw[->] (Jt.east) -- (G.west) node[above left]{$\bm{\tau}$};
|
||||
\draw[->] (G.east) -- (Ja.west) node[above left]{$\bm{\mathcal{L}}$};
|
||||
\draw[->] (Ja.east) -- ++( 1.2, 0) node[above left]{$\bm{\mathcal{X}}_{\{O\}}$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(Jt.south west) (Ja.north east)}, fill=black!10!white, draw, dashed, inner sep=4pt] (Gx) {};
|
||||
\node[above] at (Gx.north) {$\bm{G}_{\{O\}}$};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_jacobian_decoupling_arch
|
||||
#+caption: Block diagram of the transfer function from $\bm{\mathcal{F}}_{\{O\}}$ to $\bm{\mathcal{X}}_{\{O\}}$
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_jacobian_decoupling_arch.png]]
|
||||
|
||||
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 inputs and outputs of the decoupled plant $\bm{G}_{\{O\}}$ 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\}$
|
||||
|
||||
It is then easy to include a reference tracking input that specify the wanted motion of the payload in the frame $\{O\}$.
|
||||
|
||||
** Modal Decoupling
|
||||
<<ssec:detail_control_comp_modal>>
|
||||
|
||||
** Data Based Decoupling
|
||||
Let's consider a system with the following equations of motion:
|
||||
\begin{equation}
|
||||
M \bm{\ddot{x}} + C \bm{\dot{x}} + K \bm{x} = \bm{\mathcal{F}}
|
||||
\end{equation}
|
||||
|
||||
- Static decoupling
|
||||
- SVD
|
||||
And the measurement output is a combination of the motion variable $\bm{x}$:
|
||||
\begin{equation}
|
||||
\bm{y} = C_{ox} \bm{x} + C_{ov} \dot{\bm{x}}
|
||||
\end{equation}
|
||||
|
||||
Let's make a *change of variables*:
|
||||
\begin{equation}
|
||||
\boxed{\bm{x} = \Phi \bm{x}_m}
|
||||
\end{equation}
|
||||
with:
|
||||
- $\bm{x}_m$ the modal amplitudes
|
||||
- $\Phi$ a matrix whose columns are the modes shapes of the system
|
||||
|
||||
And we map the actuator forces:
|
||||
\begin{equation}
|
||||
\bm{\mathcal{F}} = J^T \bm{\tau}
|
||||
\end{equation}
|
||||
|
||||
The equations of motion become:
|
||||
\begin{equation}
|
||||
M \Phi \bm{\ddot{x}}_m + C \Phi \bm{\dot{x}}_m + K \Phi \bm{x}_m = J^T \bm{\tau}
|
||||
\end{equation}
|
||||
And the measured output is:
|
||||
\begin{equation}
|
||||
\bm{y} = C_{ox} \Phi \bm{x}_m + C_{ov} \Phi \dot{\bm{x}}_m
|
||||
\end{equation}
|
||||
|
||||
By pre-multiplying the EoM by $\Phi^T$:
|
||||
\begin{equation}
|
||||
\Phi^T M \Phi \bm{\ddot{x}}_m + \Phi^T C \Phi \bm{\dot{x}}_m + \Phi^T K \Phi \bm{x}_m = \Phi^T J^T \bm{\tau}
|
||||
\end{equation}
|
||||
|
||||
And we note:
|
||||
- $M_m = \Phi^T M \Phi = \text{diag}(\mu_i)$ the modal mass matrix
|
||||
- $C_m = \Phi^T C \Phi = \text{diag}(2 \xi_i \mu_i \omega_i)$ (classical damping)
|
||||
- $K_m = \Phi^T K \Phi = \text{diag}(\mu_i \omega_i^2)$ the modal stiffness matrix
|
||||
|
||||
And we have:
|
||||
\begin{equation}
|
||||
\ddot{\bm{x}}_m + 2 \Xi \Omega \dot{\bm{x}}_m + \Omega^2 \bm{x}_m = \mu^{-1} \Phi^T J^T \bm{\tau}
|
||||
\end{equation}
|
||||
with:
|
||||
- $\mu = \text{diag}(\mu_i)$
|
||||
- $\Omega = \text{diag}(\omega_i)$
|
||||
- $\Xi = \text{diag}(\xi_i)$
|
||||
|
||||
And we call the *modal input matrix*:
|
||||
\begin{equation}
|
||||
\boxed{B_m = \mu^{-1} \Phi^T J^T}
|
||||
\end{equation}
|
||||
And the *modal output matrices*:
|
||||
\begin{equation}
|
||||
\boxed{C_m = C_{ox} \Phi + C_{ov} \Phi s}
|
||||
\end{equation}
|
||||
|
||||
|
||||
Let's note the "modal input":
|
||||
\begin{equation}
|
||||
\bm{\tau}_m = B_m \bm{\tau}
|
||||
\end{equation}
|
||||
|
||||
The transfer function from $\bm{\tau}_m$ to $\bm{x}_m$ is:
|
||||
\begin{equation} \label{eq:modal_eq}
|
||||
\boxed{\frac{\bm{x}_m}{\bm{\tau}_m} = \left( I_n s^2 + 2 \Xi \Omega s + \Omega^2 \right)^{-1}}
|
||||
\end{equation}
|
||||
which is a *diagonal* transfer function matrix.
|
||||
We therefore have decoupling of the dynamics from $\bm{\tau}_m$ to $\bm{x}_m$.
|
||||
|
||||
|
||||
We now expressed the transfer function from input $\bm{\tau}$ to output $\bm{y}$ as a function of the "modal variables":
|
||||
\begin{equation}
|
||||
\boxed{\frac{\bm{y}}{\bm{\tau}} = \underbrace{\left( C_{ox} + s C_{ov} \right) \Phi}_{C_m} \underbrace{\left( I_n s^2 + 2 \Xi \Omega s + \Omega^2 \right)^{-1}}_{\text{diagonal}} \underbrace{\left( \mu^{-1} \Phi^T J^T \right)}_{B_m}}
|
||||
\end{equation}
|
||||
|
||||
By inverting $B_m$ and $C_m$ and using them as shown in Figure ref:fig:modal_decoupling_architecture, we can see that we control the system in the "modal space" in which it is decoupled.
|
||||
|
||||
#+begin_src latex :file detail_control_decoupling_modal.pdf
|
||||
\begin{tikzpicture}
|
||||
\node[block] (G) {$\bm{G}$};
|
||||
\node[block, left=0.6 of G] (Bm) {$B_m^{-1}$};
|
||||
\node[block, right=0.6 of G] (Cm) {$C_m^{-1}$};
|
||||
|
||||
% Connections and labels
|
||||
\draw[<-] (Bm.west) -- ++(-1.0, 0) node[above right]{$\bm{\tau}_m$};
|
||||
\draw[->] (Bm.east) -- (G.west) node[above left]{$\bm{\tau}$};
|
||||
\draw[->] (G.east) -- (Cm.west) node[above left]{$\bm{y}$};
|
||||
\draw[->] (Cm.east) -- ++( 1.0, 0) node[above left]{$\bm{x}_m$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(Bm.south west) (Cm.north east)}, fill=black!10!white, draw, dashed, inner sep=4pt] (Gm) {};
|
||||
\node[above] at (Gm.north) {$\bm{G}_m$};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:modal_decoupling_architecture
|
||||
#+caption: Modal Decoupling Architecture
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_decoupling_modal.png]]
|
||||
|
||||
The system $\bm{G}_m(s)$ shown in Figure ref:fig:modal_decoupling_architecture is diagonal eqref:eq:modal_eq.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
Using this decoupling strategy, it is possible to control each mode individually.
|
||||
|
||||
** SVD Decoupling
|
||||
<<ssec:detail_control_comp_svd>>
|
||||
|
||||
Procedure:
|
||||
- Identify the dynamics of the system from inputs to outputs (can be obtained experimentally)
|
||||
- Choose a frequency where we want to decouple the system (usually, the crossover frequency is a good choice)
|
||||
#+begin_src matlab :eval no
|
||||
%% Decoupling frequency [rad/s]
|
||||
wc = 2*pi*10;
|
||||
|
||||
%% System's response at the decoupling frequency
|
||||
H1 = evalfr(G, j*wc);
|
||||
#+end_src
|
||||
- Compute a real approximation of the system's response at that frequency
|
||||
#+begin_src matlab :eval no
|
||||
%% Real approximation of G(j.wc)
|
||||
D = pinv(real(H1'*H1));
|
||||
H1 = pinv(D*real(H1'*diag(exp(j*angle(diag(H1*D*H1.'))/2))));
|
||||
#+end_src
|
||||
- Perform a Singular Value Decomposition of the real approximation
|
||||
#+begin_src matlab :eval no
|
||||
[U,S,V] = svd(H1);
|
||||
#+end_src
|
||||
- Use the singular input and output matrices to decouple the system as shown in Figure ref:fig:detail_control_decoupling_svd
|
||||
\[ G_{svd}(s) = U^{-1} G(s) V^{-T} \]
|
||||
#+begin_src matlab :eval no
|
||||
Gsvd = inv(U)*G*inv(V');
|
||||
#+end_src
|
||||
|
||||
#+begin_src latex :file detail_control_decoupling_svd.pdf
|
||||
\begin{tikzpicture}
|
||||
\node[block] (G) {$\bm{G}$};
|
||||
|
||||
\node[block, left=0.6 of G.west] (V) {$V^{-T}$};
|
||||
\node[block, right=0.6 of G.east] (U) {$U^{-1}$};
|
||||
|
||||
% Connections and labels
|
||||
\draw[<-] (V.west) -- ++(-0.8, 0) node[above right]{$u$};
|
||||
\draw[->] (V.east) -- (G.west) node[above left]{$\tau$};
|
||||
\draw[->] (G.east) -- (U.west) node[above left]{$a$};
|
||||
\draw[->] (U.east) -- ++( 0.8, 0) node[above left]{$y$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(V.south west) (G.north-|U.east)}, fill=black!10!white, draw, dashed, inner sep=4pt] (Gsvd) {};
|
||||
\node[above] at (Gsvd.north) {$\bm{G}_{SVD}$};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_decoupling_svd
|
||||
#+caption: Decoupled plant $\bm{G}_{SVD}$ using the Singular Value Decomposition
|
||||
#+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?
|
||||
|
||||
** Comparison
|
||||
<<ssec:detail_control_decoupling_comp>>
|
||||
*** Jacobian Decoupling
|
||||
Decoupling properties depends on the chosen frame $\{O\}$.
|
||||
|
||||
Let's take the CoM as the decoupling frame.
|
||||
|
||||
#+begin_src matlab
|
||||
Gx = pinv(J)*G*pinv(J');
|
||||
Gx.InputName = {'Fx', 'Fy', 'Mz'};
|
||||
Gx.OutputName = {'Dx', 'Dy', 'Rz'};
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(-1, 2, 1000);
|
||||
figure;
|
||||
|
||||
% Magnitude
|
||||
hold on;
|
||||
for i_in = 1:3
|
||||
for i_out = [i_in+1:3]
|
||||
plot(freqs, abs(squeeze(freqresp(Gx(i_out, i_in), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(Gx(1, 2), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'DisplayName', '$G_{x}(i,j)\ i \neq j$');
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
for i_in_out = 1:3
|
||||
plot(freqs, abs(squeeze(freqresp(Gx(i_in_out, i_in_out), freqs, 'Hz'))), 'DisplayName', sprintf('$G_{x}(%d,%d)$', i_in_out, i_in_out));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Magnitude');
|
||||
ylim([1e-7, 1e-1]);
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_jacobian_plant.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_jacobian_plant
|
||||
#+caption: Plant decoupled using the Jacobian matrices $G_x(s)$
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_jacobian_plant.png]]
|
||||
|
||||
*** Modal Decoupling
|
||||
For the system in Figure ref:fig:detail_control_model_test_decoupling, we have:
|
||||
\begin{align}
|
||||
\bm{x} &= \begin{bmatrix} x \\ y \\ R_z \end{bmatrix} \\
|
||||
\bm{y} &= \mathcal{L} = J \bm{x}; \quad C_{ox} = J; \quad C_{ov} = 0 \\
|
||||
M &= \begin{bmatrix}
|
||||
m & 0 & 0 \\
|
||||
0 & m & 0 \\
|
||||
0 & 0 & I
|
||||
\end{bmatrix}; \quad K = J' \begin{bmatrix}
|
||||
k & 0 & 0 \\
|
||||
0 & k & 0 \\
|
||||
0 & 0 & k
|
||||
\end{bmatrix} J; \quad C = J' \begin{bmatrix}
|
||||
c & 0 & 0 \\
|
||||
0 & c & 0 \\
|
||||
0 & 0 & c
|
||||
\end{bmatrix} J
|
||||
\end{align}
|
||||
|
||||
In order to apply the architecture shown in Figure ref:fig:modal_decoupling_architecture, we need to compute $C_{ox}$, $C_{ov}$, $\Phi$, $\mu$ and $J$.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Modal Decomposition
|
||||
[V,D] = eig(M\K);
|
||||
|
||||
%% Modal Mass Matrix
|
||||
mu = V'*M*V;
|
||||
|
||||
%% Modal output matrix
|
||||
Cm = J*V;
|
||||
|
||||
%% Modal input matrix
|
||||
Bm = inv(mu)*V'*J';
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no
|
||||
data2orgtable(Bm, {}, {}, ' %.4f ');
|
||||
#+end_src
|
||||
|
||||
#+name: tab:modal_decoupling_Bm
|
||||
#+caption: $B_m$ matrix
|
||||
#+attr_latex: :environment tabularx :width 0.3\linewidth :align ccc
|
||||
#+attr_latex: :center t :booktabs t :float t
|
||||
#+RESULTS:
|
||||
| -0.0004 | -0.0007 | 0.0007 |
|
||||
| -0.0151 | 0.0041 | -0.0041 |
|
||||
| 0.0 | 0.0025 | 0.0025 |
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no
|
||||
data2orgtable(Cm, {}, {}, ' %.1f ');
|
||||
#+end_src
|
||||
|
||||
#+name: tab:modal_decoupling_Cm
|
||||
#+caption: $C_m$ matrix
|
||||
#+attr_latex: :environment tabularx :width 0.2\linewidth :align ccc
|
||||
#+attr_latex: :center t :booktabs t :float t
|
||||
#+RESULTS:
|
||||
| -0.1 | -1.8 | 0.0 |
|
||||
| -0.2 | 0.5 | 1.0 |
|
||||
| 0.2 | -0.5 | 1.0 |
|
||||
|
||||
And the plant in the modal space is defined below and its magnitude is shown in Figure ref:fig:detail_control_modal_plant.
|
||||
#+begin_src matlab
|
||||
Gm = inv(Cm)*G*inv(Bm);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(-1, 2, 1000);
|
||||
figure;
|
||||
|
||||
% Magnitude
|
||||
hold on;
|
||||
for i_in = 1:3
|
||||
for i_out = [i_in+1:3]
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(i_out, i_in), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(1, 2), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'DisplayName', '$G_m(i,j)\ i \neq j$');
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
for i_in_out = 1:3
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(i_in_out, i_in_out), freqs, 'Hz'))), 'DisplayName', sprintf('$G_m(%d,%d)$', i_in_out, i_in_out));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Magnitude');
|
||||
ylim([1e-6, 1e2]);
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_modal_plant.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_modal_plant
|
||||
#+caption: Modal plant $G_m(s)$
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_modal_plant.png]]
|
||||
|
||||
Let's now close one loop at a time and see how the transmissibility changes.
|
||||
|
||||
*** SVD Decoupling
|
||||
#+begin_src matlab
|
||||
%% Decoupling frequency [rad/s]
|
||||
wc = 2*pi*10;
|
||||
|
||||
%% System's response at the decoupling frequency
|
||||
H1 = evalfr(G, j*wc);
|
||||
|
||||
%% Real approximation of G(j.wc)
|
||||
D = pinv(real(H1'*H1));
|
||||
H1 = pinv(D*real(H1'*diag(exp(j*angle(diag(H1*D*H1.'))/2))));
|
||||
|
||||
[U,S,V] = svd(H1);
|
||||
|
||||
Gsvd = inv(U)*G*inv(V');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no
|
||||
data2orgtable(H1, {}, {}, ' %.2g ');
|
||||
#+end_src
|
||||
|
||||
#+caption: Real approximate of $G$ at the decoupling frequency $\omega_c$
|
||||
#+attr_latex: :environment tabularx :width 0.3\linewidth :align ccc
|
||||
#+attr_latex: :center t :booktabs t :float t
|
||||
#+RESULTS:
|
||||
| -8e-06 | 2.1e-06 | -2.1e-06 |
|
||||
| 2.1e-06 | -1.3e-06 | -2.5e-08 |
|
||||
| -2.1e-06 | -2.5e-08 | -1.3e-06 |
|
||||
|
||||
- [ ] Do we have something special when applying SVD to a collocated MIMO system?
|
||||
- *Verify why such a good decoupling is obtained!*
|
||||
# - When applying SVD on a non-collocated MIMO system, we obtained a decoupled plant looking like the one in Figure ref:fig:detail_control_gravimeter_svd_plant
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(-1, 2, 1000);
|
||||
figure;
|
||||
|
||||
% Magnitude
|
||||
hold on;
|
||||
for i_in = 1:3
|
||||
for i_out = [i_in+1:3]
|
||||
plot(freqs, abs(squeeze(freqresp(Gsvd(i_out, i_in), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(Gsvd(1, 2), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'DisplayName', '$G_{svd}(i,j)\ i \neq j$');
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
for i_in_out = 1:3
|
||||
plot(freqs, abs(squeeze(freqresp(Gsvd(i_in_out, i_in_out), freqs, 'Hz'))), 'DisplayName', sprintf('$G_{svd}(%d,%d)$', i_in_out, i_in_out));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Magnitude');
|
||||
% ylim([1e-8, 1e-2]);
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_svd_plant.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_svd_plant
|
||||
#+caption: Svd plant $G_m(s)$
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_svd_plant.png]]
|
||||
|
||||
** TODO Robustness of the decoupling strategies? :noexport:
|
||||
*** Introduction :ignore:
|
||||
What happens if we add an additional resonance in the system (Figure ref:fig:model_test_decoupling_spurious_res).
|
||||
|
||||
Having less actuator than DoF (under-actuated system):
|
||||
- modal decoupling: can still control first $n$ modes?
|
||||
- SVD decoupling: does not matter
|
||||
- Jacobian decoupling: could give poor decoupling?
|
||||
|
||||
#+name: fig:model_test_decoupling_spurious_res
|
||||
#+caption: Plant with spurious resonance (additional DoF)
|
||||
[[file:figs/model_test_decoupling_spurious_res.png]]
|
||||
|
||||
*** Plant
|
||||
A multi body model of the system in Figure ref:fig:model_test_decoupling_spurious_res has been made using Simscape.
|
||||
|
||||
Its parameters are defined below:
|
||||
#+begin_src matlab
|
||||
leq = 20e-3; % Equilibrium length of struts [m]
|
||||
mr = 5; % [kg]
|
||||
kr = (2*pi*10)^2*mr; % Stiffness [N/m]
|
||||
cr = 1e1; % Damping [N/(m/s)]
|
||||
|
||||
m = 400 - mr; % Mass [kg]
|
||||
#+end_src
|
||||
|
||||
The plant is then identified and shown in Figure ref:fig:detail_control_coupled_plant_bode_spurious.
|
||||
The added resonance only slightly modifies the plant around 10Hz.
|
||||
#+begin_src matlab :exports none
|
||||
%% Name of the Simulink File
|
||||
mdl = 'suspended_mass';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/dL'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
Gr = linearize(mdl, io);
|
||||
Gr.InputName = {'F1', 'F2', 'F3'};
|
||||
Gr.OutputName = {'L1', 'L2', 'L3'};
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
tiledlayout(3, 3, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||
|
||||
for out_i = 1:3
|
||||
for in_i = 1:3
|
||||
nexttile;
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(freqresp(G(out_i,in_i), freqs, 'Hz'))), 'k-', ...
|
||||
'DisplayName', sprintf('$\\mathcal{L}_%i/\\tau_%i$', out_i, in_i));
|
||||
plot(freqs, abs(squeeze(freqresp(Gr(out_i,in_i), freqs, 'Hz'))), 'k--', ...
|
||||
'HandleVisibility', 'off');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlim([1e-1, 2e1]); ylim([1e-6, 1e-2]);
|
||||
legend('location', 'northeast', 'FontSize', 8);
|
||||
|
||||
if in_i == 1
|
||||
ylabel('Mag. [m/N]')
|
||||
else
|
||||
set(gca, 'YTickLabel',[]);
|
||||
end
|
||||
|
||||
if out_i == 3
|
||||
xlabel('Frequency [Hz]')
|
||||
else
|
||||
set(gca, 'XTickLabel',[]);
|
||||
end
|
||||
end
|
||||
end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_coupled_plant_bode_spurious.pdf', 'width', 'full', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_coupled_plant_bode_spurious
|
||||
#+caption: Magnitude of the coupled plant without additional mode (solid) and with the additional mode (dashed).
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_coupled_plant_bode_spurious.png]]
|
||||
|
||||
*** Jacobian Decoupling
|
||||
The obtained plant is decoupled using the Jacobian matrix.
|
||||
|
||||
#+begin_src matlab
|
||||
Gxr = pinv(J)*Gr*pinv(J');
|
||||
Gxr.InputName = {'Fx', 'Fy', 'Mz'};
|
||||
Gxr.OutputName = {'Dx', 'Dy', 'Rz'};
|
||||
#+end_src
|
||||
|
||||
The obtained plant is shown in Figure ref:fig:detail_control_jacobian_plant_spurious and is not much different than for the plant without the spurious resonance.
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(-1, 2, 1000);
|
||||
figure;
|
||||
|
||||
% Magnitude
|
||||
hold on;
|
||||
for i_in = 1:3
|
||||
for i_out = [i_in+1:3]
|
||||
plot(freqs, abs(squeeze(freqresp(Gxr(i_out, i_in), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(Gxr(1, 2), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'DisplayName', '$G_{x,r}(i,j)\ i \neq j$');
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
for i_in_out = 1:3
|
||||
plot(freqs, abs(squeeze(freqresp(Gxr(i_in_out, i_in_out), freqs, 'Hz'))), 'DisplayName', sprintf('$G_{x,r}(%d,%d)$', i_in_out, i_in_out));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Magnitude');
|
||||
ylim([1e-7, 1e-1]);
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_jacobian_plant_spurious.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_jacobian_plant_spurious
|
||||
#+caption: Plant with spurious resonance decoupled using the Jacobian matrices $G_{x,r}(s)$
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_jacobian_plant_spurious.png]]
|
||||
|
||||
*** Modal Decoupling
|
||||
The obtained plant is now decoupled using the modal matrices obtained with the plant not including the added resonance.
|
||||
#+begin_src matlab
|
||||
Gmr = inv(Cm)*Gr*inv(Bm);
|
||||
#+end_src
|
||||
|
||||
The obtained decoupled plant is shown in Figure ref:fig:detail_control_modal_plant_spurious.
|
||||
Compare to the decoupled plant in Figure ref:fig:detail_control_modal_plant, the added resonance induces some coupling, especially around the frequency of the added spurious resonance.
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(-1, 2, 1000);
|
||||
figure;
|
||||
|
||||
% Magnitude
|
||||
hold on;
|
||||
for i_in = 1:3
|
||||
for i_out = [i_in+1:3]
|
||||
plot(freqs, abs(squeeze(freqresp(Gmr(i_out, i_in), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(Gmr(1, 2), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'DisplayName', '$G_{m,r}(i,j)\ i \neq j$');
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
for i_in_out = 1:3
|
||||
plot(freqs, abs(squeeze(freqresp(Gmr(i_in_out, i_in_out), freqs, 'Hz'))), 'DisplayName', sprintf('$G_{m,r}(%d,%d)$', i_in_out, i_in_out));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Magnitude');
|
||||
ylim([1e-6, 1e2]);
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_modal_plant_spurious.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_modal_plant_spurious
|
||||
#+caption: Modal plant including spurious resonance $G_{m,r}(s)$
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_modal_plant_spurious.png]]
|
||||
|
||||
*** SVD Decoupling
|
||||
The SVD decoupling is performed on the new obtained plant.
|
||||
The decoupling frequency is slightly shifted in order not to interfere too much with the spurious resonance.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Decoupling frequency [rad/s]
|
||||
wc = 2*pi*7;
|
||||
|
||||
%% System's response at the decoupling frequency
|
||||
H1 = evalfr(Gr, j*wc);
|
||||
|
||||
%% Real approximation of G(j.wc)
|
||||
D = pinv(real(H1'*H1));
|
||||
H1 = pinv(D*real(H1'*diag(exp(j*angle(diag(H1*D*H1.'))/2))));
|
||||
|
||||
[U,S,V] = svd(H1);
|
||||
|
||||
Gsvdr = inv(U)*Gr*inv(V');
|
||||
#+end_src
|
||||
|
||||
The obtained plant is shown in Figure ref:fig:detail_control_svd_plant_spurious.
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(-1, 2, 1000);
|
||||
figure;
|
||||
|
||||
% Magnitude
|
||||
hold on;
|
||||
for i_in = 1:3
|
||||
for i_out = [i_in+1:3]
|
||||
plot(freqs, abs(squeeze(freqresp(Gsvdr(i_out, i_in), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(Gsvdr(1, 2), freqs, 'Hz'))), 'color', [0,0,0,0.2], ...
|
||||
'DisplayName', '$G_{svd,r}(i,j)\ i \neq j$');
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
for i_in_out = 1:3
|
||||
plot(freqs, abs(squeeze(freqresp(Gsvdr(i_in_out, i_in_out), freqs, 'Hz'))), 'DisplayName', sprintf('$G_{svd,r}(%d,%d)$', i_in_out, i_in_out));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Magnitude');
|
||||
ylim([1e-8, 1e-2]);
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/detail_control_svd_plant_spurious.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_svd_plant_spurious
|
||||
#+caption: SVD decoupled plant including a spurious resonance $G_{svd,r}(s)$
|
||||
#+RESULTS:
|
||||
[[file:figs/detail_control_svd_plant_spurious.png]]
|
||||
|
||||
** Conclusion
|
||||
:PROPERTIES:
|
||||
:UNNUMBERED: t
|
||||
:END:
|
||||
|
||||
Table that compares all the strategies.
|
||||
The three proposed methods clearly have a lot in common as they all tend to make system more decoupled by pre and/or post multiplying by a constant matrix
|
||||
However, the three methods also differs by a number of points which are summarized in Table ref:tab:detail_control_decoupling_strategies_comp.
|
||||
|
||||
Other decoupling strategies could be included in this study, such as:
|
||||
- DC decoupling: pre-multiply the plant by $G(0)^{-1}$
|
||||
- full decoupling: pre-multiply the plant by $G(s)^{-1}$
|
||||
|
||||
|
||||
#+name: tab:detail_control_decoupling_strategies_comp
|
||||
#+caption: Comparison of decoupling strategies
|
||||
#+attr_latex: :environment tabularx :width \linewidth :align lXXX
|
||||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||||
| | *Jacobian* | *Modal* | *SVD* |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Philosophy* | Topology Driven | Physics Driven | Data Driven |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Requirements* | Known geometry | Known equations of motion | Identified FRF |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Decoupling Matrices* | Decoupling using $J$ obtained from geometry | Decoupling using $\Phi$ obtained from modal decomposition | Decoupling using $U$ and $V$ obtained from SVD |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Decoupled Plant* | $\bm{G}_{\{O\}} = J_{\{O\}}^{-1} \bm{G} J_{\{O\}}^{-T}$ | $\bm{G}_m = C_m^{-1} \bm{G} B_m^{-1}$ | $\bm{G}_{svd}(s) = U^{-1} \bm{G}(s) V^{-T}$ |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Implemented Controller* | $\bm{K}_{\{O\}} = J_{\{O\}}^{-T} \bm{K}_{d}(s) J_{\{O\}}^{-1}$ | $\bm{K}_m = B_m^{-1} \bm{K}_{d}(s) C_m^{-1}$ | $\bm{K}_{svd}(s) = V^{-T} \bm{K}_{d}(s) U^{-1}$ |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Physical Interpretation* | Forces/Torques to Displacement/Rotation in chosen frame | Inputs to excite individual modes | Directions of max to min controllability/observability |
|
||||
| | | Output to sense individual modes | |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Decoupling Properties* | Decoupling at low or high frequency depending on the chosen frame | Good decoupling at all frequencies | Good decoupling near the chosen frequency |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Pros* | Physical inputs / outputs | Target specific modes | Good Decoupling near the crossover |
|
||||
| | Good decoupling at High frequency (diagonal mass matrix if Jacobian taken at the CoM) | 2nd order diagonal plant | Very General |
|
||||
| | Good decoupling at Low frequency (if Jacobian taken at specific point) | | |
|
||||
| | Easy integration of meaningful reference inputs | | |
|
||||
| | | | |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *Cons* | Coupling between force/rotation may be high at low frequency (non diagonal terms in K) | Need analytical equations | Loose the physical meaning of inputs /outputs |
|
||||
| | Limited to parallel mechanisms (?) | | Decoupling depends on the real approximation validity |
|
||||
| | If good decoupling at all frequencies => requires specific mechanical architecture | | Diagonal plants may not be easy to control |
|
||||
|---------------------------+----------------------------------------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------|
|
||||
| *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) |
|
||||
|
||||
* Closed-Loop Shaping using Complementary Filters
|
||||
:PROPERTIES:
|
||||
@ -2618,7 +3435,7 @@ exportFig('figs/detail_control_spec_S_T.pdf', 'width', 'half', 'height', 'normal
|
||||
#+end_src
|
||||
|
||||
#+name: fig:detail_control_spec_S_T_obtained_filters
|
||||
#+caption: Caption with reference to sub figure (\subref{fig:detail_control_spec_S_T}) (\subref{detail_control_hinf_filters_result_weights})
|
||||
#+caption: Caption with reference to sub figure (\subref{fig:detail_control_spec_S_T}) (\subref{fig:detail_control_hinf_filters_result_weights})
|
||||
#+attr_latex: :options [htbp]
|
||||
#+begin_figure
|
||||
#+attr_latex: :caption \subcaption{\label{fig:detail_control_spec_S_T}Closed loop specifications}
|
||||
|
BIN
nass-control.pdf
453
nass-control.tex
@ -1,4 +1,4 @@
|
||||
% Created 2025-04-03 Thu 17:13
|
||||
% Created 2025-04-03 Thu 17:40
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||
|
||||
@ -25,7 +25,7 @@ Several considerations:
|
||||
\item Section \ref{sec:detail_control_optimization}: How to design the controller
|
||||
\end{itemize}
|
||||
\chapter{Multiple Sensor Control}
|
||||
\label{sec:orgacbb166}
|
||||
\label{sec:orga9622a3}
|
||||
\label{sec:detail_control_multiple_sensor}
|
||||
|
||||
\textbf{Look at what was done in the introduction \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A0-nass-introduction/nass-introduction.org}{Stewart platforms: Control architecture}}
|
||||
@ -143,13 +143,13 @@ Although many design methods of complementary filters have been proposed in the
|
||||
Fortunately, both the robustness of the fusion and the super sensor characteristics can be linked to the magnitude of the complementary filters \cite{dehaeze19_compl_filter_shapin_using_synth}.
|
||||
Based on that, this paper introduces a new way to design complementary filters using the \(\mathcal{H}_\infty\) synthesis which allows to shape the complementary filters' magnitude in an easy and intuitive way.
|
||||
\section{Sensor Fusion and Complementary Filters Requirements}
|
||||
\label{sec:org9733630}
|
||||
\label{sec:org338cf90}
|
||||
\label{ssec:detail_control_sensor_fusion_requirements}
|
||||
Complementary filtering provides a framework for fusing signals from different sensors.
|
||||
As the effectiveness of the fusion depends on the proper design of the complementary filters, they are expected to fulfill certain requirements.
|
||||
These requirements are discussed in this section.
|
||||
\subsection{Sensor Fusion Architecture}
|
||||
\label{sec:org45e5dc5}
|
||||
\label{sec:org1a108b3}
|
||||
|
||||
A general sensor fusion architecture using complementary filters is shown in Fig. \ref{fig:detail_control_sensor_fusion_overview} where several sensors (here two) are measuring the same physical quantity \(x\).
|
||||
The two sensors output signals \(\hat{x}_1\) and \(\hat{x}_2\) are estimates of \(x\).
|
||||
@ -174,7 +174,7 @@ Therefore, a pair of complementary filter needs to satisfy the following conditi
|
||||
|
||||
It will soon become clear why the complementary property is important for the sensor fusion architecture.
|
||||
\subsection{Sensor Models and Sensor Normalization}
|
||||
\label{sec:org117d609}
|
||||
\label{sec:orgf7e77fa}
|
||||
|
||||
In order to study such sensor fusion architecture, a model for the sensors is required.
|
||||
Such model is shown in Fig. \ref{fig:detail_control_sensor_model} and consists of a linear time invariant (LTI) system \(G_i(s)\) representing the sensor dynamics and an input \(n_i\) representing the sensor noise.
|
||||
@ -218,7 +218,7 @@ The super sensor output is therefore equal to:
|
||||
\caption{\label{fig:detail_control_fusion_super_sensor}Sensor fusion architecture with two normalized sensors.}
|
||||
\end{figure}
|
||||
\subsection{Noise Sensor Filtering}
|
||||
\label{sec:orgb1cc291}
|
||||
\label{sec:orgf16500e}
|
||||
|
||||
In this section, it is supposed that all the sensors are perfectly normalized, such that:
|
||||
|
||||
@ -257,7 +257,7 @@ However, the two sensors have usually high noise levels over distinct frequency
|
||||
In such case, to lower the noise of the super sensor, the norm \(|H_1(j\omega)|\) has to be small when \(\Phi_{n_1}(\omega)\) is larger than \(\Phi_{n_2}(\omega)\) and the norm \(|H_2(j\omega)|\) has to be small when \(\Phi_{n_2}(\omega)\) is larger than \(\Phi_{n_1}(\omega)\).
|
||||
Hence, by properly shaping the norm of the complementary filters, it is possible to reduce the noise of the super sensor.
|
||||
\subsection{Sensor Fusion Robustness}
|
||||
\label{sec:orgc1bccc3}
|
||||
\label{sec:orgfd6ea33}
|
||||
|
||||
In practical systems the sensor normalization is not perfect and condition \eqref{eq:detail_control_perfect_dynamics} is not verified.
|
||||
|
||||
@ -317,7 +317,7 @@ For instance, the phase \(\Delta\phi(\omega)\) added by the super sensor dynamic
|
||||
As it is generally desired to limit the maximum phase added by the super sensor, \(H_1(s)\) and \(H_2(s)\) should be designed such that \(\Delta \phi\) is bounded to acceptable values.
|
||||
Typically, the norm of the complementary filter \(|H_i(j\omega)|\) should be made small when \(|w_i(j\omega)|\) is large, i.e., at frequencies where the sensor dynamics is uncertain.
|
||||
\section{Complementary Filters Shaping}
|
||||
\label{sec:org48106a8}
|
||||
\label{sec:orgd7c419a}
|
||||
\label{ssec:detail_control_hinf_method}
|
||||
As shown in Section \ref{ssec:detail_control_sensor_fusion_requirements}, the noise and robustness of the super sensor are a function of the complementary filters' norm.
|
||||
Therefore, a synthesis method of complementary filters that allows to shape their norm would be of great use.
|
||||
@ -325,7 +325,7 @@ In this section, such synthesis is proposed by writing the synthesis objective a
|
||||
As weighting functions are used to represent the wanted complementary filters' shape during the synthesis, their proper design is discussed.
|
||||
Finally, the synthesis method is validated on an simple example.
|
||||
\subsection{Synthesis Objective}
|
||||
\label{sec:org8a4a881}
|
||||
\label{sec:orgd2e0d7e}
|
||||
|
||||
The synthesis objective is to shape the norm of two filters \(H_1(s)\) and \(H_2(s)\) while ensuring their complementary property \eqref{eq:detail_control_comp_filter}.
|
||||
This is equivalent as to finding proper and stable transfer functions \(H_1(s)\) and \(H_2(s)\) such that conditions \eqref{eq:detail_control_hinf_cond_complementarity}, \eqref{eq:detail_control_hinf_cond_h1} and \eqref{eq:detail_control_hinf_cond_h2} are satisfied.
|
||||
@ -340,7 +340,7 @@ This is equivalent as to finding proper and stable transfer functions \(H_1(s)\)
|
||||
|
||||
\(W_1(s)\) and \(W_2(s)\) are two weighting transfer functions that are carefully chosen to specify the maximum wanted norm of the complementary filters during the synthesis.
|
||||
\subsection{Shaping of Complementary Filters using \(\mathcal{H}_\infty\) synthesis}
|
||||
\label{sec:org2122803}
|
||||
\label{sec:orgbfba454}
|
||||
|
||||
In this section, it is shown that the synthesis objective can be easily expressed as a standard \(\mathcal{H}_\infty\) optimization problem and therefore solved using convenient tools readily available.
|
||||
|
||||
@ -388,7 +388,7 @@ Note that there is only an implication between the \(\mathcal{H}_\infty\) norm c
|
||||
Hence, the optimization may be a little bit conservative with respect to the set of filters on which it is performed, see \cite[Chap. 2.8.3]{skogestad07_multiv_feedb_contr}.
|
||||
In practice, this is however not an found to be an issue.
|
||||
\subsection{Weighting Functions Design}
|
||||
\label{sec:orgaaf1d4a}
|
||||
\label{sec:orga5537db}
|
||||
|
||||
Weighting functions are used during the synthesis to specify the maximum allowed complementary filters' norm.
|
||||
The proper design of these weighting functions is of primary importance for the success of the presented \(\mathcal{H}_\infty\) synthesis of complementary filters.
|
||||
@ -434,7 +434,7 @@ The typical magnitude of a weighting function generated using \eqref{eq:detail_c
|
||||
\caption{\label{fig:detail_control_weight_formula}Magnitude of a weighting function generated using formula \eqref{eq:detail_control_weight_formula}, \(G_0 = 1e^{-3}\), \(G_\infty = 10\), \(\omega_c = \SI{10}{Hz}\), \(G_c = 2\), \(n = 3\).}
|
||||
\end{figure}
|
||||
\subsection{Validation of the proposed synthesis method}
|
||||
\label{sec:org6a4ff6e}
|
||||
\label{sec:orgd4c8c3e}
|
||||
|
||||
The proposed methodology for the design of complementary filters is now applied on a simple example.
|
||||
Let's suppose two complementary filters \(H_1(s)\) and \(H_2(s)\) have to be designed such that:
|
||||
@ -503,7 +503,7 @@ As expected, the obtained filters are of order \(5\), that is the sum of the wei
|
||||
This simple example illustrates the fact that the proposed methodology for complementary filters shaping is easy to use and effective.
|
||||
A more complex real life example is taken up in the next section.
|
||||
\section{``Closed-Loop'' complementary filters}
|
||||
\label{sec:org8c07343}
|
||||
\label{sec:orgc89b4c8}
|
||||
\label{ssec:detail_control_closed_loop_complementary_filters}
|
||||
|
||||
An alternative way to implement complementary filters is by using a fundamental property of the classical feedback architecture shown in Fig. \ref{fig:detail_control_feedback_sensor_fusion}.
|
||||
@ -593,7 +593,7 @@ The obtained ``closed-loop'' complementary filters are indeed equal to the ones
|
||||
\caption{\label{fig:detail_control_hinf_filters_results_mixed_sensitivity}Bode plot of the obtained complementary filters after \(\mathcal{H}_\infty\) mixed-sensitivity synthesis}
|
||||
\end{figure}
|
||||
\section{Synthesis of a set of three complementary filters}
|
||||
\label{sec:org7f588fb}
|
||||
\label{sec:orgb190cc7}
|
||||
\label{sec:detail_control_hinf_three_comp_filters}
|
||||
|
||||
Some applications may require to merge more than two sensors \cite{stoten01_fusion_kinet_data_using_compos_filter,fonseca15_compl}.
|
||||
@ -705,7 +705,7 @@ Figure \ref{fig:detail_control_three_complementary_filters_results} displays the
|
||||
\caption{\label{fig:detail_control_three_complementary_filters_results}Bode plot of the inverse weighting functions and of the three complementary filters obtained using the \(\mathcal{H}_\infty\) synthesis}
|
||||
\end{figure}
|
||||
\section*{Conclusion}
|
||||
\label{sec:org9b71274}
|
||||
\label{sec:orgfc547f6}
|
||||
A new method for designing complementary filters using the \(\mathcal{H}_\infty\) synthesis has been proposed.
|
||||
It allows to shape the magnitude of the filters by the use of weighting functions during the synthesis.
|
||||
This is very valuable in practice as the characteristics of the super sensor are linked to the complementary filters' magnitude.
|
||||
@ -714,10 +714,14 @@ Several examples were used to emphasize the simplicity and the effectiveness of
|
||||
|
||||
However, the shaping of the complementary filters' magnitude does not allow to directly optimize the super sensor noise and dynamical characteristics.
|
||||
Future work will aim at developing a complementary filter synthesis method that minimizes the super sensor noise while ensuring the robustness of the fusion.
|
||||
\chapter{Decoupling Strategies}
|
||||
\label{sec:orgb61bade}
|
||||
\chapter{Decoupling}
|
||||
\label{sec:org55fd174}
|
||||
\label{sec:detail_control_decoupling}
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] Add some citations about different methods
|
||||
\end{itemize}
|
||||
|
||||
When dealing with MIMO systems, a typical strategy is to:
|
||||
\begin{itemize}
|
||||
\item first decouple the plant dynamics
|
||||
@ -734,40 +738,367 @@ Review of decoupling strategies for Stewart platforms:
|
||||
\item \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org}{Decoupling Strategies}
|
||||
\end{itemize}
|
||||
|
||||
The goal of this section is to compare the use of several methods for the decoupling of parallel manipulators.
|
||||
|
||||
It is structured as follow:
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] What example should be taken?
|
||||
\textbf{3dof system}? stewart platform?
|
||||
Maybe simpler.
|
||||
\item Section \ref{ssec:detail_control_decoupling_comp_model}: the model used to compare/test decoupling strategies is presented
|
||||
\item Section \ref{ssec:detail_control_comp_jacobian}: decoupling using Jacobian matrices is presented
|
||||
\item Section \ref{ssec:detail_control_comp_modal}: modal decoupling is presented
|
||||
\item Section \ref{ssec:detail_control_comp_svd}: SVD decoupling is presented
|
||||
\item Section \ref{ssec:detail_control_decoupling_comp}: the three decoupling methods are applied on the test model and compared
|
||||
\item Conclusions are drawn on the three decoupling methods
|
||||
\end{itemize}
|
||||
\section{Interaction Analysis}
|
||||
\label{sec:org4e38e50}
|
||||
\section{Test Model}
|
||||
\label{sec:org07c14be}
|
||||
\label{ssec:detail_control_decoupling_comp_model}
|
||||
Let's consider a parallel manipulator with several collocated actuator/sensors pairs.
|
||||
|
||||
\section{Decentralized Control (actuator frame)}
|
||||
\label{sec:orgbcd61c7}
|
||||
|
||||
\section{Center of Stiffness and center of Mass}
|
||||
\label{sec:orgb312846}
|
||||
System in Figure \ref{fig:detail_control_model_test_decoupling} will serve as an example.
|
||||
|
||||
We will note:
|
||||
\begin{itemize}
|
||||
\item Example
|
||||
\item Show
|
||||
\item \(b_i\): location of the joints on the top platform
|
||||
\item \(\hat{s}_i\): unit vector corresponding to the struts direction
|
||||
\item \(k_i\): stiffness of the struts
|
||||
\item \(\tau_i\): actuator forces
|
||||
\item \(O_M\): center of mass of the solid body
|
||||
\item \(\mathcal{L}_i\): relative displacement of the struts
|
||||
\end{itemize}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_model_test_decoupling.png}
|
||||
\caption{\label{fig:detail_control_model_test_decoupling}Model use to compare decoupling techniques}
|
||||
\end{figure}
|
||||
|
||||
The magnitude of the coupled plant \(G\) is shown in Figure \ref{fig:detail_control_coupled_plant_bode}.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_coupled_plant_bode.png}
|
||||
\caption{\label{fig:detail_control_coupled_plant_bode}Magnitude of the coupled plant.}
|
||||
\end{figure}
|
||||
\section{Decentralized Plant / Control in the frame of the struts}
|
||||
\label{sec:orgc8c0b5f}
|
||||
\section{Jacobian Decoupling}
|
||||
\label{sec:org3e20680}
|
||||
\label{ssec:detail_control_comp_jacobian}
|
||||
|
||||
The Jacobian matrix can be used to:
|
||||
\begin{itemize}
|
||||
\item Convert joints velocity \(\dot{\mathcal{L}}\) to payload velocity and angular velocity \(\dot{\bm{\mathcal{X}}}_{\{O\}}\):
|
||||
\[ \dot{\bm{\mathcal{X}}}_{\{O\}} = J_{\{O\}} \dot{\bm{\mathcal{L}}} \]
|
||||
\item Convert actuators forces \(\bm{\tau}\) to forces/torque applied on the payload \(\bm{\mathcal{F}}_{\{O\}}\):
|
||||
\[ \bm{\mathcal{F}}_{\{O\}} = J_{\{O\}}^T \bm{\tau} \]
|
||||
\end{itemize}
|
||||
with \(\{O\}\) any chosen frame.
|
||||
|
||||
By wisely choosing frame \(\{O\}\), we can obtain nice decoupling for plant:
|
||||
\begin{equation}
|
||||
\bm{G}_{\{O\}} = J_{\{O\}}^{-1} \bm{G} J_{\{O\}}^{-T}
|
||||
\end{equation}
|
||||
|
||||
The obtained plan corresponds to forces/torques applied on origin of frame \(\{O\}\) to the translation/rotation of the payload expressed in frame \(\{O\}\).
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_jacobian_decoupling_arch.png}
|
||||
\caption{\label{fig:detail_control_jacobian_decoupling_arch}Block diagram of the transfer function from \(\bm{\mathcal{F}}_{\{O\}}\) to \(\bm{\mathcal{X}}_{\{O\}}\)}
|
||||
\end{figure}
|
||||
|
||||
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 inputs and outputs of the decoupled plant \(\bm{G}_{\{O\}}\) have physical meaning:
|
||||
\begin{itemize}
|
||||
\item \(\bm{\mathcal{F}}_{\{O\}}\) are forces/torques applied on the payload at the origin of frame \(\{O\}\)
|
||||
\item \(\bm{\mathcal{X}}_{\{O\}}\) are translations/rotation of the payload expressed in frame \(\{O\}\)
|
||||
\end{itemize}
|
||||
|
||||
It is then easy to include a reference tracking input that specify the wanted motion of the payload in the frame \(\{O\}\).
|
||||
\section{Modal Decoupling}
|
||||
\label{sec:orgd3c8cf1}
|
||||
\label{sec:org08a0372}
|
||||
\label{ssec:detail_control_comp_modal}
|
||||
|
||||
\section{Data Based Decoupling}
|
||||
\label{sec:orgc72c6af}
|
||||
Let's consider a system with the following equations of motion:
|
||||
\begin{equation}
|
||||
M \bm{\ddot{x}} + C \bm{\dot{x}} + K \bm{x} = \bm{\mathcal{F}}
|
||||
\end{equation}
|
||||
|
||||
And the measurement output is a combination of the motion variable \(\bm{x}\):
|
||||
\begin{equation}
|
||||
\bm{y} = C_{ox} \bm{x} + C_{ov} \dot{\bm{x}}
|
||||
\end{equation}
|
||||
|
||||
Let's make a \textbf{change of variables}:
|
||||
\begin{equation}
|
||||
\boxed{\bm{x} = \Phi \bm{x}_m}
|
||||
\end{equation}
|
||||
with:
|
||||
\begin{itemize}
|
||||
\item \(\bm{x}_m\) the modal amplitudes
|
||||
\item \(\Phi\) a matrix whose columns are the modes shapes of the system
|
||||
\end{itemize}
|
||||
|
||||
And we map the actuator forces:
|
||||
\begin{equation}
|
||||
\bm{\mathcal{F}} = J^T \bm{\tau}
|
||||
\end{equation}
|
||||
|
||||
The equations of motion become:
|
||||
\begin{equation}
|
||||
M \Phi \bm{\ddot{x}}_m + C \Phi \bm{\dot{x}}_m + K \Phi \bm{x}_m = J^T \bm{\tau}
|
||||
\end{equation}
|
||||
And the measured output is:
|
||||
\begin{equation}
|
||||
\bm{y} = C_{ox} \Phi \bm{x}_m + C_{ov} \Phi \dot{\bm{x}}_m
|
||||
\end{equation}
|
||||
|
||||
By pre-multiplying the EoM by \(\Phi^T\):
|
||||
\begin{equation}
|
||||
\Phi^T M \Phi \bm{\ddot{x}}_m + \Phi^T C \Phi \bm{\dot{x}}_m + \Phi^T K \Phi \bm{x}_m = \Phi^T J^T \bm{\tau}
|
||||
\end{equation}
|
||||
|
||||
And we note:
|
||||
\begin{itemize}
|
||||
\item \(M_m = \Phi^T M \Phi = \text{diag}(\mu_i)\) the modal mass matrix
|
||||
\item \(C_m = \Phi^T C \Phi = \text{diag}(2 \xi_i \mu_i \omega_i)\) (classical damping)
|
||||
\item \(K_m = \Phi^T K \Phi = \text{diag}(\mu_i \omega_i^2)\) the modal stiffness matrix
|
||||
\end{itemize}
|
||||
|
||||
And we have:
|
||||
\begin{equation}
|
||||
\ddot{\bm{x}}_m + 2 \Xi \Omega \dot{\bm{x}}_m + \Omega^2 \bm{x}_m = \mu^{-1} \Phi^T J^T \bm{\tau}
|
||||
\end{equation}
|
||||
with:
|
||||
\begin{itemize}
|
||||
\item \(\mu = \text{diag}(\mu_i)\)
|
||||
\item \(\Omega = \text{diag}(\omega_i)\)
|
||||
\item \(\Xi = \text{diag}(\xi_i)\)
|
||||
\end{itemize}
|
||||
|
||||
And we call the \textbf{modal input matrix}:
|
||||
\begin{equation}
|
||||
\boxed{B_m = \mu^{-1} \Phi^T J^T}
|
||||
\end{equation}
|
||||
And the \textbf{modal output matrices}:
|
||||
\begin{equation}
|
||||
\boxed{C_m = C_{ox} \Phi + C_{ov} \Phi s}
|
||||
\end{equation}
|
||||
|
||||
|
||||
Let's note the ``modal input'':
|
||||
\begin{equation}
|
||||
\bm{\tau}_m = B_m \bm{\tau}
|
||||
\end{equation}
|
||||
|
||||
The transfer function from \(\bm{\tau}_m\) to \(\bm{x}_m\) is:
|
||||
\begin{equation} \label{eq:modal_eq}
|
||||
\boxed{\frac{\bm{x}_m}{\bm{\tau}_m} = \left( I_n s^2 + 2 \Xi \Omega s + \Omega^2 \right)^{-1}}
|
||||
\end{equation}
|
||||
which is a \textbf{diagonal} transfer function matrix.
|
||||
We therefore have decoupling of the dynamics from \(\bm{\tau}_m\) to \(\bm{x}_m\).
|
||||
|
||||
|
||||
We now expressed the transfer function from input \(\bm{\tau}\) to output \(\bm{y}\) as a function of the ``modal variables'':
|
||||
\begin{equation}
|
||||
\boxed{\frac{\bm{y}}{\bm{\tau}} = \underbrace{\left( C_{ox} + s C_{ov} \right) \Phi}_{C_m} \underbrace{\left( I_n s^2 + 2 \Xi \Omega s + \Omega^2 \right)^{-1}}_{\text{diagonal}} \underbrace{\left( \mu^{-1} \Phi^T J^T \right)}_{B_m}}
|
||||
\end{equation}
|
||||
|
||||
By inverting \(B_m\) and \(C_m\) and using them as shown in Figure \ref{fig:modal_decoupling_architecture}, we can see that we control the system in the ``modal space'' in which it is decoupled.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_decoupling_modal.png}
|
||||
\caption{\label{fig:modal_decoupling_architecture}Modal Decoupling Architecture}
|
||||
\end{figure}
|
||||
|
||||
The system \(\bm{G}_m(s)\) shown in Figure \ref{fig:modal_decoupling_architecture} is diagonal \eqref{eq:modal_eq}.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
Using this decoupling strategy, it is possible to control each mode individually.
|
||||
\section{SVD Decoupling}
|
||||
\label{sec:orgd91e1be}
|
||||
\label{ssec:detail_control_comp_svd}
|
||||
|
||||
Procedure:
|
||||
\begin{itemize}
|
||||
\item Identify the dynamics of the system from inputs to outputs (can be obtained experimentally)
|
||||
\item Choose a frequency where we want to decouple the system (usually, the crossover frequency is a good choice)
|
||||
\item Compute a real approximation of the system's response at that frequency
|
||||
\item Perform a Singular Value Decomposition of the real approximation
|
||||
\item Use the singular input and output matrices to decouple the system as shown in Figure \ref{fig:detail_control_decoupling_svd}
|
||||
\[ G_{svd}(s) = U^{-1} G(s) V^{-T} \]
|
||||
\end{itemize}
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_decoupling_svd.png}
|
||||
\caption{\label{fig:detail_control_decoupling_svd}Decoupled plant \(\bm{G}_{SVD}\) using the Singular Value Decomposition}
|
||||
\end{figure}
|
||||
|
||||
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.
|
||||
|
||||
\begin{itemize}
|
||||
\item Static decoupling
|
||||
\item SVD
|
||||
\item[{$\square$}] Do we loose any physical meaning of the obtained inputs and outputs?
|
||||
\item[{$\square$}] Can we take advantage of the fact that U and V are unitary?
|
||||
\end{itemize}
|
||||
\section{Comparison}
|
||||
\label{sec:org670a0b0}
|
||||
\label{ssec:detail_control_decoupling_comp}
|
||||
\subsection{Jacobian Decoupling}
|
||||
\label{sec:org2a50d56}
|
||||
Decoupling properties depends on the chosen frame \(\{O\}\).
|
||||
|
||||
Let's take the CoM as the decoupling frame.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_jacobian_plant.png}
|
||||
\caption{\label{fig:detail_control_jacobian_plant}Plant decoupled using the Jacobian matrices \(G_x(s)\)}
|
||||
\end{figure}
|
||||
\subsection{Modal Decoupling}
|
||||
\label{sec:org6cc56e8}
|
||||
For the system in Figure \ref{fig:detail_control_model_test_decoupling}, we have:
|
||||
\begin{align}
|
||||
\bm{x} &= \begin{bmatrix} x \\ y \\ R_z \end{bmatrix} \\
|
||||
\bm{y} &= \mathcal{L} = J \bm{x}; \quad C_{ox} = J; \quad C_{ov} = 0 \\
|
||||
M &= \begin{bmatrix}
|
||||
m & 0 & 0 \\
|
||||
0 & m & 0 \\
|
||||
0 & 0 & I
|
||||
\end{bmatrix}; \quad K = J' \begin{bmatrix}
|
||||
k & 0 & 0 \\
|
||||
0 & k & 0 \\
|
||||
0 & 0 & k
|
||||
\end{bmatrix} J; \quad C = J' \begin{bmatrix}
|
||||
c & 0 & 0 \\
|
||||
0 & c & 0 \\
|
||||
0 & 0 & c
|
||||
\end{bmatrix} J
|
||||
\end{align}
|
||||
|
||||
In order to apply the architecture shown in Figure \ref{fig:modal_decoupling_architecture}, we need to compute \(C_{ox}\), \(C_{ov}\), \(\Phi\), \(\mu\) and \(J\).
|
||||
|
||||
\begin{table}[htbp]
|
||||
\caption{\label{tab:modal_decoupling_Bm}\(B_m\) matrix}
|
||||
\centering
|
||||
\begin{tabularx}{0.3\linewidth}{ccc}
|
||||
\toprule
|
||||
-0.0004 & -0.0007 & 0.0007\\
|
||||
-0.0151 & 0.0041 & -0.0041\\
|
||||
0.0 & 0.0025 & 0.0025\\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
\begin{table}[htbp]
|
||||
\caption{\label{tab:modal_decoupling_Cm}\(C_m\) matrix}
|
||||
\centering
|
||||
\begin{tabularx}{0.2\linewidth}{ccc}
|
||||
\toprule
|
||||
-0.1 & -1.8 & 0.0\\
|
||||
-0.2 & 0.5 & 1.0\\
|
||||
0.2 & -0.5 & 1.0\\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
And the plant in the modal space is defined below and its magnitude is shown in Figure \ref{fig:detail_control_modal_plant}.
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_modal_plant.png}
|
||||
\caption{\label{fig:detail_control_modal_plant}Modal plant \(G_m(s)\)}
|
||||
\end{figure}
|
||||
|
||||
Let's now close one loop at a time and see how the transmissibility changes.
|
||||
\subsection{SVD Decoupling}
|
||||
\label{sec:org1bd92ef}
|
||||
\begin{table}[htbp]
|
||||
\caption{\label{}Real approximate of \(G\) at the decoupling frequency \(\omega_c\)}
|
||||
\centering
|
||||
\begin{tabularx}{0.3\linewidth}{ccc}
|
||||
\toprule
|
||||
-8e-06 & 2.1e-06 & -2.1e-06\\
|
||||
2.1e-06 & -1.3e-06 & -2.5e-08\\
|
||||
-2.1e-06 & -2.5e-08 & -1.3e-06\\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] Do we have something special when applying SVD to a collocated MIMO system?
|
||||
\item \textbf{Verify why such a good decoupling is obtained!}
|
||||
\end{itemize}
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/detail_control_svd_plant.png}
|
||||
\caption{\label{fig:detail_control_svd_plant}Svd plant \(G_m(s)\)}
|
||||
\end{figure}
|
||||
\section*{Conclusion}
|
||||
\label{sec:org3802e66}
|
||||
Table that compares all the strategies.
|
||||
\label{sec:orge4184ce}
|
||||
The three proposed methods clearly have a lot in common as they all tend to make system more decoupled by pre and/or post multiplying by a constant matrix
|
||||
However, the three methods also differs by a number of points which are summarized in Table \ref{tab:detail_control_decoupling_strategies_comp}.
|
||||
|
||||
Other decoupling strategies could be included in this study, such as:
|
||||
\begin{itemize}
|
||||
\item DC decoupling: pre-multiply the plant by \(G(0)^{-1}\)
|
||||
\item full decoupling: pre-multiply the plant by \(G(s)^{-1}\)
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\begin{table}[htbp]
|
||||
\caption{\label{tab:detail_control_decoupling_strategies_comp}Comparison of decoupling strategies}
|
||||
\centering
|
||||
\scriptsize
|
||||
\begin{tabularx}{\linewidth}{lXXX}
|
||||
\toprule
|
||||
& \textbf{Jacobian} & \textbf{Modal} & \textbf{SVD}\\
|
||||
\midrule
|
||||
\textbf{Philosophy} & Topology Driven & Physics Driven & Data Driven\\
|
||||
\midrule
|
||||
\textbf{Requirements} & Known geometry & Known equations of motion & Identified FRF\\
|
||||
\midrule
|
||||
\textbf{Decoupling Matrices} & Decoupling using \(J\) obtained from geometry & Decoupling using \(\Phi\) obtained from modal decomposition & Decoupling using \(U\) and \(V\) obtained from SVD\\
|
||||
\midrule
|
||||
\textbf{Decoupled Plant} & \(\bm{G}_{\{O\}} = J_{\{O\}}^{-1} \bm{G} J_{\{O\}}^{-T}\) & \(\bm{G}_m = C_m^{-1} \bm{G} B_m^{-1}\) & \(\bm{G}_{svd}(s) = U^{-1} \bm{G}(s) V^{-T}\)\\
|
||||
\midrule
|
||||
\textbf{Implemented Controller} & \(\bm{K}_{\{O\}} = J_{\{O\}}^{-T} \bm{K}_{d}(s) J_{\{O\}}^{-1}\) & \(\bm{K}_m = B_m^{-1} \bm{K}_{d}(s) C_m^{-1}\) & \(\bm{K}_{svd}(s) = V^{-T} \bm{K}_{d}(s) U^{-1}\)\\
|
||||
\midrule
|
||||
\textbf{Physical Interpretation} & Forces/Torques to Displacement/Rotation in chosen frame & Inputs to excite individual modes & Directions of max to min controllability/observability\\
|
||||
& & Output to sense individual modes & \\
|
||||
\midrule
|
||||
\textbf{Decoupling Properties} & Decoupling at low or high frequency depending on the chosen frame & Good decoupling at all frequencies & Good decoupling near the chosen frequency\\
|
||||
\midrule
|
||||
\textbf{Pros} & Physical inputs / outputs & Target specific modes & Good Decoupling near the crossover\\
|
||||
& Good decoupling at High frequency (diagonal mass matrix if Jacobian taken at the CoM) & 2nd order diagonal plant & Very General\\
|
||||
& Good decoupling at Low frequency (if Jacobian taken at specific point) & & \\
|
||||
& Easy integration of meaningful reference inputs & & \\
|
||||
& & & \\
|
||||
\midrule
|
||||
\textbf{Cons} & Coupling between force/rotation may be high at low frequency (non diagonal terms in K) & Need analytical equations & Loose the physical meaning of inputs /outputs\\
|
||||
& Limited to parallel mechanisms (?) & & Decoupling depends on the real approximation validity\\
|
||||
& If good decoupling at all frequencies => requires specific mechanical architecture & & Diagonal plants may not be easy to control\\
|
||||
\midrule
|
||||
\textbf{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)\\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
\chapter{Closed-Loop Shaping using Complementary Filters}
|
||||
\label{sec:orgdd912f0}
|
||||
\label{sec:orga76ba90}
|
||||
\label{sec:detail_control_optimization}
|
||||
|
||||
Performance of a feedback control is dictated by closed-loop transfer functions.
|
||||
@ -828,10 +1159,10 @@ In this paper, we propose a new controller synthesis method
|
||||
\item direct translation of requirements such as disturbance rejection and robustness to plant uncertainty
|
||||
\end{itemize}
|
||||
\section{Control Architecture}
|
||||
\label{sec:orgbad19e8}
|
||||
\label{sec:orgaae401b}
|
||||
\label{ssec:detail_control_control_arch}
|
||||
\paragraph{Virtual Sensor Fusion}
|
||||
\label{sec:org5db8fac}
|
||||
\label{sec:orgbe4fa57}
|
||||
Let's consider the control architecture represented in Fig. \ref{fig:detail_control_sf_arch} where \(G^\prime\) is the physical plant to control, \(G\) is a model of the plant, \(k\) is a gain, \(H_L\) and \(H_H\) are complementary filters (\(H_L + H_H = 1\) in the complex sense).
|
||||
The signals are the reference signal \(r\), the output perturbation \(d_y\), the measurement noise \(n\) and the control input \(u\).
|
||||
|
||||
@ -870,7 +1201,7 @@ u &= \frac{-K H_L}{1+G^{\prime} K H_L} dy &&+ \frac{K}{1+G^{\prime} K H_L}
|
||||
\end{alignat}
|
||||
with \(K = \frac{k}{1 + H_H G k}\)
|
||||
\paragraph{Asymptotic behavior}
|
||||
\label{sec:orgb964791}
|
||||
\label{sec:org100d48c}
|
||||
We now want to study the asymptotic system obtained when using very high value of \(k\)
|
||||
\begin{equation}
|
||||
\lim_{k\to\infty} K = \lim_{k\to\infty} \frac{k}{1+H_H G k} = \left( H_H G \right)^{-1}
|
||||
@ -903,7 +1234,7 @@ We obtain a sensitivity transfer function equals to the high pass filter \(S = \
|
||||
|
||||
Assuming that we have a good model of the plant, we have then that the closed-loop behavior of the system converges to the designed complementary filters.
|
||||
\section{Translating the performance requirements into the shapes of the complementary filters}
|
||||
\label{sec:org1e41339}
|
||||
\label{sec:org30471b6}
|
||||
\label{ssec:detail_control_trans_perf}
|
||||
The required performance specifications in a feedback system can usually be translated into requirements on the upper bounds of \(\abs{S(j\w)}\) and \(|T(j\omega)|\) \cite{bibel92_guidel_h}.
|
||||
The process of designing a controller \(K(s)\) in order to obtain the desired shapes of \(\abs{S(j\w)}\) and \(\abs{T(j\w)}\) is called loop shaping.
|
||||
@ -912,7 +1243,7 @@ The equations \eqref{eq:detail_control_cl_system_y} and \eqref{eq:detail_control
|
||||
|
||||
In this section, we then translate the typical specifications into the desired shapes of the complementary filters \(H_L\) and \(H_H\).\\
|
||||
\paragraph{Nominal Stability (NS)}
|
||||
\label{sec:org747119c}
|
||||
\label{sec:orgb61eb25}
|
||||
The closed-loop system is stable if all its elements are stable (\(K\), \(G^\prime\) and \(H_L\)) and if the sensitivity function (\(S = \frac{1}{1 + G^\prime K H_L}\)) is stable.
|
||||
|
||||
For the nominal system (\(G^\prime = G\)), we have \(S = H_H\).
|
||||
@ -921,7 +1252,7 @@ Nominal stability is then guaranteed if \(H_L\), \(H_H\) and \(G\) are stable an
|
||||
|
||||
Thus we must design stable and minimum phase complementary filters.\\
|
||||
\paragraph{Nominal Performance (NP)}
|
||||
\label{sec:org7e3c875}
|
||||
\label{sec:org4748252}
|
||||
Typical performance specifications can usually be translated into upper bounds on \(|S(j\omega)|\) and \(|T(j\omega)|\).
|
||||
|
||||
Two performance weights \(w_H\) and \(w_L\) are defined in such a way that performance specifications are satisfied if
|
||||
@ -945,14 +1276,14 @@ The translation of typical performance requirements on the shapes of the complem
|
||||
|
||||
We may have other requirements in terms of stability margins, maximum or minimum closed-loop bandwidth.\\
|
||||
\paragraph{Closed-Loop Bandwidth}
|
||||
\label{sec:org91bb5c7}
|
||||
\label{sec:org20cf288}
|
||||
The closed-loop bandwidth \(\w_B\) can be defined as the frequency where \(\abs{S(j\w)}\) first crosses \(\frac{1}{\sqrt{2}}\) from below.
|
||||
|
||||
If one wants the closed-loop bandwidth to be at least \(\w_B^*\) (e.g. to stabilize an unstable pole), one can required that \(|S(j\omega)| \le \frac{1}{\sqrt{2}}\) below \(\omega_B^*\) by designing \(w_H\) such that \(|w_H(j\omega)| \ge \sqrt{2}\) for \(\omega \le \omega_B^*\).
|
||||
|
||||
Similarly, if one wants the closed-loop bandwidth to be less than \(\w_B^*\), one can approximately require that the magnitude of \(T\) is less than \(\frac{1}{\sqrt{2}}\) at frequencies above \(\w_B^*\) by designing \(w_L\) such that \(|w_L(j\omega)| \ge \sqrt{2}\) for \(\omega \ge \omega_B^*\).\\
|
||||
\paragraph{Classical stability margins}
|
||||
\label{sec:org17bfb04}
|
||||
\label{sec:orgd6e8f52}
|
||||
Gain margin (GM) and phase margin (PM) are usual specifications on controlled system.
|
||||
Minimum GM and PM can be guaranteed by limiting the maximum magnitude of the sensibility function \(M_S = \max_{\omega} |S(j\omega)|\):
|
||||
\begin{equation}
|
||||
@ -967,7 +1298,7 @@ For the nominal system \(M_S = \max_\omega |S| = \max_\omega |H_H|\), so one can
|
||||
\end{equation}
|
||||
and thus obtain acceptable stability margins.\\
|
||||
\paragraph{Response time to change of reference signal}
|
||||
\label{sec:org555bdc0}
|
||||
\label{sec:org8095473}
|
||||
For the nominal system, the model is accurate and the transfer function from reference signal \(r\) to output \(y\) is \(1\) \eqref{eq:detail_control_cl_performance_y} and does not depends of the complementary filters.
|
||||
|
||||
However, one can add a pre-filter as shown in Fig. \ref{fig:detail_control_sf_arch_class_prefilter}.
|
||||
@ -985,7 +1316,7 @@ Typically, \(K_r\) is a low pass filter of the form
|
||||
\end{equation}
|
||||
with \(\tau\) corresponding to the desired response time.\\
|
||||
\paragraph{Input usage}
|
||||
\label{sec:orgaed43be}
|
||||
\label{sec:org29193ac}
|
||||
Input usage due to disturbances \(d_y\) and measurement noise \(n\) is determined by \(\big|\frac{u}{d_y}\big| = \big|\frac{u}{n}\big| = \big|G^{-1}H_L\big|\).
|
||||
Thus it can be limited by setting an upper bound on \(|H_L|\).
|
||||
|
||||
@ -994,7 +1325,7 @@ Input usage due to reference signal \(r\) is determined by \(\big|\frac{u}{r}\bi
|
||||
|
||||
Proper choice of \(|K_r|\) is then useful to limit input usage due to change of reference signal.\\
|
||||
\paragraph{Robust Stability (RS)}
|
||||
\label{sec:org3210a2c}
|
||||
\label{sec:orgee16ad4}
|
||||
Robustness stability represents the ability of the control system to remain stable even though there are differences between the actual system \(G^\prime\) and the model \(G\) that was used to design the controller.
|
||||
These differences can have various origins such as unmodelled dynamics or non-linearities.
|
||||
|
||||
@ -1034,7 +1365,7 @@ Robust stability is then guaranteed by having the low pass filter \(H_L\) satisf
|
||||
|
||||
To ensure robust stability condition \eqref{eq:detail_control_nominal_perf_hl} can be used if \(w_L\) is designed in such a way that \(|w_L| \ge |w_I| (2 + |w_I|)\).\\
|
||||
\paragraph{Robust Performance (RP)}
|
||||
\label{sec:org73ddee1}
|
||||
\label{sec:org289dea0}
|
||||
Robust performance is a property for a controlled system to have its performance guaranteed even though the dynamics of the plant is changing within specified bounds.
|
||||
|
||||
For robust performance, we then require to have the performance condition valid for all possible plants in the defined uncertainty set:
|
||||
@ -1071,13 +1402,13 @@ Robust performance is then guaranteed if \eqref{eq:detail_control_robust_perf_a}
|
||||
|
||||
One should be aware than when looking for a robust performance condition, only the worst case is evaluated and using the robust stability condition may lead to conservative control.
|
||||
\section{Analytical formulas for complementary filters?}
|
||||
\label{sec:org23bab6a}
|
||||
\label{sec:org9e830a6}
|
||||
\label{ssec:detail_control_analytical_complementary_filters}
|
||||
\section{Numerical Example}
|
||||
\label{sec:org082409f}
|
||||
\label{sec:orgafeeecf}
|
||||
\label{ssec:detail_control_simulations}
|
||||
\paragraph{Procedure}
|
||||
\label{sec:orgebbfce4}
|
||||
\label{sec:org267f5e8}
|
||||
|
||||
In order to apply this control technique, we propose the following procedure:
|
||||
\begin{enumerate}
|
||||
@ -1092,7 +1423,7 @@ If one does not want to use the \(\mathcal{H}_\infty\) synthesis, one can use pr
|
||||
\item Control implementation: Filter the measurement with \(H_L\), implement the controller \(K\) and the pre-filter \(K_r\) as shown on Fig. \ref{fig:detail_control_sf_arch_class_prefilter}
|
||||
\end{enumerate}
|
||||
\paragraph{Plant}
|
||||
\label{sec:orgfc350fc}
|
||||
\label{sec:org4080126}
|
||||
Let's consider the problem of controlling an active vibration isolation system that consist of a mass \(m\) to be isolated, a piezoelectric actuator and a geophone.
|
||||
|
||||
We represent this system by a mass-spring-damper system as shown Fig. \ref{fig:detail_control_mech_sys_alone} where \(m\) typically represents the mass of the payload to be isolated, \(k\) and \(c\) represent respectively the stiffness and damping of the mount.
|
||||
@ -1119,7 +1450,7 @@ Its bode plot is shown on Fig. \ref{fig:detail_control_bode_plot_mech_sys}.
|
||||
\caption{\label{fig:detail_control_bode_plot_mech_sys}Bode plot of the transfer function \(G(s)\) from \(F\) to \(x\)}
|
||||
\end{figure}
|
||||
\paragraph{Requirements}
|
||||
\label{sec:orgd766e8b}
|
||||
\label{sec:orgf3c8638}
|
||||
The control objective is to isolate the displacement \(x\) of the mass from the ground motion \(w\).
|
||||
|
||||
The disturbance rejection should be at least \(10\) at \(\SI{2}{\hertz}\) and with a slope of \(-2\) below \(\SI{2}{\hertz}\) until a rejection of \(10^4\).
|
||||
@ -1154,10 +1485,10 @@ All the requirements on \(H_L\) and \(H_H\) are represented on Fig. \ref{fig:det
|
||||
\end{center}
|
||||
\subcaption{\label{fig:detail_control_hinf_filters_result_weights}Obtained complementary filters}
|
||||
\end{subfigure}
|
||||
\caption{\label{fig:detail_control_spec_S_T_obtained_filters}Caption with reference to sub figure (\subref{fig:detail_control_spec_S_T}) (\subref{detail_control_hinf_filters_result_weights})}
|
||||
\caption{\label{fig:detail_control_spec_S_T_obtained_filters}Caption with reference to sub figure (\subref{fig:detail_control_spec_S_T}) (\subref{fig:detail_control_hinf_filters_result_weights})}
|
||||
\end{figure}
|
||||
\paragraph{Design of the filters}
|
||||
\label{sec:org11f2da3}
|
||||
\label{sec:org9e0d6e9}
|
||||
|
||||
\textbf{Or maybe use analytical formulas as proposed here: \href{file:///home/thomas/Cloud/research/papers/dehaeze20\_virtu\_senso\_fusio/matlab/index.org}{Complementary filters using analytical formula}}
|
||||
|
||||
@ -1178,7 +1509,7 @@ After the \(\hinf\text{-synthesis}\), we obtain \(H_L\) and \(H_H\), and we plot
|
||||
\end{align}
|
||||
\end{subequations}
|
||||
\paragraph{Controller analysis}
|
||||
\label{sec:orgbd9d52a}
|
||||
\label{sec:org6b1f5a6}
|
||||
The controller is \(K = \left( H_H G \right)^{-1}\).
|
||||
A low pass filter is added to \(K\) so that it is proper and implementable.
|
||||
|
||||
@ -1208,7 +1539,7 @@ It is implemented as shown on Fig. \ref{fig:detail_control_mech_sys_alone_ctrl}.
|
||||
\caption{\label{fig:detail_control_bode_Kfb_loop_gain}Caption with reference to sub figure (\subref{fig:detail_control_bode_Kfb}) (\subref{fig:detail_control_bode_plot_loop_gain_robustness})}
|
||||
\end{figure}
|
||||
\paragraph{Robustness analysis}
|
||||
\label{sec:org85bb3dc}
|
||||
\label{sec:org6fc1bac}
|
||||
The robust stability can be access on the nyquist plot (Fig. \ref{fig:detail_control_nyquist_robustness}).
|
||||
|
||||
The robust performance is shown on Fig. \ref{fig:detail_control_robust_perf}.
|
||||
@ -1229,12 +1560,12 @@ The robust performance is shown on Fig. \ref{fig:detail_control_robust_perf}.
|
||||
\caption{\label{fig:fig_label}Caption with reference to sub figure (\subref{fig:detail_control_nyquist_robustness}) (\subref{fig:detail_control_robust_perf})}
|
||||
\end{figure}
|
||||
\section{Experimental Validation?}
|
||||
\label{sec:org8a7211e}
|
||||
\label{sec:org7fb6422}
|
||||
\label{ssec:detail_control_exp_validation}
|
||||
|
||||
\href{file:///home/thomas/Cloud/research/papers/dehaeze20\_virtu\_senso\_fusio/matlab/index.org}{Experimental Validation}
|
||||
\section*{Conclusion}
|
||||
\label{sec:org40e7289}
|
||||
\label{sec:org8770e9e}
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] Discuss how useful it is as the bandwidth can be changed in real time with analytical formulas of second order complementary filters.
|
||||
Maybe make a section about that.
|
||||
@ -1248,7 +1579,7 @@ Maybe give analytical formulas of second order complementary filters in the digi
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\chapter*{Conclusion}
|
||||
\label{sec:orgcbb5ce3}
|
||||
\label{sec:org64023b0}
|
||||
\label{sec:detail_control_conclusion}
|
||||
\printbibliography[heading=bibintoc,title={Bibliography}]
|
||||
\end{document}
|
||||
|