Add Micro-station model
@ -12,10 +12,12 @@
|
|||||||
\DeclareSIUnit\px{px}
|
\DeclareSIUnit\px{px}
|
||||||
\DeclareSIUnit\rms{rms}
|
\DeclareSIUnit\rms{rms}
|
||||||
|
|
||||||
|
\usepackage{amssymb}
|
||||||
\usepackage{amsmath}
|
\usepackage{amsmath}
|
||||||
\usepackage{amsthm}
|
\usepackage{amsthm}
|
||||||
\usepackage{bm}
|
\usepackage{bm}
|
||||||
\usepackage{dsfont}
|
\usepackage{dsfont}
|
||||||
|
\usepackage{empheq} % for drawing boxes around equations
|
||||||
|
|
||||||
\let\originalleft\left
|
\let\originalleft\left
|
||||||
\let\originalright\right
|
\let\originalright\right
|
||||||
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 16 KiB |
@ -1,114 +1,192 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="335.796" height="54.778" viewBox="0 0 335.796 54.778">
|
||||||
<defs>
|
<defs>
|
||||||
<g>
|
<g>
|
||||||
<g id="glyph-0-0">
|
<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 "/>
|
<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>
|
||||||
<g id="glyph-0-1">
|
<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 "/>
|
<path d="M 5.96875 -6.15625 C 6.015625 -6.296875 6.015625 -6.3125 6.09375 -6.3125 C 6.21875 -6.34375 6.34375 -6.34375 6.46875 -6.34375 C 6.734375 -6.34375 6.890625 -6.34375 6.890625 -6.625 C 6.890625 -6.640625 6.875 -6.8125 6.671875 -6.8125 C 6.484375 -6.8125 6.265625 -6.78125 6.046875 -6.78125 C 5.828125 -6.78125 5.59375 -6.78125 5.375 -6.78125 C 4.984375 -6.78125 4.03125 -6.8125 3.640625 -6.8125 C 3.515625 -6.8125 3.34375 -6.8125 3.34375 -6.515625 C 3.34375 -6.34375 3.5 -6.34375 3.6875 -6.34375 L 4.03125 -6.34375 C 4.421875 -6.34375 4.4375 -6.34375 4.671875 -6.3125 L 3.46875 -1.5 C 3.21875 -0.484375 2.59375 -0.1875 2.140625 -0.1875 C 2.046875 -0.1875 1.625 -0.203125 1.328125 -0.421875 C 1.859375 -0.5625 2.046875 -1.015625 2.046875 -1.296875 C 2.046875 -1.625 1.78125 -1.859375 1.4375 -1.859375 C 1.046875 -1.859375 0.5625 -1.53125 0.5625 -0.90625 C 0.5625 -0.234375 1.234375 0.171875 2.1875 0.171875 C 3.296875 0.171875 4.5 -0.28125 4.796875 -1.453125 Z M 5.96875 -6.15625 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-0-2">
|
<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 "/>
|
<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-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>
|
||||||
<g id="glyph-1-0">
|
<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 "/>
|
<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>
|
||||||
|
<g id="glyph-1-1">
|
||||||
|
<path d="M 2.59375 -1 C 2.59375 -1.078125 2.515625 -1.078125 2.484375 -1.078125 C 2.40625 -1.078125 2.40625 -1.078125 2.34375 -0.953125 C 2.15625 -0.515625 1.796875 -0.125 1.40625 -0.125 C 1.265625 -0.125 1.171875 -0.21875 1.171875 -0.46875 C 1.171875 -0.53125 1.203125 -0.6875 1.203125 -0.75 L 1.703125 -2.75 L 2.421875 -2.75 C 2.546875 -2.75 2.640625 -2.75 2.640625 -2.90625 C 2.640625 -3 2.546875 -3 2.4375 -3 L 1.765625 -3 L 2.03125 -4.03125 C 2.03125 -4.0625 2.046875 -4.09375 2.046875 -4.125 C 2.046875 -4.25 1.953125 -4.34375 1.8125 -4.34375 C 1.640625 -4.34375 1.53125 -4.234375 1.484375 -4.046875 C 1.4375 -3.875 1.53125 -4.203125 1.21875 -3 L 0.515625 -3 C 0.375 -3 0.296875 -3 0.296875 -2.84375 C 0.296875 -2.75 0.375 -2.75 0.5 -2.75 L 1.15625 -2.75 L 0.75 -1.109375 C 0.703125 -0.9375 0.640625 -0.6875 0.640625 -0.59375 C 0.640625 -0.1875 1 0.0625 1.390625 0.0625 C 2.15625 0.0625 2.59375 -0.90625 2.59375 -1 Z M 2.59375 -1 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-2">
|
||||||
|
<path d="M 7.921875 -4.640625 C 7.921875 -4.75 7.84375 -4.75 7.71875 -4.75 L 6.765625 -4.75 C 6.578125 -4.75 6.5625 -4.734375 6.46875 -4.609375 L 3.796875 -0.640625 L 3.09375 -4.5625 C 3.0625 -4.734375 3.0625 -4.75 2.859375 -4.75 L 1.859375 -4.75 C 1.71875 -4.75 1.640625 -4.75 1.640625 -4.59375 C 1.640625 -4.5 1.71875 -4.5 1.875 -4.5 C 1.984375 -4.5 2.015625 -4.5 2.140625 -4.484375 C 2.28125 -4.46875 2.28125 -4.453125 2.28125 -4.390625 C 2.28125 -4.390625 2.28125 -4.34375 2.265625 -4.234375 L 1.390625 -0.75 C 1.328125 -0.5 1.21875 -0.265625 0.65625 -0.25 C 0.609375 -0.25 0.515625 -0.25 0.515625 -0.09375 C 0.515625 -0.09375 0.515625 0 0.625 0 C 0.828125 0 1.125 -0.03125 1.34375 -0.03125 C 1.515625 -0.03125 1.90625 0 2.078125 0 C 2.109375 0 2.21875 0 2.21875 -0.15625 C 2.21875 -0.25 2.125 -0.25 2.0625 -0.25 C 1.625 -0.265625 1.625 -0.4375 1.625 -0.546875 C 1.625 -0.5625 1.625 -0.609375 1.640625 -0.71875 L 2.578125 -4.421875 L 3.328125 -0.1875 C 3.34375 -0.0625 3.359375 0 3.46875 0 C 3.5625 0 3.609375 -0.078125 3.671875 -0.15625 L 6.578125 -4.484375 L 6.59375 -4.484375 L 5.609375 -0.546875 C 5.5625 -0.3125 5.546875 -0.25 5 -0.25 C 4.875 -0.25 4.796875 -0.25 4.796875 -0.09375 C 4.796875 -0.09375 4.796875 0 4.90625 0 C 5.03125 0 5.1875 -0.015625 5.328125 -0.015625 L 5.765625 -0.03125 C 5.96875 -0.03125 6.453125 0 6.65625 0 C 6.703125 0 6.796875 0 6.796875 -0.15625 C 6.796875 -0.25 6.71875 -0.25 6.578125 -0.25 C 6.578125 -0.25 6.4375 -0.25 6.3125 -0.265625 C 6.15625 -0.28125 6.15625 -0.296875 6.15625 -0.375 C 6.15625 -0.40625 6.171875 -0.484375 6.1875 -0.515625 L 7.09375 -4.1875 C 7.15625 -4.4375 7.171875 -4.5 7.6875 -4.5 C 7.84375 -4.5 7.921875 -4.5 7.921875 -4.640625 Z M 7.921875 -4.640625 "/>
|
||||||
|
</g>
|
||||||
<g id="glyph-2-0">
|
<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 "/>
|
<path d="M 3.40625 1.640625 C 3.40625 1.546875 3.34375 1.546875 3.296875 1.546875 C 2.46875 1.5 2.3125 1.03125 2.296875 0.859375 L 2.296875 -0.9375 C 2.296875 -1.25 2.046875 -1.578125 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.421875 2.296875 -4.59375 2.5625 -4.78125 C 2.75 -4.9375 3 -5 3.265625 -5.015625 C 3.34375 -5.03125 3.40625 -5.03125 3.40625 -5.125 C 3.40625 -5.21875 3.34375 -5.21875 3.234375 -5.21875 C 2.453125 -5.21875 1.765625 -4.875 1.765625 -4.34375 L 1.765625 -2.71875 C 1.765625 -2.546875 1.765625 -2.3125 1.578125 -2.140625 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.765625 -1.640625 C 1.515625 -1.59375 1.703125 -1.1875 1.75 -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.34375 1.734375 3.40625 1.734375 3.40625 1.640625 Z M 3.40625 1.640625 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-2-1">
|
<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 "/>
|
<path d="M 5.125 -0.984375 C 5.125 -1.015625 5.109375 -1.046875 5.0625 -1.046875 C 4.953125 -1.046875 4.5 -0.890625 4.421875 -0.609375 C 4.3125 -0.3125 4.234375 -0.3125 4.0625 -0.3125 C 3.6875 -0.3125 3.1875 -0.4375 2.84375 -0.53125 C 2.484375 -0.625 2.109375 -0.703125 1.75 -0.703125 C 1.71875 -0.703125 1.578125 -0.703125 1.484375 -0.6875 C 1.859375 -1.234375 1.953125 -1.578125 2.0625 -2.015625 C 2.203125 -2.53125 2.40625 -3.25 2.75 -3.828125 C 3.09375 -4.390625 3.265625 -4.421875 3.5 -4.421875 C 3.828125 -4.421875 4.046875 -4.1875 4.046875 -3.84375 C 4.046875 -3.734375 4.03125 -3.65625 4.03125 -3.625 C 4.03125 -3.59375 4.046875 -3.5625 4.109375 -3.5625 C 4.125 -3.5625 4.296875 -3.59375 4.546875 -3.765625 C 4.6875 -3.859375 4.765625 -3.9375 4.765625 -4.203125 C 4.765625 -4.46875 4.609375 -4.890625 4.0625 -4.890625 C 3.453125 -4.890625 2.78125 -4.484375 2.421875 -4.046875 C 1.953125 -3.515625 1.640625 -2.8125 1.359375 -1.671875 C 1.1875 -1.03125 0.9375 -0.5 0.609375 -0.234375 C 0.546875 -0.171875 0.359375 0 0.359375 0.09375 C 0.359375 0.140625 0.421875 0.140625 0.4375 0.140625 C 0.6875 0.140625 1 -0.15625 1.09375 -0.25 C 1.296875 -0.25 1.578125 -0.234375 2.203125 -0.078125 C 2.734375 0.0625 3.109375 0.140625 3.5 0.140625 C 4.375 0.140625 5.125 -0.65625 5.125 -0.984375 Z M 5.125 -0.984375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-2">
|
||||||
|
<path d="M 3.40625 -1.734375 C 3.40625 -1.828125 3.34375 -1.828125 3.296875 -1.828125 C 2.484375 -1.875 2.3125 -2.359375 2.296875 -2.546875 L 2.296875 -4.09375 C 2.296875 -4.453125 2.296875 -4.703125 1.890625 -4.96875 C 1.59375 -5.15625 1.09375 -5.21875 0.828125 -5.21875 C 0.71875 -5.21875 0.65625 -5.21875 0.65625 -5.125 C 0.65625 -5.03125 0.71875 -5.015625 0.765625 -5.015625 C 1.625 -4.984375 1.765625 -4.484375 1.765625 -4.328125 L 1.765625 -2.546875 C 1.765625 -2.21875 2.046875 -1.890625 2.59375 -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.390625 1.40625 1.140625 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-2-3">
|
||||||
|
<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>
|
||||||
<g id="glyph-3-0">
|
<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 "/>
|
<path d="M 6.046875 -6.34375 L 6.046875 -6.8125 C 5.609375 -6.78125 4.546875 -6.78125 4.0625 -6.78125 C 3.578125 -6.78125 2.515625 -6.78125 2.078125 -6.8125 L 2.078125 -6.34375 L 3.40625 -6.34375 L 3.40625 -5.28125 C 1.859375 -5.1875 0.640625 -4.46875 0.640625 -3.40625 C 0.640625 -2.34375 1.859375 -1.625 3.40625 -1.515625 L 3.40625 -0.46875 L 2.078125 -0.46875 L 2.078125 0 C 2.515625 -0.03125 3.578125 -0.03125 4.0625 -0.03125 C 4.546875 -0.03125 5.609375 -0.03125 6.046875 0 L 6.046875 -0.46875 L 4.71875 -0.46875 L 4.71875 -1.515625 C 7.28125 -1.703125 7.59375 -2.9375 7.59375 -3.40625 C 7.59375 -3.890625 7.265625 -5.09375 4.71875 -5.296875 L 4.71875 -6.34375 Z M 3.40625 -1.890625 C 2.171875 -2.0625 2.09375 -2.84375 2.09375 -3.40625 C 2.09375 -3.984375 2.171875 -4.75 3.40625 -4.921875 Z M 4.71875 -4.9375 C 5.96875 -4.78125 6.140625 -4.125 6.140625 -3.40625 C 6.140625 -2.671875 5.96875 -2.03125 4.71875 -1.875 Z M 4.71875 -4.9375 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-4-0">
|
<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 "/>
|
<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>
|
||||||
|
<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>
|
</g>
|
||||||
<clipPath id="clip-0">
|
<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 "/>
|
<path clip-rule="nonzero" d="M 25 15 L 311 15 L 311 54.558594 L 25 54.558594 Z M 25 15 "/>
|
||||||
</clipPath>
|
</clipPath>
|
||||||
<clipPath id="clip-1">
|
<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 "/>
|
<path clip-rule="nonzero" d="M 314 19 L 335.015625 19 L 335.015625 51 L 314 51 Z M 314 19 "/>
|
||||||
</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>
|
</clipPath>
|
||||||
</defs>
|
</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 "/>
|
<path fill-rule="nonzero" fill="rgb(89.99939%, 89.99939%, 89.99939%)" fill-opacity="1" d="M 25.832031 53.5625 L 309.761719 53.5625 L 309.761719 16.398438 L 25.832031 16.398438 Z M 25.832031 53.5625 "/>
|
||||||
<g clip-path="url(#clip-0)">
|
<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)"/>
|
<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 -142.539723 -18.656574 L 142.540653 -18.656574 L 142.540653 18.658104 L -142.539723 18.658104 Z M -142.539723 -18.656574 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 34.981231)"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-0-0" x="90.574123" y="10.612989"/>
|
<use xlink:href="#glyph-0-0" x="159.628514" y="10.612989"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-1-0" x="99.372466" y="12.100958"/>
|
<use xlink:href="#glyph-1-0" x="168.426857" y="12.100958"/>
|
||||||
</g>
|
</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)"/>
|
<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.0096 -14.173635 L 17.006608 -14.173635 L 17.006608 14.175166 L -17.0096 14.175166 Z M -17.0096 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 34.981231)"/>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-0-0" x="94.341853" y="38.385435"/>
|
<use xlink:href="#glyph-0-0" x="156.333866" y="36.621583"/>
|
||||||
</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>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-3-0" x="45.61732" y="34.192428"/>
|
<use xlink:href="#glyph-2-0" x="165.133205" y="38.413321"/>
|
||||||
|
<use xlink:href="#glyph-2-1" x="169.198495" y="38.413321"/>
|
||||||
|
<use xlink:href="#glyph-2-2" x="174.697367" y="38.413321"/>
|
||||||
|
</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.028159 -14.173635 L -35.011951 -14.173635 L -35.011951 14.175166 L -69.028159 14.175166 Z M -69.028159 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-1" x="104.385399" y="36.69628"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-4-0" x="51.819092" y="34.192428"/>
|
<use xlink:href="#glyph-2-3" x="111.647966" y="32.451483"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-1-0" x="45.119339" y="40.246891"/>
|
<use xlink:href="#glyph-1-1" x="117.849738" y="32.451483"/>
|
||||||
</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>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-3-0" x="149.125829" y="34.192428"/>
|
<use xlink:href="#glyph-2-0" x="110.649014" y="40.075585"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-4-0" x="155.327601" y="34.192428"/>
|
<use xlink:href="#glyph-1-2" x="114.714304" y="40.075585"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-1-0" x="148.415707" y="40.246891"/>
|
<use xlink:href="#glyph-2-2" x="123.024081" y="40.075585"/>
|
||||||
</g>
|
</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 -138.056784 -14.173635 L -104.040576 -14.173635 L -104.040576 14.175166 L -138.056784 14.175166 Z M -138.056784 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-0" x="38.269349" y="38.932219"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-3" x="46.510948" y="35.330814"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-1" x="52.71272" y="35.330814"/>
|
||||||
|
</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.012882 -14.173635 L 69.02909 -14.173635 L 69.02909 14.175166 L 35.012882 14.175166 Z M 35.012882 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-1" x="208.005456" y="36.783925"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-3" x="215.268022" y="32.540124"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="221.469794" y="32.540124"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="214.269071" y="40.16323"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-2" x="218.334361" y="40.16323"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-2" x="226.644138" y="40.16323"/>
|
||||||
|
</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 104.041506 -14.173635 L 138.057714 -14.173635 L 138.057714 14.175166 L 104.041506 14.175166 Z M 104.041506 -14.173635 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-0" x="278.908107" y="39.019863"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-3" x="287.149706" y="35.419455"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="293.351478" y="35.419455"/>
|
||||||
|
</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 -143.190788 0.000765138 L -166.903689 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 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.052658 0.000765138 L 1.608941 1.683338 L 3.087565 0.000765138 L 1.608941 -1.681808 Z M 6.052658 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 22.358491, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-2" x="5.373666" y="29.689676"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-0" x="10.541721" 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 -103.542472 0.000765138 L -74.162163 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 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.052833 0.000765138 L 1.609115 1.683338 L 3.08774 0.000765138 L 1.609115 -1.681808 Z M 6.052833 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 91.108317, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-0" x="68.721933" y="27.649942"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="77.809105" y="29.441681"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-2" x="81.874395" y="29.441681"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-2" x="90.184172" y="29.441681"/>
|
||||||
|
</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.513847 0.000765138 L -22.139682 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 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.054685 0.000765138 L 1.607045 1.683338 L 3.085669 0.000765138 L 1.607045 -1.681808 Z M 6.054685 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 142.918973, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-2" x="140.052849" 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.504712 0.000765138 L 29.878878 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 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.052624 0.000765138 L 1.608906 1.683338 L 3.087531 0.000765138 L 1.608906 -1.681808 Z M 6.052624 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 194.729619, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-1" x="190.547209" 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.527194 0.000765138 L 98.907502 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 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.052789 0.000765138 L 1.609071 1.683338 L 3.087696 0.000765138 L 1.609071 -1.681808 Z M 6.052789 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 263.479455, 34.981231)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-2" x="240.615297" y="27.649942"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="250.17854" y="29.441681"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-2" x="254.24383" y="29.441681"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-2" x="262.553607" y="29.441681"/>
|
||||||
|
</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 138.555819 0.000765138 L 162.26872 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 167.796412, 34.981231)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 332.613281 34.980469 L 328.183594 33.304688 L 329.65625 34.980469 L 328.183594 36.65625 Z M 332.613281 34.980469 "/>
|
||||||
<g clip-path="url(#clip-1)">
|
<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)"/>
|
<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.054826 0.000765138 L 1.607187 1.683338 L 3.085811 0.000765138 L 1.607187 -1.681808 Z M 6.054826 0.000765138 " transform="matrix(0.995964, 0, 0, -0.995964, 326.582894, 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>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-1-0" x="10.235712" y="31.178642"/>
|
<use xlink:href="#glyph-5-2" x="313.119458" y="29.689676"/>
|
||||||
</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>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-0-3" x="178.339435" y="29.689676"/>
|
<use xlink:href="#glyph-1-0" x="322.682701" y="31.178642"/>
|
||||||
</g>
|
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
|
||||||
<use xlink:href="#glyph-1-0" x="184.877936" y="31.178642"/>
|
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 9.0 KiB |
@ -5,42 +5,51 @@
|
|||||||
<g id="glyph-0-0">
|
<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 "/>
|
<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>
|
||||||
|
<g id="glyph-0-1">
|
||||||
|
<path d="M 7.53125 -5.9375 C 7.671875 -6.15625 7.796875 -6.328125 8.484375 -6.34375 C 8.609375 -6.34375 8.78125 -6.34375 8.78125 -6.625 C 8.78125 -6.6875 8.734375 -6.8125 8.609375 -6.8125 C 8.3125 -6.8125 8 -6.78125 7.703125 -6.78125 C 7.34375 -6.78125 6.953125 -6.8125 6.609375 -6.8125 C 6.53125 -6.8125 6.34375 -6.8125 6.34375 -6.515625 C 6.34375 -6.34375 6.515625 -6.34375 6.59375 -6.34375 C 6.640625 -6.34375 6.9375 -6.34375 7.15625 -6.234375 L 3.875 -1.484375 L 3 -6.125 C 3 -6.15625 2.984375 -6.234375 2.984375 -6.265625 C 2.984375 -6.34375 3.515625 -6.34375 3.59375 -6.34375 C 3.8125 -6.34375 3.96875 -6.34375 3.96875 -6.625 C 3.96875 -6.75 3.875 -6.8125 3.75 -6.8125 C 3.5 -6.8125 3.25 -6.78125 3 -6.78125 C 2.765625 -6.78125 2.515625 -6.78125 2.265625 -6.78125 C 2.046875 -6.78125 1.8125 -6.78125 1.59375 -6.78125 C 1.375 -6.78125 1.140625 -6.8125 0.9375 -6.8125 C 0.84375 -6.8125 0.65625 -6.8125 0.65625 -6.515625 C 0.65625 -6.34375 0.8125 -6.34375 1.015625 -6.34375 C 1.15625 -6.34375 1.265625 -6.34375 1.40625 -6.328125 C 1.515625 -6.3125 1.53125 -6.3125 1.5625 -6.140625 L 2.6875 -0.109375 C 2.734375 0.171875 2.84375 0.171875 3.03125 0.171875 C 3.3125 0.171875 3.359375 0.09375 3.5 -0.09375 Z M 7.53125 -5.9375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-2">
|
||||||
|
<path d="M 7.484375 -6.03125 C 7.546875 -6.21875 7.546875 -6.234375 7.78125 -6.296875 C 7.953125 -6.3125 8.203125 -6.34375 8.359375 -6.34375 C 8.546875 -6.34375 8.703125 -6.34375 8.703125 -6.625 C 8.703125 -6.734375 8.625 -6.8125 8.5 -6.8125 C 8.140625 -6.8125 7.765625 -6.78125 7.40625 -6.78125 C 7.15625 -6.78125 6.515625 -6.8125 6.265625 -6.8125 C 6.203125 -6.8125 6 -6.8125 6 -6.515625 C 6 -6.34375 6.171875 -6.34375 6.3125 -6.34375 C 6.40625 -6.34375 6.765625 -6.34375 7 -6.234375 L 6.015625 -2.328125 C 5.671875 -0.890625 4.5 -0.296875 3.296875 -0.296875 C 2.375 -0.296875 1.9375 -0.6875 1.9375 -1.40625 C 1.9375 -1.640625 1.96875 -1.890625 2.03125 -2.140625 L 3.078125 -6.296875 C 3.296875 -6.34375 3.640625 -6.34375 3.75 -6.34375 C 4.09375 -6.34375 4.234375 -6.34375 4.234375 -6.625 C 4.234375 -6.75 4.125 -6.8125 4.015625 -6.8125 C 3.765625 -6.8125 3.5 -6.78125 3.25 -6.78125 C 3 -6.78125 2.765625 -6.78125 2.515625 -6.78125 C 2.25 -6.78125 2 -6.78125 1.75 -6.78125 C 1.484375 -6.78125 1.21875 -6.8125 0.96875 -6.8125 C 0.859375 -6.8125 0.671875 -6.8125 0.671875 -6.515625 C 0.671875 -6.34375 0.796875 -6.34375 1.125 -6.34375 C 1.375 -6.34375 1.6875 -6.34375 1.6875 -6.296875 C 1.6875 -6.265625 1.59375 -5.90625 1.53125 -5.71875 L 1.3125 -4.84375 L 0.71875 -2.390625 C 0.625 -2.03125 0.625 -1.953125 0.625 -1.765625 C 0.625 -0.46875 1.734375 0.171875 3.234375 0.171875 C 5.015625 0.171875 6.203125 -0.890625 6.53125 -2.25 Z M 7.484375 -6.03125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-3">
|
||||||
|
<path d="M 5.59375 -3.140625 C 5.65625 -3.421875 5.78125 -3.90625 5.78125 -3.96875 C 5.78125 -4.171875 5.609375 -4.40625 5.3125 -4.40625 C 5.15625 -4.40625 4.78125 -4.3125 4.65625 -3.875 C 4.609375 -3.734375 4.171875 -1.9375 4.09375 -1.625 C 4.03125 -1.390625 3.953125 -1.09375 3.9375 -0.921875 C 3.765625 -0.6875 3.375 -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.640625 -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.40625 1.8125 -3.296875 C 1.40625 -2.25 1.203125 -1.703125 1.203125 -1.203125 C 1.203125 -0.078125 2.203125 0.078125 2.78125 0.078125 C 3.078125 0.078125 3.515625 0.046875 4.046875 -0.46875 C 4.359375 0.015625 4.9375 0.078125 5.171875 0.078125 C 5.546875 0.078125 5.828125 -0.125 6.046875 -0.484375 C 6.296875 -0.890625 6.421875 -1.421875 6.421875 -1.46875 C 6.421875 -1.609375 6.265625 -1.609375 6.1875 -1.609375 C 6.078125 -1.609375 6.03125 -1.609375 5.984375 -1.5625 C 5.96875 -1.53125 5.96875 -1.515625 5.90625 -1.265625 C 5.703125 -0.5 5.484375 -0.28125 5.234375 -0.28125 C 5.078125 -0.28125 5 -0.375 5 -0.640625 C 5 -0.8125 5.046875 -0.96875 5.140625 -1.375 C 5.203125 -1.640625 5.3125 -2.046875 5.359375 -2.265625 Z M 5.59375 -3.140625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-4">
|
||||||
|
<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-5">
|
||||||
|
<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-1-0">
|
<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 "/>
|
<path d="M 3.890625 -1.28125 C 3.890625 -1.90625 3.453125 -2.5 2.765625 -2.65625 L 1.734375 -2.90625 C 1.125 -3.03125 0.9375 -3.484375 0.9375 -3.765625 C 0.9375 -4.234375 1.359375 -4.671875 1.984375 -4.671875 C 2.921875 -4.671875 3.328125 -4.046875 3.4375 -3.3125 C 3.453125 -3.203125 3.46875 -3.171875 3.5625 -3.171875 C 3.6875 -3.171875 3.6875 -3.21875 3.6875 -3.34375 L 3.6875 -4.703125 C 3.6875 -4.828125 3.6875 -4.890625 3.59375 -4.890625 C 3.53125 -4.890625 3.515625 -4.875 3.46875 -4.796875 L 3.21875 -4.40625 C 2.765625 -4.875 2.1875 -4.890625 1.984375 -4.890625 C 1.109375 -4.890625 0.484375 -4.265625 0.484375 -3.5625 C 0.484375 -3.171875 0.65625 -2.875 0.90625 -2.640625 C 1.1875 -2.359375 1.421875 -2.3125 2.171875 -2.15625 C 2.796875 -2.015625 2.9375 -1.984375 3.140625 -1.78125 C 3.296875 -1.625 3.453125 -1.40625 3.453125 -1.09375 C 3.453125 -0.609375 3.046875 -0.109375 2.375 -0.109375 C 1.703125 -0.109375 0.765625 -0.375 0.71875 -1.421875 C 0.71875 -1.53125 0.71875 -1.578125 0.609375 -1.578125 C 0.484375 -1.578125 0.484375 -1.53125 0.484375 -1.390625 L 0.484375 -0.046875 C 0.484375 0.078125 0.484375 0.140625 0.578125 0.140625 C 0.640625 0.140625 0.65625 0.125 0.703125 0.0625 C 0.765625 -0.03125 0.890625 -0.25 0.953125 -0.34375 C 1.390625 0.046875 1.921875 0.140625 2.375 0.140625 C 3.296875 0.140625 3.890625 -0.546875 3.890625 -1.28125 Z M 3.890625 -1.28125 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-1-1">
|
<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 "/>
|
<path d="M 5.640625 -4.5 L 5.640625 -4.75 C 5.4375 -4.734375 5.171875 -4.71875 4.96875 -4.71875 C 4.6875 -4.71875 4.171875 -4.75 4.125 -4.75 L 4.125 -4.5 C 4.390625 -4.5 4.609375 -4.390625 4.609375 -4.171875 C 4.609375 -4.125 4.59375 -4.078125 4.578125 -4.03125 L 3.140625 -0.671875 L 1.640625 -4.1875 C 1.59375 -4.28125 1.59375 -4.296875 1.59375 -4.3125 C 1.59375 -4.5 1.953125 -4.5 2.140625 -4.5 L 2.140625 -4.75 L 1.109375 -4.71875 C 0.765625 -4.71875 0.234375 -4.75 0.21875 -4.75 L 0.21875 -4.5 L 0.328125 -4.5 C 0.703125 -4.5 0.828125 -4.46875 0.921875 -4.25 L 2.71875 -0.015625 C 2.78125 0.09375 2.796875 0.140625 2.921875 0.140625 C 3 0.140625 3.0625 0.140625 3.125 0 L 4.859375 -4.046875 C 4.9375 -4.25 5.109375 -4.484375 5.640625 -4.5 Z M 5.640625 -4.5 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-1-2">
|
<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 "/>
|
<path d="M 5.484375 -2.34375 C 5.484375 -3.65625 4.4375 -4.75 3.140625 -4.75 L 0.40625 -4.75 L 0.40625 -4.5 L 0.5625 -4.5 C 1.109375 -4.5 1.125 -4.421875 1.125 -4.1875 L 1.125 -0.5625 C 1.125 -0.328125 1.109375 -0.25 0.5625 -0.25 L 0.40625 -0.25 L 0.40625 0 L 3.140625 0 C 4.421875 0 5.484375 -1.03125 5.484375 -2.34375 Z M 4.765625 -2.34375 C 4.765625 -1.53125 4.5625 -1.109375 4.328125 -0.828125 C 4.015625 -0.46875 3.515625 -0.25 2.953125 -0.25 L 2.09375 -0.25 C 1.765625 -0.25 1.75 -0.3125 1.75 -0.515625 L 1.75 -4.234375 C 1.75 -4.4375 1.765625 -4.5 2.09375 -4.5 L 2.953125 -4.5 C 3.546875 -4.5 4.046875 -4.25 4.375 -3.84375 C 4.65625 -3.46875 4.765625 -2.9375 4.765625 -2.34375 Z M 4.765625 -2.34375 "/>
|
||||||
</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>
|
||||||
<g id="glyph-2-0">
|
<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 "/>
|
<path d="M 3.40625 1.640625 C 3.40625 1.546875 3.34375 1.546875 3.296875 1.546875 C 2.46875 1.5 2.3125 1.03125 2.296875 0.859375 L 2.296875 -0.9375 C 2.296875 -1.25 2.046875 -1.578125 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.421875 2.296875 -4.59375 2.5625 -4.78125 C 2.75 -4.9375 3 -5 3.265625 -5.015625 C 3.34375 -5.03125 3.40625 -5.03125 3.40625 -5.125 C 3.40625 -5.21875 3.34375 -5.21875 3.234375 -5.21875 C 2.453125 -5.21875 1.765625 -4.875 1.765625 -4.34375 L 1.765625 -2.71875 C 1.765625 -2.546875 1.765625 -2.3125 1.578125 -2.140625 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.765625 -1.640625 C 1.515625 -1.59375 1.703125 -1.1875 1.75 -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.34375 1.734375 3.40625 1.734375 3.40625 1.640625 Z M 3.40625 1.640625 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-2-1">
|
<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 "/>
|
<path d="M 5.125 -0.984375 C 5.125 -1.015625 5.109375 -1.046875 5.0625 -1.046875 C 4.953125 -1.046875 4.5 -0.890625 4.421875 -0.609375 C 4.3125 -0.3125 4.234375 -0.3125 4.0625 -0.3125 C 3.6875 -0.3125 3.1875 -0.4375 2.84375 -0.53125 C 2.484375 -0.625 2.109375 -0.703125 1.75 -0.703125 C 1.71875 -0.703125 1.578125 -0.703125 1.484375 -0.6875 C 1.859375 -1.234375 1.953125 -1.578125 2.0625 -2.015625 C 2.203125 -2.53125 2.40625 -3.25 2.75 -3.828125 C 3.09375 -4.390625 3.265625 -4.421875 3.5 -4.421875 C 3.828125 -4.421875 4.046875 -4.1875 4.046875 -3.84375 C 4.046875 -3.734375 4.03125 -3.65625 4.03125 -3.625 C 4.03125 -3.59375 4.046875 -3.5625 4.109375 -3.5625 C 4.125 -3.5625 4.296875 -3.59375 4.546875 -3.765625 C 4.6875 -3.859375 4.765625 -3.9375 4.765625 -4.203125 C 4.765625 -4.46875 4.609375 -4.890625 4.0625 -4.890625 C 3.453125 -4.890625 2.78125 -4.484375 2.421875 -4.046875 C 1.953125 -3.515625 1.640625 -2.8125 1.359375 -1.671875 C 1.1875 -1.03125 0.9375 -0.5 0.609375 -0.234375 C 0.546875 -0.171875 0.359375 0 0.359375 0.09375 C 0.359375 0.140625 0.421875 0.140625 0.4375 0.140625 C 0.6875 0.140625 1 -0.15625 1.09375 -0.25 C 1.296875 -0.25 1.578125 -0.234375 2.203125 -0.078125 C 2.734375 0.0625 3.109375 0.140625 3.5 0.140625 C 4.375 0.140625 5.125 -0.65625 5.125 -0.984375 Z M 5.125 -0.984375 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-2-2">
|
<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 "/>
|
<path d="M 3.40625 -1.734375 C 3.40625 -1.828125 3.34375 -1.828125 3.296875 -1.828125 C 2.484375 -1.875 2.3125 -2.359375 2.296875 -2.546875 L 2.296875 -4.09375 C 2.296875 -4.453125 2.296875 -4.703125 1.890625 -4.96875 C 1.59375 -5.15625 1.09375 -5.21875 0.828125 -5.21875 C 0.71875 -5.21875 0.65625 -5.21875 0.65625 -5.125 C 0.65625 -5.03125 0.71875 -5.015625 0.765625 -5.015625 C 1.625 -4.984375 1.765625 -4.484375 1.765625 -4.328125 L 1.765625 -2.546875 C 1.765625 -2.21875 2.046875 -1.890625 2.59375 -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.390625 1.40625 1.140625 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>
|
||||||
<g id="glyph-2-3">
|
<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 "/>
|
<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-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>
|
||||||
<g id="glyph-3-0">
|
<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 "/>
|
<path d="M 2.59375 -1 C 2.59375 -1.078125 2.515625 -1.078125 2.484375 -1.078125 C 2.40625 -1.078125 2.40625 -1.078125 2.34375 -0.953125 C 2.15625 -0.515625 1.796875 -0.125 1.40625 -0.125 C 1.265625 -0.125 1.171875 -0.21875 1.171875 -0.46875 C 1.171875 -0.53125 1.203125 -0.6875 1.203125 -0.75 L 1.703125 -2.75 L 2.421875 -2.75 C 2.546875 -2.75 2.640625 -2.75 2.640625 -2.90625 C 2.640625 -3 2.546875 -3 2.4375 -3 L 1.765625 -3 L 2.03125 -4.03125 C 2.03125 -4.0625 2.046875 -4.09375 2.046875 -4.125 C 2.046875 -4.25 1.953125 -4.34375 1.8125 -4.34375 C 1.640625 -4.34375 1.53125 -4.234375 1.484375 -4.046875 C 1.4375 -3.875 1.53125 -4.203125 1.21875 -3 L 0.515625 -3 C 0.375 -3 0.296875 -3 0.296875 -2.84375 C 0.296875 -2.75 0.375 -2.75 0.5 -2.75 L 1.15625 -2.75 L 0.75 -1.109375 C 0.703125 -0.9375 0.640625 -0.6875 0.640625 -0.59375 C 0.640625 -0.1875 1 0.0625 1.390625 0.0625 C 2.15625 0.0625 2.59375 -0.90625 2.59375 -1 Z M 2.59375 -1 "/>
|
||||||
</g>
|
</g>
|
||||||
<g id="glyph-4-0">
|
<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 "/>
|
<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>
|
||||||
|
<g id="glyph-5-0">
|
||||||
|
<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>
|
</g>
|
||||||
<clipPath id="clip-0">
|
<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 "/>
|
<path clip-rule="nonzero" d="M 19 15 L 167 15 L 167 54.558594 L 19 54.558594 Z M 19 15 "/>
|
||||||
@ -57,57 +66,58 @@
|
|||||||
<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)"/>
|
<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>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-0-0" x="79.082719" y="10.612989"/>
|
<use xlink:href="#glyph-0-0" x="80.149397" y="10.612989"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-1-0" x="87.881062" y="12.100958"/>
|
<use xlink:href="#glyph-1-0" x="88.947739" y="12.100958"/>
|
||||||
</g>
|
<use xlink:href="#glyph-1-1" x="93.330445" y="12.100958"/>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<use xlink:href="#glyph-1-2" x="99.187713" y="12.100958"/>
|
||||||
<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>
|
</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)"/>
|
<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">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-0-0" x="88.504535" y="38.385435"/>
|
<use xlink:href="#glyph-0-0" x="81.442157" y="36.621583"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="90.2405" y="38.413321"/>
|
||||||
|
<use xlink:href="#glyph-2-1" x="94.30579" y="38.413321"/>
|
||||||
|
<use xlink:href="#glyph-2-2" x="99.804662" y="38.413321"/>
|
||||||
</g>
|
</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)"/>
|
<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">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-2-0" x="30.871108" y="39.155314"/>
|
<use xlink:href="#glyph-0-1" x="31.616089" y="38.932219"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-3-0" x="38.864712" y="35.554906"/>
|
<use xlink:href="#glyph-2-3" x="40.876558" y="35.330814"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-1-3" x="45.066484" y="35.554906"/>
|
<use xlink:href="#glyph-3-0" x="47.07833" y="35.330814"/>
|
||||||
</g>
|
</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)"/>
|
<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">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-2-1" x="135.459241" y="39.019863"/>
|
<use xlink:href="#glyph-0-2" x="134.850707" y="39.019863"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-3-0" x="143.315402" y="35.419455"/>
|
<use xlink:href="#glyph-2-3" x="143.924932" y="35.419455"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-4-0" x="149.517174" y="35.419455"/>
|
<use xlink:href="#glyph-4-0" x="150.126704" y="35.419455"/>
|
||||||
</g>
|
</g>
|
||||||
<g clip-path="url(#clip-1)">
|
<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)"/>
|
<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>
|
</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)"/>
|
<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">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-2-2" x="4.876457" y="31.178642"/>
|
<use xlink:href="#glyph-0-3" x="4.876457" y="31.178642"/>
|
||||||
</g>
|
</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="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)"/>
|
<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">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-2-3" x="66.20491" y="31.178642"/>
|
<use xlink:href="#glyph-0-4" x="65.16114" y="31.178642"/>
|
||||||
</g>
|
</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="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)"/>
|
<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">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-2-4" x="118.230066" y="31.178642"/>
|
<use xlink:href="#glyph-5-0" x="115.654504" y="31.178642"/>
|
||||||
</g>
|
</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="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 "/>
|
<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 "/>
|
||||||
@ -115,6 +125,6 @@
|
|||||||
<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)"/>
|
<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>
|
||||||
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
<use xlink:href="#glyph-2-5" x="175.711111" y="29.24946"/>
|
<use xlink:href="#glyph-0-5" x="174.70718" y="29.24946"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 25 KiB |
538
phd-thesis.org
@ -2489,8 +2489,28 @@ First, a /response model/ is obtained, which corresponds to a set of frequency r
|
|||||||
From this response model, the modal model can be computed, which consists of two matrices: one containing the natural frequencies and damping factors of the considered modes, and another describing the mode shapes.
|
From this response model, the modal model can be computed, which consists of two matrices: one containing the natural frequencies and damping factors of the considered modes, and another describing the mode shapes.
|
||||||
This modal model can then be used to tune the spatial model (i.e. the multi-body model), that is, to tune the mass of the considered solid bodies and the springs and dampers connecting the solid bodies.
|
This modal model can then be used to tune the spatial model (i.e. the multi-body model), that is, to tune the mass of the considered solid bodies and the springs and dampers connecting the solid bodies.
|
||||||
|
|
||||||
|
#+begin_src latex :file modal_vibration_analysis_procedure.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\node[block, inner sep = 8pt, align=center] (1) {Description\\of structure};
|
||||||
|
\node[block, inner sep = 8pt, align=center, left=1.0 of 1] (2) {Vibration\\Modes};
|
||||||
|
\node[block, inner sep = 8pt, align=center, left=1.0 of 2] (3) {Response\\Levels};
|
||||||
|
|
||||||
|
\draw[<->] (1) -- (2);
|
||||||
|
\draw[<->] (2) -- (3);
|
||||||
|
|
||||||
|
\node[above] (labelt) at (1.north) {Spatial Model};
|
||||||
|
\node[] at (2|-labelt) {Modal Model};
|
||||||
|
\node[] at (3|-labelt) {Response Model};
|
||||||
|
|
||||||
|
\node[align = center, font=\tiny, below] (labelb) at (1.south) {Mass\\Stiffness\\Damping};
|
||||||
|
\node[align = center, font=\tiny] at (2|-labelb) {Natural Frequencies\\Mode Shapes\\};
|
||||||
|
\node[align = center, font=\tiny] at (3|-labelb) {Time Responses\\Frequency Responses\\};
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:modal_vibration_analysis_procedure
|
#+name: fig:modal_vibration_analysis_procedure
|
||||||
#+caption: Three models of the same structure. The goal is to tune a spatial model (i.e. mass, stiffness and damping properties) from a response model. The modal model can be used as an intermediate step.
|
#+caption: Three models of the same structure. The goal is to tune a spatial model (i.e. mass, stiffness and damping properties) from a response model. The modal model can be used as an intermediate step.
|
||||||
|
#+RESULTS:
|
||||||
[[file:figs/modal_vibration_analysis_procedure.png]]
|
[[file:figs/modal_vibration_analysis_procedure.png]]
|
||||||
|
|
||||||
The measurement setup used to obtain the response model is described in Section ref:sec:modal_meas_setup.
|
The measurement setup used to obtain the response model is described in Section ref:sec:modal_meas_setup.
|
||||||
@ -2503,6 +2523,16 @@ The solid body assumption is then verified, validating the use of the multi-body
|
|||||||
Finally, the modal analysis is performed in Section ref:sec:modal_analysis.
|
Finally, the modal analysis is performed in Section ref:sec:modal_analysis.
|
||||||
This shows how complex the micro-station dynamics is, and the necessity of having a model representing its complex dynamics.
|
This shows how complex the micro-station dynamics is, and the necessity of having a model representing its complex dynamics.
|
||||||
|
|
||||||
|
# #+name: tab:modal_section_matlab_code
|
||||||
|
# #+caption: Report sections and corresponding Matlab files
|
||||||
|
# #+attr_latex: :environment tabularx :width 0.5\linewidth :align lX
|
||||||
|
# #+attr_latex: :center t :booktabs t
|
||||||
|
# | *Sections* | *Matlab File* |
|
||||||
|
# |--------------------------------------+----------------------------|
|
||||||
|
# | Section ref:sec:modal_meas_setup | =modal_1_meas_setup.m= |
|
||||||
|
# | Section ref:sec:modal_frf_processing | =modal_2_frf_processing.m= |
|
||||||
|
# | Section ref:sec:modal_analysis | =modal_3_analysis.m= |
|
||||||
|
|
||||||
*** Measurement Setup
|
*** Measurement Setup
|
||||||
<<sec:modal_meas_setup>>
|
<<sec:modal_meas_setup>>
|
||||||
**** Introduction :ignore:
|
**** Introduction :ignore:
|
||||||
@ -2763,8 +2793,43 @@ To validate this reduction of acrshort:dof and the solid body assumption, the fr
|
|||||||
Let us consider the schematic shown in Figure ref:fig:modal_local_to_global_coordinates where the motion of a solid body is measured at 4 distinct locations (in $x$, $y$ and $z$ directions).
|
Let us consider the schematic shown in Figure ref:fig:modal_local_to_global_coordinates where the motion of a solid body is measured at 4 distinct locations (in $x$, $y$ and $z$ directions).
|
||||||
The goal here is to link these $4 \times 3 = 12$ measurements to the 6 acrshort:dof of the solid body expressed in the frame $\{O\}$.
|
The goal here is to link these $4 \times 3 = 12$ measurements to the 6 acrshort:dof of the solid body expressed in the frame $\{O\}$.
|
||||||
|
|
||||||
|
#+begin_src latex :file modal_local_to_global_coordinates.pdf
|
||||||
|
\newcommand\irregularcircle[2]{% radius, irregularity
|
||||||
|
\pgfextra {\pgfmathsetmacro\len{(#1)+rand*(#2)}}
|
||||||
|
+(0:\len pt)
|
||||||
|
\foreach \a in {10,20,...,350}{
|
||||||
|
\pgfextra {\pgfmathsetmacro\len{(#1)+rand*(#2)}}
|
||||||
|
-- +(\a:\len pt)
|
||||||
|
} -- cycle
|
||||||
|
}
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\draw[rounded corners=1mm, fill=blue!30!white] (0, 0) \irregularcircle{3cm}{1mm};
|
||||||
|
|
||||||
|
\node[] (origin) at (0, 0) {$\bullet$};
|
||||||
|
\begin{scope}[shift={(origin)}]
|
||||||
|
\def\axissize{0.8cm}
|
||||||
|
\draw[->] (0, 0) -- ++(\axissize, 0) node[above left]{$x$};
|
||||||
|
\draw[->] (0, 0) -- ++(0, \axissize) node[below right]{$y$};
|
||||||
|
\draw[fill, color=black] (0, 0) circle (0.05*\axissize);
|
||||||
|
\node[draw, circle, inner sep=0pt, minimum size=0.4*\axissize, label=left:$z$] (yaxis) at (0, 0){};
|
||||||
|
\node[below right] at (0, 0){$\{O\}$};
|
||||||
|
\end{scope}
|
||||||
|
|
||||||
|
\coordinate[] (p1) at (-1.5, -1.5);
|
||||||
|
\coordinate[] (p2) at (-1.5, 1.5);
|
||||||
|
\coordinate[] (p3) at ( 1.5, 1.5);
|
||||||
|
\coordinate[] (p4) at ( 1.5, -1.5);
|
||||||
|
|
||||||
|
\draw[->] (p1)node[]{$\bullet$}node[above]{$\vec{p}_1$} -- ++( 1 , 0.1)node[right]{$\delta \vec{p}_1$};
|
||||||
|
\draw[->] (p2)node[]{$\bullet$}node[above]{$\vec{p}_2$} -- ++(-0.5,-0.4)node[below]{$\delta \vec{p}_2$};
|
||||||
|
\draw[->] (p3)node[]{$\bullet$}node[above]{$\vec{p}_3$} -- ++(-0.8,-0.1)node[below]{$\delta \vec{p}_3$};
|
||||||
|
\draw[->] (p4)node[]{$\bullet$}node[above]{$\vec{p}_4$} -- ++( 0.5, 0.2)node[below]{$\delta \vec{p}_4$};
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:modal_local_to_global_coordinates
|
#+name: fig:modal_local_to_global_coordinates
|
||||||
#+caption: Schematic of the measured motions of a solid body
|
#+caption: Schematic of the measured motions of a solid body
|
||||||
|
#+RESULTS:
|
||||||
[[file:figs/modal_local_to_global_coordinates.png]]
|
[[file:figs/modal_local_to_global_coordinates.png]]
|
||||||
|
|
||||||
The motion of the rigid body of figure ref:fig:modal_local_to_global_coordinates can be described by its displacement $\vec{\delta}p = [\delta p_x,\ \delta p_y,\ \delta p_z]$ and (small) rotations $[\delta \Omega_x,\ \delta \Omega_y,\ \delta \Omega_z]$ with respect to the reference frame $\{O\}$.
|
The motion of the rigid body of figure ref:fig:modal_local_to_global_coordinates can be described by its displacement $\vec{\delta}p = [\delta p_x,\ \delta p_y,\ \delta p_z]$ and (small) rotations $[\delta \Omega_x,\ \delta \Omega_y,\ \delta \Omega_z]$ with respect to the reference frame $\{O\}$.
|
||||||
@ -2878,7 +2943,7 @@ The acrshort:mif is applied to the $n\times p$ acrshort:frf matrix where $n$ is
|
|||||||
|
|
||||||
The complex modal indication function is defined in equation eqref:eq:modal_cmif where the diagonal matrix $\Sigma$ is obtained from a acrlong:svd of the acrshort:frf matrix as shown in equation eqref:eq:modal_svd.
|
The complex modal indication function is defined in equation eqref:eq:modal_cmif where the diagonal matrix $\Sigma$ is obtained from a acrlong:svd of the acrshort:frf matrix as shown in equation eqref:eq:modal_svd.
|
||||||
\begin{equation} \label{eq:modal_cmif}
|
\begin{equation} \label{eq:modal_cmif}
|
||||||
[CMIF(\omega)]_{p\times p} = [\Sigma(\omega)]_{p\times n}^T [\Sigma(\omega)]_{n\times p}
|
[CMIF(\omega)]_{p\times p} = [\Sigma(\omega)]_{p\times n}^{\intercal} [\Sigma(\omega)]_{n\times p}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
\begin{equation} \label{eq:modal_svd}
|
\begin{equation} \label{eq:modal_svd}
|
||||||
@ -2978,7 +3043,7 @@ The modal parameter extraction is made using a proprietary software[fn:modal_4].
|
|||||||
For each mode $r$ (from $1$ to the number of considered modes $m=16$), it outputs the frequency $\omega_r$, the damping ratio $\xi_r$, the eigenvectors $\{\phi_{r}\}$ (vector of complex numbers with a size equal to the number of measured acrshort:dof $n=69$, see equation eqref:eq:modal_eigenvector) and a scaling factor $a_r$.
|
For each mode $r$ (from $1$ to the number of considered modes $m=16$), it outputs the frequency $\omega_r$, the damping ratio $\xi_r$, the eigenvectors $\{\phi_{r}\}$ (vector of complex numbers with a size equal to the number of measured acrshort:dof $n=69$, see equation eqref:eq:modal_eigenvector) and a scaling factor $a_r$.
|
||||||
|
|
||||||
\begin{equation}\label{eq:modal_eigenvector}
|
\begin{equation}\label{eq:modal_eigenvector}
|
||||||
\{\phi_i\} = \begin{Bmatrix} \phi_{i, 1_x} & \phi_{i, 1_y} & \phi_{i, 1_z} & \phi_{i, 2_x} & \dots & \phi_{i, 23_z} \end{Bmatrix}^T
|
\{\phi_i\} = \begin{Bmatrix} \phi_{i, 1_x} & \phi_{i, 1_y} & \phi_{i, 1_z} & \phi_{i, 2_x} & \dots & \phi_{i, 23_z} \end{Bmatrix}^{\intercal}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
The eigenvalues $s_r$ and $s_r^*$ can then be computed from equation eqref:eq:modal_eigenvalues.
|
The eigenvalues $s_r$ and $s_r^*$ can then be computed from equation eqref:eq:modal_eigenvalues.
|
||||||
@ -3005,7 +3070,7 @@ In order to synthesize the full acrshort:frf matrix, the eigenvectors $\phi_r$ a
|
|||||||
The full acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ can be obtained using eqref:eq:modal_synthesized_frf.
|
The full acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ can be obtained using eqref:eq:modal_synthesized_frf.
|
||||||
|
|
||||||
\begin{equation}\label{eq:modal_synthesized_frf}
|
\begin{equation}\label{eq:modal_synthesized_frf}
|
||||||
[\mathbf{H}_{\text{syn}}(\omega)]_{n\times n} = [\Phi]_{n\times2m} [\mathbf{H}_{\text{mod}}(\omega)]_{2m\times2m} [\Phi]_{2m\times n}^T
|
[\mathbf{H}_{\text{syn}}(\omega)]_{n\times n} = [\Phi]_{n\times2m} [\mathbf{H}_{\text{mod}}(\omega)]_{2m\times2m} [\Phi]_{2m\times n}^{\intercal}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
With $\mathbf{H}_{\text{mod}}(\omega)$ a diagonal matrix representing the response of the different modes eqref:eq:modal_modal_resp.
|
With $\mathbf{H}_{\text{mod}}(\omega)$ a diagonal matrix representing the response of the different modes eqref:eq:modal_modal_resp.
|
||||||
@ -3086,10 +3151,10 @@ To validate the accuracy of the micro-station model, "real world" experiments ar
|
|||||||
|
|
||||||
The micro-station consists of 4 stacked positioning stages (Figure ref:fig:ustation_cad_view).
|
The micro-station consists of 4 stacked positioning stages (Figure ref:fig:ustation_cad_view).
|
||||||
From bottom to top, the stacked stages are the translation stage $D_y$, the tilt stage $R_y$, the rotation stage (Spindle) $R_z$ and the positioning hexapod.
|
From bottom to top, the stacked stages are the translation stage $D_y$, the tilt stage $R_y$, the rotation stage (Spindle) $R_z$ and the positioning hexapod.
|
||||||
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex. complex dynamics.
|
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex.
|
||||||
|
|
||||||
#+name: fig:ustation_cad_view
|
#+name: fig:ustation_cad_view
|
||||||
#+caption: CAD view of the micro-station with the translation stage (in blue), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple). On top of these four stages, a solid part (shown in green) will be replaced by the stabilization stage.
|
#+caption: CAD view of the micro-station with the translation stage (in blue), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple).
|
||||||
#+attr_latex: :width \linewidth
|
#+attr_latex: :width \linewidth
|
||||||
[[file:figs/ustation_cad_view.png]]
|
[[file:figs/ustation_cad_view.png]]
|
||||||
|
|
||||||
@ -3103,17 +3168,17 @@ The "controlled" DoF of each stage (for instance the $D_y$ direction for the tra
|
|||||||
**** Motion Stages
|
**** Motion Stages
|
||||||
<<ssec:ustation_stages>>
|
<<ssec:ustation_stages>>
|
||||||
|
|
||||||
***** Translation Stage
|
****** Translation Stage
|
||||||
|
|
||||||
The translation stage is used to position and scan the sample laterally with respect to the X-ray beam.
|
The translation stage is used to position and scan the sample laterally with respect to the X-ray beam.
|
||||||
|
|
||||||
A linear motor was first used to enable fast and accurate scans.
|
A linear motor was first used to enable fast and accurate scans.
|
||||||
It was later replaced with a stepper motor and lead-screw, as the feedback control used for the linear motor was unreliable[fn:ustation_12].
|
It was later replaced with a stepper motor and lead-screw, as the feedback control used for the linear motor was unreliable[fn:ustation_11].
|
||||||
An optical linear encoder is used to measure the stage motion and for controlling the position.
|
An optical linear encoder is used to measure the stage motion and for controlling the position.
|
||||||
|
|
||||||
Four cylindrical bearings[fn:ustation_4] are used to guide the motion (i.e. minimize the parasitic motions) and have high stiffness.
|
Four cylindrical bearings[fn:ustation_4] are used to guide the motion (i.e. minimize the parasitic motions) and have high stiffness.
|
||||||
|
|
||||||
***** Tilt Stage
|
****** Tilt Stage
|
||||||
|
|
||||||
The tilt stage is guided by four linear motion guides[fn:ustation_1] which are placed such that the center of rotation coincide with the X-ray beam.
|
The tilt stage is guided by four linear motion guides[fn:ustation_1] which are placed such that the center of rotation coincide with the X-ray beam.
|
||||||
Each linear guide is very stiff in radial directions such that the only DoF with low stiffness is in $R_y$.
|
Each linear guide is very stiff in radial directions such that the only DoF with low stiffness is in $R_y$.
|
||||||
@ -3139,14 +3204,14 @@ To precisely control the $R_y$ angle, a stepper motor and two optical encoders a
|
|||||||
[[file:figs/ustation_ry_stage.png]]
|
[[file:figs/ustation_ry_stage.png]]
|
||||||
#+end_minipage
|
#+end_minipage
|
||||||
|
|
||||||
***** Spindle
|
****** Spindle
|
||||||
|
|
||||||
Then, a rotation stage is used for tomography experiments.
|
Then, a rotation stage is used for tomography experiments.
|
||||||
It is composed of an air bearing spindle[fn:ustation_2], whose angular position is controlled with a 3 phase synchronous motor based on the reading of 4 optical encoders.
|
It is composed of an air bearing spindle[fn:ustation_2], whose angular position is controlled with a 3 phase synchronous motor based on the reading of 4 optical encoders.
|
||||||
|
|
||||||
Additional rotary unions and slip-rings are used to be able to pass electrical signals, fluids and gazes through the rotation stage.
|
Additional rotary unions and slip-rings are used to be able to pass electrical signals, fluids and gazes through the rotation stage.
|
||||||
|
|
||||||
***** Micro-Hexapod
|
****** Micro-Hexapod
|
||||||
|
|
||||||
Finally, a Stewart platform[fn:ustation_3] is used to position the sample.
|
Finally, a Stewart platform[fn:ustation_3] is used to position the sample.
|
||||||
It includes a DC motor and an optical linear encoders in each of the six struts.
|
It includes a DC motor and an optical linear encoders in each of the six struts.
|
||||||
@ -3172,7 +3237,7 @@ It can also be used to precisely position the PoI vertically with respect to the
|
|||||||
|
|
||||||
**** Mathematical description of a rigid body motion
|
**** Mathematical description of a rigid body motion
|
||||||
<<ssec:ustation_motion_description>>
|
<<ssec:ustation_motion_description>>
|
||||||
***** Introduction :ignore:
|
****** Introduction :ignore:
|
||||||
|
|
||||||
In this section, mathematical tools[fn:ustation_6] that are used to describe the motion of positioning stages are introduced.
|
In this section, mathematical tools[fn:ustation_6] that are used to describe the motion of positioning stages are introduced.
|
||||||
|
|
||||||
@ -3180,7 +3245,7 @@ First, the tools to describe the pose of a solid body (i.e. it's position and or
|
|||||||
The motion induced by a positioning stage is described by transformation matrices.
|
The motion induced by a positioning stage is described by transformation matrices.
|
||||||
Finally, the motions of all stacked stages are combined, and the sample's motion is computed from each stage motion.
|
Finally, the motions of all stacked stages are combined, and the sample's motion is computed from each stage motion.
|
||||||
|
|
||||||
***** Spatial motion representation
|
****** Spatial motion representation
|
||||||
|
|
||||||
The /pose/ of a solid body relative to a specific frame can be described by six independent parameters.
|
The /pose/ of a solid body relative to a specific frame can be described by six independent parameters.
|
||||||
Three parameters are typically used to describe its position, and three other parameters describe its orientation.
|
Three parameters are typically used to describe its position, and three other parameters describe its orientation.
|
||||||
@ -3222,14 +3287,10 @@ The /orientation/ of a rigid body is the same at all its points (by definition).
|
|||||||
Hence, the orientation of a rigid body can be viewed as that of a moving frame attached to the rigid body.
|
Hence, the orientation of a rigid body can be viewed as that of a moving frame attached to the rigid body.
|
||||||
It can be represented in several different ways: the rotation matrix, the screw axis representation, and the Euler angles are common descriptions.
|
It can be represented in several different ways: the rotation matrix, the screw axis representation, and the Euler angles are common descriptions.
|
||||||
|
|
||||||
The rotation matrix ${}^A\bm{R}_B$ is a $3 \times 3$ matrix containing the Cartesian unit vectors of frame $\{\bm{B}\}$ represented in frame $\{\bm{A}\}$ eqref:eq:ustation_rotation_matrix.
|
The rotation matrix ${}^A\bm{R}_B$ is a $3 \times 3$ matrix containing the Cartesian unit vectors $[{}^A\hat{\bm{x}}_B,\ {}^A\hat{\bm{y}}_B,\ {}^A\hat{\bm{z}}_B]$ of frame $\{\bm{B}\}$ represented in frame $\{\bm{A}\}$ eqref:eq:ustation_rotation_matrix.
|
||||||
|
|
||||||
\begin{equation}\label{eq:ustation_rotation_matrix}
|
\begin{equation}\label{eq:ustation_rotation_matrix}
|
||||||
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{z}}_B \right] = \begin{bmatrix}
|
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{z}}_B \right]
|
||||||
u_{x} & v_{x} & z_{x} \\
|
|
||||||
u_{y} & v_{y} & z_{y} \\
|
|
||||||
u_{z} & v_{z} & z_{z}
|
|
||||||
\end{bmatrix}
|
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Consider a pure rotation of a rigid body ($\{\bm{A}\}$ and $\{\bm{B}\}$ are coincident at their origins, as shown in Figure ref:fig:ustation_rotation).
|
Consider a pure rotation of a rigid body ($\{\bm{A}\}$ and $\{\bm{B}\}$ are coincident at their origins, as shown in Figure ref:fig:ustation_rotation).
|
||||||
@ -3245,7 +3306,7 @@ For rotations along $x$, $y$ or $z$ axis, the formulas of the corresponding rota
|
|||||||
\begin{align}
|
\begin{align}
|
||||||
\bm{R}_x(\theta_x) &= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta_x) & -\sin(\theta_x) \\ 0 & \sin(\theta_x) & \cos(\theta_x) \end{bmatrix} \\
|
\bm{R}_x(\theta_x) &= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta_x) & -\sin(\theta_x) \\ 0 & \sin(\theta_x) & \cos(\theta_x) \end{bmatrix} \\
|
||||||
\bm{R}_y(\theta_y) &= \begin{bmatrix} \cos(\theta_y) & 0 & \sin(\theta_y) \\ 0 & 1 & 0 \\ -\sin(\theta_y) & 0 & \cos(\theta_y) \end{bmatrix} \\
|
\bm{R}_y(\theta_y) &= \begin{bmatrix} \cos(\theta_y) & 0 & \sin(\theta_y) \\ 0 & 1 & 0 \\ -\sin(\theta_y) & 0 & \cos(\theta_y) \end{bmatrix} \\
|
||||||
\bm{R}_z(\theta_z) &= \begin{bmatrix} \cos(\theta_z) & -\sin(\theta_z) & 0 \\ \sin(\theta_z) & \cos(\theta_x) & 0 \\ 0 & 0 & 1 \end{bmatrix}
|
\bm{R}_z(\theta_z) &= \begin{bmatrix} \cos(\theta_z) & -\sin(\theta_z) & 0 \\ \sin(\theta_z) & \cos(\theta_z) & 0 \\ 0 & 0 & 1 \end{bmatrix}
|
||||||
\end{align}
|
\end{align}
|
||||||
\end{subequations}
|
\end{subequations}
|
||||||
|
|
||||||
@ -3266,7 +3327,7 @@ Such rotation can be parameterized by three Euler angles $(\alpha,\ \beta,\ \gam
|
|||||||
\end{align}
|
\end{align}
|
||||||
\end{subequations}
|
\end{subequations}
|
||||||
|
|
||||||
***** Motion of a Rigid Body
|
****** Motion of a Rigid Body
|
||||||
|
|
||||||
Since the relative positions of a rigid body with respect to a moving frame $\{B\}$ attached to it are fixed for all time, it is sufficient to know the position of the origin of the frame $O_B$ and the orientation of the frame $\{B\}$ with respect to the fixed frame $\{A\}$, to represent the position of any point $P$ in the space.
|
Since the relative positions of a rigid body with respect to a moving frame $\{B\}$ attached to it are fixed for all time, it is sufficient to know the position of the origin of the frame $O_B$ and the orientation of the frame $\{B\}$ with respect to the fixed frame $\{A\}$, to represent the position of any point $P$ in the space.
|
||||||
|
|
||||||
@ -3335,7 +3396,7 @@ Another key advantage of homogeneous transformation is the easy inverse transfor
|
|||||||
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
|
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
|
||||||
\left[ \begin{array}{ccc|c}
|
\left[ \begin{array}{ccc|c}
|
||||||
& & & \\
|
& & & \\
|
||||||
& {}^A\bm{R}_B^T & & -{}^A \bm{R}_B^T {}^AP_{O_B} \\
|
& {}^A\bm{R}_B^{\intercal} & & -{}^A \bm{R}_B^{\intercal} {}^AP_{O_B} \\
|
||||||
& & & \cr
|
& & & \cr
|
||||||
\hline
|
\hline
|
||||||
0 & 0 & 0 & 1 \\
|
0 & 0 & 0 & 1 \\
|
||||||
@ -3377,8 +3438,9 @@ The homogeneous transformation matrix corresponding to the micro-station $\bm{T}
|
|||||||
|
|
||||||
$\bm{T}_{\mu\text{-station}}$ represents the pose of the sample (supposed to be rigidly fixed on top of the positioning-hexapod) with respect to the granite.
|
$\bm{T}_{\mu\text{-station}}$ represents the pose of the sample (supposed to be rigidly fixed on top of the positioning-hexapod) with respect to the granite.
|
||||||
|
|
||||||
If the transformation matrices of the individual stages are each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), $\bm{T}_{\mu\text{-station}}$ then represent the pose setpoint of the sample with respect to the granite.
|
If the transformation matrices of the individual stages are each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), $\bm{T}_{\mu\text{-station}}$ then represents the pose setpoint of the sample with respect to the granite.
|
||||||
The transformation matrices for the translation stage, tilt stage, spindle, and positioning hexapod can be written as shown in Equation eqref:eq:ustation_transformation_matrices_stages.
|
The transformation matrices for the translation stage, tilt stage, spindle, and positioning hexapod can be written as shown in Equation eqref:eq:ustation_transformation_matrices_stages.
|
||||||
|
The setpoints are $D_y$ for the translation stage, $\theta_y$ for the tilt-stage, $\theta_z$ for the spindle, $[D_{\mu x},\ D_{\mu y}, D_{\mu z}]$ for the micro-hexapod translations and $[\theta_{\mu x},\ \theta_{\mu y}, \theta_{\mu z}]$ for the micro-hexapod rotations.
|
||||||
|
|
||||||
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
|
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
|
||||||
\begin{align}
|
\begin{align}
|
||||||
@ -3437,7 +3499,7 @@ Joints are used to impose kinematic constraints between solid bodies and to spec
|
|||||||
External forces can be used to model disturbances, and "sensors" can be used to measure the relative pose between two defined frames.
|
External forces can be used to model disturbances, and "sensors" can be used to measure the relative pose between two defined frames.
|
||||||
|
|
||||||
#+name: fig:ustation_simscape_stage_example
|
#+name: fig:ustation_simscape_stage_example
|
||||||
#+caption: Example of a stage (here the tilt-stage) represented in the multi-body model software (Simscape). It is composed of two solid bodies connected by a 6-DoF joint. One joint DoF (here the tilt angle) can be imposed, the other DoFs are represented by springs and dampers. Additional disturbances forces for all DoF can be included
|
#+caption: Example of a stage (here the tilt-stage) represented in the multi-body model software (Simscape). It is composed of two solid bodies connected by a 6-DoF joint. One joint DoF (here the tilt angle) can be imposed, the other DoFs are represented by springs and dampers. Additional disturbing forces for all DoF can be included
|
||||||
[[file:figs/ustation_simscape_stage_example.png]]
|
[[file:figs/ustation_simscape_stage_example.png]]
|
||||||
|
|
||||||
Therefore, the micro-station is modeled by several solid bodies connected by joints.
|
Therefore, the micro-station is modeled by several solid bodies connected by joints.
|
||||||
@ -3570,7 +3632,7 @@ Similar to what is done for the accelerometers, a Jacobian matrix $\bm{J}_F$ is
|
|||||||
The equivalent forces and torques applied at center of $\{\mathcal{X}\}$ are then computed using eqref:eq:ustation_compute_cart_force.
|
The equivalent forces and torques applied at center of $\{\mathcal{X}\}$ are then computed using eqref:eq:ustation_compute_cart_force.
|
||||||
|
|
||||||
\begin{equation}\label{eq:ustation_compute_cart_force}
|
\begin{equation}\label{eq:ustation_compute_cart_force}
|
||||||
F_{\mathcal{X}} = \bm{J}_F^t \cdot F_{\mathcal{L}}
|
F_{\mathcal{X}} = \bm{J}_F^{\intercal} \cdot F_{\mathcal{L}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Using the two Jacobian matrices, the FRF from the 10 hammer impacts to the 12 accelerometer outputs can be converted to the FRF from 6 forces/torques applied at the origin of frame $\{\mathcal{X}\}$ to the 6 linear/angular accelerations of the top platform expressed with respect to $\{\mathcal{X}\}$.
|
Using the two Jacobian matrices, the FRF from the 10 hammer impacts to the 12 accelerometer outputs can be converted to the FRF from 6 forces/torques applied at the origin of frame $\{\mathcal{X}\}$ to the 6 linear/angular accelerations of the top platform expressed with respect to $\{\mathcal{X}\}$.
|
||||||
@ -3604,8 +3666,8 @@ Considering the complexity of the micro-station compliance dynamics, the model c
|
|||||||
|
|
||||||
The goal of this section is to obtain a realistic representation of disturbances affecting the micro-station.
|
The goal of this section is to obtain a realistic representation of disturbances affecting the micro-station.
|
||||||
These disturbance sources are then used during time domain simulations to accurately model the micro-station behavior.
|
These disturbance sources are then used during time domain simulations to accurately model the micro-station behavior.
|
||||||
The focus on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
The focus is on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
||||||
Such disturbances include ground motions and vibrations induces by scanning the translation stage and the spindle.
|
Such disturbances include ground motions and vibrations induce by scanning the translation stage and the spindle.
|
||||||
|
|
||||||
In the multi-body model, stage vibrations are modeled as internal forces applied in the stage joint.
|
In the multi-body model, stage vibrations are modeled as internal forces applied in the stage joint.
|
||||||
In practice, disturbance forces cannot be directly measured.
|
In practice, disturbance forces cannot be directly measured.
|
||||||
@ -3616,16 +3678,16 @@ Finally, the obtained disturbance sources are compared in Section ref:ssec:ustat
|
|||||||
|
|
||||||
**** Disturbance measurements
|
**** Disturbance measurements
|
||||||
<<ssec:ustation_disturbances_meas>>
|
<<ssec:ustation_disturbances_meas>>
|
||||||
***** Introduction :ignore:
|
****** Introduction :ignore:
|
||||||
In this section, ground motion is directly measured using geophones.
|
In this section, ground motion is directly measured using geophones.
|
||||||
Vibrations induced by scanning the translation stage and the spindle are also measured using dedicated setups.
|
Vibrations induced by scanning the translation stage and the spindle are also measured using dedicated setups.
|
||||||
|
|
||||||
The tilt stage and the micro-hexapod also have positioning errors; however, they are not modeled here because these two stages are only used for pre-positioning and not for scanning.
|
The tilt stage and the micro-hexapod also have positioning errors; however, they are not modeled here because these two stages are only used for pre-positioning and not for scanning.
|
||||||
Therefore, from a control perspective, they are not important.
|
Therefore, from a control perspective, they are not important.
|
||||||
|
|
||||||
***** Ground Motion
|
****** Ground Motion
|
||||||
|
|
||||||
The ground motion was measured by using a sensitive 3-axis geophone[fn:ustation_11] placed on the ground.
|
The ground motion was measured by using a sensitive 3-axis geophone shown in Figure ref:fig:ustation_geophone_picture placed on the ground.
|
||||||
The generated voltages were recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
|
The generated voltages were recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
|
||||||
The obtained ground motion displacement is shown in Figure ref:fig:ustation_ground_disturbance.
|
The obtained ground motion displacement is shown in Figure ref:fig:ustation_ground_disturbance.
|
||||||
|
|
||||||
@ -3645,14 +3707,14 @@ The obtained ground motion displacement is shown in Figure ref:fig:ustation_grou
|
|||||||
[[file:figs/ustation_geophone_picture.jpg]]
|
[[file:figs/ustation_geophone_picture.jpg]]
|
||||||
#+end_minipage
|
#+end_minipage
|
||||||
|
|
||||||
***** Ty Stage
|
****** Ty Stage
|
||||||
|
|
||||||
To measure the positioning errors of the translation stage, the setup shown in Figure ref:fig:ustation_errors_ty_setup is used.
|
To measure the positioning errors of the translation stage, the setup shown in Figure ref:fig:ustation_errors_ty_setup is used.
|
||||||
A special optical element (called a "straightness interferometer"[fn:ustation_9]) is fixed on top of the micro-station, while a laser source[fn:ustation_10] and a straightness reflector are fixed on the ground.
|
A special optical element (called a "straightness interferometer"[fn:ustation_9]) is fixed on top of the micro-station, while a laser source[fn:ustation_10] and a straightness reflector are fixed on the ground.
|
||||||
A similar setup was used to measure the horizontal deviation (i.e. in the $x$ direction), as well as the pitch and yaw errors of the translation stage.
|
A similar setup was used to measure the horizontal deviation (i.e. in the $x$ direction), as well as the pitch and yaw errors of the translation stage.
|
||||||
|
|
||||||
#+name: fig:ustation_errors_ty_setup
|
#+name: fig:ustation_errors_ty_setup
|
||||||
#+caption: Experimental setup to measure the flatness (vertical deviation) of the translation stage
|
#+caption: Experimental setup to measure the straightness (vertical deviation) of the translation stage
|
||||||
[[file:figs/ustation_errors_ty_setup.png]]
|
[[file:figs/ustation_errors_ty_setup.png]]
|
||||||
|
|
||||||
Six scans were performed between $-4.5\,mm$ and $4.5\,mm$.
|
Six scans were performed between $-4.5\,mm$ and $4.5\,mm$.
|
||||||
@ -3680,7 +3742,7 @@ Similar result is obtained for the $x$ lateral direction.
|
|||||||
#+end_subfigure
|
#+end_subfigure
|
||||||
#+end_figure
|
#+end_figure
|
||||||
|
|
||||||
***** Spindle
|
****** Spindle
|
||||||
|
|
||||||
To measure the positioning errors induced by the Spindle, a "Spindle error analyzer"[fn:ustation_7] is used as shown in Figure ref:fig:ustation_rz_meas_lion_setup.
|
To measure the positioning errors induced by the Spindle, a "Spindle error analyzer"[fn:ustation_7] is used as shown in Figure ref:fig:ustation_rz_meas_lion_setup.
|
||||||
A specific target is fixed on top of the micro-station, which consists of two sphere with 1 inch diameter precisely aligned with the spindle rotation axis.
|
A specific target is fixed on top of the micro-station, which consists of two sphere with 1 inch diameter precisely aligned with the spindle rotation axis.
|
||||||
@ -3800,7 +3862,7 @@ The obtained power spectral density of the disturbances are shown in Figure ref:
|
|||||||
|
|
||||||
The disturbances are characterized by their power spectral densities, as shown in Figure ref:fig:ustation_dist_sources.
|
The disturbances are characterized by their power spectral densities, as shown in Figure ref:fig:ustation_dist_sources.
|
||||||
However, to perform time domain simulations, disturbances must be represented by a time domain signal.
|
However, to perform time domain simulations, disturbances must be represented by a time domain signal.
|
||||||
To generate stochastic time-domain signals with a specific power spectral densities, the discrete inverse Fourier transform is used, as explained in [[cite:&preumont94_random_vibrat_spect_analy chap. 12.11]].
|
To generate stochastic time-domain signals with a specific power spectral density, the discrete inverse Fourier transform is used, as explained in [[cite:&preumont94_random_vibrat_spect_analy chap. 12.11]].
|
||||||
Examples of the obtained time-domain disturbance signals are shown in Figure ref:fig:ustation_dist_sources_time.
|
Examples of the obtained time-domain disturbance signals are shown in Figure ref:fig:ustation_dist_sources_time.
|
||||||
|
|
||||||
#+name: fig:ustation_dist_sources_time
|
#+name: fig:ustation_dist_sources_time
|
||||||
@ -3864,7 +3926,7 @@ A good correlation with the measurements is observed both for radial errors (Fig
|
|||||||
#+end_subfigure
|
#+end_subfigure
|
||||||
#+end_figure
|
#+end_figure
|
||||||
|
|
||||||
**** Raster Scans with the translation stage
|
**** Scans with the translation stage
|
||||||
<<sec:ustation_experiments_ty_scans>>
|
<<sec:ustation_experiments_ty_scans>>
|
||||||
|
|
||||||
A second experiment was performed in which the translation stage was scanned at constant velocity.
|
A second experiment was performed in which the translation stage was scanned at constant velocity.
|
||||||
@ -4162,7 +4224,7 @@ This is summarized in Figure ref:fig:nhexa_stewart_notations.
|
|||||||
|
|
||||||
**** Kinematic Analysis
|
**** Kinematic Analysis
|
||||||
<<ssec:nhexa_stewart_platform_kinematics>>
|
<<ssec:nhexa_stewart_platform_kinematics>>
|
||||||
***** Loop Closure
|
****** Loop Closure
|
||||||
|
|
||||||
The foundation of the kinematic analysis lies in the geometric constraints imposed by each strut, which can be expressed using loop closure equations.
|
The foundation of the kinematic analysis lies in the geometric constraints imposed by each strut, which can be expressed using loop closure equations.
|
||||||
For each strut $i$ (illustrated in Figure ref:fig:nhexa_stewart_loop_closure), the loop closure equation eqref:eq:nhexa_loop_closure can be written.
|
For each strut $i$ (illustrated in Figure ref:fig:nhexa_stewart_loop_closure), the loop closure equation eqref:eq:nhexa_loop_closure can be written.
|
||||||
@ -4177,20 +4239,20 @@ This equation links the pose[fn:nhexa_2] variables ${}^A\bm{P}$ and ${}^A\bm{R}_
|
|||||||
#+caption: Notations to compute the kinematic loop closure
|
#+caption: Notations to compute the kinematic loop closure
|
||||||
[[file:figs/nhexa_stewart_loop_closure.png]]
|
[[file:figs/nhexa_stewart_loop_closure.png]]
|
||||||
|
|
||||||
***** Inverse Kinematics
|
****** Inverse Kinematics
|
||||||
|
|
||||||
The inverse kinematic problem involves determining the required strut lengths $\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^T$ for a desired platform pose $\bm{\mathcal{X}}$ (i.e. position ${}^A\bm{P}$ and orientation ${}^A\bm{R}_B$).
|
The inverse kinematic problem involves determining the required strut lengths $\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^{\intercal}$ for a desired platform pose $\bm{\mathcal{X}}$ (i.e. position ${}^A\bm{P}$ and orientation ${}^A\bm{R}_B$).
|
||||||
This problem can be solved analytically using the loop closure equations eqref:eq:nhexa_loop_closure.
|
This problem can be solved analytically using the loop closure equations eqref:eq:nhexa_loop_closure.
|
||||||
The obtained strut lengths are given by eqref:eq:nhexa_inverse_kinematics.
|
The obtained strut lengths are given by eqref:eq:nhexa_inverse_kinematics.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_inverse_kinematics}
|
\begin{equation}\label{eq:nhexa_inverse_kinematics}
|
||||||
l_i = \sqrt{{}^A\bm{P}^T {}^A\bm{P} + {}^B\bm{b}_i^T {}^B\bm{b}_i + {}^A\bm{a}_i^T {}^A\bm{a}_i - 2 {}^A\bm{P}^T {}^A\bm{a}_i + 2 {}^A\bm{P}^T \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^T {}^A\bm{a}_i}
|
l_i = \sqrt{{}^A\bm{P}^{\intercal} {}^A\bm{P} + {}^B\bm{b}_i^{\intercal} {}^B\bm{b}_i + {}^A\bm{a}_i^{\intercal} {}^A\bm{a}_i - 2 {}^A\bm{P}^{\intercal} {}^A\bm{a}_i + 2 {}^A\bm{P}^{\intercal} \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^{\intercal} {}^A\bm{a}_i}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
|
If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
|
||||||
While configurations outside this workspace yield complex numbers, this only becomes relevant for large displacements that far exceed the nano-hexapod's operating range.
|
While configurations outside this workspace yield complex numbers, this only becomes relevant for large displacements that far exceed the nano-hexapod's operating range.
|
||||||
|
|
||||||
***** Forward Kinematics
|
****** Forward Kinematics
|
||||||
|
|
||||||
The forward kinematic problem seeks to determine the platform pose $\bm{\mathcal{X}}$ given a set of strut lengths $\bm{\mathcal{L}}$.
|
The forward kinematic problem seeks to determine the platform pose $\bm{\mathcal{X}}$ given a set of strut lengths $\bm{\mathcal{L}}$.
|
||||||
Unlike inverse kinematics, this presents a significant challenge because it requires solving a system of nonlinear equations.
|
Unlike inverse kinematics, this presents a significant challenge because it requires solving a system of nonlinear equations.
|
||||||
@ -4203,12 +4265,12 @@ This approximation, which is developed in subsequent sections through the Jacobi
|
|||||||
|
|
||||||
**** The Jacobian Matrix
|
**** The Jacobian Matrix
|
||||||
<<ssec:nhexa_stewart_platform_jacobian>>
|
<<ssec:nhexa_stewart_platform_jacobian>>
|
||||||
***** Introduction :ignore:
|
****** Introduction :ignore:
|
||||||
|
|
||||||
The Jacobian matrix plays a central role in analyzing the Stewart platform's behavior, providing a linear mapping between the platform and actuator velocities.
|
The Jacobian matrix plays a central role in analyzing the Stewart platform's behavior, providing a linear mapping between the platform and actuator velocities.
|
||||||
While the previously derived kinematic relationships are essential for position analysis, the Jacobian enables velocity analysis and forms the foundation for both static and dynamic studies.
|
While the previously derived kinematic relationships are essential for position analysis, the Jacobian enables velocity analysis and forms the foundation for both static and dynamic studies.
|
||||||
|
|
||||||
***** Jacobian Computation
|
****** Jacobian Computation
|
||||||
|
|
||||||
As discussed in Section ref:ssec:nhexa_stewart_platform_kinematics, the strut lengths $\bm{\mathcal{L}}$ and the platform pose $\bm{\mathcal{X}}$ are related through a system of nonlinear algebraic equations representing the kinematic constraints imposed by the struts.
|
As discussed in Section ref:ssec:nhexa_stewart_platform_kinematics, the strut lengths $\bm{\mathcal{L}}$ and the platform pose $\bm{\mathcal{X}}$ are related through a system of nonlinear algebraic equations representing the kinematic constraints imposed by the struts.
|
||||||
|
|
||||||
@ -4228,7 +4290,7 @@ By multiplying both sides by ${}^A\hat{\bm{s}}_i$, eqref:eq:nhexa_loop_closure_v
|
|||||||
{}^A\hat{\bm{s}}_i {}^A\bm{v}_p + \underbrace{{}^A\hat{\bm{s}}_i ({}^A\bm{\omega} \times {}^A\bm{b}_i)}_{=({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) {}^A\bm{\omega}} = \dot{l}_i + \underbrace{{}^A\hat{s}_i l_i \left( {}^A\bm{\omega}_i \times {}^A\hat{\bm{s}}_i \right)}_{=0}
|
{}^A\hat{\bm{s}}_i {}^A\bm{v}_p + \underbrace{{}^A\hat{\bm{s}}_i ({}^A\bm{\omega} \times {}^A\bm{b}_i)}_{=({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) {}^A\bm{\omega}} = \dot{l}_i + \underbrace{{}^A\hat{s}_i l_i \left( {}^A\bm{\omega}_i \times {}^A\hat{\bm{s}}_i \right)}_{=0}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Equation eqref:eq:nhexa_loop_closure_velocity_bis can be rearranged in matrix form to obtain eqref:eq:nhexa_jacobian_velocities, with $\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^T$ the vector of strut velocities, and $\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^T$ the vector of platform velocity and angular velocity.
|
Equation eqref:eq:nhexa_loop_closure_velocity_bis can be rearranged in matrix form to obtain eqref:eq:nhexa_jacobian_velocities, with $\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^{\intercal}$ the vector of strut velocities, and $\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^{\intercal}$ the vector of platform velocity and angular velocity.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_jacobian_velocities}
|
\begin{equation}\label{eq:nhexa_jacobian_velocities}
|
||||||
\boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
|
\boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
|
||||||
@ -4238,21 +4300,21 @@ The matrix $\bm{J}$ is called the Jacobian matrix and is defined by eqref:eq:nhe
|
|||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_jacobian}
|
\begin{equation}\label{eq:nhexa_jacobian}
|
||||||
\bm{J} = \begin{bmatrix}
|
\bm{J} = \begin{bmatrix}
|
||||||
{{}^A\hat{\bm{s}}_1}^T & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^T \\
|
{{}^A\hat{\bm{s}}_1}^{\intercal} & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_2}^T & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^T \\
|
{{}^A\hat{\bm{s}}_2}^{\intercal} & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_3}^T & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^T \\
|
{{}^A\hat{\bm{s}}_3}^{\intercal} & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_4}^T & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^T \\
|
{{}^A\hat{\bm{s}}_4}^{\intercal} & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_5}^T & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^T \\
|
{{}^A\hat{\bm{s}}_5}^{\intercal} & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_6}^T & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^T
|
{{}^A\hat{\bm{s}}_6}^{\intercal} & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^{\intercal}
|
||||||
\end{bmatrix}
|
\end{bmatrix}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Therefore, the Jacobian matrix $\bm{J}$ links the rate of change of the strut length to the velocity and angular velocity of the top platform with respect to the fixed base through a set of linear equations.
|
Therefore, the Jacobian matrix $\bm{J}$ links the rate of change of the strut length to the velocity and angular velocity of the top platform with respect to the fixed base through a set of linear equations.
|
||||||
However, $\bm{J}$ needs to be recomputed for every Stewart platform pose because it depends on the actual pose of the manipulator.
|
However, $\bm{J}$ needs to be recomputed for every Stewart platform pose because it depends on the actual pose of the manipulator.
|
||||||
|
|
||||||
***** Approximate solution to the Forward and Inverse Kinematic problems
|
****** Approximate solution to the Forward and Inverse Kinematic problems
|
||||||
|
|
||||||
For small displacements $\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^T$ around an operating point $\bm{\mathcal{X}}_0$ (for which the Jacobian was computed), the associated joint displacement $\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^T$ can be computed using the Jacobian eqref:eq:nhexa_inverse_kinematics_approximate.
|
For small displacements $\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^{\intercal}$ around an operating point $\bm{\mathcal{X}}_0$ (for which the Jacobian was computed), the associated joint displacement $\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^{\intercal}$ can be computed using the Jacobian eqref:eq:nhexa_inverse_kinematics_approximate.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_inverse_kinematics_approximate}
|
\begin{equation}\label{eq:nhexa_inverse_kinematics_approximate}
|
||||||
\boxed{\delta\bm{\mathcal{L}} = \bm{J} \delta\bm{\mathcal{X}}}
|
\boxed{\delta\bm{\mathcal{L}} = \bm{J} \delta\bm{\mathcal{X}}}
|
||||||
@ -4267,7 +4329,7 @@ Similarly, for small joint displacements $\delta\bm{\mathcal{L}}$, it is possibl
|
|||||||
These two relations solve the forward and inverse kinematic problems for small displacement in a /approximate/ way.
|
These two relations solve the forward and inverse kinematic problems for small displacement in a /approximate/ way.
|
||||||
While this approximation offers limited value for inverse kinematics, which can be solved analytically, it proves particularly useful for the forward kinematic problem where exact analytical solutions are difficult to obtain.
|
While this approximation offers limited value for inverse kinematics, which can be solved analytically, it proves particularly useful for the forward kinematic problem where exact analytical solutions are difficult to obtain.
|
||||||
|
|
||||||
***** Range validity of the approximate inverse kinematics
|
****** Range validity of the approximate inverse kinematics
|
||||||
|
|
||||||
The accuracy of the Jacobian-based forward kinematics solution was estimated by a simple analysis.
|
The accuracy of the Jacobian-based forward kinematics solution was estimated by a simple analysis.
|
||||||
For a series of platform positions, the exact strut lengths are computed using the analytical inverse kinematics equation eqref:eq:nhexa_inverse_kinematics.
|
For a series of platform positions, the exact strut lengths are computed using the analytical inverse kinematics equation eqref:eq:nhexa_inverse_kinematics.
|
||||||
@ -4284,30 +4346,30 @@ It can be computed once at the rest position and used for both forward and inver
|
|||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:figs/nhexa_forward_kinematics_approximate_errors.png]]
|
[[file:figs/nhexa_forward_kinematics_approximate_errors.png]]
|
||||||
|
|
||||||
***** Static Forces
|
****** Static Forces
|
||||||
|
|
||||||
The static force analysis of the Stewart platform can be performed using the principle of virtual work.
|
The static force analysis of the Stewart platform can be performed using the principle of virtual work.
|
||||||
This principle states that for a system in static equilibrium, the total virtual work of all forces acting on the system must be zero for any virtual displacement compatible with the system's constraints.
|
This principle states that for a system in static equilibrium, the total virtual work of all forces acting on the system must be zero for any virtual displacement compatible with the system's constraints.
|
||||||
|
|
||||||
Let $\bm{f} = [f_1, f_2, \cdots, f_6]^T$ represent the vector of actuator forces applied in each strut, and $\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^T$ denote the external wrench (combined force $\bm{F}$ and torque $\bm{n}$) acting on the mobile platform at point $\bm{O}_B$.
|
Let $\bm{f} = [f_1, f_2, \cdots, f_6]^{\intercal}$ represent the vector of actuator forces applied in each strut, and $\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^{\intercal}$ denote the external wrench (combined force $\bm{F}$ and torque $\bm{n}$) acting on the mobile platform at point $\bm{O}_B$.
|
||||||
The virtual work $\delta W$ consists of two contributions:
|
The virtual work $\delta W$ consists of two contributions:
|
||||||
- The work performed by the actuator forces through virtual strut displacements $\delta \bm{\mathcal{L}}$: $\bm{f}^T \delta \bm{\mathcal{L}}$
|
- The work performed by the actuator forces through virtual strut displacements $\delta \bm{\mathcal{L}}$: $\bm{f}^{\intercal} \delta \bm{\mathcal{L}}$
|
||||||
- The work performed by the external wrench through virtual platform displacements $\delta \bm{\mathcal{X}}$: $-\bm{\mathcal{F}}^T \delta \bm{\mathcal{X}}$
|
- The work performed by the external wrench through virtual platform displacements $\delta \bm{\mathcal{X}}$: $-\bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}}$
|
||||||
|
|
||||||
Thus, the principle of virtual work can be expressed as:
|
Thus, the principle of virtual work can be expressed as:
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\delta W = \bm{f}^T \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^T \delta \bm{\mathcal{X}} = 0
|
\delta W = \bm{f}^{\intercal} \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}} = 0
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Using the Jacobian relationship that links virtual displacements eqref:eq:nhexa_inverse_kinematics_approximate, this equation becomes:
|
Using the Jacobian relationship that links virtual displacements eqref:eq:nhexa_inverse_kinematics_approximate, this equation becomes:
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\left( \bm{f}^T \bm{J} - \bm{\mathcal{F}}^T \right) \delta \bm{\mathcal{X}} = 0
|
\left( \bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} \right) \delta \bm{\mathcal{X}} = 0
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Because this equation must hold for any virtual displacement $\delta \bm{\mathcal{X}}$, the force mapping relationships eqref:eq:nhexa_jacobian_forces can be derived.
|
Because this equation must hold for any virtual displacement $\delta \bm{\mathcal{X}}$, the force mapping relationships eqref:eq:nhexa_jacobian_forces can be derived.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_jacobian_forces}
|
\begin{equation}\label{eq:nhexa_jacobian_forces}
|
||||||
\bm{f}^T \bm{J} - \bm{\mathcal{F}}^T = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^T \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-T} \bm{\mathcal{F}}}
|
\bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^{\intercal} \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-T} \bm{\mathcal{F}}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
These equations establish that the transpose of the Jacobian matrix maps actuator forces to platform forces and torques, while its inverse transpose maps platform forces and torques to required actuator forces.
|
These equations establish that the transpose of the Jacobian matrix maps actuator forces to platform forces and torques, while its inverse transpose maps platform forces and torques to required actuator forces.
|
||||||
@ -4331,14 +4393,14 @@ These individual relationships can be combined into a matrix form using the diag
|
|||||||
By applying the force mapping relationships eqref:eq:nhexa_jacobian_forces derived in the previous section and the Jacobian relationship for small displacements eqref:eq:nhexa_forward_kinematics_approximate, the relationship between applied wrench $\bm{\mathcal{F}}$ and resulting platform displacement $\delta \bm{\mathcal{X}}$ is obtained eqref:eq:nhexa_stiffness_matrix.
|
By applying the force mapping relationships eqref:eq:nhexa_jacobian_forces derived in the previous section and the Jacobian relationship for small displacements eqref:eq:nhexa_forward_kinematics_approximate, the relationship between applied wrench $\bm{\mathcal{F}}$ and resulting platform displacement $\delta \bm{\mathcal{X}}$ is obtained eqref:eq:nhexa_stiffness_matrix.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_stiffness_matrix}
|
\begin{equation}\label{eq:nhexa_stiffness_matrix}
|
||||||
\bm{\mathcal{F}} = \underbrace{\bm{J}^T \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
\bm{\mathcal{F}} = \underbrace{\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
where $\bm{K} = \bm{J}^T \bm{\mathcal{K}} \bm{J}$ is identified as the platform stiffness matrix.
|
where $\bm{K} = \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}$ is identified as the platform stiffness matrix.
|
||||||
|
|
||||||
The inverse relationship is given by the compliance matrix $\bm{C}$:
|
The inverse relationship is given by the compliance matrix $\bm{C}$:
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^T \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
These relationships reveal that the overall platform stiffness and compliance characteristics are determined by two factors:
|
These relationships reveal that the overall platform stiffness and compliance characteristics are determined by two factors:
|
||||||
@ -4367,19 +4429,19 @@ where $\bm{M}$ represents the platform mass matrix, $\bm{\mathcal{X}}$ the platf
|
|||||||
The primary forces acting on the system are actuator forces $\bm{f}$, elastic forces due to strut stiffness $-\bm{\mathcal{K}} \bm{\mathcal{L}}$ and damping forces in the struts $\bm{\mathcal{C}} \dot{\bm{\mathcal{L}}}$.
|
The primary forces acting on the system are actuator forces $\bm{f}$, elastic forces due to strut stiffness $-\bm{\mathcal{K}} \bm{\mathcal{L}}$ and damping forces in the struts $\bm{\mathcal{C}} \dot{\bm{\mathcal{L}}}$.
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\Sigma \bm{\mathcal{F}} = \bm{J}^T (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
\Sigma \bm{\mathcal{F}} = \bm{J}^{\intercal} (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Combining these forces and using eqref:eq:nhexa_forward_kinematics_approximate yields the complete dynamic equation eqref:eq:nhexa_dynamical_equations.
|
Combining these forces and using eqref:eq:nhexa_forward_kinematics_approximate yields the complete dynamic equation eqref:eq:nhexa_dynamical_equations.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_dynamical_equations}
|
\begin{equation}\label{eq:nhexa_dynamical_equations}
|
||||||
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^T \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^T \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
The transfer function matrix in the Cartesian frame becomes eqref:eq:nhexa_transfer_function_cart.
|
The transfer function matrix in the Cartesian frame becomes eqref:eq:nhexa_transfer_function_cart.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_transfer_function_cart}
|
\begin{equation}\label{eq:nhexa_transfer_function_cart}
|
||||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{T} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{T} \bm{\mathcal{K}} \bm{J} )^{-1}
|
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Through coordinate transformation using the Jacobian matrix, the dynamics in the actuator space is obtained eqref:eq:nhexa_transfer_function_struts.
|
Through coordinate transformation using the Jacobian matrix, the dynamics in the actuator space is obtained eqref:eq:nhexa_transfer_function_struts.
|
||||||
@ -4425,7 +4487,7 @@ Finally, the validated model is employed to analyze the nano-hexapod dynamics, f
|
|||||||
|
|
||||||
**** Model Definition
|
**** Model Definition
|
||||||
<<ssec:nhexa_model_def>>
|
<<ssec:nhexa_model_def>>
|
||||||
***** Geometry
|
****** Geometry
|
||||||
|
|
||||||
The Stewart platform's geometry is defined by two principal coordinate frames (Figure ref:fig:nhexa_stewart_model_def): a fixed base frame $\{F\}$ and a moving platform frame $\{M\}$.
|
The Stewart platform's geometry is defined by two principal coordinate frames (Figure ref:fig:nhexa_stewart_model_def): a fixed base frame $\{F\}$ and a moving platform frame $\{M\}$.
|
||||||
The joints connecting the actuators to these frames are located at positions ${}^F\bm{a}_i$ and ${}^M\bm{b}_i$ respectively.
|
The joints connecting the actuators to these frames are located at positions ${}^F\bm{a}_i$ and ${}^M\bm{b}_i$ respectively.
|
||||||
@ -4469,14 +4531,14 @@ From these parameters, key kinematic properties can be derived: the strut orient
|
|||||||
#+end_scriptsize
|
#+end_scriptsize
|
||||||
#+end_minipage
|
#+end_minipage
|
||||||
|
|
||||||
***** Inertia of Plates
|
****** Inertia of Plates
|
||||||
|
|
||||||
The fixed base and moving platform were modeled as solid cylindrical bodies.
|
The fixed base and moving platform were modeled as solid cylindrical bodies.
|
||||||
The base platform was characterized by a radius of $120\,mm$ and thickness of $15\,mm$, matching the dimensions of the micro-hexapod's top platform.
|
The base platform was characterized by a radius of $120\,mm$ and thickness of $15\,mm$, matching the dimensions of the micro-hexapod's top platform.
|
||||||
The moving platform was similarly modeled with a radius of $110\,mm$ and thickness of $15\,mm$.
|
The moving platform was similarly modeled with a radius of $110\,mm$ and thickness of $15\,mm$.
|
||||||
Both platforms were assigned a mass of $5\,kg$.
|
Both platforms were assigned a mass of $5\,kg$.
|
||||||
|
|
||||||
***** Joints
|
****** Joints
|
||||||
|
|
||||||
The platform's joints play a crucial role in its dynamic behavior.
|
The platform's joints play a crucial role in its dynamic behavior.
|
||||||
At both the upper and lower connection points, various degrees of freedom can be modeled, including universal joints, spherical joints, and configurations with additional axial and lateral stiffness components.
|
At both the upper and lower connection points, various degrees of freedom can be modeled, including universal joints, spherical joints, and configurations with additional axial and lateral stiffness components.
|
||||||
@ -4485,7 +4547,7 @@ For each degree of freedom, stiffness characteristics can be incorporated into t
|
|||||||
In the conceptual design phase, a simplified joint configuration is employed: the bottom joints are modeled as two-degree-of-freedom universal joints, while the top joints are represented as three-degree-of-freedom spherical joints.
|
In the conceptual design phase, a simplified joint configuration is employed: the bottom joints are modeled as two-degree-of-freedom universal joints, while the top joints are represented as three-degree-of-freedom spherical joints.
|
||||||
These joints are considered massless and exhibit no stiffness along their degrees of freedom.
|
These joints are considered massless and exhibit no stiffness along their degrees of freedom.
|
||||||
|
|
||||||
***** Actuators
|
****** Actuators
|
||||||
|
|
||||||
The actuator model comprises several key elements (Figure ref:fig:nhexa_actuator_model).
|
The actuator model comprises several key elements (Figure ref:fig:nhexa_actuator_model).
|
||||||
At its core, each actuator is modeled as a prismatic joint with internal stiffness $k_a$ and damping $c_a$, driven by a force source $f$.
|
At its core, each actuator is modeled as a prismatic joint with internal stiffness $k_a$ and damping $c_a$, driven by a force source $f$.
|
||||||
@ -4585,7 +4647,7 @@ This reduction from six to four observable modes is attributed to the system's s
|
|||||||
The system's behavior can be characterized in three frequency regions.
|
The system's behavior can be characterized in three frequency regions.
|
||||||
At low frequencies, well below the first resonance, the plant demonstrates good decoupling between actuators, with the response dominated by the strut stiffness: $\bm{G}(j\omega) \xrightarrow[\omega \to 0]{} \bm{\mathcal{K}}^{-1}$.
|
At low frequencies, well below the first resonance, the plant demonstrates good decoupling between actuators, with the response dominated by the strut stiffness: $\bm{G}(j\omega) \xrightarrow[\omega \to 0]{} \bm{\mathcal{K}}^{-1}$.
|
||||||
In the mid-frequency range, the system exhibits coupled dynamics through its resonant modes, reflecting the complex interactions between the platform's degrees of freedom.
|
In the mid-frequency range, the system exhibits coupled dynamics through its resonant modes, reflecting the complex interactions between the platform's degrees of freedom.
|
||||||
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: $\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-T} \bm{J}^T \frac{-1}{\omega^2}$
|
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: $\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-T} \bm{J}^{\intercal} \frac{-1}{\omega^2}$
|
||||||
|
|
||||||
The force sensor transfer functions, shown in Figure ref:fig:nhexa_multi_body_plant_fm, display characteristics typical of collocated actuator-sensor pairs.
|
The force sensor transfer functions, shown in Figure ref:fig:nhexa_multi_body_plant_fm, display characteristics typical of collocated actuator-sensor pairs.
|
||||||
Each actuator's transfer function to its associated force sensor exhibits alternating complex conjugate poles and zeros.
|
Each actuator's transfer function to its associated force sensor exhibits alternating complex conjugate poles and zeros.
|
||||||
@ -4661,7 +4723,7 @@ In the context of the nano-hexapod, two distinct control strategies were examine
|
|||||||
When controlling a Stewart platform using external metrology that measures the pose of frame $\{B\}$ with respect to $\{A\}$, denoted as $\bm{\mathcal{X}}$, the control architecture can be implemented in either Cartesian or strut space.
|
When controlling a Stewart platform using external metrology that measures the pose of frame $\{B\}$ with respect to $\{A\}$, denoted as $\bm{\mathcal{X}}$, the control architecture can be implemented in either Cartesian or strut space.
|
||||||
This choice affects both the control design and the obtained performance.
|
This choice affects both the control design and the obtained performance.
|
||||||
|
|
||||||
***** Control in the Strut space
|
****** Control in the Strut space
|
||||||
|
|
||||||
In this approach, as illustrated in Figure ref:fig:nhexa_control_strut, the control is performed in the space of the struts.
|
In this approach, as illustrated in Figure ref:fig:nhexa_control_strut, the control is performed in the space of the struts.
|
||||||
The Jacobian matrix is used to solve the inverse kinematics in real-time by mapping position errors from Cartesian space $\bm{\epsilon}_{\mathcal{X}}$ to strut space $\bm{\epsilon}_{\mathcal{L}}$.
|
The Jacobian matrix is used to solve the inverse kinematics in real-time by mapping position errors from Cartesian space $\bm{\epsilon}_{\mathcal{X}}$ to strut space $\bm{\epsilon}_{\mathcal{L}}$.
|
||||||
@ -4672,6 +4734,51 @@ The diagonal terms of the plant (transfer functions from force to displacement o
|
|||||||
This simplifies the control design because only one controller needs to be tuned.
|
This simplifies the control design because only one controller needs to be tuned.
|
||||||
Furthermore, at low frequencies, the plant exhibits good decoupling between the struts, allowing for effective independent control of each axis.
|
Furthermore, at low frequencies, the plant exhibits good decoupling between the struts, allowing for effective independent control of each axis.
|
||||||
|
|
||||||
|
#+begin_src latex :file nhexa_control_strut.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
% Blocs
|
||||||
|
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||||||
|
\coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$);
|
||||||
|
\coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$);
|
||||||
|
|
||||||
|
\node[block={2.0cm}{2.0cm}, left=0.8 of inputF] (K) {\begin{matrix}K_1 & & 0 \\ & \ddots & \\ 0 & & K_6\end{matrix}};
|
||||||
|
\node[block, left=0.8 of K] (J) {$\bm{J}$};
|
||||||
|
\node[addb={+}{}{}{}{-}, left=0.8 of J] (subr) {};
|
||||||
|
% \node[block, align=center, left=0.6 of subr] (J) {Inverse\\Kinematics};
|
||||||
|
|
||||||
|
% Connections and labels
|
||||||
|
\draw[->] (outputX) -- ++(0.8, 0);
|
||||||
|
\draw[->] ($(outputX) + (0.3, 0)$)node[branch]{} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1.2) -| (subr.south);
|
||||||
|
\draw[->] (subr.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (J.west);
|
||||||
|
\draw[->] (J.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{L}}$} (K.west);
|
||||||
|
\draw[->] (K.east) -- node[midway, above]{$\bm{f}$} (inputF);
|
||||||
|
|
||||||
|
\draw[<-] (subr.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-0.8, 0);
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src latex :file nhexa_control_cartesian.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
% Blocs
|
||||||
|
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||||||
|
\coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$);
|
||||||
|
\coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$);
|
||||||
|
|
||||||
|
\node[block, left=0.8 of inputF] (J) {$\bm{J}^{-T}$};
|
||||||
|
\node[block={2.0cm}{2.0cm}, left=0.8 of J] (K) {\begin{matrix}K_{D_x} & & 0 \\ & \ddots & \\ 0 & & K_{R_z}\end{matrix}};
|
||||||
|
\node[addb={+}{}{}{}{-}, left=0.8 of K] (subr) {};
|
||||||
|
|
||||||
|
% Connections and labels
|
||||||
|
\draw[->] (outputX) -- ++(0.8, 0);
|
||||||
|
\draw[->] ($(outputX) + (0.3, 0)$)node[branch]{} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1.2) -| (subr.south);
|
||||||
|
|
||||||
|
\draw[->] (subr.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (K.west);
|
||||||
|
\draw[->] (K.east) -- node[midway, above]{$\bm{\mathcal{F}}$} (J.west);
|
||||||
|
\draw[->] (J.east) -- node[midway, above]{$\bm{f}$} (inputF.west);
|
||||||
|
\draw[<-] (subr.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-0.8, 0);
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:nhexa_control_frame
|
#+name: fig:nhexa_control_frame
|
||||||
#+caption: Two control strategies
|
#+caption: Two control strategies
|
||||||
#+attr_latex: :options [htbp]
|
#+attr_latex: :options [htbp]
|
||||||
@ -4692,7 +4799,7 @@ Furthermore, at low frequencies, the plant exhibits good decoupling between the
|
|||||||
#+end_subfigure
|
#+end_subfigure
|
||||||
#+end_figure
|
#+end_figure
|
||||||
|
|
||||||
***** Control in Cartesian Space
|
****** Control in Cartesian Space
|
||||||
|
|
||||||
Alternatively, control can be implemented directly in Cartesian space, as illustrated in Figure ref:fig:nhexa_control_cartesian.
|
Alternatively, control can be implemented directly in Cartesian space, as illustrated in Figure ref:fig:nhexa_control_cartesian.
|
||||||
Here, the controller processes Cartesian errors $\bm{\epsilon}_{\mathcal{X}}$ to generate forces and torques $\bm{\mathcal{F}}$, which are then mapped to actuator forces using the transpose of the inverse Jacobian matrix eqref:eq:nhexa_jacobian_forces.
|
Here, the controller processes Cartesian errors $\bm{\epsilon}_{\mathcal{X}}$ to generate forces and torques $\bm{\mathcal{F}}$, which are then mapped to actuator forces using the transpose of the inverse Jacobian matrix eqref:eq:nhexa_jacobian_forces.
|
||||||
@ -4732,8 +4839,36 @@ The decentralized Integral Force Feedback (IFF) control strategy is implemented
|
|||||||
|
|
||||||
The corresponding block diagram of the control loop is shown in Figure ref:fig:nhexa_decentralized_iff_schematic, in which the controller $\bm{K}_{\text{IFF}}(s)$ is a diagonal matrix, where each diagonal element is a pure integrator eqref:eq:nhexa_kiff.
|
The corresponding block diagram of the control loop is shown in Figure ref:fig:nhexa_decentralized_iff_schematic, in which the controller $\bm{K}_{\text{IFF}}(s)$ is a diagonal matrix, where each diagonal element is a pure integrator eqref:eq:nhexa_kiff.
|
||||||
|
|
||||||
|
#+begin_src latex :file nhexa_decentralized_iff_schematic.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
% Blocs
|
||||||
|
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||||||
|
\coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$);
|
||||||
|
\coordinate[] (outputH) at ($(P.south east)!0.2!(P.north east)$);
|
||||||
|
\coordinate[] (outputL) at ($(P.south east)!0.8!(P.north east)$);
|
||||||
|
|
||||||
|
\node[block, above=0.2 of P] (Klac) {$\bm{K}_\text{IFF}$};
|
||||||
|
\node[addb, left=0.8 of input] (addF) {};
|
||||||
|
|
||||||
|
% Connections and labels
|
||||||
|
\draw[->] (outputL) -- ++(0.7, 0) coordinate(eastlac) |- (Klac.east);
|
||||||
|
\node[above right] at (outputL){$\bm{f}_n$};
|
||||||
|
\draw[->] (Klac.west) -| (addF.north);
|
||||||
|
\draw[->] (addF.east) -- (input) node[above left]{$\bm{f}$};
|
||||||
|
|
||||||
|
\draw[->] (outputH) -- ++(1.7, 0) node[above left]{$\bm{\mathcal{L}}$};
|
||||||
|
\draw[<-] (addF.west) -- ++(-0.8, 0) node[above right]{$\bm{f}^{\prime}$};
|
||||||
|
|
||||||
|
\begin{scope}[on background layer]
|
||||||
|
\node[fit={(Klac.north-|eastlac) (addF.west|-P.south)}, fill=black!20!white, draw, dashed, inner sep=8pt] (Pi) {};
|
||||||
|
\node[anchor={north west}] at (Pi.north west){\footnotesize{Damped Plant}};
|
||||||
|
\end{scope}
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:nhexa_decentralized_iff_schematic
|
#+name: fig:nhexa_decentralized_iff_schematic
|
||||||
#+caption: Schematic of the implemented decentralized IFF controller. The damped plant has a new inputs $\bm{f}^{\prime}$
|
#+caption: Schematic of the implemented decentralized IFF controller. The damped plant has a new inputs $\bm{f}^{\prime}$
|
||||||
|
#+RESULTS:
|
||||||
[[file:figs/nhexa_decentralized_iff_schematic.png]]
|
[[file:figs/nhexa_decentralized_iff_schematic.png]]
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_kiff}
|
\begin{equation}\label{eq:nhexa_kiff}
|
||||||
@ -4783,8 +4918,47 @@ Following the analysis from Section ref:ssec:nhexa_control_space, the control is
|
|||||||
The Jacobian matrix $\bm{J}^{-1}$ performs (approximate) real-time approximate inverse kinematics to map position errors from Cartesian space $\bm{\epsilon}_{\mathcal{X}}$ to strut space $\bm{\epsilon}_{\mathcal{L}}$.
|
The Jacobian matrix $\bm{J}^{-1}$ performs (approximate) real-time approximate inverse kinematics to map position errors from Cartesian space $\bm{\epsilon}_{\mathcal{X}}$ to strut space $\bm{\epsilon}_{\mathcal{L}}$.
|
||||||
A diagonal High Authority Controller $\bm{K}_{\text{HAC}}$ then processes these errors in the frame of the struts.
|
A diagonal High Authority Controller $\bm{K}_{\text{HAC}}$ then processes these errors in the frame of the struts.
|
||||||
|
|
||||||
|
#+begin_src latex :file nhexa_hac_iff_schematic.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
% Blocs
|
||||||
|
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||||||
|
\coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$);
|
||||||
|
\coordinate[] (outputH) at ($(P.south east)!0.2!(P.north east)$);
|
||||||
|
\coordinate[] (outputL) at ($(P.south east)!0.8!(P.north east)$);
|
||||||
|
|
||||||
|
\node[block, above=0.2 of P] (Klac) {$\bm{K}_\text{IFF}$};
|
||||||
|
\node[addb, left=0.8 of input] (addF) {};
|
||||||
|
|
||||||
|
\node[block, left=0.8 of addF] (Khac) {$\bm{K}_\text{HAC}$};
|
||||||
|
\node[block, left=0.8 of Khac] (inverseK) {$\bm{J}$};
|
||||||
|
|
||||||
|
\node[addb={+}{}{}{}{-}, left=0.8 of inverseK] (subL) {};
|
||||||
|
|
||||||
|
% Connections and labels
|
||||||
|
\draw[->] (outputL) -- ++(0.7, 0) coordinate(eastlac) |- (Klac.east);
|
||||||
|
\node[above right] at (outputL){$\bm{f}_n$};
|
||||||
|
\draw[->] (Klac.west) -| (addF.north);
|
||||||
|
\draw[->] (addF.east) -- (input) node[above left]{$\bm{f}$};
|
||||||
|
|
||||||
|
\draw[->] (outputH) -- ++(1.7, 0) node[above left]{$\bm{\mathcal{X}}$};
|
||||||
|
\draw[->] (Khac.east) node[above right]{$\bm{f}^{\prime}$} -- (addF.west);
|
||||||
|
|
||||||
|
\draw[->] ($(outputH) + (1.2, 0)$)node[branch]{} |- ($(subL.south)+(0, -1.2)$) -- (subL.south);
|
||||||
|
\draw[->] (subL.east) -- (inverseK.west) node[above left]{$\bm{\epsilon}_\mathcal{X}$};
|
||||||
|
\draw[->] (inverseK.east) -- (Khac.west) node[above left]{$\bm{\epsilon}_\mathcal{L}$};
|
||||||
|
|
||||||
|
\draw[<-] (subL.west) -- ++(-0.8, 0) node[above right]{$\bm{r}_\mathcal{X}$};
|
||||||
|
|
||||||
|
\begin{scope}[on background layer]
|
||||||
|
\node[fit={(Klac.north-|eastlac) (addF.west|-P.south)}, fill=black!20!white, draw, dashed, inner sep=8pt] (Pi) {};
|
||||||
|
\node[anchor={north west}] at (Pi.north west){\footnotesize{Damped Plant}};
|
||||||
|
\end{scope}
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:nhexa_hac_iff_schematic
|
#+name: fig:nhexa_hac_iff_schematic
|
||||||
#+caption: HAC-IFF control architecture with the High Authority Controller being implemented in the frame of the struts
|
#+caption: HAC-IFF control architecture with the High Authority Controller being implemented in the frame of the struts
|
||||||
|
#+RESULTS:
|
||||||
[[file:figs/nhexa_hac_iff_schematic.png]]
|
[[file:figs/nhexa_hac_iff_schematic.png]]
|
||||||
|
|
||||||
The effect of decentralized IFF on the plant dynamics can be observed by comparing two sets of transfer functions.
|
The effect of decentralized IFF on the plant dynamics can be observed by comparing two sets of transfer functions.
|
||||||
@ -4879,7 +5053,6 @@ This approach combines decentralized Integral Force Feedback for active damping
|
|||||||
|
|
||||||
This study establishes the theoretical framework necessary for the subsequent development and validation of the NASS.
|
This study establishes the theoretical framework necessary for the subsequent development and validation of the NASS.
|
||||||
|
|
||||||
|
|
||||||
** Validation of the Concept
|
** Validation of the Concept
|
||||||
<<sec:nass>>
|
<<sec:nass>>
|
||||||
*** Introduction
|
*** Introduction
|
||||||
@ -5586,12 +5759,12 @@ The analysis is significantly simplified when considering small motions, as the
|
|||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_jacobian}
|
\begin{equation}\label{eq:detail_kinematics_jacobian}
|
||||||
\begin{bmatrix} \delta l_1 \\ \delta l_2 \\ \delta l_3 \\ \delta l_4 \\ \delta l_5 \\ \delta l_6 \end{bmatrix} = \underbrace{\begin{bmatrix}
|
\begin{bmatrix} \delta l_1 \\ \delta l_2 \\ \delta l_3 \\ \delta l_4 \\ \delta l_5 \\ \delta l_6 \end{bmatrix} = \underbrace{\begin{bmatrix}
|
||||||
{{}^A\hat{\bm{s}}_1}^T & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^T \\
|
{{}^A\hat{\bm{s}}_1}^{\intercal} & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_2}^T & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^T \\
|
{{}^A\hat{\bm{s}}_2}^{\intercal} & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_3}^T & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^T \\
|
{{}^A\hat{\bm{s}}_3}^{\intercal} & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_4}^T & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^T \\
|
{{}^A\hat{\bm{s}}_4}^{\intercal} & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_5}^T & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^T \\
|
{{}^A\hat{\bm{s}}_5}^{\intercal} & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_6}^T & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^T
|
{{}^A\hat{\bm{s}}_6}^{\intercal} & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^{\intercal}
|
||||||
\end{bmatrix}}_{\bm{J}} \begin{bmatrix} \delta x \\ \delta y \\ \delta z \\ \delta \theta_x \\ \delta \theta_y \\ \delta \theta_z \end{bmatrix}
|
\end{bmatrix}}_{\bm{J}} \begin{bmatrix} \delta x \\ \delta y \\ \delta z \\ \delta \theta_x \\ \delta \theta_y \\ \delta \theta_z \end{bmatrix}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
@ -5709,28 +5882,28 @@ The contribution of joints stiffness is not considered here, as the joints were
|
|||||||
However, theoretical frameworks for evaluating flexible joint contribution to the stiffness matrix have been established in the literature [[cite:&mcinroy00_desig_contr_flexur_joint_hexap;&mcinroy02_model_desig_flexur_joint_stewar]].
|
However, theoretical frameworks for evaluating flexible joint contribution to the stiffness matrix have been established in the literature [[cite:&mcinroy00_desig_contr_flexur_joint_hexap;&mcinroy02_model_desig_flexur_joint_stewar]].
|
||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix}
|
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix}
|
||||||
\bm{K} = \bm{J}^T \bm{\mathcal{K}} \bm{J}
|
\bm{K} = \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
It is assumed that the stiffness of all struts is the same: $\bm{\mathcal{K}} = k \cdot \mathbf{I}_6$.
|
It is assumed that the stiffness of all struts is the same: $\bm{\mathcal{K}} = k \cdot \mathbf{I}_6$.
|
||||||
In that case, the obtained stiffness matrix linearly depends on the strut stiffness $k$, and is structured as shown in equation eqref:eq:detail_kinematics_stiffness_matrix_simplified.
|
In that case, the obtained stiffness matrix linearly depends on the strut stiffness $k$, and is structured as shown in equation eqref:eq:detail_kinematics_stiffness_matrix_simplified.
|
||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix_simplified}
|
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix_simplified}
|
||||||
\bm{K} = k \bm{J}^T \bm{J} =
|
\bm{K} = k \bm{J}^{\intercal} \bm{J} =
|
||||||
k \left[
|
k \left[
|
||||||
\begin{array}{c|c}
|
\begin{array}{c|c}
|
||||||
\Sigma_{i = 0}^{6} \hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^T & \Sigma_{i = 0}^{6} \bm{\hat{s}}_i \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^T \\
|
\Sigma_{i = 0}^{6} \hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^{\intercal} & \Sigma_{i = 0}^{6} \bm{\hat{s}}_i \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^{\intercal} \\
|
||||||
\hline
|
\hline
|
||||||
\Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot \hat{\bm{s}}_i^T & \Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^T\\
|
\Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot \hat{\bm{s}}_i^{\intercal} & \Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^{\intercal}\\
|
||||||
\end{array}
|
\end{array}
|
||||||
\right]
|
\right]
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
****** Translation Stiffness
|
****** Translation Stiffness
|
||||||
|
|
||||||
As shown by equation eqref:eq:detail_kinematics_stiffness_matrix_simplified, the translation stiffnesses (the $3 \times 3$ top left terms of the stiffness matrix) only depend on the orientation of the struts and not their location: $\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^T$.
|
As shown by equation eqref:eq:detail_kinematics_stiffness_matrix_simplified, the translation stiffnesses (the $3 \times 3$ top left terms of the stiffness matrix) only depend on the orientation of the struts and not their location: $\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^{\intercal}$.
|
||||||
In the extreme case where all struts are vertical ($s_i = [0\ 0\ 1]$), a vertical stiffness of $6k$ is achieved, but with null stiffness in the horizontal directions.
|
In the extreme case where all struts are vertical ($s_i = [0\ 0\ 1]$), a vertical stiffness of $6k$ is achieved, but with null stiffness in the horizontal directions.
|
||||||
If two struts are aligned with the X axis, two struts with the Y axis, and two struts with the Z axis, then $\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^T = 2 \bm{I}_3$, resulting in well-distributed stiffness along all directions.
|
If two struts are aligned with the X axis, two struts with the Y axis, and two struts with the Z axis, then $\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^{\intercal} = 2 \bm{I}_3$, resulting in well-distributed stiffness along all directions.
|
||||||
This configuration corresponds to the cubic architecture presented in Section ref:sec:detail_kinematics_cubic.
|
This configuration corresponds to the cubic architecture presented in Section ref:sec:detail_kinematics_cubic.
|
||||||
|
|
||||||
When the struts are oriented more vertically, as shown in Figure ref:fig:detail_kinematics_stewart_mobility_vert_struts, the vertical stiffness increases while the horizontal stiffness decreases.
|
When the struts are oriented more vertically, as shown in Figure ref:fig:detail_kinematics_stewart_mobility_vert_struts, the vertical stiffness increases while the horizontal stiffness decreases.
|
||||||
@ -5761,7 +5934,7 @@ Under very specific conditions, the equations of motion in the Cartesian frame,
|
|||||||
These conditions are studied in Section ref:ssec:detail_kinematics_cubic_dynamic.
|
These conditions are studied in Section ref:ssec:detail_kinematics_cubic_dynamic.
|
||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_transfer_function_cart}
|
\begin{equation}\label{eq:detail_kinematics_transfer_function_cart}
|
||||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{T} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{T} \bm{\mathcal{K}} \bm{J} )^{-1}
|
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
In the frame of the struts, the equations of motion eqref:eq:detail_kinematics_transfer_function_struts are well decoupled at low frequency.
|
In the frame of the struts, the equations of motion eqref:eq:detail_kinematics_transfer_function_struts are well decoupled at low frequency.
|
||||||
@ -5850,6 +6023,152 @@ The unit vectors corresponding to the edges of the cube are described by equatio
|
|||||||
\hat{\bm{s}}_6 = \begin{bmatrix} \frac{-1}{\sqrt{6}} \\ \frac{ 1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}} \end{bmatrix}
|
\hat{\bm{s}}_6 = \begin{bmatrix} \frac{-1}{\sqrt{6}} \\ \frac{ 1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}} \end{bmatrix}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
|
#+begin_src latex :file detail_kinematics_cubic_schematic_full.pdf :results file
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{scope}[rotate={45}, shift={(0, 0, -4)}]
|
||||||
|
% We first define the coordinate of the points of the Cube
|
||||||
|
\coordinate[] (bot) at (0,0,4);
|
||||||
|
\coordinate[] (top) at (4,4,0);
|
||||||
|
\coordinate[] (A1) at (0,0,0);
|
||||||
|
\coordinate[] (A2) at (4,0,4);
|
||||||
|
\coordinate[] (A3) at (0,4,4);
|
||||||
|
\coordinate[] (B1) at (4,0,0);
|
||||||
|
\coordinate[] (B2) at (4,4,4);
|
||||||
|
\coordinate[] (B3) at (0,4,0);
|
||||||
|
|
||||||
|
% Center of the Cube
|
||||||
|
\coordinate[] (cubecenter) at ($0.5*(bot) + 0.5*(top)$);
|
||||||
|
|
||||||
|
% We draw parts of the cube that corresponds to the Stewart platform
|
||||||
|
\draw[] (A1)node[]{$\bullet$} -- (B1)node[]{$\bullet$} -- (A2)node[]{$\bullet$} -- (B2)node[]{$\bullet$} -- (A3)node[]{$\bullet$} -- (B3)node[]{$\bullet$} -- (A1);
|
||||||
|
|
||||||
|
% ai and bi are computed
|
||||||
|
\def\lfrom{0.0}
|
||||||
|
\def\lto{1.0}
|
||||||
|
|
||||||
|
\coordinate(a1) at ($(A1) - \lfrom*(A1) + \lfrom*(B1)$);
|
||||||
|
\coordinate(b1) at ($(A1) - \lto*(A1) + \lto*(B1)$);
|
||||||
|
\coordinate(a2) at ($(A2) - \lfrom*(A2) + \lfrom*(B1)$);
|
||||||
|
\coordinate(b2) at ($(A2) - \lto*(A2) + \lto*(B1)$);
|
||||||
|
\coordinate(a3) at ($(A2) - \lfrom*(A2) + \lfrom*(B2)$);
|
||||||
|
\coordinate(b3) at ($(A2) - \lto*(A2) + \lto*(B2)$);
|
||||||
|
\coordinate(a4) at ($(A3) - \lfrom*(A3) + \lfrom*(B2)$);
|
||||||
|
\coordinate(b4) at ($(A3) - \lto*(A3) + \lto*(B2)$);
|
||||||
|
\coordinate(a5) at ($(A3) - \lfrom*(A3) + \lfrom*(B3)$);
|
||||||
|
\coordinate(b5) at ($(A3) - \lto*(A3) + \lto*(B3)$);
|
||||||
|
\coordinate(a6) at ($(A1) - \lfrom*(A1) + \lfrom*(B3)$);
|
||||||
|
\coordinate(b6) at ($(A1) - \lto*(A1) + \lto*(B3)$);
|
||||||
|
|
||||||
|
% We draw the fixed and mobiles platforms
|
||||||
|
\path[fill=colorblue, opacity=0.2] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle;
|
||||||
|
\path[fill=colorblue, opacity=0.2] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle;
|
||||||
|
\draw[color=colorblue, dashed] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle;
|
||||||
|
\draw[color=colorblue, dashed] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle;
|
||||||
|
|
||||||
|
% The legs of the hexapod are drawn
|
||||||
|
\draw[color=colorblue] (a1)node{$\bullet$} -- (b1)node{$\bullet$};
|
||||||
|
\draw[color=colorblue] (a2)node{$\bullet$} -- (b2)node{$\bullet$};
|
||||||
|
\draw[color=colorblue] (a3)node{$\bullet$} -- (b3)node{$\bullet$};
|
||||||
|
\draw[color=colorblue] (a4)node{$\bullet$} -- (b4)node{$\bullet$};
|
||||||
|
\draw[color=colorblue] (a5)node{$\bullet$} -- (b5)node{$\bullet$};
|
||||||
|
\draw[color=colorblue] (a6)node{$\bullet$} -- (b6)node{$\bullet$};
|
||||||
|
|
||||||
|
% Unit vector
|
||||||
|
\draw[color=colorred, ->] ($0.9*(a1)+0.1*(b1)$)node{$\bullet$} -- ($0.65*(a1)+0.35*(b1)$)node[right]{$\hat{\bm{s}}_3$};
|
||||||
|
\draw[color=colorred, ->] ($0.9*(a2)+0.1*(b2)$)node{$\bullet$} -- ($0.65*(a2)+0.35*(b2)$)node[left]{$\hat{\bm{s}}_4$};
|
||||||
|
\draw[color=colorred, ->] ($0.9*(a3)+0.1*(b3)$)node{$\bullet$} -- ($0.65*(a3)+0.35*(b3)$)node[below]{$\hat{\bm{s}}_5$};
|
||||||
|
\draw[color=colorred, ->] ($0.9*(a4)+0.1*(b4)$)node{$\bullet$} -- ($0.65*(a4)+0.35*(b4)$)node[below]{$\hat{\bm{s}}_6$};
|
||||||
|
\draw[color=colorred, ->] ($0.9*(a5)+0.1*(b5)$)node{$\bullet$} -- ($0.65*(a5)+0.35*(b5)$)node[left]{$\hat{\bm{s}}_1$};
|
||||||
|
\draw[color=colorred, ->] ($0.9*(a6)+0.1*(b6)$)node{$\bullet$} -- ($0.65*(a6)+0.35*(b6)$)node[right]{$\hat{\bm{s}}_2$};
|
||||||
|
|
||||||
|
% Labels
|
||||||
|
\node[above=0.1 of B1] {$\tilde{\bm{b}}_3 = \tilde{\bm{b}}_4$};
|
||||||
|
\node[above=0.1 of B2] {$\tilde{\bm{b}}_5 = \tilde{\bm{b}}_6$};
|
||||||
|
\node[above=0.1 of B3] {$\tilde{\bm{b}}_1 = \tilde{\bm{b}}_2$};
|
||||||
|
\end{scope}
|
||||||
|
|
||||||
|
% Height of the Hexapod
|
||||||
|
\coordinate[] (sizepos) at ($(a2)+(0.2, 0)$);
|
||||||
|
\coordinate[] (origin) at (0,0,0);
|
||||||
|
|
||||||
|
\draw[->, color=colorgreen] (cubecenter.center) node[above right]{$\{B\}$} -- ++(0,0,1);
|
||||||
|
\draw[->, color=colorgreen] (cubecenter.center) -- ++(1,0,0);
|
||||||
|
\draw[->, color=colorgreen] (cubecenter.center) -- ++(0,1,0);
|
||||||
|
|
||||||
|
\node[] at (cubecenter.center){$\bullet$};
|
||||||
|
\node[above left] at (cubecenter.center){$\{C\}$};
|
||||||
|
|
||||||
|
% Useful part of the cube
|
||||||
|
\draw[<->, dashed] ($(A2)+(0.5,0)$) -- node[midway, right]{$H_{C}$} ($(B1)+(0.5,0)$);
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src latex :file detail_kinematics_cubic_schematic.pdf :results file
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{scope}[rotate={45}, shift={(0, 0, -4)}]
|
||||||
|
% We first define the coordinate of the points of the Cube
|
||||||
|
\coordinate[] (bot) at (0,0,4);
|
||||||
|
\coordinate[] (top) at (4,4,0);
|
||||||
|
\coordinate[] (A1) at (0,0,0);
|
||||||
|
\coordinate[] (A2) at (4,0,4);
|
||||||
|
\coordinate[] (A3) at (0,4,4);
|
||||||
|
\coordinate[] (B1) at (4,0,0);
|
||||||
|
\coordinate[] (B2) at (4,4,4);
|
||||||
|
\coordinate[] (B3) at (0,4,0);
|
||||||
|
|
||||||
|
% Center of the Cube
|
||||||
|
\coordinate[] (cubecenter) at ($0.5*(bot) + 0.5*(top)$);
|
||||||
|
|
||||||
|
% We draw parts of the cube that corresponds to the Stewart platform
|
||||||
|
\draw[] (A1)node[]{$\bullet$} -- (B1)node[]{$\bullet$} -- (A2)node[]{$\bullet$} -- (B2)node[]{$\bullet$} -- (A3)node[]{$\bullet$} -- (B3)node[]{$\bullet$} -- (A1);
|
||||||
|
|
||||||
|
% ai and bi are computed
|
||||||
|
\def\lfrom{0.2}
|
||||||
|
\def\lto{0.8}
|
||||||
|
|
||||||
|
\coordinate(a1) at ($(A1) - \lfrom*(A1) + \lfrom*(B1)$);
|
||||||
|
\coordinate(b1) at ($(A1) - \lto*(A1) + \lto*(B1)$);
|
||||||
|
\coordinate(a2) at ($(A2) - \lfrom*(A2) + \lfrom*(B1)$);
|
||||||
|
\coordinate(b2) at ($(A2) - \lto*(A2) + \lto*(B1)$);
|
||||||
|
\coordinate(a3) at ($(A2) - \lfrom*(A2) + \lfrom*(B2)$);
|
||||||
|
\coordinate(b3) at ($(A2) - \lto*(A2) + \lto*(B2)$);
|
||||||
|
\coordinate(a4) at ($(A3) - \lfrom*(A3) + \lfrom*(B2)$);
|
||||||
|
\coordinate(b4) at ($(A3) - \lto*(A3) + \lto*(B2)$);
|
||||||
|
\coordinate(a5) at ($(A3) - \lfrom*(A3) + \lfrom*(B3)$);
|
||||||
|
\coordinate(b5) at ($(A3) - \lto*(A3) + \lto*(B3)$);
|
||||||
|
\coordinate(a6) at ($(A1) - \lfrom*(A1) + \lfrom*(B3)$);
|
||||||
|
\coordinate(b6) at ($(A1) - \lto*(A1) + \lto*(B3)$);
|
||||||
|
|
||||||
|
% We draw the fixed and mobiles platforms
|
||||||
|
\path[fill=colorblue, opacity=0.2] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle;
|
||||||
|
\path[fill=colorblue, opacity=0.2] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle;
|
||||||
|
\draw[color=colorblue, dashed] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle;
|
||||||
|
\draw[color=colorblue, dashed] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle;
|
||||||
|
|
||||||
|
% The legs of the hexapod are drawn
|
||||||
|
\draw[color=colorblue] (a1)node{$\bullet$} -- (b1)node{$\bullet$}node[below right]{$\bm{b}_3$};
|
||||||
|
\draw[color=colorblue] (a2)node{$\bullet$} -- (b2)node{$\bullet$}node[right]{$\bm{b}_4$};
|
||||||
|
\draw[color=colorblue] (a3)node{$\bullet$} -- (b3)node{$\bullet$}node[above right]{$\bm{b}_5$};
|
||||||
|
\draw[color=colorblue] (a4)node{$\bullet$} -- (b4)node{$\bullet$}node[above left]{$\bm{b}_6$};
|
||||||
|
\draw[color=colorblue] (a5)node{$\bullet$} -- (b5)node{$\bullet$}node[left]{$\bm{b}_1$};
|
||||||
|
\draw[color=colorblue] (a6)node{$\bullet$} -- (b6)node{$\bullet$}node[below left]{$\bm{b}_2$};
|
||||||
|
\end{scope}
|
||||||
|
|
||||||
|
% Height of the Hexapod
|
||||||
|
\coordinate[] (sizepos) at ($(a2)+(0.2, 0)$);
|
||||||
|
\coordinate[] (origin) at (0,0,0);
|
||||||
|
|
||||||
|
\draw[->, color=colorgreen] ($(cubecenter.center)+(0,2.0,0)$) node[above right]{$\{B\}$} -- ++(0,0,1);
|
||||||
|
\draw[->, color=colorgreen] ($(cubecenter.center)+(0,2.0,0)$) -- ++(1,0,0);
|
||||||
|
\draw[->, color=colorgreen] ($(cubecenter.center)+(0,2.0,0)$) -- ++(0,1,0);
|
||||||
|
|
||||||
|
\node[] at (cubecenter.center){$\bullet$};
|
||||||
|
\node[right] at (cubecenter.center){$\{C\}$};
|
||||||
|
|
||||||
|
\draw[<->, dashed] (cubecenter.center) -- node[midway, right]{$H$} ($(cubecenter.center)+(0,2.0,0)$);
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:detail_kinematics_cubic_schematic_cases
|
#+name: fig:detail_kinematics_cubic_schematic_cases
|
||||||
#+caption: Cubic architecture. Struts are represented in blue. The cube's center by a black dot. The Struts can match the cube's edges (\subref{fig:detail_kinematics_cubic_schematic_full}) or just take a portion of the edge (\subref{fig:detail_kinematics_cubic_schematic})
|
#+caption: Cubic architecture. Struts are represented in blue. The cube's center by a black dot. The Struts can match the cube's edges (\subref{fig:detail_kinematics_cubic_schematic_full}) or just take a portion of the edge (\subref{fig:detail_kinematics_cubic_schematic})
|
||||||
#+attr_latex: :options [htbp]
|
#+attr_latex: :options [htbp]
|
||||||
@ -5964,8 +6283,29 @@ Furthermore, an inverse relationship exists between the cube's dimension and rot
|
|||||||
This section examines the dynamics of the cubic architecture in the Cartesian frame which corresponds to the transfer function from forces and torques $\bm{\mathcal{F}}$ to translations and rotations $\bm{\mathcal{X}}$ of the top platform.
|
This section examines the dynamics of the cubic architecture in the Cartesian frame which corresponds to the transfer function from forces and torques $\bm{\mathcal{F}}$ to translations and rotations $\bm{\mathcal{X}}$ of the top platform.
|
||||||
When relative motion sensors are integrated in each strut (measuring $\bm{\mathcal{L}}$), the pose $\bm{\mathcal{X}}$ is computed using the Jacobian matrix as shown in Figure ref:fig:detail_kinematics_centralized_control.
|
When relative motion sensors are integrated in each strut (measuring $\bm{\mathcal{L}}$), the pose $\bm{\mathcal{X}}$ is computed using the Jacobian matrix as shown in Figure ref:fig:detail_kinematics_centralized_control.
|
||||||
|
|
||||||
|
#+begin_src latex :file detail_kinematics_centralized_control.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\node[block] (Jt) at (0, 0) {$\bm{J}^{-T}$};
|
||||||
|
\node[block, right= of Jt] (G) {$\bm{G}$};
|
||||||
|
\node[block, right= of G] (J) {$\bm{J}^{-1}$};
|
||||||
|
\node[block, left= of Jt] (Kx) {$\bm{K}_{\mathcal{X}}$};
|
||||||
|
|
||||||
|
\draw[->] (Kx.east) -- node[midway, above]{$\bm{\mathcal{F}}$} (Jt.west);
|
||||||
|
\draw[->] (Jt.east) -- (G.west) node[above left]{$\bm{\tau}$};
|
||||||
|
\draw[->] (G.east) -- (J.west) node[above left]{$\bm{\mathcal{L}}$};
|
||||||
|
\draw[->] (J.east) -- ++(1.0, 0);
|
||||||
|
\draw[->] ($(J.east) + (0.5, 0)$)node[]{$\bullet$} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1) -| ($(Kx.west) + (-0.5, 0)$) -- (Kx.west);
|
||||||
|
|
||||||
|
\begin{scope}[on background layer]
|
||||||
|
\node[fit={(Jt.south west) (J.north east)}, fill=black!20!white, draw, dashed, inner sep=4pt] (Px) {};
|
||||||
|
\node[anchor={south}] at (Px.north){\small{Cartesian Plant}};
|
||||||
|
\end{scope}
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:detail_kinematics_centralized_control
|
#+name: fig:detail_kinematics_centralized_control
|
||||||
#+caption: Typical control architecture in the cartesian frame
|
#+caption: Typical control architecture in the cartesian frame
|
||||||
|
#+RESULTS:
|
||||||
[[file:figs/detail_kinematics_centralized_control.png]]
|
[[file:figs/detail_kinematics_centralized_control.png]]
|
||||||
|
|
||||||
****** Low frequency and High frequency coupling
|
****** Low frequency and High frequency coupling
|
||||||
@ -6058,8 +6398,26 @@ The orthogonal arrangement of struts in the cubic architecture suggests a potent
|
|||||||
Two sensor types integrated in the struts are considered: displacement sensors and force sensors.
|
Two sensor types integrated in the struts are considered: displacement sensors and force sensors.
|
||||||
The control architecture is illustrated in Figure ref:fig:detail_kinematics_decentralized_control, where $\bm{K}_{\mathcal{L}}$ represents a diagonal transfer function matrix.
|
The control architecture is illustrated in Figure ref:fig:detail_kinematics_decentralized_control, where $\bm{K}_{\mathcal{L}}$ represents a diagonal transfer function matrix.
|
||||||
|
|
||||||
|
#+begin_src latex :file detail_kinematics_decentralized_control.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\node[block] (G) at (0,0) {$\bm{G}$};
|
||||||
|
|
||||||
|
\node[block, left= of G] (Kl) {$\bm{K}_{\mathcal{L}}$};
|
||||||
|
|
||||||
|
\draw[->] (Kl.east) -- node[midway, above]{$\bm{\tau}$} (G.west);
|
||||||
|
\draw[->] (G.east) -- ++(1.0, 0);
|
||||||
|
\draw[->] ($(G.east) + (0.5, 0)$)node[]{$\bullet$} node[above]{$\bm{\mathcal{L}}$} -- ++(0, -1) -| ($(Kl.west) + (-0.5, 0)$) -- (Kl.west);
|
||||||
|
|
||||||
|
\begin{scope}[on background layer]
|
||||||
|
\node[fit={(G.south west) (G.north east)}, fill=black!20!white, draw, dashed, inner sep=4pt] (Pl) {};
|
||||||
|
\node[anchor={south}] at (Pl.north){\small{Strut Plant}};
|
||||||
|
\end{scope}
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:detail_kinematics_decentralized_control
|
#+name: fig:detail_kinematics_decentralized_control
|
||||||
#+caption: Decentralized control in the frame of the struts.
|
#+caption: Decentralized control in the frame of the struts.
|
||||||
|
#+RESULTS:
|
||||||
[[file:figs/detail_kinematics_decentralized_control.png]]
|
[[file:figs/detail_kinematics_decentralized_control.png]]
|
||||||
|
|
||||||
The obtained plant dynamics in the frame of the struts are compared for two Stewart platforms.
|
The obtained plant dynamics in the frame of the struts are compared for two Stewart platforms.
|
||||||
@ -6377,7 +6735,7 @@ This specification will guide the design of the flexible joints.
|
|||||||
*** Conclusion
|
*** Conclusion
|
||||||
<<sec:detail_kinematics_conclusion>>
|
<<sec:detail_kinematics_conclusion>>
|
||||||
|
|
||||||
This section has explored the optimization of the nano-hexapod geometry for the Nano Active Stabilization System (NASS).
|
This chapter has explored the optimization of the nano-hexapod geometry for the Nano Active Stabilization System (NASS).
|
||||||
|
|
||||||
First, a review of existing Stewart platforms revealed two main geometric categories: cubic architectures, characterized by mutually orthogonal struts arranged along the edges of a cube, and non-cubic architectures with varied strut orientations.
|
First, a review of existing Stewart platforms revealed two main geometric categories: cubic architectures, characterized by mutually orthogonal struts arranged along the edges of a cube, and non-cubic architectures with varied strut orientations.
|
||||||
While cubic architectures are prevalent in the literature and attributed with beneficial properties such as simplified kinematics, uniform stiffness, and reduced cross-coupling, the performed analysis revealed that some of these advantages should be more nuanced or context-dependent than commonly described.
|
While cubic architectures are prevalent in the literature and attributed with beneficial properties such as simplified kinematics, uniform stiffness, and reduced cross-coupling, the performed analysis revealed that some of these advantages should be more nuanced or context-dependent than commonly described.
|
||||||
@ -10728,7 +11086,7 @@ The control strategy here is to apply a diagonal control in the frame of the str
|
|||||||
To conduct this interaction analysis, the acrfull:rga $\bm{\Lambda_G}$ is first computed using eqref:eq:test_id31_rga for the plant dynamics identified with the multiple payload masses.
|
To conduct this interaction analysis, the acrfull:rga $\bm{\Lambda_G}$ is first computed using eqref:eq:test_id31_rga for the plant dynamics identified with the multiple payload masses.
|
||||||
|
|
||||||
\begin{equation}\label{eq:test_id31_rga}
|
\begin{equation}\label{eq:test_id31_rga}
|
||||||
\bm{\Lambda_G}(\omega) = \bm{G}(j\omega) \star \left(\bm{G}(j\omega)^{-1}\right)^{T}, \quad (\star \text{ means element wise multiplication})
|
\bm{\Lambda_G}(\omega) = \bm{G}(j\omega) \star \left(\bm{G}(j\omega)^{-1}\right)^{\intercal}, \quad (\star \text{ means element wise multiplication})
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Then, acrshort:rga numbers are computed using eqref:eq:test_id31_rga_number and are use as a metric for interaction [[cite:&skogestad07_multiv_feedb_contr chapt. 3.4]].
|
Then, acrshort:rga numbers are computed using eqref:eq:test_id31_rga_number and are use as a metric for interaction [[cite:&skogestad07_multiv_feedb_contr chapt. 3.4]].
|
||||||
@ -11310,7 +11668,8 @@ Moreover, the systematic approach to system development and validation, along wi
|
|||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:UNNUMBERED: notoc
|
:UNNUMBERED: notoc
|
||||||
:END:
|
:END:
|
||||||
<<sec:concept_conclusion>>
|
<<sec:test_conclusion>>
|
||||||
|
|
||||||
* Conclusion and Future Work
|
* Conclusion and Future Work
|
||||||
<<chap:conclusion>>
|
<<chap:conclusion>>
|
||||||
|
|
||||||
@ -11363,8 +11722,7 @@ Moreover, the systematic approach to system development and validation, along wi
|
|||||||
[fn:modal_2]Kistler 9722A2000. Sensitivity of $2.3\,mV/N$ and measurement range of $2\,kN$
|
[fn:modal_2]Kistler 9722A2000. Sensitivity of $2.3\,mV/N$ and measurement range of $2\,kN$
|
||||||
[fn:modal_1]PCB 356B18. Sensitivity is $1\,V/g$, measurement range is $\pm 5\,g$ and bandwidth is $0.5$ to $5\,\text{kHz}$.
|
[fn:modal_1]PCB 356B18. Sensitivity is $1\,V/g$, measurement range is $\pm 5\,g$ and bandwidth is $0.5$ to $5\,\text{kHz}$.
|
||||||
|
|
||||||
[fn:ustation_12]It was probably caused by rust of the linear guides along its stroke.
|
[fn:ustation_11]It was probably caused by rust of the linear guides along its stroke.
|
||||||
[fn:ustation_11]A 3-Axis L4C geophone manufactured Sercel was used.
|
|
||||||
[fn:ustation_10]Laser source is manufactured by Agilent (5519b).
|
[fn:ustation_10]Laser source is manufactured by Agilent (5519b).
|
||||||
[fn:ustation_9]The special optics (straightness interferometer and reflector) are manufactured by Agilent (10774A).
|
[fn:ustation_9]The special optics (straightness interferometer and reflector) are manufactured by Agilent (10774A).
|
||||||
[fn:ustation_8]C8 capacitive sensors and CPL290 capacitive driver electronics from Lion Precision.
|
[fn:ustation_8]C8 capacitive sensors and CPL290 capacitive driver electronics from Lion Precision.
|
||||||
|
BIN
phd-thesis.pdf
183
phd-thesis.tex
@ -1,4 +1,4 @@
|
|||||||
% Created 2025-04-06 Sun 18:19
|
% Created 2025-04-07 Mon 16:42
|
||||||
% Intended LaTeX compiler: pdflatex
|
% Intended LaTeX compiler: pdflatex
|
||||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||||
|
|
||||||
@ -42,7 +42,7 @@
|
|||||||
\addbibresource{ref.bib}
|
\addbibresource{ref.bib}
|
||||||
\addbibresource{phd-thesis.bib}
|
\addbibresource{phd-thesis.bib}
|
||||||
\author{Dehaeze Thomas}
|
\author{Dehaeze Thomas}
|
||||||
\date{2025-04-06}
|
\date{2025-04-07}
|
||||||
\title{Mechatronic approach for the design of a Nano Active Stabilization System}
|
\title{Mechatronic approach for the design of a Nano Active Stabilization System}
|
||||||
\subtitle{PhD Thesis}
|
\subtitle{PhD Thesis}
|
||||||
\hypersetup{
|
\hypersetup{
|
||||||
@ -142,7 +142,7 @@ From the measured frequency response functions (FRF), the model can be tuned to
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,width=\linewidth]{figs/uniaxial_ustation_first_meas_dynamics.jpg}
|
\includegraphics[scale=1]{figs/uniaxial_ustation_first_meas_dynamics.jpg}
|
||||||
\caption{\label{fig:uniaxial_ustation_first_meas_dynamics}Experimental setup used for the first dynamical measurements on the Micro-Station. Geophones are fixed to different stages of the micro-station.}
|
\caption{\label{fig:uniaxial_ustation_first_meas_dynamics}Experimental setup used for the first dynamical measurements on the Micro-Station. Geophones are fixed to different stages of the micro-station.}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\subsubsection{Measured dynamics}
|
\subsubsection{Measured dynamics}
|
||||||
@ -2602,7 +2602,7 @@ The \acrshort{mif} is applied to the \(n\times p\) \acrshort{frf} matrix where \
|
|||||||
|
|
||||||
The complex modal indication function is defined in equation \eqref{eq:modal_cmif} where the diagonal matrix \(\Sigma\) is obtained from a \acrlong{svd} of the \acrshort{frf} matrix as shown in equation \eqref{eq:modal_svd}.
|
The complex modal indication function is defined in equation \eqref{eq:modal_cmif} where the diagonal matrix \(\Sigma\) is obtained from a \acrlong{svd} of the \acrshort{frf} matrix as shown in equation \eqref{eq:modal_svd}.
|
||||||
\begin{equation} \label{eq:modal_cmif}
|
\begin{equation} \label{eq:modal_cmif}
|
||||||
[CMIF(\omega)]_{p\times p} = [\Sigma(\omega)]_{p\times n}^T [\Sigma(\omega)]_{n\times p}
|
[CMIF(\omega)]_{p\times p} = [\Sigma(\omega)]_{p\times n}^{\intercal} [\Sigma(\omega)]_{n\times p}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
\begin{equation} \label{eq:modal_svd}
|
\begin{equation} \label{eq:modal_svd}
|
||||||
@ -2700,7 +2700,7 @@ The modal parameter extraction is made using a proprietary software\footnote{NVG
|
|||||||
For each mode \(r\) (from \(1\) to the number of considered modes \(m=16\)), it outputs the frequency \(\omega_r\), the damping ratio \(\xi_r\), the eigenvectors \(\{\phi_{r}\}\) (vector of complex numbers with a size equal to the number of measured \acrshort{dof} \(n=69\), see equation \eqref{eq:modal_eigenvector}) and a scaling factor \(a_r\).
|
For each mode \(r\) (from \(1\) to the number of considered modes \(m=16\)), it outputs the frequency \(\omega_r\), the damping ratio \(\xi_r\), the eigenvectors \(\{\phi_{r}\}\) (vector of complex numbers with a size equal to the number of measured \acrshort{dof} \(n=69\), see equation \eqref{eq:modal_eigenvector}) and a scaling factor \(a_r\).
|
||||||
|
|
||||||
\begin{equation}\label{eq:modal_eigenvector}
|
\begin{equation}\label{eq:modal_eigenvector}
|
||||||
\{\phi_i\} = \begin{Bmatrix} \phi_{i, 1_x} & \phi_{i, 1_y} & \phi_{i, 1_z} & \phi_{i, 2_x} & \dots & \phi_{i, 23_z} \end{Bmatrix}^T
|
\{\phi_i\} = \begin{Bmatrix} \phi_{i, 1_x} & \phi_{i, 1_y} & \phi_{i, 1_z} & \phi_{i, 2_x} & \dots & \phi_{i, 23_z} \end{Bmatrix}^{\intercal}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
The eigenvalues \(s_r\) and \(s_r^*\) can then be computed from equation \eqref{eq:modal_eigenvalues}.
|
The eigenvalues \(s_r\) and \(s_r^*\) can then be computed from equation \eqref{eq:modal_eigenvalues}.
|
||||||
@ -2726,7 +2726,7 @@ In order to synthesize the full \acrshort{frf} matrix, the eigenvectors \(\phi_r
|
|||||||
The full \acrshort{frf} matrix \(\mathbf{H}_{\text{syn}}\) can be obtained using \eqref{eq:modal_synthesized_frf}.
|
The full \acrshort{frf} matrix \(\mathbf{H}_{\text{syn}}\) can be obtained using \eqref{eq:modal_synthesized_frf}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:modal_synthesized_frf}
|
\begin{equation}\label{eq:modal_synthesized_frf}
|
||||||
[\mathbf{H}_{\text{syn}}(\omega)]_{n\times n} = [\Phi]_{n\times2m} [\mathbf{H}_{\text{mod}}(\omega)]_{2m\times2m} [\Phi]_{2m\times n}^T
|
[\mathbf{H}_{\text{syn}}(\omega)]_{n\times n} = [\Phi]_{n\times2m} [\mathbf{H}_{\text{mod}}(\omega)]_{2m\times2m} [\Phi]_{2m\times n}^{\intercal}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
With \(\mathbf{H}_{\text{mod}}(\omega)\) a diagonal matrix representing the response of the different modes \eqref{eq:modal_modal_resp}.
|
With \(\mathbf{H}_{\text{mod}}(\omega)\) a diagonal matrix representing the response of the different modes \eqref{eq:modal_modal_resp}.
|
||||||
@ -2798,12 +2798,12 @@ To validate the accuracy of the micro-station model, ``real world'' experiments
|
|||||||
\label{sec:ustation_kinematics}
|
\label{sec:ustation_kinematics}
|
||||||
The micro-station consists of 4 stacked positioning stages (Figure \ref{fig:ustation_cad_view}).
|
The micro-station consists of 4 stacked positioning stages (Figure \ref{fig:ustation_cad_view}).
|
||||||
From bottom to top, the stacked stages are the translation stage \(D_y\), the tilt stage \(R_y\), the rotation stage (Spindle) \(R_z\) and the positioning hexapod.
|
From bottom to top, the stacked stages are the translation stage \(D_y\), the tilt stage \(R_y\), the rotation stage (Spindle) \(R_z\) and the positioning hexapod.
|
||||||
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex. complex dynamics.
|
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,width=\linewidth]{figs/ustation_cad_view.png}
|
\includegraphics[scale=1,width=\linewidth]{figs/ustation_cad_view.png}
|
||||||
\caption{\label{fig:ustation_cad_view}CAD view of the micro-station with the translation stage (in blue), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple). On top of these four stages, a solid part (shown in green) will be replaced by the stabilization stage.}
|
\caption{\label{fig:ustation_cad_view}CAD view of the micro-station with the translation stage (in blue), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple).}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
There are different ways of modeling the stage dynamics in a multi-body model.
|
There are different ways of modeling the stage dynamics in a multi-body model.
|
||||||
@ -2814,7 +2814,8 @@ s can be tuned separately for each DoF.
|
|||||||
The ``controlled'' DoF of each stage (for instance the \(D_y\) direction for the translation stage) is modeled as infinitely rigid (i.e. its motion is imposed by a ``setpoint'') while the other DoFs have limited stiffness to model the different micro-station modes.
|
The ``controlled'' DoF of each stage (for instance the \(D_y\) direction for the translation stage) is modeled as infinitely rigid (i.e. its motion is imposed by a ``setpoint'') while the other DoFs have limited stiffness to model the different micro-station modes.
|
||||||
\subsubsection{Motion Stages}
|
\subsubsection{Motion Stages}
|
||||||
\label{ssec:ustation_stages}
|
\label{ssec:ustation_stages}
|
||||||
\paragraph{Translation Stage}
|
\begin{enumerate}
|
||||||
|
\item Translation Stage
|
||||||
|
|
||||||
The translation stage is used to position and scan the sample laterally with respect to the X-ray beam.
|
The translation stage is used to position and scan the sample laterally with respect to the X-ray beam.
|
||||||
|
|
||||||
@ -2823,7 +2824,7 @@ It was later replaced with a stepper motor and lead-screw, as the feedback contr
|
|||||||
An optical linear encoder is used to measure the stage motion and for controlling the position.
|
An optical linear encoder is used to measure the stage motion and for controlling the position.
|
||||||
|
|
||||||
Four cylindrical bearings\footnote{Ball cage (N501) and guide bush (N550) from Mahr are used.} are used to guide the motion (i.e. minimize the parasitic motions) and have high stiffness.
|
Four cylindrical bearings\footnote{Ball cage (N501) and guide bush (N550) from Mahr are used.} are used to guide the motion (i.e. minimize the parasitic motions) and have high stiffness.
|
||||||
\paragraph{Tilt Stage}
|
\item Tilt Stage
|
||||||
|
|
||||||
The tilt stage is guided by four linear motion guides\footnote{HCR 35 A C1, from THK.} which are placed such that the center of rotation coincide with the X-ray beam.
|
The tilt stage is guided by four linear motion guides\footnote{HCR 35 A C1, from THK.} which are placed such that the center of rotation coincide with the X-ray beam.
|
||||||
Each linear guide is very stiff in radial directions such that the only DoF with low stiffness is in \(R_y\).
|
Each linear guide is very stiff in radial directions such that the only DoF with low stiffness is in \(R_y\).
|
||||||
@ -2846,13 +2847,13 @@ To precisely control the \(R_y\) angle, a stepper motor and two optical encoders
|
|||||||
\captionof{figure}{\label{fig:ustation_ry_stage}Tilt Stage}
|
\captionof{figure}{\label{fig:ustation_ry_stage}Tilt Stage}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\paragraph{Spindle}
|
\item Spindle
|
||||||
|
|
||||||
Then, a rotation stage is used for tomography experiments.
|
Then, a rotation stage is used for tomography experiments.
|
||||||
It is composed of an air bearing spindle\footnote{Made by LAB Motion Systems.}, whose angular position is controlled with a 3 phase synchronous motor based on the reading of 4 optical encoders.
|
It is composed of an air bearing spindle\footnote{Made by LAB Motion Systems.}, whose angular position is controlled with a 3 phase synchronous motor based on the reading of 4 optical encoders.
|
||||||
|
|
||||||
Additional rotary unions and slip-rings are used to be able to pass electrical signals, fluids and gazes through the rotation stage.
|
Additional rotary unions and slip-rings are used to be able to pass electrical signals, fluids and gazes through the rotation stage.
|
||||||
\paragraph{Micro-Hexapod}
|
\item Micro-Hexapod
|
||||||
|
|
||||||
Finally, a Stewart platform\footnote{Modified Zonda Hexapod by Symetrie.} is used to position the sample.
|
Finally, a Stewart platform\footnote{Modified Zonda Hexapod by Symetrie.} is used to position the sample.
|
||||||
It includes a DC motor and an optical linear encoders in each of the six struts.
|
It includes a DC motor and an optical linear encoders in each of the six struts.
|
||||||
@ -2873,6 +2874,7 @@ It can also be used to precisely position the PoI vertically with respect to the
|
|||||||
\captionof{figure}{\label{fig:ustation_hexapod_stage}Micro Hexapod}
|
\captionof{figure}{\label{fig:ustation_hexapod_stage}Micro Hexapod}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
|
\end{enumerate}
|
||||||
\subsubsection{Mathematical description of a rigid body motion}
|
\subsubsection{Mathematical description of a rigid body motion}
|
||||||
\label{ssec:ustation_motion_description}
|
\label{ssec:ustation_motion_description}
|
||||||
In this section, mathematical tools\footnote{The tools presented here are largely taken from \cite{taghirad13_paral}.} that are used to describe the motion of positioning stages are introduced.
|
In this section, mathematical tools\footnote{The tools presented here are largely taken from \cite{taghirad13_paral}.} that are used to describe the motion of positioning stages are introduced.
|
||||||
@ -2880,7 +2882,8 @@ In this section, mathematical tools\footnote{The tools presented here are largel
|
|||||||
First, the tools to describe the pose of a solid body (i.e. it's position and orientation) are introduced.
|
First, the tools to describe the pose of a solid body (i.e. it's position and orientation) are introduced.
|
||||||
The motion induced by a positioning stage is described by transformation matrices.
|
The motion induced by a positioning stage is described by transformation matrices.
|
||||||
Finally, the motions of all stacked stages are combined, and the sample's motion is computed from each stage motion.
|
Finally, the motions of all stacked stages are combined, and the sample's motion is computed from each stage motion.
|
||||||
\paragraph{Spatial motion representation}
|
\begin{enumerate}
|
||||||
|
\item Spatial motion representation
|
||||||
|
|
||||||
The \emph{pose} of a solid body relative to a specific frame can be described by six independent parameters.
|
The \emph{pose} of a solid body relative to a specific frame can be described by six independent parameters.
|
||||||
Three parameters are typically used to describe its position, and three other parameters describe its orientation.
|
Three parameters are typically used to describe its position, and three other parameters describe its orientation.
|
||||||
@ -2920,14 +2923,10 @@ The \emph{orientation} of a rigid body is the same at all its points (by definit
|
|||||||
Hence, the orientation of a rigid body can be viewed as that of a moving frame attached to the rigid body.
|
Hence, the orientation of a rigid body can be viewed as that of a moving frame attached to the rigid body.
|
||||||
It can be represented in several different ways: the rotation matrix, the screw axis representation, and the Euler angles are common descriptions.
|
It can be represented in several different ways: the rotation matrix, the screw axis representation, and the Euler angles are common descriptions.
|
||||||
|
|
||||||
The rotation matrix \({}^A\bm{R}_B\) is a \(3 \times 3\) matrix containing the Cartesian unit vectors of frame \(\{\bm{B}\}\) represented in frame \(\{\bm{A}\}\) \eqref{eq:ustation_rotation_matrix}.
|
The rotation matrix \({}^A\bm{R}_B\) is a \(3 \times 3\) matrix containing the Cartesian unit vectors \([{}^A\hat{\bm{x}}_B,\ {}^A\hat{\bm{y}}_B,\ {}^A\hat{\bm{z}}_B]\) of frame \(\{\bm{B}\}\) represented in frame \(\{\bm{A}\}\) \eqref{eq:ustation_rotation_matrix}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:ustation_rotation_matrix}
|
\begin{equation}\label{eq:ustation_rotation_matrix}
|
||||||
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{z}}_B \right] = \begin{bmatrix}
|
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{z}}_B \right]
|
||||||
u_{x} & v_{x} & z_{x} \\
|
|
||||||
u_{y} & v_{y} & z_{y} \\
|
|
||||||
u_{z} & v_{z} & z_{z}
|
|
||||||
\end{bmatrix}
|
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Consider a pure rotation of a rigid body (\(\{\bm{A}\}\) and \(\{\bm{B}\}\) are coincident at their origins, as shown in Figure \ref{fig:ustation_rotation}).
|
Consider a pure rotation of a rigid body (\(\{\bm{A}\}\) and \(\{\bm{B}\}\) are coincident at their origins, as shown in Figure \ref{fig:ustation_rotation}).
|
||||||
@ -2943,7 +2942,7 @@ For rotations along \(x\), \(y\) or \(z\) axis, the formulas of the correspondin
|
|||||||
\begin{align}
|
\begin{align}
|
||||||
\bm{R}_x(\theta_x) &= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta_x) & -\sin(\theta_x) \\ 0 & \sin(\theta_x) & \cos(\theta_x) \end{bmatrix} \\
|
\bm{R}_x(\theta_x) &= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta_x) & -\sin(\theta_x) \\ 0 & \sin(\theta_x) & \cos(\theta_x) \end{bmatrix} \\
|
||||||
\bm{R}_y(\theta_y) &= \begin{bmatrix} \cos(\theta_y) & 0 & \sin(\theta_y) \\ 0 & 1 & 0 \\ -\sin(\theta_y) & 0 & \cos(\theta_y) \end{bmatrix} \\
|
\bm{R}_y(\theta_y) &= \begin{bmatrix} \cos(\theta_y) & 0 & \sin(\theta_y) \\ 0 & 1 & 0 \\ -\sin(\theta_y) & 0 & \cos(\theta_y) \end{bmatrix} \\
|
||||||
\bm{R}_z(\theta_z) &= \begin{bmatrix} \cos(\theta_z) & -\sin(\theta_z) & 0 \\ \sin(\theta_z) & \cos(\theta_x) & 0 \\ 0 & 0 & 1 \end{bmatrix}
|
\bm{R}_z(\theta_z) &= \begin{bmatrix} \cos(\theta_z) & -\sin(\theta_z) & 0 \\ \sin(\theta_z) & \cos(\theta_z) & 0 \\ 0 & 0 & 1 \end{bmatrix}
|
||||||
\end{align}
|
\end{align}
|
||||||
\end{subequations}
|
\end{subequations}
|
||||||
|
|
||||||
@ -2963,7 +2962,7 @@ Such rotation can be parameterized by three Euler angles \((\alpha,\ \beta,\ \ga
|
|||||||
\gamma &= \text{atan2}(-R_{12}/\cos(\beta),\ R_{11}/\cos(\beta))
|
\gamma &= \text{atan2}(-R_{12}/\cos(\beta),\ R_{11}/\cos(\beta))
|
||||||
\end{align}
|
\end{align}
|
||||||
\end{subequations}
|
\end{subequations}
|
||||||
\paragraph{Motion of a Rigid Body}
|
\item Motion of a Rigid Body
|
||||||
|
|
||||||
Since the relative positions of a rigid body with respect to a moving frame \(\{B\}\) attached to it are fixed for all time, it is sufficient to know the position of the origin of the frame \(O_B\) and the orientation of the frame \(\{B\}\) with respect to the fixed frame \(\{A\}\), to represent the position of any point \(P\) in the space.
|
Since the relative positions of a rigid body with respect to a moving frame \(\{B\}\) attached to it are fixed for all time, it is sufficient to know the position of the origin of the frame \(O_B\) and the orientation of the frame \(\{B\}\) with respect to the fixed frame \(\{A\}\), to represent the position of any point \(P\) in the space.
|
||||||
|
|
||||||
@ -3036,12 +3035,13 @@ Another key advantage of homogeneous transformation is the easy inverse transfor
|
|||||||
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
|
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
|
||||||
\left[ \begin{array}{ccc|c}
|
\left[ \begin{array}{ccc|c}
|
||||||
& & & \\
|
& & & \\
|
||||||
& {}^A\bm{R}_B^T & & -{}^A \bm{R}_B^T {}^AP_{O_B} \\
|
& {}^A\bm{R}_B^{\intercal} & & -{}^A \bm{R}_B^{\intercal} {}^AP_{O_B} \\
|
||||||
& & & \cr
|
& & & \cr
|
||||||
\hline
|
\hline
|
||||||
0 & 0 & 0 & 1 \\
|
0 & 0 & 0 & 1 \\
|
||||||
\end{array} \right]
|
\end{array} \right]
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
\end{enumerate}
|
||||||
\subsubsection{Micro-Station Kinematics}
|
\subsubsection{Micro-Station Kinematics}
|
||||||
\label{ssec:ustation_kinematics}
|
\label{ssec:ustation_kinematics}
|
||||||
|
|
||||||
@ -3079,8 +3079,9 @@ The homogeneous transformation matrix corresponding to the micro-station \(\bm{T
|
|||||||
|
|
||||||
\(\bm{T}_{\mu\text{-station}}\) represents the pose of the sample (supposed to be rigidly fixed on top of the positioning-hexapod) with respect to the granite.
|
\(\bm{T}_{\mu\text{-station}}\) represents the pose of the sample (supposed to be rigidly fixed on top of the positioning-hexapod) with respect to the granite.
|
||||||
|
|
||||||
If the transformation matrices of the individual stages are each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), \(\bm{T}_{\mu\text{-station}}\) then represent the pose setpoint of the sample with respect to the granite.
|
If the transformation matrices of the individual stages are each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), \(\bm{T}_{\mu\text{-station}}\) then represents the pose setpoint of the sample with respect to the granite.
|
||||||
The transformation matrices for the translation stage, tilt stage, spindle, and positioning hexapod can be written as shown in Equation \eqref{eq:ustation_transformation_matrices_stages}.
|
The transformation matrices for the translation stage, tilt stage, spindle, and positioning hexapod can be written as shown in Equation \eqref{eq:ustation_transformation_matrices_stages}.
|
||||||
|
The setpoints are \(D_y\) for the translation stage, \(\theta_y\) for the tilt-stage, \(\theta_z\) for the spindle, \([D_{\mu x},\ D_{\mu y}, D_{\mu z}]\) for the micro-hexapod translations and \([\theta_{\mu x},\ \theta_{\mu y}, \theta_{\mu z}]\) for the micro-hexapod rotations.
|
||||||
|
|
||||||
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
|
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
|
||||||
\begin{align}
|
\begin{align}
|
||||||
@ -3136,7 +3137,7 @@ External forces can be used to model disturbances, and ``sensors'' can be used t
|
|||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1]{figs/ustation_simscape_stage_example.png}
|
\includegraphics[scale=1]{figs/ustation_simscape_stage_example.png}
|
||||||
\caption{\label{fig:ustation_simscape_stage_example}Example of a stage (here the tilt-stage) represented in the multi-body model software (Simscape). It is composed of two solid bodies connected by a 6-DoF joint. One joint DoF (here the tilt angle) can be imposed, the other DoFs are represented by springs and dampers. Additional disturbances forces for all DoF can be included}
|
\caption{\label{fig:ustation_simscape_stage_example}Example of a stage (here the tilt-stage) represented in the multi-body model software (Simscape). It is composed of two solid bodies connected by a 6-DoF joint. One joint DoF (here the tilt angle) can be imposed, the other DoFs are represented by springs and dampers. Additional disturbing forces for all DoF can be included}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Therefore, the micro-station is modeled by several solid bodies connected by joints.
|
Therefore, the micro-station is modeled by several solid bodies connected by joints.
|
||||||
@ -3272,7 +3273,7 @@ Similar to what is done for the accelerometers, a Jacobian matrix \(\bm{J}_F\) i
|
|||||||
The equivalent forces and torques applied at center of \(\{\mathcal{X}\}\) are then computed using \eqref{eq:ustation_compute_cart_force}.
|
The equivalent forces and torques applied at center of \(\{\mathcal{X}\}\) are then computed using \eqref{eq:ustation_compute_cart_force}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:ustation_compute_cart_force}
|
\begin{equation}\label{eq:ustation_compute_cart_force}
|
||||||
F_{\mathcal{X}} = \bm{J}_F^t \cdot F_{\mathcal{L}}
|
F_{\mathcal{X}} = \bm{J}_F^{\intercal} \cdot F_{\mathcal{L}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Using the two Jacobian matrices, the FRF from the 10 hammer impacts to the 12 accelerometer outputs can be converted to the FRF from 6 forces/torques applied at the origin of frame \(\{\mathcal{X}\}\) to the 6 linear/angular accelerations of the top platform expressed with respect to \(\{\mathcal{X}\}\).
|
Using the two Jacobian matrices, the FRF from the 10 hammer impacts to the 12 accelerometer outputs can be converted to the FRF from 6 forces/torques applied at the origin of frame \(\{\mathcal{X}\}\) to the 6 linear/angular accelerations of the top platform expressed with respect to \(\{\mathcal{X}\}\).
|
||||||
@ -3301,8 +3302,8 @@ Considering the complexity of the micro-station compliance dynamics, the model c
|
|||||||
\label{sec:ustation_disturbances}
|
\label{sec:ustation_disturbances}
|
||||||
The goal of this section is to obtain a realistic representation of disturbances affecting the micro-station.
|
The goal of this section is to obtain a realistic representation of disturbances affecting the micro-station.
|
||||||
These disturbance sources are then used during time domain simulations to accurately model the micro-station behavior.
|
These disturbance sources are then used during time domain simulations to accurately model the micro-station behavior.
|
||||||
The focus on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
The focus is on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
||||||
Such disturbances include ground motions and vibrations induces by scanning the translation stage and the spindle.
|
Such disturbances include ground motions and vibrations induce by scanning the translation stage and the spindle.
|
||||||
|
|
||||||
In the multi-body model, stage vibrations are modeled as internal forces applied in the stage joint.
|
In the multi-body model, stage vibrations are modeled as internal forces applied in the stage joint.
|
||||||
In practice, disturbance forces cannot be directly measured.
|
In practice, disturbance forces cannot be directly measured.
|
||||||
@ -3317,9 +3318,10 @@ Vibrations induced by scanning the translation stage and the spindle are also me
|
|||||||
|
|
||||||
The tilt stage and the micro-hexapod also have positioning errors; however, they are not modeled here because these two stages are only used for pre-positioning and not for scanning.
|
The tilt stage and the micro-hexapod also have positioning errors; however, they are not modeled here because these two stages are only used for pre-positioning and not for scanning.
|
||||||
Therefore, from a control perspective, they are not important.
|
Therefore, from a control perspective, they are not important.
|
||||||
\paragraph{Ground Motion}
|
\begin{enumerate}
|
||||||
|
\item Ground Motion
|
||||||
|
|
||||||
The ground motion was measured by using a sensitive 3-axis geophone\footnote{A 3-Axis L4C geophone manufactured Sercel was used.} placed on the ground.
|
The ground motion was measured by using a sensitive 3-axis geophone shown in Figure \ref{fig:ustation_geophone_picture} placed on the ground.
|
||||||
The generated voltages were recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
|
The generated voltages were recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
|
||||||
The obtained ground motion displacement is shown in Figure \ref{fig:ustation_ground_disturbance}.
|
The obtained ground motion displacement is shown in Figure \ref{fig:ustation_ground_disturbance}.
|
||||||
|
|
||||||
@ -3336,7 +3338,7 @@ The obtained ground motion displacement is shown in Figure \ref{fig:ustation_gro
|
|||||||
\captionof{figure}{\label{fig:ustation_geophone_picture}(3D) L-4C geophone}
|
\captionof{figure}{\label{fig:ustation_geophone_picture}(3D) L-4C geophone}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\paragraph{Ty Stage}
|
\item Ty Stage
|
||||||
|
|
||||||
To measure the positioning errors of the translation stage, the setup shown in Figure \ref{fig:ustation_errors_ty_setup} is used.
|
To measure the positioning errors of the translation stage, the setup shown in Figure \ref{fig:ustation_errors_ty_setup} is used.
|
||||||
A special optical element (called a ``straightness interferometer''\footnote{The special optics (straightness interferometer and reflector) are manufactured by Agilent (10774A).}) is fixed on top of the micro-station, while a laser source\footnote{Laser source is manufactured by Agilent (5519b).} and a straightness reflector are fixed on the ground.
|
A special optical element (called a ``straightness interferometer''\footnote{The special optics (straightness interferometer and reflector) are manufactured by Agilent (10774A).}) is fixed on top of the micro-station, while a laser source\footnote{Laser source is manufactured by Agilent (5519b).} and a straightness reflector are fixed on the ground.
|
||||||
@ -3345,7 +3347,7 @@ A similar setup was used to measure the horizontal deviation (i.e. in the \(x\)
|
|||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1]{figs/ustation_errors_ty_setup.png}
|
\includegraphics[scale=1]{figs/ustation_errors_ty_setup.png}
|
||||||
\caption{\label{fig:ustation_errors_ty_setup}Experimental setup to measure the flatness (vertical deviation) of the translation stage}
|
\caption{\label{fig:ustation_errors_ty_setup}Experimental setup to measure the straightness (vertical deviation) of the translation stage}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Six scans were performed between \(-4.5\,mm\) and \(4.5\,mm\).
|
Six scans were performed between \(-4.5\,mm\) and \(4.5\,mm\).
|
||||||
@ -3370,7 +3372,7 @@ Similar result is obtained for the \(x\) lateral direction.
|
|||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\caption{\label{fig:ustation_errors_dy}Measurement of the linear (vertical) deviation of the Translation stage (\subref{fig:ustation_errors_dy_vertical}). A linear fit is then removed from the data (\subref{fig:ustation_errors_dy_vertical_remove_mean}).}
|
\caption{\label{fig:ustation_errors_dy}Measurement of the linear (vertical) deviation of the Translation stage (\subref{fig:ustation_errors_dy_vertical}). A linear fit is then removed from the data (\subref{fig:ustation_errors_dy_vertical_remove_mean}).}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\paragraph{Spindle}
|
\item Spindle
|
||||||
|
|
||||||
To measure the positioning errors induced by the Spindle, a ``Spindle error analyzer''\footnote{The Spindle Error Analyzer is made by Lion Precision.} is used as shown in Figure \ref{fig:ustation_rz_meas_lion_setup}.
|
To measure the positioning errors induced by the Spindle, a ``Spindle error analyzer''\footnote{The Spindle Error Analyzer is made by Lion Precision.} is used as shown in Figure \ref{fig:ustation_rz_meas_lion_setup}.
|
||||||
A specific target is fixed on top of the micro-station, which consists of two sphere with 1 inch diameter precisely aligned with the spindle rotation axis.
|
A specific target is fixed on top of the micro-station, which consists of two sphere with 1 inch diameter precisely aligned with the spindle rotation axis.
|
||||||
@ -3422,6 +3424,7 @@ The vertical motion induced by scanning the spindle is in the order of \(\pm 30\
|
|||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\caption{\label{fig:ustation_errors_spindle}Measurement of the radial (\subref{fig:ustation_errors_spindle_radial}), axial (\subref{fig:ustation_errors_spindle_axial}) and tilt (\subref{fig:ustation_errors_spindle_tilt}) Spindle errors during a 60rpm spindle rotation. The circular best fit is shown by the dashed circle. It represents the misalignment of the spheres with the rotation axis.}
|
\caption{\label{fig:ustation_errors_spindle}Measurement of the radial (\subref{fig:ustation_errors_spindle_radial}), axial (\subref{fig:ustation_errors_spindle_axial}) and tilt (\subref{fig:ustation_errors_spindle_tilt}) Spindle errors during a 60rpm spindle rotation. The circular best fit is shown by the dashed circle. It represents the misalignment of the spheres with the rotation axis.}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
\end{enumerate}
|
||||||
\subsubsection{Sensitivity to disturbances}
|
\subsubsection{Sensitivity to disturbances}
|
||||||
\label{ssec:ustation_disturbances_sensitivity}
|
\label{ssec:ustation_disturbances_sensitivity}
|
||||||
|
|
||||||
@ -3480,7 +3483,7 @@ The obtained power spectral density of the disturbances are shown in Figure \ref
|
|||||||
|
|
||||||
The disturbances are characterized by their power spectral densities, as shown in Figure \ref{fig:ustation_dist_sources}.
|
The disturbances are characterized by their power spectral densities, as shown in Figure \ref{fig:ustation_dist_sources}.
|
||||||
However, to perform time domain simulations, disturbances must be represented by a time domain signal.
|
However, to perform time domain simulations, disturbances must be represented by a time domain signal.
|
||||||
To generate stochastic time-domain signals with a specific power spectral densities, the discrete inverse Fourier transform is used, as explained in \cite[chap. 12.11]{preumont94_random_vibrat_spect_analy}.
|
To generate stochastic time-domain signals with a specific power spectral density, the discrete inverse Fourier transform is used, as explained in \cite[chap. 12.11]{preumont94_random_vibrat_spect_analy}.
|
||||||
Examples of the obtained time-domain disturbance signals are shown in Figure \ref{fig:ustation_dist_sources_time}.
|
Examples of the obtained time-domain disturbance signals are shown in Figure \ref{fig:ustation_dist_sources_time}.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
@ -3535,7 +3538,7 @@ A good correlation with the measurements is observed both for radial errors (Fig
|
|||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\caption{\label{fig:ustation_errors_model_spindle}Simulation results for a tomography experiment at constant velocity of 60rpm. The comparison is made with measurements for both radial (\subref{fig:ustation_errors_model_spindle_radial}) and axial errors (\subref{fig:ustation_errors_model_spindle_axial}).}
|
\caption{\label{fig:ustation_errors_model_spindle}Simulation results for a tomography experiment at constant velocity of 60rpm. The comparison is made with measurements for both radial (\subref{fig:ustation_errors_model_spindle_radial}) and axial errors (\subref{fig:ustation_errors_model_spindle_axial}).}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\subsubsection{Raster Scans with the translation stage}
|
\subsubsection{Scans with the translation stage}
|
||||||
\label{sec:ustation_experiments_ty_scans}
|
\label{sec:ustation_experiments_ty_scans}
|
||||||
|
|
||||||
A second experiment was performed in which the translation stage was scanned at constant velocity.
|
A second experiment was performed in which the translation stage was scanned at constant velocity.
|
||||||
@ -3823,7 +3826,8 @@ This is summarized in Figure \ref{fig:nhexa_stewart_notations}.
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
\subsubsection{Kinematic Analysis}
|
\subsubsection{Kinematic Analysis}
|
||||||
\label{ssec:nhexa_stewart_platform_kinematics}
|
\label{ssec:nhexa_stewart_platform_kinematics}
|
||||||
\paragraph{Loop Closure}
|
\begin{enumerate}
|
||||||
|
\item Loop Closure
|
||||||
|
|
||||||
The foundation of the kinematic analysis lies in the geometric constraints imposed by each strut, which can be expressed using loop closure equations.
|
The foundation of the kinematic analysis lies in the geometric constraints imposed by each strut, which can be expressed using loop closure equations.
|
||||||
For each strut \(i\) (illustrated in Figure \ref{fig:nhexa_stewart_loop_closure}), the loop closure equation \eqref{eq:nhexa_loop_closure} can be written.
|
For each strut \(i\) (illustrated in Figure \ref{fig:nhexa_stewart_loop_closure}), the loop closure equation \eqref{eq:nhexa_loop_closure} can be written.
|
||||||
@ -3839,19 +3843,19 @@ This equation links the pose\footnote{The \emph{pose} represents the position an
|
|||||||
\includegraphics[scale=1]{figs/nhexa_stewart_loop_closure.png}
|
\includegraphics[scale=1]{figs/nhexa_stewart_loop_closure.png}
|
||||||
\caption{\label{fig:nhexa_stewart_loop_closure}Notations to compute the kinematic loop closure}
|
\caption{\label{fig:nhexa_stewart_loop_closure}Notations to compute the kinematic loop closure}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\paragraph{Inverse Kinematics}
|
\item Inverse Kinematics
|
||||||
|
|
||||||
The inverse kinematic problem involves determining the required strut lengths \(\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^T\) for a desired platform pose \(\bm{\mathcal{X}}\) (i.e. position \({}^A\bm{P}\) and orientation \({}^A\bm{R}_B\)).
|
The inverse kinematic problem involves determining the required strut lengths \(\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^{\intercal}\) for a desired platform pose \(\bm{\mathcal{X}}\) (i.e. position \({}^A\bm{P}\) and orientation \({}^A\bm{R}_B\)).
|
||||||
This problem can be solved analytically using the loop closure equations \eqref{eq:nhexa_loop_closure}.
|
This problem can be solved analytically using the loop closure equations \eqref{eq:nhexa_loop_closure}.
|
||||||
The obtained strut lengths are given by \eqref{eq:nhexa_inverse_kinematics}.
|
The obtained strut lengths are given by \eqref{eq:nhexa_inverse_kinematics}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_inverse_kinematics}
|
\begin{equation}\label{eq:nhexa_inverse_kinematics}
|
||||||
l_i = \sqrt{{}^A\bm{P}^T {}^A\bm{P} + {}^B\bm{b}_i^T {}^B\bm{b}_i + {}^A\bm{a}_i^T {}^A\bm{a}_i - 2 {}^A\bm{P}^T {}^A\bm{a}_i + 2 {}^A\bm{P}^T \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^T {}^A\bm{a}_i}
|
l_i = \sqrt{{}^A\bm{P}^{\intercal} {}^A\bm{P} + {}^B\bm{b}_i^{\intercal} {}^B\bm{b}_i + {}^A\bm{a}_i^{\intercal} {}^A\bm{a}_i - 2 {}^A\bm{P}^{\intercal} {}^A\bm{a}_i + 2 {}^A\bm{P}^{\intercal} \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^{\intercal} {}^A\bm{a}_i}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
|
If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
|
||||||
While configurations outside this workspace yield complex numbers, this only becomes relevant for large displacements that far exceed the nano-hexapod's operating range.
|
While configurations outside this workspace yield complex numbers, this only becomes relevant for large displacements that far exceed the nano-hexapod's operating range.
|
||||||
\paragraph{Forward Kinematics}
|
\item Forward Kinematics
|
||||||
|
|
||||||
The forward kinematic problem seeks to determine the platform pose \(\bm{\mathcal{X}}\) given a set of strut lengths \(\bm{\mathcal{L}}\).
|
The forward kinematic problem seeks to determine the platform pose \(\bm{\mathcal{X}}\) given a set of strut lengths \(\bm{\mathcal{L}}\).
|
||||||
Unlike inverse kinematics, this presents a significant challenge because it requires solving a system of nonlinear equations.
|
Unlike inverse kinematics, this presents a significant challenge because it requires solving a system of nonlinear equations.
|
||||||
@ -3859,11 +3863,13 @@ Although various numerical methods exist for solving this problem, they can be c
|
|||||||
|
|
||||||
For the nano-hexapod application, where displacements are typically small, an approximate solution based on linearization around the operating point provides a practical alternative.
|
For the nano-hexapod application, where displacements are typically small, an approximate solution based on linearization around the operating point provides a practical alternative.
|
||||||
This approximation, which is developed in subsequent sections through the Jacobian matrix analysis, is particularly useful for real-time control applications.
|
This approximation, which is developed in subsequent sections through the Jacobian matrix analysis, is particularly useful for real-time control applications.
|
||||||
|
\end{enumerate}
|
||||||
\subsubsection{The Jacobian Matrix}
|
\subsubsection{The Jacobian Matrix}
|
||||||
\label{ssec:nhexa_stewart_platform_jacobian}
|
\label{ssec:nhexa_stewart_platform_jacobian}
|
||||||
The Jacobian matrix plays a central role in analyzing the Stewart platform's behavior, providing a linear mapping between the platform and actuator velocities.
|
The Jacobian matrix plays a central role in analyzing the Stewart platform's behavior, providing a linear mapping between the platform and actuator velocities.
|
||||||
While the previously derived kinematic relationships are essential for position analysis, the Jacobian enables velocity analysis and forms the foundation for both static and dynamic studies.
|
While the previously derived kinematic relationships are essential for position analysis, the Jacobian enables velocity analysis and forms the foundation for both static and dynamic studies.
|
||||||
\paragraph{Jacobian Computation}
|
\begin{enumerate}
|
||||||
|
\item Jacobian Computation
|
||||||
|
|
||||||
As discussed in Section \ref{ssec:nhexa_stewart_platform_kinematics}, the strut lengths \(\bm{\mathcal{L}}\) and the platform pose \(\bm{\mathcal{X}}\) are related through a system of nonlinear algebraic equations representing the kinematic constraints imposed by the struts.
|
As discussed in Section \ref{ssec:nhexa_stewart_platform_kinematics}, the strut lengths \(\bm{\mathcal{L}}\) and the platform pose \(\bm{\mathcal{X}}\) are related through a system of nonlinear algebraic equations representing the kinematic constraints imposed by the struts.
|
||||||
|
|
||||||
@ -3885,7 +3891,7 @@ By multiplying both sides by \({}^A\hat{\bm{s}}_i\), \eqref{eq:nhexa_loop_closur
|
|||||||
{}^A\hat{\bm{s}}_i {}^A\bm{v}_p + \underbrace{{}^A\hat{\bm{s}}_i ({}^A\bm{\omega} \times {}^A\bm{b}_i)}_{=({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) {}^A\bm{\omega}} = \dot{l}_i + \underbrace{{}^A\hat{s}_i l_i \left( {}^A\bm{\omega}_i \times {}^A\hat{\bm{s}}_i \right)}_{=0}
|
{}^A\hat{\bm{s}}_i {}^A\bm{v}_p + \underbrace{{}^A\hat{\bm{s}}_i ({}^A\bm{\omega} \times {}^A\bm{b}_i)}_{=({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) {}^A\bm{\omega}} = \dot{l}_i + \underbrace{{}^A\hat{s}_i l_i \left( {}^A\bm{\omega}_i \times {}^A\hat{\bm{s}}_i \right)}_{=0}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Equation \eqref{eq:nhexa_loop_closure_velocity_bis} can be rearranged in matrix form to obtain \eqref{eq:nhexa_jacobian_velocities}, with \(\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^T\) the vector of strut velocities, and \(\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^T\) the vector of platform velocity and angular velocity.
|
Equation \eqref{eq:nhexa_loop_closure_velocity_bis} can be rearranged in matrix form to obtain \eqref{eq:nhexa_jacobian_velocities}, with \(\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^{\intercal}\) the vector of strut velocities, and \(\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^{\intercal}\) the vector of platform velocity and angular velocity.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_jacobian_velocities}
|
\begin{equation}\label{eq:nhexa_jacobian_velocities}
|
||||||
\boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
|
\boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
|
||||||
@ -3895,20 +3901,20 @@ The matrix \(\bm{J}\) is called the Jacobian matrix and is defined by \eqref{eq:
|
|||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_jacobian}
|
\begin{equation}\label{eq:nhexa_jacobian}
|
||||||
\bm{J} = \begin{bmatrix}
|
\bm{J} = \begin{bmatrix}
|
||||||
{{}^A\hat{\bm{s}}_1}^T & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^T \\
|
{{}^A\hat{\bm{s}}_1}^{\intercal} & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_2}^T & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^T \\
|
{{}^A\hat{\bm{s}}_2}^{\intercal} & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_3}^T & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^T \\
|
{{}^A\hat{\bm{s}}_3}^{\intercal} & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_4}^T & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^T \\
|
{{}^A\hat{\bm{s}}_4}^{\intercal} & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_5}^T & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^T \\
|
{{}^A\hat{\bm{s}}_5}^{\intercal} & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_6}^T & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^T
|
{{}^A\hat{\bm{s}}_6}^{\intercal} & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^{\intercal}
|
||||||
\end{bmatrix}
|
\end{bmatrix}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Therefore, the Jacobian matrix \(\bm{J}\) links the rate of change of the strut length to the velocity and angular velocity of the top platform with respect to the fixed base through a set of linear equations.
|
Therefore, the Jacobian matrix \(\bm{J}\) links the rate of change of the strut length to the velocity and angular velocity of the top platform with respect to the fixed base through a set of linear equations.
|
||||||
However, \(\bm{J}\) needs to be recomputed for every Stewart platform pose because it depends on the actual pose of the manipulator.
|
However, \(\bm{J}\) needs to be recomputed for every Stewart platform pose because it depends on the actual pose of the manipulator.
|
||||||
\paragraph{Approximate solution to the Forward and Inverse Kinematic problems}
|
\item Approximate solution to the Forward and Inverse Kinematic problems
|
||||||
|
|
||||||
For small displacements \(\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^T\) around an operating point \(\bm{\mathcal{X}}_0\) (for which the Jacobian was computed), the associated joint displacement \(\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^T\) can be computed using the Jacobian \eqref{eq:nhexa_inverse_kinematics_approximate}.
|
For small displacements \(\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^{\intercal}\) around an operating point \(\bm{\mathcal{X}}_0\) (for which the Jacobian was computed), the associated joint displacement \(\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^{\intercal}\) can be computed using the Jacobian \eqref{eq:nhexa_inverse_kinematics_approximate}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_inverse_kinematics_approximate}
|
\begin{equation}\label{eq:nhexa_inverse_kinematics_approximate}
|
||||||
\boxed{\delta\bm{\mathcal{L}} = \bm{J} \delta\bm{\mathcal{X}}}
|
\boxed{\delta\bm{\mathcal{L}} = \bm{J} \delta\bm{\mathcal{X}}}
|
||||||
@ -3922,7 +3928,7 @@ Similarly, for small joint displacements \(\delta\bm{\mathcal{L}}\), it is possi
|
|||||||
|
|
||||||
These two relations solve the forward and inverse kinematic problems for small displacement in a \emph{approximate} way.
|
These two relations solve the forward and inverse kinematic problems for small displacement in a \emph{approximate} way.
|
||||||
While this approximation offers limited value for inverse kinematics, which can be solved analytically, it proves particularly useful for the forward kinematic problem where exact analytical solutions are difficult to obtain.
|
While this approximation offers limited value for inverse kinematics, which can be solved analytically, it proves particularly useful for the forward kinematic problem where exact analytical solutions are difficult to obtain.
|
||||||
\paragraph{Range validity of the approximate inverse kinematics}
|
\item Range validity of the approximate inverse kinematics
|
||||||
|
|
||||||
The accuracy of the Jacobian-based forward kinematics solution was estimated by a simple analysis.
|
The accuracy of the Jacobian-based forward kinematics solution was estimated by a simple analysis.
|
||||||
For a series of platform positions, the exact strut lengths are computed using the analytical inverse kinematics equation \eqref{eq:nhexa_inverse_kinematics}.
|
For a series of platform positions, the exact strut lengths are computed using the analytical inverse kinematics equation \eqref{eq:nhexa_inverse_kinematics}.
|
||||||
@ -3939,35 +3945,36 @@ It can be computed once at the rest position and used for both forward and inver
|
|||||||
\includegraphics[scale=1]{figs/nhexa_forward_kinematics_approximate_errors.png}
|
\includegraphics[scale=1]{figs/nhexa_forward_kinematics_approximate_errors.png}
|
||||||
\caption{\label{fig:nhexa_forward_kinematics_approximate_errors}Errors associated with the use of the Jacobian matrix to solve the forward kinematic problem. A Stewart platform with a height of \(100\,mm\) was used to perform this analysis. \(\epsilon_D\) corresponds to the distance between the true positioin and the estimated position. \(\epsilon_R\) corresponds to the angular motion between the true orientation and the estimated orientation.}
|
\caption{\label{fig:nhexa_forward_kinematics_approximate_errors}Errors associated with the use of the Jacobian matrix to solve the forward kinematic problem. A Stewart platform with a height of \(100\,mm\) was used to perform this analysis. \(\epsilon_D\) corresponds to the distance between the true positioin and the estimated position. \(\epsilon_R\) corresponds to the angular motion between the true orientation and the estimated orientation.}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\paragraph{Static Forces}
|
\item Static Forces
|
||||||
|
|
||||||
The static force analysis of the Stewart platform can be performed using the principle of virtual work.
|
The static force analysis of the Stewart platform can be performed using the principle of virtual work.
|
||||||
This principle states that for a system in static equilibrium, the total virtual work of all forces acting on the system must be zero for any virtual displacement compatible with the system's constraints.
|
This principle states that for a system in static equilibrium, the total virtual work of all forces acting on the system must be zero for any virtual displacement compatible with the system's constraints.
|
||||||
|
|
||||||
Let \(\bm{f} = [f_1, f_2, \cdots, f_6]^T\) represent the vector of actuator forces applied in each strut, and \(\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^T\) denote the external wrench (combined force \(\bm{F}\) and torque \(\bm{n}\)) acting on the mobile platform at point \(\bm{O}_B\).
|
Let \(\bm{f} = [f_1, f_2, \cdots, f_6]^{\intercal}\) represent the vector of actuator forces applied in each strut, and \(\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^{\intercal}\) denote the external wrench (combined force \(\bm{F}\) and torque \(\bm{n}\)) acting on the mobile platform at point \(\bm{O}_B\).
|
||||||
The virtual work \(\delta W\) consists of two contributions:
|
The virtual work \(\delta W\) consists of two contributions:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item The work performed by the actuator forces through virtual strut displacements \(\delta \bm{\mathcal{L}}\): \(\bm{f}^T \delta \bm{\mathcal{L}}\)
|
\item The work performed by the actuator forces through virtual strut displacements \(\delta \bm{\mathcal{L}}\): \(\bm{f}^{\intercal} \delta \bm{\mathcal{L}}\)
|
||||||
\item The work performed by the external wrench through virtual platform displacements \(\delta \bm{\mathcal{X}}\): \(-\bm{\mathcal{F}}^T \delta \bm{\mathcal{X}}\)
|
\item The work performed by the external wrench through virtual platform displacements \(\delta \bm{\mathcal{X}}\): \(-\bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}}\)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Thus, the principle of virtual work can be expressed as:
|
Thus, the principle of virtual work can be expressed as:
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\delta W = \bm{f}^T \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^T \delta \bm{\mathcal{X}} = 0
|
\delta W = \bm{f}^{\intercal} \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}} = 0
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Using the Jacobian relationship that links virtual displacements \eqref{eq:nhexa_inverse_kinematics_approximate}, this equation becomes:
|
Using the Jacobian relationship that links virtual displacements \eqref{eq:nhexa_inverse_kinematics_approximate}, this equation becomes:
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\left( \bm{f}^T \bm{J} - \bm{\mathcal{F}}^T \right) \delta \bm{\mathcal{X}} = 0
|
\left( \bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} \right) \delta \bm{\mathcal{X}} = 0
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Because this equation must hold for any virtual displacement \(\delta \bm{\mathcal{X}}\), the force mapping relationships \eqref{eq:nhexa_jacobian_forces} can be derived.
|
Because this equation must hold for any virtual displacement \(\delta \bm{\mathcal{X}}\), the force mapping relationships \eqref{eq:nhexa_jacobian_forces} can be derived.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_jacobian_forces}
|
\begin{equation}\label{eq:nhexa_jacobian_forces}
|
||||||
\bm{f}^T \bm{J} - \bm{\mathcal{F}}^T = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^T \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-T} \bm{\mathcal{F}}}
|
\bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^{\intercal} \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-T} \bm{\mathcal{F}}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
These equations establish that the transpose of the Jacobian matrix maps actuator forces to platform forces and torques, while its inverse transpose maps platform forces and torques to required actuator forces.
|
These equations establish that the transpose of the Jacobian matrix maps actuator forces to platform forces and torques, while its inverse transpose maps platform forces and torques to required actuator forces.
|
||||||
|
\end{enumerate}
|
||||||
\subsubsection{Static Analysis}
|
\subsubsection{Static Analysis}
|
||||||
\label{ssec:nhexa_stewart_platform_static}
|
\label{ssec:nhexa_stewart_platform_static}
|
||||||
|
|
||||||
@ -3987,14 +3994,14 @@ These individual relationships can be combined into a matrix form using the diag
|
|||||||
By applying the force mapping relationships \eqref{eq:nhexa_jacobian_forces} derived in the previous section and the Jacobian relationship for small displacements \eqref{eq:nhexa_forward_kinematics_approximate}, the relationship between applied wrench \(\bm{\mathcal{F}}\) and resulting platform displacement \(\delta \bm{\mathcal{X}}\) is obtained \eqref{eq:nhexa_stiffness_matrix}.
|
By applying the force mapping relationships \eqref{eq:nhexa_jacobian_forces} derived in the previous section and the Jacobian relationship for small displacements \eqref{eq:nhexa_forward_kinematics_approximate}, the relationship between applied wrench \(\bm{\mathcal{F}}\) and resulting platform displacement \(\delta \bm{\mathcal{X}}\) is obtained \eqref{eq:nhexa_stiffness_matrix}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_stiffness_matrix}
|
\begin{equation}\label{eq:nhexa_stiffness_matrix}
|
||||||
\bm{\mathcal{F}} = \underbrace{\bm{J}^T \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
\bm{\mathcal{F}} = \underbrace{\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
where \(\bm{K} = \bm{J}^T \bm{\mathcal{K}} \bm{J}\) is identified as the platform stiffness matrix.
|
where \(\bm{K} = \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}\) is identified as the platform stiffness matrix.
|
||||||
|
|
||||||
The inverse relationship is given by the compliance matrix \(\bm{C}\):
|
The inverse relationship is given by the compliance matrix \(\bm{C}\):
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^T \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
These relationships reveal that the overall platform stiffness and compliance characteristics are determined by two factors:
|
These relationships reveal that the overall platform stiffness and compliance characteristics are determined by two factors:
|
||||||
@ -4024,19 +4031,19 @@ where \(\bm{M}\) represents the platform mass matrix, \(\bm{\mathcal{X}}\) the p
|
|||||||
The primary forces acting on the system are actuator forces \(\bm{f}\), elastic forces due to strut stiffness \(-\bm{\mathcal{K}} \bm{\mathcal{L}}\) and damping forces in the struts \(\bm{\mathcal{C}} \dot{\bm{\mathcal{L}}}\).
|
The primary forces acting on the system are actuator forces \(\bm{f}\), elastic forces due to strut stiffness \(-\bm{\mathcal{K}} \bm{\mathcal{L}}\) and damping forces in the struts \(\bm{\mathcal{C}} \dot{\bm{\mathcal{L}}}\).
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\Sigma \bm{\mathcal{F}} = \bm{J}^T (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
\Sigma \bm{\mathcal{F}} = \bm{J}^{\intercal} (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Combining these forces and using \eqref{eq:nhexa_forward_kinematics_approximate} yields the complete dynamic equation \eqref{eq:nhexa_dynamical_equations}.
|
Combining these forces and using \eqref{eq:nhexa_forward_kinematics_approximate} yields the complete dynamic equation \eqref{eq:nhexa_dynamical_equations}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_dynamical_equations}
|
\begin{equation}\label{eq:nhexa_dynamical_equations}
|
||||||
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^T \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^T \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
The transfer function matrix in the Cartesian frame becomes \eqref{eq:nhexa_transfer_function_cart}.
|
The transfer function matrix in the Cartesian frame becomes \eqref{eq:nhexa_transfer_function_cart}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:nhexa_transfer_function_cart}
|
\begin{equation}\label{eq:nhexa_transfer_function_cart}
|
||||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{T} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{T} \bm{\mathcal{K}} \bm{J} )^{-1}
|
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Through coordinate transformation using the Jacobian matrix, the dynamics in the actuator space is obtained \eqref{eq:nhexa_transfer_function_struts}.
|
Through coordinate transformation using the Jacobian matrix, the dynamics in the actuator space is obtained \eqref{eq:nhexa_transfer_function_struts}.
|
||||||
@ -4079,7 +4086,8 @@ The model is then validated through comparison with the analytical equations in
|
|||||||
Finally, the validated model is employed to analyze the nano-hexapod dynamics, from which insights for the control system design are derived (Section \ref{ssec:nhexa_model_dynamics}).
|
Finally, the validated model is employed to analyze the nano-hexapod dynamics, from which insights for the control system design are derived (Section \ref{ssec:nhexa_model_dynamics}).
|
||||||
\subsubsection{Model Definition}
|
\subsubsection{Model Definition}
|
||||||
\label{ssec:nhexa_model_def}
|
\label{ssec:nhexa_model_def}
|
||||||
\paragraph{Geometry}
|
\begin{enumerate}
|
||||||
|
\item Geometry
|
||||||
|
|
||||||
The Stewart platform's geometry is defined by two principal coordinate frames (Figure \ref{fig:nhexa_stewart_model_def}): a fixed base frame \(\{F\}\) and a moving platform frame \(\{M\}\).
|
The Stewart platform's geometry is defined by two principal coordinate frames (Figure \ref{fig:nhexa_stewart_model_def}): a fixed base frame \(\{F\}\) and a moving platform frame \(\{M\}\).
|
||||||
The joints connecting the actuators to these frames are located at positions \({}^F\bm{a}_i\) and \({}^M\bm{b}_i\) respectively.
|
The joints connecting the actuators to these frames are located at positions \({}^F\bm{a}_i\) and \({}^M\bm{b}_i\) respectively.
|
||||||
@ -4122,13 +4130,13 @@ From these parameters, key kinematic properties can be derived: the strut orient
|
|||||||
\captionof{table}{\label{tab:nhexa_stewart_model_geometry}Parameter values in [mm]}
|
\captionof{table}{\label{tab:nhexa_stewart_model_geometry}Parameter values in [mm]}
|
||||||
\end{scriptsize}
|
\end{scriptsize}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\paragraph{Inertia of Plates}
|
\item Inertia of Plates
|
||||||
|
|
||||||
The fixed base and moving platform were modeled as solid cylindrical bodies.
|
The fixed base and moving platform were modeled as solid cylindrical bodies.
|
||||||
The base platform was characterized by a radius of \(120\,mm\) and thickness of \(15\,mm\), matching the dimensions of the micro-hexapod's top platform.
|
The base platform was characterized by a radius of \(120\,mm\) and thickness of \(15\,mm\), matching the dimensions of the micro-hexapod's top platform.
|
||||||
The moving platform was similarly modeled with a radius of \(110\,mm\) and thickness of \(15\,mm\).
|
The moving platform was similarly modeled with a radius of \(110\,mm\) and thickness of \(15\,mm\).
|
||||||
Both platforms were assigned a mass of \(5\,kg\).
|
Both platforms were assigned a mass of \(5\,kg\).
|
||||||
\paragraph{Joints}
|
\item Joints
|
||||||
|
|
||||||
The platform's joints play a crucial role in its dynamic behavior.
|
The platform's joints play a crucial role in its dynamic behavior.
|
||||||
At both the upper and lower connection points, various degrees of freedom can be modeled, including universal joints, spherical joints, and configurations with additional axial and lateral stiffness components.
|
At both the upper and lower connection points, various degrees of freedom can be modeled, including universal joints, spherical joints, and configurations with additional axial and lateral stiffness components.
|
||||||
@ -4136,7 +4144,7 @@ For each degree of freedom, stiffness characteristics can be incorporated into t
|
|||||||
|
|
||||||
In the conceptual design phase, a simplified joint configuration is employed: the bottom joints are modeled as two-degree-of-freedom universal joints, while the top joints are represented as three-degree-of-freedom spherical joints.
|
In the conceptual design phase, a simplified joint configuration is employed: the bottom joints are modeled as two-degree-of-freedom universal joints, while the top joints are represented as three-degree-of-freedom spherical joints.
|
||||||
These joints are considered massless and exhibit no stiffness along their degrees of freedom.
|
These joints are considered massless and exhibit no stiffness along their degrees of freedom.
|
||||||
\paragraph{Actuators}
|
\item Actuators
|
||||||
|
|
||||||
The actuator model comprises several key elements (Figure \ref{fig:nhexa_actuator_model}).
|
The actuator model comprises several key elements (Figure \ref{fig:nhexa_actuator_model}).
|
||||||
At its core, each actuator is modeled as a prismatic joint with internal stiffness \(k_a\) and damping \(c_a\), driven by a force source \(f\).
|
At its core, each actuator is modeled as a prismatic joint with internal stiffness \(k_a\) and damping \(c_a\), driven by a force source \(f\).
|
||||||
@ -4169,6 +4177,7 @@ This modular approach to actuator modeling allows for future refinements as the
|
|||||||
\captionof{table}{\label{tab:nhexa_actuator_parameters}Actuator parameters}
|
\captionof{table}{\label{tab:nhexa_actuator_parameters}Actuator parameters}
|
||||||
\end{scriptsize}
|
\end{scriptsize}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
|
\end{enumerate}
|
||||||
\subsubsection{Validation of the multi-body model}
|
\subsubsection{Validation of the multi-body model}
|
||||||
\label{ssec:nhexa_model_validation}
|
\label{ssec:nhexa_model_validation}
|
||||||
|
|
||||||
@ -4233,7 +4242,7 @@ This reduction from six to four observable modes is attributed to the system's s
|
|||||||
The system's behavior can be characterized in three frequency regions.
|
The system's behavior can be characterized in three frequency regions.
|
||||||
At low frequencies, well below the first resonance, the plant demonstrates good decoupling between actuators, with the response dominated by the strut stiffness: \(\bm{G}(j\omega) \xrightarrow[\omega \to 0]{} \bm{\mathcal{K}}^{-1}\).
|
At low frequencies, well below the first resonance, the plant demonstrates good decoupling between actuators, with the response dominated by the strut stiffness: \(\bm{G}(j\omega) \xrightarrow[\omega \to 0]{} \bm{\mathcal{K}}^{-1}\).
|
||||||
In the mid-frequency range, the system exhibits coupled dynamics through its resonant modes, reflecting the complex interactions between the platform's degrees of freedom.
|
In the mid-frequency range, the system exhibits coupled dynamics through its resonant modes, reflecting the complex interactions between the platform's degrees of freedom.
|
||||||
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: \(\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-T} \bm{J}^T \frac{-1}{\omega^2}\)
|
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: \(\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-T} \bm{J}^{\intercal} \frac{-1}{\omega^2}\)
|
||||||
|
|
||||||
The force sensor transfer functions, shown in Figure \ref{fig:nhexa_multi_body_plant_fm}, display characteristics typical of collocated actuator-sensor pairs.
|
The force sensor transfer functions, shown in Figure \ref{fig:nhexa_multi_body_plant_fm}, display characteristics typical of collocated actuator-sensor pairs.
|
||||||
Each actuator's transfer function to its associated force sensor exhibits alternating complex conjugate poles and zeros.
|
Each actuator's transfer function to its associated force sensor exhibits alternating complex conjugate poles and zeros.
|
||||||
@ -4304,7 +4313,8 @@ In the context of the nano-hexapod, two distinct control strategies were examine
|
|||||||
|
|
||||||
When controlling a Stewart platform using external metrology that measures the pose of frame \(\{B\}\) with respect to \(\{A\}\), denoted as \(\bm{\mathcal{X}}\), the control architecture can be implemented in either Cartesian or strut space.
|
When controlling a Stewart platform using external metrology that measures the pose of frame \(\{B\}\) with respect to \(\{A\}\), denoted as \(\bm{\mathcal{X}}\), the control architecture can be implemented in either Cartesian or strut space.
|
||||||
This choice affects both the control design and the obtained performance.
|
This choice affects both the control design and the obtained performance.
|
||||||
\paragraph{Control in the Strut space}
|
\begin{enumerate}
|
||||||
|
\item Control in the Strut space
|
||||||
|
|
||||||
In this approach, as illustrated in Figure \ref{fig:nhexa_control_strut}, the control is performed in the space of the struts.
|
In this approach, as illustrated in Figure \ref{fig:nhexa_control_strut}, the control is performed in the space of the struts.
|
||||||
The Jacobian matrix is used to solve the inverse kinematics in real-time by mapping position errors from Cartesian space \(\bm{\epsilon}_{\mathcal{X}}\) to strut space \(\bm{\epsilon}_{\mathcal{L}}\).
|
The Jacobian matrix is used to solve the inverse kinematics in real-time by mapping position errors from Cartesian space \(\bm{\epsilon}_{\mathcal{X}}\) to strut space \(\bm{\epsilon}_{\mathcal{L}}\).
|
||||||
@ -4332,7 +4342,7 @@ Furthermore, at low frequencies, the plant exhibits good decoupling between the
|
|||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\caption{\label{fig:nhexa_control_frame}Two control strategies}
|
\caption{\label{fig:nhexa_control_frame}Two control strategies}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\paragraph{Control in Cartesian Space}
|
\item Control in Cartesian Space
|
||||||
|
|
||||||
Alternatively, control can be implemented directly in Cartesian space, as illustrated in Figure \ref{fig:nhexa_control_cartesian}.
|
Alternatively, control can be implemented directly in Cartesian space, as illustrated in Figure \ref{fig:nhexa_control_cartesian}.
|
||||||
Here, the controller processes Cartesian errors \(\bm{\epsilon}_{\mathcal{X}}\) to generate forces and torques \(\bm{\mathcal{F}}\), which are then mapped to actuator forces using the transpose of the inverse Jacobian matrix \eqref{eq:nhexa_jacobian_forces}.
|
Here, the controller processes Cartesian errors \(\bm{\epsilon}_{\mathcal{X}}\) to generate forces and torques \(\bm{\mathcal{F}}\), which are then mapped to actuator forces using the transpose of the inverse Jacobian matrix \eqref{eq:nhexa_jacobian_forces}.
|
||||||
@ -4362,6 +4372,7 @@ More sophisticated control strategies will be explored during the detailed desig
|
|||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\caption{\label{fig:nhexa_plant_frame}Bode plot of the transfer functions computed from the nano-hexapod multi-body model}
|
\caption{\label{fig:nhexa_plant_frame}Bode plot of the transfer functions computed from the nano-hexapod multi-body model}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
\end{enumerate}
|
||||||
\subsubsection{Active Damping with Decentralized IFF}
|
\subsubsection{Active Damping with Decentralized IFF}
|
||||||
\label{ssec:nhexa_control_iff}
|
\label{ssec:nhexa_control_iff}
|
||||||
|
|
||||||
@ -5152,12 +5163,12 @@ The analysis is significantly simplified when considering small motions, as the
|
|||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_jacobian}
|
\begin{equation}\label{eq:detail_kinematics_jacobian}
|
||||||
\begin{bmatrix} \delta l_1 \\ \delta l_2 \\ \delta l_3 \\ \delta l_4 \\ \delta l_5 \\ \delta l_6 \end{bmatrix} = \underbrace{\begin{bmatrix}
|
\begin{bmatrix} \delta l_1 \\ \delta l_2 \\ \delta l_3 \\ \delta l_4 \\ \delta l_5 \\ \delta l_6 \end{bmatrix} = \underbrace{\begin{bmatrix}
|
||||||
{{}^A\hat{\bm{s}}_1}^T & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^T \\
|
{{}^A\hat{\bm{s}}_1}^{\intercal} & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_2}^T & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^T \\
|
{{}^A\hat{\bm{s}}_2}^{\intercal} & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_3}^T & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^T \\
|
{{}^A\hat{\bm{s}}_3}^{\intercal} & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_4}^T & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^T \\
|
{{}^A\hat{\bm{s}}_4}^{\intercal} & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_5}^T & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^T \\
|
{{}^A\hat{\bm{s}}_5}^{\intercal} & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^{\intercal} \\
|
||||||
{{}^A\hat{\bm{s}}_6}^T & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^T
|
{{}^A\hat{\bm{s}}_6}^{\intercal} & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^{\intercal}
|
||||||
\end{bmatrix}}_{\bm{J}} \begin{bmatrix} \delta x \\ \delta y \\ \delta z \\ \delta \theta_x \\ \delta \theta_y \\ \delta \theta_z \end{bmatrix}
|
\end{bmatrix}}_{\bm{J}} \begin{bmatrix} \delta x \\ \delta y \\ \delta z \\ \delta \theta_x \\ \delta \theta_y \\ \delta \theta_z \end{bmatrix}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
@ -5265,28 +5276,28 @@ The contribution of joints stiffness is not considered here, as the joints were
|
|||||||
However, theoretical frameworks for evaluating flexible joint contribution to the stiffness matrix have been established in the literature \cite{mcinroy00_desig_contr_flexur_joint_hexap,mcinroy02_model_desig_flexur_joint_stewar}.
|
However, theoretical frameworks for evaluating flexible joint contribution to the stiffness matrix have been established in the literature \cite{mcinroy00_desig_contr_flexur_joint_hexap,mcinroy02_model_desig_flexur_joint_stewar}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix}
|
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix}
|
||||||
\bm{K} = \bm{J}^T \bm{\mathcal{K}} \bm{J}
|
\bm{K} = \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
It is assumed that the stiffness of all struts is the same: \(\bm{\mathcal{K}} = k \cdot \mathbf{I}_6\).
|
It is assumed that the stiffness of all struts is the same: \(\bm{\mathcal{K}} = k \cdot \mathbf{I}_6\).
|
||||||
In that case, the obtained stiffness matrix linearly depends on the strut stiffness \(k\), and is structured as shown in equation \eqref{eq:detail_kinematics_stiffness_matrix_simplified}.
|
In that case, the obtained stiffness matrix linearly depends on the strut stiffness \(k\), and is structured as shown in equation \eqref{eq:detail_kinematics_stiffness_matrix_simplified}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix_simplified}
|
\begin{equation}\label{eq:detail_kinematics_stiffness_matrix_simplified}
|
||||||
\bm{K} = k \bm{J}^T \bm{J} =
|
\bm{K} = k \bm{J}^{\intercal} \bm{J} =
|
||||||
k \left[
|
k \left[
|
||||||
\begin{array}{c|c}
|
\begin{array}{c|c}
|
||||||
\Sigma_{i = 0}^{6} \hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^T & \Sigma_{i = 0}^{6} \bm{\hat{s}}_i \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^T \\
|
\Sigma_{i = 0}^{6} \hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^{\intercal} & \Sigma_{i = 0}^{6} \bm{\hat{s}}_i \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^{\intercal} \\
|
||||||
\hline
|
\hline
|
||||||
\Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot \hat{\bm{s}}_i^T & \Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^T\\
|
\Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot \hat{\bm{s}}_i^{\intercal} & \Sigma_{i = 0}^{6} ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) \cdot ({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i)^{\intercal}\\
|
||||||
\end{array}
|
\end{array}
|
||||||
\right]
|
\right]
|
||||||
\end{equation}
|
\end{equation}
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Translation Stiffness
|
\item Translation Stiffness
|
||||||
|
|
||||||
As shown by equation \eqref{eq:detail_kinematics_stiffness_matrix_simplified}, the translation stiffnesses (the \(3 \times 3\) top left terms of the stiffness matrix) only depend on the orientation of the struts and not their location: \(\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^T\).
|
As shown by equation \eqref{eq:detail_kinematics_stiffness_matrix_simplified}, the translation stiffnesses (the \(3 \times 3\) top left terms of the stiffness matrix) only depend on the orientation of the struts and not their location: \(\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^{\intercal}\).
|
||||||
In the extreme case where all struts are vertical (\(s_i = [0\ 0\ 1]\)), a vertical stiffness of \(6k\) is achieved, but with null stiffness in the horizontal directions.
|
In the extreme case where all struts are vertical (\(s_i = [0\ 0\ 1]\)), a vertical stiffness of \(6k\) is achieved, but with null stiffness in the horizontal directions.
|
||||||
If two struts are aligned with the X axis, two struts with the Y axis, and two struts with the Z axis, then \(\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^T = 2 \bm{I}_3\), resulting in well-distributed stiffness along all directions.
|
If two struts are aligned with the X axis, two struts with the Y axis, and two struts with the Z axis, then \(\hat{\bm{s}}_i \cdot \hat{\bm{s}}_i^{\intercal} = 2 \bm{I}_3\), resulting in well-distributed stiffness along all directions.
|
||||||
This configuration corresponds to the cubic architecture presented in Section \ref{sec:detail_kinematics_cubic}.
|
This configuration corresponds to the cubic architecture presented in Section \ref{sec:detail_kinematics_cubic}.
|
||||||
|
|
||||||
When the struts are oriented more vertically, as shown in Figure \ref{fig:detail_kinematics_stewart_mobility_vert_struts}, the vertical stiffness increases while the horizontal stiffness decreases.
|
When the struts are oriented more vertically, as shown in Figure \ref{fig:detail_kinematics_stewart_mobility_vert_struts}, the vertical stiffness increases while the horizontal stiffness decreases.
|
||||||
@ -5313,7 +5324,7 @@ Under very specific conditions, the equations of motion in the Cartesian frame,
|
|||||||
These conditions are studied in Section \ref{ssec:detail_kinematics_cubic_dynamic}.
|
These conditions are studied in Section \ref{ssec:detail_kinematics_cubic_dynamic}.
|
||||||
|
|
||||||
\begin{equation}\label{eq:detail_kinematics_transfer_function_cart}
|
\begin{equation}\label{eq:detail_kinematics_transfer_function_cart}
|
||||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{T} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{T} \bm{\mathcal{K}} \bm{J} )^{-1}
|
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
In the frame of the struts, the equations of motion \eqref{eq:detail_kinematics_transfer_function_struts} are well decoupled at low frequency.
|
In the frame of the struts, the equations of motion \eqref{eq:detail_kinematics_transfer_function_struts} are well decoupled at low frequency.
|
||||||
@ -5886,7 +5897,7 @@ This specification will guide the design of the flexible joints.
|
|||||||
\subsection{Conclusion}
|
\subsection{Conclusion}
|
||||||
\label{sec:detail_kinematics_conclusion}
|
\label{sec:detail_kinematics_conclusion}
|
||||||
|
|
||||||
This section has explored the optimization of the nano-hexapod geometry for the Nano Active Stabilization System (NASS).
|
This chapter has explored the optimization of the nano-hexapod geometry for the Nano Active Stabilization System (NASS).
|
||||||
|
|
||||||
First, a review of existing Stewart platforms revealed two main geometric categories: cubic architectures, characterized by mutually orthogonal struts arranged along the edges of a cube, and non-cubic architectures with varied strut orientations.
|
First, a review of existing Stewart platforms revealed two main geometric categories: cubic architectures, characterized by mutually orthogonal struts arranged along the edges of a cube, and non-cubic architectures with varied strut orientations.
|
||||||
While cubic architectures are prevalent in the literature and attributed with beneficial properties such as simplified kinematics, uniform stiffness, and reduced cross-coupling, the performed analysis revealed that some of these advantages should be more nuanced or context-dependent than commonly described.
|
While cubic architectures are prevalent in the literature and attributed with beneficial properties such as simplified kinematics, uniform stiffness, and reduced cross-coupling, the performed analysis revealed that some of these advantages should be more nuanced or context-dependent than commonly described.
|
||||||
@ -6803,7 +6814,7 @@ Small Signal Bandwidth \(> 5\,kHz\) & \(6.4\,kHz\) & \(300\,Hz\) & \(30\,kHz\)
|
|||||||
Output Impedance: \(< 3.6\,\Omega\) & n/a & \(50\,\Omega\) & n/a & n/a\\
|
Output Impedance: \(< 3.6\,\Omega\) & n/a & \(50\,\Omega\) & n/a & n/a\\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabularx}
|
\end{tabularx}
|
||||||
\end{table}\footnotetext[26]{\label{org61bd042}The manufacturer proposed to remove the \(50\,\Omega\) output resistor to improve to small signal bandwidth above \(10\,kHz\)}
|
\end{table}\footnotetext[25]{\label{org5e31d8b}The manufacturer proposed to remove the \(50\,\Omega\) output resistor to improve to small signal bandwidth above \(10\,kHz\)}
|
||||||
\subsubsection{ADC and DAC}
|
\subsubsection{ADC and DAC}
|
||||||
Analog-to-digital converters and digital-to-analog converters play key roles in the system, serving as the interface between the digital RT controller and the analog physical plant.
|
Analog-to-digital converters and digital-to-analog converters play key roles in the system, serving as the interface between the digital RT controller and the analog physical plant.
|
||||||
The proper selection of these components is critical for system performance.
|
The proper selection of these components is critical for system performance.
|
||||||
@ -10015,7 +10026,7 @@ The control strategy here is to apply a diagonal control in the frame of the str
|
|||||||
To conduct this interaction analysis, the \acrfull{rga} \(\bm{\Lambda_G}\) is first computed using \eqref{eq:test_id31_rga} for the plant dynamics identified with the multiple payload masses.
|
To conduct this interaction analysis, the \acrfull{rga} \(\bm{\Lambda_G}\) is first computed using \eqref{eq:test_id31_rga} for the plant dynamics identified with the multiple payload masses.
|
||||||
|
|
||||||
\begin{equation}\label{eq:test_id31_rga}
|
\begin{equation}\label{eq:test_id31_rga}
|
||||||
\bm{\Lambda_G}(\omega) = \bm{G}(j\omega) \star \left(\bm{G}(j\omega)^{-1}\right)^{T}, \quad (\star \text{ means element wise multiplication})
|
\bm{\Lambda_G}(\omega) = \bm{G}(j\omega) \star \left(\bm{G}(j\omega)^{-1}\right)^{\intercal}, \quad (\star \text{ means element wise multiplication})
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Then, \acrshort{rga} numbers are computed using \eqref{eq:test_id31_rga_number} and are use as a metric for interaction \cite[chapt. 3.4]{skogestad07_multiv_feedb_contr}.
|
Then, \acrshort{rga} numbers are computed using \eqref{eq:test_id31_rga_number} and are use as a metric for interaction \cite[chapt. 3.4]{skogestad07_multiv_feedb_contr}.
|
||||||
|
@ -24,10 +24,12 @@
|
|||||||
|
|
||||||
** Mathematics
|
** Mathematics
|
||||||
#+begin_src latex
|
#+begin_src latex
|
||||||
|
\usepackage{amssymb}
|
||||||
\usepackage{amsmath}
|
\usepackage{amsmath}
|
||||||
\usepackage{amsthm}
|
\usepackage{amsthm}
|
||||||
\usepackage{bm}
|
\usepackage{bm}
|
||||||
\usepackage{dsfont}
|
\usepackage{dsfont}
|
||||||
|
\usepackage{empheq} % for drawing boxes around equations
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Fix the spacing of =\left= and =\right=.
|
Fix the spacing of =\left= and =\right=.
|
||||||
|