Compare commits
19 Commits
5c3d102715
...
master
Author | SHA1 | Date | |
---|---|---|---|
4776c89343 | |||
195c5b5598 | |||
9a06c0995f | |||
73dc280ab3 | |||
15d8508bf0 | |||
bc5876f32f | |||
080b788768 | |||
30177e4809 | |||
006cb20df1 | |||
53ffaaa793 | |||
0296f80900 | |||
d924339f63 | |||
983b300650 | |||
78e8097ca6 | |||
8fa4975b41 | |||
bed36ce9d0 | |||
9e38f0bd14 | |||
99e3c94d59 | |||
fa4b391336 |
BIN
figs/IMG_20210211_170551.jpg
Normal file
After Width: | Height: | Size: 3.4 MiB |
BIN
figs/IMG_20210211_170554.jpg
Normal file
After Width: | Height: | Size: 236 KiB |
BIN
figs/IMG_20210211_170607.jpg
Normal file
After Width: | Height: | Size: 268 KiB |
BIN
figs/encoder-model-schematic-with-asd.pdf
Normal file
BIN
figs/encoder-model-schematic-with-asd.png
Normal file
After Width: | Height: | Size: 13 KiB |
165
figs/encoder-model-schematic-with-asd.svg
Normal 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
BIN
figs/vionic_drifts_linear_fit.pdf
Normal file
BIN
figs/vionic_drifts_linear_fit.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
figs/vionic_drifts_time.pdf
Normal file
BIN
figs/vionic_drifts_time.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
figs/vionic_noise_asd.pdf
Normal file
BIN
figs/vionic_noise_asd.png
Normal file
After Width: | Height: | Size: 80 KiB |
1274
figs/vionic_noise_asd_combined.pdf
Normal file
BIN
figs/vionic_noise_asd_combined.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
figs/vionic_noise_asd_low_freq.pdf
Normal file
BIN
figs/vionic_noise_asd_low_freq.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
figs/vionic_noise_asd_model.pdf
Normal file
BIN
figs/vionic_noise_asd_model.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
figs/vionic_noise_cas_model.pdf
Normal file
BIN
figs/vionic_noise_cas_model.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
figs/vionic_noise_raw_lpf.pdf
Normal file
BIN
figs/vionic_noise_raw_lpf.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
figs/vionic_noise_time.pdf
Normal file
BIN
figs/vionic_noise_time.png
Normal file
After Width: | Height: | Size: 57 KiB |
200
index.html
@@ -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 “true” 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">> 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
@@ -0,0 +1 @@
|
||||
test-bench-vionic.html
|
138
index.org
@@ -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
|
BIN
matlab/mat/noise_meas_100Hz_without_AGC.mat
Normal file
BIN
matlab/mat/noise_meas_100s_20kHz_2.mat
Normal file
BIN
matlab/mat/noise_meas_100s_20kHz_3.mat
Normal file
BIN
matlab/mat/noise_meas_100s_20kHz_4.mat
Normal file
BIN
matlab/mat/noise_meas_100s_20kHz_5.mat
Normal file
BIN
matlab/mat/noise_meas_100s_20kHz_6.mat
Normal file
BIN
matlab/mat/noise_meas_100s_20kHz_7.mat
Normal file
BIN
matlab/mat/noise_meas_17h_200Hz_1.mat
Normal file
BIN
matlab/mat/noise_meas_40h_100Hz_1.mat
Normal file
BIN
matlab/mat/noise_meas_80h_100Hz_1.mat
Normal file
510
test-bench-vionic.html
Normal 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’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">< 10 ns</td>
|
||||
<td class="org-center">< 0.5 ms</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Bandwidth</td>
|
||||
<td class="org-center">> 500 kHz</td>
|
||||
<td class="org-center">> 5 kHz</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Noise</td>
|
||||
<td class="org-center">< 1.6 nm rms</td>
|
||||
<td class="org-center">< 50 nm rms</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Linearity</td>
|
||||
<td class="org-center">< +/- 15 nm</td>
|
||||
<td class="org-center"> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Range</td>
|
||||
<td class="org-center">Ruler length</td>
|
||||
<td class="org-center">> 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 “true” 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 “plastic bubble sheet” 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’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’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’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
@@ -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
|
||||
|