Compare commits

...

14 Commits

Author SHA1 Message Date
0e07dfbde9 Remove comment about Matlab code 2025-04-15 11:53:08 +02:00
0c05879bd7 Add Inkscape directory 2025-04-15 11:49:47 +02:00
f71e66f899 Change transpose symbol 2025-04-07 14:26:19 +02:00
45efef44d6 Tangle matlab files without comments 2025-03-28 16:41:39 +01:00
5a97b43b84 Better figure positioning 2025-03-28 15:46:39 +01:00
92526d8889 Christophe's review 2025-03-25 21:59:19 +01:00
3285e50315 Add prefix in footnotes 2025-02-04 15:38:20 +01:00
2df918b275 Christophe's corrections 2024-11-14 10:45:19 +01:00
cd201f473d re-generate mat files 2024-10-24 22:49:48 +02:00
f34b5b1078 Tangle matlab files 2024-10-24 19:33:39 +02:00
6e0304c0b3 Grammar check 2024-10-24 19:33:24 +02:00
12f4934efc Rework just before grammar check 2024-10-24 18:53:51 +02:00
09e101fb75 Rework the full document once 2024-10-24 17:42:18 +02:00
3fa9d30e57 Start re-check 2024-10-24 09:50:55 +02:00
46 changed files with 3562 additions and 3128 deletions

