Compare commits

...

19 Commits

Author SHA1 Message Date
4776c89343 long measurements 2021-02-17 11:14:29 +01:00
195c5b5598 Add pictures 2021-02-12 18:26:24 +01:00
9a06c0995f Analyse long measurement 2021-02-11 15:22:02 +01:00
73dc280ab3 Prepare files for long measurement 2021-02-11 13:48:19 +01:00
15d8508bf0 Merge branch 'master' of https://git.tdehaeze.xyz/tdehaeze/test-bench-vionic 2021-02-11 10:17:38 +01:00
bc5876f32f long measurement 2021-02-11 10:16:58 +01:00
080b788768 Add some details 2021-02-10 15:14:14 +01:00
30177e4809 Update with last measured encoder 2021-02-04 20:23:22 +01:00
006cb20df1 measure last encoder 2021-02-04 14:57:10 +01:00
53ffaaa793 Analyze the measured noise of all encoders 2021-02-03 11:20:22 +01:00
0296f80900 measure encoder noise 2021-02-03 10:38:27 +01:00
d924339f63 add serial numbers 2021-02-03 10:16:49 +01:00
983b300650 rename mat files with encoder number 2021-02-03 09:56:49 +01:00
78e8097ca6 long meas 2021-02-03 09:37:38 +01:00
8fa4975b41 Rename index.org 2021-02-02 18:49:54 +01:00
bed36ce9d0 Simlink index.html to test-bench-vionic.html 2021-02-02 18:48:30 +01:00
9e38f0bd14 Export to pdf 2021-02-02 18:46:58 +01:00
99e3c94d59 First analysis of the sensor noise 2021-02-02 18:25:28 +01:00
fa4b391336 Rename file with correct sampling rate 2021-02-02 18:10:47 +01:00
42 changed files with 2522 additions and 338 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="136.749pt" height="103.094pt" viewBox="0 0 136.749 103.094" version="1.2">
<defs>
<g>
<symbol overflow="visible" id="glyph0-0">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph0-1">
<path style="stroke:none;" d="M 6.4375 -2.546875 L 6.1875 -2.546875 C 5.9375 -1.03125 5.71875 -0.3125 4.015625 -0.3125 L 2.703125 -0.3125 C 2.234375 -0.3125 2.21875 -0.375 2.21875 -0.703125 L 2.21875 -3.34375 L 3.109375 -3.34375 C 4.0625 -3.34375 4.171875 -3.015625 4.171875 -2.1875 L 4.421875 -2.1875 L 4.421875 -4.796875 L 4.171875 -4.796875 C 4.171875 -3.953125 4.0625 -3.640625 3.109375 -3.640625 L 2.21875 -3.640625 L 2.21875 -6.015625 C 2.21875 -6.34375 2.234375 -6.40625 2.703125 -6.40625 L 3.984375 -6.40625 C 5.484375 -6.40625 5.75 -5.859375 5.921875 -4.5 L 6.15625 -4.5 L 5.890625 -6.71875 L 0.328125 -6.71875 L 0.328125 -6.40625 L 0.5625 -6.40625 C 1.328125 -6.40625 1.34375 -6.296875 1.34375 -5.9375 L 1.34375 -0.765625 C 1.34375 -0.421875 1.328125 -0.3125 0.5625 -0.3125 L 0.328125 -0.3125 L 0.328125 0 L 6.03125 0 Z M 6.4375 -2.546875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-2">
<path style="stroke:none;" d="M 5.28125 0 L 5.28125 -0.3125 C 4.765625 -0.3125 4.515625 -0.3125 4.515625 -0.609375 L 4.515625 -2.484375 C 4.515625 -3.34375 4.515625 -3.640625 4.203125 -4 C 4.0625 -4.171875 3.75 -4.359375 3.171875 -4.359375 C 2.453125 -4.359375 1.984375 -3.9375 1.703125 -3.328125 L 1.703125 -4.359375 L 0.3125 -4.25 L 0.3125 -3.953125 C 1 -3.953125 1.09375 -3.875 1.09375 -3.390625 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.4375 -0.03125 L 2.53125 0 L 2.53125 -0.3125 C 1.875 -0.3125 1.765625 -0.3125 1.765625 -0.75 L 1.765625 -2.5625 C 1.765625 -3.59375 2.46875 -4.140625 3.09375 -4.140625 C 3.71875 -4.140625 3.828125 -3.609375 3.828125 -3.046875 L 3.828125 -0.75 C 3.828125 -0.3125 3.71875 -0.3125 3.0625 -0.3125 L 3.0625 0 L 4.171875 -0.03125 Z M 5.28125 0 "/>
</symbol>
<symbol overflow="visible" id="glyph0-3">
<path style="stroke:none;" d="M 4.09375 -1.171875 C 4.09375 -1.28125 4 -1.28125 3.96875 -1.28125 C 3.875 -1.28125 3.859375 -1.234375 3.84375 -1.171875 C 3.5625 -0.25 2.90625 -0.140625 2.546875 -0.140625 C 2.03125 -0.140625 1.15625 -0.5625 1.15625 -2.15625 C 1.15625 -3.765625 1.96875 -4.171875 2.484375 -4.171875 C 2.578125 -4.171875 3.203125 -4.171875 3.546875 -3.8125 C 3.140625 -3.78125 3.078125 -3.484375 3.078125 -3.359375 C 3.078125 -3.09375 3.265625 -2.90625 3.53125 -2.90625 C 3.796875 -2.90625 3.984375 -3.078125 3.984375 -3.375 C 3.984375 -4.03125 3.234375 -4.421875 2.484375 -4.421875 C 1.25 -4.421875 0.328125 -3.359375 0.328125 -2.140625 C 0.328125 -0.875 1.3125 0.109375 2.453125 0.109375 C 3.78125 0.109375 4.09375 -1.078125 4.09375 -1.171875 Z M 4.09375 -1.171875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-4">
<path style="stroke:none;" d="M 4.65625 -2.109375 C 4.65625 -3.375 3.65625 -4.421875 2.46875 -4.421875 C 1.234375 -4.421875 0.28125 -3.34375 0.28125 -2.109375 C 0.28125 -0.84375 1.296875 0.109375 2.453125 0.109375 C 3.65625 0.109375 4.65625 -0.859375 4.65625 -2.109375 Z M 3.828125 -2.1875 C 3.828125 -1.84375 3.828125 -1.296875 3.609375 -0.875 C 3.390625 -0.421875 2.96875 -0.140625 2.46875 -0.140625 C 2.046875 -0.140625 1.609375 -0.34375 1.34375 -0.796875 C 1.09375 -1.234375 1.09375 -1.84375 1.09375 -2.1875 C 1.09375 -2.578125 1.09375 -3.109375 1.328125 -3.546875 C 1.59375 -4 2.0625 -4.203125 2.453125 -4.203125 C 2.890625 -4.203125 3.3125 -3.984375 3.578125 -3.5625 C 3.828125 -3.140625 3.828125 -2.5625 3.828125 -2.1875 Z M 3.828125 -2.1875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-5">
<path style="stroke:none;" d="M 5.203125 0 L 5.203125 -0.3125 C 4.515625 -0.3125 4.4375 -0.375 4.4375 -0.859375 L 4.4375 -6.859375 L 3.015625 -6.75 L 3.015625 -6.4375 C 3.703125 -6.4375 3.78125 -6.375 3.78125 -5.890625 L 3.78125 -3.75 C 3.5 -4.109375 3.078125 -4.359375 2.53125 -4.359375 C 1.375 -4.359375 0.328125 -3.390625 0.328125 -2.125 C 0.328125 -0.875 1.296875 0.109375 2.421875 0.109375 C 3.0625 0.109375 3.5 -0.234375 3.75 -0.546875 L 3.75 0.109375 Z M 3.75 -1.171875 C 3.75 -0.984375 3.75 -0.96875 3.640625 -0.796875 C 3.34375 -0.328125 2.90625 -0.109375 2.484375 -0.109375 C 2.03125 -0.109375 1.671875 -0.359375 1.4375 -0.734375 C 1.1875 -1.140625 1.15625 -1.703125 1.15625 -2.109375 C 1.15625 -2.484375 1.171875 -3.078125 1.46875 -3.515625 C 1.671875 -3.828125 2.046875 -4.140625 2.578125 -4.140625 C 2.921875 -4.140625 3.34375 -4 3.640625 -3.5625 C 3.75 -3.390625 3.75 -3.375 3.75 -3.1875 Z M 3.75 -1.171875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-6">
<path style="stroke:none;" d="M 4.09375 -1.171875 C 4.09375 -1.28125 4.015625 -1.296875 3.96875 -1.296875 C 3.875 -1.296875 3.859375 -1.234375 3.84375 -1.15625 C 3.5 -0.140625 2.609375 -0.140625 2.515625 -0.140625 C 2.015625 -0.140625 1.625 -0.4375 1.390625 -0.796875 C 1.09375 -1.28125 1.09375 -1.921875 1.09375 -2.28125 L 3.84375 -2.28125 C 4.0625 -2.28125 4.09375 -2.28125 4.09375 -2.484375 C 4.09375 -3.46875 3.5625 -4.421875 2.328125 -4.421875 C 1.1875 -4.421875 0.28125 -3.40625 0.28125 -2.171875 C 0.28125 -0.84375 1.3125 0.109375 2.453125 0.109375 C 3.65625 0.109375 4.09375 -0.984375 4.09375 -1.171875 Z M 3.453125 -2.484375 L 1.109375 -2.484375 C 1.171875 -3.953125 2 -4.203125 2.328125 -4.203125 C 3.34375 -4.203125 3.453125 -2.875 3.453125 -2.484375 Z M 3.453125 -2.484375 "/>
</symbol>
<symbol overflow="visible" id="glyph0-7">
<path style="stroke:none;" d="M 3.59375 -3.765625 C 3.59375 -4.078125 3.28125 -4.359375 2.859375 -4.359375 C 2.140625 -4.359375 1.78125 -3.703125 1.65625 -3.28125 L 1.65625 -4.359375 L 0.28125 -4.25 L 0.28125 -3.953125 C 0.96875 -3.953125 1.046875 -3.875 1.046875 -3.390625 L 1.046875 -0.75 C 1.046875 -0.3125 0.9375 -0.3125 0.28125 -0.3125 L 0.28125 0 L 1.40625 -0.03125 C 1.796875 -0.03125 2.265625 -0.03125 2.65625 0 L 2.65625 -0.3125 L 2.453125 -0.3125 C 1.71875 -0.3125 1.703125 -0.421875 1.703125 -0.765625 L 1.703125 -2.296875 C 1.703125 -3.265625 2.109375 -4.140625 2.859375 -4.140625 C 2.9375 -4.140625 2.953125 -4.140625 2.96875 -4.140625 C 2.9375 -4.125 2.75 -4.015625 2.75 -3.75 C 2.75 -3.46875 2.953125 -3.328125 3.171875 -3.328125 C 3.34375 -3.328125 3.59375 -3.453125 3.59375 -3.765625 Z M 3.59375 -3.765625 "/>
</symbol>
<symbol overflow="visible" id="glyph0-8">
<path style="stroke:none;" d="M 3.265625 2.375 C 3.265625 2.34375 3.265625 2.328125 3.09375 2.15625 C 1.859375 0.90625 1.546875 -0.953125 1.546875 -2.46875 C 1.546875 -4.1875 1.921875 -5.90625 3.140625 -7.140625 C 3.265625 -7.265625 3.265625 -7.28125 3.265625 -7.3125 C 3.265625 -7.375 3.234375 -7.40625 3.171875 -7.40625 C 3.078125 -7.40625 2.1875 -6.734375 1.59375 -5.484375 C 1.09375 -4.390625 0.984375 -3.296875 0.984375 -2.46875 C 0.984375 -1.703125 1.09375 -0.5 1.625 0.609375 C 2.21875 1.828125 3.078125 2.46875 3.171875 2.46875 C 3.234375 2.46875 3.265625 2.4375 3.265625 2.375 Z M 3.265625 2.375 "/>
</symbol>
<symbol overflow="visible" id="glyph0-9">
<path style="stroke:none;" d="M 2.859375 -2.46875 C 2.859375 -3.234375 2.75 -4.4375 2.203125 -5.546875 C 1.609375 -6.765625 0.765625 -7.40625 0.65625 -7.40625 C 0.609375 -7.40625 0.5625 -7.359375 0.5625 -7.3125 C 0.5625 -7.28125 0.5625 -7.265625 0.75 -7.078125 C 1.71875 -6.109375 2.28125 -4.53125 2.28125 -2.46875 C 2.28125 -0.78125 1.921875 0.953125 0.6875 2.203125 C 0.5625 2.328125 0.5625 2.34375 0.5625 2.375 C 0.5625 2.421875 0.609375 2.46875 0.65625 2.46875 C 0.765625 2.46875 1.65625 1.796875 2.234375 0.546875 C 2.734375 -0.546875 2.859375 -1.640625 2.859375 -2.46875 Z M 2.859375 -2.46875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-10">
<path style="stroke:none;" d="M 4.125 -6.28125 L 3.953125 -6.421875 C 3.953125 -6.421875 3.578125 -5.953125 3.15625 -5.953125 C 2.921875 -5.953125 2.671875 -6.109375 2.515625 -6.203125 C 2.234375 -6.359375 2.0625 -6.421875 1.890625 -6.421875 C 1.515625 -6.421875 1.328125 -6.21875 0.828125 -5.65625 L 0.984375 -5.515625 C 0.984375 -5.515625 1.359375 -5.984375 1.796875 -5.984375 C 2.03125 -5.984375 2.265625 -5.84375 2.4375 -5.734375 C 2.703125 -5.578125 2.890625 -5.515625 3.046875 -5.515625 C 3.421875 -5.515625 3.609375 -5.734375 4.125 -6.28125 Z M 4.125 -6.28125 "/>
</symbol>
<symbol overflow="visible" id="glyph1-0">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph1-1">
<path style="stroke:none;" d="M 7.125 -2.59375 C 7.125 -2.65625 7.078125 -2.703125 6.984375 -2.703125 C 6.765625 -2.703125 6.1875 -2.671875 5.953125 -2.671875 L 4.578125 -2.703125 C 4.484375 -2.703125 4.359375 -2.703125 4.359375 -2.5 C 4.359375 -2.390625 4.4375 -2.390625 4.65625 -2.390625 C 4.65625 -2.390625 4.953125 -2.390625 5.1875 -2.375 C 5.4375 -2.34375 5.484375 -2.3125 5.484375 -2.1875 C 5.484375 -2.09375 5.375 -1.65625 5.28125 -1.28125 C 5 -0.203125 3.71875 -0.09375 3.375 -0.09375 C 2.421875 -0.09375 1.390625 -0.65625 1.390625 -2.15625 C 1.390625 -2.46875 1.484375 -4.09375 2.53125 -5.375 C 3.0625 -6.046875 4.015625 -6.65625 5 -6.65625 C 6 -6.65625 6.59375 -5.890625 6.59375 -4.75 C 6.59375 -4.359375 6.5625 -4.34375 6.5625 -4.25 C 6.5625 -4.140625 6.671875 -4.140625 6.703125 -4.140625 C 6.828125 -4.140625 6.828125 -4.171875 6.890625 -4.34375 L 7.5 -6.859375 C 7.5 -6.890625 7.484375 -6.96875 7.390625 -6.96875 C 7.359375 -6.96875 7.359375 -6.953125 7.25 -6.84375 L 6.5625 -6.078125 C 6.46875 -6.21875 6.015625 -6.96875 4.921875 -6.96875 C 2.71875 -6.96875 0.5 -4.78125 0.5 -2.484375 C 0.5 -0.921875 1.59375 0.21875 3.1875 0.21875 C 3.625 0.21875 4.0625 0.125 4.421875 -0.015625 C 4.921875 -0.21875 5.109375 -0.421875 5.28125 -0.625 C 5.375 -0.375 5.625 -0.015625 5.734375 -0.015625 C 5.78125 -0.015625 5.796875 -0.046875 5.796875 -0.046875 C 5.8125 -0.0625 5.921875 -0.4375 5.96875 -0.65625 L 6.15625 -1.40625 C 6.1875 -1.578125 6.234375 -1.75 6.28125 -1.921875 C 6.390625 -2.359375 6.40625 -2.375 6.96875 -2.390625 C 7.015625 -2.390625 7.125 -2.40625 7.125 -2.59375 Z M 7.125 -2.59375 "/>
</symbol>
<symbol overflow="visible" id="glyph1-2">
<path style="stroke:none;" d="M 3.90625 -1.53125 C 3.90625 -1.890625 3.71875 -2.140625 3.609375 -2.25 C 3.34375 -2.53125 3.046875 -2.578125 2.609375 -2.671875 C 2.265625 -2.75 1.859375 -2.8125 1.859375 -3.265625 C 1.859375 -3.546875 2.109375 -4.140625 2.96875 -4.140625 C 3.21875 -4.140625 3.71875 -4.078125 3.859375 -3.6875 C 3.578125 -3.6875 3.390625 -3.46875 3.390625 -3.25 C 3.390625 -3.109375 3.46875 -2.96875 3.6875 -2.96875 C 3.90625 -2.96875 4.140625 -3.125 4.140625 -3.515625 C 4.140625 -3.953125 3.71875 -4.359375 2.96875 -4.359375 C 1.671875 -4.359375 1.296875 -3.359375 1.296875 -2.921875 C 1.296875 -2.15625 2.03125 -2 2.328125 -1.953125 C 2.828125 -1.84375 3.34375 -1.734375 3.34375 -1.1875 C 3.34375 -0.9375 3.125 -0.109375 1.9375 -0.109375 C 1.796875 -0.109375 1.03125 -0.109375 0.8125 -0.625 C 1.1875 -0.578125 1.4375 -0.875 1.4375 -1.15625 C 1.4375 -1.375 1.28125 -1.5 1.0625 -1.5 C 0.8125 -1.5 0.515625 -1.296875 0.515625 -0.84375 C 0.515625 -0.28125 1.078125 0.109375 1.921875 0.109375 C 3.53125 0.109375 3.90625 -1.09375 3.90625 -1.53125 Z M 3.90625 -1.53125 "/>
</symbol>
<symbol overflow="visible" id="glyph1-3">
<path style="stroke:none;" d="M 4.796875 -3.765625 C 4.84375 -3.90625 4.84375 -3.921875 4.84375 -3.984375 C 4.84375 -4.171875 4.703125 -4.25 4.546875 -4.25 C 4.453125 -4.25 4.296875 -4.203125 4.203125 -4.046875 C 4.1875 -4 4.109375 -3.6875 4.0625 -3.515625 L 3.875 -2.71875 L 3.421875 -0.953125 C 3.390625 -0.796875 2.96875 -0.109375 2.3125 -0.109375 C 1.8125 -0.109375 1.703125 -0.546875 1.703125 -0.90625 C 1.703125 -1.359375 1.859375 -1.96875 2.203125 -2.84375 C 2.359375 -3.25 2.40625 -3.359375 2.40625 -3.5625 C 2.40625 -4 2.078125 -4.359375 1.59375 -4.359375 C 0.65625 -4.359375 0.28125 -2.9375 0.28125 -2.84375 C 0.28125 -2.75 0.40625 -2.75 0.40625 -2.75 C 0.5 -2.75 0.515625 -2.765625 0.5625 -2.921875 C 0.828125 -3.84375 1.21875 -4.140625 1.5625 -4.140625 C 1.640625 -4.140625 1.8125 -4.140625 1.8125 -3.828125 C 1.8125 -3.578125 1.703125 -3.328125 1.640625 -3.140625 C 1.25 -2.09375 1.0625 -1.53125 1.0625 -1.0625 C 1.0625 -0.1875 1.6875 0.109375 2.265625 0.109375 C 2.65625 0.109375 2.984375 -0.0625 3.265625 -0.328125 C 3.140625 0.171875 3.015625 0.65625 2.625 1.1875 C 2.375 1.515625 2 1.8125 1.546875 1.8125 C 1.40625 1.8125 0.953125 1.78125 0.796875 1.390625 C 0.953125 1.390625 1.078125 1.390625 1.21875 1.28125 C 1.3125 1.1875 1.40625 1.0625 1.40625 0.875 C 1.40625 0.5625 1.140625 0.515625 1.046875 0.515625 C 0.8125 0.515625 0.5 0.6875 0.5 1.171875 C 0.5 1.65625 0.921875 2.03125 1.546875 2.03125 C 2.5625 2.03125 3.578125 1.125 3.84375 0.015625 Z M 4.796875 -3.765625 "/>
</symbol>
<symbol overflow="visible" id="glyph1-4">
<path style="stroke:none;" d="M 5.640625 -1.40625 C 5.640625 -1.515625 5.546875 -1.515625 5.515625 -1.515625 C 5.421875 -1.515625 5.421875 -1.484375 5.375 -1.328125 C 5.171875 -0.65625 4.84375 -0.109375 4.359375 -0.109375 C 4.203125 -0.109375 4.125 -0.203125 4.125 -0.4375 C 4.125 -0.6875 4.21875 -0.921875 4.3125 -1.140625 C 4.5 -1.65625 4.90625 -2.75 4.90625 -3.3125 C 4.90625 -3.96875 4.484375 -4.359375 3.765625 -4.359375 C 2.890625 -4.359375 2.40625 -3.734375 2.234375 -3.5 C 2.1875 -4.0625 1.78125 -4.359375 1.328125 -4.359375 C 0.875 -4.359375 0.6875 -3.984375 0.578125 -3.796875 C 0.421875 -3.46875 0.28125 -2.890625 0.28125 -2.84375 C 0.28125 -2.75 0.40625 -2.75 0.40625 -2.75 C 0.5 -2.75 0.515625 -2.75 0.578125 -2.96875 C 0.734375 -3.671875 0.9375 -4.140625 1.296875 -4.140625 C 1.484375 -4.140625 1.59375 -4.015625 1.59375 -3.6875 C 1.59375 -3.484375 1.5625 -3.375 1.4375 -2.859375 L 0.875 -0.578125 C 0.84375 -0.4375 0.78125 -0.203125 0.78125 -0.15625 C 0.78125 0.015625 0.921875 0.109375 1.0625 0.109375 C 1.1875 0.109375 1.359375 0.03125 1.4375 -0.171875 C 1.4375 -0.1875 1.5625 -0.65625 1.625 -0.90625 L 1.84375 -1.78125 C 1.890625 -2 1.953125 -2.21875 2 -2.453125 L 2.140625 -2.9375 C 2.28125 -3.25 2.796875 -4.140625 3.75 -4.140625 C 4.1875 -4.140625 4.28125 -3.78125 4.28125 -3.453125 C 4.28125 -2.84375 3.796875 -1.578125 3.640625 -1.15625 C 3.546875 -0.921875 3.53125 -0.8125 3.53125 -0.703125 C 3.53125 -0.234375 3.875 0.109375 4.34375 0.109375 C 5.265625 0.109375 5.640625 -1.328125 5.640625 -1.40625 Z M 5.640625 -1.40625 "/>
</symbol>
<symbol overflow="visible" id="glyph2-0">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph2-1">
<path style="stroke:none;" d="M 6.671875 -0.984375 C 6.671875 -1.078125 6.578125 -1.078125 6.546875 -1.078125 C 6.453125 -1.078125 6.453125 -1.03125 6.421875 -0.953125 C 6.265625 -0.40625 5.96875 -0.125 5.6875 -0.125 C 5.546875 -0.125 5.515625 -0.21875 5.515625 -0.359375 C 5.515625 -0.53125 5.546875 -0.609375 5.671875 -0.921875 C 5.765625 -1.140625 6.046875 -1.875 6.046875 -2.265625 C 6.046875 -2.375 6.046875 -2.65625 5.78125 -2.859375 C 5.671875 -2.953125 5.46875 -3.046875 5.140625 -3.046875 C 4.53125 -3.046875 4.140625 -2.640625 3.921875 -2.34375 C 3.875 -2.9375 3.375 -3.046875 3.03125 -3.046875 C 2.453125 -3.046875 2.0625 -2.6875 1.859375 -2.421875 C 1.8125 -2.890625 1.40625 -3.046875 1.125 -3.046875 C 0.828125 -3.046875 0.65625 -2.828125 0.578125 -2.671875 C 0.421875 -2.421875 0.328125 -2.03125 0.328125 -1.984375 C 0.328125 -1.90625 0.421875 -1.90625 0.4375 -1.90625 C 0.53125 -1.90625 0.546875 -1.921875 0.59375 -2.109375 C 0.703125 -2.515625 0.828125 -2.859375 1.09375 -2.859375 C 1.28125 -2.859375 1.328125 -2.703125 1.328125 -2.515625 C 1.328125 -2.375 1.265625 -2.125 1.21875 -1.9375 L 0.84375 -0.4375 C 0.8125 -0.34375 0.78125 -0.171875 0.78125 -0.15625 C 0.78125 0 0.890625 0.0625 1.015625 0.0625 C 1.125 0.0625 1.25 -0.015625 1.28125 -0.078125 C 1.3125 -0.140625 1.375 -0.359375 1.40625 -0.515625 L 1.546875 -1.125 C 1.59375 -1.28125 1.640625 -1.4375 1.671875 -1.59375 C 1.75 -1.875 1.765625 -1.9375 1.96875 -2.21875 C 2.15625 -2.5 2.484375 -2.859375 3 -2.859375 C 3.390625 -2.859375 3.40625 -2.5 3.40625 -2.375 C 3.40625 -2.203125 3.390625 -2.109375 3.28125 -1.71875 L 3 -0.5625 C 2.96875 -0.421875 2.90625 -0.1875 2.90625 -0.15625 C 2.90625 0 3.03125 0.0625 3.140625 0.0625 C 3.265625 0.0625 3.375 -0.015625 3.40625 -0.078125 C 3.4375 -0.140625 3.5 -0.359375 3.53125 -0.515625 L 3.6875 -1.125 C 3.71875 -1.28125 3.765625 -1.4375 3.796875 -1.59375 C 3.875 -1.890625 3.875 -1.90625 4.015625 -2.125 C 4.234375 -2.453125 4.578125 -2.859375 5.125 -2.859375 C 5.5 -2.859375 5.53125 -2.53125 5.53125 -2.375 C 5.53125 -1.953125 5.234375 -1.1875 5.125 -0.890625 C 5.046875 -0.703125 5.015625 -0.640625 5.015625 -0.53125 C 5.015625 -0.15625 5.3125 0.0625 5.671875 0.0625 C 6.359375 0.0625 6.671875 -0.890625 6.671875 -0.984375 Z M 6.671875 -0.984375 "/>
</symbol>
<symbol overflow="visible" id="glyph2-2">
<path style="stroke:none;" d="M 4.546875 -0.984375 C 4.546875 -1.078125 4.453125 -1.078125 4.4375 -1.078125 C 4.34375 -1.078125 4.328125 -1.03125 4.296875 -0.953125 C 4.140625 -0.40625 3.84375 -0.125 3.578125 -0.125 C 3.421875 -0.125 3.390625 -0.21875 3.390625 -0.359375 C 3.390625 -0.53125 3.4375 -0.609375 3.5625 -0.921875 C 3.640625 -1.140625 3.921875 -1.875 3.921875 -2.265625 C 3.921875 -2.921875 3.390625 -3.046875 3.03125 -3.046875 C 2.453125 -3.046875 2.0625 -2.6875 1.859375 -2.421875 C 1.8125 -2.890625 1.40625 -3.046875 1.125 -3.046875 C 0.828125 -3.046875 0.65625 -2.828125 0.578125 -2.671875 C 0.421875 -2.421875 0.328125 -2.03125 0.328125 -1.984375 C 0.328125 -1.90625 0.421875 -1.90625 0.4375 -1.90625 C 0.53125 -1.90625 0.546875 -1.921875 0.59375 -2.109375 C 0.703125 -2.515625 0.828125 -2.859375 1.09375 -2.859375 C 1.28125 -2.859375 1.328125 -2.703125 1.328125 -2.515625 C 1.328125 -2.375 1.265625 -2.125 1.21875 -1.9375 L 0.84375 -0.4375 C 0.8125 -0.34375 0.78125 -0.171875 0.78125 -0.15625 C 0.78125 0 0.890625 0.0625 1.015625 0.0625 C 1.125 0.0625 1.25 -0.015625 1.28125 -0.078125 C 1.3125 -0.140625 1.375 -0.359375 1.40625 -0.515625 L 1.546875 -1.125 C 1.59375 -1.28125 1.640625 -1.4375 1.671875 -1.59375 C 1.75 -1.875 1.765625 -1.9375 1.96875 -2.21875 C 2.15625 -2.5 2.484375 -2.859375 3 -2.859375 C 3.390625 -2.859375 3.40625 -2.5 3.40625 -2.375 C 3.40625 -1.953125 3.109375 -1.1875 3 -0.890625 C 2.921875 -0.703125 2.890625 -0.640625 2.890625 -0.53125 C 2.890625 -0.15625 3.203125 0.0625 3.546875 0.0625 C 4.234375 0.0625 4.546875 -0.890625 4.546875 -0.984375 Z M 4.546875 -0.984375 "/>
</symbol>
<symbol overflow="visible" id="glyph3-0">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph3-1">
<path style="stroke:none;" d="M 11.484375 -4.25 C 11.484375 -4.5625 11.203125 -4.5625 10.953125 -4.5625 L 6.4375 -4.5625 L 6.4375 -9.078125 C 6.4375 -9.3125 6.4375 -9.609375 6.140625 -9.609375 C 5.828125 -9.609375 5.828125 -9.328125 5.828125 -9.078125 L 5.828125 -4.5625 L 1.3125 -4.5625 C 1.078125 -4.5625 0.78125 -4.5625 0.78125 -4.265625 C 0.78125 -3.953125 1.0625 -3.953125 1.3125 -3.953125 L 5.828125 -3.953125 L 5.828125 0.5625 C 5.828125 0.796875 5.828125 1.09375 6.125 1.09375 C 6.4375 1.09375 6.4375 0.8125 6.4375 0.5625 L 6.4375 -3.953125 L 10.953125 -3.953125 C 11.1875 -3.953125 11.484375 -3.953125 11.484375 -4.25 Z M 11.484375 -4.25 "/>
</symbol>
</g>
<clipPath id="clip1">
<path d="M 15 54 L 64 54 L 64 102.195312 L 15 102.195312 Z M 15 54 "/>
</clipPath>
<clipPath id="clip2">
<path d="M 0.472656 78 L 26 78 L 26 80 L 0.472656 80 Z M 0.472656 78 "/>
</clipPath>
<clipPath id="clip3">
<path d="M 115 63 L 136.027344 63 L 136.027344 95 L 115 95 Z M 115 63 "/>
</clipPath>
</defs>
<g id="surface1">
<path style="fill-rule:nonzero;fill:rgb(79.998779%,79.998779%,79.998779%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,2.98883;stroke-miterlimit:10;" d="M -75.847082 -22.642448 L 25.697686 -22.642448 L 25.697686 78.457034 L -75.847082 78.457034 Z M -75.847082 -22.642448 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="75.995526" y="11.083596"/>
<use xlink:href="#glyph0-2" x="82.717002" y="11.083596"/>
<use xlink:href="#glyph0-3" x="88.204003" y="11.083596"/>
<use xlink:href="#glyph0-4" x="92.5938" y="11.083596"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-5" x="97.808228" y="11.083596"/>
<use xlink:href="#glyph0-6" x="103.295228" y="11.083596"/>
<use xlink:href="#glyph0-7" x="107.685026" y="11.083596"/>
</g>
<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -17.230977 -14.174145 L 17.229382 -14.174145 L 17.229382 14.174377 L -17.230977 14.174377 Z M -17.230977 -14.174145 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-1" x="75.577202" y="81.231133"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-1" x="83.341964" y="82.712118"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-8" x="90.844036" y="81.231133"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-2" x="94.684287" y="81.231133"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-9" x="99.313604" y="81.231133"/>
</g>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 49.3125 78.761719 C 49.3125 73.308594 44.890625 68.886719 39.4375 68.886719 C 33.980469 68.886719 29.558594 73.308594 29.558594 78.761719 C 29.558594 84.214844 33.980469 88.636719 39.4375 88.636719 C 44.890625 88.636719 49.3125 84.214844 49.3125 78.761719 Z M 49.3125 78.761719 "/>
<g clip-path="url(#clip1)" clip-rule="nonzero">
<path style="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 -40.405519 0.000115681 C -40.405519 5.501163 -44.866254 9.961898 -50.367301 9.961898 C -55.872289 9.961898 -60.333024 5.501163 -60.333024 0.000115681 C -60.333024 -5.500932 -55.872289 -9.961667 -50.367301 -9.961667 C -44.866254 -9.961667 -40.405519 -5.500932 -40.405519 0.000115681 Z M -40.405519 0.000115681 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph3-1" x="33.293793" y="82.892532"/>
</g>
<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -67.378779 24.632672 L -33.359764 24.632672 L -33.359764 52.981194 L -67.378779 52.981194 Z M -67.378779 24.632672 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-1" x="26.710646" y="42.762202"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-2" x="34.475408" y="44.243187"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-8" x="39.851166" y="42.762202"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-2" x="43.691417" y="42.762202"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-9" x="48.320734" y="42.762202"/>
</g>
<g clip-path="url(#clip2)" clip-rule="nonzero">
<path style="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 -64.967144 0.000115681 L -88.677605 0.000115681 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
</g>
<path style="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.052278 0.000115681 L 1.607305 1.682743 L 3.088963 0.000115681 L 1.607305 -1.682511 Z M 6.052278 0.000115681 " transform="matrix(0.991288,0,0,-0.991288,22.152791,78.761833)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-3" x="5.246277" y="73.056968"/>
</g>
<path style="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 -40.405519 0.000115681 L -22.36161 0.000115681 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
<path style="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.054752 0.000115681 L 1.60978 1.682743 L 3.087497 0.000115681 L 1.60978 -1.682511 Z M 6.054752 0.000115681 " transform="matrix(0.991288,0,0,-0.991288,64.384713,78.761833)"/>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 17.729836 0.000115681 L 41.440297 0.000115681 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 133.632812 78.761719 L 129.226562 77.09375 L 130.695312 78.761719 L 129.226562 80.429688 Z M 133.632812 78.761719 "/>
<g clip-path="url(#clip3)" clip-rule="nonzero">
<path style="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.052309 0.000115681 L 1.607336 1.682743 L 3.088994 0.000115681 L 1.607336 -1.682511 Z M 6.052309 0.000115681 " transform="matrix(0.991288,0,0,-0.991288,127.633229,78.761833)"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-3" x="118.910386" y="73.056968"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-1" x="123.751839" y="74.537953"/>
</g>
<path style="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 -50.367301 24.136159 L -50.367301 14.596018 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
<path style="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.054334 0.00175886 L 1.609361 1.684386 L 3.087078 0.00175886 L 1.609361 -1.684809 Z M 6.054334 0.00175886 " transform="matrix(0,0.991288,0.991288,0,39.435756,61.478878)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-4" x="43.221547" y="65.100887"/>
</g>
<path style="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 -50.367301 58.111827 L -50.367301 70.489184 " transform="matrix(0.991288,0,0,-0.991288,89.366024,78.761833)"/>
<path style="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.054995 0.00175886 L 1.610023 1.684386 L 3.08774 0.00175886 L 1.610023 -1.684809 Z M 6.054995 0.00175886 " transform="matrix(0,0.991288,0.991288,0,39.435756,18.341503)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-10" x="43.7162" y="18.893958"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-4" x="43.221547" y="18.893958"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

