Rework "frequency analysis" section

This commit is contained in:
Thomas Dehaeze 2024-06-26 17:58:36 +02:00
parent f03d226c09
commit 4d0572158d
8 changed files with 1387 additions and 1940 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,138 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="226.342" height="172.059" viewBox="0 0 226.342 172.059">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="226.2" height="173.621" viewBox="0 0 226.2 173.621">
<defs>
<g>
<g id="glyph-0-0">
<path d="M 4.390625 -2.484375 C 4.390625 -3.546875 3.515625 -4.40625 2.484375 -4.40625 C 1.40625 -4.40625 0.5625 -3.515625 0.5625 -2.484375 C 0.5625 -1.421875 1.421875 -0.5625 2.46875 -0.5625 C 3.546875 -0.5625 4.390625 -1.4375 4.390625 -2.484375 Z M 4.390625 -2.484375 "/>
</g>
<g id="glyph-0-1">
<path d="M 4.390625 -2.484375 C 4.390625 -3.53125 3.515625 -4.390625 2.484375 -4.390625 C 1.390625 -4.390625 0.5625 -3.515625 0.5625 -2.484375 C 0.5625 -1.421875 1.421875 -0.5625 2.46875 -0.5625 C 3.546875 -0.5625 4.390625 -1.4375 4.390625 -2.484375 Z M 4.390625 -2.484375 "/>
<path d="M 4.234375 2.375 C 4.234375 2.265625 4.171875 2.265625 4.078125 2.265625 C 3.296875 2.21875 2.921875 1.765625 2.84375 1.40625 C 2.8125 1.296875 2.8125 1.28125 2.8125 0.9375 L 2.8125 -0.5625 C 2.8125 -0.859375 2.8125 -1.359375 2.78125 -1.453125 C 2.65625 -2.109375 2.03125 -2.375 1.640625 -2.484375 C 2.8125 -2.8125 2.8125 -3.515625 2.8125 -3.796875 L 2.8125 -5.59375 C 2.8125 -6.296875 2.8125 -6.515625 3.046875 -6.765625 C 3.21875 -6.9375 3.453125 -7.1875 4.140625 -7.21875 C 4.203125 -7.234375 4.234375 -7.265625 4.234375 -7.328125 C 4.234375 -7.4375 4.15625 -7.4375 4.03125 -7.4375 C 3.046875 -7.4375 2.15625 -6.9375 2.140625 -6.21875 L 2.140625 -4.40625 C 2.140625 -3.46875 2.140625 -3.3125 1.890625 -3.03125 C 1.75 -2.890625 1.484375 -2.625 0.859375 -2.59375 C 0.78125 -2.59375 0.71875 -2.578125 0.71875 -2.484375 C 0.71875 -2.375 0.78125 -2.375 0.875 -2.375 C 1.296875 -2.34375 2.140625 -2.140625 2.140625 -1.140625 L 2.140625 0.828125 C 2.140625 1.40625 2.140625 1.734375 2.65625 2.109375 C 3.078125 2.40625 3.734375 2.484375 4.03125 2.484375 C 4.15625 2.484375 4.234375 2.484375 4.234375 2.375 Z M 4.234375 2.375 "/>
</g>
<g id="glyph-0-2">
<path d="M 4.234375 2.375 C 4.234375 2.265625 4.171875 2.265625 4.078125 2.265625 C 3.28125 2.203125 2.921875 1.765625 2.828125 1.40625 C 2.796875 1.296875 2.796875 1.28125 2.796875 0.9375 L 2.796875 -0.5625 C 2.796875 -0.859375 2.796875 -1.359375 2.78125 -1.453125 C 2.65625 -2.109375 2.015625 -2.375 1.640625 -2.484375 C 2.796875 -2.8125 2.796875 -3.515625 2.796875 -3.796875 L 2.796875 -5.578125 C 2.796875 -6.296875 2.796875 -6.515625 3.046875 -6.75 C 3.21875 -6.9375 3.453125 -7.171875 4.140625 -7.21875 C 4.1875 -7.21875 4.234375 -7.265625 4.234375 -7.328125 C 4.234375 -7.4375 4.15625 -7.4375 4.03125 -7.4375 C 3.046875 -7.4375 2.15625 -6.921875 2.140625 -6.21875 L 2.140625 -4.390625 C 2.140625 -3.46875 2.140625 -3.3125 1.875 -3.03125 C 1.75 -2.890625 1.46875 -2.625 0.859375 -2.578125 C 0.78125 -2.578125 0.71875 -2.578125 0.71875 -2.484375 C 0.71875 -2.375 0.765625 -2.375 0.875 -2.375 C 1.296875 -2.34375 2.140625 -2.125 2.140625 -1.140625 L 2.140625 0.828125 C 2.140625 1.390625 2.140625 1.734375 2.65625 2.09375 C 3.078125 2.390625 3.71875 2.484375 4.03125 2.484375 C 4.15625 2.484375 4.234375 2.484375 4.234375 2.375 Z M 4.234375 2.375 "/>
</g>
<g id="glyph-0-3">
<path d="M 4.234375 -2.484375 C 4.234375 -2.578125 4.171875 -2.578125 4.078125 -2.578125 C 3.640625 -2.609375 2.796875 -2.828125 2.796875 -3.8125 L 2.796875 -5.78125 C 2.796875 -6.34375 2.796875 -6.6875 2.28125 -7.046875 C 1.859375 -7.34375 1.234375 -7.4375 0.90625 -7.4375 C 0.8125 -7.4375 0.71875 -7.4375 0.71875 -7.328125 C 0.71875 -7.21875 0.765625 -7.21875 0.875 -7.21875 C 1.65625 -7.15625 2.015625 -6.71875 2.109375 -6.359375 C 2.140625 -6.25 2.140625 -6.234375 2.140625 -5.890625 L 2.140625 -4.390625 C 2.140625 -4.09375 2.140625 -3.59375 2.15625 -3.5 C 2.28125 -2.84375 2.921875 -2.578125 3.3125 -2.484375 C 2.140625 -2.140625 2.140625 -1.4375 2.140625 -1.15625 L 2.140625 0.625 C 2.140625 1.34375 2.140625 1.5625 1.90625 1.796875 C 1.71875 1.984375 1.5 2.21875 0.796875 2.265625 C 0.75 2.265625 0.71875 2.3125 0.71875 2.375 C 0.71875 2.484375 0.8125 2.484375 0.90625 2.484375 C 1.90625 2.484375 2.78125 1.96875 2.796875 1.265625 L 2.796875 -0.5625 C 2.796875 -1.484375 2.796875 -1.640625 3.0625 -1.921875 C 3.203125 -2.0625 3.46875 -2.328125 4.09375 -2.375 C 4.15625 -2.375 4.234375 -2.375 4.234375 -2.484375 Z M 4.234375 -2.484375 "/>
<path d="M 4.234375 -2.484375 C 4.234375 -2.578125 4.171875 -2.578125 4.078125 -2.59375 C 3.65625 -2.625 2.8125 -2.828125 2.8125 -3.8125 L 2.8125 -5.78125 C 2.8125 -6.359375 2.8125 -6.703125 2.296875 -7.0625 C 1.859375 -7.359375 1.234375 -7.4375 0.90625 -7.4375 C 0.8125 -7.4375 0.71875 -7.4375 0.71875 -7.328125 C 0.71875 -7.234375 0.78125 -7.234375 0.875 -7.21875 C 1.65625 -7.171875 2.03125 -6.734375 2.109375 -6.375 C 2.140625 -6.265625 2.140625 -6.234375 2.140625 -5.890625 L 2.140625 -4.40625 C 2.140625 -4.109375 2.140625 -3.609375 2.15625 -3.5 C 2.296875 -2.84375 2.921875 -2.59375 3.3125 -2.484375 C 2.140625 -2.140625 2.140625 -1.4375 2.140625 -1.15625 L 2.140625 0.625 C 2.140625 1.34375 2.140625 1.5625 1.90625 1.8125 C 1.71875 1.984375 1.5 2.21875 0.796875 2.265625 C 0.75 2.265625 0.71875 2.3125 0.71875 2.375 C 0.71875 2.484375 0.8125 2.484375 0.90625 2.484375 C 1.90625 2.484375 2.78125 1.96875 2.8125 1.265625 L 2.8125 -0.5625 C 2.8125 -1.484375 2.8125 -1.640625 3.0625 -1.921875 C 3.203125 -2.0625 3.46875 -2.328125 4.09375 -2.375 C 4.171875 -2.375 4.234375 -2.375 4.234375 -2.484375 Z M 4.234375 -2.484375 "/>
</g>
<g id="glyph-1-0">
<path d="M 4.921875 -1.421875 C 4.921875 -1.515625 4.828125 -1.515625 4.796875 -1.515625 C 4.71875 -1.515625 4.6875 -1.484375 4.671875 -1.40625 C 4.34375 -0.34375 3.671875 -0.109375 3.359375 -0.109375 C 2.96875 -0.109375 2.8125 -0.421875 2.8125 -0.765625 C 2.8125 -0.984375 2.875 -1.203125 2.96875 -1.640625 L 3.3125 -3 C 3.375 -3.25 3.609375 -4.171875 4.296875 -4.171875 C 4.34375 -4.171875 4.578125 -4.171875 4.796875 -4.03125 C 4.515625 -3.984375 4.3125 -3.734375 4.3125 -3.5 C 4.3125 -3.34375 4.421875 -3.15625 4.6875 -3.15625 C 4.90625 -3.15625 5.234375 -3.328125 5.234375 -3.734375 C 5.234375 -4.25 4.640625 -4.390625 4.3125 -4.390625 C 3.734375 -4.390625 3.390625 -3.859375 3.265625 -3.625 C 3.015625 -4.28125 2.484375 -4.390625 2.1875 -4.390625 C 1.15625 -4.390625 0.59375 -3.109375 0.59375 -2.859375 C 0.59375 -2.765625 0.71875 -2.765625 0.71875 -2.765625 C 0.796875 -2.765625 0.828125 -2.78125 0.84375 -2.875 C 1.1875 -3.921875 1.828125 -4.171875 2.171875 -4.171875 C 2.359375 -4.171875 2.703125 -4.078125 2.703125 -3.5 C 2.703125 -3.1875 2.546875 -2.53125 2.171875 -1.140625 C 2.015625 -0.53125 1.671875 -0.109375 1.234375 -0.109375 C 1.171875 -0.109375 0.9375 -0.109375 0.734375 -0.234375 C 0.984375 -0.28125 1.203125 -0.5 1.203125 -0.78125 C 1.203125 -1.046875 0.984375 -1.125 0.828125 -1.125 C 0.53125 -1.125 0.28125 -0.859375 0.28125 -0.546875 C 0.28125 -0.09375 0.78125 0.109375 1.21875 0.109375 C 1.875 0.109375 2.234375 -0.578125 2.265625 -0.640625 C 2.375 -0.28125 2.734375 0.109375 3.328125 0.109375 C 4.359375 0.109375 4.921875 -1.171875 4.921875 -1.421875 Z M 4.921875 -1.421875 "/>
</g>
<g id="glyph-1-1">
<path d="M 4.90625 -1.421875 C 4.90625 -1.515625 4.828125 -1.515625 4.796875 -1.515625 C 4.703125 -1.515625 4.6875 -1.46875 4.671875 -1.40625 C 4.34375 -0.34375 3.671875 -0.109375 3.34375 -0.109375 C 2.96875 -0.109375 2.796875 -0.421875 2.796875 -0.765625 C 2.796875 -0.984375 2.859375 -1.203125 2.96875 -1.640625 L 3.3125 -2.984375 C 3.375 -3.25 3.59375 -4.15625 4.296875 -4.15625 C 4.34375 -4.15625 4.578125 -4.15625 4.78125 -4.03125 C 4.5 -3.984375 4.3125 -3.734375 4.3125 -3.5 C 4.3125 -3.34375 4.421875 -3.15625 4.6875 -3.15625 C 4.90625 -3.15625 5.21875 -3.328125 5.21875 -3.71875 C 5.21875 -4.234375 4.640625 -4.375 4.296875 -4.375 C 3.71875 -4.375 3.375 -3.859375 3.265625 -3.625 C 3.015625 -4.28125 2.484375 -4.375 2.1875 -4.375 C 1.15625 -4.375 0.59375 -3.09375 0.59375 -2.859375 C 0.59375 -2.75 0.71875 -2.75 0.71875 -2.75 C 0.796875 -2.75 0.828125 -2.78125 0.84375 -2.859375 C 1.171875 -3.90625 1.828125 -4.15625 2.171875 -4.15625 C 2.359375 -4.15625 2.703125 -4.078125 2.703125 -3.5 C 2.703125 -3.1875 2.53125 -2.53125 2.171875 -1.140625 C 2.015625 -0.53125 1.671875 -0.109375 1.234375 -0.109375 C 1.171875 -0.109375 0.9375 -0.109375 0.734375 -0.234375 C 0.984375 -0.28125 1.203125 -0.5 1.203125 -0.765625 C 1.203125 -1.046875 0.984375 -1.125 0.828125 -1.125 C 0.53125 -1.125 0.28125 -0.859375 0.28125 -0.546875 C 0.28125 -0.09375 0.78125 0.109375 1.21875 0.109375 C 1.875 0.109375 2.234375 -0.578125 2.265625 -0.640625 C 2.375 -0.28125 2.734375 0.109375 3.328125 0.109375 C 4.34375 0.109375 4.90625 -1.171875 4.90625 -1.421875 Z M 4.90625 -1.421875 "/>
<path d="M 4.828125 -3.78125 C 4.859375 -3.921875 4.859375 -3.9375 4.859375 -4.015625 C 4.859375 -4.1875 4.71875 -4.28125 4.578125 -4.28125 C 4.46875 -4.28125 4.3125 -4.21875 4.234375 -4.0625 C 4.203125 -4.015625 4.125 -3.703125 4.09375 -3.53125 L 3.890625 -2.734375 L 3.4375 -0.953125 C 3.40625 -0.796875 2.96875 -0.109375 2.328125 -0.109375 C 1.8125 -0.109375 1.703125 -0.546875 1.703125 -0.90625 C 1.703125 -1.375 1.875 -1.984375 2.21875 -2.859375 C 2.375 -3.265625 2.40625 -3.375 2.40625 -3.578125 C 2.40625 -4.015625 2.09375 -4.390625 1.59375 -4.390625 C 0.65625 -4.390625 0.28125 -2.953125 0.28125 -2.859375 C 0.28125 -2.765625 0.40625 -2.765625 0.40625 -2.765625 C 0.5 -2.765625 0.515625 -2.78125 0.5625 -2.9375 C 0.828125 -3.875 1.234375 -4.171875 1.5625 -4.171875 C 1.640625 -4.171875 1.8125 -4.171875 1.8125 -3.84375 C 1.8125 -3.609375 1.71875 -3.34375 1.640625 -3.15625 C 1.25 -2.109375 1.078125 -1.53125 1.078125 -1.078125 C 1.078125 -0.1875 1.703125 0.109375 2.28125 0.109375 C 2.671875 0.109375 3 -0.0625 3.28125 -0.34375 C 3.15625 0.171875 3.03125 0.671875 2.640625 1.1875 C 2.375 1.53125 2 1.8125 1.546875 1.8125 C 1.40625 1.8125 0.96875 1.78125 0.796875 1.40625 C 0.953125 1.40625 1.078125 1.40625 1.21875 1.28125 C 1.3125 1.1875 1.421875 1.0625 1.421875 0.875 C 1.421875 0.5625 1.15625 0.53125 1.046875 0.53125 C 0.828125 0.53125 0.5 0.6875 0.5 1.171875 C 0.5 1.671875 0.9375 2.03125 1.546875 2.03125 C 2.5625 2.03125 3.59375 1.125 3.875 0.015625 Z M 4.828125 -3.78125 "/>
</g>
<g id="glyph-1-2">
<path d="M 4.8125 -3.78125 C 4.859375 -3.90625 4.859375 -3.9375 4.859375 -4 C 4.859375 -4.1875 4.71875 -4.265625 4.5625 -4.265625 C 4.46875 -4.265625 4.3125 -4.203125 4.21875 -4.0625 C 4.203125 -4.015625 4.125 -3.703125 4.078125 -3.53125 L 3.890625 -2.734375 L 3.4375 -0.953125 C 3.390625 -0.796875 2.96875 -0.109375 2.3125 -0.109375 C 1.8125 -0.109375 1.703125 -0.546875 1.703125 -0.90625 C 1.703125 -1.359375 1.875 -1.984375 2.203125 -2.859375 C 2.375 -3.265625 2.40625 -3.375 2.40625 -3.5625 C 2.40625 -4.015625 2.09375 -4.375 1.59375 -4.375 C 0.65625 -4.375 0.28125 -2.9375 0.28125 -2.859375 C 0.28125 -2.75 0.40625 -2.75 0.40625 -2.75 C 0.5 -2.75 0.515625 -2.78125 0.5625 -2.9375 C 0.828125 -3.859375 1.234375 -4.15625 1.5625 -4.15625 C 1.640625 -4.15625 1.8125 -4.15625 1.8125 -3.84375 C 1.8125 -3.59375 1.71875 -3.34375 1.640625 -3.15625 C 1.25 -2.09375 1.0625 -1.53125 1.0625 -1.0625 C 1.0625 -0.1875 1.6875 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.65625 2.640625 1.1875 C 2.375 1.53125 2 1.8125 1.546875 1.8125 C 1.40625 1.8125 0.953125 1.78125 0.796875 1.390625 C 0.953125 1.390625 1.078125 1.390625 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.859375 0.015625 Z M 4.8125 -3.78125 "/>
<path d="M 4.3125 -1.421875 C 4.3125 -1.46875 4.28125 -1.515625 4.203125 -1.515625 C 4.109375 -1.515625 4.09375 -1.453125 4.0625 -1.390625 C 3.828125 -0.75 3.1875 -0.5625 2.875 -0.5625 C 2.671875 -0.5625 2.484375 -0.609375 2.28125 -0.6875 C 1.9375 -0.8125 1.796875 -0.859375 1.59375 -0.859375 C 1.59375 -0.859375 1.40625 -0.859375 1.3125 -0.828125 C 1.859375 -1.40625 2.140625 -1.640625 2.5 -1.953125 C 2.5 -1.953125 3.109375 -2.484375 3.46875 -2.84375 C 4.421875 -3.765625 4.640625 -4.25 4.640625 -4.28125 C 4.640625 -4.390625 4.53125 -4.390625 4.53125 -4.390625 C 4.453125 -4.390625 4.421875 -4.359375 4.375 -4.28125 C 4.078125 -3.796875 3.875 -3.640625 3.625 -3.640625 C 3.390625 -3.640625 3.28125 -3.796875 3.125 -3.953125 C 2.9375 -4.1875 2.765625 -4.390625 2.4375 -4.390625 C 1.703125 -4.390625 1.234375 -3.46875 1.234375 -3.25 C 1.234375 -3.203125 1.265625 -3.140625 1.359375 -3.140625 C 1.453125 -3.140625 1.46875 -3.1875 1.484375 -3.25 C 1.671875 -3.703125 2.25 -3.71875 2.328125 -3.71875 C 2.546875 -3.71875 2.734375 -3.65625 2.953125 -3.578125 C 3.359375 -3.421875 3.46875 -3.421875 3.71875 -3.421875 C 3.359375 -3 2.53125 -2.28125 2.34375 -2.125 L 1.453125 -1.296875 C 0.78125 -0.625 0.421875 -0.0625 0.421875 0.015625 C 0.421875 0.109375 0.546875 0.109375 0.546875 0.109375 C 0.625 0.109375 0.640625 0.09375 0.703125 -0.015625 C 0.9375 -0.359375 1.234375 -0.640625 1.546875 -0.640625 C 1.78125 -0.640625 1.875 -0.546875 2.125 -0.265625 C 2.296875 -0.046875 2.46875 0.109375 2.765625 0.109375 C 3.734375 0.109375 4.3125 -1.15625 4.3125 -1.421875 Z M 4.3125 -1.421875 "/>
</g>
<g id="glyph-1-3">
<path d="M 4.3125 -1.421875 C 4.3125 -1.46875 4.265625 -1.515625 4.1875 -1.515625 C 4.09375 -1.515625 4.078125 -1.453125 4.046875 -1.390625 C 3.828125 -0.75 3.1875 -0.5625 2.859375 -0.5625 C 2.671875 -0.5625 2.484375 -0.609375 2.28125 -0.6875 C 1.9375 -0.8125 1.796875 -0.859375 1.578125 -0.859375 C 1.578125 -0.859375 1.40625 -0.859375 1.3125 -0.828125 C 1.859375 -1.390625 2.140625 -1.640625 2.5 -1.953125 C 2.5 -1.953125 3.109375 -2.484375 3.46875 -2.84375 C 4.40625 -3.765625 4.625 -4.234375 4.625 -4.28125 C 4.625 -4.375 4.515625 -4.375 4.515625 -4.375 C 4.453125 -4.375 4.421875 -4.359375 4.375 -4.265625 C 4.078125 -3.796875 3.859375 -3.640625 3.625 -3.640625 C 3.390625 -3.640625 3.265625 -3.78125 3.125 -3.953125 C 2.9375 -4.1875 2.765625 -4.375 2.4375 -4.375 C 1.6875 -4.375 1.234375 -3.453125 1.234375 -3.25 C 1.234375 -3.203125 1.265625 -3.140625 1.359375 -3.140625 C 1.453125 -3.140625 1.46875 -3.1875 1.484375 -3.25 C 1.671875 -3.703125 2.25 -3.71875 2.328125 -3.71875 C 2.53125 -3.71875 2.71875 -3.640625 2.953125 -3.5625 C 3.34375 -3.421875 3.453125 -3.421875 3.71875 -3.421875 C 3.359375 -2.984375 2.53125 -2.28125 2.34375 -2.125 L 1.453125 -1.28125 C 0.765625 -0.625 0.421875 -0.0625 0.421875 0.015625 C 0.421875 0.109375 0.546875 0.109375 0.546875 0.109375 C 0.625 0.109375 0.640625 0.09375 0.703125 -0.015625 C 0.9375 -0.359375 1.234375 -0.640625 1.546875 -0.640625 C 1.765625 -0.640625 1.875 -0.546875 2.125 -0.25 C 2.28125 -0.046875 2.46875 0.109375 2.75 0.109375 C 3.734375 0.109375 4.3125 -1.15625 4.3125 -1.421875 Z M 4.3125 -1.421875 "/>
<path d="M 7.34375 -4.328125 C 7.34375 -5.921875 6.296875 -7 4.8125 -7 C 2.671875 -7 0.484375 -4.75 0.484375 -2.4375 C 0.484375 -0.78125 1.59375 0.21875 3.03125 0.21875 C 5.125 0.21875 7.34375 -1.953125 7.34375 -4.328125 Z M 6.453125 -4.71875 C 6.453125 -4 6.1875 -2.453125 5.203125 -1.234375 C 4.734375 -0.625 3.921875 -0.046875 3.078125 -0.046875 C 2.109375 -0.046875 1.40625 -0.84375 1.40625 -2.15625 C 1.40625 -2.59375 1.546875 -4.03125 2.3125 -5.203125 C 3 -6.234375 3.96875 -6.75 4.75 -6.75 C 5.5625 -6.75 6.453125 -6.1875 6.453125 -4.71875 Z M 6.453125 -4.71875 "/>
</g>
<g id="glyph-1-4">
<path d="M 7.328125 -4.3125 C 7.328125 -5.90625 6.28125 -6.984375 4.796875 -6.984375 C 2.671875 -6.984375 0.484375 -4.734375 0.484375 -2.421875 C 0.484375 -0.78125 1.59375 0.21875 3.015625 0.21875 C 5.125 0.21875 7.328125 -1.953125 7.328125 -4.3125 Z M 6.453125 -4.703125 C 6.453125 -4 6.1875 -2.453125 5.203125 -1.234375 C 4.71875 -0.625 3.90625 -0.046875 3.078125 -0.046875 C 2.09375 -0.046875 1.40625 -0.84375 1.40625 -2.15625 C 1.40625 -2.578125 1.546875 -4.03125 2.3125 -5.1875 C 2.984375 -6.21875 3.96875 -6.734375 4.75 -6.734375 C 5.5625 -6.734375 6.453125 -6.1875 6.453125 -4.703125 Z M 6.453125 -4.703125 "/>
<path d="M 6.203125 -6.109375 C 6.203125 -6.203125 6.125 -6.25 6.0625 -6.296875 C 5.84375 -6.453125 5.734375 -6.625 5.65625 -6.859375 C 5.640625 -6.953125 5.59375 -7.078125 5.453125 -7.078125 C 5.3125 -7.078125 5.265625 -6.953125 5.265625 -6.875 C 5.265625 -6.828125 5.34375 -6.515625 5.5 -6.296875 L 2.15625 -6.296875 C 1.984375 -6.296875 1.8125 -6.296875 1.8125 -6.109375 C 1.8125 -5.90625 1.984375 -5.90625 2.15625 -5.90625 L 5.328125 -5.90625 C 5.1875 -5.78125 4.859375 -5.5 4.859375 -5.3125 C 4.859375 -5.21875 4.953125 -5.125 5.0625 -5.125 C 5.15625 -5.125 5.203125 -5.1875 5.25 -5.25 C 5.375 -5.390625 5.59375 -5.671875 6.03125 -5.890625 C 6.109375 -5.9375 6.203125 -5.984375 6.203125 -6.109375 Z M 6.203125 -6.109375 "/>
</g>
<g id="glyph-1-5">
<path d="M 4.859375 -2.796875 C 4.859375 -3.71875 4.296875 -4.375 3.53125 -4.375 C 3.046875 -4.375 2.5625 -4.015625 2.234375 -3.640625 C 2.140625 -4.171875 1.71875 -4.375 1.34375 -4.375 C 0.890625 -4.375 0.703125 -4 0.609375 -3.8125 C 0.4375 -3.484375 0.3125 -2.875 0.3125 -2.859375 C 0.3125 -2.75 0.421875 -2.75 0.421875 -2.75 C 0.53125 -2.75 0.53125 -2.765625 0.59375 -2.984375 C 0.765625 -3.6875 0.953125 -4.15625 1.3125 -4.15625 C 1.484375 -4.15625 1.625 -4.078125 1.625 -3.703125 C 1.625 -3.484375 1.59375 -3.375 1.5625 -3.203125 L 0.453125 1.203125 C 0.359375 1.546875 0.34375 1.609375 -0.09375 1.609375 C -0.203125 1.609375 -0.3125 1.609375 -0.3125 1.796875 C -0.3125 1.875 -0.265625 1.921875 -0.1875 1.921875 C 0.078125 1.921875 0.359375 1.890625 0.640625 1.890625 C 0.96875 1.890625 1.3125 1.921875 1.625 1.921875 C 1.671875 1.921875 1.796875 1.921875 1.796875 1.71875 C 1.796875 1.609375 1.703125 1.609375 1.5625 1.609375 C 1.0625 1.609375 1.0625 1.546875 1.0625 1.453125 C 1.0625 1.34375 1.484375 -0.28125 1.5625 -0.53125 C 1.6875 -0.234375 1.96875 0.109375 2.46875 0.109375 C 3.609375 0.109375 4.859375 -1.34375 4.859375 -2.796875 Z M 3.640625 -1.125 C 3.296875 -0.4375 2.828125 -0.109375 2.453125 -0.109375 C 1.796875 -0.109375 1.671875 -0.9375 1.671875 -0.984375 C 1.671875 -0.984375 1.671875 -1.03125 1.703125 -1.15625 L 2.1875 -3.09375 C 2.265625 -3.359375 2.53125 -3.640625 2.703125 -3.78125 C 3.046875 -4.09375 3.34375 -4.15625 3.5 -4.15625 C 3.90625 -4.15625 4.140625 -3.8125 4.140625 -3.234375 C 4.140625 -2.640625 3.8125 -1.5 3.640625 -1.125 Z M 3.640625 -1.125 "/>
<path d="M 4.859375 -2.796875 C 4.859375 -3.734375 4.296875 -4.390625 3.546875 -4.390625 C 3.046875 -4.390625 2.5625 -4.03125 2.25 -3.640625 C 2.140625 -4.171875 1.71875 -4.390625 1.34375 -4.390625 C 0.890625 -4.390625 0.703125 -4 0.609375 -3.8125 C 0.4375 -3.484375 0.3125 -2.890625 0.3125 -2.859375 C 0.3125 -2.765625 0.421875 -2.765625 0.421875 -2.765625 C 0.53125 -2.765625 0.53125 -2.765625 0.59375 -2.984375 C 0.765625 -3.6875 0.96875 -4.171875 1.3125 -4.171875 C 1.484375 -4.171875 1.625 -4.09375 1.625 -3.703125 C 1.625 -3.484375 1.59375 -3.375 1.5625 -3.203125 L 0.453125 1.203125 C 0.359375 1.546875 0.34375 1.625 -0.09375 1.625 C -0.203125 1.625 -0.3125 1.625 -0.3125 1.8125 C -0.3125 1.890625 -0.265625 1.921875 -0.1875 1.921875 C 0.078125 1.921875 0.359375 1.890625 0.640625 1.890625 C 0.96875 1.890625 1.3125 1.921875 1.625 1.921875 C 1.671875 1.921875 1.8125 1.921875 1.8125 1.71875 C 1.8125 1.625 1.703125 1.625 1.5625 1.625 C 1.078125 1.625 1.078125 1.546875 1.078125 1.453125 C 1.078125 1.34375 1.484375 -0.28125 1.5625 -0.53125 C 1.6875 -0.234375 1.96875 0.109375 2.46875 0.109375 C 3.625 0.109375 4.859375 -1.34375 4.859375 -2.796875 Z M 3.640625 -1.125 C 3.296875 -0.4375 2.828125 -0.109375 2.453125 -0.109375 C 1.8125 -0.109375 1.671875 -0.9375 1.671875 -0.984375 C 1.671875 -0.984375 1.671875 -1.03125 1.703125 -1.15625 L 2.1875 -3.09375 C 2.265625 -3.359375 2.53125 -3.640625 2.703125 -3.796875 C 3.0625 -4.09375 3.34375 -4.171875 3.515625 -4.171875 C 3.90625 -4.171875 4.140625 -3.8125 4.140625 -3.234375 C 4.140625 -2.65625 3.8125 -1.515625 3.640625 -1.125 Z M 3.640625 -1.125 "/>
</g>
<g id="glyph-1-6">
<path d="M 3.8125 -1.796875 C 3.90625 -2.140625 3.953125 -2.484375 3.953125 -2.8125 C 3.953125 -2.96875 3.9375 -3.125 3.921875 -3.265625 C 3.828125 -3.734375 3.625 -4.125 3.34375 -4.484375 C 2.90625 -5.046875 2.28125 -5.828125 2.28125 -6.265625 C 2.28125 -6.328125 2.296875 -6.390625 2.328125 -6.4375 C 2.375 -6.53125 2.453125 -6.625 2.546875 -6.671875 C 2.65625 -6.71875 2.75 -6.71875 2.859375 -6.71875 C 3.3125 -6.703125 3.59375 -6.390625 3.96875 -6.234375 C 4 -6.21875 4.046875 -6.21875 4.078125 -6.21875 C 4.203125 -6.21875 4.359375 -6.296875 4.421875 -6.421875 C 4.453125 -6.484375 4.484375 -6.546875 4.484375 -6.609375 C 4.484375 -6.734375 4.390625 -6.828125 4.265625 -6.859375 C 3.90625 -6.953125 3.484375 -7.046875 3.125 -7.046875 C 3.046875 -7.046875 2.953125 -7.046875 2.875 -7.03125 C 2.734375 -7 2.578125 -6.96875 2.453125 -6.875 C 2.3125 -6.796875 2.203125 -6.671875 2.140625 -6.53125 C 2.046875 -6.390625 2.015625 -6.21875 2.015625 -6.03125 C 2.015625 -5.515625 2.328125 -4.875 2.625 -4.3125 C 2.21875 -4.234375 1.828125 -4.015625 1.46875 -3.71875 C 0.984375 -3.296875 0.640625 -2.734375 0.5 -2.15625 C 0.453125 -1.953125 0.421875 -1.75 0.421875 -1.5625 C 0.421875 -1.1875 0.515625 -0.859375 0.703125 -0.5625 C 0.96875 -0.15625 1.4375 0.109375 1.984375 0.109375 C 2.859375 0.109375 3.578125 -0.828125 3.8125 -1.796875 Z M 3.171875 -1.609375 C 2.984375 -0.890625 2.625 -0.109375 2 -0.109375 C 1.59375 -0.109375 1.296875 -0.34375 1.15625 -0.671875 C 1.0625 -0.859375 1.03125 -1.0625 1.03125 -1.28125 C 1.03125 -1.546875 1.09375 -1.828125 1.15625 -2.109375 C 1.28125 -2.625 1.484375 -3.15625 1.875 -3.5625 C 2.125 -3.828125 2.421875 -4.015625 2.734375 -4.109375 L 2.765625 -4.0625 C 2.96875 -3.703125 3.140625 -3.328125 3.21875 -2.90625 C 3.265625 -2.75 3.265625 -2.578125 3.265625 -2.421875 C 3.265625 -2.15625 3.234375 -1.875 3.171875 -1.609375 Z M 3.171875 -1.609375 "/>
<path d="M 3.8125 -1.8125 C 3.90625 -2.140625 3.953125 -2.484375 3.953125 -2.8125 C 3.953125 -2.96875 3.953125 -3.125 3.921875 -3.28125 C 3.84375 -3.734375 3.625 -4.140625 3.359375 -4.484375 C 2.921875 -5.046875 2.296875 -5.828125 2.296875 -6.28125 C 2.296875 -6.34375 2.296875 -6.40625 2.328125 -6.453125 C 2.375 -6.53125 2.453125 -6.625 2.546875 -6.671875 C 2.65625 -6.734375 2.765625 -6.734375 2.875 -6.734375 C 3.3125 -6.71875 3.59375 -6.40625 3.96875 -6.234375 C 4.015625 -6.234375 4.046875 -6.21875 4.078125 -6.21875 C 4.21875 -6.21875 4.359375 -6.3125 4.4375 -6.4375 C 4.46875 -6.5 4.484375 -6.5625 4.484375 -6.625 C 4.484375 -6.75 4.40625 -6.84375 4.28125 -6.875 C 3.90625 -6.96875 3.5 -7.0625 3.140625 -7.0625 C 3.046875 -7.0625 2.953125 -7.046875 2.875 -7.046875 C 2.734375 -7.015625 2.59375 -6.96875 2.453125 -6.890625 C 2.328125 -6.8125 2.21875 -6.6875 2.140625 -6.546875 C 2.046875 -6.40625 2.03125 -6.234375 2.03125 -6.046875 C 2.03125 -5.515625 2.328125 -4.875 2.625 -4.328125 C 2.21875 -4.234375 1.828125 -4.03125 1.484375 -3.734375 C 0.984375 -3.296875 0.640625 -2.734375 0.5 -2.15625 C 0.453125 -1.953125 0.421875 -1.75 0.421875 -1.5625 C 0.421875 -1.1875 0.515625 -0.859375 0.703125 -0.5625 C 0.96875 -0.15625 1.4375 0.109375 2 0.109375 C 2.875 0.109375 3.578125 -0.828125 3.8125 -1.8125 Z M 3.171875 -1.625 C 2.984375 -0.890625 2.625 -0.109375 2 -0.109375 C 1.59375 -0.109375 1.296875 -0.34375 1.15625 -0.671875 C 1.078125 -0.859375 1.03125 -1.0625 1.03125 -1.28125 C 1.03125 -1.546875 1.09375 -1.828125 1.15625 -2.109375 C 1.296875 -2.625 1.484375 -3.15625 1.890625 -3.578125 C 2.125 -3.828125 2.4375 -4.03125 2.734375 -4.125 L 2.765625 -4.0625 C 2.96875 -3.703125 3.140625 -3.328125 3.21875 -2.921875 C 3.265625 -2.765625 3.28125 -2.59375 3.28125 -2.421875 C 3.28125 -2.15625 3.25 -1.890625 3.171875 -1.625 Z M 3.171875 -1.625 "/>
</g>
<g id="glyph-2-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 id="glyph-2-1">
<path d="M 3.28125 0 L 3.28125 -0.25 L 3.015625 -0.25 C 2.328125 -0.25 2.328125 -0.34375 2.328125 -0.5625 L 2.328125 -4.40625 C 2.328125 -4.59375 2.3125 -4.609375 2.109375 -4.609375 C 1.671875 -4.171875 1.046875 -4.15625 0.75 -4.15625 L 0.75 -3.90625 C 0.921875 -3.90625 1.375 -3.90625 1.765625 -4.109375 L 1.765625 -0.5625 C 1.765625 -0.34375 1.765625 -0.25 1.0625 -0.25 L 0.8125 -0.25 L 0.8125 0 L 2.046875 -0.03125 Z M 3.28125 0 "/>
</g>
<g id="glyph-2-2">
<path d="M 3.5 -1.265625 L 3.265625 -1.265625 C 3.25 -1.109375 3.171875 -0.703125 3.09375 -0.625 C 3.03125 -0.59375 2.5 -0.59375 2.40625 -0.59375 L 1.125 -0.59375 C 1.859375 -1.234375 2.09375 -1.421875 2.515625 -1.75 C 3.03125 -2.171875 3.5 -2.59375 3.5 -3.25 C 3.5 -4.09375 2.765625 -4.609375 1.875 -4.609375 C 1.015625 -4.609375 0.4375 -4 0.4375 -3.359375 C 0.4375 -3.015625 0.734375 -2.96875 0.8125 -2.96875 C 0.96875 -2.96875 1.171875 -3.09375 1.171875 -3.34375 C 1.171875 -3.46875 1.125 -3.71875 0.765625 -3.71875 C 0.984375 -4.203125 1.453125 -4.359375 1.78125 -4.359375 C 2.46875 -4.359375 2.828125 -3.8125 2.828125 -3.25 C 2.828125 -2.65625 2.40625 -2.171875 2.171875 -1.921875 L 0.5 -0.265625 C 0.4375 -0.203125 0.4375 -0.1875 0.4375 0 L 3.296875 0 Z M 3.5 -1.265625 "/>
<path d="M 3.515625 -1.265625 L 3.28125 -1.265625 C 3.25 -1.109375 3.1875 -0.703125 3.09375 -0.625 C 3.03125 -0.59375 2.5 -0.59375 2.40625 -0.59375 L 1.125 -0.59375 C 1.859375 -1.234375 2.09375 -1.4375 2.515625 -1.765625 C 3.03125 -2.171875 3.515625 -2.59375 3.515625 -3.265625 C 3.515625 -4.109375 2.78125 -4.609375 1.890625 -4.609375 C 1.015625 -4.609375 0.4375 -4.015625 0.4375 -3.375 C 0.4375 -3.015625 0.734375 -2.984375 0.8125 -2.984375 C 0.96875 -2.984375 1.171875 -3.09375 1.171875 -3.34375 C 1.171875 -3.484375 1.125 -3.71875 0.765625 -3.71875 C 0.984375 -4.21875 1.453125 -4.359375 1.78125 -4.359375 C 2.46875 -4.359375 2.84375 -3.828125 2.84375 -3.265625 C 2.84375 -2.65625 2.40625 -2.171875 2.1875 -1.921875 L 0.5 -0.265625 C 0.4375 -0.203125 0.4375 -0.1875 0.4375 0 L 3.296875 0 Z M 3.515625 -1.265625 "/>
</g>
<g id="glyph-3-0">
</g>
<g id="glyph-3-1">
<path d="M 3.890625 -0.984375 C 3.890625 -1.078125 3.796875 -1.078125 3.78125 -1.078125 C 3.671875 -1.078125 3.671875 -1.046875 3.640625 -0.96875 C 3.5 -0.484375 3.078125 -0.125 2.6875 -0.125 C 2.421875 -0.125 2.265625 -0.3125 2.265625 -0.578125 C 2.265625 -0.75 2.4375 -1.390625 2.625 -2.15625 C 2.765625 -2.6875 3.078125 -2.859375 3.3125 -2.859375 C 3.3125 -2.859375 3.53125 -2.859375 3.6875 -2.765625 C 3.46875 -2.703125 3.375 -2.515625 3.375 -2.390625 C 3.375 -2.234375 3.5 -2.125 3.65625 -2.125 C 3.8125 -2.125 4.046875 -2.265625 4.046875 -2.546875 C 4.046875 -2.9375 3.59375 -3.0625 3.328125 -3.0625 C 2.96875 -3.0625 2.703125 -2.828125 2.546875 -2.5625 C 2.421875 -2.84375 2.109375 -3.0625 1.71875 -3.0625 C 0.9375 -3.0625 0.5 -2.203125 0.5 -2 C 0.5 -1.90625 0.59375 -1.90625 0.609375 -1.90625 C 0.703125 -1.90625 0.703125 -1.9375 0.75 -2.03125 C 0.921875 -2.5625 1.359375 -2.859375 1.6875 -2.859375 C 1.921875 -2.859375 2.109375 -2.734375 2.109375 -2.40625 C 2.109375 -2.265625 2.03125 -1.921875 1.96875 -1.6875 L 1.734375 -0.734375 C 1.65625 -0.5 1.421875 -0.125 1.078125 -0.125 C 1.046875 -0.125 0.84375 -0.125 0.703125 -0.21875 C 0.984375 -0.3125 1 -0.5625 1 -0.609375 C 1 -0.75 0.890625 -0.859375 0.734375 -0.859375 C 0.53125 -0.859375 0.328125 -0.6875 0.328125 -0.4375 C 0.328125 -0.09375 0.71875 0.0625 1.0625 0.0625 C 1.375 0.0625 1.671875 -0.125 1.84375 -0.421875 C 2 -0.0625 2.390625 0.0625 2.65625 0.0625 C 3.46875 0.0625 3.890625 -0.796875 3.890625 -0.984375 Z M 3.890625 -0.984375 "/>
<path d="M 3.890625 -1 C 3.890625 -1.078125 3.796875 -1.078125 3.78125 -1.078125 C 3.6875 -1.078125 3.671875 -1.046875 3.65625 -0.96875 C 3.5 -0.484375 3.09375 -0.125 2.703125 -0.125 C 2.421875 -0.125 2.28125 -0.3125 2.28125 -0.578125 C 2.28125 -0.765625 2.4375 -1.390625 2.640625 -2.15625 C 2.78125 -2.703125 3.09375 -2.875 3.3125 -2.875 C 3.3125 -2.875 3.546875 -2.875 3.6875 -2.78125 C 3.46875 -2.71875 3.390625 -2.515625 3.390625 -2.390625 C 3.390625 -2.234375 3.5 -2.140625 3.671875 -2.140625 C 3.828125 -2.140625 4.046875 -2.265625 4.046875 -2.5625 C 4.046875 -2.953125 3.609375 -3.0625 3.328125 -3.0625 C 2.984375 -3.0625 2.703125 -2.84375 2.546875 -2.578125 C 2.421875 -2.859375 2.109375 -3.0625 1.71875 -3.0625 C 0.9375 -3.0625 0.5 -2.21875 0.5 -2 C 0.5 -1.90625 0.59375 -1.90625 0.609375 -1.90625 C 0.703125 -1.90625 0.703125 -1.9375 0.75 -2.03125 C 0.921875 -2.578125 1.359375 -2.875 1.703125 -2.875 C 1.921875 -2.875 2.109375 -2.75 2.109375 -2.40625 C 2.109375 -2.28125 2.03125 -1.921875 1.96875 -1.6875 L 1.734375 -0.734375 C 1.65625 -0.5 1.4375 -0.125 1.078125 -0.125 C 1.0625 -0.125 0.84375 -0.125 0.703125 -0.21875 C 0.984375 -0.3125 1.015625 -0.5625 1.015625 -0.609375 C 1.015625 -0.765625 0.890625 -0.859375 0.734375 -0.859375 C 0.53125 -0.859375 0.328125 -0.703125 0.328125 -0.4375 C 0.328125 -0.09375 0.71875 0.0625 1.0625 0.0625 C 1.390625 0.0625 1.671875 -0.125 1.84375 -0.421875 C 2.015625 -0.0625 2.390625 0.0625 2.671875 0.0625 C 3.46875 0.0625 3.890625 -0.796875 3.890625 -1 Z M 3.890625 -1 "/>
</g>
</g>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 0.289062 0 L 188 0 L 188 171.125 L 0.289062 171.125 Z M 0.289062 0 "/>
<path clip-rule="nonzero" d="M 0 0.117188 L 186 0.117188 L 186 173.125 L 0 173.125 Z M 0 0.117188 "/>
</clipPath>
<clipPath id="clip-1">
<path clip-rule="nonzero" d="M 202 96 L 225.398438 96 L 225.398438 128 L 202 128 Z M 202 96 "/>
<path clip-rule="nonzero" d="M 202 99 L 225.402344 99 L 225.402344 132 L 202 132 Z M 202 99 "/>
</clipPath>
</defs>
<path fill-rule="nonzero" fill="rgb(69.999695%, 69.999695%, 100%)" fill-opacity="1" d="M 172.359375 81.417969 L 169.574219 72.441406 C 169.113281 70.957031 168.792969 68.488281 168.855469 66.933594 L 169.265625 57.046875 C 169.332031 55.492188 168.691406 53.175781 167.835938 51.875 L 162.589844 43.886719 C 161.738281 42.585938 160.199219 40.589844 159.160156 39.429688 L 153.046875 32.613281 C 152.007812 31.453125 150.515625 29.429688 149.71875 28.09375 L 144.75 19.78125 C 143.949219 18.445312 142.246094 16.671875 140.941406 15.824219 L 132.964844 10.628906 C 131.660156 9.78125 129.382812 8.777344 127.875 8.386719 L 118.703125 6.015625 C 117.195312 5.625 114.730469 5.085938 113.199219 4.808594 L 104.417969 3.210938 C 102.886719 2.933594 100.382812 2.648438 98.828125 2.574219 L 90.109375 2.171875 C 88.550781 2.097656 86.03125 1.949219 84.480469 1.839844 L 75.449219 1.191406 C 73.894531 1.082031 71.382812 1.160156 69.839844 1.363281 L 60.554688 2.601562 C 59.011719 2.804688 56.824219 3.824219 55.675781 4.871094 L 48.496094 11.40625 C 47.34375 12.453125 45.21875 13.722656 43.753906 14.242188 L 34.765625 17.410156 C 33.300781 17.929688 31.382812 19.378906 30.484375 20.652344 L 25.113281 28.269531 C 24.214844 29.539062 22.65625 31.523438 21.632812 32.695312 L 15.636719 39.546875 C 14.609375 40.71875 13.140625 42.757812 12.351562 44.097656 L 7.613281 52.160156 C 6.824219 53.503906 6.117188 55.851562 6.03125 57.40625 L 5.511719 66.847656 C 5.425781 68.402344 5.015625 70.878906 4.59375 72.378906 L 2.046875 81.398438 C 1.625 82.894531 1.285156 85.375 1.285156 86.929688 L 1.308594 96.449219 C 1.3125 98.007812 1.863281 100.40625 2.535156 101.8125 L 6.691406 110.460938 C 7.367188 111.867188 8.605469 114.058594 9.457031 115.359375 L 14.425781 122.929688 C 15.277344 124.234375 16.695312 126.320312 17.589844 127.597656 L 22.59375 134.734375 C 23.488281 136.007812 24.953125 138.0625 25.871094 139.320312 L 31.222656 146.671875 C 32.140625 147.929688 33.800781 149.816406 34.933594 150.886719 L 41.824219 157.375 C 42.957031 158.441406 45.070312 159.71875 46.542969 160.222656 L 55.472656 163.292969 C 56.945312 163.796875 59.394531 164.316406 60.945312 164.449219 L 70.136719 165.238281 C 71.6875 165.371094 74.183594 165.726562 75.710938 166.027344 L 84.527344 167.777344 C 86.054688 168.078125 88.542969 168.472656 90.089844 168.660156 L 99.660156 169.796875 C 101.207031 169.980469 103.609375 169.613281 105.027344 168.96875 L 113.75 165.027344 C 115.171875 164.386719 117.472656 163.355469 118.898438 162.722656 L 127.289062 158.996094 C 128.714844 158.367188 130.929688 157.171875 132.238281 156.328125 L 140.027344 151.308594 C 141.335938 150.464844 143.078125 148.71875 143.917969 147.410156 L 148.964844 139.511719 C 149.804688 138.199219 151.226562 136.117188 152.144531 134.859375 L 157.300781 127.769531 C 158.21875 126.507812 159.714844 124.476562 160.640625 123.226562 L 166.230469 115.714844 C 167.15625 114.46875 168.335938 112.265625 168.863281 110.800781 L 172.058594 101.878906 C 172.585938 100.414062 173.023438 97.964844 173.042969 96.40625 L 173.160156 86.929688 C 173.179688 85.375 172.820312 82.90625 172.359375 81.417969 Z M 172.359375 81.417969 "/>
<path fill-rule="nonzero" fill="rgb(69.999695%, 69.999695%, 100%)" fill-opacity="1" d="M 171.53125 84.34375 L 168.945312 75.460938 C 168.511719 73.964844 167.808594 71.535156 167.378906 70.035156 L 164.988281 61.679688 C 164.5625 60.179688 163.777344 57.773438 163.242188 56.308594 L 160.207031 48.019531 C 159.671875 46.554688 158.523438 44.320312 157.644531 43.035156 L 152.621094 35.683594 C 151.742188 34.394531 150.203125 32.394531 149.179688 31.214844 L 143.265625 24.375 C 142.242188 23.195312 140.363281 21.535156 139.066406 20.667969 L 131.523438 15.625 C 130.226562 14.753906 127.972656 13.664062 126.488281 13.1875 L 117.917969 10.4375 C 116.433594 9.960938 114.078125 9.054688 112.652344 8.414062 L 104.335938 4.675781 C 102.910156 4.035156 100.496094 3.421875 98.941406 3.304688 L 89.84375 2.625 C 88.289062 2.507812 85.769531 2.304688 84.214844 2.171875 L 74.6875 1.351562 C 73.132812 1.21875 70.75 1.6875 69.363281 2.398438 L 60.796875 6.796875 C 59.410156 7.507812 57.203125 8.742188 55.871094 9.550781 L 48.222656 14.191406 C 46.886719 15.003906 44.664062 16.195312 43.25 16.859375 L 34.953125 20.75 C 33.539062 21.410156 31.617188 22.945312 30.65625 24.171875 L 25.039062 31.355469 C 24.078125 32.582031 22.363281 34.429688 21.207031 35.476562 L 14.160156 41.878906 C 13.007812 42.929688 11.902344 45.03125 11.691406 46.578125 L 10.382812 56.222656 C 10.171875 57.765625 9.554688 60.203125 9.007812 61.664062 L 5.890625 69.929688 C 5.339844 71.390625 4.839844 73.835938 4.773438 75.394531 L 4.398438 84.234375 C 4.332031 85.792969 4.011719 88.292969 3.679688 89.816406 L 1.589844 99.464844 C 1.261719 100.988281 1.359375 103.4375 1.8125 104.929688 L 4.574219 114.066406 C 5.023438 115.558594 5.992188 117.882812 6.738281 119.253906 L 11.238281 127.554688 C 11.980469 128.925781 13.421875 130.984375 14.453125 132.152344 L 20.601562 139.109375 C 21.632812 140.28125 23.472656 142 24.707031 142.953125 L 31.824219 148.453125 C 33.058594 149.40625 35.074219 150.933594 36.328125 151.863281 L 43.359375 157.082031 C 44.613281 158.011719 46.773438 159.300781 48.183594 159.964844 L 56.140625 163.695312 C 57.550781 164.359375 59.808594 165.5 61.179688 166.242188 L 69.546875 170.785156 C 70.914062 171.53125 73.289062 172.046875 74.84375 171.941406 L 84.210938 171.304688 C 85.765625 171.199219 88.285156 170.957031 89.832031 170.765625 L 98.730469 169.667969 C 100.277344 169.476562 102.746094 168.957031 104.238281 168.507812 L 112.738281 165.941406 C 114.234375 165.488281 116.679688 164.863281 118.207031 164.542969 L 127.53125 162.582031 C 129.058594 162.257812 131.179688 161.09375 132.265625 159.972656 L 138.855469 153.195312 C 139.945312 152.074219 141.832031 150.402344 143.070312 149.453125 L 150.417969 143.847656 C 151.660156 142.898438 153.425781 141.125 154.367188 139.878906 L 159.996094 132.421875 C 160.9375 131.175781 161.914062 128.921875 162.183594 127.382812 L 163.820312 117.964844 C 164.085938 116.429688 164.757812 114 165.3125 112.542969 L 168.492188 104.234375 C 169.050781 102.777344 169.742188 100.355469 170.039062 98.824219 L 171.78125 89.828125 C 172.078125 88.296875 171.964844 85.839844 171.53125 84.34375 Z M 171.53125 84.34375 "/>
<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-miterlimit="10" d="M 85.533079 2.707752 L 82.732691 11.733408 C 82.269233 13.225901 81.947168 15.708153 82.01001 17.271343 L 82.42241 27.212133 C 82.489179 28.775323 81.84505 31.104398 80.984903 32.412293 L 75.710118 40.444262 C 74.853898 41.752158 73.306419 43.759168 72.261673 44.925669 L 66.114958 51.779355 C 65.070213 52.945856 63.569865 54.98036 62.768632 56.323604 L 57.772707 64.681565 C 56.967546 66.024809 55.255107 67.807946 53.943284 68.660238 L 45.923097 73.883964 C 44.611274 74.736256 42.321476 75.745652 40.805417 76.138414 L 31.58338 78.522475 C 30.067322 78.915237 27.588998 79.457247 26.049373 79.736108 L 17.220098 81.342502 C 15.680473 81.621362 13.162873 81.908078 11.599683 81.982703 L 2.83325 82.387247 C 1.266132 82.461872 -1.267179 82.611121 -2.826441 82.721094 L -11.907084 83.373078 C -13.470274 83.483051 -15.995729 83.404499 -17.547137 83.200263 L -26.883074 81.955209 C -28.434481 81.750974 -30.633945 80.725866 -31.788663 79.673266 L -39.007617 73.102369 C -40.166263 72.049768 -42.302885 70.773294 -43.77574 70.250921 L -52.813178 67.065627 C -54.286033 66.543254 -56.214492 65.086109 -57.117843 63.805707 L -62.518311 56.146861 C -63.421662 54.870387 -64.98878 52.875159 -66.017815 51.696875 L -72.046702 44.807841 C -73.079664 43.629557 -74.556447 41.579343 -75.349824 40.232171 L -80.11402 32.125577 C -80.907398 30.774478 -81.618296 28.413982 -81.704703 26.850792 L -82.227076 17.35775 C -82.313483 15.79456 -82.725883 13.304453 -83.150065 11.79625 L -85.710869 2.72739 C -86.135051 1.223114 -86.476753 -1.270921 -86.476753 -2.834111 L -86.453188 -12.405705 C -86.44926 -13.972823 -85.895467 -16.384377 -85.219917 -17.798318 L -81.040936 -26.494054 C -80.361459 -27.907995 -79.116406 -30.111386 -78.260186 -31.419282 L -73.264262 -39.030997 C -72.408042 -40.34282 -70.982318 -42.440165 -70.082895 -43.724495 L -65.051622 -50.900245 C -64.152198 -52.180647 -62.679343 -54.246571 -61.756354 -55.511263 L -56.375524 -62.903031 C -55.452535 -64.167723 -53.783299 -66.06476 -52.644291 -67.140926 L -45.715981 -73.664692 C -44.576973 -74.736931 -42.452134 -76.021261 -40.971424 -76.527923 L -31.992899 -79.615027 C -30.512189 -80.121689 -28.049575 -80.644062 -26.490313 -80.7776 L -17.248638 -81.570978 C -15.689376 -81.704517 -13.17963 -82.06193 -11.643934 -82.364356 L -2.77931 -84.123927 C -1.243613 -84.426353 1.258277 -84.823042 2.813612 -85.011568 L 12.436265 -86.154503 C 13.9916 -86.339101 16.407082 -85.969905 17.832806 -85.321849 L 26.603167 -81.358887 C 28.032818 -80.714759 30.346182 -79.677869 31.779761 -79.041595 L 40.216275 -75.294652 C 41.649854 -74.662306 43.876811 -73.460457 45.192561 -72.612092 L 53.024223 -67.565109 C 54.339973 -66.716744 56.091689 -64.961101 56.936126 -63.64535 L 62.010602 -55.703716 C 62.855039 -54.384038 64.28469 -52.29062 65.20768 -51.025928 L 70.392129 -43.89731 C 71.315119 -42.628691 72.819395 -40.586332 73.750239 -39.329495 L 79.370654 -31.776695 C 80.301498 -30.523786 81.487638 -28.308612 82.017865 -26.835757 L 85.230653 -17.865088 C 85.760881 -16.392232 86.200774 -13.929619 86.220412 -12.362501 L 86.33824 -2.834111 C 86.357878 -1.270921 85.996538 1.211331 85.533079 2.707752 Z M 85.533079 2.707752 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<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 84.801903 2.721474 L 82.20682 11.635702 C 81.771693 13.137087 81.066081 15.575368 80.634874 17.080673 L 78.235794 25.465692 C 77.808507 26.970998 77.020574 29.385758 76.483525 30.855782 L 73.437634 39.174161 C 72.900585 40.644185 71.748086 42.886462 70.866072 44.176164 L 65.824868 51.553726 C 64.942853 52.847348 63.398347 54.854421 62.37129 56.038281 L 56.436312 62.902315 C 55.409254 64.086175 53.523703 65.752203 52.222241 66.622457 L 44.652596 71.683261 C 43.351134 72.557436 41.089256 73.651134 39.599631 74.129382 L 30.999008 76.889108 C 29.509384 77.367356 27.145584 78.276811 25.714761 78.919702 L 17.368942 82.671204 C 15.938118 83.314095 13.515518 83.929545 11.955332 84.047147 L 2.8255 84.729238 C 1.265314 84.84684 -1.263128 85.050684 -2.823314 85.183966 L -12.384353 86.00718 C -13.944539 86.140462 -16.335779 85.670054 -17.727402 84.956602 L -26.324105 80.542609 C -27.715728 79.829157 -29.930565 78.590416 -31.267307 77.778963 L -38.942795 73.121925 C -40.283457 72.306552 -42.513974 71.110932 -43.933038 70.444521 L -52.259257 66.540136 C -53.67832 65.877645 -55.606992 64.337059 -56.571328 63.106159 L -62.208382 55.897159 C -63.172718 54.666258 -64.893627 52.812067 -66.053966 51.76149 L -73.125764 45.336503 C -74.282183 44.282005 -75.391561 42.17301 -75.603245 40.620665 L -76.916467 30.942024 C -77.12815 29.393598 -77.747521 26.947477 -78.29633 25.481373 L -81.424542 17.186515 C -81.977271 15.72041 -82.479039 13.26645 -82.54568 11.702344 L -82.922007 2.831236 C -82.988648 1.26713 -83.310093 -1.241712 -83.643299 -2.770537 L -85.740533 -12.453098 C -86.069819 -13.981924 -85.971817 -16.439805 -85.51709 -17.93727 L -82.745604 -27.106302 C -82.294796 -28.603767 -81.32262 -30.936206 -80.573888 -32.312149 L -76.057972 -40.642287 C -75.31316 -42.01823 -73.866656 -44.084104 -72.831759 -45.256204 L -66.661576 -52.23784 C -65.626679 -53.41386 -63.780328 -55.138688 -62.541588 -56.095184 L -55.399229 -61.614636 C -54.160488 -62.571132 -52.137734 -64.103877 -50.879394 -65.036853 L -43.823276 -70.27406 C -42.564935 -71.207036 -40.397139 -72.500657 -38.981996 -73.167068 L -30.996823 -76.91073 C -29.581679 -77.577142 -27.315882 -78.721801 -25.939939 -79.466613 L -17.543159 -84.025649 C -16.171136 -84.774381 -13.787737 -85.29183 -12.227551 -85.185988 L -2.827234 -84.547018 C -1.267048 -84.441176 1.261394 -84.198132 2.81374 -84.006049 L 11.743648 -82.90451 C 13.295994 -82.712427 15.773475 -82.191058 17.27094 -81.740251 L 25.801002 -79.164768 C 27.302387 -78.71004 29.756348 -78.08283 31.289093 -77.761385 L 40.646289 -75.793512 C 42.179034 -75.468146 44.30763 -74.299967 45.397408 -73.174908 L 52.010558 -66.373595 C 53.104256 -65.248536 54.997648 -63.570749 56.240308 -62.618173 L 63.613951 -56.992879 C 64.860532 -56.040303 66.632401 -54.260594 67.577137 -53.010093 L 73.225951 -45.526688 C 74.170687 -44.276188 75.150703 -42.01431 75.421187 -40.469804 L 77.063695 -31.018527 C 77.330259 -29.477941 78.00451 -27.039661 78.56116 -25.577477 L 81.752093 -17.239498 C 82.312662 -15.777314 83.006514 -13.346873 83.304438 -11.810208 L 85.052788 -2.782297 C 85.350713 -1.245632 85.237031 1.220089 84.801903 2.721474 Z M 84.801903 2.721474 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="197.583344" y="114.504767"/>
<use xlink:href="#glyph-0-0" x="197.532389" y="117.507933"/>
</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 113.387714 -28.347888 L 131.431171 -28.347888 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 221.207031 112.304688 L 216.785156 110.628906 L 218.253906 112.304688 L 216.785156 113.976562 Z M 221.207031 112.304688 "/>
<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 113.387019 -28.345043 L 131.431079 -28.345043 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 221.199219 115.300781 L 216.769531 113.625 L 218.246094 115.300781 L 216.769531 116.980469 Z M 221.199219 115.300781 "/>
<g clip-path="url(#clip-1)">
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.055186 -0.00108793 L 1.609128 1.683858 L 3.08591 -0.00108793 L 1.609128 -1.682107 Z M 6.055186 -0.00108793 " transform="matrix(0.994561, 0, 0, -0.994561, 215.184781, 112.303605)"/>
<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.052833 0.00175737 L 1.607479 1.683465 L 3.089263 0.00175737 L 1.607479 -1.683871 Z M 6.052833 0.00175737 " transform="matrix(0.996476, 0, 0, -0.996476, 215.167718, 115.302532)"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-1" x="213.153192" y="108.505577"/>
<use xlink:href="#glyph-1-0" x="213.133213" y="111.496194"/>
</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 113.387714 -28.347888 L 113.387714 -10.304432 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<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.053624 -0.000474325 L 1.607565 1.684472 L 3.088276 -0.000474325 L 1.607565 -1.681493 Z M 6.053624 -0.000474325 " transform="matrix(0, -0.994561, -0.994561, 0, 200.062028, 97.180853)"/>
<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 113.387019 -28.345043 L 113.387019 -10.300982 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
<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.054811 0.000221101 L 1.609457 1.681929 L 3.087322 0.000221101 L 1.609457 -1.681487 Z M 6.054811 0.000221101 " transform="matrix(0, -0.996476, -0.996476, 0, 200.015845, 100.15066)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-2" x="203.858028" y="97.813055"/>
<use xlink:href="#glyph-1-1" x="203.820151" y="100.78408"/>
</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 114.522795 -28.347888 C 114.522795 -27.71947 114.012205 -27.212808 113.387714 -27.212808 C 112.759296 -27.212808 112.252634 -27.71947 112.252634 -28.347888 C 112.252634 -28.972378 112.759296 -29.479041 113.387714 -29.479041 C 114.012205 -29.479041 114.522795 -28.972378 114.522795 -28.347888 Z M 114.522795 -28.347888 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<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 117.924108 -28.347888 C 117.924108 -25.842071 115.893532 -23.811494 113.387714 -23.811494 C 110.881897 -23.811494 108.851321 -25.842071 108.851321 -28.347888 C 108.851321 -30.849778 110.881897 -32.880354 113.387714 -32.880354 C 115.893532 -32.880354 117.924108 -30.849778 117.924108 -28.347888 Z M 117.924108 -28.347888 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<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 114.519918 -28.345043 C 114.519918 -27.721752 114.014229 -27.212144 113.387019 -27.212144 C 112.759808 -27.212144 112.25412 -27.721752 112.25412 -28.345043 C 112.25412 -28.972253 112.759808 -29.481862 113.387019 -29.481862 C 114.014229 -29.481862 114.519918 -28.972253 114.519918 -28.345043 Z M 114.519918 -28.345043 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
<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 117.922534 -28.345043 C 117.922534 -25.840121 115.891941 -23.809527 113.387019 -23.809527 C 110.882097 -23.809527 108.851503 -25.840121 108.851503 -28.345043 C 108.851503 -30.849964 110.882097 -32.880558 113.387019 -32.880558 C 115.891941 -32.880558 117.922534 -30.849964 117.922534 -28.345043 Z M 117.922534 -28.345043 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-3" x="186.212532" y="114.436143"/>
<use xlink:href="#glyph-1-2" x="186.140678" y="117.439176"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-2" x="203.858028" y="123.532395"/>
<use xlink:href="#glyph-0-1" x="203.820151" y="126.552943"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-4" x="208.811935" y="123.532395"/>
<use xlink:href="#glyph-1-3" x="208.783596" y="126.552943"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-3" x="216.645095" y="123.532395"/>
<use xlink:href="#glyph-0-2" x="216.63184" y="126.552943"/>
</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 -42.518903 42.52197 L -18.807901 42.52197 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<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.054275 0.00176994 L 1.608216 1.682789 L 3.088927 0.00176994 L 1.608216 -1.683176 Z M 6.054275 0.00176994 " transform="matrix(0.994561, 0, 0, -0.994561, 65.763812, 41.822073)"/>
<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 -42.521815 42.521896 L -18.80542 42.521896 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
<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.054493 0.00169619 L 1.609139 1.683404 L 3.087004 0.00169619 L 1.609139 -1.683932 Z M 6.054493 0.00169619 " transform="matrix(0.996476, 0, 0, -0.996476, 65.459031, 44.685284)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="42.525365" y="44.024229"/>
<use xlink:href="#glyph-0-0" x="42.176833" y="46.891681"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="40.287603" y="36.098575"/>
<use xlink:href="#glyph-1-4" x="40.013485" y="38.949769"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-1" x="45.272341" y="37.584449"/>
<use xlink:href="#glyph-1-5" x="39.934065" y="38.949769"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="63.843773" y="36.09758"/>
<use xlink:href="#glyph-2-0" x="44.9291" y="40.4395"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="68.62359" y="36.09758"/>
<use xlink:href="#glyph-1-6" x="63.536292" y="38.949769"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-3-1" x="73.607376" y="37.584449"/>
<use xlink:href="#glyph-1-5" x="68.325313" y="38.949769"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-1" x="78.100801" y="37.584449"/>
</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 42.521784 42.52197 L 66.232787 42.52197 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<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.054572 0.00176994 L 1.608514 1.682789 L 3.089224 0.00176994 L 1.608514 -1.683176 Z M 6.054572 0.00176994 " transform="matrix(0.994561, 0, 0, -0.994561, 150.341642, 41.822073)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="127.102806" y="44.024229"/>
<use xlink:href="#glyph-3-0" x="73.318694" y="40.4395"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="124.86405" y="36.098575"/>
<use xlink:href="#glyph-2-0" x="77.820772" y="40.4395"/>
</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 42.52008 42.521896 L 66.232555 42.521896 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
<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.052078 0.00169619 L 1.610644 1.683404 L 3.088509 0.00169619 L 1.610644 -1.683932 Z M 6.052078 0.00169619 " transform="matrix(0.996476, 0, 0, -0.996476, 150.19972, 44.685284)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="126.916137" y="46.891681"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-2" x="129.849783" y="37.584449"/>
<use xlink:href="#glyph-1-4" x="124.753784" y="38.949769"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="148.42022" y="36.09758"/>
<use xlink:href="#glyph-1-5" x="124.674364" y="38.949769"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="153.200037" y="36.09758"/>
<use xlink:href="#glyph-2-1" x="129.668403" y="40.4395"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-3-1" x="158.184817" y="37.584449"/>
<use xlink:href="#glyph-1-6" x="148.275595" y="38.949769"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-2" x="162.678242" y="37.584449"/>
<use xlink:href="#glyph-1-5" x="153.064616" y="38.949769"/>
</g>
<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 -70.868417 42.52197 L 99.212957 42.52197 " transform="matrix(0.994561, 0, 0, -0.994561, 87.291536, 84.110992)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-3-0" x="158.057997" y="40.4395"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-1" x="162.560075" y="40.4395"/>
</g>
<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 -70.867806 42.521896 L 99.212063 42.521896 " transform="matrix(0.996476, 0, 0, -0.996476, 87.028208, 87.055633)"/>
</svg>

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 KiB