18
figs/inkscape/convert_svg.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
# Directory containing SVG files
INPUT_DIR="."
# Loop through all SVG files in the directory
for svg_file in "$INPUT_DIR"/*.svg; do
# Check if there are SVG files in the directory
if [ -f "$svg_file" ]; then
# Output PDF file name
pdf_file="../${svg_file%.svg}.pdf"
png_file="../${svg_file%.svg}"
# Convert SVG to PDF using Inkscape
inkscape "$svg_file" --export-filename="$pdf_file" && \
pdftocairo -png -singlefile -cropbox "$pdf_file" "$png_file"
fi
done

View File

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 KiB

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,199 +1,187 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="225.576" height="174.643" viewBox="0 0 225.576 174.643">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="174.219" height="173.715" viewBox="0 0 174.219 173.715">
<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.40625 -2.484375 C 4.40625 -3.546875 3.53125 -4.40625 2.484375 -4.40625 C 1.40625 -4.40625 0.5625 -3.53125 0.5625 -2.484375 C 0.5625 -1.421875 1.4375 -0.5625 2.46875 -0.5625 C 3.5625 -0.5625 4.40625 -1.4375 4.40625 -2.484375 Z M 4.40625 -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.25 2.375 C 4.25 2.28125 4.1875 2.28125 4.078125 2.265625 C 3.296875 2.21875 2.9375 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.796875 -1.453125 C 2.65625 -2.109375 2.03125 -2.375 1.640625 -2.484375 C 2.8125 -2.828125 2.8125 -3.53125 2.8125 -3.8125 L 2.8125 -5.59375 C 2.8125 -6.3125 2.8125 -6.53125 3.046875 -6.78125 C 3.234375 -6.953125 3.453125 -7.1875 4.15625 -7.234375 C 4.203125 -7.25 4.25 -7.28125 4.25 -7.34375 C 4.25 -7.453125 4.15625 -7.453125 4.046875 -7.453125 C 3.046875 -7.453125 2.171875 -6.953125 2.140625 -6.234375 L 2.140625 -4.40625 C 2.140625 -3.484375 2.140625 -3.3125 1.890625 -3.046875 C 1.75 -2.90625 1.484375 -2.640625 0.859375 -2.59375 C 0.78125 -2.59375 0.71875 -2.578125 0.71875 -2.484375 C 0.71875 -2.390625 0.78125 -2.390625 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.09375 2.40625 3.734375 2.484375 4.046875 2.484375 C 4.15625 2.484375 4.25 2.484375 4.25 2.375 Z M 4.25 2.375 "/>
</g>
<g id="glyph-0-3">
<path d="M 4.25 -2.484375 C 4.25 -2.578125 4.1875 -2.578125 4.078125 -2.59375 C 3.65625 -2.625 2.8125 -2.828125 2.8125 -3.828125 L 2.8125 -5.796875 C 2.8125 -6.375 2.8125 -6.703125 2.296875 -7.078125 C 1.875 -7.359375 1.234375 -7.453125 0.921875 -7.453125 C 0.8125 -7.453125 0.71875 -7.453125 0.71875 -7.34375 C 0.71875 -7.25 0.78125 -7.25 0.875 -7.234375 C 1.65625 -7.1875 2.03125 -6.734375 2.109375 -6.375 C 2.140625 -6.265625 2.140625 -6.25 2.140625 -5.90625 L 2.140625 -4.40625 C 2.140625 -4.109375 2.140625 -3.609375 2.171875 -3.515625 C 2.296875 -2.859375 2.9375 -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.734375 1.984375 1.5 2.21875 0.8125 2.265625 C 0.75 2.28125 0.71875 2.3125 0.71875 2.375 C 0.71875 2.484375 0.8125 2.484375 0.921875 2.484375 C 1.90625 2.484375 2.796875 1.984375 2.8125 1.265625 L 2.8125 -0.5625 C 2.8125 -1.484375 2.8125 -1.65625 3.078125 -1.921875 C 3.203125 -2.0625 3.484375 -2.328125 4.109375 -2.375 C 4.171875 -2.375 4.25 -2.390625 4.25 -2.484375 Z M 4.25 -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.921875 -1.421875 C 4.921875 -1.515625 4.84375 -1.515625 4.8125 -1.515625 C 4.71875 -1.515625 4.703125 -1.484375 4.6875 -1.40625 C 4.359375 -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.984375 -1.640625 L 3.3125 -3 C 3.375 -3.265625 3.609375 -4.171875 4.296875 -4.171875 C 4.359375 -4.171875 4.59375 -4.171875 4.796875 -4.046875 C 4.515625 -4 4.328125 -3.75 4.328125 -3.515625 C 4.328125 -3.34375 4.4375 -3.15625 4.703125 -3.15625 C 4.921875 -3.15625 5.234375 -3.34375 5.234375 -3.734375 C 5.234375 -4.25 4.65625 -4.390625 4.3125 -4.390625 C 3.734375 -4.390625 3.390625 -3.859375 3.265625 -3.640625 C 3.015625 -4.296875 2.484375 -4.390625 2.203125 -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.84375 -4.171875 2.171875 -4.171875 C 2.359375 -4.171875 2.71875 -4.078125 2.71875 -3.515625 C 2.71875 -3.203125 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.59375 2.265625 -0.640625 C 2.390625 -0.28125 2.75 0.109375 3.34375 0.109375 C 4.359375 0.109375 4.921875 -1.171875 4.921875 -1.421875 Z M 4.921875 -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.828125 -3.78125 C 4.875 -3.921875 4.875 -3.9375 4.875 -4.015625 C 4.875 -4.1875 4.734375 -4.28125 4.578125 -4.28125 C 4.484375 -4.28125 4.328125 -4.21875 4.234375 -4.078125 C 4.21875 -4.03125 4.140625 -3.71875 4.09375 -3.53125 L 3.890625 -2.75 L 3.453125 -0.953125 C 3.40625 -0.8125 2.984375 -0.109375 2.328125 -0.109375 C 1.8125 -0.109375 1.703125 -0.546875 1.703125 -0.921875 C 1.703125 -1.375 1.875 -1.984375 2.21875 -2.859375 C 2.375 -3.265625 2.421875 -3.375 2.421875 -3.578125 C 2.421875 -4.03125 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.65625 -4.171875 1.8125 -4.171875 1.8125 -3.859375 C 1.8125 -3.609375 1.71875 -3.34375 1.65625 -3.15625 C 1.25 -2.109375 1.078125 -1.546875 1.078125 -1.078125 C 1.078125 -0.1875 1.703125 0.109375 2.28125 0.109375 C 2.671875 0.109375 3.015625 -0.0625 3.296875 -0.34375 C 3.15625 0.171875 3.046875 0.671875 2.640625 1.1875 C 2.390625 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.328125 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.578125 2.03125 3.59375 1.140625 3.875 0.015625 Z M 4.828125 -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.328125 -1.421875 C 4.328125 -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.203125 -0.5625 2.875 -0.5625 C 2.671875 -0.5625 2.5 -0.609375 2.28125 -0.6875 C 1.953125 -0.8125 1.796875 -0.859375 1.59375 -0.859375 C 1.59375 -0.859375 1.40625 -0.859375 1.328125 -0.828125 C 1.859375 -1.40625 2.140625 -1.65625 2.5 -1.953125 C 2.5 -1.953125 3.125 -2.5 3.484375 -2.859375 C 4.421875 -3.78125 4.640625 -4.25 4.640625 -4.296875 C 4.640625 -4.390625 4.53125 -4.390625 4.53125 -4.390625 C 4.46875 -4.390625 4.4375 -4.375 4.375 -4.28125 C 4.078125 -3.8125 3.875 -3.640625 3.640625 -3.640625 C 3.40625 -3.640625 3.28125 -3.796875 3.125 -3.96875 C 2.9375 -4.1875 2.765625 -4.390625 2.4375 -4.390625 C 1.703125 -4.390625 1.25 -3.46875 1.25 -3.265625 C 1.25 -3.203125 1.265625 -3.15625 1.359375 -3.15625 C 1.453125 -3.15625 1.46875 -3.203125 1.484375 -3.265625 C 1.671875 -3.71875 2.25 -3.734375 2.328125 -3.734375 C 2.546875 -3.734375 2.734375 -3.65625 2.96875 -3.578125 C 3.359375 -3.421875 3.46875 -3.421875 3.734375 -3.421875 C 3.375 -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.375 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.75 0.109375 4.328125 -1.15625 4.328125 -1.421875 Z M 4.328125 -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.359375 -4.328125 C 7.359375 -5.9375 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.140625 0.21875 7.359375 -1.953125 7.359375 -4.328125 Z M 6.46875 -4.71875 C 6.46875 -4 6.203125 -2.453125 5.21875 -1.234375 C 4.734375 -0.625 3.921875 -0.046875 3.09375 -0.046875 C 2.109375 -0.046875 1.40625 -0.84375 1.40625 -2.15625 C 1.40625 -2.59375 1.546875 -4.046875 2.3125 -5.203125 C 3 -6.234375 3.96875 -6.75 4.765625 -6.75 C 5.578125 -6.75 6.46875 -6.203125 6.46875 -4.71875 Z M 6.46875 -4.71875 "/>
<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 6.21875 -6.109375 C 6.21875 -6.21875 6.140625 -6.265625 6.078125 -6.3125 C 5.859375 -6.453125 5.75 -6.640625 5.671875 -6.875 C 5.640625 -6.96875 5.609375 -7.09375 5.46875 -7.09375 C 5.328125 -7.09375 5.265625 -6.96875 5.265625 -6.890625 C 5.265625 -6.84375 5.34375 -6.515625 5.5 -6.3125 L 2.15625 -6.3125 C 1.984375 -6.3125 1.8125 -6.3125 1.8125 -6.109375 C 1.8125 -5.90625 1.984375 -5.90625 2.15625 -5.90625 L 5.34375 -5.90625 C 5.203125 -5.78125 4.875 -5.5 4.875 -5.328125 C 4.875 -5.234375 4.96875 -5.125 5.0625 -5.125 C 5.15625 -5.125 5.203125 -5.203125 5.25 -5.25 C 5.375 -5.40625 5.609375 -5.6875 6.046875 -5.90625 C 6.109375 -5.9375 6.21875 -6 6.21875 -6.109375 Z M 6.21875 -6.109375 "/>
<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 4.875 -2.796875 C 4.875 -3.734375 4.296875 -4.390625 3.546875 -4.390625 C 3.046875 -4.390625 2.578125 -4.03125 2.25 -3.640625 C 2.140625 -4.1875 1.71875 -4.390625 1.34375 -4.390625 C 0.890625 -4.390625 0.703125 -4 0.609375 -3.828125 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.703125 0.96875 -4.171875 1.328125 -4.171875 C 1.484375 -4.171875 1.625 -4.09375 1.625 -3.71875 C 1.625 -3.484375 1.59375 -3.375 1.5625 -3.203125 L 0.453125 1.21875 C 0.375 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.375 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.734375 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.875 -1.34375 4.875 -2.796875 Z M 3.640625 -1.140625 C 3.3125 -0.4375 2.828125 -0.109375 2.46875 -0.109375 C 1.8125 -0.109375 1.671875 -0.9375 1.671875 -1 C 1.671875 -1 1.671875 -1.03125 1.703125 -1.15625 L 2.203125 -3.09375 C 2.265625 -3.375 2.53125 -3.640625 2.71875 -3.796875 C 3.0625 -4.109375 3.34375 -4.171875 3.515625 -4.171875 C 3.921875 -4.171875 4.15625 -3.828125 4.15625 -3.234375 C 4.15625 -2.65625 3.828125 -1.515625 3.640625 -1.140625 Z M 3.640625 -1.140625 "/>
</g>
<g id="glyph-1-7">
<path d="M 3.828125 -1.8125 C 3.921875 -2.140625 3.96875 -2.5 3.96875 -2.828125 C 3.96875 -2.984375 3.953125 -3.125 3.9375 -3.28125 C 3.84375 -3.75 3.640625 -4.140625 3.359375 -4.484375 C 2.921875 -5.0625 2.296875 -5.84375 2.296875 -6.296875 C 2.296875 -6.34375 2.3125 -6.40625 2.328125 -6.453125 C 2.390625 -6.546875 2.46875 -6.640625 2.546875 -6.6875 C 2.65625 -6.734375 2.765625 -6.75 2.875 -6.75 C 3.3125 -6.734375 3.59375 -6.40625 3.96875 -6.25 C 4.015625 -6.234375 4.046875 -6.234375 4.078125 -6.234375 C 4.21875 -6.234375 4.375 -6.3125 4.4375 -6.453125 C 4.46875 -6.515625 4.484375 -6.5625 4.484375 -6.625 C 4.484375 -6.75 4.40625 -6.859375 4.28125 -6.890625 C 3.921875 -6.96875 3.5 -7.078125 3.140625 -7.078125 C 3.046875 -7.078125 2.96875 -7.0625 2.875 -7.0625 C 2.75 -7.03125 2.59375 -6.984375 2.453125 -6.890625 C 2.328125 -6.8125 2.21875 -6.703125 2.140625 -6.5625 C 2.0625 -6.40625 2.03125 -6.234375 2.03125 -6.046875 C 2.03125 -5.53125 2.328125 -4.890625 2.640625 -4.328125 C 2.21875 -4.25 1.828125 -4.03125 1.484375 -3.734375 C 0.984375 -3.3125 0.640625 -2.75 0.5 -2.171875 C 0.453125 -1.953125 0.421875 -1.765625 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.59375 -0.828125 3.828125 -1.8125 Z M 3.1875 -1.625 C 2.984375 -0.890625 2.640625 -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.84375 1.15625 -2.109375 C 1.296875 -2.640625 1.484375 -3.15625 1.890625 -3.578125 C 2.125 -3.828125 2.4375 -4.03125 2.75 -4.125 L 2.765625 -4.078125 C 2.96875 -3.71875 3.15625 -3.34375 3.234375 -2.921875 C 3.265625 -2.765625 3.28125 -2.59375 3.28125 -2.421875 C 3.28125 -2.171875 3.25 -1.890625 3.1875 -1.625 Z M 3.1875 -1.625 "/>
<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.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-1">
<path d="M 3.28125 0 L 3.28125 -0.25 L 3.03125 -0.25 C 2.328125 -0.25 2.328125 -0.34375 2.328125 -0.5625 L 2.328125 -4.421875 C 2.328125 -4.609375 2.3125 -4.609375 2.125 -4.609375 C 1.671875 -4.171875 1.046875 -4.171875 0.765625 -4.171875 L 0.765625 -3.921875 C 0.921875 -3.921875 1.390625 -3.921875 1.765625 -4.109375 L 1.765625 -0.5625 C 1.765625 -0.34375 1.765625 -0.25 1.078125 -0.25 L 0.8125 -0.25 L 0.8125 0 L 2.046875 -0.03125 Z M 3.28125 0 "/>
<path d="M 3.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 "/>
</g>
<g id="glyph-2-2">
<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 "/>
<path d="M 3.5625 -1.203125 C 3.5625 -1.734375 3.125 -2.28125 2.359375 -2.4375 C 3.09375 -2.703125 3.34375 -3.21875 3.34375 -3.65625 C 3.34375 -4.203125 2.71875 -4.609375 1.953125 -4.609375 C 1.171875 -4.609375 0.59375 -4.234375 0.59375 -3.671875 C 0.59375 -3.4375 0.75 -3.3125 0.953125 -3.3125 C 1.171875 -3.3125 1.296875 -3.46875 1.296875 -3.65625 C 1.296875 -3.859375 1.171875 -4.015625 0.953125 -4.03125 C 1.1875 -4.328125 1.671875 -4.40625 1.921875 -4.40625 C 2.234375 -4.40625 2.671875 -4.25 2.671875 -3.65625 C 2.671875 -3.359375 2.578125 -3.03125 2.40625 -2.828125 C 2.171875 -2.5625 1.984375 -2.546875 1.625 -2.53125 C 1.453125 -2.515625 1.4375 -2.515625 1.40625 -2.5 C 1.40625 -2.5 1.34375 -2.484375 1.34375 -2.421875 C 1.34375 -2.3125 1.40625 -2.3125 1.515625 -2.3125 L 1.890625 -2.3125 C 2.4375 -2.3125 2.828125 -1.9375 2.828125 -1.203125 C 2.828125 -0.34375 2.328125 -0.078125 1.921875 -0.078125 C 1.640625 -0.078125 1.03125 -0.15625 0.75 -0.5625 C 1.0625 -0.578125 1.140625 -0.8125 1.140625 -0.953125 C 1.140625 -1.171875 0.984375 -1.34375 0.765625 -1.34375 C 0.5625 -1.34375 0.375 -1.21875 0.375 -0.9375 C 0.375 -0.28125 1.09375 0.140625 1.9375 0.140625 C 2.90625 0.140625 3.5625 -0.5 3.5625 -1.203125 Z M 3.5625 -1.203125 "/>
</g>
<g id="glyph-2-3">
<path d="M 3.578125 -1.203125 C 3.578125 -1.75 3.125 -2.28125 2.359375 -2.453125 C 3.09375 -2.71875 3.359375 -3.234375 3.359375 -3.65625 C 3.359375 -4.203125 2.71875 -4.609375 1.953125 -4.609375 C 1.1875 -4.609375 0.59375 -4.234375 0.59375 -3.6875 C 0.59375 -3.453125 0.75 -3.3125 0.953125 -3.3125 C 1.171875 -3.3125 1.3125 -3.484375 1.3125 -3.671875 C 1.3125 -3.875 1.171875 -4.015625 0.953125 -4.03125 C 1.203125 -4.34375 1.671875 -4.421875 1.9375 -4.421875 C 2.25 -4.421875 2.6875 -4.265625 2.6875 -3.65625 C 2.6875 -3.359375 2.59375 -3.046875 2.40625 -2.828125 C 2.171875 -2.5625 1.984375 -2.546875 1.640625 -2.53125 C 1.453125 -2.515625 1.453125 -2.515625 1.40625 -2.515625 C 1.40625 -2.515625 1.34375 -2.5 1.34375 -2.421875 C 1.34375 -2.328125 1.40625 -2.328125 1.515625 -2.328125 L 1.890625 -2.328125 C 2.4375 -2.328125 2.828125 -1.953125 2.828125 -1.203125 C 2.828125 -0.34375 2.328125 -0.078125 1.921875 -0.078125 C 1.640625 -0.078125 1.03125 -0.15625 0.75 -0.5625 C 1.078125 -0.578125 1.140625 -0.8125 1.140625 -0.953125 C 1.140625 -1.1875 0.984375 -1.34375 0.765625 -1.34375 C 0.5625 -1.34375 0.375 -1.21875 0.375 -0.9375 C 0.375 -0.28125 1.09375 0.140625 1.9375 0.140625 C 2.90625 0.140625 3.578125 -0.5 3.578125 -1.203125 Z M 3.578125 -1.203125 "/>
</g>
<g id="glyph-2-4">
<path d="M 3.671875 -1.140625 L 3.671875 -1.390625 L 2.90625 -1.390625 L 2.90625 -4.484375 C 2.90625 -4.640625 2.90625 -4.6875 2.75 -4.6875 C 2.671875 -4.6875 2.640625 -4.6875 2.578125 -4.59375 L 0.265625 -1.390625 L 0.265625 -1.140625 L 2.3125 -1.140625 L 2.3125 -0.5625 C 2.3125 -0.328125 2.3125 -0.25 1.75 -0.25 L 1.5625 -0.25 L 1.5625 0 L 2.609375 -0.03125 L 3.65625 0 L 3.65625 -0.25 L 3.46875 -0.25 C 2.90625 -0.25 2.90625 -0.328125 2.90625 -0.5625 L 2.90625 -1.140625 Z M 2.359375 -1.390625 L 0.53125 -1.390625 L 2.359375 -3.9375 Z M 2.359375 -1.390625 "/>
<path d="M 3.671875 -1.140625 L 3.671875 -1.390625 L 2.90625 -1.390625 L 2.90625 -4.484375 C 2.90625 -4.625 2.90625 -4.671875 2.75 -4.671875 C 2.65625 -4.671875 2.640625 -4.671875 2.5625 -4.578125 L 0.265625 -1.390625 L 0.265625 -1.140625 L 2.3125 -1.140625 L 2.3125 -0.5625 C 2.3125 -0.328125 2.3125 -0.25 1.75 -0.25 L 1.5625 -0.25 L 1.5625 0 L 2.609375 -0.03125 L 3.65625 0 L 3.65625 -0.25 L 3.46875 -0.25 C 2.90625 -0.25 2.90625 -0.328125 2.90625 -0.5625 L 2.90625 -1.140625 Z M 2.359375 -1.390625 L 0.53125 -1.390625 L 2.359375 -3.921875 Z M 2.359375 -1.390625 "/>
</g>
</g>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 0.0195312 0 L 187 0 L 187 174.285156 L 0.0195312 174.285156 Z M 0.0195312 0 "/>
</clipPath>
<clipPath id="clip-1">
<path clip-rule="nonzero" d="M 202 98 L 225.132812 98 L 225.132812 130 L 202 130 Z M 202 98 "/>
<path clip-rule="nonzero" d="M 0 0.246094 L 173.441406 0.246094 L 173.441406 173.183594 L 0 173.183594 Z M 0 0.246094 "/>
</clipPath>
</defs>
<path fill-rule="nonzero" fill="rgb(69.999695%, 69.999695%, 100%)" fill-opacity="1" d="M 169.675781 83.097656 L 169.609375 74.113281 C 169.597656 72.550781 169.449219 70.027344 169.277344 68.472656 L 168.246094 59.117188 C 168.074219 57.5625 167.359375 55.175781 166.644531 53.789062 L 162.355469 45.425781 C 161.640625 44.035156 160.324219 41.878906 159.417969 40.605469 L 153.992188 33.015625 C 153.085938 31.746094 151.261719 30.066406 149.921875 29.261719 L 141.820312 24.40625 C 140.480469 23.605469 138.414062 22.148438 137.207031 21.160156 L 130.394531 15.570312 C 129.1875 14.578125 127.210938 12.996094 125.976562 12.035156 L 118.449219 6.167969 C 117.214844 5.207031 114.984375 4.140625 113.460938 3.785156 L 104.28125 1.640625 C 102.761719 1.285156 100.285156 1.234375 98.75 1.53125 L 89.332031 3.339844 C 87.796875 3.632812 85.300781 3.691406 83.753906 3.46875 L 74.503906 2.125 C 72.960938 1.902344 70.464844 1.96875 68.933594 2.277344 L 59.753906 4.117188 C 58.222656 4.425781 56.015625 5.492188 54.824219 6.503906 L 47.507812 12.730469 C 46.316406 13.742188 44.136719 14.921875 42.640625 15.367188 L 33.101562 18.191406 C 31.605469 18.632812 29.601562 19.984375 28.628906 21.207031 L 22.707031 28.660156 C 21.734375 29.882812 20.3125 31.96875 19.527344 33.320312 L 14.90625 41.292969 C 14.125 42.644531 12.820312 44.816406 11.992188 46.140625 L 7.058594 54.046875 C 6.230469 55.371094 5.363281 57.695312 5.121094 59.242188 L 3.679688 68.441406 C 3.4375 69.984375 3.121094 72.496094 2.976562 74.050781 L 2.128906 83.109375 C 1.984375 84.664062 1.792969 87.191406 1.707031 88.75 L 1.171875 98.183594 C 1.085938 99.742188 1.511719 102.171875 2.128906 103.605469 L 5.859375 112.289062 C 6.476562 113.726562 7.605469 115.988281 8.378906 117.34375 L 12.867188 125.199219 C 13.644531 126.558594 14.75 128.832031 15.335938 130.277344 L 18.933594 139.152344 C 19.519531 140.601562 20.945312 142.613281 22.113281 143.652344 L 29.164062 149.917969 C 30.332031 150.957031 32.40625 152.375 33.796875 153.089844 L 42.066406 157.332031 C 43.457031 158.042969 45.632812 159.328125 46.929688 160.199219 L 54.699219 165.421875 C 55.992188 166.292969 58.265625 167.339844 59.769531 167.757812 L 68.820312 170.277344 C 70.328125 170.699219 72.800781 171.226562 74.34375 171.457031 L 83.757812 172.871094 C 85.300781 173.105469 87.8125 173.148438 89.363281 172.972656 L 98.847656 171.898438 C 100.398438 171.722656 102.859375 171.191406 104.347656 170.707031 L 113.339844 167.785156 C 114.824219 167.300781 117.089844 166.21875 118.398438 165.363281 L 126.214844 160.269531 C 127.523438 159.417969 129.6875 158.101562 131.046875 157.332031 L 139.046875 152.808594 C 140.40625 152.039062 142.191406 150.351562 143.035156 149.035156 L 148.066406 141.203125 C 148.910156 139.890625 150.558594 138.003906 151.75 136.992188 L 158.992188 130.824219 C 160.179688 129.8125 161.515625 127.78125 161.976562 126.285156 L 164.710938 117.378906 C 165.167969 115.886719 166.121094 113.550781 166.84375 112.164062 L 171.277344 103.605469 C 171.996094 102.21875 172.34375 99.847656 172.050781 98.316406 L 170.226562 88.703125 C 169.933594 87.167969 169.6875 84.660156 169.675781 83.097656 Z M 169.675781 83.097656 "/>
<path fill-rule="nonzero" fill="rgb(69.999695%, 69.999695%, 100%)" fill-opacity="1" d="M 171 84.011719 L 169.988281 75.003906 C 169.816406 73.453125 169.535156 70.941406 169.363281 69.394531 L 168.320312 60.050781 C 168.148438 58.503906 167.417969 56.128906 166.6875 54.753906 L 162.289062 46.46875 C 161.558594 45.09375 160.101562 43.054688 159.039062 41.914062 L 152.726562 35.144531 C 151.664062 34.007812 150.160156 31.992188 149.371094 30.648438 L 144.425781 22.238281 C 143.636719 20.894531 141.800781 19.398438 140.324219 18.894531 L 131.015625 15.710938 C 129.539062 15.207031 127.292969 14.097656 125.992188 13.238281 L 118.316406 8.15625 C 117.015625 7.292969 114.78125 6.148438 113.324219 5.59375 L 104.492188 2.238281 C 103.035156 1.6875 100.609375 1.457031 99.074219 1.726562 L 89.542969 3.394531 C 88.007812 3.664062 85.507812 3.753906 83.957031 3.597656 L 74.683594 2.660156 C 73.132812 2.503906 70.722656 2.890625 69.296875 3.527344 L 60.824219 7.316406 C 59.398438 7.949219 57.042969 8.847656 55.558594 9.320312 L 46.808594 12.097656 C 45.324219 12.570312 43.125 13.734375 41.902344 14.699219 L 34.695312 20.378906 C 33.472656 21.339844 31.621094 23.054688 30.566406 24.199219 L 24.449219 30.847656 C 23.394531 31.996094 21.90625 34.019531 21.128906 35.371094 L 16.675781 43.09375 C 15.898438 44.445312 14.566406 46.589844 13.703125 47.886719 L 8.644531 55.46875 C 7.78125 56.761719 6.902344 59.066406 6.679688 60.609375 L 5.390625 69.605469 C 5.171875 71.148438 4.652344 73.617188 4.238281 75.117188 L 1.746094 84.097656 C 1.332031 85.601562 1.117188 88.074219 1.265625 89.625 L 2.171875 98.875 C 2.320312 100.425781 2.707031 102.921875 3.027344 104.445312 L 4.960938 113.617188 C 5.285156 115.144531 6.164062 117.480469 6.929688 118.839844 L 11.527344 126.996094 C 12.292969 128.355469 13.574219 130.53125 14.390625 131.859375 L 19.28125 139.800781 C 20.097656 141.125 21.75 142.988281 22.972656 143.957031 L 30.273438 149.75 C 31.496094 150.71875 33.519531 152.226562 34.800781 153.117188 L 42.246094 158.304688 C 43.523438 159.195312 45.710938 160.433594 47.132812 161.074219 L 55.386719 164.792969 C 56.808594 165.433594 59.195312 166.226562 60.714844 166.566406 L 69.496094 168.519531 C 71.015625 168.859375 73.496094 169.339844 75.035156 169.59375 L 83.980469 171.074219 C 85.519531 171.332031 88.027344 171.59375 89.582031 171.660156 L 99 172.070312 C 100.554688 172.136719 103 171.75 104.460938 171.207031 L 113.277344 167.917969 C 114.738281 167.371094 116.953125 166.199219 118.226562 165.300781 L 125.753906 159.972656 C 127.027344 159.070312 129.230469 157.867188 130.675781 157.285156 L 139.421875 153.746094 C 140.867188 153.160156 142.738281 151.636719 143.601562 150.339844 L 148.804688 142.539062 C 149.667969 141.242188 151.019531 139.105469 151.820312 137.769531 L 156.328125 130.238281 C 157.128906 128.902344 158.578125 126.839844 159.566406 125.636719 L 165.558594 118.332031 C 166.546875 117.125 167.777344 114.960938 168.300781 113.492188 L 171.496094 104.582031 C 172.023438 103.113281 172.355469 100.667969 172.238281 99.113281 L 171.527344 89.632812 C 171.410156 88.078125 171.175781 85.5625 171 84.011719 Z M 171 84.011719 "/>
<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 83.29207 2.833478 L 83.225528 11.836219 C 83.213785 13.401913 83.065044 15.930508 82.892818 17.488374 L 81.85946 26.862967 C 81.687233 28.420832 80.970928 30.81243 80.254623 32.201984 L 75.956793 40.582361 C 75.240488 41.975828 73.921391 44.136486 73.013288 45.412527 L 67.576416 53.017885 C 66.668313 54.290012 64.840366 55.973133 63.497783 56.779465 L 55.379659 61.644859 C 54.037077 62.447278 51.966447 63.907287 50.756948 64.897589 L 43.930522 70.498859 C 42.721023 71.493075 40.74042 73.07834 39.503522 74.041242 L 31.960791 79.920423 C 30.723893 80.883325 28.488865 81.951911 26.962313 82.308106 L 17.763861 84.457021 C 16.241223 84.813217 13.759598 84.864102 12.221304 84.56662 L 2.784083 82.754329 C 1.245789 82.460761 -1.255407 82.402048 -2.805444 82.625159 L -12.074353 83.971656 C -13.620476 84.194768 -16.121672 84.128226 -17.656052 83.819001 L -26.854504 81.975396 C -28.388885 81.666172 -30.600427 80.597586 -31.794269 79.583799 L -39.125631 73.344508 C -40.319473 72.330721 -42.503616 71.148622 -44.002768 70.702399 L -53.56133 67.872407 C -55.060482 67.430099 -57.068485 66.075774 -58.043129 64.850618 L -63.97711 57.382258 C -64.951754 56.157102 -66.376536 54.0669 -67.163297 52.712575 L -71.793837 44.723621 C -72.576684 43.369296 -73.884038 41.192981 -74.713856 39.866056 L -79.657535 31.943644 C -80.487353 30.616718 -81.356313 28.287748 -81.598996 26.737711 L -83.043348 17.519688 C -83.286031 15.973565 -83.603084 13.456712 -83.747911 11.898846 L -84.5973 2.821735 C -84.742126 1.26387 -84.933924 -1.26864 -85.020037 -2.83042 L -85.556287 -12.283298 C -85.642401 -13.845077 -85.215749 -16.279732 -84.5973 -17.716256 L -80.859205 -26.4176 C -80.240756 -27.858039 -79.109542 -30.124381 -78.334524 -31.482621 L -73.837068 -39.354147 C -73.058135 -40.716301 -71.950406 -42.994386 -71.363271 -44.442653 L -67.758261 -53.335795 C -67.171125 -54.787976 -65.74243 -56.803807 -64.572073 -57.844994 L -57.506879 -64.123427 C -56.336523 -65.164613 -54.258064 -66.58548 -52.864596 -67.301785 L -44.578161 -71.552645 C -43.184693 -72.265035 -41.004464 -73.552819 -39.704938 -74.425693 L -31.919525 -79.659025 C -30.623913 -80.5319 -28.345828 -81.580915 -26.838848 -81.999738 L -17.769565 -84.52442 C -16.25867 -84.947157 -13.780959 -85.475579 -12.234837 -85.706519 L -2.80153 -87.123472 C -1.255407 -87.358326 1.261446 -87.401382 2.815397 -87.225242 L 12.31916 -86.148827 C 13.873111 -85.972687 16.339079 -85.440351 17.830403 -84.954985 L 26.840972 -82.027138 C 28.328381 -81.541773 30.598637 -80.457529 31.909906 -79.600312 L 39.742291 -74.496149 C 41.053559 -73.642846 43.222045 -72.323749 44.584199 -71.552645 L 52.600553 -67.019961 C 53.962706 -66.248856 55.751512 -64.557907 56.596987 -63.238809 L 61.638521 -55.390768 C 62.483996 -54.075585 64.135803 -52.18501 65.329645 -51.171223 L 72.586637 -44.990646 C 73.776564 -43.976859 75.115233 -41.941457 75.577112 -40.442305 L 78.317077 -31.517849 C 78.775042 -30.022611 79.730116 -27.681898 80.454249 -26.292345 L 84.896906 -17.716256 C 85.617125 -16.326703 85.965492 -13.950762 85.671924 -12.416382 L 83.843977 -2.783449 C 83.550409 -1.245155 83.303812 1.267784 83.29207 2.833478 Z M 83.29207 2.833478 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<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.61357 2.818538 L 83.597316 11.866732 C 83.42467 13.424465 83.142159 15.947443 82.969514 17.501253 L 81.921869 26.88689 C 81.749224 28.440699 81.015481 30.826346 80.281737 32.20751 L 75.863582 40.529807 C 75.129839 41.910971 73.666276 43.959175 72.599013 45.104913 L 66.258215 51.904791 C 65.190952 53.046605 63.680304 55.071266 62.887704 56.42104 L 57.920222 64.868898 C 57.127623 66.218672 55.283455 67.721472 53.800273 68.227637 L 44.44995 71.425503 C 42.966768 71.931668 40.710606 73.046016 39.403993 73.909244 L 31.693803 79.014057 C 30.38719 79.881208 28.142799 81.03087 26.679236 81.588044 L 17.807612 84.958555 C 16.344049 85.511805 13.907393 85.743307 12.365355 85.472568 L 2.791378 83.797122 C 1.24934 83.526382 -1.261868 83.436136 -2.819601 83.593086 L -12.13461 84.534789 C -13.692343 84.691739 -16.113304 84.303287 -17.545477 83.663714 L -26.056115 79.857666 C -27.488287 79.222016 -29.854315 78.319551 -31.345345 77.844776 L -40.13457 75.054982 C -41.625599 74.580207 -43.834677 73.410926 -45.062814 72.441757 L -52.302153 66.736608 C -53.53029 65.771363 -55.390153 64.048832 -56.449569 62.89917 L -62.594179 56.220928 C -63.653594 55.067342 -65.148547 53.034834 -65.929376 51.677213 L -70.402463 43.919937 C -71.183292 42.562316 -72.521295 40.408171 -73.388446 39.105482 L -78.469716 31.489461 C -79.336868 30.190697 -80.219714 27.875677 -80.443368 26.325792 L -81.73821 17.28937 C -81.95794 15.739484 -82.4798 13.259667 -82.895719 11.752943 L -85.399079 2.732216 C -85.814997 1.221568 -86.030804 -1.262173 -85.881701 -2.819906 L -84.971389 -12.111373 C -84.822286 -13.669106 -84.433833 -16.176389 -84.112085 -17.706656 L -82.169823 -26.919648 C -81.844151 -28.453838 -80.961305 -30.800247 -80.192248 -32.165716 L -75.573981 -40.35853 C -74.804924 -41.723998 -73.51793 -43.909533 -72.697864 -45.243612 L -67.785315 -53.220619 C -66.965249 -54.550774 -65.305498 -56.422408 -64.07736 -57.395501 L -56.743851 -63.214438 C -55.515714 -64.187531 -53.483205 -65.702103 -52.196212 -66.596721 L -44.717523 -71.807475 C -43.434453 -72.702093 -41.237147 -73.945925 -39.808898 -74.589422 L -31.51799 -78.324843 C -30.089741 -78.96834 -27.692323 -79.764863 -26.16598 -80.10623 L -17.345365 -82.068111 C -15.819022 -82.409478 -13.327433 -82.892101 -11.781471 -83.147145 L -2.796058 -84.634251 C -1.250096 -84.893219 1.268958 -85.156111 2.830615 -85.222815 L 12.290803 -85.63481 C 13.85246 -85.701514 16.308735 -85.313061 17.776222 -84.767659 L 26.632151 -81.463852 C 28.099637 -80.914525 30.32441 -79.737397 31.603556 -78.834932 L 39.164644 -73.482922 C 40.44379 -72.576533 42.656791 -71.368014 44.108583 -70.783374 L 52.893884 -67.228446 C 54.345676 -66.639882 56.225157 -65.109615 57.092309 -63.806926 L 62.318759 -55.971175 C 63.18591 -54.668487 64.543531 -52.522189 65.347902 -51.180263 L 69.875923 -43.615251 C 70.680294 -42.273325 72.136009 -40.201579 73.128721 -38.993061 L 79.14777 -31.655627 C 80.140482 -30.443185 81.376467 -28.269421 81.902251 -26.794087 L 85.111887 -17.843988 C 85.641595 -16.368654 85.975115 -13.912379 85.857402 -12.350722 L 85.143277 -2.827754 C 85.025565 -1.266097 84.790139 1.260805 84.61357 2.818538 Z M 84.61357 2.818538 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="197.222402" y="116.423012"/>
<use xlink:href="#glyph-0-0" x="84.284166" y="89.021798"/>
</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.388623 -28.347318 L 131.429332 -28.347318 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 220.925781 114.214844 L 216.488281 112.535156 L 217.964844 114.214844 L 216.488281 115.894531 Z M 220.925781 114.214844 "/>
<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.054133 -0.000518319 L 1.607562 1.682603 L 3.087143 -0.000518319 L 1.607562 -1.683639 Z M 6.054133 -0.000518319 " transform="matrix(0.99796, 0, 0, -0.99796, 214.883998, 114.214326)"/>
<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 0.00158346 0.00127797 L 18.043037 0.00127797 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<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.055062 0.00127797 L 1.60944 1.684572 L 3.088698 0.00127797 L 1.60944 -1.682016 Z M 6.055062 0.00127797 " transform="matrix(0.995537, 0, 0, -0.995537, 101.901649, 86.817679)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="99.8693" y="83.015722"/>
</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 0.00158346 0.00127797 L 0.00158346 18.042732 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<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.054756 -0.00158346 L 1.609135 1.68171 L 3.088393 -0.00158346 L 1.609135 -1.684877 Z M 6.054756 -0.00158346 " transform="matrix(0, -0.995537, -0.995537, 0, 86.764049, 71.680078)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-1" x="90.565009" y="72.313698"/>
</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 1.13555 0.00127797 C 1.13555 0.625156 0.625461 1.135245 0.00158346 1.135245 C -0.626218 1.135245 -1.132384 0.625156 -1.132384 0.00127797 C -1.132384 -0.626524 -0.626218 -1.132689 0.00158346 -1.132689 C 0.625461 -1.132689 1.13555 -0.626524 1.13555 0.00127797 Z M 1.13555 0.00127797 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<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 4.533528 0.00127797 C 4.533528 2.504638 2.504943 4.537146 0.00158346 4.537146 C -2.5057 4.537146 -4.534284 2.504638 -4.534284 0.00127797 C -4.534284 -2.506005 -2.5057 -4.53459 0.00158346 -4.53459 C 2.504943 -4.53459 4.533528 -2.506005 4.533528 0.00127797 Z M 4.533528 0.00127797 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-2" x="72.902189" y="88.953106"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-1" x="212.846463" y="110.402319"/>
</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.388623 -28.347318 L 113.388623 -10.302695 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<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.052232 -0.00138277 L 1.609575 1.681738 L 3.089156 -0.00138277 L 1.609575 -1.684504 Z M 6.052232 -0.00138277 " transform="matrix(0, -0.99796, -0.99796, 0, 199.709558, 99.039886)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-2" x="203.519529" y="99.674249"/>
</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.519837 -28.347318 C 114.519837 -27.721041 114.0149 -27.21219 113.388623 -27.21219 C 112.762345 -27.21219 112.253495 -27.721041 112.253495 -28.347318 C 112.253495 -28.973596 112.762345 -29.482446 113.388623 -29.482446 C 114.0149 -29.482446 114.519837 -28.973596 114.519837 -28.347318 Z M 114.519837 -28.347318 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<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.921307 -28.347318 C 117.921307 -25.842208 115.893733 -23.81072 113.388623 -23.81072 C 110.883512 -23.81072 108.852024 -25.842208 108.852024 -28.347318 C 108.852024 -30.852429 110.883512 -32.883917 113.388623 -32.883917 C 115.893733 -32.883917 117.921307 -30.852429 117.921307 -28.347318 Z M 117.921307 -28.347318 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-3" x="185.813723" y="116.354152"/>
<use xlink:href="#glyph-0-1" x="90.565009" y="98.058288"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-2" x="203.519529" y="125.481494"/>
<use xlink:href="#glyph-1-3" x="95.524775" y="98.058288"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-4" x="208.490368" y="125.481494"/>
<use xlink:href="#glyph-0-2" x="103.365626" y="98.058288"/>
</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.520217 -42.520522 L -18.785385 -40.146646 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<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.054883 0.00143888 L 1.609188 1.68425 L 3.089012 -0.00170835 L 1.607653 -1.683395 Z M 6.054883 0.00143888 " transform="matrix(0.99054, -0.099046, -0.099046, -0.99054, 65.252542, 127.065981)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="41.953926" y="131.352037"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-3" x="216.350301" y="125.481494"/>
</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.519273 -42.520763 L -18.317558 -30.417949 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<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.054767 -0.000899633 L 1.609945 1.683105 L 3.087488 -0.000952717 L 1.608255 -1.681562 Z M 6.054767 -0.000899633 " transform="matrix(0.892555, -0.446258, -0.446258, -0.892555, 65.739914, 117.54884)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="41.635448" y="130.567099"/>
<use xlink:href="#glyph-1-4" x="39.793611" y="123.417606"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="39.468877" y="122.613357"/>
<use xlink:href="#glyph-1-5" x="39.714266" y="123.417606"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="39.389339" y="122.613357"/>
<use xlink:href="#glyph-2-0" x="44.704595" y="124.904939"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-1" x="44.391813" y="124.105308"/>
<use xlink:href="#glyph-1-6" x="76.455261" y="128.904011"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-7" x="76.22075" y="116.798245"/>
<use xlink:href="#glyph-1-4" x="81.319117" y="128.904011"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="81.096442" y="116.798245"/>
<use xlink:href="#glyph-1-5" x="81.239771" y="128.904011"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="81.016904" y="116.798245"/>
<use xlink:href="#glyph-2-0" x="86.229445" y="130.392339"/>
</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.520217 42.519154 L -53.075134 34.07522 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<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.054812 0.000956149 L 1.607544 1.684401 L 3.087512 -0.00209871 L 1.607534 -1.682461 Z M 6.054812 0.000956149 " transform="matrix(-0.777335, 0.621872, 0.621872, 0.777335, 36.131806, 51.128468)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="41.953926" y="46.691558"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-1" x="86.017723" y="118.290195"/>
</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.519273 42.519907 L -54.622088 66.721622 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<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.053509 -0.000688195 L 1.608687 1.683316 L 3.08623 -0.000741279 L 1.610498 -1.683101 Z M 6.053509 -0.000688195 " transform="matrix(-0.446258, -0.892555, -0.892555, 0.446258, 33.310186, 21.87215)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="41.635448" y="45.701578"/>
<use xlink:href="#glyph-1-4" x="39.793611" y="38.758123"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="39.468877" y="37.747837"/>
<use xlink:href="#glyph-1-5" x="39.714266" y="38.758123"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="39.389339" y="37.747837"/>
<use xlink:href="#glyph-2-1" x="44.704595" y="40.245455"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-2" x="44.391813" y="39.238789"/>
<use xlink:href="#glyph-1-6" x="23.21294" y="66.663029"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-7" x="33.78749" y="17.788637"/>
<use xlink:href="#glyph-1-4" x="28.076795" y="66.663029"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="38.663183" y="17.788637"/>
<use xlink:href="#glyph-1-5" x="27.997449" y="66.663029"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="38.583645" y="17.788637"/>
<use xlink:href="#glyph-2-1" x="32.986128" y="68.151357"/>
</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.51946 42.519154 L 24.438768 40.259068 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<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.05485 -0.00164313 L 1.607436 1.685177 L 3.089435 0.00124024 L 1.609425 -1.684193 Z M 6.05485 -0.00164313 " transform="matrix(-0.987832, 0.123467, 0.123467, 0.987832, 113.899345, 46.386864)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="126.614405" y="46.691558"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-2" x="43.584464" y="19.279589"/>
</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.521397 42.519907 L 66.723113 54.622722 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<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.055126 -0.000787607 L 1.610304 1.683217 L 3.087846 -0.000840691 L 1.608613 -1.68145 Z M 6.055126 -0.000787607 " transform="matrix(0.892555, -0.446258, -0.446258, -0.892555, 150.606832, 32.681913)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="126.500968" y="45.701578"/>
<use xlink:href="#glyph-1-4" x="124.453094" y="38.758123"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="124.335395" y="37.747837"/>
<use xlink:href="#glyph-1-5" x="124.373749" y="38.758123"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="124.255857" y="37.747837"/>
<use xlink:href="#glyph-2-2" x="129.364078" y="40.245455"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-3" x="129.257334" y="39.238789"/>
<use xlink:href="#glyph-1-6" x="99.406375" y="58.197977"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-7" x="161.08627" y="31.932724"/>
<use xlink:href="#glyph-1-4" x="104.27023" y="58.197977"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="165.961962" y="31.932724"/>
<use xlink:href="#glyph-1-5" x="104.190885" y="58.197977"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="165.882424" y="31.932724"/>
<use xlink:href="#glyph-2-2" x="109.179563" y="59.685309"/>
</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.51946 -42.520522 L 52.391643 -38.573218 " transform="matrix(0.995537, 0, 0, -0.995537, 86.764049, 86.817679)"/>
<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.054946 0.000779225 L 1.609415 1.681761 L 3.087865 0.0000340403 L 1.607977 -1.681709 Z M 6.054946 0.000779225 " transform="matrix(0.924297, -0.369713, -0.369713, -0.924297, 136.298254, 126.266654)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="126.614405" y="131.352037"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-3" x="170.883243" y="33.423676"/>
</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.521397 -42.520763 L 54.620298 -18.319048 " transform="matrix(0.99796, 0, 0, -0.99796, 86.553628, 85.925354)"/>
<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.054217 -0.00133293 L 1.609456 1.684581 L 3.086938 -0.00127984 L 1.607645 -1.681836 Z M 6.054217 -0.00133293 " transform="matrix(0.446258, -0.892555, -0.892555, -0.446258, 139.797069, 106.739067)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="126.500968" y="130.567099"/>
<use xlink:href="#glyph-1-4" x="124.453094" y="123.417606"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="124.335395" y="122.613357"/>
<use xlink:href="#glyph-1-5" x="124.373749" y="123.417606"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="124.255857" y="122.613357"/>
<use xlink:href="#glyph-2-3" x="129.364078" y="124.904939"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-4" x="129.257334" y="124.105308"/>
<use xlink:href="#glyph-1-6" x="136.091919" y="134.391412"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-7" x="146.942183" y="102.654157"/>
<use xlink:href="#glyph-1-4" x="140.955774" y="134.391412"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="151.817875" y="102.654157"/>
<use xlink:href="#glyph-1-5" x="140.876428" y="134.391412"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="151.738337" y="102.654157"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-4" x="156.739156" y="104.14511"/>
<use xlink:href="#glyph-2-3" x="145.866102" y="135.878744"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 42 KiB

23
matlab/mat/acc_pos.txt Normal file
View File

@@ -0,0 +1,23 @@
23 1.5500e-001 -9.0000e-002 -5.9400e-001
22 0.0000e+000 1.8000e-001 -5.9400e-001
21 -1.5500e-001 -9.0000e-002 -5.9400e-001
20 8.6490e-001 -5.0600e-001 -9.5060e-001
19 8.7500e-001 7.9900e-001 -9.5060e-001
18 -7.3500e-001 8.1400e-001 -9.5060e-001
17 -7.3000e-001 -5.2600e-001 -9.5060e-001
16 2.9500e-001 -4.8100e-001 -7.8560e-001
15 4.5000e-001 5.3400e-001 -7.8560e-001
14 -4.8000e-001 5.3400e-001 -7.8560e-001
13 -3.2000e-001 -4.4600e-001 -7.8560e-001
12 4.7500e-001 -4.1900e-001 -4.2730e-001
11 4.7500e-001 4.2400e-001 -4.2730e-001
10 -4.6500e-001 4.0700e-001 -4.2730e-001
9 -4.7500e-001 -4.1400e-001 -4.2730e-001
8 3.8000e-001 -3.0000e-001 -4.1680e-001
7 4.2000e-001 2.8000e-001 -4.1680e-001
6 -4.2000e-001 2.8000e-001 -4.1680e-001
5 -3.8500e-001 -3.0000e-001 -4.1680e-001
4 6.4000e-002 -6.4000e-002 -2.7000e-001
3 6.4000e-002 6.4000e-002 -2.7000e-001
2 -6.4000e-002 6.4000e-002 -2.7000e-001
1 -6.4000e-002 -6.4000e-002 -2.7000e-001

BIN
matlab/mat/frf_com.mat Normal file

Binary file not shown.

BIN
matlab/mat/frf_matrix.mat Normal file

Binary file not shown.

BIN
matlab/mat/geometry.mat Normal file

Binary file not shown.

Binary file not shown.

BIN
matlab/mat/meas_raw_1.mat Normal file

Binary file not shown.

Binary file not shown.

16
matlab/mat/mode_damps.txt Normal file
View File

@@ -0,0 +1,16 @@
12.20318
11.66888
6.19561
2.79104
2.76253
4.34928
1.25546
3.65470
2.94088
3.19084
1.55526
3.13166
2.76141
1.34304
2.43201
1.38400

16
matlab/mat/mode_freqs.txt Normal file
View File

@@ -0,0 +1,16 @@
11.86509
18.55747
37.82163
39.07850
56.31944
69.78452
72.49325
84.83446
91.26350
105.47266
106.57165
112.67669
124.20538
145.30034
150.52113
165.42632

View File

@@ -0,0 +1,16 @@
4.13559e+003 +6.22828e+003
2.76278e+002 +1.74197e+004
-1.32270e+004 +2.17346e+004
-2.48397e+005 -1.60998e+005
-4.23967e+004 +7.06852e+004
-7.36964e+003 +4.57024e+004
1.37806e+005 +3.00336e+005
-1.31109e+004 +2.81759e+004
5.59259e+003 -4.27543e+004
-5.28869e+004 +6.38436e+003
3.71578e+004 +1.57745e+004
-4.24659e+004 +7.90956e+003
-3.57355e+004 +1.13161e+005
5.24764e+004 -1.45211e+005
1.97228e+005 +2.51758e+005
-3.00273e+005 +3.27201e+005

View File

@@ -0,0 +1,16 @@
4.98475e+005 -2.49344e+005
2.02102e+006 +2.05017e+005
4.96035e+006 +3.45724e+006
-4.12180e+007 +5.98638e+007
2.45891e+007 +1.56880e+007
1.98796e+007 +4.09986e+006
1.37577e+008 -6.10466e+007
1.47532e+007 +7.53272e+006
-2.44115e+007 -3.92655e+006
3.11045e+006 +3.51656e+007
1.09485e+007 -2.47140e+007
4.65546e+006 +3.02251e+007
8.75076e+007 +3.03162e+007
-1.31915e+008 -4.96844e+007
2.42567e+008 -1.80683e+008
3.35742e+008 +3.16782e+008

1104
matlab/mat/mode_shapes.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
0.045
0.144
-1.251
0.052
0.258
-0.778
0.000
0.014
-0.600
0.000
-0.005
-0.628
0.000
0.000
-0.580
-0.004
0.006
-0.319

View File

@@ -10,110 +10,12 @@ addpath('./mat/'); % Path for data
%% Colors for the figures
colors = colororder;
% Location of the Accelerometers
% <<ssec:modal_accelerometers>>
% 4 tri-axis accelerometers are used for each solid body.
% Only 2 could have been used as only 6DOF have to be measured, however, we have chosen to have some *redundancy*.
% This could also help us identify measurement problems or flexible modes is present.
% The position of the accelerometers are:
% - 4 on the first granite
% - 4 on the second granite
% - 4 on top of the translation stage (figure ref:fig:accelerometers_ty)
% - 4 on top of the tilt stage
% - 3 on top of the spindle
% - 4 on top of the hexapod (figure ref:fig:accelerometers_hexapod)
% In total, 23 accelerometers are used: *69 DOFs are thus measured*.
% The precise determination of the position of each accelerometer is done using the SolidWorks model (shown on figure ref:fig:location_accelerometers).
% #+name: fig:accelerometer_pictures
% #+caption: Accelerometers fixed on the micro-station
% #+begin_figure
% #+attr_latex: :caption \subcaption{\label{fig:accelerometers_ty}$T_y$ stage}
% #+attr_latex: :options {0.49\textwidth}
% #+begin_subfigure
% #+attr_latex: :height 6cm
% [[file:figs/accelerometers_ty.jpg]]
% #+end_subfigure
% #+attr_latex: :caption \subcaption{\label{fig:accelerometers_hexapod}Micro-Hexapod}
% #+attr_latex: :options {0.49\textwidth}
% #+begin_subfigure
% #+attr_latex: :height 6cm
% [[file:figs/accelerometers_hexapod.jpg]]
% #+end_subfigure
% #+end_figure
% #+name: fig:location_accelerometers
% #+caption: Position of the accelerometers using SolidWorks
% #+attr_latex: :width \linewidth
% [[file:figs/location_accelerometers.png]]
% The precise position of all the 23 accelerometer with respect to a frame located at the point of interest (located 270mm above the top platform of the hexapod) are shown in table ref:tab:position_accelerometers.
%% 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);
% 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\%$
%% 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]);
% #+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\%$
%% 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]);
% Force and Response signals
% <<ssec:modal_measured_signals>>
%% Load raw data
meas1_raw = load('mat/meas_raw_1.mat');
@@ -126,46 +28,17 @@ impacts = [5.937, 11.228, 16.681, 22.205, 27.350, 32.714, 38.115, 43.888, 50.407
% Time vector [s]
time = linspace(0, meas1_raw.Track1_X_Resolution*length(meas1_raw.Track1), length(meas1_raw.Track1));
% The force sensor and the accelerometers signals are shown in the time domain in Figure ref:fig:modal_raw_meas.
% Sharp "impacts" can be seen for the force sensor, indicating wide frequency band excitation.
% For the accelerometer, many resonances can be seen on the right, indicating complex dynamics
%% Raw measurement of the Accelerometer
figure;
tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([1,2]);
hold on;
plot(time, meas1_raw.Track2, 'DisplayName', 'Acceleration [$m/s^2$]');
plot(time, 1e-3*meas1_raw.Track1, 'DisplayName', 'Force [kN]');
plot(time-22.2, meas1_raw.Track2, 'DisplayName', '$X_{1,x}$ [$m/s^2$]');
plot(time-22.2, 1e-3*meas1_raw.Track1, 'DisplayName', '$F_{z}$ [kN]');
hold off;
xlabel('Time [s]');
ylabel('Amplitude');
xlim([0, time(end)]);
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
ax2 = nexttile();
hold on;
plot(time, meas1_raw.Track2);
plot(time, 1e-3*meas1_raw.Track1);
hold off;
xlabel('Time [s]');
set(gca, 'YTickLabel',[]);
xlim([22.19, 22.4]);
linkaxes([ax1,ax2],'y');
xlim([0, 0.2])
ylim([-2, 2]);
% #+name: fig:modal_raw_meas
% #+caption: Raw measurement of the acceleromter (blue) and of the force sensor at the Hammer tip (red). Zoom on one impact is shown on the right.
% #+RESULTS:
% [[file:figs/modal_raw_meas.png]]
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
%% Frequency Analysis
Nfft = floor(5.0*Fs); % Number of frequency points
@@ -176,17 +49,11 @@ Noverlap = floor(Nfft/2); % Overlap for frequency analysis
[pxx_force, f] = pwelch(meas1_raw.Track1, win, Noverlap, Nfft, Fs);
[pxx_acc, ~] = pwelch(meas1_raw.Track2, win, Noverlap, Nfft, Fs);
% The "normalized" amplitude spectral density of the two signals are computed and shown in Figure ref:fig:modal_asd_acc_force.
% Conclusions based on the time domain signals can be clearly seen in the frequency domain (wide frequency content for the force signal and complex dynamics for the accelerometer).
%% Normalized Amplitude Spectral Density of the measured force and acceleration
figure;
hold on;
plot(f, sqrt(pxx_force./max(pxx_force(f<200))), 'DisplayName', 'Force');
plot(f, sqrt(pxx_acc./max(pxx_acc(f<200))), 'DisplayName', 'Acceleration');
plot(f, sqrt(pxx_acc./max(pxx_acc(f<200))), 'DisplayName', '$\Gamma_{X_{1,x}}$');
plot(f, sqrt(pxx_force./max(pxx_force(f<200))), 'DisplayName', '$\Gamma_{F_{z}}$');
hold off;
set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Normalized Spectral Density');
@@ -195,16 +62,6 @@ xticks([0:20:200]);
ylim([0, 1])
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
% #+name: fig:modal_asd_acc_force
% #+caption: Normalized Amplitude Spectral Density of the measured force and acceleration
% #+RESULTS:
% [[file:figs/modal_asd_acc_force.png]]
% The frequency response function from the applied force to the measured acceleration can then be computed (Figure ref:fig:modal_frf_acc_force).
%% Compute the transfer function and Coherence
[G1, f] = tfestimate(meas1_raw.Track1, meas1_raw.Track2, win, Noverlap, Nfft, Fs);
[coh1, ~] = mscohere( meas1_raw.Track1, meas1_raw.Track2, win, Noverlap, Nfft, Fs);
@@ -217,16 +74,6 @@ set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log');
xlim([0, 200]);
xticks([0:20:200]);
% #+name: fig:modal_frf_acc_force
% #+caption: Frequency Response Function between the measured force and acceleration
% #+RESULTS:
% [[file:figs/modal_frf_acc_force.png]]
% The coherence between the input and output signals is also computed and found to be good between 20 and 200Hz (Figure ref:fig:modal_coh_acc_force).
%% Frequency Response Function between the force and the acceleration
figure;
plot(f, coh1);

View File

@@ -10,33 +10,15 @@ addpath('./mat/'); % Path for data
%% Colors for the figures
colors = colororder;
% Frequency Response Matrix
% <<ssec:modal_frf_matrix>>
% All the Frequency Response Functions measured are combined into one big array called the Frequency Response Matrix.
% The frequency response matrix is an $n \times p \times q$ matrix with:
% - $n$ the number of measurements: $23 \times 3$ (23 accelerometers measuring 3 directions each)
% - $p$ the number of excitation inputs: $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:
% \begin{equation}
% \text{FRF}(\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) \\
% \frac{D_{2_x}}{F_x}(\omega_i) & \frac{D_{2_x}}{F_y}(\omega_i) & \frac{D_{2_x}}{F_z}(\omega_i) \\
% \vdots & \vdots & \vdots \\
% \frac{D_{23_z}}{F_x}(\omega_i) & \frac{D_{23_z}}{F_y}(\omega_i) & \frac{D_{23_z}}{F_z}(\omega_i) \\
% \end{bmatrix}
% \end{equation}
%% 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);
%% Accelerometers ID connected to each solid body
solids = {};
solids.gbot = [17, 18, 19, 20]; % bottom granite
@@ -49,211 +31,14 @@ solids.hexa = [1, 2, 3, 4]; % Hexapod
% Names of the solid bodies
solid_names = fields(solids);
%% Save the acceleromter positions are well as the solid bodies
%% Save the accelerometer positions are well as the solid bodies
save('mat/geometry.mat', 'solids', 'solid_names', 'acc_pos');
% #+name: fig:aligned_accelerometers
% #+caption: Aligned measurement of the motion of a solid body
% #+RESULTS:
% [[file:figs/aligned_accelerometers.png]]
% The motion of the rigid body of figure ref:fig:aligned_accelerometers is defined by its displacement $\delta p$ and rotation $\vec{\Omega}$ with respect to the reference frame $\{O\}$.
% The motions at points $1$ and $2$ are:
% \begin{align*}
% \delta p_1 &= \delta p + \Omega \times p_1 \\
% \delta p_2 &= \delta p + \Omega \times p_2
% \end{align*}
% 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*}
% 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}
% \delta p_{x1} = \delta p_{x2}
% \end{equation}
% #+begin_important
% Two sensors that are measuring the motion of a rigid body in the direction of the line linking the two sensors should measure the same quantity.
% #+end_important
% We can verify that the rigid body assumption is correct by comparing the measurement of the sensors.
% From the table ref:tab:position_accelerometers, we can guess which sensors will give the same results in the X and Y directions.
% Comparison of such measurements in the X direction is shown on figure ref:fig:modal_solid_body_comp_x_dir.
% Similar result is obtained for the Y direction.
meas_dir = 1; % X
exc_dir = 1; % X
% Pair of accelerometers aligned in the X direction
acc_i = [1 , 4 ;
2 , 3 ;
5 , 8 ;
6 , 7 ;
9 , 12;
10, 11;
14, 15;
18, 19;
21, 23];
%% Comparaison of measured frequency response function for in the X directions for accelerometers aligned along X
figure;
tiledlayout(3, 3, 'TileSpacing', 'Compact', 'Padding', 'None');
for i = 1:size(acc_i, 1)
nexttile();
hold on;
plot(freqs, abs(squeeze(frf(meas_dir+3*(acc_i(i, 1)-1), exc_dir, :))), ...
'DisplayName', sprintf('%i', acc_i(i, 1)))
plot(freqs, abs(squeeze(frf(meas_dir+3*(acc_i(i, 2)-1), exc_dir, :))), ...
'DisplayName', sprintf('%i', acc_i(i, 2)))
hold off;
set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log');
if i > 6
xlabel('Frequency [Hz]');
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
else
set(gca, 'XTickLabel',[]);
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
end
if rem(i, 3) == 1
ylabel('Amplitude');
else
set(gca, 'YTickLabel',[]);
end
xlim([0, 200]); ylim([1e-5, 2e-2]);
end
% TODO Verification of the principle of reciprocity :noexport:
% <<ssec:modal_reciprocity_principle>>
% Because we expect our system to follow the principle of reciprocity.
% That is to say the response $X_j$ at some degree of freedom $j$ due to a force $F_k$ applied on DOF $k$ should be the same as the response $X_k$ due to a force $F_j$:
% \[ H_{jk} = \frac{X_j}{F_k} = \frac{X_k}{F_j} = H_{kj} \]
% This comes from the fact that we expect to have symmetric mass, stiffness and damping matrices.
% In order to access the quality of the data and the validity of the measured FRF, we then check that the reciprocity between $H_{jk}$ and $H_{kj}$ is of an acceptable level.
% We can verify this reciprocity using 3 different pairs of response/force.
dir_names = {'X', 'Y', 'Z'};
figure;
for i = 1:3
subplot(3, 1, i)
a = mod(i, 3)+1;
b = mod(i-2, 3)+1;
hold on;
plot(freqs, abs(squeeze(frf(3*(11-1)+a, b, :))), 'DisplayName', sprintf('$\\frac{F_%s}{D_%s}$', dir_names{a}, dir_names{b}));
plot(freqs, abs(squeeze(frf(3*(11-1)+b, a, :))), 'DisplayName', sprintf('$\\frac{F_%s}{D_%s}$', dir_names{b}, dir_names{a}));
hold off;
set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log');
if i == 3
xlabel('Frequency [Hz]');
else
set(gca, 'XTickLabel',[]);
end
if i == 2
ylabel('Amplitude [$\frac{m/s^2}{N}$]');
end
xlim([0, 200]);
legend('location', 'northwest');
end
% From accelerometer DOFs to solid body DOFs - Matlab Implementation
% First, we initialize a new FRF matrix =FRFs_O= 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 =FRFs_O= is a $n\times p$ matrix:
% \begin{equation}
% \text{FRF}_\text{O}(\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) \\
% \frac{D_{1,R_x}}{F_x}(\omega_i) & \frac{D_{1,R_x}}{F_y}(\omega_i) & \frac{D_{1,R_x}}{F_z}(\omega_i) \\
% \frac{D_{1,R_y}}{F_x}(\omega_i) & \frac{D_{1,R_y}}{F_y}(\omega_i) & \frac{D_{1,R_y}}{F_z}(\omega_i) \\
% \frac{D_{1,R_z}}{F_x}(\omega_i) & \frac{D_{1,R_z}}{F_y}(\omega_i) & \frac{D_{1,R_z}}{F_z}(\omega_i) \\
% \frac{D_{2,T_x}}{F_x}(\omega_i) & \frac{D_{2,T_x}}{F_y}(\omega_i) & \frac{D_{2,T_x}}{F_z}(\omega_i) \\
% \vdots & \vdots & \vdots \\
% \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 $D_i$ corresponds to the solid body number i.
% #+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 the frame $\{O\}$.
FRFs_O = zeros(length(solid_names)*6, 3, 801);
for solid_i = 1:length(solid_names)
solids_i = solids.(solid_names{solid_i});
A = zeros(3*length(solids_i), 6);
for i = 1:length(solids_i)
acc_i = solids_i(i);
A(3*(i-1)+1:3*i, 1:3) = eye(3);
A(3*(i-1)+1:3*i, 4:6) = [ 0 acc_pos(acc_i, 3) -acc_pos(acc_i, 2) ;
-acc_pos(acc_i, 3) 0 acc_pos(acc_i, 1) ;
acc_pos(acc_i, 2) -acc_pos(acc_i, 1) 0];
end
for exc_dir = 1:3
FRFs_O((solid_i-1)*6+1:solid_i*6, exc_dir, :) = A\squeeze(FRFs((solids_i(1)-1)*3+1:solids_i(end)*3, exc_dir, :));
end
end
% 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
%% Extract the CoM of considered solid bodies
model_com = reshape(table2array(readtable('mat/model_solidworks_com.txt', 'ReadVariableNames', false)), [3, 6]);
% From accelerometer DOFs to solid body DOFs - Expressed at the CoM
% 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}
% \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) \\
% \frac{D_{1,R_x}}{F_x}(\omega_i) & \frac{D_{1,R_x}}{F_y}(\omega_i) & \frac{D_{1,R_x}}{F_z}(\omega_i) \\
% \frac{D_{1,R_y}}{F_x}(\omega_i) & \frac{D_{1,R_y}}{F_y}(\omega_i) & \frac{D_{1,R_y}}{F_z}(\omega_i) \\
% \frac{D_{1,R_z}}{F_x}(\omega_i) & \frac{D_{1,R_z}}{F_y}(\omega_i) & \frac{D_{1,R_z}}{F_z}(\omega_i) \\
% \frac{D_{2,T_x}}{F_x}(\omega_i) & \frac{D_{2,T_x}}{F_y}(\omega_i) & \frac{D_{2,T_x}}{F_z}(\omega_i) \\
% \vdots & \vdots & \vdots \\
% \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.
%% Frequency Response Matrix - Response expressed at the CoM of the solid bodies
FRFs_CoM = zeros(length(solid_names)*6, 3, 801);
frfs_CoM = zeros(length(solid_names)*6, 3, 801);
for solid_i = 1:length(solid_names)
% Number of accelerometers fixed to this solid body
@@ -273,43 +58,22 @@ for solid_i = 1:length(solid_names)
end
for exc_dir = 1:3
FRFs_CoM((solid_i-1)*6+1:solid_i*6, exc_dir, :) = A\squeeze(frf((solids_i(1)-1)*3+1:solids_i(end)*3, exc_dir, :));
frfs_CoM((solid_i-1)*6+1:solid_i*6, exc_dir, :) = A\squeeze(frf((solids_i(1)-1)*3+1:solids_i(end)*3, exc_dir, :));
end
end
%% Save the computed FRF at the CoM
save('mat/frf_com.mat', 'FRFs_CoM');
save('mat/frf_com.mat', 'frfs_CoM');
% Verify that we find the original FRF from the FRF in the global coordinates
% 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 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.
% 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:
FRFs_A = zeros(size(frf));
%% Compute the FRF at the accelerometer location from the CoM reponses
frfs_A = zeros(size(frf));
% For each excitation direction
for exc_dir = 1:3
% For each solid
for solid_i = 1:length(solid_names)
v0 = squeeze(FRFs_CoM((solid_i-1)*6+1:(solid_i-1)*6+3, exc_dir, :));
W0 = squeeze(FRFs_CoM((solid_i-1)*6+4:(solid_i-1)*6+6, exc_dir, :));
v0 = squeeze(frfs_CoM((solid_i-1)*6+1:(solid_i-1)*6+3, exc_dir, :));
W0 = squeeze(frfs_CoM((solid_i-1)*6+4:(solid_i-1)*6+6, exc_dir, :));
% For each accelerometer attached to the current solid
for acc_i = solids.(solid_names{solid_i})
@@ -318,23 +82,12 @@ for exc_dir = 1:3
% pos = acc_pos(acc_i, :).';
posX = [0 pos(3) -pos(2); -pos(3) 0 pos(1) ; pos(2) -pos(1) 0];
FRFs_A(3*(acc_i-1)+1:3*(acc_i-1)+3, exc_dir, :) = v0 + posX*W0;
frfs_A(3*(acc_i-1)+1:3*(acc_i-1)+3, exc_dir, :) = v0 + posX*W0;
end
end
end
% 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 on figure ref:fig:recovered_frf_comparison_hexa.
% 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:recovered_frf_comparison_ty.
% The FRF are matching well until 100Hz.
%% Comparaison of the original accelerometer response and reconstructed response from the solid body response
%% Comparison of the original accelerometer response and reconstructed response from the solid body response
exc_names = {'$F_x$', '$F_y$', '$F_z$'};
DOFs = {'x', 'y', 'z', '\theta_x', '\theta_y', '\theta_z'};
@@ -344,7 +97,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);
@@ -352,11 +105,10 @@ for i = 1:length(accs_i)
hold on;
for dir_i = 1:3
plot(freqs, abs(squeeze(frf(3*(acc_i-1)+dir_i, exc_dir, :))), '-', 'DisplayName', sprintf('$a_{%i,%s}$', acc_i, DOFs{dir_i}));
plot(freqs, abs(squeeze(frf(3*(acc_i-1)+dir_i, exc_dir, :))), '-', 'color', [colors(dir_i,:), 0.5], 'linewidth', 2.5, 'DisplayName', sprintf('$a_{%i,%s}$ - meas', acc_i, DOFs{dir_i}));
end
set(gca,'ColorOrderIndex',1)
for dir_i = 1:3
plot(freqs, abs(squeeze(FRFs_A(3*(acc_i-1)+dir_i, exc_dir, :))), '--', 'HandleVisibility', 'off');
plot(freqs, abs(squeeze(frfs_A(3*(acc_i-1)+dir_i, exc_dir, :))), '-', 'color', colors(dir_i, :), 'DisplayName', sprintf('$a_{%i,%s}$ - solid body', acc_i, DOFs{dir_i}));
end
hold off;
@@ -372,7 +124,9 @@ 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]);
leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2);
leg.ItemTokenSize(1) = 15;
end

View File

@@ -10,32 +10,8 @@ addpath('./mat/'); % Path for data
%% Colors for the figures
colors = colororder;
% Singular Value Decomposition - Modal Indication Function
% The Mode Indicator Functions are usually used on $n\times p$ FRF matrix where $n$ is a relatively large number of measurement DOFs and $p$ is the number of excitation DOFs, typically 3 or 4.
% In these methods, the frequency dependent FRF matrix is subjected to a singular value decomposition analysis which thus yields a small number (3 or 4) of singular values, these also being frequency dependent.
% These methods are used to *determine the number of modes* present in a given frequency range, to *identify repeated natural frequencies* and to pre-process the FRF data prior to modal analysis.
% From the documentation of the modal software:
% #+begin_quote
% The MIF consist of the singular values of the Frequency response function matrix. The number of MIFs equals the number of excitations.
% By the powerful singular value decomposition, the real signal space is separated from the noise space. Therefore, the MIFs exhibit the modes effectively.
% A peak in the MIFs plot usually indicate the existence of a structural mode, and two peaks at the same frequency point means the existence of two repeated modes.
% Moreover, the magnitude of the MIFs implies the strength of the a mode.
% #+end_quote
% #+begin_important
% The *Complex Mode Indicator Function* is defined simply by the SVD of the FRF (sub) matrix:
% \begin{align*}
% [H(\omega)]_{n\times p} &= [U(\omega)]_{n\times n} [\Sigma(\omega)]_{n\times p} [V(\omega)]_{p\times p}^H\\
% [CMIF(\omega)]_{p\times p} &= [\Sigma(\omega)]_{p\times n}^T [\Sigma(\omega)]_{n\times p}
% \end{align*}
% #+end_important
% We compute the Complex Mode Indicator Function.
% The result is shown on Figure ref:fig:modal_indication_function.
%% Load frequency response matrix
load('frf_matrix.mat', 'freqs', 'frf');
%% Computation of the modal indication function
MIF = zeros(size(frf, 2), size(frf, 2), size(frf, 3));
@@ -49,7 +25,7 @@ end
figure;
hold on;
for i = 1:size(MIF, 1)
plot(freqs, squeeze(MIF(i, i, :)));
plot(freqs, squeeze(MIF(i, i, :)), 'DisplayName', sprintf('MIF${}_%i$', i));
end
hold off;
set(gca, 'Xscale', 'lin'); set(gca, 'Yscale', 'log');
@@ -57,37 +33,7 @@ xlabel('Frequency [Hz]'); ylabel('CMIF Amplitude');
xticks([0:20:200]);
xlim([0, 200]);
ylim([1e-6, 2e-2]);
% Composite Response Function
% An alternative is the Composite Response Function $HH(\omega)$ defined as the sum of all the measured FRF:
% \begin{equation}
% HH(\omega) = \sum_j\sum_kH_{jk}(\omega)
% \end{equation}
% Instead, we choose here to use the sum of the norms of the measured frf:
% \begin{equation}
% HH(\omega) = \sum_j\sum_k \left|H_{jk}(\omega) \right|
% \end{equation}
% The result is shown on figure ref:fig:modal_composite_reponse_function.
%% Composite Response Function
figure;
hold on;
plot(freqs, squeeze(sum(sum(abs(frf)))), '-k');
hold off;
xlabel('Frequency [Hz]'); ylabel('Amplitude');
xlim([0, 200]);
xticks([0:20:200]);
% Importation of the modal parameters on Matlab
% The obtained modal parameters are:
% - Resonance frequencies in Hertz
% - Modal damping ratio in percentage
% - (complex) Modes shapes for each measured DoF
% - Modal A and modal B which are parameters important for further normalization
ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
%% Load modal parameters
shapes_m = readtable('mat/mode_shapes.txt', 'ReadVariableNames', false); % [Sign / Real / Imag]
@@ -123,149 +69,83 @@ for mod_i = 1:mod_n
end
end
% Modal Matrices
% We would like to arrange the obtained modal parameters into two modal matrices:
% \[ \Lambda = \begin{bmatrix}
% s_1 & & 0 \\
% & \ddots & \\
% 0 & & s_N
% \end{bmatrix}_{N \times N}; \quad \Psi = \begin{bmatrix}
% & & \\
% \{\psi_1\} & \dots & \{\psi_N\} \\
% & &
% \end{bmatrix}_{M \times N} \]
% \[ \{\psi_i\} = \begin{Bmatrix} \psi_{i, 1_x} & \psi_{i, 1_y} & \psi_{i, 1_z} & \psi_{i, 2_x} & \dots & \psi_{i, 23_z} \end{Bmatrix}^T \]
% $M$ is the number of DoF: here it is $23 \times 3 = 69$.
% $N$ is the number of mode
eigen_val_M = diag(2*pi*freqs_m.*(-damps_m/100 + j*sqrt(1 - (damps_m/100).^2)));
eigen_vec_M = reshape(mode_shapes, [mod_n, acc_n*dir_n]).';
% Each eigen vector is normalized: $\| \{\psi_i\} \|_2 = 1$
% However, the eigen values and eigen vectors appears as complex conjugates:
% \[ s_r, s_r^*, \{\psi\}_r, \{\psi\}_r^*, \quad r = 1, N \]
% In the end, they are $2N$ eigen values.
% We then build two extended eigen matrices as follow:
% \[ \mathcal{S} = \begin{bmatrix}
% s_1 & & & & & \\
% & \ddots & & & 0 & \\
% & & s_N & & & \\
% & & & s_1^* & & \\
% & 0 & & & \ddots & \\
% & & & & & s_N^*
% \end{bmatrix}_{2N \times 2N}; \quad \Phi = \begin{bmatrix}
% & & & & &\\
% \{\psi_1\} & \dots & \{\psi_N\} & \{\psi_1^*\} & \dots & \{\psi_N^*\} \\
% & & & & &
% \end{bmatrix}_{M \times 2N} \]
%% Create the eigenvalue and eigenvector matrices
eigen_val_M = diag(2*pi*freqs_m.*(-damps_m/100 + j*sqrt(1 - (damps_m/100).^2))); % Lambda = diagonal matrix
eigen_vec_M = reshape(mode_shapes, [mod_n, acc_n*dir_n]).'; % Phi, vecnorm(eigen_vec_M) = 1
% Add complex conjugate eigenvalues and eigenvectors
eigen_val_ext_M = blkdiag(eigen_val_M, conj(eigen_val_M));
eigen_vec_ext_M = [eigen_vec_M, conj(eigen_vec_M)];
% We also build the Modal A and Modal B matrices:
% \begin{equation}
% A = \begin{bmatrix}
% a_1 & & 0 \\
% & \ddots & \\
% 0 & & a_N
% \end{bmatrix}_{N \times N}; \quad B = \begin{bmatrix}
% b_1 & & 0 \\
% & \ddots & \\
% 0 & & b_N
% \end{bmatrix}_{N \times N}
% \end{equation}
% With $a_i$ is the "Modal A" parameter linked to mode i.
%% "Modal A" and "Modal B" matrices
modal_a_M = diag(complex(modal_a(:, 1), modal_a(:, 2)));
modal_b_M = diag(complex(modal_b(:, 1), modal_b(:, 2)));
modal_a_ext_M = blkdiag(modal_a_M, conj(modal_a_M));
modal_b_ext_M = blkdiag(modal_b_M, conj(modal_b_M));
% Matlab Implementation
%% Synthesize the full FRF matrix from the modal model
Hsyn = zeros(acc_n*dir_n, acc_n*dir_n, length(freqs));
for i = 1:length(freqs)
Hsyn(:, :, i) = eigen_vec_ext_M*((j*2*pi*freqs(i)).^2*inv(modal_a_ext_M)/(diag(j*2*pi*freqs(i) - diag(eigen_val_ext_M))))*eigen_vec_ext_M.';
Hsyn(:, :, i) = eigen_vec_ext_M*diag(1./(diag(modal_a_ext_M).*(j*2*pi*freqs(i) - diag(eigen_val_ext_M))))*eigen_vec_ext_M.';
end
% Because the synthesize frequency response functions are representing the displacement response in $[m/N]$, we multiply each element of the FRF matrix by $(j \omega)^2$ in order to obtain the acceleration response in $[m/s^2/N]$.
%% Derivate two times to have the acceleration response
for i = 1:size(Hsyn, 1)
Hsyn(i, :, :) = squeeze(Hsyn(i, :, :)).*(j*2*pi*freqs).^2;
end
% Original and Synthesize FRF matrix comparison
acc_o = 1; dir_o = 1; dir_i = 1;
acc_o = 11; dir_o = 3;
acc_i = 11; dir_i = 3;
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(freqs, abs(squeeze(frf(3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Original');
plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(11-1)+dir_i, :))), 'DisplayName', 'Synthesize');
plot(freqs, abs(squeeze(frf( 3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Measured');
plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(acc_i-1)+dir_i, :))), 'DisplayName', 'Synthesized');
hold off;
set(gca, 'xscale', 'lin');
set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
xlabel('Frequency [Hz]');
ylabel('Magnitude [$\frac{m/s^2}{N}$]');
title(sprintf('From acc %i %s to acc %i %s', 11, dirs(dir_i), acc_o, dirs(dir_o)))
legend('location', 'northwest');
ax2 = subplot(2, 1, 2);
hold on;
plot(freqs, mod(180/pi*phase(squeeze(frf(3*(acc_o-1)+dir_o, dir_i, :)))+180, 360)-180);
plot(freqs, mod(180/pi*phase(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(11-1)+dir_i, :)))+180, 360)-180);
hold off;
yticks(-360:90:360); ylim([-180, 180]);
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
linkaxes([ax1,ax2],'x');
ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
ldg.ItemTokenSize = [10, 1];
xticks([0:40:200]);
xlim([1, 200]);
ylim([1e-6, 1e-1]);
% Synthesize FRF that has not yet been measured
accs = [1]; dirs = [1:3];
acc_o = 15; dir_o = 3;
acc_i = 11; dir_i = 3;
figure;
ax1 = subplot(2, 1, 1);
hold on;
for acc_i = accs
for dir_i = dirs
plot(freqs, abs((1./(j*2*pi*freqs').^2).*squeeze(Hsyn(3*(acc_i-1)+dir_i, 3*(acc_i-1)+dir_i, :))), 'DisplayName', sprintf('Acc %i - %s', acc_i, dirs(dir_i)));
end
end
plot(freqs, abs(squeeze(frf( 3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Measured');
plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(acc_i-1)+dir_i, :))), 'DisplayName', 'Synthesized');
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Magnitude [$\frac{m}{N}$]');
legend('location', 'southwest');
ax2 = subplot(2, 1, 2);
hold on;
for acc_i = accs
for dir_i = dirs
plot(freqs, mod(180/pi*phase((1./(j*2*pi*freqs').^2).*squeeze(Hsyn(3*(acc_i-1)+dir_i, 3*(acc_i-1)+dir_i, :)))+180, 360)-180);
end
end
hold off;
yticks(-360:90:360); ylim([-180, 180]);
set(gca, 'xscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
linkaxes([ax1,ax2],'x');
set(gca, 'xscale', 'lin');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]');
ylabel('Magnitude [$\frac{m/s^2}{N}$]');
ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
ldg.ItemTokenSize = [10, 1];
xticks([0:40:200]);
xlim([1, 200]);
ylim([1e-6, 1e-1]);
acc_o = 2; dir_o = 1;
acc_i = 11; dir_i = 2;
figure;
hold on;
plot(freqs, abs(squeeze(frf( 3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Measured');
plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(acc_i-1)+dir_i, :))), 'DisplayName', 'Synthesized');
hold off;
set(gca, 'xscale', 'lin');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]');
ylabel('Magnitude [$\frac{m/s^2}{N}$]');
ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
ldg.ItemTokenSize = [10, 1];
xticks([0:40:200]);
xlim([1, 200]);
ylim([1e-6, 1e-1]);

View File

@@ -1,12 +1,38 @@
@book{ewins00_modal,
author = {Ewins, DJ},
title = {Modal testing: theory, practice and application},
year = 2000,
publisher = {Wiley-Blackwell},
address = {Baldock, Hertfordshire, England Philadelphia, PA},
isbn = 0863802184,
journal = {Research studies Pre, 2nd ed., ISBN-13},
keywords = {favorite, identification},
pages = {978--0863802188},
@article{wang11_extrac_real_modes_physic_matric,
author = {Tong Wang and Lingmi Zhang and Kong Fah Tee},
title = {Extraction of Real Modes and Physical Matrices From Modal
Testing},
journal = {Earthquake Engineering and Engineering Vibration},
volume = 10,
number = 2,
pages = {219-227},
year = 2011,
doi = {10.1007/s11803-011-0060-6},
url = {https://doi.org/10.1007/s11803-011-0060-6},
DATE_ADDED = {Tue Jul 9 15:51:21 2019},
}
@article{pastor12_modal_assur_criter,
author = {Miroslav Pastor and Michal Binda and Tom{\'a}{\v{s}} Har{\v{c}}arik},
title = {Modal Assurance Criterion},
journal = {Procedia Engineering},
volume = {48},
number = {nil},
pages = {543-548},
year = {2012},
doi = {10.1016/j.proeng.2012.09.551},
url = {https://doi.org/10.1016/j.proeng.2012.09.551},
DATE_ADDED = {Thu Jul 11 13:51:57 2019},
}
@book{ewins00_modal,
author = {Ewins, DJ},
title = {Modal testing: theory, practice and application},
year = {2000},
publisher = {Wiley-Blackwell},
journal = {Research studies Pre, 2nd ed., ISBN-13},
pages = {978--0863802188},
isbn = {0863802184},
address = {Baldock, Hertfordshire, England Philadelphia, PA},
keywords = {favorite, identification},
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,151 +1,23 @@
\usepackage{float}
\usepackage[ %
acronym, % Separate acronyms and glossary
toc, % appear in ToC
automake, % auto-use the makeglossaries command (requires shell-escape)
nonumberlist, % don't back reference pages
nogroupskip, % don't group by letter
nopostdot % don't add a dot at the end of each element
]{glossaries}
\usepackage{caption,tabularx,booktabs}
\usepackage[stylemods=longextra]{glossaries-extra}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{bm}
\usepackage{dsfont}
\usepackage{empheq} % for drawing boxes around equations
\usepackage{xpatch} % Recommanded for biblatex
\usepackage[ % use biblatex for bibliography
backend=biber, % use biber backend (bibtex replacement) or bibtex
style=ieee, % bib style
hyperref=true, % activate hyperref support
backref=true, % activate backrefs
isbn=false, % don't show isbn tags
url=false, % don't show url tags
doi=false, % don't show doi tags
urldate=long, % display type for dates
maxnames=3, %
minnames=1, %
maxbibnames=5, %
minbibnames=3, %
maxcitenames=2, %
mincitenames=1 %
]{biblatex}
\setabbreviationstyle[acronym]{long-short}
\setglossarystyle{long-name-desc}
\setlength\bibitemsep{1.1\itemsep}
% \renewcommand*{\bibfont}{\footnotesize}
\usepackage{fontawesome}
\usepackage{caption}
\usepackage{subcaption}
\captionsetup[figure]{labelfont=bf}
\captionsetup[subfigure]{labelfont=bf}
\captionsetup[listing]{labelfont=bf}
\captionsetup[table]{labelfont=bf}
\usepackage{xcolor}
\definecolor{my-blue}{HTML}{6b7adb}
\definecolor{my-pale-blue}{HTML}{e6e9f9}
\definecolor{my-red}{HTML}{db6b6b}
\definecolor{my-pale-red}{HTML}{f9e6e6}
\definecolor{my-green}{HTML}{6bdbb6}
\definecolor{my-pale-green}{HTML}{e6f9f3}
\definecolor{my-yellow}{HTML}{dbd26b}
\definecolor{my-pale-yellow}{HTML}{f9f7e6}
\definecolor{my-orange}{HTML}{dba76b}
\definecolor{my-pale-orange}{HTML}{f9f0e6}
\definecolor{my-grey}{HTML}{a3a3a3}
\definecolor{my-pale-grey}{HTML}{f0f0f0}
\definecolor{my-turq}{HTML}{6bc7db}
\definecolor{my-pale-turq}{HTML}{e6f6f9}
\usepackage{inconsolata}
\usepackage[newfloat=true, chapter]{minted}
\usemintedstyle{autumn}
\setminted{frame=lines,breaklines=true,tabsize=4,fontsize=\scriptsize,autogobble=true,labelposition=topline,bgcolor=my-pale-grey}
\setminted[matlab]{label=Matlab}
\setminted[latex]{label=LaTeX}
\setminted[bash]{label=Bash}
\setminted[python]{label=Python}
\setminted[text]{label=Results}
\setminted[md]{label=Org Mode}
\setmintedinline{fontsize=\normalsize,bgcolor=my-pale-grey}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
\newtcolorbox{seealso}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=See Also}
\newtcolorbox{hint}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=Hint}
\newtcolorbox{definition}{enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Definition}
\newtcolorbox{important}{ enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Important}
\newtcolorbox{exampl}[1][]{ enhanced,breakable,colback=my-pale-green,colframe=my-green,fonttitle=\bfseries,title=Example,#1}
\newtcolorbox{exercice}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Exercice}
\newtcolorbox{question}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Question}
\newtcolorbox{answer}{ enhanced,breakable,colback=my-pale-turq,colframe=my-turq,fonttitle=\bfseries,title=Answer}
\newtcolorbox{summary}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Summary}
\newtcolorbox{note}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Note}
\newtcolorbox{caution}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Caution}
\newtcolorbox{warning}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Warning}
\newtcolorbox{my-quote}[1]{%
colback=my-pale-grey,
grow to right by=-10mm,
grow to left by=-10mm,
boxrule=0pt,
boxsep=0pt,
breakable,
enhanced jigsaw,
borderline west={4pt}{0pt}{my-grey}}
\renewenvironment{quote}{\begin{my-quote}}{\end{my-quote}}
\newtcolorbox{my-verse}[1]{%
colback=my-pale-grey,
grow to right by=-10mm,
grow to left by=-10mm,
boxrule=0pt,
boxsep=0pt,
breakable,
enhanced jigsaw,
borderline west={4pt}{0pt}{my-grey}}
\renewenvironment{verse}{\begin{my-verse}}{\end{my-verse}}
\usepackage{environ}% http://ctan.org/pkg/environ
\NewEnviron{aside}{%
\marginpar{\BODY}
}
\renewenvironment{verbatim}{\VerbatimEnvironment\begin{minted}[]{text}}{\end{minted}}
\usepackage{soul}
\sethlcolor{my-pale-grey}
\let\OldTexttt\texttt
\renewcommand{\texttt}[1]{{\ttfamily\hl{\mbox{\,#1\,}}}}
\makeatletter
\preto\Gin@extensions{png,}
\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
\preto\Gin@extensions{gif,}
\DeclareGraphicsRule{.gif}{png}{.png}{\noexpand\Gin@base.png}
\makeatother
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
allcolors = my-blue
}
\usepackage{hypcap}
\usepackage[binary-units=true]{siunitx}
\sisetup{%
detect-all = true,
detect-family = true,
detect-mode = true,
detect-shape = true,
detect-weight = true,
detect-inline-weight = math,
}
\DeclareSIUnit\px{px}
\DeclareSIUnit\rms{rms}
\makeindex
\makeglossaries

134
preamble_extra.tex Normal file
View File

@@ -0,0 +1,134 @@
\usepackage{float}
\usepackage{enumitem}
\usepackage{caption,tabularx,booktabs}
\usepackage{bm}
\usepackage{xpatch} % Recommanded for biblatex
\usepackage[ % use biblatex for bibliography
backend=biber, % use biber backend (bibtex replacement) or bibtex
style=ieee, % bib style
hyperref=true, % activate hyperref support
backref=true, % activate backrefs
isbn=false, % don't show isbn tags
url=false, % don't show url tags
doi=false, % don't show doi tags
urldate=long, % display type for dates
maxnames=3, %
minnames=1, %
maxbibnames=5, %
minbibnames=3, %
maxcitenames=2, %
mincitenames=1 %
]{biblatex}
\setlength\bibitemsep{1.1\itemsep}
\usepackage{caption}
\usepackage{subcaption}
\captionsetup[figure]{labelfont=bf}
\captionsetup[subfigure]{labelfont=bf}
\captionsetup[listing]{labelfont=bf}
\captionsetup[table]{labelfont=bf}
\usepackage{xcolor}
\definecolor{my-blue}{HTML}{6b7adb}
\definecolor{my-pale-blue}{HTML}{e6e9f9}
\definecolor{my-red}{HTML}{db6b6b}
\definecolor{my-pale-red}{HTML}{f9e6e6}
\definecolor{my-green}{HTML}{6bdbb6}
\definecolor{my-pale-green}{HTML}{e6f9f3}
\definecolor{my-yellow}{HTML}{dbd26b}
\definecolor{my-pale-yellow}{HTML}{f9f7e6}
\definecolor{my-orange}{HTML}{dba76b}
\definecolor{my-pale-orange}{HTML}{f9f0e6}
\definecolor{my-grey}{HTML}{a3a3a3}
\definecolor{my-pale-grey}{HTML}{f0f0f0}
\definecolor{my-turq}{HTML}{6bc7db}
\definecolor{my-pale-turq}{HTML}{e6f6f9}
\usepackage{inconsolata}
\usepackage[newfloat=true, chapter]{minted}
\usemintedstyle{autumn}
\setminted{frame=lines,breaklines=true,tabsize=4,fontsize=\scriptsize,autogobble=true,labelposition=topline,bgcolor=my-pale-grey}
\setminted[matlab]{label=Matlab}
\setminted[latex]{label=LaTeX}
\setminted[bash]{label=Bash}
\setminted[python]{label=Python}
\setminted[text]{label=Results}
\setminted[md]{label=Org Mode}
\setmintedinline{fontsize=\normalsize,bgcolor=my-pale-grey}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
\newtcolorbox{seealso}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=See Also}
\newtcolorbox{hint}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=Hint}
\newtcolorbox{definition}{enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Definition}
\newtcolorbox{important}{ enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Important}
\newtcolorbox{exampl}[1][]{ enhanced,breakable,colback=my-pale-green,colframe=my-green,fonttitle=\bfseries,title=Example,#1}
\newtcolorbox{exercice}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Exercice}
\newtcolorbox{question}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Question}
\newtcolorbox{answer}{ enhanced,breakable,colback=my-pale-turq,colframe=my-turq,fonttitle=\bfseries,title=Answer}
\newtcolorbox{summary}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Summary}
\newtcolorbox{note}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Note}
\newtcolorbox{caution}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Caution}
\newtcolorbox{warning}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Warning}
\newtcolorbox{my-quote}[1]{%
colback=my-pale-grey,
grow to right by=-10mm,
grow to left by=-10mm,
boxrule=0pt,
boxsep=0pt,
breakable,
enhanced jigsaw,
borderline west={4pt}{0pt}{my-grey}}
\renewenvironment{quote}{\begin{my-quote}}{\end{my-quote}}
\newtcolorbox{my-verse}[1]{%
colback=my-pale-grey,
grow to right by=-10mm,
grow to left by=-10mm,
boxrule=0pt,
boxsep=0pt,
breakable,
enhanced jigsaw,
borderline west={4pt}{0pt}{my-grey}}
\renewenvironment{verse}{\begin{my-verse}}{\end{my-verse}}
\usepackage{environ}% http://ctan.org/pkg/environ
\NewEnviron{aside}{%
\marginpar{\BODY}
}
\renewenvironment{verbatim}{\VerbatimEnvironment\begin{minted}[]{text}}{\end{minted}}
\usepackage{soul}
\sethlcolor{my-pale-grey}
\let\OldTexttt\texttt
\renewcommand{\texttt}[1]{{\ttfamily\hl{\mbox{\,#1\,}}}}
\makeatletter
\preto\Gin@extensions{png,}
\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
\preto\Gin@extensions{gif,}
\DeclareGraphicsRule{.gif}{png}{.png}{\noexpand\Gin@base.png}
\makeatother
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
allcolors = my-blue
}
\usepackage{hypcap}

38
ref.bib
View File

@@ -1,38 +0,0 @@
@article{wang11_extrac_real_modes_physic_matric,
author = {Tong Wang and Lingmi Zhang and Kong Fah Tee},
title = {Extraction of Real Modes and Physical Matrices From Modal
Testing},
journal = {Earthquake Engineering and Engineering Vibration},
volume = 10,
number = 2,
pages = {219-227},
year = 2011,
doi = {10.1007/s11803-011-0060-6},
url = {https://doi.org/10.1007/s11803-011-0060-6},
DATE_ADDED = {Tue Jul 9 15:51:21 2019},
}
@article{pastor12_modal_assur_criter,
author = {Miroslav Pastor and Michal Binda and Tom{\'a}{\v{s}} Har{\v{c}}arik},
title = {Modal Assurance Criterion},
journal = {Procedia Engineering},
volume = {48},
number = {nil},
pages = {543-548},
year = {2012},
doi = {10.1016/j.proeng.2012.09.551},
url = {https://doi.org/10.1016/j.proeng.2012.09.551},
DATE_ADDED = {Thu Jul 11 13:51:57 2019},
}
@book{ewins00_modal,
author = {Ewins, DJ},
title = {Modal testing: theory, practice and application},
year = {2000},
publisher = {Wiley-Blackwell},
journal = {Research studies Pre, 2nd ed., ISBN-13},
pages = {978--0863802188},
isbn = {0863802184},
address = {Baldock, Hertfordshire, England Philadelphia, PA},
keywords = {favorite, identification},
}