BIN
figs/encoder_vionic.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
figs/vionic_drifts_time.pdf Normal file

Binary file not shown.

BIN
figs/vionic_drifts_time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
figs/vionic_noise_asd.pdf Normal file

Binary file not shown.

BIN
figs/vionic_noise_asd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
figs/vionic_noise_time.pdf Normal file

Binary file not shown.

BIN
figs/vionic_noise_time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -1,200 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-04 lun. 11:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Encoder Renishaw Vionic - Test Bench</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script>MathJax = {
tex: {
tags: 'ams',
macros: {bm: ["\\boldsymbol{#1}",1],}
}
};
</script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Encoder Renishaw Vionic - Test Bench</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org55157ef">1. Encoder Model</a></li>
<li><a href="#org8ef40ec">2. Test-Bench Description</a></li>
<li><a href="#orgce223ed">3. Measurement procedure</a></li>
<li><a href="#org51852cb">4. Measurement Results</a></li>
</ul>
</div>
</div>
<div class="note" id="org4436bab">
<p>
You can find below the document of:
</p>
<ul class="org-ul">
<li><a href="doc/L-9517-9678-05-A_Data_sheet_VIONiC_series_en.pdf">Vionic Encoder</a></li>
<li><a href="doc/L-9517-9862-01-C_Data_sheet_RKLC_EN.pdf">Linear Scale</a></li>
</ul>
</div>
<p>
We would like to characterize the encoder measurement system.
</p>
<p>
In particular, we would like to measure:
</p>
<ul class="org-ul">
<li>Power Spectral Density of the measurement noise</li>
<li>Bandwidth of the sensor</li>
<li>Linearity of the sensor</li>
</ul>
<div id="orgeb4726b" class="figure">
<p><img src="figs/encoder_vionic.png" alt="encoder_vionic.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Picture of the Vionic Encoder</p>
</div>
<div id="outline-container-org55157ef" class="outline-2">
<h2 id="org55157ef"><span class="section-number-2">1</span> Encoder Model</h2>
<div class="outline-text-2" id="text-1">
<p>
The Encoder is characterized by its dynamics \(G_m(s)\) from the &ldquo;true&rdquo; displacement \(y\) to measured displacement \(y_m\).
Ideally, this dynamics is constant over a wide frequency band with very small phase drop.
</p>
<p>
It is also characterized by its measurement noise \(n\) that can be described by its Power Spectral Density (PSD).
</p>
<p>
The model of the encoder is shown in Figure <a href="#org2d59f14">2</a>.
</p>
<div id="org2d59f14" class="figure">
<p><img src="figs/encoder-model-schematic.png" alt="encoder-model-schematic.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Model of the Encoder</p>
</div>
<table id="org476b3d6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Characteristics of the Vionic Encoder</caption>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left"><b>Characteristics</b></th>
<th scope="col" class="org-left"><b>Manual</b></th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Resolution</td>
<td class="org-left">2.5nm</td>
</tr>
<tr>
<td class="org-left">Sub-Divisional Error</td>
<td class="org-left">\(< \pm 15\,nm\)</td>
</tr>
<tr>
<td class="org-left">Bandwidth</td>
<td class="org-left">&gt; 50 kHz</td>
</tr>
</tbody>
</table>
<div id="orgb8bf3d5" class="figure">
<p><img src="./figs/vionic_expected_noise.png" alt="vionic_expected_noise.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Expected interpolation errors for the Vionic Encoder</p>
</div>
</div>
</div>
<div id="outline-container-org8ef40ec" class="outline-2">
<h2 id="org8ef40ec"><span class="section-number-2">2</span> Test-Bench Description</h2>
<div class="outline-text-2" id="text-2">
<p>
To measure the noise \(n\) of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured.
Then, the measured signal \(y_m\) corresponds to the noise \(n\).
</p>
<p>
In order to measure the linearity, we have to compare the measured displacement with a reference sensor with a known linearity.
An interferometer or capacitive sensor should work fine.
An actuator should also be there so impose a displacement.
</p>
<p>
One idea is to use the test-bench shown in Figure <a href="#org1fd5a94">4</a>.
</p>
<p>
The APA300ML is used to excite the mass in a broad bandwidth.
The motion is measured at the same time by the Vionic Encoder and by an interferometer (most likely an Attocube).
</p>
<p>
As the interferometer has a very large bandwidth, we should be able to estimate the bandwidth of the encoder is it is less than the Nyquist frequency (~ 5kHz).
</p>
<div id="org1fd5a94" class="figure">
<p><img src="figs/test_bench_encoder_calibration.png" alt="test_bench_encoder_calibration.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Schematic of the test bench</p>
</div>
<p>
To measure the noise of the sensor, we can also simply measure the output signal when the relative motion between the encoder and the ruler is null.
This can be done by clamping the two as done in the mounting strut tool (Figure <a href="#orgab0ed8d">5</a>).
</p>
<div id="orgab0ed8d" class="figure">
<p><img src="figs/test_bench_measure_noise.png" alt="test_bench_measure_noise.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Mounting Strut test bench as a clamping method to measure the encoder noise.</p>
</div>
</div>
</div>
<div id="outline-container-orgce223ed" class="outline-2">
<h2 id="orgce223ed"><span class="section-number-2">3</span> Measurement procedure</h2>
</div>
<div id="outline-container-org51852cb" class="outline-2">
<h2 id="org51852cb"><span class="section-number-2">4</span> Measurement Results</h2>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-04 lun. 11:44</p>
</div>
</body>
</html>

1
index.html Symbolic link
View File

@@ -0,0 +1 @@
test-bench-vionic.html

138
index.org
View File

@@ -1,138 +0,0 @@
#+TITLE: Encoder Renishaw Vionic - Test Bench
:DRAWER:
#+LANGUAGE: en
#+EMAIL: dehaeze.thomas@gmail.com
#+AUTHOR: Dehaeze Thomas
#+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+BIND: org-latex-image-default-option "scale=1"
#+BIND: org-latex-image-default-width ""
#+LaTeX_CLASS: scrreprt
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full]
#+LaTeX_HEADER_EXTRA: \input{preamble.tex}
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
#+PROPERTY: header-args:latex+ :results file raw replace
#+PROPERTY: header-args:latex+ :buffer no
#+PROPERTY: header-args:latex+ :tangle no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports results
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :output-dir figs
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
:END:
* Introduction :ignore:
#+begin_note
You can find below the document of:
- [[file:doc/L-9517-9678-05-A_Data_sheet_VIONiC_series_en.pdf][Vionic Encoder]]
- [[file:doc/L-9517-9862-01-C_Data_sheet_RKLC_EN.pdf][Linear Scale]]
#+end_note
We would like to characterize the encoder measurement system.
In particular, we would like to measure:
- Power Spectral Density of the measurement noise
- Bandwidth of the sensor
- Linearity of the sensor
#+name: fig:encoder_vionic
#+caption: Picture of the Vionic Encoder
[[file:figs/encoder_vionic.png]]
* Encoder Model
The Encoder is characterized by its dynamics $G_m(s)$ from the "true" displacement $y$ to measured displacement $y_m$.
Ideally, this dynamics is constant over a wide frequency band with very small phase drop.
It is also characterized by its measurement noise $n$ that can be described by its Power Spectral Density (PSD).
The model of the encoder is shown in Figure [[fig:encoder-model-schematic]].
#+begin_src latex :file encoder-model-schematic.pdf
\begin{tikzpicture}
\node[block] (G) at (0,0){$G_m(s)$};
\node[addb, left=0.8 of G] (add){};
\draw[<-] (add.west) -- ++(-1.0, 0) node[above right]{$y$};
\draw[->] (add.east) -- (G.west);
\draw[->] (G.east) -- ++(1.0, 0) node[above left]{$y_m$};
\draw[<-] (add.north) -- ++(0, 0.6) node[below right](n){$n$};
\begin{scope}[on background layer]
\node[fit={(add.west|-G.south) (n.north-|G.east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[below left] at (P.north east) {Encoder};
\end{scope}
\end{tikzpicture}
#+end_src
#+name: fig:encoder-model-schematic
#+caption: Model of the Encoder
#+RESULTS:
[[file:figs/encoder-model-schematic.png]]
#+name: tab:vionic_characteristics_manual
#+caption: Characteristics of the Vionic Encoder
#+attr_latex: :environment tabularx :width \linewidth :align lXX
#+attr_latex: :center t :booktabs t :float t
| *Characteristics* | *Manual* |
|----------------------+----------------|
| Resolution | 2.5nm |
| Sub-Divisional Error | $< \pm 15\,nm$ |
| Bandwidth | > 50 kHz |
#+name: fig:vionic_expected_noise
#+caption: Expected interpolation errors for the Vionic Encoder
[[file:./figs/vionic_expected_noise.png]]
* Test-Bench Description
To measure the noise $n$ of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured.
Then, the measured signal $y_m$ corresponds to the noise $n$.
In order to measure the linearity, we have to compare the measured displacement with a reference sensor with a known linearity.
An interferometer or capacitive sensor should work fine.
An actuator should also be there so impose a displacement.
One idea is to use the test-bench shown in Figure [[fig:test_bench_encoder_calibration]].
The APA300ML is used to excite the mass in a broad bandwidth.
The motion is measured at the same time by the Vionic Encoder and by an interferometer (most likely an Attocube).
As the interferometer has a very large bandwidth, we should be able to estimate the bandwidth of the encoder is it is less than the Nyquist frequency (~ 5kHz).
#+name: fig:test_bench_encoder_calibration
#+caption: Schematic of the test bench
[[file:figs/test_bench_encoder_calibration.png]]
To measure the noise of the sensor, we can also simply measure the output signal when the relative motion between the encoder and the ruler is null.
This can be done by clamping the two as done in the mounting strut tool (Figure [[fig:test_bench_measure_noise]]).
#+name: fig:test_bench_measure_noise
#+caption: Mounting Strut test bench as a clamping method to measure the encoder noise.
[[file:figs/test_bench_measure_noise.png]]
* Measurement procedure
* Measurement Results

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

510
test-bench-vionic.html Normal file
View File

@@ -0,0 +1,510 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-02-12 ven. 18:26 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Encoder Renishaw Vionic - Test Bench</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script>
MathJax = {
svg: {
scale: 1,
fontCache: "global"
},
tex: {
tags: "ams",
multlineWidth: "%MULTLINEWIDTH",
tagSide: "right",
macros: {bm: ["\\boldsymbol{#1}",1],},
tagIndent: ".8em"
}
};
</script>
<script id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Encoder Renishaw Vionic - Test Bench</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgfa3d11e">1. Expected Performances</a></li>
<li><a href="#orgf23b21b">2. Encoder Model</a></li>
<li><a href="#org9c17913">3. Noise Measurement</a>
<ul>
<li><a href="#orgb9429ef">3.1. Test Bench</a></li>
<li><a href="#orgd9c9c77">3.2. Thermal drifts</a></li>
<li><a href="#org8ec1ba2">3.3. Time Domain signals</a></li>
<li><a href="#org833451c">3.4. Noise Spectral Density</a></li>
<li><a href="#org71a7d07">3.5. Noise Model</a></li>
</ul>
</li>
<li><a href="#org61522ff">4. Linearity Measurement</a>
<ul>
<li><a href="#orge455e25">4.1. Test Bench</a></li>
<li><a href="#orgc6e5044">4.2. Results</a></li>
</ul>
</li>
</ul>
</div>
</div>
<hr>
<p>This report is also available as a <a href="./test-bench-vionic.pdf">pdf</a>.</p>
<hr>
<div class="note" id="orge01a92a">
<p>
You can find below the documentation of:
</p>
<ul class="org-ul">
<li><a href="doc/L-9517-9678-05-A_Data_sheet_VIONiC_series_en.pdf">Vionic Encoder</a></li>
<li><a href="doc/L-9517-9862-01-C_Data_sheet_RKLC_EN.pdf">Linear Scale</a></li>
</ul>
</div>
<p>
In this document, we wish to characterize the performances of the encoder measurement system.
In particular, we would like to measure:
</p>
<ul class="org-ul">
<li>the measurement noise</li>
<li>the linearity of the sensor</li>
<li>the bandwidth of the sensor</li>
</ul>
<p>
This document is structured as follow:
</p>
<ul class="org-ul">
<li>Section <a href="#org5ddac7d">1</a>: the expected performance of the Vionic encoder system are described</li>
<li>Section <a href="#org55cdc69">2</a>: a simple model of the encoder is developed</li>
<li>Section <a href="#orgb828c8d">3</a>: the noise of the encoder is measured and a model of the noise is identified</li>
<li>Section <a href="#org49975c3">4</a>: the linearity of the sensor is estimated</li>
</ul>
<div id="outline-container-orgfa3d11e" class="outline-2">
<h2 id="orgfa3d11e"><span class="section-number-2">1</span> Expected Performances</h2>
<div class="outline-text-2" id="text-1">
<p>
<a id="org5ddac7d"></a>
</p>
<p>
The Vionic encoder is shown in Figure <a href="#orga0ecb6c">1</a>.
</p>
<div id="orga0ecb6c" class="figure">
<p><img src="figs/encoder_vionic.png" alt="encoder_vionic.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Picture of the Vionic Encoder</p>
</div>
<p>
From the Renishaw <a href="https://www.renishaw.com/en/how-optical-encoders-work--36979">website</a>:
</p>
<blockquote>
<p>
The VIONiC encoder features the third generation of Renishaw&rsquo;s unique filtering optics that average the contributions from many scale periods and effectively filter out non-periodic features such as dirt.
The nominally square-wave scale pattern is also filtered to leave a pure sinusoidal fringe field at the detector.
Here, a multiple finger structure is employed, fine enough to produce photocurrents in the form of four symmetrically phased signals.
These are combined to remove DC components and produce sine and cosine signal outputs with high spectral purity and low offset while maintaining <b>bandwidth to beyond 500 kHz</b>.
</p>
<p>
Fully integrated advanced dynamic signal conditioning, Auto Gain , Auto Balance and Auto Offset Controls combine to ensure <b>ultra-low Sub-Divisional Error (SDE) of typically</b> \(<\pm 15\, nm\).
</p>
<p>
This evolution of filtering optics, combined with carefully-selected electronics, provide incremental signals with wide bandwidth achieving a maximum speed of 12 m/s with the lowest positional jitter (noise) of any encoder in its class.
Interpolation is within the readhead, with fine resolution versions being further augmented by additional noise-reducing electronics to achieve <b>jitter of just 1.6 nm RMS</b>.
</p>
</blockquote>
<p>
The expected interpolation errors (non-linearity) is shown in Figure <a href="#orgc38e53f">2</a>.
</p>
<div id="orgc38e53f" class="figure">
<p><img src="./figs/vionic_expected_noise.png" alt="vionic_expected_noise.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Expected interpolation errors for the Vionic Encoder</p>
</div>
<p>
The characteristics as advertise in the manual as well as our specifications are shown in Table <a href="#org091f419">1</a>.
</p>
<table id="org091f419" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Characteristics of the Vionic compared with the specifications</caption>
<colgroup>
<col class="org-left" />
<col class="org-center" />
<col class="org-center" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left"><b>Characteristics</b></th>
<th scope="col" class="org-center"><b>Manual</b></th>
<th scope="col" class="org-center"><b>Specification</b></th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Time Delay</td>
<td class="org-center">&lt; 10 ns</td>
<td class="org-center">&lt; 0.5 ms</td>
</tr>
<tr>
<td class="org-left">Bandwidth</td>
<td class="org-center">&gt; 500 kHz</td>
<td class="org-center">&gt; 5 kHz</td>
</tr>
<tr>
<td class="org-left">Noise</td>
<td class="org-center">&lt; 1.6 nm rms</td>
<td class="org-center">&lt; 50 nm rms</td>
</tr>
<tr>
<td class="org-left">Linearity</td>
<td class="org-center">&lt; +/- 15 nm</td>
<td class="org-center">&#xa0;</td>
</tr>
<tr>
<td class="org-left">Range</td>
<td class="org-center">Ruler length</td>
<td class="org-center">&gt; 200 um</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgf23b21b" class="outline-2">
<h2 id="orgf23b21b"><span class="section-number-2">2</span> Encoder Model</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org55cdc69"></a>
</p>
<p>
The Encoder is characterized by its dynamics \(G_m(s)\) from the &ldquo;true&rdquo; displacement \(y\) to measured displacement \(y_m\).
Ideally, this dynamics is constant over a wide frequency band with very small phase drop.
</p>
<p>
It is also characterized by its measurement noise \(n\) that can be described by its Power Spectral Density (PSD) \(\Gamma_n(\omega)\).
</p>
<p>
The model of the encoder is shown in Figure <a href="#org4fdb73a">3</a>.
</p>
<div id="org4fdb73a" class="figure">
<p><img src="figs/encoder-model-schematic.png" alt="encoder-model-schematic.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Model of the Encoder</p>
</div>
<p>
We can also use a transfer function \(G_n(s)\) to shape a noise \(\tilde{n}\) with unity ASD as shown in Figure <a href="#orgc38e53f">2</a>.
</p>
<div id="org793433f" class="figure">
<p><img src="figs/encoder-model-schematic-with-asd.png" alt="encoder-model-schematic-with-asd.png" />
</p>
</div>
</div>
</div>
<div id="outline-container-org9c17913" class="outline-2">
<h2 id="org9c17913"><span class="section-number-2">3</span> Noise Measurement</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="orgb828c8d"></a>
</p>
<p>
This part is structured as follow:
</p>
<ul class="org-ul">
<li>Section <a href="#org8cfb922">3.1</a>: the measurement bench is described</li>
<li>Section <a href="#orgfd5ce06">3.2</a>: long measurement is performed to estimate the low frequency drifts in the measurement</li>
<li>Section <a href="#org4df45c5">3.3</a>: high frequency measurements are performed to estimate the high frequency noise</li>
<li>Section <a href="#orgd464562">3.4</a>: the Spectral density of the measurement noise is estimated</li>
<li>Section <a href="#orgd6ec52a">3.5</a>: finally, the measured noise is modeled</li>
</ul>
</div>
<div id="outline-container-orgb9429ef" class="outline-3">
<h3 id="orgb9429ef"><span class="section-number-3">3.1</span> Test Bench</h3>
<div class="outline-text-3" id="text-3-1">
<p>
<a id="org8cfb922"></a>
</p>
<p>
To measure the noise \(n\) of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured.
Then, the measured signal \(y_m\) corresponds to the noise \(n\).
</p>
<p>
The measurement bench is shown in Figures <a href="#org4037996">5</a> and <a href="#org06e2754">6</a>.
Note that the bench is then covered with a &ldquo;plastic bubble sheet&rdquo; in order to keep disturbances as small as possible.
</p>
<div id="org4037996" class="figure">
<p><img src="figs/IMG_20210211_170554.jpg" alt="IMG_20210211_170554.jpg" />
</p>
<p><span class="figure-number">Figure 5: </span>Top view picture of the measurement bench</p>
</div>
<div id="org06e2754" class="figure">
<p><img src="figs/IMG_20210211_170607.jpg" alt="IMG_20210211_170607.jpg" />
</p>
<p><span class="figure-number">Figure 6: </span>Side view picture of the measurement bench</p>
</div>
</div>
</div>
<div id="outline-container-orgd9c9c77" class="outline-3">
<h3 id="orgd9c9c77"><span class="section-number-3">3.2</span> Thermal drifts</h3>
<div class="outline-text-3" id="text-3-2">
<p>
<a id="orgfd5ce06"></a>
Measured displacement were recording during approximately 40 hours with a sample frequency of 100Hz.
A first order low pass filter with a corner frequency of 1Hz
</p>
<div class="org-src-container">
<pre class="src src-matlab">enc_l = load(<span class="org-string">'mat/noise_meas_40h_100Hz_1.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'x'</span>);
</pre>
</div>
<p>
The measured time domain data are shown in Figure <a href="#org1454db4">7</a>.
</p>
<div id="org1454db4" class="figure">
<p><img src="figs/vionic_drifts_time.png" alt="vionic_drifts_time.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Measured thermal drifts</p>
</div>
<p>
The measured data seems to experience a constant drift after approximately 20 hour.
Let&rsquo;s estimate this drift.
</p>
<pre class="example">
The mean drift is approximately 60.9 [nm/hour] or 1.0 [nm/min]
</pre>
<p>
Comparison between the data and the linear fit is shown in Figure <a href="#orgfbe5f53">8</a>.
</p>
<div id="orgfbe5f53" class="figure">
<p><img src="figs/vionic_drifts_linear_fit.png" alt="vionic_drifts_linear_fit.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Measured drift and linear fit</p>
</div>
<p>
Let&rsquo;s now estimate the Power Spectral Density of the measured displacement.
The obtained low frequency ASD is shown in Figure <a href="#org42f3fad">9</a>.
</p>
<div id="org42f3fad" class="figure">
<p><img src="figs/vionic_noise_asd_low_freq.png" alt="vionic_noise_asd_low_freq.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Amplitude Spectral density of the measured displacement</p>
</div>
</div>
</div>
<div id="outline-container-org8ec1ba2" class="outline-3">
<h3 id="org8ec1ba2"><span class="section-number-3">3.3</span> Time Domain signals</h3>
<div class="outline-text-3" id="text-3-3">
<p>
<a id="org4df45c5"></a>
</p>
<p>
Then, and for all the 7 encoders, we record the measured motion during 100s with a sampling frequency of 20kHz.
</p>
<p>
The raw measured data as well as the low pass filtered data (using a first order low pass filter with a cut-off at 10Hz) are shown in Figure <a href="#org28ad5da">10</a>.
</p>
<div id="org28ad5da" class="figure">
<p><img src="figs/vionic_noise_raw_lpf.png" alt="vionic_noise_raw_lpf.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Time domain measurement (raw data and low pass filtered data with first order 10Hz LPF)</p>
</div>
<p>
The time domain data for all the encoders are compared in Figure <a href="#org1656541">11</a>.
</p>
<p>
We can see some drifts that are in the order of few nm to 20nm per minute.
As shown in Section <a href="#orgfd5ce06">3.2</a>, these drifts should diminish over time down to 1nm/min.
</p>
<div id="org1656541" class="figure">
<p><img src="figs/vionic_noise_time.png" alt="vionic_noise_time.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Comparison of the time domain measurement</p>
</div>
</div>
</div>
<div id="outline-container-org833451c" class="outline-3">
<h3 id="org833451c"><span class="section-number-3">3.4</span> Noise Spectral Density</h3>
<div class="outline-text-3" id="text-3-4">
<p>
<a id="orgd464562"></a>
</p>
<p>
The amplitude spectral densities for all the encoder are computed and shown in Figure <a href="#org7e93bb1">12</a>.
</p>
<div id="org7e93bb1" class="figure">
<p><img src="figs/vionic_noise_asd.png" alt="vionic_noise_asd.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Amplitude Spectral Density of the measured signal</p>
</div>
<p>
We can combine these measurements with the low frequency noise computed in Section <a href="#orgfd5ce06">3.2</a>.
The obtained ASD is shown in Figure <a href="#org7e54160">13</a>.
</p>
<div id="org7e54160" class="figure">
<p><img src="figs/vionic_noise_asd_combined.png" alt="vionic_noise_asd_combined.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Combined low frequency and high frequency noise measurements</p>
</div>
</div>
</div>
<div id="outline-container-org71a7d07" class="outline-3">
<h3 id="org71a7d07"><span class="section-number-3">3.5</span> Noise Model</h3>
<div class="outline-text-3" id="text-3-5">
<p>
<a id="orgd6ec52a"></a>
</p>
<p>
Let&rsquo;s create a transfer function that approximate the measured noise of the encoder.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Gn_e = 1.8e<span class="org-type">-</span>11<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>1e4);
</pre>
</div>
<p>
The amplitude of the transfer function and the measured ASD are shown in Figure <a href="#org5d39757">14</a>.
</p>
<div id="org5d39757" class="figure">
<p><img src="figs/vionic_noise_asd_model.png" alt="vionic_noise_asd_model.png" />
</p>
<p><span class="figure-number">Figure 14: </span>Measured ASD of the noise and modeled one</p>
</div>
<p>
The cumulative amplitude spectrum is now computed and shown in Figure <a href="#org05b258c">15</a>.
</p>
<p>
We can see that the Root Mean Square value of the measurement noise is \(\approx 1.6 \, nm\) as advertise in the datasheet.
</p>
<div id="org05b258c" class="figure">
<p><img src="figs/vionic_noise_cas_model.png" alt="vionic_noise_cas_model.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Meassured CAS of the noise and modeled one</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org61522ff" class="outline-2">
<h2 id="org61522ff"><span class="section-number-2">4</span> Linearity Measurement</h2>
<div class="outline-text-2" id="text-4">
<p>
<a id="org49975c3"></a>
</p>
</div>
<div id="outline-container-orge455e25" class="outline-3">
<h3 id="orge455e25"><span class="section-number-3">4.1</span> Test Bench</h3>
<div class="outline-text-3" id="text-4-1">
<p>
In order to measure the linearity, we have to compare the measured displacement with a reference sensor with a known linearity.
An interferometer or capacitive sensor should work fine.
An actuator should also be there so impose a displacement.
</p>
<p>
One idea is to use the test-bench shown in Figure <a href="#org177aa2c">16</a>.
</p>
<p>
The APA300ML is used to excite the mass in a broad bandwidth.
The motion is measured at the same time by the Vionic Encoder and by an interferometer (most likely an Attocube).
</p>
<p>
As the interferometer has a very large bandwidth, we should be able to estimate the bandwidth of the encoder if it is less than the Nyquist frequency that can be around 10kHz.
</p>
<div id="org177aa2c" class="figure">
<p><img src="figs/test_bench_encoder_calibration.png" alt="test_bench_encoder_calibration.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Schematic of the test bench</p>
</div>
</div>
</div>
<div id="outline-container-orgc6e5044" class="outline-3">
<h3 id="orgc6e5044"><span class="section-number-3">4.2</span> Results</h3>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-02-12 ven. 18:26</p>
</div>
</body>
</html>

572
test-bench-vionic.org Normal file
View File

@@ -0,0 +1,572 @@
#+TITLE: Encoder Renishaw Vionic - Test Bench
:DRAWER:
#+LANGUAGE: en
#+EMAIL: dehaeze.thomas@gmail.com
#+AUTHOR: Dehaeze Thomas
#+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+BIND: org-latex-image-default-option "scale=1"
#+BIND: org-latex-image-default-width ""
#+LaTeX_CLASS: scrreprt
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full]
#+LaTeX_HEADER_EXTRA: \input{preamble.tex}
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
#+PROPERTY: header-args:latex+ :results file raw replace
#+PROPERTY: header-args:latex+ :buffer no
#+PROPERTY: header-args:latex+ :tangle no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports results
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :output-dir figs
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
:END:
#+begin_export html
<hr>
<p>This report is also available as a <a href="./test-bench-vionic.pdf">pdf</a>.</p>
<hr>
#+end_export
* Introduction :ignore:
#+begin_note
You can find below the documentation of:
- [[file:doc/L-9517-9678-05-A_Data_sheet_VIONiC_series_en.pdf][Vionic Encoder]]
- [[file:doc/L-9517-9862-01-C_Data_sheet_RKLC_EN.pdf][Linear Scale]]
#+end_note
In this document, we wish to characterize the performances of the encoder measurement system.
In particular, we would like to measure:
- the measurement noise
- the linearity of the sensor
- the bandwidth of the sensor
This document is structured as follow:
- Section [[sec:vionic_expected_performances]]: the expected performance of the Vionic encoder system are described
- Section [[sec:encoder_model]]: a simple model of the encoder is developed
- Section [[sec:noise_measurement]]: the noise of the encoder is measured and a model of the noise is identified
- Section [[sec:linearity_measurement]]: the linearity of the sensor is estimated
* Expected Performances
<<sec:vionic_expected_performances>>
The Vionic encoder is shown in Figure [[fig:encoder_vionic]].
#+name: fig:encoder_vionic
#+caption: Picture of the Vionic Encoder
#+attr_latex: :width 0.6\linewidth
[[file:figs/encoder_vionic.png]]
From the Renishaw [[https://www.renishaw.com/en/how-optical-encoders-work--36979][website]]:
#+begin_quote
The VIONiC encoder features the third generation of Renishaw's unique filtering optics that average the contributions from many scale periods and effectively filter out non-periodic features such as dirt.
The nominally square-wave scale pattern is also filtered to leave a pure sinusoidal fringe field at the detector.
Here, a multiple finger structure is employed, fine enough to produce photocurrents in the form of four symmetrically phased signals.
These are combined to remove DC components and produce sine and cosine signal outputs with high spectral purity and low offset while maintaining *bandwidth to beyond 500 kHz*.
Fully integrated advanced dynamic signal conditioning, Auto Gain , Auto Balance and Auto Offset Controls combine to ensure *ultra-low Sub-Divisional Error (SDE) of typically* $<\pm 15\, nm$.
This evolution of filtering optics, combined with carefully-selected electronics, provide incremental signals with wide bandwidth achieving a maximum speed of 12 m/s with the lowest positional jitter (noise) of any encoder in its class.
Interpolation is within the readhead, with fine resolution versions being further augmented by additional noise-reducing electronics to achieve *jitter of just 1.6 nm RMS*.
#+end_quote
The expected interpolation errors (non-linearity) is shown in Figure [[fig:vionic_expected_noise]].
#+name: fig:vionic_expected_noise
#+attr_latex: :width \linewidth
#+caption: Expected interpolation errors for the Vionic Encoder
[[file:./figs/vionic_expected_noise.png]]
The characteristics as advertise in the manual as well as our specifications are shown in Table [[tab:vionic_characteristics]].
#+name: tab:vionic_characteristics
#+caption: Characteristics of the Vionic compared with the specifications
#+attr_latex: :environment tabularx :width 0.6\linewidth :align lcc
#+attr_latex: :center t :booktabs t :float t
| <l> | <c> | <c> |
| *Characteristics* | *Manual* | *Specification* |
|-------------------+--------------+-----------------|
| Time Delay | < 10 ns | < 0.5 ms |
| Bandwidth | > 500 kHz | > 5 kHz |
| Noise | < 1.6 nm rms | < 50 nm rms |
| Linearity | < +/- 15 nm | |
| Range | Ruler length | > 200 um |
* Encoder Model
<<sec:encoder_model>>
The Encoder is characterized by its dynamics $G_m(s)$ from the "true" displacement $y$ to measured displacement $y_m$.
Ideally, this dynamics is constant over a wide frequency band with very small phase drop.
It is also characterized by its measurement noise $n$ that can be described by its Power Spectral Density (PSD) $\Gamma_n(\omega)$.
The model of the encoder is shown in Figure [[fig:encoder-model-schematic]].
#+begin_src latex :file encoder-model-schematic.pdf
\begin{tikzpicture}
\node[block] (G) at (0,0){$G_m(s)$};
\node[addb, left=0.8 of G] (add){};
\draw[<-] (add.west) -- ++(-1.0, 0) node[above right]{$y$};
\draw[->] (add.east) -- (G.west);
\draw[->] (G.east) -- ++(1.0, 0) node[above left]{$y_m$};
\draw[<-] (add.north) -- ++(0, 0.6) node[below right](n){$n$};
\begin{scope}[on background layer]
\node[fit={(add.west|-G.south) (n.north-|G.east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[below left] at (P.north east) {Encoder};
\end{scope}
\end{tikzpicture}
#+end_src
#+name: fig:encoder-model-schematic
#+caption: Model of the Encoder
#+RESULTS:
[[file:figs/encoder-model-schematic.png]]
We can also use a transfer function $G_n(s)$ to shape a noise $\tilde{n}$ with unity ASD as shown in Figure [[fig:vionic_expected_noise]].
#+begin_src latex :file encoder-model-schematic-with-asd.pdf
\begin{tikzpicture}
\node[block] (G) at (0,0){$G_m(s)$};
\node[addb, left=0.8 of G] (add){};
\node[block, above=0.5 of add] (Gn) {$G_n(s)$};
\draw[<-] (add.west) -- ++(-1.0, 0) node[above right]{$y$};
\draw[->] (add.east) -- (G.west);
\draw[->] (G.east) -- ++(1.0, 0) node[above left]{$y_m$};
\draw[->] (Gn.south) -- (add.north) node[above right]{$n$};
\draw[<-] (Gn.north) -- ++(0, 0.6) node[below right](n){$\tilde{n}$};
\begin{scope}[on background layer]
\node[fit={(Gn.west|-G.south) (n.north-|G.east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[below left] at (P.north east) {Encoder};
\end{scope}
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/encoder-model-schematic-with-asd.png]]
* Noise Measurement
<<sec:noise_measurement>>
** Introduction :ignore:
This part is structured as follow:
- Section [[sec:noise_bench]]: the measurement bench is described
- Section [[sec:thermal_drifts]]: long measurement is performed to estimate the low frequency drifts in the measurement
- Section [[sec:vionic_noise_time]]: high frequency measurements are performed to estimate the high frequency noise
- Section [[sec:noise_asd]]: the Spectral density of the measurement noise is estimated
- Section [[sec:vionic_noise_model]]: finally, the measured noise is modeled
** Test Bench
<<sec:noise_bench>>
To measure the noise $n$ of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured.
Then, the measured signal $y_m$ corresponds to the noise $n$.
The measurement bench is shown in Figures [[fig:meas_bench_top_view]] and [[fig:meas_bench_side_view]].
Note that the bench is then covered with a "plastic bubble sheet" in order to keep disturbances as small as possible.
#+name: fig:meas_bench_top_view
#+caption: Top view picture of the measurement bench
#+attr_latex: :width 0.8\linewidth
[[file:figs/IMG_20210211_170554.jpg]]
#+name: fig:meas_bench_side_view
#+caption: Side view picture of the measurement bench
#+attr_latex: :width 0.8\linewidth
[[file:figs/IMG_20210211_170607.jpg]]
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
#+begin_src matlab :tangle no
addpath('./matlab/mat/');
addpath('./matlab/');
#+end_src
#+begin_src matlab :eval no
addpath('./mat/');
#+end_src
** Thermal drifts
<<sec:thermal_drifts>>
Measured displacement were recording during approximately 40 hours with a sample frequency of 100Hz.
A first order low pass filter with a corner frequency of 1Hz
#+begin_src matlab
enc_l = load('mat/noise_meas_40h_100Hz_1.mat', 't', 'x');
#+end_src
The measured time domain data are shown in Figure [[fig:vionic_drifts_time]].
#+begin_src matlab :exports none
enc_l.x = enc_l.x(enc_l.t > 5); % Remove first 5 seconds
enc_l.t = enc_l.t(enc_l.t > 5); % Remove first 5 seconds
enc_l.t = enc_l.t - enc_l.t(1); % Start at 0
enc_l.x = enc_l.x - mean(enc_l.x(enc_l.t < 1)); % Start at zero displacement
#+end_src
#+begin_src matlab :exports none
figure;
hold on;
plot(enc_l.t/3600, 1e9*enc_l.x, '-');
hold off;
xlabel('Time [h]');
ylabel('Displacement [nm]');
xlim([0, 40]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_drifts_time.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_drifts_time
#+caption: Measured thermal drifts
#+RESULTS:
[[file:figs/vionic_drifts_time.png]]
The measured data seems to experience a constant drift after approximately 20 hour.
Let's estimate this drift.
#+begin_src matlab :exports none
t0 = 20*3600; % Start time [s]
x_stab = enc_l.x(enc_l.t > t0);
x_stab = x_stab - x_stab(1);
t_stab = enc_l.t(enc_l.t > t0);
t_stab = t_stab - t_stab(1);
#+end_src
#+begin_src matlab :results value replace :exports results
sprintf('The mean drift is approximately %.1f [nm/hour] or %.1f [nm/min]', 3600*1e9*(t_stab\x_stab), 60*1e9*(t_stab\x_stab))
#+end_src
#+RESULTS:
: The mean drift is approximately 60.9 [nm/hour] or 1.0 [nm/min]
Comparison between the data and the linear fit is shown in Figure [[fig:vionic_drifts_linear_fit]].
#+begin_src matlab :exports none
figure;
hold on;
plot(t_stab/3600, 1e9*x_stab, '-');
plot(t_stab/3600, 1e9*t_stab*(t_stab\x_stab), 'k--');
hold off;
xlabel('Time [h]');
ylabel('Displacement [nm]');
xlim([0, 20]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_drifts_linear_fit.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_drifts_linear_fit
#+caption: Measured drift and linear fit
#+RESULTS:
[[file:figs/vionic_drifts_linear_fit.png]]
Let's now estimate the Power Spectral Density of the measured displacement.
The obtained low frequency ASD is shown in Figure [[fig:vionic_noise_asd_low_freq]].
#+begin_src matlab :exports none
% Compute sampling Frequency
Ts = (enc_l.t(end) - enc_l.t(1))/(length(enc_l.t)-1);
Fs = 1/Ts;
% Hannning Windows
win = hanning(ceil(60*10/Ts));
[pxx_l, f_l] = pwelch(x_stab, win, [], [], Fs);
#+end_src
#+begin_src matlab :exports none
figure;
hold on;
plot(f_l, sqrt(pxx_l))
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]');
xlim([1e-2, 1e0]);
ylim([1e-11, 1e-8]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_noise_asd_low_freq.pdf', 'width', 'side', 'height', 'normal');
#+end_src
#+name: fig:vionic_noise_asd_low_freq
#+caption: Amplitude Spectral density of the measured displacement
#+RESULTS:
[[file:figs/vionic_noise_asd_low_freq.png]]
** Time Domain signals
<<sec:vionic_noise_time>>
Then, and for all the 7 encoders, we record the measured motion during 100s with a sampling frequency of 20kHz.
#+begin_src matlab :exports none
%% Load all the measurements
enc = {};
for i = 1:7
enc(i) = {load(['mat/noise_meas_100s_20kHz_' num2str(i) '.mat'], 't', 'x')};
end
#+end_src
#+begin_src matlab :exports none
%% Remove initial offset
for i = 1:7
enc{i}.x = enc{i}.x - mean(enc{i}.x(1:1000));
end
#+end_src
The raw measured data as well as the low pass filtered data (using a first order low pass filter with a cut-off at 10Hz) are shown in Figure [[fig:vionic_noise_raw_lpf]].
#+begin_src matlab :exports none
figure;
hold on;
plot(enc{1}.t, 1e9*enc{1}.x, '.', 'DisplayName', 'Enc 1 - Raw');
plot(enc{1}.t, 1e9*lsim(1/(1 + s/2/pi/10), enc{1}.x, enc{1}.t), '-', 'DisplayName', 'Enc 1 - LPF');
hold off;
xlabel('Time [s]');
ylabel('Displacement [nm]');
legend('location', 'northwest');
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_noise_raw_lpf.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_noise_raw_lpf
#+caption: Time domain measurement (raw data and low pass filtered data with first order 10Hz LPF)
#+RESULTS:
[[file:figs/vionic_noise_raw_lpf.png]]
The time domain data for all the encoders are compared in Figure [[fig:vionic_noise_time]].
We can see some drifts that are in the order of few nm to 20nm per minute.
As shown in Section [[sec:thermal_drifts]], these drifts should diminish over time down to 1nm/min.
#+begin_src matlab :exports none
figure;
hold on;
for i=1:7
plot(enc{i}.t, 1e9*lsim(1/(1 + s/2/pi/10), enc{i}.x, enc{i}.t), '.', ...
'DisplayName', sprintf('Enc %i', i));
end
hold off;
xlabel('Time [s]');
ylabel('Displacement [nm]');
legend('location', 'northwest');
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_noise_time.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_noise_time
#+caption: Comparison of the time domain measurement
#+RESULTS:
[[file:figs/vionic_noise_time.png]]
** Noise Spectral Density
<<sec:noise_asd>>
The amplitude spectral densities for all the encoder are computed and shown in Figure [[fig:vionic_noise_asd]].
#+begin_src matlab :exports none
% Compute sampling Frequency
Ts = (enc{1}.t(end) - enc{1}.t(1))/(length(enc{1}.t)-1);
Fs = 1/Ts;
% Hannning Windows
win = hanning(ceil(0.5/Ts));
[pxx, f] = pwelch(enc{1}.x, win, [], [], Fs);
enc{1}.pxx = pxx;
for i=2:7
[pxx, ~] = pwelch(enc{i}.x, win, [], [], Fs);
enc{i}.pxx = pxx;
end
#+end_src
#+begin_src matlab :exports none
figure;
hold on;
for i=1:7
plot(f, sqrt(enc{i}.pxx), ...
'DisplayName', sprintf('Enc %i', i));
end
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]');
xlim([10, Fs/2]);
ylim([1e-11, 1e-9]);
legend('location', 'northeast');
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_noise_asd.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_noise_asd
#+caption: Amplitude Spectral Density of the measured signal
#+RESULTS:
[[file:figs/vionic_noise_asd.png]]
We can combine these measurements with the low frequency noise computed in Section [[sec:thermal_drifts]].
The obtained ASD is shown in Figure [[fig:vionic_noise_asd_combined]].
#+begin_src matlab :exports none
[pxx_h, f_h] = pwelch(enc{2}.x, hanning(ceil(10/Ts)), [], [], Fs);
figure;
hold on;
plot(f_h(f_h>0.6), sqrt(pxx_h(f_h>0.6)), 'k-');
plot(f_l(f_l<1), sqrt(pxx_l(f_l<1)), 'k-')
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]');
xlim([1e-2, Fs/2]);
ylim([1e-12, 1e-8]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_noise_asd_combined.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_noise_asd_combined
#+caption: Combined low frequency and high frequency noise measurements
#+RESULTS:
[[file:figs/vionic_noise_asd_combined.png]]
** Noise Model
<<sec:vionic_noise_model>>
Let's create a transfer function that approximate the measured noise of the encoder.
#+begin_src matlab
Gn_e = 1.8e-11/(1 + s/2/pi/1e4);
#+end_src
The amplitude of the transfer function and the measured ASD are shown in Figure [[fig:vionic_noise_asd_model]].
#+begin_src matlab :exports none
figure;
hold on;
plot(f, sqrt(enc{1}.pxx), 'color', [0, 0, 0, 0.5], 'DisplayName', '$\Gamma_n(\omega)$');
for i=2:7
plot(f, sqrt(enc{i}.pxx), 'color', [0, 0, 0, 0.5], ...
'HandleVisibility', 'off');
end
plot(f, abs(squeeze(freqresp(Gn_e, f, 'Hz'))), 'r-', 'DisplayName', '$|G_n(j\omega)|$');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]');
xlim([10, Fs/2]);
ylim([1e-11, 1e-10]);
legend('location', 'northeast');
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_noise_asd_model.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_noise_asd_model
#+caption: Measured ASD of the noise and modeled one
#+RESULTS:
[[file:figs/vionic_noise_asd_model.png]]
The cumulative amplitude spectrum is now computed and shown in Figure [[fig:vionic_noise_cas_model]].
We can see that the Root Mean Square value of the measurement noise is $\approx 1.6 \, nm$ as advertise in the datasheet.
#+begin_src matlab :exports none
for i = 1:7
enc{i}.CPS = flip(-cumtrapz(flip(f), flip(enc{i}.pxx)));
end
CAS_Gn = flip(-cumtrapz(flip(f), flip(abs(squeeze(freqresp(Gn_e, f, 'Hz'))).^2)));
#+end_src
#+begin_src matlab :exports none
figure;
hold on;
plot(f, sqrt(enc{1}.CPS), 'color', [0, 0, 0, 0.5], 'DisplayName', '$CAS_n(\omega)$');
for i=2:7
plot(f, sqrt(enc{i}.CPS), 'color', [0, 0, 0, 0.5], 'HandleVisibility', 'off');
end
plot(f, sqrt(CAS_Gn), 'r-', 'DisplayName', 'model');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('CPS [$m$]');
xlim([10, Fs/2]);
ylim([1e-10, 1e-8]);
legend('location', 'northeast');
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/vionic_noise_cas_model.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:vionic_noise_cas_model
#+caption: Meassured CAS of the noise and modeled one
#+RESULTS:
[[file:figs/vionic_noise_cas_model.png]]
* Linearity Measurement
<<sec:linearity_measurement>>
** Test Bench
In order to measure the linearity, we have to compare the measured displacement with a reference sensor with a known linearity.
An interferometer or capacitive sensor should work fine.
An actuator should also be there so impose a displacement.
One idea is to use the test-bench shown in Figure [[fig:test_bench_encoder_calibration]].
The APA300ML is used to excite the mass in a broad bandwidth.
The motion is measured at the same time by the Vionic Encoder and by an interferometer (most likely an Attocube).
As the interferometer has a very large bandwidth, we should be able to estimate the bandwidth of the encoder if it is less than the Nyquist frequency that can be around 10kHz.
#+name: fig:test_bench_encoder_calibration
#+caption: Schematic of the test bench
[[file:figs/test_bench_encoder_calibration.png]]
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
#+begin_src matlab :tangle no
addpath('./matlab/mat/');
addpath('./matlab/');
#+end_src
#+begin_src matlab :eval no
addpath('./mat/');
#+end_src
** Results

BIN
test-bench-vionic.pdf Normal file

Binary file not shown.