After

Width:  |  Height:  |  Size: 209 KiB

View File

@ -97,6 +97,8 @@
* Notes :noexport:
Prefix is =modal=
** TODO [#C] Section ref:ssec:modal_solid_body_first_check can probably be removed
As the solid body assumption is already verified in section ref:ssec:modal_solid_body_assumption.
* Introduction :ignore:
@ -366,69 +368,6 @@ This excitation point and the three considered directions allows to properly exc
#+end_subfigure
#+end_figure
** Signal Processing :noexport:
<<ssec:modal_signal_processing>>
The measurements are averaged 10 times corresponding to 10 hammer impacts in order to reduce the effect of random noise.
Windowing is also used on the force and response signals.
A boxcar window (figure ref:fig:modal_windowing_force_signal) is used for the force signal as once the impact on the structure is done, the measured signal is meaningless.
The parameters are:
- *Start*: $3\%$
- *Stop*: $7\%$
#+begin_src matlab :exports none :results none
%% Boxcar window used for the force signal
figure;
plot(100*[0, 0.03, 0.03, 0.07, 0.07, 1], [0, 0, 1, 1, 0, 0]);
xlabel('Time [\%]'); ylabel('Amplitude');
xlim([0, 100]); ylim([0, 1]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/modal_windowing_force_signal.pdf', 'width', 'normal', 'height', 'normal');
#+end_src
#+name: fig:modal_windowing_force_signal
#+caption: Boxcar window used for the force signal
#+RESULTS:
[[file:figs/modal_windowing_force_signal.png]]
An exponential window (figure ref:fig:modal_windowing_acc_signal) is used for the response signal as we are measuring transient signals and most of the information is located at the beginning of the signal.
The parameters are:
- FlatTop:
- *Start*: $3\%$
- *Stop*: $2.96\%$
- Decreasing point:
- *X*: $60.4\%$
- *Y*: $14.7\%$
#+begin_src matlab :exports none :results none
%% Exponential window used for acceleration signal
x0 = 0.296;
xd = 0.604;
yd = 0.147;
alpha = log(yd)/(x0 - xd);
t = x0:0.01:1.01;
y = exp(-alpha*(t-x0));
figure;
plot(100*[0, 0.03, 0.03, x0, t], [0, 0, 1, 1, y]);
xlabel('Time [\%]'); ylabel('Amplitude');
xlim([0, 100]); ylim([0, 1]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/modal_windowing_acc_signal.pdf', 'width', 'normal', 'height', 'normal');
#+end_src
#+name: fig:modal_windowing_acc_signal
#+caption: Exponential window used for acceleration signal
#+RESULTS:
[[file:figs/modal_windowing_acc_signal.png]]
** Force and Response signals
<<ssec:modal_measured_signals>>
@ -519,7 +458,7 @@ exportFig('figs/modal_asd_acc_force.pdf', 'width', 'half', 'height', 'normal');
#+end_subfigure
#+end_figure
The frequency response function from the applied force $F_{k}$ to the measured acceleration $X_j$ is then computed and shown Figure ref:fig:modal_frf_acc_force.
The frequency response function $H_{jk}$ from the applied force $F_{k}$ to the measured acceleration $X_j$ is then computed and shown Figure ref:fig:modal_frf_acc_force.
The quality of the obtained data can be estimated using the /coherence/ function, which is shown in Figure ref:fig:modal_coh_acc_force.
Good coherence is obtained from $20\,\text{Hz}$ to $200\,\text{Hz}$ which corresponds to the frequency range of interest.
@ -581,15 +520,16 @@ exportFig('figs/modal_coh_acc_force.pdf', 'width', 'half', 'height', 'normal');
:END:
<<sec:modal_frf_processing>>
** Introduction :ignore:
The measurements have been conducted and a $n \times p \times q$ Frequency Response Functions Matrix has been computed with:
- $n$: the number of output measured accelerations: $23 \times 3 = 69$ (23 accelerometers measuring 3 directions each)
- $p$: the number of input force excitations: $3$
- $q$: the number of frequency points $\omega_i$
Thus, the FRF matrix is an $69 \times 3 \times 801$ matrix.
For each frequency point $\omega_i$, a 2D matrix is obtained that links the 3 force inputs to the 69 output accelerations:
\begin{equation}
\text{FRF}(\omega_i) = \begin{bmatrix}
All measurements where conducted and a $n \times p \times q$ Frequency Response Functions Matrix were computed with:
- $n = 69$: the number of output measured accelerations (23 3-axis accelerometers)
- $p = 3$: the number of input force excitations
- $q = 801$: the number of frequency points $\omega_{i}$
For each frequency point $\omega_{i}$, a 2D complex matrix is obtained that links the 3 force inputs to the 69 output accelerations eqref:eq:modal_frf_matrix_raw.
\begin{equation}\label{eq:modal_frf_matrix_raw}
\mathbf{H}(\omega_i) = \begin{bmatrix}
\frac{D_{1_x}}{F_x}(\omega_i) & \frac{D_{1_x}}{F_y}(\omega_i) & \frac{D_{1_x}}{F_z}(\omega_i) \\
\frac{D_{1_y}}{F_x}(\omega_i) & \frac{D_{1_y}}{F_y}(\omega_i) & \frac{D_{1_y}}{F_z}(\omega_i) \\
\frac{D_{1_z}}{F_x}(\omega_i) & \frac{D_{1_z}}{F_y}(\omega_i) & \frac{D_{1_z}}{F_z}(\omega_i) \\
@ -604,17 +544,12 @@ Therefore, only $6 \times 6 = 36$ degrees of freedom are of interest.
The objective in this section is therefore to process the Frequency Response Matrix to reduce the number of measured DoFs from 69 to 36.
In order to be able to perform this reduction of measured DoFs, the measures stages have to behave as rigid bodies in the frequency band of interest.
This
In order to be able to perform this reduction of measured DoFs, the rigid body assumption first needs to be verified (Section ref:ssec:modal_solid_body_first_check).
ref:ssec:modal_solid_body_first_check
The coordinate transformation from accelerometers DoFs to the solid body 6 DoFs (three translations and three rotations) is performed in Section ref:ssec:modal_acc_to_solid_dof.
The $69 \times 3 \times 801$ frequency response matrix is then reduced to a $36 \times 3 \times 801$ frequency response matrix where the motion of each solid body is expressed with respect to its center of mass.
To go from the accelerometers DoFs to the solid body 6 DoFs (three translations and three rotations), some computations have to be performed.
This is explained in Section ref:ssec:modal_acc_to_solid_dof.
Finally, the $69 \times 3 \times 801$ frequency response matrix is reduced to a $36 \times 3 \times 801$ frequency response matrix where the motion of each solid body is expressed with respect to the CoM of the solid body (Section ref:ssec:modal_frf_com).
To validate this reduction of DoF and the solid body assumption, the frequency response function at the accelerometer location are synthesized from the reduced frequency response matrix and are compared with the initial measurements in Section ref:ssec:modal_solid_body_assumption.
To further validate this reduction of DoF and the solid body assumption, the frequency response function at the accelerometer location are synthesized from the reduced frequency response matrix and are compared with the initial measurements in Section ref:ssec:modal_solid_body_assumption.
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
@ -639,8 +574,9 @@ To validate this reduction of DoF and the solid body assumption, the frequency r
** First verification of the solid body assumption
<<ssec:modal_solid_body_first_check>>
In this section, it is shown that two accelerometers fixed to a rigid body at positions $\vec{p}_1$ and $\vec{p}_2$ in such a way that $\vec{p}_2 = \vec{p}_1 + \alpha \vec{x}$ will measure the same value in the $\vec{x}$ direction.
Such situation is illustrated on Figure ref:fig:modal_aligned_accelerometers and is the case for many accelerometers as shown in Figure ref:fig:modal_location_accelerometers.
In this section, it is shown that two accelerometers fixed to a /rigid body/ at positions $\vec{p}_1$ and $\vec{p}_2$ such that $\vec{p}_2 = \vec{p}_1 + \alpha \vec{x}$ will measure the same acceleration in the $\vec{x}$ direction.
Such situation is illustrated in Figure ref:fig:modal_aligned_accelerometers.
#+begin_src latex :file modal_aligned_accelerometers.pdf :results file raw silent
\newcommand\irregularcircle[2]{% radius, irregularity
@ -667,8 +603,8 @@ Such situation is illustrated on Figure ref:fig:modal_aligned_accelerometers and
\coordinate[] (p1) at (-1.5, 1.5);
\coordinate[] (p2) at ( 1.5, 1.5);
\draw[->] (p1)node[]{$\bullet$}node[above]{$p_1$} -- ++(1, 0)node[above]{$\delta p_{x1}$};
\draw[->] (p2)node[]{$\bullet$}node[above]{$p_2$} -- ++(1, 0)node[above]{$\delta p_{x2}$};
\draw[->] (p1)node[]{$\bullet$}node[above]{$\vec{p}_1$} -- ++(1, 0)node[above]{$\delta p_{x1}$};
\draw[->] (p2)node[]{$\bullet$}node[above]{$\vec{p}_2$} -- ++(1, 0)node[above]{$\delta p_{x2}$};
\draw[dashed] ($(p1)+(-1, 0)$) -- ($(p2)+(2, 0)$);
\end{tikzpicture}
@ -679,39 +615,59 @@ Such situation is illustrated on Figure ref:fig:modal_aligned_accelerometers and
#+RESULTS:
[[file:figs/modal_aligned_accelerometers.png]]
The motion of the rigid body of figure ref:fig:modal_aligned_accelerometers can be defined by its displacement $\delta \vec{p}$ and rotation $\vec{\Omega}$ with respect to a reference frame $\{O\}$.
The motion of the rigid body of figure ref:fig:modal_aligned_accelerometers is here 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 a reference frame $\{O\}$.
The motions at points $1$ and $2$ are:
\begin{align*}
\delta \vec{p}_1 &= \delta \vec{p} + \vec{\Omega} \times \vec{p}_1 \\
\delta \vec{p}_2 &= \delta \vec{p} + \vec{\Omega} \times \vec{p}_2
\end{align*}
The motion of points $p_1$ and $p_2$ can be computed from $\vec{\delta} p$ and $\bm{\delta \Omega}$ eqref:eq:modal_p1_p2_motion, with $\bm{\delta\Omega}$ defined in eqref:eq:modal_rotation_matrix.
Taking only the $x$ direction:
\begin{align*}
\delta p_{x1} &= \delta p_x + \Omega_y p_{z1} - \Omega_z p_{y1} \\
\delta p_{x2} &= \delta p_x + \Omega_y p_{z2} - \Omega_z p_{y2}
\end{align*}
\begin{subequations}\label{eq:modal_p1_p2_motion}
\begin{align}
\vec{\delta} p_{1} &= \vec{\delta} p + \bm{\delta \Omega} \cdot \vec{p}_{1} \\
\vec{\delta} p_{2} &= \vec{\delta} p + \bm{\delta \Omega} \cdot \vec{p}_{2}
\end{align}
\end{subequations}
However, we have $p_{1y} = p_{2y}$ and $p_{1z} = p_{2z}$ because of the co-linearity of the two sensors in the $x$ direction, and thus we obtain:
\begin{equation}
\begin{equation}\label{eq:modal_rotation_matrix}
\bm{\delta\Omega} = \begin{bmatrix}
0 & -\delta\Omega_z & \delta\Omega_y \\
\delta\Omega_z & 0 & -\delta\Omega_x \\
-\delta\Omega_y & \delta\Omega_x & 0
\end{bmatrix}
\end{equation}
Considering only the $x$ direction, equation eqref:eq:modal_p1_p2_x_motion is obtained.
\begin{subequations}\label{eq:modal_p1_p2_x_motion}
\begin{align}
\delta p_{x1} &= \delta p_x + \delta \Omega_y p_{z1} - \delta \Omega_z p_{y1} \\
\delta p_{x2} &= \delta p_x + \delta \Omega_y p_{z2} - \delta \Omega_z p_{y2}
\end{align}
\end{subequations}
Because the two sensors are co-linearity in the $x$ direction, $p_{1y} = p_{2y}$ and $p_{1z} = p_{2z}$, and eqref:eq:modal_colinear_sensors_equal is obtained.
\begin{equation}\label{eq:modal_colinear_sensors_equal}
\boxed{\delta p_{x1} = \delta p_{x2}}
\end{equation}
It is therefore concluded that two position sensors fixed to a rigid body will measure the same quantity in the direction "linking" the two sensors.
It is therefore concluded that two position sensors fixed to a rigid body will measure the same quantity in the direction "in line" the two sensors.
Such property can be used to verify that the considered stages are indeed behaving as rigid body in the frequency band of interest.
From Table ref:tab:modal_position_accelerometers, we can identify which pair of accelerometers are aligned in the X and Y directions.
From Table ref:tab:modal_position_accelerometers, the pairs of accelerometers that aligned in the X and Y directions can be identified.
The response in the X direction of pairs of sensors aligned in the X direction are compared in Figure ref:fig:modal_solid_body_comp_x_dir.
Good match is observed up to 200Hz.
A good match is observed up to 200Hz.
Similar result is obtained for the Y direction.
This therefore indicates that the considered bodies are behaving as solid bodes in the frequency range of interest.
#+begin_src matlab
%% Load frequency response matrix
load('frf_matrix.mat', 'freqs', 'frf');
%% Load Accelerometer positions
acc_pos = readtable('mat/acc_pos.txt', 'ReadVariableNames', false);
acc_pos = table2array(acc_pos(:, 1:4));
[~, i] = sort(acc_pos(:, 1));
acc_pos = acc_pos(i, 2:4);
#+end_src
#+begin_src matlab
@ -798,9 +754,9 @@ exportFig('figs/modal_solid_body_comp_x_dir.pdf', 'width', 'full', 'height', 'ta
** From accelerometer DOFs to solid body DOFs
<<ssec:modal_acc_to_solid_dof>>
Let's 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 DOFs of the solid body expressed in the frame $\{O\}$.
Let's 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 DoFs of the solid body expressed in the frame $\{O\}$.
#+begin_src latex :file modal_local_to_global_coordinates.pdf
\newcommand\irregularcircle[2]{% radius, irregularity
@ -841,27 +797,9 @@ The goal here is to link these $4 \times 3 = 12$ measurements to the 6 DOFs of t
#+RESULTS:
[[file:figs/modal_local_to_global_coordinates.png]]
Let's consider the motion of the rigid body defined by its displacement $\delta \vec{p}$ and rotation $\delta\vec{\Omega}$ with respect to the reference frame $\{O\}$.
Writing Eq. eqref:eq:modal_p1_p2_motion for the four displacement sensors in a matrix form gives eqref:eq:modal_cart_to_acc.
From the figure ref:fig:modal_local_to_global_coordinates, we can write:
\begin{align*}
\delta \vec{p}_1 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_1\\
\delta \vec{p}_2 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_2\\
\delta \vec{p}_3 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_3\\
\delta \vec{p}_4 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_4
\end{align*}
With
\begin{equation}
\bm{\delta\Omega} = \begin{bmatrix}
0 & -\delta\Omega_z & \delta\Omega_y \\
\delta\Omega_z & 0 & -\delta\Omega_x \\
-\delta\Omega_y & \delta\Omega_x & 0
\end{bmatrix}
\end{equation}
We can rearrange the equations in a matrix form:
\begin{equation}
\begin{equation}\label{eq:modal_cart_to_acc}
\left[\begin{array}{ccc|ccc}
1 & 0 & 0 & 0 & p_{1z} & -p_{1y} \\
0 & 1 & 0 & -p_{1z} & 0 & p_{1x} \\
@ -877,7 +815,11 @@ We can rearrange the equations in a matrix form:
\end{array}\right]
\end{equation}
and then we obtain the velocity and rotation of the solid in the wanted frame $\{O\}$:
Supposing that the four sensors are properly located such that the system of equation eqref:eq:modal_cart_to_acc can be solved, the motion of the solid body expressed in a chosen frame $\{O\}$ using the accelerometers attached to it can be determined using equation eqref:eq:modal_determine_global_disp.
Note that this inversion is equivalent to resolving a mean square problem.
Therefore, having more accelerometers permits to have a better approximation of the motion of the solid body.
\begin{equation}
\left[\begin{array}{c}
\delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z
@ -895,41 +837,9 @@ and then we obtain the velocity and rotation of the solid in the wanted frame $\
\end{array}\right] \label{eq:modal_determine_global_disp}
\end{equation}
#+begin_important
Using equation eqref:eq:modal_determine_global_disp, we can determine the motion of the solid body expressed in a chosen frame $\{O\}$ using the accelerometers attached to it.
The inversion is equivalent to resolving a mean square problem.
#+end_important
** Frequency Response Matrix expressed at the Center of Mass
<<ssec:modal_frf_com>>
**** What reference frame to choose?
The question we wish here to answer is how to choose the reference frame $\{O\}$ in which the DOFs of the solid bodies are defined.
The possibles choices are:
- *One frame for each solid body* which is located at its center of mass
- *One common frame*, for instance located at the point of interest ($270mm$ above the Hexapod)
- *Base located at the joint position*: this is where we want to see the motion and estimate stiffness
#+name: tab:modal_frame_comparison
#+caption: Advantages and disadvantages for the choice of reference frame
#+attr_latex: :environment tabularx :width \linewidth :align XXX
#+attr_latex: :center t :booktabs t :font \scriptsize
| Chosen Frame | Advantages | Disadvantages |
|--------------------------+-----------------------------------------------------+------------------------------------------------------|
| Frames at CoM | Physically, it makes more sense | How to compare the motion of the solid bodies? |
| Common Frame | We can compare the motion of each solid body | Small $\theta_{x, y}$ may result in large $T_{x, y}$ |
| Frames at joint position | Directly gives which joint direction can be blocked | How to choose the joint position? |
The choice of the frame depends of what we want to do with the data.
One of the goals is to compare the motion of each solid body to see which relative DOFs between solid bodies can be neglected, that is to say, which joint between solid bodies can be regarded as perfect (and this in all the frequency range of interest).
Ideally, we would like to have the same number of degrees of freedom than the number of identified modes.
In the next sections, we will express the FRF matrix in the different frames.
**** Center of Mass of each solid body
From solidworks, we can export the position of the center of mass of each solid body considered.
These are summarized in Table ref:tab:modal_com_solid_bodies
From the CAD model, the position of the center of mass of each considered solid body is computed (see Table ref:tab:modal_com_solid_bodies).
Then, the position of each accelerometer with respect to the center of mass of the corresponding solid body can easily be derived.
#+begin_src matlab
%% Extract the CoM of considered solid bodies
@ -941,7 +851,7 @@ data2orgtable(1000*model_com', {'Bottom Granite', 'Top granite', 'Translation st
#+end_src
#+name: tab:modal_com_solid_bodies
#+caption: Center of mass of considered solid bodies
#+caption: Center of mass of considered solid bodies with respect to the "point of interest"
#+attr_latex: :environment tabularx :width 0.6\linewidth :align lXXX
#+attr_latex: :center t :booktabs t
#+RESULTS:
@ -954,17 +864,10 @@ data2orgtable(1000*model_com', {'Bottom Granite', 'Top granite', 'Translation st
| Spindle | 0 | 0 | -580 |
| Hexapod | -4 | 6 | -319 |
Using eqref:eq:modal_determine_global_disp, the frequency response matrix $\bm{H}_\text{CoM}$ eqref:eq:modal_frf_matrix_com expressing the response $D_i$ ($i$ from $1$ to $6$ for the $6$ considered solid bodies) at the center of mass of each solid body can be computed from the initial FRF matrix $\bm{H}$.
**** Computation
First, we initialize a new FRF matrix which is an $n \times p \times q$ with:
- $n$ is the number of DOFs of the considered 6 solid-bodies: $6 \times 6 = 36$
- $p$ is the number of excitation inputs: $3$
- $q$ is the number of frequency points $\omega_i$
#+begin_important
For each frequency point $\omega_i$, the FRF matrix is a $n\times p$ matrix:
\begin{equation}
\text{FRF}_\text{CoM}(\omega_i) = \begin{bmatrix}
\begin{equation}\label{eq:modal_frf_matrix_com}
\bm{H}_\text{CoM}(\omega_i) = \begin{bmatrix}
\frac{D_{1,T_x}}{F_x}(\omega_i) & \frac{D_{1,T_x}}{F_y}(\omega_i) & \frac{D_{1,T_x}}{F_z}(\omega_i) \\
\frac{D_{1,T_y}}{F_x}(\omega_i) & \frac{D_{1,T_y}}{F_y}(\omega_i) & \frac{D_{1,T_y}}{F_z}(\omega_i) \\
\frac{D_{1,T_z}}{F_x}(\omega_i) & \frac{D_{1,T_z}}{F_y}(\omega_i) & \frac{D_{1,T_z}}{F_z}(\omega_i) \\
@ -976,10 +879,6 @@ For each frequency point $\omega_i$, the FRF matrix is a $n\times p$ matrix:
\frac{D_{6,R_z}}{F_x}(\omega_i) & \frac{D_{6,R_z}}{F_y}(\omega_i) & \frac{D_{6,R_z}}{F_z}(\omega_i)
\end{bmatrix}
\end{equation}
where 1, 2, ..., 6 corresponds to the 6 solid bodies.
#+end_important
Then, as we know the positions of the accelerometers on each solid body, and we have the response of those accelerometers, we can use the equations derived in the previous section to determine the response of each solid body expressed in their center of mass.
#+begin_src matlab
%% Frequency Response Matrix - Response expressed at the CoM of the solid bodies
@ -1018,29 +917,13 @@ save('mat/frf_com.mat', 'FRFs_CoM');
save('matlab/mat/frf_com.mat', 'FRFs_CoM');
#+end_src
** Verify that we find the original FRF from the FRF in the global coordinates
** Verification of solid body assumption
<<ssec:modal_solid_body_assumption>>
We have computed the Frequency Response Functions Matrix representing the response of the 6 solid bodies in their 6 DOFs with respect to their center of mass.
From the response of one solid body along its 6 DoFs (from $\bm{H}_{\text{CoM}}$), and using eqref:eq:modal_cart_to_acc, it is possible to compute the response of the same solid body at any location, in particular at the location of the accelerometers fixed to this solid body.
From the response of one body in its 6 DOFs, we should be able to compute the FRF of each of its accelerometer fixed to it during the measurement, supposing that this stage is a solid body.
Comparing the computed response of a particular accelerometer from $\bm{H}_{\text{CoM}}$ with the original measurements $\bm{H}$ is useful to check if the change of coordinate eqref:eq:modal_determine_global_disp works as expected, and if the solid body assumption is correct in the frequency band of interest.
We can then compare the result with the original measurements.
This will help us to determine if:
- the previous inversion used is correct
- the solid body assumption is correct in the frequency band of interest
From the translation $\delta p$ and rotation $\delta \Omega$ of a solid body and the positions $p_i$ of the accelerometers attached to it, we can compute the response that would have been measured by the accelerometers using the following formula:
\begin{align*}
\delta p_1 &= \delta p + \delta\Omega p_1\\
\delta p_2 &= \delta p + \delta\Omega p_2\\
\delta p_3 &= \delta p + \delta\Omega p_3\\
\delta p_4 &= \delta p + \delta\Omega p_4
\end{align*}
Thus, we can obtain the FRF matrix =FRFs_A= that gives the responses of the accelerometers to the forces applied by the hammer.
It is implemented in matlab as follow:
#+begin_src matlab
FRFs_A = zeros(size(frf));
@ -1064,13 +947,10 @@ for exc_dir = 1:3
end
#+end_src
We then compare the original FRF measured for each accelerometer =FRFs= with the "recovered" FRF =FRFs_A= from the global FRF matrix in the common frame.
The FRF for the 4 accelerometers on the Hexapod are compared in Figure ref:fig:modal_comp_acc_solid_body_frf.
All the FRF are matching very well in all the frequency range displayed.
# The FRF for accelerometers located on the translation stage are compared on figure ref:fig:modal_recovered_frf_comparison_ty.
# The FRF are matching well until 100Hz.
The comparison is made for the 4 accelerometers fixed to the micro-hexapod in Figure ref:fig:modal_comp_acc_solid_body_frf.
The original frequency response functions and the ones computed from the CoM responses are well matching in the frequency range of interested.
Similar results are obtained for the other solid bodies, indicating that the solid body assumption is valid, and that a multi-body model can be used to represent the dynamics of the micro-station.
This also validates the reduction of the number of degrees of freedom from 69 (23 accelerometers with each 3DoF) to 36 (6 solid bodies with 6 DoF).
#+begin_src matlab :exports none :results none
%% Comparaison of the original accelerometer response and reconstructed response from the solid body response
@ -1083,7 +963,7 @@ exc_dir = 1; % Excited direction
accs_i = solids.(solid_names{solid_i}); % Accelerometers fixed to this solid body
figure;
tiledlayout(2, 2, 'TileSpacing', 'Compact', 'Padding', 'None');
tiledlayout(2, 2, 'TileSpacing', 'Tight', 'Padding', 'None');
for i = 1:length(accs_i)
acc_i = accs_i(i);
@ -1111,9 +991,10 @@ for i = 1:length(accs_i)
set(gca, 'YTickLabel',[]);
end
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlim([5, 200]); ylim([1e-6, 1e-1]);
legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log');
xlim([0, 200]); ylim([1e-6, 3e-2]);
xticks([0:20:200]);
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
end
#+end_src
@ -1122,17 +1003,10 @@ exportFig('figs/modal_comp_acc_solid_body_frf.pdf', 'width', 'full', 'height', '
#+end_src
#+name: fig:modal_comp_acc_solid_body_frf
#+caption: Comparaison of the original accelerometer response and reconstructed response from the solid body response. For accelerometers 1 to 4 corresponding to the hexapod.
#+caption: Comparaison of the original accelerometer response (solid curves) and reconstructed response from the solid body response (dashed curves). For accelerometers 1 to 4 corresponding to the micro-hexapod.
#+RESULTS:
[[file:figs/modal_comp_acc_solid_body_frf.png]]
#+begin_important
The reduction of the number of degrees of freedom from 69 (23 accelerometers with each 3DOF) to 36 (6 solid bodies with 6 DOF) seems to work well.
This confirms the fact that the stages are indeed behaving as a solid body in the frequency band of interest.
This valid the fact that a multi-body model can be used to represent the dynamics of the micro-station.
#+end_important
* Modal Analysis
:PROPERTIES:
:HEADER-ARGS:matlab+: :tangle matlab/modal_3_analysis.m

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2024-06-26 Wed 16:06
% Created 2024-06-26 Wed 17:58
% Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
@ -63,7 +63,7 @@ Obtained force and acceleration signals are shown in Section \ref{ssec:modal_mea
Three equipment are key to perform a good modal analysis.
First, \emph{accelerometers} are used to measure the response of the structure.
Here, 3-axis accelerometers\footnote{PCB 393B05. Sensitivity is \(10\,V/g\), measurement range is \(0.5\,g\) and bandwidth is \(0.7\) to \(450\,\text{Hz}\).} shown in figure \ref{fig:modal_accelero_M393B05} are used.
These accelerometers are glued to the micro-station using a thin layer of wax for best results (see \cite[chapt. 3.5.7]{ewins00_modal}).
These accelerometers are glued to the micro-station using a thin layer of wax for best results \cite[chapt. 3.5.7]{ewins00_modal}.
\begin{figure}[htbp]
\begin{subfigure}{0.33\textwidth}
@ -88,8 +88,8 @@ These accelerometers are glued to the micro-station using a thin layer of wax fo
\end{figure}
Then, an \emph{instrumented hammer}\footnote{Kistler 9722A2000. Sensitivity of \(2.3\,mV/N\) and measurement range of \(2\,kN\)} (figure \ref{fig:modal_instrumented_hammer}) is used to apply forces to the structure in a controlled way.
Tests have been conducted to determine the most suitable hammer tip (ranging from hard metallic one to soft plastic).
The softer tip has been found to give best results as it permits to inject more energy in the low frequency range where the coherence was low, such that the overall coherence was improved.
Tests have been conducted to determine the most suitable hammer tip (ranging from a metallic one to a soft plastic one).
The softer tip has been found to give best results as it injects more energy in the low frequency range where the coherence was low, such that the overall coherence was improved.
Finally, an \emph{acquisition system}\footnote{OROS OR36. 24bits signal-delta ADC.} (figure \ref{fig:modal_oros}) is used to acquire the injected force and the response accelerations in a synchronized way and with sufficiently low noise.
@ -97,28 +97,28 @@ Finally, an \emph{acquisition system}\footnote{OROS OR36. 24bits signal-delta AD
\label{ssec:modal_test_preparation}
In order to obtain meaningful results, the modal analysis of the micro-station in performed \emph{in-situ}.
To do so, the local position control of all the micro-station stages are turned ON.
This is especially important for stages for which the stiffness is provided by local feedback control, which is case for the air bearing spindle, and the \(T_y\) stage.
To do so, all the micro-station stages controllers are turned ``ON''.
This is especially important for stages for which the stiffness is provided by local feedback control, which is case for the air bearing spindle, and the translation stage.
If these local feedback control were turned OFF, this would have resulted in very low frequency modes difficult to measure in practice, and this would also have lead to decoupled dynamics which would not be the case in practice.
The top part representing the active stabilization stage and the sample platform have been removed in order to reduce the complexity of the dynamics and also because the active stabilization stage and the sample will be added in the multi-body model afterwards.
The top part representing the active stabilization stage has been disassembled in order to reduce the complexity of the dynamics and also because the active stabilization stage and the sample will be added in the multi-body model afterwards.
To perform the modal-analysis from the measured responses, the \(n \times n\) frequency response function matrix \(\mathbf{H}\) needs to be measured, with \(n\) is the considered number of degrees of freedom.
To perform the modal-analysis from the measured responses, the \(n \times n\) frequency response function matrix \(\mathbf{H}\) needs to be measured, where \(n\) is the considered number of degrees of freedom.
The \(H_{jk}\) element of this FRF matrix corresponds to the frequency response function from a force \(F_k\) applied at DoF \(k\) to the displacement of the structure \(X_j\) at DoF \(j\).
Measuring this FRF matrix is very time consuming as it requires to make \(n^2\) measurements.
However thanks to the principle of reciprocity (\(H_{jk} = H_{kj}\)) and using the \emph{point measurement} (\(H_{jj}\)), it is possible to reconstruct the full matrix by measuring only one column or one line of the matrix \(\mathbf{H}\) \cite[chapt. 5.2]{ewins00_modal}.
Therefore, a minimum set of \(n\) frequency response functions needs to be measured.
This can be done either by measuring the response \(X_{j}\) at a fixed DoF \(j\) while applying forces \(F_{i}\) for at all \(n\) considered DoF, or by applying a force \(F_{k}\) at a fixed DoF and measuring the response \(X_{i}\) for all \(n\) DoF.
This can be done either by measuring the response \(X_{j}\) at a fixed DoF \(j\) while applying forces \(F_{i}\) for at all \(n\) considered DoF, or by applying a force \(F_{k}\) at a fixed DoF \(k\) and measuring the response \(X_{i}\) for all \(n\) DoF.
It is however not advice to measure only one row or one column as one or more modes may be missed by an unfortunate choice of force or acceleration measured locations.
In this modal-analysis, it is chosen to measure the response of the structure at all considered DoF, and to excite the structure at one location in three directions in order to have some redundancy and to make sure that all modes are excited.
It is however not advised to measure only one row or one column as one or more modes may be missed by an unfortunate choice of force or acceleration measured locations.
In this modal-analysis, it is chosen to measure the response of the structure at all considered DoF, and to excite the structure at one location in three directions in order to have some redundancy and to make sure that all modes are properly excited.
\section{Location of the Accelerometers}
\label{ssec:modal_accelerometers}
The location of the accelerometers fixed to the micro-station is essential as it defines at which points the dynamics is identified.
The location of the accelerometers fixed to the micro-station is essential as it defines where the dynamics is identified.
A total of 23 accelerometers are fixed to the six key stages of the micro station: the lower and upper granites, the translation stage, the tilt stage, the spindle and the micro hexapod.
The position of the accelerometers are visually shown on a CAD model in Figure \ref{fig:modal_location_accelerometers} and their precise locations with respect to a frame located at the point of interest are summarized in Table \ref{tab:modal_position_accelerometers}.
Pictures of the accelerometers fixed to the translation stage and to the micro-hexapod are shown in Figure \ref{fig:modal_accelerometer_pictures}.
@ -172,7 +172,7 @@ Hexapod & 64 & -64 & -270\\
\begin{figure}
\begin{figure}[htbp]
\begin{subfigure}{0.49\textwidth}
\begin{center}
\includegraphics[scale=1,height=6cm]{figs/modal_accelerometers_ty.jpg}
@ -191,13 +191,13 @@ Hexapod & 64 & -64 & -270\\
\section{Hammer Impacts}
\label{ssec:modal_hammer_impacts}
The impact location corresponds to the location of accelerometer \(11\) fixed to the translation stage.
The chosen location of the hammer impact corresponds to the location of accelerometer number \(11\) fixed to the translation stage.
It was chosen to match the location of one accelerometer, because a \emph{point measurement} (i.e. a measurement of \(H_{kk}\)) is necessary to be able to reconstruct the full FRF matrix \cite{ewins00_modal}.
The impacts are performed in three directions, which are shown in figures \ref{fig:modal_impact_x}, \ref{fig:modal_impact_y} and \ref{fig:modal_impact_z}.
This excitation point and the three considered directions were chosen in order to properly excite all the modes in the frequency band of interest and because it provides good coherence for all the accelerometers.
This excitation point and the three considered directions allows to properly excite all the modes in the frequency band of interest and to provide good coherence for all the accelerometers as will be shown in the next section.
This excitation point corresponds to the location of one accelerometer, because a \emph{point measurement} is necessary to be able to reconstruct the full FRF matrix \cite{ewins00_modal}.
\begin{figure}
\begin{figure}[htbp]
\begin{subfigure}{0.33\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.8\linewidth]{figs/modal_impact_x.jpg}
@ -245,7 +245,7 @@ Conclusions based on the time domain signals can be clearly seen in the frequenc
\caption{\label{fig:modal_raw_meas_asd}Raw measurement of the acceleromter (blue) and of the force sensor at the Hammer tip (red) (\subref{fig:modal_raw_meas}). Computed Amplitude Spectral Density of the two signals (normalized) (\subref{fig:modal_asd_acc_force})}
\end{figure}
The frequency response function from the applied force \(F_{k}\) to the measured acceleration \(X_j\) is then computed and shown Figure \ref{fig:modal_frf_acc_force}.
The frequency response function \(H_{jk}\) from the applied force \(F_{k}\) to the measured acceleration \(X_j\) is then computed and shown Figure \ref{fig:modal_frf_acc_force}.
The quality of the obtained data can be estimated using the \emph{coherence} function, which is shown in Figure \ref{fig:modal_coh_acc_force}.
Good coherence is obtained from \(20\,\text{Hz}\) to \(200\,\text{Hz}\) which corresponds to the frequency range of interest.
@ -267,17 +267,17 @@ Good coherence is obtained from \(20\,\text{Hz}\) to \(200\,\text{Hz}\) which co
\chapter{Frequency Analysis}
\label{sec:modal_frf_processing}
The measurements have been conducted and a \(n \times p \times q\) Frequency Response Functions Matrix has been computed with:
All measurements where conducted and a \(n \times p \times q\) Frequency Response Functions Matrix were computed with:
\begin{itemize}
\item \(n\): the number of output measured accelerations: \(23 \times 3 = 69\) (23 accelerometers measuring 3 directions each)
\item \(p\): the number of input force excitations: \(3\)
\item \(q\): the number of frequency points \(\omega_i\)
\item \(n = 69\): the number of output measured accelerations (23 3-axis accelerometers)
\item \(p = 3\): the number of input force excitations
\item \(q = 801\): the number of frequency points \(\omega_{i}\)
\end{itemize}
Thus, the FRF matrix is an \(69 \times 3 \times 801\) matrix.
For each frequency point \(\omega_i\), a 2D matrix is obtained that links the 3 force inputs to the 69 output accelerations:
\begin{equation}
\text{FRF}(\omega_i) = \begin{bmatrix}
For each frequency point \(\omega_{i}\), a 2D complex matrix is obtained that links the 3 force inputs to the 69 output accelerations \eqref{eq:modal_frf_matrix_raw}.
\begin{equation}\label{eq:modal_frf_matrix_raw}
\mathbf{H}(\omega_i) = \begin{bmatrix}
\frac{D_{1_x}}{F_x}(\omega_i) & \frac{D_{1_x}}{F_y}(\omega_i) & \frac{D_{1_x}}{F_z}(\omega_i) \\
\frac{D_{1_y}}{F_x}(\omega_i) & \frac{D_{1_y}}{F_y}(\omega_i) & \frac{D_{1_y}}{F_z}(\omega_i) \\
\frac{D_{1_z}}{F_x}(\omega_i) & \frac{D_{1_z}}{F_y}(\omega_i) & \frac{D_{1_z}}{F_z}(\omega_i) \\
@ -292,21 +292,17 @@ Therefore, only \(6 \times 6 = 36\) degrees of freedom are of interest.
The objective in this section is therefore to process the Frequency Response Matrix to reduce the number of measured DoFs from 69 to 36.
In order to be able to perform this reduction of measured DoFs, the measures stages have to behave as rigid bodies in the frequency band of interest.
This
In order to be able to perform this reduction of measured DoFs, the rigid body assumption first needs to be verified (Section \ref{ssec:modal_solid_body_first_check}).
\ref{ssec:modal_solid_body_first_check}
The coordinate transformation from accelerometers DoFs to the solid body 6 DoFs (three translations and three rotations) is performed in Section \ref{ssec:modal_acc_to_solid_dof}.
The \(69 \times 3 \times 801\) frequency response matrix is then reduced to a \(36 \times 3 \times 801\) frequency response matrix where the motion of each solid body is expressed with respect to its center of mass.
To go from the accelerometers DoFs to the solid body 6 DoFs (three translations and three rotations), some computations have to be performed.
This is explained in Section \ref{ssec:modal_acc_to_solid_dof}.
Finally, the \(69 \times 3 \times 801\) frequency response matrix is reduced to a \(36 \times 3 \times 801\) frequency response matrix where the motion of each solid body is expressed with respect to the CoM of the solid body (Section \ref{ssec:modal_frf_com}).
To validate this reduction of DoF and the solid body assumption, the frequency response function at the accelerometer location are synthesized from the reduced frequency response matrix and are compared with the initial measurements in Section \ref{ssec:modal_solid_body_assumption}.
To further validate this reduction of DoF and the solid body assumption, the frequency response function at the accelerometer location are synthesized from the reduced frequency response matrix and are compared with the initial measurements in Section \ref{ssec:modal_solid_body_assumption}.
\section{First verification of the solid body assumption}
\label{ssec:modal_solid_body_first_check}
In this section, it is shown that two accelerometers fixed to a rigid body at positions \(\vec{p}_1\) and \(\vec{p}_2\) in such a way that \(\vec{p}_2 = \vec{p}_1 + \alpha \vec{x}\) will measure the same value in the \(\vec{x}\) direction.
Such situation is illustrated on Figure \ref{fig:modal_aligned_accelerometers} and is the case for many accelerometers as shown in Figure \ref{fig:modal_location_accelerometers}.
In this section, it is shown that two accelerometers fixed to a \emph{rigid body} at positions \(\vec{p}_1\) and \(\vec{p}_2\) such that \(\vec{p}_2 = \vec{p}_1 + \alpha \vec{x}\) will measure the same acceleration in the \(\vec{x}\) direction.
Such situation is illustrated in Figure \ref{fig:modal_aligned_accelerometers}.
\begin{figure}[htbp]
\centering
@ -314,35 +310,49 @@ Such situation is illustrated on Figure \ref{fig:modal_aligned_accelerometers} a
\caption{\label{fig:modal_aligned_accelerometers}Aligned measurement of the motion of a solid body}
\end{figure}
The motion of the rigid body of figure \ref{fig:modal_aligned_accelerometers} can be defined by its displacement \(\delta \vec{p}\) and rotation \(\vec{\Omega}\) with respect to a reference frame \(\{O\}\).
The motion of the rigid body of figure \ref{fig:modal_aligned_accelerometers} is here 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 a reference frame \(\{O\}\).
The motions at points \(1\) and \(2\) are:
\begin{align*}
\delta \vec{p}_1 &= \delta \vec{p} + \vec{\Omega} \times \vec{p}_1 \\
\delta \vec{p}_2 &= \delta \vec{p} + \vec{\Omega} \times \vec{p}_2
\end{align*}
The motion of points \(p_1\) and \(p_2\) can be computed from \(\vec{\delta} p\) and \(\bm{\delta \Omega}\) \eqref{eq:modal_p1_p2_motion}, with \(\bm{\delta\Omega}\) defined in \eqref{eq:modal_rotation_matrix}.
Taking only the \(x\) direction:
\begin{align*}
\delta p_{x1} &= \delta p_x + \Omega_y p_{z1} - \Omega_z p_{y1} \\
\delta p_{x2} &= \delta p_x + \Omega_y p_{z2} - \Omega_z p_{y2}
\end{align*}
\begin{subequations}\label{eq:modal_p1_p2_motion}
\begin{align}
\vec{\delta} p_{1} &= \vec{\delta} p + \bm{\delta \Omega} \cdot \vec{p}_{1} \\
\vec{\delta} p_{2} &= \vec{\delta} p + \bm{\delta \Omega} \cdot \vec{p}_{2}
\end{align}
\end{subequations}
However, we have \(p_{1y} = p_{2y}\) and \(p_{1z} = p_{2z}\) because of the co-linearity of the two sensors in the \(x\) direction, and thus we obtain:
\begin{equation}
\begin{equation}\label{eq:modal_rotation_matrix}
\bm{\delta\Omega} = \begin{bmatrix}
0 & -\delta\Omega_z & \delta\Omega_y \\
\delta\Omega_z & 0 & -\delta\Omega_x \\
-\delta\Omega_y & \delta\Omega_x & 0
\end{bmatrix}
\end{equation}
Considering only the \(x\) direction, equation \eqref{eq:modal_p1_p2_x_motion} is obtained.
\begin{subequations}\label{eq:modal_p1_p2_x_motion}
\begin{align}
\delta p_{x1} &= \delta p_x + \delta \Omega_y p_{z1} - \delta \Omega_z p_{y1} \\
\delta p_{x2} &= \delta p_x + \delta \Omega_y p_{z2} - \delta \Omega_z p_{y2}
\end{align}
\end{subequations}
Because the two sensors are co-linearity in the \(x\) direction, \(p_{1y} = p_{2y}\) and \(p_{1z} = p_{2z}\), and \eqref{eq:modal_colinear_sensors_equal} is obtained.
\begin{equation}\label{eq:modal_colinear_sensors_equal}
\boxed{\delta p_{x1} = \delta p_{x2}}
\end{equation}
It is therefore concluded that two position sensors fixed to a rigid body will measure the same quantity in the direction ``linking'' the two sensors.
It is therefore concluded that two position sensors fixed to a rigid body will measure the same quantity in the direction ``in line'' the two sensors.
Such property can be used to verify that the considered stages are indeed behaving as rigid body in the frequency band of interest.
From Table \ref{tab:modal_position_accelerometers}, we can identify which pair of accelerometers are aligned in the X and Y directions.
From Table \ref{tab:modal_position_accelerometers}, the pairs of accelerometers that aligned in the X and Y directions can be identified.
The response in the X direction of pairs of sensors aligned in the X direction are compared in Figure \ref{fig:modal_solid_body_comp_x_dir}.
Good match is observed up to 200Hz.
A good match is observed up to 200Hz.
Similar result is obtained for the Y direction.
This therefore indicates that the considered bodies are behaving as solid bodes in the frequency range of interest.
\begin{figure}[htbp]
\centering
@ -352,9 +362,9 @@ Similar result is obtained for the Y direction.
\section{From accelerometer DOFs to solid body DOFs}
\label{ssec:modal_acc_to_solid_dof}
Let's 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 DOFs of the solid body expressed in the frame \(\{O\}\).
Let's 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 DoFs of the solid body expressed in the frame \(\{O\}\).
\begin{figure}[htbp]
\centering
@ -362,27 +372,9 @@ The goal here is to link these \(4 \times 3 = 12\) measurements to the 6 DOFs of
\caption{\label{fig:modal_local_to_global_coordinates}Schematic of the measured motions of a solid body}
\end{figure}
Let's consider the motion of the rigid body defined by its displacement \(\delta \vec{p}\) and rotation \(\delta\vec{\Omega}\) with respect to the reference frame \(\{O\}\).
Writing Eq. \eqref{eq:modal_p1_p2_motion} for the four displacement sensors in a matrix form gives \eqref{eq:modal_cart_to_acc}.
From the figure \ref{fig:modal_local_to_global_coordinates}, we can write:
\begin{align*}
\delta \vec{p}_1 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_1\\
\delta \vec{p}_2 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_2\\
\delta \vec{p}_3 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_3\\
\delta \vec{p}_4 &= \delta \vec{p} + \bm{\delta \Omega} \vec{p}_4
\end{align*}
With
\begin{equation}
\bm{\delta\Omega} = \begin{bmatrix}
0 & -\delta\Omega_z & \delta\Omega_y \\
\delta\Omega_z & 0 & -\delta\Omega_x \\
-\delta\Omega_y & \delta\Omega_x & 0
\end{bmatrix}
\end{equation}
We can rearrange the equations in a matrix form:
\begin{equation}
\begin{equation}\label{eq:modal_cart_to_acc}
\left[\begin{array}{ccc|ccc}
1 & 0 & 0 & 0 & p_{1z} & -p_{1y} \\
0 & 1 & 0 & -p_{1z} & 0 & p_{1x} \\
@ -398,7 +390,11 @@ We can rearrange the equations in a matrix form:
\end{array}\right]
\end{equation}
and then we obtain the velocity and rotation of the solid in the wanted frame \(\{O\}\):
Supposing that the four sensors are properly located such that the system of equation \eqref{eq:modal_cart_to_acc} can be solved, the motion of the solid body expressed in a chosen frame \(\{O\}\) using the accelerometers attached to it can be determined using equation \eqref{eq:modal_determine_global_disp}.
Note that this inversion is equivalent to resolving a mean square problem.
Therefore, having more accelerometers permits to have a better approximation of the motion of the solid body.
\begin{equation}
\left[\begin{array}{c}
\delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z
@ -416,49 +412,9 @@ and then we obtain the velocity and rotation of the solid in the wanted frame \(
\end{array}\right] \label{eq:modal_determine_global_disp}
\end{equation}
\begin{important}
Using equation \eqref{eq:modal_determine_global_disp}, we can determine the motion of the solid body expressed in a chosen frame \(\{O\}\) using the accelerometers attached to it.
The inversion is equivalent to resolving a mean square problem.
\end{important}
\section{Frequency Response Matrix expressed at the Center of Mass}
\label{ssec:modal_frf_com}
\paragraph{What reference frame to choose?}
The question we wish here to answer is how to choose the reference frame \(\{O\}\) in which the DOFs of the solid bodies are defined.
The possibles choices are:
\begin{itemize}
\item \textbf{One frame for each solid body} which is located at its center of mass
\item \textbf{One common frame}, for instance located at the point of interest (\(270mm\) above the Hexapod)
\item \textbf{Base located at the joint position}: this is where we want to see the motion and estimate stiffness
\end{itemize}
\begin{table}[htbp]
\centering
\scriptsize
\begin{tabularx}{\linewidth}{XXX}
\toprule
Chosen Frame & Advantages & Disadvantages\\
\midrule
Frames at CoM & Physically, it makes more sense & How to compare the motion of the solid bodies?\\
Common Frame & We can compare the motion of each solid body & Small \(\theta_{x, y}\) may result in large \(T_{x, y}\)\\
Frames at joint position & Directly gives which joint direction can be blocked & How to choose the joint position?\\
\bottomrule
\end{tabularx}
\caption{\label{tab:modal_frame_comparison}Advantages and disadvantages for the choice of reference frame}
\end{table}
The choice of the frame depends of what we want to do with the data.
One of the goals is to compare the motion of each solid body to see which relative DOFs between solid bodies can be neglected, that is to say, which joint between solid bodies can be regarded as perfect (and this in all the frequency range of interest).
Ideally, we would like to have the same number of degrees of freedom than the number of identified modes.
In the next sections, we will express the FRF matrix in the different frames.
\paragraph{Center of Mass of each solid body}
From solidworks, we can export the position of the center of mass of each solid body considered.
These are summarized in Table \ref{tab:modal_com_solid_bodies}
From the CAD model, the position of the center of mass of each considered solid body is computed (see Table \ref{tab:modal_com_solid_bodies}).
Then, the position of each accelerometer with respect to the center of mass of the corresponding solid body can easily be derived.
\begin{table}[htbp]
\centering
@ -474,23 +430,14 @@ Spindle & 0 & 0 & -580\\
Hexapod & -4 & 6 & -319\\
\bottomrule
\end{tabularx}
\caption{\label{tab:modal_com_solid_bodies}Center of mass of considered solid bodies}
\caption{\label{tab:modal_com_solid_bodies}Center of mass of considered solid bodies with respect to the ``point of interest''}
\end{table}
Using \eqref{eq:modal_determine_global_disp}, the frequency response matrix \(\bm{H}_\text{CoM}\) \eqref{eq:modal_frf_matrix_com} expressing the response \(D_i\) (\(i\) from \(1\) to \(6\) for the \(6\) considered solid bodies) at the center of mass of each solid body can be computed from the initial FRF matrix \(\bm{H}\).
\paragraph{Computation}
First, we initialize a new FRF matrix which is an \(n \times p \times q\) with:
\begin{itemize}
\item \(n\) is the number of DOFs of the considered 6 solid-bodies: \(6 \times 6 = 36\)
\item \(p\) is the number of excitation inputs: \(3\)
\item \(q\) is the number of frequency points \(\omega_i\)
\end{itemize}
\begin{important}
For each frequency point \(\omega_i\), the FRF matrix is a \(n\times p\) matrix:
\begin{equation}
\text{FRF}_\text{CoM}(\omega_i) = \begin{bmatrix}
\begin{equation}\label{eq:modal_frf_matrix_com}
\bm{H}_\text{CoM}(\omega_i) = \begin{bmatrix}
\frac{D_{1,T_x}}{F_x}(\omega_i) & \frac{D_{1,T_x}}{F_y}(\omega_i) & \frac{D_{1,T_x}}{F_z}(\omega_i) \\
\frac{D_{1,T_y}}{F_x}(\omega_i) & \frac{D_{1,T_y}}{F_y}(\omega_i) & \frac{D_{1,T_y}}{F_z}(\omega_i) \\
\frac{D_{1,T_z}}{F_x}(\omega_i) & \frac{D_{1,T_z}}{F_y}(\omega_i) & \frac{D_{1,T_z}}{F_z}(\omega_i) \\
@ -502,54 +449,25 @@ For each frequency point \(\omega_i\), the FRF matrix is a \(n\times p\) matrix:
\frac{D_{6,R_z}}{F_x}(\omega_i) & \frac{D_{6,R_z}}{F_y}(\omega_i) & \frac{D_{6,R_z}}{F_z}(\omega_i)
\end{bmatrix}
\end{equation}
where 1, 2, \ldots{}, 6 corresponds to the 6 solid bodies.
\end{important}
Then, as we know the positions of the accelerometers on each solid body, and we have the response of those accelerometers, we can use the equations derived in the previous section to determine the response of each solid body expressed in their center of mass.
\section{Verify that we find the original FRF from the FRF in the global coordinates}
\section{Verification of solid body assumption}
\label{ssec:modal_solid_body_assumption}
We have computed the Frequency Response Functions Matrix representing the response of the 6 solid bodies in their 6 DOFs with respect to their center of mass.
From the response of one solid body along its 6 DoFs (from \(\bm{H}_{\text{CoM}}\)), and using \eqref{eq:modal_cart_to_acc}, it is possible to compute the response of the same solid body at any location, in particular at the location of the accelerometers fixed to this solid body.
From the response of one body in its 6 DOFs, we should be able to compute the FRF of each of its accelerometer fixed to it during the measurement, supposing that this stage is a solid body.
Comparing the computed response of a particular accelerometer from \(\bm{H}_{\text{CoM}}\) with the original measurements \(\bm{H}\) is useful to check if the change of coordinate \eqref{eq:modal_determine_global_disp} works as expected, and if the solid body assumption is correct in the frequency band of interest.
We can then compare the result with the original measurements.
This will help us to determine if:
\begin{itemize}
\item the previous inversion used is correct
\item the solid body assumption is correct in the frequency band of interest
\end{itemize}
From the translation \(\delta p\) and rotation \(\delta \Omega\) of a solid body and the positions \(p_i\) of the accelerometers attached to it, we can compute the response that would have been measured by the accelerometers using the following formula:
\begin{align*}
\delta p_1 &= \delta p + \delta\Omega p_1\\
\delta p_2 &= \delta p + \delta\Omega p_2\\
\delta p_3 &= \delta p + \delta\Omega p_3\\
\delta p_4 &= \delta p + \delta\Omega p_4
\end{align*}
Thus, we can obtain the FRF matrix \texttt{FRFs\_A} that gives the responses of the accelerometers to the forces applied by the hammer.
It is implemented in matlab as follow:
We then compare the original FRF measured for each accelerometer \texttt{FRFs} with the ``recovered'' FRF \texttt{FRFs\_A} from the global FRF matrix in the common frame.
The FRF for the 4 accelerometers on the Hexapod are compared in Figure \ref{fig:modal_comp_acc_solid_body_frf}.
All the FRF are matching very well in all the frequency range displayed.
The comparison is made for the 4 accelerometers fixed to the micro-hexapod in Figure \ref{fig:modal_comp_acc_solid_body_frf}.
The original frequency response functions and the ones computed from the CoM responses are well matching in the frequency range of interested.
Similar results are obtained for the other solid bodies, indicating that the solid body assumption is valid, and that a multi-body model can be used to represent the dynamics of the micro-station.
This also validates the reduction of the number of degrees of freedom from 69 (23 accelerometers with each 3DoF) to 36 (6 solid bodies with 6 DoF).
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/modal_comp_acc_solid_body_frf.png}
\caption{\label{fig:modal_comp_acc_solid_body_frf}Comparaison of the original accelerometer response and reconstructed response from the solid body response. For accelerometers 1 to 4 corresponding to the hexapod.}
\caption{\label{fig:modal_comp_acc_solid_body_frf}Comparaison of the original accelerometer response (solid curves) and reconstructed response from the solid body response (dashed curves). For accelerometers 1 to 4 corresponding to the micro-hexapod.}
\end{figure}
\begin{important}
The reduction of the number of degrees of freedom from 69 (23 accelerometers with each 3DOF) to 36 (6 solid bodies with 6 DOF) seems to work well.
This confirms the fact that the stages are indeed behaving as a solid body in the frequency band of interest.
This valid the fact that a multi-body model can be used to represent the dynamics of the micro-station.
\end{important}
\chapter{Modal Analysis}
\label{sec:modal_analysis}
The goal here is to extract the modal parameters describing the modes of station being studied, namely: