ajout de projets référence

This commit is contained in:
Aleksander Taban 2026-10-02 14:45:14 +02:00
parent 06607eee65
commit ab3af5ec37
No known key found for this signature in database
61 changed files with 7476 additions and 0 deletions

View file

@ -0,0 +1,2 @@
(kicad_pcb (version 20241229) (generator "pcbnew") (generator_version "9.0")
)

View file

@ -0,0 +1,32 @@
{
"board": {
"design_settings": {
"defaults": {},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {},
"track_widths": [],
"via_dimensions": []
}
},
"boards": [],
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "kicad.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [],
"meta": {
"version": 0
}
},
"pcbnew": {
"page_layout_descr_file": ""
},
"sheets": [],
"text_variables": {}
}

View file

@ -0,0 +1,14 @@
(kicad_sch
(version 20250114)
(generator "eeschema")
(generator_version "9.0")
(uuid 39218834-6d97-472f-bed5-15d4e2519ad2)
(paper "A4")
(lib_symbols)
(sheet_instances
(path "/"
(page "1")
)
)
(embedded_fonts no)
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -0,0 +1,460 @@
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="560" height="420" xmlns="http://www.w3.org/2000/svg"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
/><g
><defs id="defs1"
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
><path d="M0 0 L560 0 L560 420 L0 420 L0 0 Z"
/></clipPath
></defs
><g style="fill:white; stroke:white;"
><rect x="0" y="0" width="560" style="clip-path:url(#clipPath1); stroke:none;" height="420"
/></g
><g
><image x="0" y="0" width="560" xlink:href="data:image/png;base64,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
7fF2NYV+HVdWVlJBQFLU+dDXrl2jwMjw/76ff/6Zvvb6V1bTF49+/TQ1NfEvEtJD
dXW1bkdXjL1J0UlGRoYhRY3hpR+E1MOXw9rArJr+b3D9iSFVdoJ79+7Rv6Uh9en0
My0/P5/CFP0n0DRwvF361FQmUmhCkQqt6FxrdPHiRYrP6KseFBREv5Fzc3MN+dZl
Zmb+5S9/MeTQ9JVbv349ncCmTZtSU1P1PPSVK1fo2y4e0ndvz549hhQ1hpd+EJIS
ewZm1QFjhURxyapVq3Jycgw5+k8//XT27FkqmKho0LPqxtjxdpubm+kHKf3l6x8R
EXHhwgU948LFixdToSx1J5UsXbpU5xYsqbu2Kjg4WJ/aKnMoLqHv27lz5+jWx8XF
Uaym26HpS758+XIKVuj30JkzZ7gJx5Cixk1KPwjpF+wZmNW7hUQlAv1Id4eR/WJj
Y/VsVnWr8XbpR3pSUpJuhyP5rVu3Tv61J3T+yJcuXaIYxZCrfe3atdWrV1OQyg9J
SDpnFtTX15MJtmzZQselHwd6akBe1LhJ6Qch/YI9A7N6sZAqKiro1/HVq1cNufh3
796V11nv2bNn7969uh3d2PF27927J08hSUlJ0afehqE7LheSIT+N6deA/pW0zMWL
F+VVVVQK63nxOzo65E1WVObQ+RhS1LhJ6Qch/YKNgVm9XkhNTU0hISGlpaWdzxG/
GfWBLvjixYtJS7ROlz08PJx+uhryNdC/yo6iMfrsnNPR2tpKn13PSjO618uXL6db
L3WnV0VEROjfG4l+BPD/nf7U1NTQfzp/8drb26Ojo/VUQktLC916zt+5efMm/SLU
swuavKhxk9IPQlIGSRYHZvV6IaWnpytmNT506JDO53DhwoXg4ODt27fTX6P6IUkG
jbd77tw5+kFAXzz6q3+V6Q8//LBq1arPPvuMvvYnT57U/4cgfd/074wsyM/Ppw/O
//VpaWk6H/3s2bN007du3Uq3QOefAoqixh1KPwjJAj///LOefQOBvGyi32U6B2fu
89mN/eI9fvzYN6+8uPhGfXw6rp6ZFJ5Y+mEsOwAAABASAAAAACEBAACAkAAAAAAI
CQAAAIQEAAAAQEjAF9m+fftblpg7dy791aiP+qRJk4zq/mkOfUzbfU1effXV77//
Hl8VACEBoC379+8P6mbhwoV+fn5Tp07lhxEREdOnTy8sLFT9iHFxcYGBgW70H+7n
Z3sI3by8vJdffhlfFQAhAaATDx48oKL5+PHjmh6lvb190KBBbhVw9CgkgoR0+PBh
fEkAhASAMUKSR0i0Ti9NnDixf//+r7766vXr1/fs2TN8+PCBAwcuW7aMt+no6Fix
YsXQoUMHDBjwxhtv0DbmR0lMTJRHG1lZWePHj6d9jhgxQkyHY2M/dJJ0uCFDhtBL
c+bMuXPnjtQ94l9oaOjgwYN5e2E7Omfa/+TJk2n/Y8aMER+tsbGRQjTaeOTIkfSk
EJLFk2G2bdtGnxpfEgAhAWCMkOQPaZ1K/AMHDnD9FSmBinta37t3b69evXhyz7fe
emv06NH5+fm3b99evHjxCy+8QEW/4ihTp04NCwvjdTIN7TYpKYmMkp2dTSbgySZs
7GfKlCljx44lTVZVVc2YMWPUqFFSdxvPuHHjaPvy8nIyDTmS51SkndN5kjhzc3Pp
eTpPHraVrDNhwoSSkhJ6C+2BhWTtZBjamF41/zgAQEgAGCCkLVu28DoV8VS4iyGQ
yQcUoHCRLR+cm6SyYcMGxVH69Okj6r5IA7Qfsg4/JM2Ulpba2E9ZWZn8pYaGhrlz
5x47doyeFDvh7Tlok58zRV0sHpIQrYhZgPlwOd2Yn4zYZ1dXF72qdX0mABASAHYJ
SayTUSiAEJtRqBQUFLR//37aZq6MYcOGvf322/JDPH78WN5g09nZSZENFfSktKio
KB5Z3MZ+0tLSyGeK0yY7Ukgkf2bevHkUPCnOWTw037537950ShZPRk6/fv3cauZQ
ACEBACFZFhIV9GSLpF+jmD9CISSOPLKzs0kh/v7+HNDY2M+BAwf69u2rOO2EhIRB
gwa5IiTaJ5+S+cnIN6OPDCEBCAkADxASFeW0DTfSMFTKm2eNUwgiJtr5/vvv5alr
y5YtI7XY2M/58+fppYaGBhFgTZ48+bPPPpPXHxITJkwgqVgTElfNie0bGxvZkRZP
RnHmqLIDEBIAHiAkCi+GDx9O67QfqTtjjd5CfxVHeeWVV9asWcPrJBgq5Xm+dno7
hTUTJ060vZ9Ro0bNmTOHIi1aj4iIGDx4MG02bNgwerKjo0PqzuKj7bmjq8WPw/t/
9913yWe0H3ojC8niyYj3kq5os6qqKnxPAIQEgLsLSeqeeXr8+PG9e/fu142iyouJ
iYmhCEY8jI6O5u379Okzbtw4zjWwsR96iTajjfv27evv78+RE9ni5Zdfpu3pyaFD
h4oIzNrHIa+MGTOmTzcUCdFfrrKzeDIMeW7kyJH4kgAICQBPgsKOO3fuWJtytLGx
kYp7eVlPW9L2HN/YuR/aWFTcyZ9sbm62/zxpY4605Fg7GZLojh07cHMBhASAV7Fi
xYrVq1d70AmXl5dT4GVuLwAgJAA8mwcPHowcOVKetuDmzJgxo8exhQCAkADwSDo6
Ojo7Oz3IoLhlAEICAAAAICQAAAAQEgAAAAAhAQAAgJAAAAAA6/z/VH5ftTE9u8EAAAAASUVORK5CYII=" style="clip-path:url(#clipPath1);" height="420" preserveAspectRatio="none"
/></g
></g
></svg
>

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View file

@ -0,0 +1,368 @@
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="560" height="420" xmlns="http://www.w3.org/2000/svg"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
/><g
><defs id="defs1"
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
><path d="M0 0 L560 0 L560 420 L0 420 L0 0 Z"
/></clipPath
><font horiz-adv-x="75.0" id="font1"
><font-face ascent="100.53711" descent="21.972656" units-per-em="100" style="font-style:normal; font-family:SansSerif; font-weight:normal;"
/><missing-glyph horiz-adv-x="75.0" d="M12.5 0 L12.5 62.5 L62.5 62.5 L62.5 0 L12.5 0 ZM14.0625 1.5625 L60.9375 1.5625 L60.9375 60.9375 L14.0625 60.9375 L14.0625 1.5625 Z"
/><glyph unicode="0" horiz-adv-x="55.615234" d="M4.1562 35.2969 Q4.1562 48 6.7656 55.7422 Q9.375 63.4844 14.5234 67.6797 Q19.6719 71.875 27.4844 71.875 Q33.25 71.875 37.5938 69.5547 Q41.9375 67.2344 44.7734 62.8672 Q47.6094 58.5 49.2188 52.2266 Q50.8281 45.9531 50.8281 35.2969 Q50.8281 22.7031 48.2422 14.9688 Q45.6562 7.2344 40.5078 3.0078 Q35.3594 -1.2188 27.4844 -1.2188 Q17.1406 -1.2188 11.2344 6.2031 Q4.1562 15.1406 4.1562 35.2969 ZM13.1875 35.2969 Q13.1875 17.6719 17.3125 11.8359 Q21.4375 6 27.4844 6 Q33.5469 6 37.6719 11.8594 Q41.7969 17.7188 41.7969 35.2969 Q41.7969 52.9844 37.6719 58.7891 Q33.5469 64.5938 27.3906 64.5938 Q21.3438 64.5938 17.7188 59.4688 Q13.1875 52.9375 13.1875 35.2969 Z"
/><glyph unicode="5" horiz-adv-x="55.615234" d="M4.1562 18.75 L13.375 19.5312 Q14.4062 12.7969 18.1406 9.3984 Q21.875 6 27.1562 6 Q33.5 6 37.8906 10.7891 Q42.2812 15.5781 42.2812 23.4844 Q42.2812 31 38.0625 35.3516 Q33.8438 39.7031 27 39.7031 Q22.75 39.7031 19.3359 37.7734 Q15.9219 35.8438 13.9688 32.7656 L5.7188 33.8438 L12.6406 70.6094 L48.25 70.6094 L48.25 62.2031 L19.6719 62.2031 L15.8281 42.9688 Q22.2656 47.4688 29.3438 47.4688 Q38.7188 47.4688 45.1641 40.9688 Q51.6094 34.4688 51.6094 24.2656 Q51.6094 14.5469 45.9531 7.4688 Q39.0625 -1.2188 27.1562 -1.2188 Q17.3906 -1.2188 11.2109 4.25 Q5.0312 9.7188 4.1562 18.75 Z"
/><glyph unicode="1" horiz-adv-x="55.615234" d="M37.25 0 L28.4688 0 L28.4688 56 Q25.2969 52.9844 20.1406 49.9531 Q14.9844 46.9219 10.8906 45.4062 L10.8906 53.9062 Q18.2656 57.375 23.7812 62.3047 Q29.2969 67.2344 31.5938 71.875 L37.25 71.875 L37.25 0 Z"
/><glyph unicode="2" horiz-adv-x="55.615234" d="M50.3438 8.4531 L50.3438 0 L3.0312 0 Q2.9375 3.1719 4.0469 6.1094 Q5.8594 10.9375 9.8359 15.625 Q13.8125 20.3125 21.3438 26.4688 Q33.0156 36.0312 37.1172 41.625 Q41.2188 47.2188 41.2188 52.2031 Q41.2188 57.4219 37.4766 61.0078 Q33.7344 64.5938 27.7344 64.5938 Q21.3906 64.5938 17.5781 60.7891 Q13.7656 56.9844 13.7188 50.25 L4.6875 51.1719 Q5.6094 61.2812 11.6641 66.5781 Q17.7188 71.875 27.9375 71.875 Q38.2344 71.875 44.2422 66.1641 Q50.25 60.4531 50.25 52 Q50.25 47.7031 48.4922 43.5547 Q46.7344 39.4062 42.6562 34.8125 Q38.5781 30.2188 29.1094 22.2188 Q21.1875 15.5781 18.9453 13.2109 Q16.7031 10.8438 15.2344 8.4531 L50.3438 8.4531 Z"
/><glyph unicode=")" horiz-adv-x="33.30078" d="M12.3594 -21.0469 L6.0625 -21.0469 Q20.6562 2.3906 20.6562 25.875 Q20.6562 35.0625 18.5625 44.0938 Q16.8906 51.4219 13.9219 58.1562 Q12.0156 62.5469 6.0625 72.7969 L12.3594 72.7969 Q21.5312 60.5469 25.9219 48.1875 Q29.6875 37.5469 29.6875 25.9219 Q29.6875 12.75 24.6328 0.4453 Q19.5781 -11.8594 12.3594 -21.0469 Z"
/><glyph unicode="B" horiz-adv-x="66.69922" d="M7.3281 0 L7.3281 71.5781 L34.1875 71.5781 Q42.3906 71.5781 47.3438 69.4062 Q52.2969 67.2344 55.1016 62.7188 Q57.9062 58.2031 57.9062 53.2656 Q57.9062 48.6875 55.4219 44.6328 Q52.9375 40.5781 47.9062 38.0938 Q54.3906 36.1875 57.8828 31.5938 Q61.375 27 61.375 20.75 Q61.375 15.7188 59.25 11.3984 Q57.125 7.0781 54 4.7344 Q50.875 2.3906 46.1641 1.1953 Q41.4531 0 34.625 0 L7.3281 0 ZM16.7969 41.5 L32.2812 41.5 Q38.5781 41.5 41.3125 42.3281 Q44.9219 43.4062 46.75 45.8984 Q48.5781 48.3906 48.5781 52.1562 Q48.5781 55.7188 46.875 58.4297 Q45.1719 61.1406 41.9922 62.1406 Q38.8125 63.1406 31.1094 63.1406 L16.7969 63.1406 L16.7969 41.5 ZM16.7969 8.4531 L34.625 8.4531 Q39.2031 8.4531 41.0625 8.7969 Q44.3438 9.375 46.5391 10.7422 Q48.7344 12.1094 50.1484 14.7188 Q51.5625 17.3281 51.5625 20.75 Q51.5625 24.75 49.5156 27.7109 Q47.4688 30.6719 43.8281 31.8672 Q40.1875 33.0625 33.3438 33.0625 L16.7969 33.0625 L16.7969 8.4531 Z"
/><glyph unicode="(" horiz-adv-x="33.30078" d="M23.3906 -21.0469 Q16.1094 -11.8594 11.0859 0.4453 Q6.0625 12.75 6.0625 25.9219 Q6.0625 37.5469 9.8125 48.1875 Q14.2031 60.5469 23.3906 72.7969 L29.6875 72.7969 Q23.7812 62.6406 21.875 58.2969 Q18.8906 51.5625 17.1875 44.2344 Q15.0938 35.1094 15.0938 25.875 Q15.0938 2.3906 29.6875 -21.0469 L23.3906 -21.0469 Z"
/><glyph unicode=" " horiz-adv-x="27.783203" d=""
/><glyph unicode="e" horiz-adv-x="55.615234" d="M42.0938 16.7031 L51.1719 15.5781 Q49.0312 7.625 43.2188 3.2266 Q37.4062 -1.1719 28.375 -1.1719 Q17 -1.1719 10.3281 5.8359 Q3.6562 12.8438 3.6562 25.4844 Q3.6562 38.5781 10.3984 45.8047 Q17.1406 53.0312 27.875 53.0312 Q38.2812 53.0312 44.875 45.9531 Q51.4688 38.875 51.4688 26.0312 Q51.4688 25.25 51.4219 23.6875 L12.75 23.6875 Q13.2344 15.1406 17.5781 10.6016 Q21.9219 6.0625 28.4219 6.0625 Q33.25 6.0625 36.6719 8.6016 Q40.0938 11.1406 42.0938 16.7031 ZM13.2344 30.9062 L42.1875 30.9062 Q41.6094 37.4531 38.875 40.7188 Q34.6719 45.7969 27.9844 45.7969 Q21.9219 45.7969 17.7969 41.75 Q13.6719 37.7031 13.2344 30.9062 Z"
/><glyph unicode="d" horiz-adv-x="55.615234" d="M40.2344 0 L40.2344 6.5469 Q35.2969 -1.1719 25.7344 -1.1719 Q19.5312 -1.1719 14.3281 2.25 Q9.125 5.6719 6.2734 11.7969 Q3.4219 17.9219 3.4219 25.875 Q3.4219 33.6406 6.0078 39.9688 Q8.5938 46.2969 13.7734 49.6641 Q18.9531 53.0312 25.3438 53.0312 Q30.0312 53.0312 33.6953 51.0547 Q37.3594 49.0781 39.6562 45.9062 L39.6562 71.5781 L48.3906 71.5781 L48.3906 0 L40.2344 0 ZM12.4531 25.875 Q12.4531 15.9219 16.6484 10.9922 Q20.8438 6.0625 26.5625 6.0625 Q32.3281 6.0625 36.3516 10.7734 Q40.375 15.4844 40.375 25.1406 Q40.375 35.7969 36.2734 40.7734 Q32.1719 45.75 26.1719 45.75 Q20.3125 45.75 16.3828 40.9688 Q12.4531 36.1875 12.4531 25.875 Z"
/><glyph unicode="u" horiz-adv-x="55.615234" d="M40.5781 0 L40.5781 7.625 Q34.5156 -1.1719 24.125 -1.1719 Q19.5312 -1.1719 15.5547 0.5859 Q11.5781 2.3438 9.6484 5.0078 Q7.7188 7.6719 6.9375 11.5312 Q6.3906 14.1094 6.3906 19.7344 L6.3906 51.8594 L15.1875 51.8594 L15.1875 23.0938 Q15.1875 16.2188 15.7188 13.8125 Q16.5469 10.3594 19.2344 8.375 Q21.9219 6.3906 25.875 6.3906 Q29.8281 6.3906 33.2969 8.4219 Q36.7656 10.4531 38.2109 13.9453 Q39.6562 17.4375 39.6562 24.0781 L39.6562 51.8594 L48.4375 51.8594 L48.4375 0 L40.5781 0 Z"
/><glyph unicode="t" horiz-adv-x="27.783203" d="M25.7812 7.8594 L27.0469 0.0938 Q23.3438 -0.6875 20.4062 -0.6875 Q15.625 -0.6875 12.9922 0.8281 Q10.3594 2.3438 9.2812 4.8125 Q8.2031 7.2812 8.2031 15.1875 L8.2031 45.0156 L1.7656 45.0156 L1.7656 51.8594 L8.2031 51.8594 L8.2031 64.7031 L16.9375 69.9688 L16.9375 51.8594 L25.7812 51.8594 L25.7812 45.0156 L16.9375 45.0156 L16.9375 14.7031 Q16.9375 10.9375 17.4062 9.8672 Q17.875 8.7969 18.9219 8.1562 Q19.9688 7.5156 21.9219 7.5156 Q23.3906 7.5156 25.7812 7.8594 Z"
/><glyph unicode="i" horiz-adv-x="22.216797" d="M6.6406 61.4688 L6.6406 71.5781 L15.4375 71.5781 L15.4375 61.4688 L6.6406 61.4688 ZM6.6406 0 L6.6406 51.8594 L15.4375 51.8594 L15.4375 0 L6.6406 0 Z"
/><glyph unicode="n" horiz-adv-x="55.615234" d="M6.5938 0 L6.5938 51.8594 L14.5 51.8594 L14.5 44.4844 Q20.2188 53.0312 31 53.0312 Q35.6875 53.0312 39.625 51.3438 Q43.5625 49.6562 45.5156 46.9219 Q47.4688 44.1875 48.25 40.4375 Q48.7344 37.9844 48.7344 31.8906 L48.7344 0 L39.9375 0 L39.9375 31.5469 Q39.9375 36.9219 38.9141 39.5781 Q37.8906 42.2344 35.2812 43.8203 Q32.6719 45.4062 29.1562 45.4062 Q23.5312 45.4062 19.4531 41.8438 Q15.375 38.2812 15.375 28.3281 L15.375 0 L6.5938 0 Z"
/><glyph unicode="g" horiz-adv-x="55.615234" d="M4.9844 -4.2969 L13.5312 -5.5625 Q14.0625 -9.5156 16.5 -11.3281 Q19.7812 -13.7656 25.4375 -13.7656 Q31.5469 -13.7656 34.8672 -11.3281 Q38.1875 -8.8906 39.3594 -4.5 Q40.0469 -1.8125 39.9844 6.7812 Q34.2344 0 25.6406 0 Q14.9375 0 9.0781 7.7188 Q3.2188 15.4375 3.2188 26.2188 Q3.2188 33.6406 5.9062 39.9141 Q8.5938 46.1875 13.6953 49.6094 Q18.7969 53.0312 25.6875 53.0312 Q34.8594 53.0312 40.8281 45.6094 L40.8281 51.8594 L48.9219 51.8594 L48.9219 7.0312 Q48.9219 -5.0781 46.4609 -10.1328 Q44 -15.1875 38.6484 -18.1172 Q33.2969 -21.0469 25.4844 -21.0469 Q16.2188 -21.0469 10.5 -16.875 Q4.7812 -12.7031 4.9844 -4.2969 ZM12.25 26.8594 Q12.25 16.6562 16.3047 11.9688 Q20.3594 7.2812 26.4688 7.2812 Q32.5156 7.2812 36.6172 11.9453 Q40.7188 16.6094 40.7188 26.5625 Q40.7188 36.0781 36.5 40.9141 Q32.2812 45.75 26.3125 45.75 Q20.4531 45.75 16.3516 40.9922 Q12.25 36.2344 12.25 26.8594 Z"
/><glyph unicode="a" horiz-adv-x="55.615234" d="M40.4375 6.3906 Q35.5469 2.25 31.0312 0.5391 Q26.5156 -1.1719 21.3438 -1.1719 Q12.7969 -1.1719 8.2031 3 Q3.6094 7.1719 3.6094 13.6719 Q3.6094 17.4844 5.3438 20.6328 Q7.0781 23.7812 9.8906 25.6875 Q12.7031 27.5938 16.2188 28.5625 Q18.7969 29.25 24.0312 29.8906 Q34.6719 31.1562 39.7031 32.9062 Q39.75 34.7188 39.75 35.2031 Q39.75 40.5781 37.25 42.7812 Q33.8906 45.75 27.25 45.75 Q21.0469 45.75 18.0938 43.5781 Q15.1406 41.4062 13.7188 35.8906 L5.125 37.0625 Q6.2969 42.5781 8.9844 45.9688 Q11.6719 49.3594 16.75 51.1953 Q21.8281 53.0312 28.5156 53.0312 Q35.1562 53.0312 39.3047 51.4688 Q43.4531 49.9062 45.4062 47.5391 Q47.3594 45.1719 48.1406 41.5469 Q48.5781 39.3125 48.5781 33.4531 L48.5781 21.7344 Q48.5781 9.4688 49.1406 6.2266 Q49.7031 2.9844 51.375 0 L42.1875 0 Q40.8281 2.7344 40.4375 6.3906 ZM39.7031 26.0312 Q34.9062 24.0781 25.3438 22.7031 Q19.9219 21.9219 17.6797 20.9453 Q15.4375 19.9688 14.2109 18.0938 Q12.9844 16.2188 12.9844 13.9219 Q12.9844 10.4062 15.6484 8.0625 Q18.3125 5.7188 23.4375 5.7188 Q28.5156 5.7188 32.4688 7.9375 Q36.4219 10.1562 38.2812 14.0156 Q39.7031 17 39.7031 22.7969 L39.7031 26.0312 Z"
/><glyph unicode="M" horiz-adv-x="83.30078" d="M7.4219 0 L7.4219 71.5781 L21.6875 71.5781 L38.625 20.9062 Q40.9688 13.8125 42.0469 10.2969 Q43.2656 14.2031 45.8438 21.7812 L62.9844 71.5781 L75.7344 71.5781 L75.7344 0 L66.6094 0 L66.6094 59.9062 L45.7969 0 L37.25 0 L16.5469 60.9375 L16.5469 0 L7.4219 0 Z"
/><glyph unicode="-" horiz-adv-x="33.30078" d="M3.1719 21.4844 L3.1719 30.3281 L30.1719 30.3281 L30.1719 21.4844 L3.1719 21.4844 Z"
/><glyph unicode="3" horiz-adv-x="55.615234" d="M4.2031 18.8906 L12.9844 20.0625 Q14.5 12.5938 18.1406 9.2969 Q21.7812 6 27 6 Q33.2031 6 37.4766 10.2969 Q41.75 14.5938 41.75 20.9531 Q41.75 27 37.7969 30.9297 Q33.8438 34.8594 27.7344 34.8594 Q25.25 34.8594 21.5312 33.8906 L22.5156 41.6094 Q23.3906 41.5 23.9219 41.5 Q29.5469 41.5 34.0391 44.4297 Q38.5312 47.3594 38.5312 53.4688 Q38.5312 58.2969 35.2578 61.4766 Q31.9844 64.6562 26.8125 64.6562 Q21.6875 64.6562 18.2656 61.4297 Q14.8438 58.2031 13.875 51.7656 L5.0781 53.3281 Q6.6875 62.1562 12.3984 67.0156 Q18.1094 71.875 26.6094 71.875 Q32.4688 71.875 37.3984 69.3594 Q42.3281 66.8438 44.9453 62.5 Q47.5625 58.1562 47.5625 53.2656 Q47.5625 48.6406 45.0703 44.8281 Q42.5781 41.0156 37.7031 38.7656 Q44.0469 37.3125 47.5625 32.6953 Q51.0781 28.0781 51.0781 21.1406 Q51.0781 11.7656 44.2422 5.25 Q37.4062 -1.2656 26.9531 -1.2656 Q17.5312 -1.2656 11.3047 4.3516 Q5.0781 9.9688 4.2031 18.8906 Z"
/><glyph unicode="6" horiz-adv-x="55.615234" d="M49.75 54.0469 L41.0156 53.375 Q39.8438 58.5469 37.7031 60.8906 Q34.125 64.6562 28.9062 64.6562 Q24.7031 64.6562 21.5312 62.3125 Q17.3906 59.2812 14.9922 53.4688 Q12.5938 47.6562 12.5 36.9219 Q15.6719 41.75 20.2656 44.0938 Q24.8594 46.4375 29.8906 46.4375 Q38.6719 46.4375 44.8516 39.9688 Q51.0312 33.5 51.0312 23.25 Q51.0312 16.5 48.125 10.7188 Q45.2188 4.9375 40.1406 1.8594 Q35.0625 -1.2188 28.6094 -1.2188 Q17.625 -1.2188 10.6953 6.8594 Q3.7656 14.9375 3.7656 33.5 Q3.7656 54.25 11.4219 63.6719 Q18.1094 71.875 29.4375 71.875 Q37.8906 71.875 43.2891 67.1406 Q48.6875 62.4062 49.75 54.0469 ZM13.875 23.1875 Q13.875 18.6562 15.7969 14.5078 Q17.7188 10.3594 21.1875 8.1797 Q24.6562 6 28.4688 6 Q34.0312 6 38.0391 10.4922 Q42.0469 14.9844 42.0469 22.7031 Q42.0469 30.125 38.0859 34.3984 Q34.125 38.6719 28.125 38.6719 Q22.1719 38.6719 18.0234 34.3984 Q13.875 30.125 13.875 23.1875 Z"
/><glyph unicode="s" horiz-adv-x="50.0" d="M3.0781 15.4844 L11.7656 16.8438 Q12.5 11.625 15.8438 8.8438 Q19.1875 6.0625 25.2031 6.0625 Q31.25 6.0625 34.1797 8.5234 Q37.1094 10.9844 37.1094 14.3125 Q37.1094 17.2812 34.5156 19 Q32.7188 20.1719 25.5312 21.9688 Q15.875 24.4219 12.1406 26.2031 Q8.4062 27.9844 6.4766 31.1328 Q4.5469 34.2812 4.5469 38.0938 Q4.5469 41.5469 6.1328 44.5078 Q7.7188 47.4688 10.4531 49.4219 Q12.5 50.9219 16.0391 51.9766 Q19.5781 53.0312 23.6406 53.0312 Q29.7344 53.0312 34.3516 51.2734 Q38.9688 49.5156 41.1641 46.5078 Q43.3594 43.5 44.1875 38.4844 L35.5938 37.3125 Q35.0156 41.3125 32.2031 43.5547 Q29.3906 45.7969 24.2656 45.7969 Q18.2188 45.7969 15.625 43.7969 Q13.0312 41.7969 13.0312 39.1094 Q13.0312 37.4062 14.1094 36.0312 Q15.1875 34.625 17.4844 33.6875 Q18.7969 33.2031 25.25 31.4531 Q34.5781 28.9531 38.2578 27.3672 Q41.9375 25.7812 44.0391 22.7578 Q46.1406 19.7344 46.1406 15.2344 Q46.1406 10.8438 43.5781 6.9609 Q41.0156 3.0781 36.1797 0.9531 Q31.3438 -1.1719 25.25 -1.1719 Q15.1406 -1.1719 9.8438 3.0312 Q4.5469 7.2344 3.0781 15.4844 Z"
/><glyph unicode="h" horiz-adv-x="55.615234" d="M6.5938 0 L6.5938 71.5781 L15.375 71.5781 L15.375 45.9062 Q21.5312 53.0312 30.9062 53.0312 Q36.6719 53.0312 40.9219 50.7578 Q45.1719 48.4844 47 44.4844 Q48.8281 40.4844 48.8281 32.8594 L48.8281 0 L40.0469 0 L40.0469 32.8594 Q40.0469 39.4531 37.1875 42.4531 Q34.3281 45.4531 29.1094 45.4531 Q25.2031 45.4531 21.7578 43.4297 Q18.3125 41.4062 16.8438 37.9375 Q15.375 34.4688 15.375 28.375 L15.375 0 L6.5938 0 Z"
/><glyph unicode="P" horiz-adv-x="66.69922" d="M7.7188 0 L7.7188 71.5781 L34.7188 71.5781 Q41.8438 71.5781 45.6094 70.9062 Q50.875 70.0156 54.4453 67.5547 Q58.0156 65.0938 60.1875 60.6484 Q62.3594 56.2031 62.3594 50.875 Q62.3594 41.75 56.5469 35.4297 Q50.7344 29.1094 35.5469 29.1094 L17.1875 29.1094 L17.1875 0 L7.7188 0 ZM17.1875 37.5469 L35.6875 37.5469 Q44.875 37.5469 48.7344 40.9688 Q52.5938 44.3906 52.5938 50.5938 Q52.5938 55.0781 50.3203 58.2734 Q48.0469 61.4688 44.3438 62.5 Q41.9375 63.1406 35.5 63.1406 L17.1875 63.1406 L17.1875 37.5469 Z"
/><glyph unicode="/" horiz-adv-x="27.783203" d="M0 -1.2188 L20.75 72.7969 L27.7812 72.7969 L7.0781 -1.2188 L0 -1.2188 Z"
/><glyph unicode="y" horiz-adv-x="50.0" d="M6.2031 -19.9688 L5.2188 -11.7188 Q8.1094 -12.5 10.25 -12.5 Q13.1875 -12.5 14.9453 -11.5234 Q16.7031 -10.5469 17.8281 -8.7969 Q18.6562 -7.4688 20.5156 -2.25 Q20.75 -1.5156 21.2969 -0.0938 L1.6094 51.8594 L11.0781 51.8594 L21.875 21.8281 Q23.9688 16.1094 25.6406 9.8125 Q27.1562 15.875 29.25 21.625 L40.3281 51.8594 L49.125 51.8594 L29.3906 -0.875 Q26.2188 -9.4219 24.4688 -12.6406 Q22.125 -17 19.0938 -19.0234 Q16.0625 -21.0469 11.8594 -21.0469 Q9.3281 -21.0469 6.2031 -19.9688 Z"
/><glyph unicode="c" horiz-adv-x="50.0" d="M40.4375 19 L49.0781 17.875 Q47.6562 8.9375 41.8203 3.8828 Q35.9844 -1.1719 27.4844 -1.1719 Q16.8438 -1.1719 10.375 5.7891 Q3.9062 12.75 3.9062 25.7344 Q3.9062 34.125 6.6875 40.4297 Q9.4688 46.7344 15.1562 49.8828 Q20.8438 53.0312 27.5469 53.0312 Q35.9844 53.0312 41.3594 48.7578 Q46.7344 44.4844 48.25 36.625 L39.7031 35.2969 Q38.4844 40.5312 35.3828 43.1641 Q32.2812 45.7969 27.875 45.7969 Q21.2344 45.7969 17.0859 41.0391 Q12.9375 36.2812 12.9375 25.9844 Q12.9375 15.5312 16.9453 10.7969 Q20.9531 6.0625 27.3906 6.0625 Q32.5625 6.0625 36.0312 9.2344 Q39.5 12.4062 40.4375 19 Z"
/><glyph unicode="q" horiz-adv-x="55.615234" d="M39.6562 -19.875 L39.6562 5.5156 Q37.5938 2.6406 33.9062 0.7344 Q30.2188 -1.1719 26.0781 -1.1719 Q16.8438 -1.1719 10.1797 6.2031 Q3.5156 13.5781 3.5156 26.4219 Q3.5156 34.2344 6.2266 40.4297 Q8.9375 46.625 14.0859 49.8281 Q19.2344 53.0312 25.3906 53.0312 Q35.0156 53.0312 40.5312 44.9219 L40.5312 51.8594 L48.4375 51.8594 L48.4375 -19.875 L39.6562 -19.875 ZM12.5469 26.0781 Q12.5469 16.0625 16.75 11.0625 Q20.9531 6.0625 26.8125 6.0625 Q32.4219 6.0625 36.4766 10.8203 Q40.5312 15.5781 40.5312 25.2969 Q40.5312 35.6406 36.2578 40.8672 Q31.9844 46.0938 26.2188 46.0938 Q20.5156 46.0938 16.5312 41.2344 Q12.5469 36.375 12.5469 26.0781 Z"
/><glyph unicode="r" horiz-adv-x="33.30078" d="M6.5 0 L6.5 51.8594 L14.4062 51.8594 L14.4062 44 Q17.4375 49.5156 20 51.2734 Q22.5625 53.0312 25.6406 53.0312 Q30.0781 53.0312 34.6719 50.2031 L31.6406 42.0469 Q28.4219 43.9531 25.2031 43.9531 Q22.3125 43.9531 20.0156 42.2188 Q17.7188 40.4844 16.75 37.4062 Q15.2812 32.7188 15.2812 27.1562 L15.2812 0 L6.5 0 Z"
/><glyph unicode="F" horiz-adv-x="61.083984" d="M8.2031 0 L8.2031 71.5781 L56.5 71.5781 L56.5 63.1406 L17.6719 63.1406 L17.6719 40.9688 L51.2656 40.9688 L51.2656 32.5156 L17.6719 32.5156 L17.6719 0 L8.2031 0 Z"
/></font
><font horiz-adv-x="75.0" id="font2"
><font-face ascent="100.53711" descent="21.972656" units-per-em="100" style="font-style:normal; font-family:SansSerif; font-weight:bold;"
/><missing-glyph horiz-adv-x="75.0" d="M12.5 0 L12.5 62.5 L62.5 62.5 L62.5 0 L12.5 0 ZM14.0625 1.5625 L60.9375 1.5625 L60.9375 60.9375 L14.0625 60.9375 L14.0625 1.5625 Z"
/><glyph unicode="s" horiz-adv-x="55.615234" d="M2.3438 14.7969 L16.1094 16.8906 Q17 12.8906 19.6797 10.8125 Q22.3594 8.7344 27.2031 8.7344 Q32.5156 8.7344 35.2031 10.6875 Q37.0156 12.0625 37.0156 14.3594 Q37.0156 15.9219 36.0312 16.9375 Q35.0156 17.9219 31.4531 18.75 Q14.8438 22.4062 10.4062 25.4375 Q4.25 29.6406 4.25 37.1094 Q4.25 43.8438 9.5703 48.4375 Q14.8906 53.0312 26.0781 53.0312 Q36.7188 53.0312 41.8984 49.5625 Q47.0781 46.0938 49.0312 39.3125 L36.0781 36.9219 Q35.25 39.9375 32.9297 41.5547 Q30.6094 43.1719 26.3125 43.1719 Q20.9062 43.1719 18.5625 41.6562 Q17 40.5781 17 38.875 Q17 37.4062 18.3594 36.375 Q20.2188 35.0156 31.1797 32.5234 Q42.1406 30.0312 46.4844 26.4219 Q50.7812 22.75 50.7812 16.2188 Q50.7812 9.0781 44.8281 3.9531 Q38.875 -1.1719 27.2031 -1.1719 Q16.6094 -1.1719 10.4297 3.125 Q4.25 7.4219 2.3438 14.7969 Z"
/><glyph unicode="h" horiz-adv-x="61.083984" d="M20.8438 71.5781 L20.8438 45.2656 Q27.4844 53.0312 36.7188 53.0312 Q41.4531 53.0312 45.2656 51.2734 Q49.0781 49.5156 51.0078 46.7812 Q52.9375 44.0469 53.6406 40.7266 Q54.3438 37.4062 54.3438 30.4219 L54.3438 0 L40.625 0 L40.625 27.3906 Q40.625 35.5469 39.8438 37.7422 Q39.0625 39.9375 37.0859 41.2344 Q35.1094 42.5312 32.125 42.5312 Q28.7188 42.5312 26.0312 40.8672 Q23.3438 39.2031 22.0938 35.8594 Q20.8438 32.5156 20.8438 25.9844 L20.8438 0 L7.125 0 L7.125 71.5781 L20.8438 71.5781 Z"
/><glyph unicode="p" horiz-adv-x="61.083984" d="M6.7812 51.8594 L19.5781 51.8594 L19.5781 44.2344 Q22.0781 48.1406 26.3203 50.5859 Q30.5625 53.0312 35.75 53.0312 Q44.7812 53.0312 51.0781 45.9531 Q57.375 38.875 57.375 26.2188 Q57.375 13.2344 51.0234 6.0312 Q44.6719 -1.1719 35.6406 -1.1719 Q31.3438 -1.1719 27.8516 0.5391 Q24.3594 2.25 20.5156 6.3906 L20.5156 -19.7344 L6.7812 -19.7344 L6.7812 51.8594 ZM20.3594 26.8125 Q20.3594 18.0625 23.8281 13.8906 Q27.2969 9.7188 32.2812 9.7188 Q37.0625 9.7188 40.2344 13.5547 Q43.4062 17.3906 43.4062 26.125 Q43.4062 34.2812 40.1328 38.2344 Q36.8594 42.1875 32.0312 42.1875 Q27 42.1875 23.6797 38.3047 Q20.3594 34.4219 20.3594 26.8125 Z"
/><glyph unicode="n" horiz-adv-x="61.083984" d="M54.3438 0 L40.625 0 L40.625 26.4688 Q40.625 34.8594 39.75 37.3281 Q38.875 39.7969 36.8906 41.1641 Q34.9062 42.5312 32.125 42.5312 Q28.5625 42.5312 25.7344 40.5781 Q22.9062 38.625 21.8516 35.3984 Q20.7969 32.1719 20.7969 23.4844 L20.7969 0 L7.0781 0 L7.0781 51.8594 L19.8281 51.8594 L19.8281 44.2344 Q26.6094 53.0312 36.9219 53.0312 Q41.4531 53.0312 45.2109 51.3906 Q48.9688 49.75 50.8984 47.2109 Q52.8281 44.6719 53.5859 41.4531 Q54.3438 38.2344 54.3438 32.2344 L54.3438 0 Z"
/><glyph unicode="v" horiz-adv-x="55.615234" d="M21.4375 0 L0.5312 51.8594 L14.9375 51.8594 L24.7031 25.3906 L27.5469 16.5469 Q28.6562 19.9219 28.9531 21 Q29.6406 23.1875 30.4219 25.3906 L40.2812 51.8594 L54.3906 51.8594 L33.7969 0 L21.4375 0 Z"
/><glyph unicode="a" horiz-adv-x="55.615234" d="M17.4375 36.0312 L4.9844 38.2812 Q7.0781 45.7969 12.2031 49.4141 Q17.3281 53.0312 27.4375 53.0312 Q36.625 53.0312 41.1172 50.8594 Q45.6094 48.6875 47.4375 45.3438 Q49.2656 42 49.2656 33.0625 L49.125 17.0469 Q49.125 10.2031 49.7812 6.9609 Q50.4375 3.7188 52.25 0 L38.6719 0 Q38.1406 1.375 37.3594 4.0469 Q37.0156 5.2812 36.8594 5.6719 Q33.3438 2.25 29.3438 0.5391 Q25.3438 -1.1719 20.7969 -1.1719 Q12.7969 -1.1719 8.1797 3.1719 Q3.5625 7.5156 3.5625 14.1562 Q3.5625 18.5625 5.6641 22 Q7.7656 25.4375 11.5469 27.2734 Q15.3281 29.1094 22.4688 30.4688 Q32.0781 32.2812 35.7969 33.8438 L35.7969 35.2031 Q35.7969 39.1562 33.8438 40.8438 Q31.8906 42.5312 26.4688 42.5312 Q22.7969 42.5312 20.75 41.0938 Q18.7031 39.6562 17.4375 36.0312 ZM35.7969 24.9062 Q33.1562 24.0312 27.4453 22.8047 Q21.7344 21.5781 19.9688 20.4062 Q17.2812 18.5 17.2812 15.5781 Q17.2812 12.7031 19.4297 10.6016 Q21.5781 8.5 24.9062 8.5 Q28.6094 8.5 31.9844 10.9375 Q34.4688 12.7969 35.25 15.4844 Q35.7969 17.2344 35.7969 22.1719 L35.7969 24.9062 Z"
/><glyph unicode="u" horiz-adv-x="61.083984" d="M41.3125 0 L41.3125 7.7656 Q38.4844 3.6094 33.8672 1.2188 Q29.25 -1.1719 24.125 -1.1719 Q18.8906 -1.1719 14.7422 1.125 Q10.5938 3.4219 8.7422 7.5703 Q6.8906 11.7188 6.8906 19.0469 L6.8906 51.8594 L20.6094 51.8594 L20.6094 28.0312 Q20.6094 17.0938 21.3672 14.625 Q22.125 12.1562 24.125 10.7188 Q26.125 9.2812 29.2031 9.2812 Q32.7188 9.2812 35.5 11.2109 Q38.2812 13.1406 39.3047 15.9922 Q40.3281 18.8438 40.3281 29.9844 L40.3281 51.8594 L54.0469 51.8594 L54.0469 0 L41.3125 0 Z"
/><glyph unicode="t" horiz-adv-x="33.30078" d="M30.9531 51.8594 L30.9531 40.9219 L21.5781 40.9219 L21.5781 20.0156 Q21.5781 13.6719 21.8516 12.625 Q22.125 11.5781 23.0781 10.8906 Q24.0312 10.2031 25.3906 10.2031 Q27.2969 10.2031 30.9062 11.5312 L32.0781 0.875 Q27.2969 -1.1719 21.2344 -1.1719 Q17.5312 -1.1719 14.5547 0.0703 Q11.5781 1.3125 10.1875 3.2969 Q8.7969 5.2812 8.25 8.6406 Q7.8125 11.0312 7.8125 18.3125 L7.8125 40.9219 L1.5156 40.9219 L1.5156 51.8594 L7.8125 51.8594 L7.8125 62.1562 L21.5781 70.1719 L21.5781 51.8594 L30.9531 51.8594 Z"
/><glyph unicode="r" horiz-adv-x="38.916016" d="M20.3125 0 L6.5938 0 L6.5938 51.8594 L19.3438 51.8594 L19.3438 44.4844 Q22.6094 49.7031 25.2188 51.3672 Q27.8281 53.0312 31.1562 53.0312 Q35.8438 53.0312 40.1875 50.4375 L35.9375 38.4844 Q32.4688 40.7188 29.5 40.7188 Q26.6094 40.7188 24.6094 39.1328 Q22.6094 37.5469 21.4609 33.3984 Q20.3125 29.25 20.3125 16.0156 L20.3125 0 Z"
/><glyph unicode="c" horiz-adv-x="55.615234" d="M52.3906 36.5312 L38.875 34.0781 Q38.1875 38.1406 35.7656 40.1875 Q33.3438 42.2344 29.5 42.2344 Q24.3594 42.2344 21.3125 38.6953 Q18.2656 35.1562 18.2656 26.8594 Q18.2656 17.625 21.3672 13.8203 Q24.4688 10.0156 29.6875 10.0156 Q33.5938 10.0156 36.0859 12.2344 Q38.5781 14.4531 39.5938 19.875 L53.0781 17.5781 Q50.9844 8.2969 45.0234 3.5625 Q39.0625 -1.1719 29.0469 -1.1719 Q17.6719 -1.1719 10.9141 6.0078 Q4.1562 13.1875 4.1562 25.875 Q4.1562 38.7188 10.9375 45.875 Q17.7188 53.0312 29.2969 53.0312 Q38.7656 53.0312 44.3594 48.9531 Q49.9531 44.875 52.3906 36.5312 Z"
/><glyph unicode=" " horiz-adv-x="27.783203" d=""
/><glyph unicode="e" horiz-adv-x="55.615234" d="M37.2031 16.5 L50.875 14.2031 Q48.25 6.6875 42.5547 2.7578 Q36.8594 -1.1719 28.3281 -1.1719 Q14.7969 -1.1719 8.2969 7.6719 Q3.1719 14.75 3.1719 25.5312 Q3.1719 38.4219 9.9141 45.7266 Q16.6562 53.0312 26.9531 53.0312 Q38.5312 53.0312 45.2188 45.3906 Q51.9062 37.75 51.6094 21.9688 L17.2344 21.9688 Q17.3906 15.875 20.5625 12.4766 Q23.7344 9.0781 28.4688 9.0781 Q31.6875 9.0781 33.8828 10.8359 Q36.0781 12.5938 37.2031 16.5 ZM37.9844 30.375 Q37.8438 36.3281 34.9141 39.4297 Q31.9844 42.5312 27.7812 42.5312 Q23.2969 42.5312 20.3594 39.2656 Q17.4375 35.9844 17.4844 30.375 L37.9844 30.375 Z"
/><glyph unicode="d" horiz-adv-x="61.083984" d="M54.7344 0 L42 0 L42 7.625 Q38.8125 3.1719 34.4922 1 Q30.1719 -1.1719 25.7812 -1.1719 Q16.8438 -1.1719 10.4766 6.0312 Q4.1094 13.2344 4.1094 26.125 Q4.1094 39.3125 10.3047 46.1719 Q16.5 53.0312 25.9844 53.0312 Q34.6719 53.0312 41.0156 45.7969 L41.0156 71.5781 L54.7344 71.5781 L54.7344 0 ZM18.1094 27.0469 Q18.1094 18.75 20.4062 15.0469 Q23.7344 9.6719 29.6875 9.6719 Q34.4219 9.6719 37.7422 13.6953 Q41.0625 17.7188 41.0625 25.7344 Q41.0625 34.6719 37.8438 38.6016 Q34.625 42.5312 29.5938 42.5312 Q24.7031 42.5312 21.4062 38.6484 Q18.1094 34.7656 18.1094 27.0469 Z"
/><glyph unicode="o" horiz-adv-x="61.083984" d="M4 26.6562 Q4 33.5 7.375 39.8984 Q10.75 46.2969 16.9219 49.6641 Q23.0938 53.0312 30.7188 53.0312 Q42.4844 53.0312 50 45.3906 Q57.5156 37.75 57.5156 26.0781 Q57.5156 14.3125 49.9219 6.5703 Q42.3281 -1.1719 30.8125 -1.1719 Q23.6875 -1.1719 17.2188 2.0547 Q10.75 5.2812 7.375 11.5 Q4 17.7188 4 26.6562 ZM18.0625 25.9219 Q18.0625 18.2188 21.7266 14.1172 Q25.3906 10.0156 30.7656 10.0156 Q36.1406 10.0156 39.7734 14.1172 Q43.4062 18.2188 43.4062 26.0312 Q43.4062 33.6406 39.7734 37.7422 Q36.1406 41.8438 30.7656 41.8438 Q25.3906 41.8438 21.7266 37.7422 Q18.0625 33.6406 18.0625 25.9219 Z"
/><glyph unicode="B" horiz-adv-x="72.2168" d="M7.3281 71.5781 L35.9375 71.5781 Q44.4375 71.5781 48.6094 70.875 Q52.7812 70.1719 56.0781 67.9219 Q59.375 65.6719 61.5703 61.9375 Q63.7656 58.2031 63.7656 53.5625 Q63.7656 48.5312 61.0547 44.3359 Q58.3438 40.1406 53.7188 38.0312 Q60.25 36.1406 63.7656 31.5469 Q67.2812 26.9531 67.2812 20.75 Q67.2812 15.875 65.0156 11.2578 Q62.75 6.6406 58.8203 3.8828 Q54.8906 1.125 49.125 0.4844 Q45.5156 0.0938 31.6875 0 L7.3281 0 L7.3281 71.5781 ZM21.7812 59.6719 L21.7812 43.1094 L31.25 43.1094 Q39.7031 43.1094 41.75 43.3594 Q45.4531 43.7969 47.5781 45.9219 Q49.7031 48.0469 49.7031 51.5156 Q49.7031 54.8281 47.875 56.9062 Q46.0469 58.9844 42.4375 59.4219 Q40.2812 59.6719 30.0781 59.6719 L21.7812 59.6719 ZM21.7812 31.2031 L21.7812 12.0625 L35.1562 12.0625 Q42.9688 12.0625 45.0625 12.5 Q48.2969 13.0938 50.3203 15.3594 Q52.3438 17.625 52.3438 21.4375 Q52.3438 24.6562 50.7812 26.9062 Q49.2188 29.1562 46.2656 30.1797 Q43.3125 31.2031 33.4531 31.2031 L21.7812 31.2031 Z"
/></font
></defs
><g style="fill:white; stroke:white;"
><rect x="0" y="0" width="560" style="clip-path:url(#clipPath1); stroke:none;" height="420"
/></g
><g style="fill:white; text-rendering:optimizeSpeed; color-rendering:optimizeSpeed; image-rendering:optimizeSpeed; shape-rendering:crispEdges; stroke:white; color-interpolation:sRGB;"
><rect x="0" width="560" height="420" y="0" style="stroke:none;"
/><path style="stroke:none;" d="M85 216 L507 216 L507 51 L85 51 Z"
/></g
><g style="fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(102,102,102); color-interpolation:linearRGB; stroke-width:0.6667;"
><line y2="216" style="fill:none;" x1="85" x2="507" y1="216"
/><line y2="51" style="fill:none;" x1="85" x2="507" y1="51"
/><line y2="211.78" style="fill:none;" x1="85" x2="85" y1="216"
/><line y2="211.78" style="fill:none;" x1="190.5" x2="190.5" y1="216"
/><line y2="211.78" style="fill:none;" x1="296" x2="296" y1="216"
/><line y2="211.78" style="fill:none;" x1="401.5" x2="401.5" y1="216"
/><line y2="211.78" style="fill:none;" x1="507" x2="507" y1="216"
/><line y2="55.22" style="fill:none;" x1="85" x2="85" y1="51"
/><line y2="55.22" style="fill:none;" x1="190.5" x2="190.5" y1="51"
/><line y2="55.22" style="fill:none;" x1="296" x2="296" y1="51"
/><line y2="55.22" style="fill:none;" x1="401.5" x2="401.5" y1="51"
/><line y2="55.22" style="fill:none;" x1="507" x2="507" y1="51"
/><line y2="213.89" style="fill:none;" x1="85" x2="85" y1="216"
/><line y2="213.89" style="fill:none;" x1="116.7587" x2="116.7587" y1="216"
/><line y2="213.89" style="fill:none;" x1="135.3363" x2="135.3363" y1="216"
/><line y2="213.89" style="fill:none;" x1="148.5173" x2="148.5173" y1="216"
/><line y2="213.89" style="fill:none;" x1="158.7413" x2="158.7413" y1="216"
/><line y2="213.89" style="fill:none;" x1="167.095" x2="167.095" y1="216"
/><line y2="213.89" style="fill:none;" x1="174.1578" x2="174.1578" y1="216"
/><line y2="213.89" style="fill:none;" x1="180.276" x2="180.276" y1="216"
/><line y2="213.89" style="fill:none;" x1="185.6726" x2="185.6726" y1="216"
/><line y2="213.89" style="fill:none;" x1="190.5" x2="190.5" y1="216"
/><line y2="213.89" style="fill:none;" x1="222.2587" x2="222.2587" y1="216"
/><line y2="213.89" style="fill:none;" x1="240.8363" x2="240.8363" y1="216"
/><line y2="213.89" style="fill:none;" x1="254.0173" x2="254.0173" y1="216"
/><line y2="213.89" style="fill:none;" x1="264.2413" x2="264.2413" y1="216"
/><line y2="213.89" style="fill:none;" x1="272.595" x2="272.595" y1="216"
/><line y2="213.89" style="fill:none;" x1="279.6578" x2="279.6578" y1="216"
/><line y2="213.89" style="fill:none;" x1="285.776" x2="285.776" y1="216"
/><line y2="213.89" style="fill:none;" x1="291.1726" x2="291.1726" y1="216"
/><line y2="213.89" style="fill:none;" x1="296" x2="296" y1="216"
/><line y2="213.89" style="fill:none;" x1="327.7587" x2="327.7587" y1="216"
/><line y2="213.89" style="fill:none;" x1="346.3363" x2="346.3363" y1="216"
/><line y2="213.89" style="fill:none;" x1="359.5173" x2="359.5173" y1="216"
/><line y2="213.89" style="fill:none;" x1="369.7413" x2="369.7413" y1="216"
/><line y2="213.89" style="fill:none;" x1="378.095" x2="378.095" y1="216"
/><line y2="213.89" style="fill:none;" x1="385.1578" x2="385.1578" y1="216"
/><line y2="213.89" style="fill:none;" x1="391.276" x2="391.276" y1="216"
/><line y2="213.89" style="fill:none;" x1="396.6726" x2="396.6726" y1="216"
/><line y2="213.89" style="fill:none;" x1="401.5" x2="401.5" y1="216"
/><line y2="213.89" style="fill:none;" x1="433.2587" x2="433.2587" y1="216"
/><line y2="213.89" style="fill:none;" x1="451.8363" x2="451.8363" y1="216"
/><line y2="213.89" style="fill:none;" x1="465.0173" x2="465.0173" y1="216"
/><line y2="213.89" style="fill:none;" x1="475.2413" x2="475.2413" y1="216"
/><line y2="213.89" style="fill:none;" x1="483.595" x2="483.595" y1="216"
/><line y2="213.89" style="fill:none;" x1="490.6578" x2="490.6578" y1="216"
/><line y2="213.89" style="fill:none;" x1="496.776" x2="496.776" y1="216"
/><line y2="213.89" style="fill:none;" x1="502.1726" x2="502.1726" y1="216"
/><line y2="213.89" style="fill:none;" x1="507" x2="507" y1="216"
/><line y2="53.11" style="fill:none;" x1="85" x2="85" y1="51"
/><line y2="53.11" style="fill:none;" x1="116.7587" x2="116.7587" y1="51"
/><line y2="53.11" style="fill:none;" x1="135.3363" x2="135.3363" y1="51"
/><line y2="53.11" style="fill:none;" x1="148.5173" x2="148.5173" y1="51"
/><line y2="53.11" style="fill:none;" x1="158.7413" x2="158.7413" y1="51"
/><line y2="53.11" style="fill:none;" x1="167.095" x2="167.095" y1="51"
/><line y2="53.11" style="fill:none;" x1="174.1578" x2="174.1578" y1="51"
/><line y2="53.11" style="fill:none;" x1="180.276" x2="180.276" y1="51"
/><line y2="53.11" style="fill:none;" x1="185.6726" x2="185.6726" y1="51"
/><line y2="53.11" style="fill:none;" x1="190.5" x2="190.5" y1="51"
/><line y2="53.11" style="fill:none;" x1="222.2587" x2="222.2587" y1="51"
/><line y2="53.11" style="fill:none;" x1="240.8363" x2="240.8363" y1="51"
/><line y2="53.11" style="fill:none;" x1="254.0173" x2="254.0173" y1="51"
/><line y2="53.11" style="fill:none;" x1="264.2413" x2="264.2413" y1="51"
/><line y2="53.11" style="fill:none;" x1="272.595" x2="272.595" y1="51"
/><line y2="53.11" style="fill:none;" x1="279.6578" x2="279.6578" y1="51"
/><line y2="53.11" style="fill:none;" x1="285.776" x2="285.776" y1="51"
/><line y2="53.11" style="fill:none;" x1="291.1726" x2="291.1726" y1="51"
/><line y2="53.11" style="fill:none;" x1="296" x2="296" y1="51"
/><line y2="53.11" style="fill:none;" x1="327.7587" x2="327.7587" y1="51"
/><line y2="53.11" style="fill:none;" x1="346.3363" x2="346.3363" y1="51"
/><line y2="53.11" style="fill:none;" x1="359.5173" x2="359.5173" y1="51"
/><line y2="53.11" style="fill:none;" x1="369.7413" x2="369.7413" y1="51"
/><line y2="53.11" style="fill:none;" x1="378.095" x2="378.095" y1="51"
/><line y2="53.11" style="fill:none;" x1="385.1578" x2="385.1578" y1="51"
/><line y2="53.11" style="fill:none;" x1="391.276" x2="391.276" y1="51"
/><line y2="53.11" style="fill:none;" x1="396.6726" x2="396.6726" y1="51"
/><line y2="53.11" style="fill:none;" x1="401.5" x2="401.5" y1="51"
/><line y2="53.11" style="fill:none;" x1="433.2587" x2="433.2587" y1="51"
/><line y2="53.11" style="fill:none;" x1="451.8363" x2="451.8363" y1="51"
/><line y2="53.11" style="fill:none;" x1="465.0173" x2="465.0173" y1="51"
/><line y2="53.11" style="fill:none;" x1="475.2413" x2="475.2413" y1="51"
/><line y2="53.11" style="fill:none;" x1="483.595" x2="483.595" y1="51"
/><line y2="53.11" style="fill:none;" x1="490.6578" x2="490.6578" y1="51"
/><line y2="53.11" style="fill:none;" x1="496.776" x2="496.776" y1="51"
/><line y2="53.11" style="fill:none;" x1="502.1726" x2="502.1726" y1="51"
/><line y2="53.11" style="fill:none;" x1="507" x2="507" y1="51"
/><line y2="51" style="fill:none;" x1="85" x2="85" y1="216"
/><line y2="51" style="fill:none;" x1="507" x2="507" y1="216"
/><line y2="216" style="fill:none;" x1="85" x2="89.22" y1="216"
/><line y2="174.75" style="fill:none;" x1="85" x2="89.22" y1="174.75"
/><line y2="133.5" style="fill:none;" x1="85" x2="89.22" y1="133.5"
/><line y2="92.25" style="fill:none;" x1="85" x2="89.22" y1="92.25"
/><line y2="51" style="fill:none;" x1="85" x2="89.22" y1="51"
/><line y2="216" style="fill:none;" x1="507" x2="502.78" y1="216"
/><line y2="174.75" style="fill:none;" x1="507" x2="502.78" y1="174.75"
/><line y2="133.5" style="fill:none;" x1="507" x2="502.78" y1="133.5"
/><line y2="92.25" style="fill:none;" x1="507" x2="502.78" y1="92.25"
/><line y2="51" style="fill:none;" x1="507" x2="502.78" y1="51"
/></g
><g transform="translate(79.6667,216)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-8" xml:space="preserve" y="5.5" style="stroke:none;"
>0</text
></g
><g transform="translate(79.6667,174.75)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-8" xml:space="preserve" y="5.5" style="stroke:none;"
>5</text
></g
><g transform="translate(79.6667,133.5)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-15" xml:space="preserve" y="5.5" style="stroke:none;"
>10</text
></g
><g transform="translate(79.6667,92.25)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-15" xml:space="preserve" y="5.5" style="stroke:none;"
>15</text
></g
><g transform="translate(79.6667,51)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-15" xml:space="preserve" y="5.5" style="stroke:none;"
>20</text
></g
><g transform="translate(60.6667,133.4999) rotate(-90)" style="font-size:14.6667px; text-rendering:geometricPrecision; color-rendering:optimizeQuality; image-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB;"
><text x="-50.5" xml:space="preserve" y="-4" style="stroke:none;"
>Magnitude (dB)</text
></g
><g style="stroke-linecap:butt; fill:rgb(0,114,189); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(0,114,189); color-interpolation:linearRGB; stroke-width:0.6667;"
><path d="M84.9497 215.9827 L87.7713 215.9806 L94.9095 215.9736 L102.0477 215.9639 L109.1859 215.9507 L116.3241 215.9327 L123.4622 215.9081 L130.6004 215.8746 L137.7386 215.8288 L144.8768 215.7664 L152.015 215.6815 L159.1532 215.5657 L166.2914 215.4083 L173.4296 215.1944 L180.5678 214.9044 L187.706 214.5123 L194.8442 213.9838 L201.9824 213.2746 L209.1206 212.3288 L216.2588 211.0772 L223.397 209.4371 L230.5352 207.3149 L237.6734 204.6106 L244.8116 201.2269 L251.9498 197.0814 L259.088 192.1193 L266.2261 186.3245 L273.3643 179.7249 L280.5025 172.3902 L287.6407 164.4242 L294.7789 155.9539 L301.9171 147.1188 L309.0553 138.064 L312.6244 133.5 L316.1935 128.936 L323.3317 119.8812 L330.4699 111.0461 L337.6081 102.5758 L344.7463 94.6098 L351.8845 87.2751 L359.0227 80.6755 L366.1609 74.8807 L373.299 69.9186 L380.4373 65.7731 L387.5755 62.3894 L394.7137 59.6851 L401.8518 57.5629 L408.99 55.9228 L416.1282 54.6712 L423.2664 53.7254 L430.4046 53.0162 L437.5428 52.4877 L444.681 52.0956 L451.8192 51.8056 L458.9574 51.5917 L466.0956 51.4343 L473.2338 51.3185 L480.372 51.2335 L487.5102 51.1712 L494.6484 51.1254 L501.7866 51.0919 L507.0503 51.0738" style="fill:none; fill-rule:evenodd;"
/></g
><g style="fill:white; text-rendering:optimizeSpeed; color-rendering:optimizeSpeed; image-rendering:optimizeSpeed; shape-rendering:crispEdges; stroke:white; color-interpolation:sRGB;"
><path style="stroke:none;" d="M85 374 L507 374 L507 228 L85 228 Z"
/></g
><g style="fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(102,102,102); color-interpolation:linearRGB; stroke-width:0.6667;"
><line y2="374" style="fill:none;" x1="85" x2="507" y1="374"
/><line y2="228" style="fill:none;" x1="85" x2="507" y1="228"
/><line y2="369.78" style="fill:none;" x1="85" x2="85" y1="374"
/><line y2="369.78" style="fill:none;" x1="190.5" x2="190.5" y1="374"
/><line y2="369.78" style="fill:none;" x1="296" x2="296" y1="374"
/><line y2="369.78" style="fill:none;" x1="401.5" x2="401.5" y1="374"
/><line y2="369.78" style="fill:none;" x1="507" x2="507" y1="374"
/><line y2="232.22" style="fill:none;" x1="85" x2="85" y1="228"
/><line y2="232.22" style="fill:none;" x1="190.5" x2="190.5" y1="228"
/><line y2="232.22" style="fill:none;" x1="296" x2="296" y1="228"
/><line y2="232.22" style="fill:none;" x1="401.5" x2="401.5" y1="228"
/><line y2="232.22" style="fill:none;" x1="507" x2="507" y1="228"
/><line y2="371.89" style="fill:none;" x1="85" x2="85" y1="374"
/><line y2="371.89" style="fill:none;" x1="116.7587" x2="116.7587" y1="374"
/><line y2="371.89" style="fill:none;" x1="135.3363" x2="135.3363" y1="374"
/><line y2="371.89" style="fill:none;" x1="148.5173" x2="148.5173" y1="374"
/><line y2="371.89" style="fill:none;" x1="158.7413" x2="158.7413" y1="374"
/><line y2="371.89" style="fill:none;" x1="167.095" x2="167.095" y1="374"
/><line y2="371.89" style="fill:none;" x1="174.1578" x2="174.1578" y1="374"
/><line y2="371.89" style="fill:none;" x1="180.276" x2="180.276" y1="374"
/><line y2="371.89" style="fill:none;" x1="185.6726" x2="185.6726" y1="374"
/><line y2="371.89" style="fill:none;" x1="190.5" x2="190.5" y1="374"
/><line y2="371.89" style="fill:none;" x1="222.2587" x2="222.2587" y1="374"
/><line y2="371.89" style="fill:none;" x1="240.8363" x2="240.8363" y1="374"
/><line y2="371.89" style="fill:none;" x1="254.0173" x2="254.0173" y1="374"
/><line y2="371.89" style="fill:none;" x1="264.2413" x2="264.2413" y1="374"
/><line y2="371.89" style="fill:none;" x1="272.595" x2="272.595" y1="374"
/><line y2="371.89" style="fill:none;" x1="279.6578" x2="279.6578" y1="374"
/><line y2="371.89" style="fill:none;" x1="285.776" x2="285.776" y1="374"
/><line y2="371.89" style="fill:none;" x1="291.1726" x2="291.1726" y1="374"
/><line y2="371.89" style="fill:none;" x1="296" x2="296" y1="374"
/><line y2="371.89" style="fill:none;" x1="327.7587" x2="327.7587" y1="374"
/><line y2="371.89" style="fill:none;" x1="346.3363" x2="346.3363" y1="374"
/><line y2="371.89" style="fill:none;" x1="359.5173" x2="359.5173" y1="374"
/><line y2="371.89" style="fill:none;" x1="369.7413" x2="369.7413" y1="374"
/><line y2="371.89" style="fill:none;" x1="378.095" x2="378.095" y1="374"
/><line y2="371.89" style="fill:none;" x1="385.1578" x2="385.1578" y1="374"
/><line y2="371.89" style="fill:none;" x1="391.276" x2="391.276" y1="374"
/><line y2="371.89" style="fill:none;" x1="396.6726" x2="396.6726" y1="374"
/><line y2="371.89" style="fill:none;" x1="401.5" x2="401.5" y1="374"
/><line y2="371.89" style="fill:none;" x1="433.2587" x2="433.2587" y1="374"
/><line y2="371.89" style="fill:none;" x1="451.8363" x2="451.8363" y1="374"
/><line y2="371.89" style="fill:none;" x1="465.0173" x2="465.0173" y1="374"
/><line y2="371.89" style="fill:none;" x1="475.2413" x2="475.2413" y1="374"
/><line y2="371.89" style="fill:none;" x1="483.595" x2="483.595" y1="374"
/><line y2="371.89" style="fill:none;" x1="490.6578" x2="490.6578" y1="374"
/><line y2="371.89" style="fill:none;" x1="496.776" x2="496.776" y1="374"
/><line y2="371.89" style="fill:none;" x1="502.1726" x2="502.1726" y1="374"
/><line y2="371.89" style="fill:none;" x1="507" x2="507" y1="374"
/><line y2="230.11" style="fill:none;" x1="85" x2="85" y1="228"
/><line y2="230.11" style="fill:none;" x1="116.7587" x2="116.7587" y1="228"
/><line y2="230.11" style="fill:none;" x1="135.3363" x2="135.3363" y1="228"
/><line y2="230.11" style="fill:none;" x1="148.5173" x2="148.5173" y1="228"
/><line y2="230.11" style="fill:none;" x1="158.7413" x2="158.7413" y1="228"
/><line y2="230.11" style="fill:none;" x1="167.095" x2="167.095" y1="228"
/><line y2="230.11" style="fill:none;" x1="174.1578" x2="174.1578" y1="228"
/><line y2="230.11" style="fill:none;" x1="180.276" x2="180.276" y1="228"
/><line y2="230.11" style="fill:none;" x1="185.6726" x2="185.6726" y1="228"
/><line y2="230.11" style="fill:none;" x1="190.5" x2="190.5" y1="228"
/><line y2="230.11" style="fill:none;" x1="222.2587" x2="222.2587" y1="228"
/><line y2="230.11" style="fill:none;" x1="240.8363" x2="240.8363" y1="228"
/><line y2="230.11" style="fill:none;" x1="254.0173" x2="254.0173" y1="228"
/><line y2="230.11" style="fill:none;" x1="264.2413" x2="264.2413" y1="228"
/><line y2="230.11" style="fill:none;" x1="272.595" x2="272.595" y1="228"
/><line y2="230.11" style="fill:none;" x1="279.6578" x2="279.6578" y1="228"
/><line y2="230.11" style="fill:none;" x1="285.776" x2="285.776" y1="228"
/><line y2="230.11" style="fill:none;" x1="291.1726" x2="291.1726" y1="228"
/><line y2="230.11" style="fill:none;" x1="296" x2="296" y1="228"
/><line y2="230.11" style="fill:none;" x1="327.7587" x2="327.7587" y1="228"
/><line y2="230.11" style="fill:none;" x1="346.3363" x2="346.3363" y1="228"
/><line y2="230.11" style="fill:none;" x1="359.5173" x2="359.5173" y1="228"
/><line y2="230.11" style="fill:none;" x1="369.7413" x2="369.7413" y1="228"
/><line y2="230.11" style="fill:none;" x1="378.095" x2="378.095" y1="228"
/><line y2="230.11" style="fill:none;" x1="385.1578" x2="385.1578" y1="228"
/><line y2="230.11" style="fill:none;" x1="391.276" x2="391.276" y1="228"
/><line y2="230.11" style="fill:none;" x1="396.6726" x2="396.6726" y1="228"
/><line y2="230.11" style="fill:none;" x1="401.5" x2="401.5" y1="228"
/><line y2="230.11" style="fill:none;" x1="433.2587" x2="433.2587" y1="228"
/><line y2="230.11" style="fill:none;" x1="451.8363" x2="451.8363" y1="228"
/><line y2="230.11" style="fill:none;" x1="465.0173" x2="465.0173" y1="228"
/><line y2="230.11" style="fill:none;" x1="475.2413" x2="475.2413" y1="228"
/><line y2="230.11" style="fill:none;" x1="483.595" x2="483.595" y1="228"
/><line y2="230.11" style="fill:none;" x1="490.6578" x2="490.6578" y1="228"
/><line y2="230.11" style="fill:none;" x1="496.776" x2="496.776" y1="228"
/><line y2="230.11" style="fill:none;" x1="502.1726" x2="502.1726" y1="228"
/><line y2="230.11" style="fill:none;" x1="507" x2="507" y1="228"
/></g
><g transform="translate(72,396)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>10</text
></g
><g transform="translate(87,390)" style="font-size:10.6667px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>-2</text
></g
><g transform="translate(178,396)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>10</text
></g
><g transform="translate(193,390)" style="font-size:10.6667px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>-1</text
></g
><g transform="translate(285,396)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>10</text
></g
><g transform="translate(300,390)" style="font-size:10.6667px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>0</text
></g
><g transform="translate(391,396)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>10</text
></g
><g transform="translate(406,390)" style="font-size:10.6667px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>1</text
></g
><g transform="translate(496,396)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>10</text
></g
><g transform="translate(511,390)" style="font-size:10.6667px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>2</text
></g
><g style="fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(102,102,102); color-interpolation:linearRGB; stroke-width:0.6667;"
><line y2="228" style="fill:none;" x1="85" x2="85" y1="374"
/><line y2="228" style="fill:none;" x1="507" x2="507" y1="374"
/><line y2="372.5686" style="fill:none;" x1="85" x2="89.22" y1="372.5686"
/><line y2="301" style="fill:none;" x1="85" x2="89.22" y1="301"
/><line y2="229.4314" style="fill:none;" x1="85" x2="89.22" y1="229.4314"
/><line y2="372.5686" style="fill:none;" x1="507" x2="502.78" y1="372.5686"
/><line y2="301" style="fill:none;" x1="507" x2="502.78" y1="301"
/><line y2="229.4314" style="fill:none;" x1="507" x2="502.78" y1="229.4314"
/></g
><g transform="translate(79.6667,372.5686)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-8" xml:space="preserve" y="5.5" style="stroke:none;"
>0</text
></g
><g transform="translate(79.6667,301)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-15" xml:space="preserve" y="5.5" style="stroke:none;"
>30</text
></g
><g transform="translate(79.6667,229.4314)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-15" xml:space="preserve" y="5.5" style="stroke:none;"
>60</text
></g
><g transform="translate(60.6667,300.9999) rotate(-90)" style="font-size:14.6667px; text-rendering:geometricPrecision; color-rendering:optimizeQuality; image-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB;"
><text x="-40" xml:space="preserve" y="-4" style="stroke:none;"
>Phase (deg)</text
></g
><g style="stroke-linecap:butt; fill:rgb(0,114,189); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(0,114,189); color-interpolation:linearRGB; stroke-width:0.6667;"
><path d="M84.9497 369.8579 L87.7713 369.6941 L94.9095 369.2097 L102.0477 368.6439 L109.1859 367.9828 L116.3241 367.2107 L123.4622 366.3091 L130.6004 365.2563 L137.7386 364.0277 L144.8768 362.5943 L152.015 360.9231 L159.1532 358.9763 L166.2914 356.711 L173.4296 354.079 L180.5678 351.0275 L187.706 347.4994 L194.8442 343.4356 L201.9824 338.7781 L209.1206 333.4754 L216.2588 327.4903 L223.397 320.8103 L230.5352 313.4603 L237.6734 305.5154 L244.8116 297.1116 L251.9498 288.4484 L259.088 279.7817 L266.2261 271.4041 L273.3643 263.6175 L280.5025 256.7041 L287.6407 250.9044 L294.7789 246.4052 L301.9171 243.3382 L309.0553 241.7854 L312.6244 241.5904 L316.1935 241.7854 L323.3317 243.3382 L330.4699 246.4052 L337.6081 250.9044 L344.7463 256.7041 L351.8845 263.6175 L359.0227 271.4041 L366.1609 279.7817 L373.299 288.4484 L380.4373 297.1116 L387.5755 305.5154 L394.7137 313.4603 L401.8518 320.8103 L408.99 327.4903 L416.1282 333.4754 L423.2664 338.7781 L430.4046 343.4356 L437.5428 347.4994 L444.681 351.0275 L451.8192 354.079 L458.9574 356.711 L466.0956 358.9763 L473.2338 360.9231 L480.372 362.5943 L487.5102 364.0277 L494.6484 365.2563 L501.7866 366.3091 L507.0503 366.974" style="fill:none; fill-rule:evenodd;"
/></g
><g transform="translate(295,44.7)" style="font-size:14.6667px; text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB; font-weight:bold;"
><text x="-117.5" xml:space="preserve" y="-4" style="stroke:none;"
>Bode correcteur avance de phase</text
></g
><g transform="translate(295,398.6667)" style="font-size:14.6667px; text-rendering:geometricPrecision; color-rendering:optimizeQuality; image-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB;"
><text x="-60" xml:space="preserve" y="15" style="stroke:none;"
>Frequency (rad/s)</text
></g
></g
></svg
>

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -0,0 +1,245 @@
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="560" height="420" xmlns="http://www.w3.org/2000/svg"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
/><g
><defs id="defs1"
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
><path d="M0 0 L560 0 L560 420 L0 420 L0 0 Z"
/></clipPath
><font horiz-adv-x="75.0" id="font1"
><font-face ascent="100.53711" descent="21.972656" units-per-em="100" style="font-style:normal; font-family:SansSerif; font-weight:normal;"
/><missing-glyph horiz-adv-x="75.0" d="M12.5 0 L12.5 62.5 L62.5 62.5 L62.5 0 L12.5 0 ZM14.0625 1.5625 L60.9375 1.5625 L60.9375 60.9375 L14.0625 60.9375 L14.0625 1.5625 Z"
/><glyph unicode="0" horiz-adv-x="55.615234" d="M4.1562 35.2969 Q4.1562 48 6.7656 55.7422 Q9.375 63.4844 14.5234 67.6797 Q19.6719 71.875 27.4844 71.875 Q33.25 71.875 37.5938 69.5547 Q41.9375 67.2344 44.7734 62.8672 Q47.6094 58.5 49.2188 52.2266 Q50.8281 45.9531 50.8281 35.2969 Q50.8281 22.7031 48.2422 14.9688 Q45.6562 7.2344 40.5078 3.0078 Q35.3594 -1.2188 27.4844 -1.2188 Q17.1406 -1.2188 11.2344 6.2031 Q4.1562 15.1406 4.1562 35.2969 ZM13.1875 35.2969 Q13.1875 17.6719 17.3125 11.8359 Q21.4375 6 27.4844 6 Q33.5469 6 37.6719 11.8594 Q41.7969 17.7188 41.7969 35.2969 Q41.7969 52.9844 37.6719 58.7891 Q33.5469 64.5938 27.3906 64.5938 Q21.3438 64.5938 17.7188 59.4688 Q13.1875 52.9375 13.1875 35.2969 Z"
/><glyph unicode="4" horiz-adv-x="55.615234" d="M32.3281 0 L32.3281 17.1406 L1.2656 17.1406 L1.2656 25.2031 L33.9375 71.5781 L41.1094 71.5781 L41.1094 25.2031 L50.7812 25.2031 L50.7812 17.1406 L41.1094 17.1406 L41.1094 0 L32.3281 0 ZM32.3281 25.2031 L32.3281 57.4688 L9.9062 25.2031 L32.3281 25.2031 Z"
/><glyph unicode="-" horiz-adv-x="33.30078" d="M3.1719 21.4844 L3.1719 30.3281 L30.1719 30.3281 L30.1719 21.4844 L3.1719 21.4844 Z"
/><glyph unicode="3" horiz-adv-x="55.615234" d="M4.2031 18.8906 L12.9844 20.0625 Q14.5 12.5938 18.1406 9.2969 Q21.7812 6 27 6 Q33.2031 6 37.4766 10.2969 Q41.75 14.5938 41.75 20.9531 Q41.75 27 37.7969 30.9297 Q33.8438 34.8594 27.7344 34.8594 Q25.25 34.8594 21.5312 33.8906 L22.5156 41.6094 Q23.3906 41.5 23.9219 41.5 Q29.5469 41.5 34.0391 44.4297 Q38.5312 47.3594 38.5312 53.4688 Q38.5312 58.2969 35.2578 61.4766 Q31.9844 64.6562 26.8125 64.6562 Q21.6875 64.6562 18.2656 61.4297 Q14.8438 58.2031 13.875 51.7656 L5.0781 53.3281 Q6.6875 62.1562 12.3984 67.0156 Q18.1094 71.875 26.6094 71.875 Q32.4688 71.875 37.3984 69.3594 Q42.3281 66.8438 44.9453 62.5 Q47.5625 58.1562 47.5625 53.2656 Q47.5625 48.6406 45.0703 44.8281 Q42.5781 41.0156 37.7031 38.7656 Q44.0469 37.3125 47.5625 32.6953 Q51.0781 28.0781 51.0781 21.1406 Q51.0781 11.7656 44.2422 5.25 Q37.4062 -1.2656 26.9531 -1.2656 Q17.5312 -1.2656 11.3047 4.3516 Q5.0781 9.9688 4.2031 18.8906 Z"
/><glyph unicode="2" horiz-adv-x="55.615234" d="M50.3438 8.4531 L50.3438 0 L3.0312 0 Q2.9375 3.1719 4.0469 6.1094 Q5.8594 10.9375 9.8359 15.625 Q13.8125 20.3125 21.3438 26.4688 Q33.0156 36.0312 37.1172 41.625 Q41.2188 47.2188 41.2188 52.2031 Q41.2188 57.4219 37.4766 61.0078 Q33.7344 64.5938 27.7344 64.5938 Q21.3906 64.5938 17.5781 60.7891 Q13.7656 56.9844 13.7188 50.25 L4.6875 51.1719 Q5.6094 61.2812 11.6641 66.5781 Q17.7188 71.875 27.9375 71.875 Q38.2344 71.875 44.2422 66.1641 Q50.25 60.4531 50.25 52 Q50.25 47.7031 48.4922 43.5547 Q46.7344 39.4062 42.6562 34.8125 Q38.5781 30.2188 29.1094 22.2188 Q21.1875 15.5781 18.9453 13.2109 Q16.7031 10.8438 15.2344 8.4531 L50.3438 8.4531 Z"
/><glyph unicode="1" horiz-adv-x="55.615234" d="M37.25 0 L28.4688 0 L28.4688 56 Q25.2969 52.9844 20.1406 49.9531 Q14.9844 46.9219 10.8906 45.4062 L10.8906 53.9062 Q18.2656 57.375 23.7812 62.3047 Q29.2969 67.2344 31.5938 71.875 L37.25 71.875 L37.25 0 Z"
/><glyph unicode=")" horiz-adv-x="33.30078" d="M12.3594 -21.0469 L6.0625 -21.0469 Q20.6562 2.3906 20.6562 25.875 Q20.6562 35.0625 18.5625 44.0938 Q16.8906 51.4219 13.9219 58.1562 Q12.0156 62.5469 6.0625 72.7969 L12.3594 72.7969 Q21.5312 60.5469 25.9219 48.1875 Q29.6875 37.5469 29.6875 25.9219 Q29.6875 12.75 24.6328 0.4453 Q19.5781 -11.8594 12.3594 -21.0469 Z"
/><glyph unicode="B" horiz-adv-x="66.69922" d="M7.3281 0 L7.3281 71.5781 L34.1875 71.5781 Q42.3906 71.5781 47.3438 69.4062 Q52.2969 67.2344 55.1016 62.7188 Q57.9062 58.2031 57.9062 53.2656 Q57.9062 48.6875 55.4219 44.6328 Q52.9375 40.5781 47.9062 38.0938 Q54.3906 36.1875 57.8828 31.5938 Q61.375 27 61.375 20.75 Q61.375 15.7188 59.25 11.3984 Q57.125 7.0781 54 4.7344 Q50.875 2.3906 46.1641 1.1953 Q41.4531 0 34.625 0 L7.3281 0 ZM16.7969 41.5 L32.2812 41.5 Q38.5781 41.5 41.3125 42.3281 Q44.9219 43.4062 46.75 45.8984 Q48.5781 48.3906 48.5781 52.1562 Q48.5781 55.7188 46.875 58.4297 Q45.1719 61.1406 41.9922 62.1406 Q38.8125 63.1406 31.1094 63.1406 L16.7969 63.1406 L16.7969 41.5 ZM16.7969 8.4531 L34.625 8.4531 Q39.2031 8.4531 41.0625 8.7969 Q44.3438 9.375 46.5391 10.7422 Q48.7344 12.1094 50.1484 14.7188 Q51.5625 17.3281 51.5625 20.75 Q51.5625 24.75 49.5156 27.7109 Q47.4688 30.6719 43.8281 31.8672 Q40.1875 33.0625 33.3438 33.0625 L16.7969 33.0625 L16.7969 8.4531 Z"
/><glyph unicode="(" horiz-adv-x="33.30078" d="M23.3906 -21.0469 Q16.1094 -11.8594 11.0859 0.4453 Q6.0625 12.75 6.0625 25.9219 Q6.0625 37.5469 9.8125 48.1875 Q14.2031 60.5469 23.3906 72.7969 L29.6875 72.7969 Q23.7812 62.6406 21.875 58.2969 Q18.8906 51.5625 17.1875 44.2344 Q15.0938 35.1094 15.0938 25.875 Q15.0938 2.3906 29.6875 -21.0469 L23.3906 -21.0469 Z"
/><glyph unicode=" " horiz-adv-x="27.783203" d=""
/><glyph unicode="e" horiz-adv-x="55.615234" d="M42.0938 16.7031 L51.1719 15.5781 Q49.0312 7.625 43.2188 3.2266 Q37.4062 -1.1719 28.375 -1.1719 Q17 -1.1719 10.3281 5.8359 Q3.6562 12.8438 3.6562 25.4844 Q3.6562 38.5781 10.3984 45.8047 Q17.1406 53.0312 27.875 53.0312 Q38.2812 53.0312 44.875 45.9531 Q51.4688 38.875 51.4688 26.0312 Q51.4688 25.25 51.4219 23.6875 L12.75 23.6875 Q13.2344 15.1406 17.5781 10.6016 Q21.9219 6.0625 28.4219 6.0625 Q33.25 6.0625 36.6719 8.6016 Q40.0938 11.1406 42.0938 16.7031 ZM13.2344 30.9062 L42.1875 30.9062 Q41.6094 37.4531 38.875 40.7188 Q34.6719 45.7969 27.9844 45.7969 Q21.9219 45.7969 17.7969 41.75 Q13.6719 37.7031 13.2344 30.9062 Z"
/><glyph unicode="d" horiz-adv-x="55.615234" d="M40.2344 0 L40.2344 6.5469 Q35.2969 -1.1719 25.7344 -1.1719 Q19.5312 -1.1719 14.3281 2.25 Q9.125 5.6719 6.2734 11.7969 Q3.4219 17.9219 3.4219 25.875 Q3.4219 33.6406 6.0078 39.9688 Q8.5938 46.2969 13.7734 49.6641 Q18.9531 53.0312 25.3438 53.0312 Q30.0312 53.0312 33.6953 51.0547 Q37.3594 49.0781 39.6562 45.9062 L39.6562 71.5781 L48.3906 71.5781 L48.3906 0 L40.2344 0 ZM12.4531 25.875 Q12.4531 15.9219 16.6484 10.9922 Q20.8438 6.0625 26.5625 6.0625 Q32.3281 6.0625 36.3516 10.7734 Q40.375 15.4844 40.375 25.1406 Q40.375 35.7969 36.2734 40.7734 Q32.1719 45.75 26.1719 45.75 Q20.3125 45.75 16.3828 40.9688 Q12.4531 36.1875 12.4531 25.875 Z"
/><glyph unicode="u" horiz-adv-x="55.615234" d="M40.5781 0 L40.5781 7.625 Q34.5156 -1.1719 24.125 -1.1719 Q19.5312 -1.1719 15.5547 0.5859 Q11.5781 2.3438 9.6484 5.0078 Q7.7188 7.6719 6.9375 11.5312 Q6.3906 14.1094 6.3906 19.7344 L6.3906 51.8594 L15.1875 51.8594 L15.1875 23.0938 Q15.1875 16.2188 15.7188 13.8125 Q16.5469 10.3594 19.2344 8.375 Q21.9219 6.3906 25.875 6.3906 Q29.8281 6.3906 33.2969 8.4219 Q36.7656 10.4531 38.2109 13.9453 Q39.6562 17.4375 39.6562 24.0781 L39.6562 51.8594 L48.4375 51.8594 L48.4375 0 L40.5781 0 Z"
/><glyph unicode="t" horiz-adv-x="27.783203" d="M25.7812 7.8594 L27.0469 0.0938 Q23.3438 -0.6875 20.4062 -0.6875 Q15.625 -0.6875 12.9922 0.8281 Q10.3594 2.3438 9.2812 4.8125 Q8.2031 7.2812 8.2031 15.1875 L8.2031 45.0156 L1.7656 45.0156 L1.7656 51.8594 L8.2031 51.8594 L8.2031 64.7031 L16.9375 69.9688 L16.9375 51.8594 L25.7812 51.8594 L25.7812 45.0156 L16.9375 45.0156 L16.9375 14.7031 Q16.9375 10.9375 17.4062 9.8672 Q17.875 8.7969 18.9219 8.1562 Q19.9688 7.5156 21.9219 7.5156 Q23.3906 7.5156 25.7812 7.8594 Z"
/><glyph unicode="i" horiz-adv-x="22.216797" d="M6.6406 61.4688 L6.6406 71.5781 L15.4375 71.5781 L15.4375 61.4688 L6.6406 61.4688 ZM6.6406 0 L6.6406 51.8594 L15.4375 51.8594 L15.4375 0 L6.6406 0 Z"
/><glyph unicode="n" horiz-adv-x="55.615234" d="M6.5938 0 L6.5938 51.8594 L14.5 51.8594 L14.5 44.4844 Q20.2188 53.0312 31 53.0312 Q35.6875 53.0312 39.625 51.3438 Q43.5625 49.6562 45.5156 46.9219 Q47.4688 44.1875 48.25 40.4375 Q48.7344 37.9844 48.7344 31.8906 L48.7344 0 L39.9375 0 L39.9375 31.5469 Q39.9375 36.9219 38.9141 39.5781 Q37.8906 42.2344 35.2812 43.8203 Q32.6719 45.4062 29.1562 45.4062 Q23.5312 45.4062 19.4531 41.8438 Q15.375 38.2812 15.375 28.3281 L15.375 0 L6.5938 0 Z"
/><glyph unicode="g" horiz-adv-x="55.615234" d="M4.9844 -4.2969 L13.5312 -5.5625 Q14.0625 -9.5156 16.5 -11.3281 Q19.7812 -13.7656 25.4375 -13.7656 Q31.5469 -13.7656 34.8672 -11.3281 Q38.1875 -8.8906 39.3594 -4.5 Q40.0469 -1.8125 39.9844 6.7812 Q34.2344 0 25.6406 0 Q14.9375 0 9.0781 7.7188 Q3.2188 15.4375 3.2188 26.2188 Q3.2188 33.6406 5.9062 39.9141 Q8.5938 46.1875 13.6953 49.6094 Q18.7969 53.0312 25.6875 53.0312 Q34.8594 53.0312 40.8281 45.6094 L40.8281 51.8594 L48.9219 51.8594 L48.9219 7.0312 Q48.9219 -5.0781 46.4609 -10.1328 Q44 -15.1875 38.6484 -18.1172 Q33.2969 -21.0469 25.4844 -21.0469 Q16.2188 -21.0469 10.5 -16.875 Q4.7812 -12.7031 4.9844 -4.2969 ZM12.25 26.8594 Q12.25 16.6562 16.3047 11.9688 Q20.3594 7.2812 26.4688 7.2812 Q32.5156 7.2812 36.6172 11.9453 Q40.7188 16.6094 40.7188 26.5625 Q40.7188 36.0781 36.5 40.9141 Q32.2812 45.75 26.3125 45.75 Q20.4531 45.75 16.3516 40.9922 Q12.25 36.2344 12.25 26.8594 Z"
/><glyph unicode="a" horiz-adv-x="55.615234" d="M40.4375 6.3906 Q35.5469 2.25 31.0312 0.5391 Q26.5156 -1.1719 21.3438 -1.1719 Q12.7969 -1.1719 8.2031 3 Q3.6094 7.1719 3.6094 13.6719 Q3.6094 17.4844 5.3438 20.6328 Q7.0781 23.7812 9.8906 25.6875 Q12.7031 27.5938 16.2188 28.5625 Q18.7969 29.25 24.0312 29.8906 Q34.6719 31.1562 39.7031 32.9062 Q39.75 34.7188 39.75 35.2031 Q39.75 40.5781 37.25 42.7812 Q33.8906 45.75 27.25 45.75 Q21.0469 45.75 18.0938 43.5781 Q15.1406 41.4062 13.7188 35.8906 L5.125 37.0625 Q6.2969 42.5781 8.9844 45.9688 Q11.6719 49.3594 16.75 51.1953 Q21.8281 53.0312 28.5156 53.0312 Q35.1562 53.0312 39.3047 51.4688 Q43.4531 49.9062 45.4062 47.5391 Q47.3594 45.1719 48.1406 41.5469 Q48.5781 39.3125 48.5781 33.4531 L48.5781 21.7344 Q48.5781 9.4688 49.1406 6.2266 Q49.7031 2.9844 51.375 0 L42.1875 0 Q40.8281 2.7344 40.4375 6.3906 ZM39.7031 26.0312 Q34.9062 24.0781 25.3438 22.7031 Q19.9219 21.9219 17.6797 20.9453 Q15.4375 19.9688 14.2109 18.0938 Q12.9844 16.2188 12.9844 13.9219 Q12.9844 10.4062 15.6484 8.0625 Q18.3125 5.7188 23.4375 5.7188 Q28.5156 5.7188 32.4688 7.9375 Q36.4219 10.1562 38.2812 14.0156 Q39.7031 17 39.7031 22.7969 L39.7031 26.0312 Z"
/><glyph unicode="M" horiz-adv-x="83.30078" d="M7.4219 0 L7.4219 71.5781 L21.6875 71.5781 L38.625 20.9062 Q40.9688 13.8125 42.0469 10.2969 Q43.2656 14.2031 45.8438 21.7812 L62.9844 71.5781 L75.7344 71.5781 L75.7344 0 L66.6094 0 L66.6094 59.9062 L45.7969 0 L37.25 0 L16.5469 60.9375 L16.5469 0 L7.4219 0 Z"
/><glyph unicode="8" horiz-adv-x="55.615234" d="M17.6719 38.8125 Q12.2031 40.8281 9.5703 44.5391 Q6.9375 48.25 6.9375 53.4219 Q6.9375 61.2344 12.5547 66.5547 Q18.1719 71.875 27.4844 71.875 Q36.8594 71.875 42.5781 66.4297 Q48.2969 60.9844 48.2969 53.1719 Q48.2969 48.1875 45.6797 44.5078 Q43.0625 40.8281 37.75 38.8125 Q44.3438 36.6719 47.7812 31.8828 Q51.2188 27.0938 51.2188 20.4531 Q51.2188 11.2812 44.7266 5.0312 Q38.2344 -1.2188 27.6406 -1.2188 Q17.0469 -1.2188 10.5469 5.0547 Q4.0469 11.3281 4.0469 20.7031 Q4.0469 27.6875 7.5938 32.3984 Q11.1406 37.1094 17.6719 38.8125 ZM15.9219 53.7188 Q15.9219 48.6406 19.1953 45.4141 Q22.4688 42.1875 27.6875 42.1875 Q32.7656 42.1875 36.0156 45.3828 Q39.2656 48.5781 39.2656 53.2188 Q39.2656 58.0625 35.9141 61.3594 Q32.5625 64.6562 27.5938 64.6562 Q22.5625 64.6562 19.2422 61.4297 Q15.9219 58.2031 15.9219 53.7188 ZM13.0938 20.6562 Q13.0938 16.8906 14.875 13.375 Q16.6562 9.8594 20.1719 7.9297 Q23.6875 6 27.7344 6 Q34.0312 6 38.1328 10.0547 Q42.2344 14.1094 42.2344 20.3594 Q42.2344 26.7031 38.0156 30.8594 Q33.7969 35.0156 27.4375 35.0156 Q21.2344 35.0156 17.1641 30.9141 Q13.0938 26.8125 13.0938 20.6562 Z"
/><glyph unicode="5" horiz-adv-x="55.615234" d="M4.1562 18.75 L13.375 19.5312 Q14.4062 12.7969 18.1406 9.3984 Q21.875 6 27.1562 6 Q33.5 6 37.8906 10.7891 Q42.2812 15.5781 42.2812 23.4844 Q42.2812 31 38.0625 35.3516 Q33.8438 39.7031 27 39.7031 Q22.75 39.7031 19.3359 37.7734 Q15.9219 35.8438 13.9688 32.7656 L5.7188 33.8438 L12.6406 70.6094 L48.25 70.6094 L48.25 62.2031 L19.6719 62.2031 L15.8281 42.9688 Q22.2656 47.4688 29.3438 47.4688 Q38.7188 47.4688 45.1641 40.9688 Q51.6094 34.4688 51.6094 24.2656 Q51.6094 14.5469 45.9531 7.4688 Q39.0625 -1.2188 27.1562 -1.2188 Q17.3906 -1.2188 11.2109 4.25 Q5.0312 9.7188 4.1562 18.75 Z"
/><glyph unicode="." horiz-adv-x="27.783203" d="M9.0781 0 L9.0781 10.0156 L19.0938 10.0156 L19.0938 0 L9.0781 0 Z"
/><glyph unicode="9" horiz-adv-x="55.615234" d="M5.4688 16.5469 L13.9219 17.3281 Q14.9844 11.375 18.0156 8.6875 Q21.0469 6 25.7812 6 Q29.8281 6 32.8828 7.8594 Q35.9375 9.7188 37.8906 12.8203 Q39.8438 15.9219 41.1641 21.1953 Q42.4844 26.4688 42.4844 31.9375 Q42.4844 32.5156 42.4375 33.6875 Q39.7969 29.5 35.2344 26.8828 Q30.6719 24.2656 25.3438 24.2656 Q16.4531 24.2656 10.3047 30.7109 Q4.1562 37.1562 4.1562 47.7031 Q4.1562 58.5938 10.5781 65.2344 Q17 71.875 26.6562 71.875 Q33.6406 71.875 39.4297 68.1172 Q45.2188 64.3594 48.2188 57.3984 Q51.2188 50.4375 51.2188 37.25 Q51.2188 23.5312 48.2422 15.4062 Q45.2656 7.2812 39.3828 3.0312 Q33.5 -1.2188 25.5938 -1.2188 Q17.1875 -1.2188 11.8672 3.4453 Q6.5469 8.1094 5.4688 16.5469 ZM41.4531 48.1406 Q41.4531 55.7188 37.4297 60.1562 Q33.4062 64.5938 27.7344 64.5938 Q21.875 64.5938 17.5312 59.8125 Q13.1875 55.0312 13.1875 47.4062 Q13.1875 40.5781 17.3125 36.3047 Q21.4375 32.0312 27.4844 32.0312 Q33.5938 32.0312 37.5234 36.3047 Q41.4531 40.5781 41.4531 48.1406 Z"
/><glyph unicode="7" horiz-adv-x="55.615234" d="M4.7344 62.2031 L4.7344 70.6562 L51.0781 70.6562 L51.0781 63.8125 Q44.2344 56.5469 37.5234 44.4844 Q30.8125 32.4219 27.1562 19.6719 Q24.5156 10.6875 23.7812 0 L14.75 0 Q14.8906 8.4531 18.0625 20.4141 Q21.2344 32.375 27.1719 43.4844 Q33.1094 54.5938 39.7969 62.2031 L4.7344 62.2031 Z"
/><glyph unicode="s" horiz-adv-x="50.0" d="M3.0781 15.4844 L11.7656 16.8438 Q12.5 11.625 15.8438 8.8438 Q19.1875 6.0625 25.2031 6.0625 Q31.25 6.0625 34.1797 8.5234 Q37.1094 10.9844 37.1094 14.3125 Q37.1094 17.2812 34.5156 19 Q32.7188 20.1719 25.5312 21.9688 Q15.875 24.4219 12.1406 26.2031 Q8.4062 27.9844 6.4766 31.1328 Q4.5469 34.2812 4.5469 38.0938 Q4.5469 41.5469 6.1328 44.5078 Q7.7188 47.4688 10.4531 49.4219 Q12.5 50.9219 16.0391 51.9766 Q19.5781 53.0312 23.6406 53.0312 Q29.7344 53.0312 34.3516 51.2734 Q38.9688 49.5156 41.1641 46.5078 Q43.3594 43.5 44.1875 38.4844 L35.5938 37.3125 Q35.0156 41.3125 32.2031 43.5547 Q29.3906 45.7969 24.2656 45.7969 Q18.2188 45.7969 15.625 43.7969 Q13.0312 41.7969 13.0312 39.1094 Q13.0312 37.4062 14.1094 36.0312 Q15.1875 34.625 17.4844 33.6875 Q18.7969 33.2031 25.25 31.4531 Q34.5781 28.9531 38.2578 27.3672 Q41.9375 25.7812 44.0391 22.7578 Q46.1406 19.7344 46.1406 15.2344 Q46.1406 10.8438 43.5781 6.9609 Q41.0156 3.0781 36.1797 0.9531 Q31.3438 -1.1719 25.25 -1.1719 Q15.1406 -1.1719 9.8438 3.0312 Q4.5469 7.2344 3.0781 15.4844 Z"
/><glyph unicode="h" horiz-adv-x="55.615234" d="M6.5938 0 L6.5938 71.5781 L15.375 71.5781 L15.375 45.9062 Q21.5312 53.0312 30.9062 53.0312 Q36.6719 53.0312 40.9219 50.7578 Q45.1719 48.4844 47 44.4844 Q48.8281 40.4844 48.8281 32.8594 L48.8281 0 L40.0469 0 L40.0469 32.8594 Q40.0469 39.4531 37.1875 42.4531 Q34.3281 45.4531 29.1094 45.4531 Q25.2031 45.4531 21.7578 43.4297 Q18.3125 41.4062 16.8438 37.9375 Q15.375 34.4688 15.375 28.375 L15.375 0 L6.5938 0 Z"
/><glyph unicode="P" horiz-adv-x="66.69922" d="M7.7188 0 L7.7188 71.5781 L34.7188 71.5781 Q41.8438 71.5781 45.6094 70.9062 Q50.875 70.0156 54.4453 67.5547 Q58.0156 65.0938 60.1875 60.6484 Q62.3594 56.2031 62.3594 50.875 Q62.3594 41.75 56.5469 35.4297 Q50.7344 29.1094 35.5469 29.1094 L17.1875 29.1094 L17.1875 0 L7.7188 0 ZM17.1875 37.5469 L35.6875 37.5469 Q44.875 37.5469 48.7344 40.9688 Q52.5938 44.3906 52.5938 50.5938 Q52.5938 55.0781 50.3203 58.2734 Q48.0469 61.4688 44.3438 62.5 Q41.9375 63.1406 35.5 63.1406 L17.1875 63.1406 L17.1875 37.5469 Z"
/><glyph unicode="/" horiz-adv-x="27.783203" d="M0 -1.2188 L20.75 72.7969 L27.7812 72.7969 L7.0781 -1.2188 L0 -1.2188 Z"
/><glyph unicode="y" horiz-adv-x="50.0" d="M6.2031 -19.9688 L5.2188 -11.7188 Q8.1094 -12.5 10.25 -12.5 Q13.1875 -12.5 14.9453 -11.5234 Q16.7031 -10.5469 17.8281 -8.7969 Q18.6562 -7.4688 20.5156 -2.25 Q20.75 -1.5156 21.2969 -0.0938 L1.6094 51.8594 L11.0781 51.8594 L21.875 21.8281 Q23.9688 16.1094 25.6406 9.8125 Q27.1562 15.875 29.25 21.625 L40.3281 51.8594 L49.125 51.8594 L29.3906 -0.875 Q26.2188 -9.4219 24.4688 -12.6406 Q22.125 -17 19.0938 -19.0234 Q16.0625 -21.0469 11.8594 -21.0469 Q9.3281 -21.0469 6.2031 -19.9688 Z"
/><glyph unicode="c" horiz-adv-x="50.0" d="M40.4375 19 L49.0781 17.875 Q47.6562 8.9375 41.8203 3.8828 Q35.9844 -1.1719 27.4844 -1.1719 Q16.8438 -1.1719 10.375 5.7891 Q3.9062 12.75 3.9062 25.7344 Q3.9062 34.125 6.6875 40.4297 Q9.4688 46.7344 15.1562 49.8828 Q20.8438 53.0312 27.5469 53.0312 Q35.9844 53.0312 41.3594 48.7578 Q46.7344 44.4844 48.25 36.625 L39.7031 35.2969 Q38.4844 40.5312 35.3828 43.1641 Q32.2812 45.7969 27.875 45.7969 Q21.2344 45.7969 17.0859 41.0391 Q12.9375 36.2812 12.9375 25.9844 Q12.9375 15.5312 16.9453 10.7969 Q20.9531 6.0625 27.3906 6.0625 Q32.5625 6.0625 36.0312 9.2344 Q39.5 12.4062 40.4375 19 Z"
/><glyph unicode="q" horiz-adv-x="55.615234" d="M39.6562 -19.875 L39.6562 5.5156 Q37.5938 2.6406 33.9062 0.7344 Q30.2188 -1.1719 26.0781 -1.1719 Q16.8438 -1.1719 10.1797 6.2031 Q3.5156 13.5781 3.5156 26.4219 Q3.5156 34.2344 6.2266 40.4297 Q8.9375 46.625 14.0859 49.8281 Q19.2344 53.0312 25.3906 53.0312 Q35.0156 53.0312 40.5312 44.9219 L40.5312 51.8594 L48.4375 51.8594 L48.4375 -19.875 L39.6562 -19.875 ZM12.5469 26.0781 Q12.5469 16.0625 16.75 11.0625 Q20.9531 6.0625 26.8125 6.0625 Q32.4219 6.0625 36.4766 10.8203 Q40.5312 15.5781 40.5312 25.2969 Q40.5312 35.6406 36.2578 40.8672 Q31.9844 46.0938 26.2188 46.0938 Q20.5156 46.0938 16.5312 41.2344 Q12.5469 36.375 12.5469 26.0781 Z"
/><glyph unicode="r" horiz-adv-x="33.30078" d="M6.5 0 L6.5 51.8594 L14.4062 51.8594 L14.4062 44 Q17.4375 49.5156 20 51.2734 Q22.5625 53.0312 25.6406 53.0312 Q30.0781 53.0312 34.6719 50.2031 L31.6406 42.0469 Q28.4219 43.9531 25.2031 43.9531 Q22.3125 43.9531 20.0156 42.2188 Q17.7188 40.4844 16.75 37.4062 Q15.2812 32.7188 15.2812 27.1562 L15.2812 0 L6.5 0 Z"
/><glyph unicode="F" horiz-adv-x="61.083984" d="M8.2031 0 L8.2031 71.5781 L56.5 71.5781 L56.5 63.1406 L17.6719 63.1406 L17.6719 40.9688 L51.2656 40.9688 L51.2656 32.5156 L17.6719 32.5156 L17.6719 0 L8.2031 0 Z"
/></font
><font horiz-adv-x="75.0" id="font2"
><font-face ascent="100.53711" descent="21.972656" units-per-em="100" style="font-style:normal; font-family:SansSerif; font-weight:bold;"
/><missing-glyph horiz-adv-x="75.0" d="M12.5 0 L12.5 62.5 L62.5 62.5 L62.5 0 L12.5 0 ZM14.0625 1.5625 L60.9375 1.5625 L60.9375 60.9375 L14.0625 60.9375 L14.0625 1.5625 Z"
/><glyph unicode="l" horiz-adv-x="27.783203" d="M7.1719 0 L7.1719 71.5781 L20.9062 71.5781 L20.9062 0 L7.1719 0 Z"
/><glyph unicode="i" horiz-adv-x="27.783203" d="M7.1719 58.8906 L7.1719 71.5781 L20.9062 71.5781 L20.9062 58.8906 L7.1719 58.8906 ZM7.1719 0 L7.1719 51.8594 L20.9062 51.8594 L20.9062 0 L7.1719 0 Z"
/><glyph unicode="a" horiz-adv-x="55.615234" d="M17.4375 36.0312 L4.9844 38.2812 Q7.0781 45.7969 12.2031 49.4141 Q17.3281 53.0312 27.4375 53.0312 Q36.625 53.0312 41.1172 50.8594 Q45.6094 48.6875 47.4375 45.3438 Q49.2656 42 49.2656 33.0625 L49.125 17.0469 Q49.125 10.2031 49.7812 6.9609 Q50.4375 3.7188 52.25 0 L38.6719 0 Q38.1406 1.375 37.3594 4.0469 Q37.0156 5.2812 36.8594 5.6719 Q33.3438 2.25 29.3438 0.5391 Q25.3438 -1.1719 20.7969 -1.1719 Q12.7969 -1.1719 8.1797 3.1719 Q3.5625 7.5156 3.5625 14.1562 Q3.5625 18.5625 5.6641 22 Q7.7656 25.4375 11.5469 27.2734 Q15.3281 29.1094 22.4688 30.4688 Q32.0781 32.2812 35.7969 33.8438 L35.7969 35.2031 Q35.7969 39.1562 33.8438 40.8438 Q31.8906 42.5312 26.4688 42.5312 Q22.7969 42.5312 20.75 41.0938 Q18.7031 39.6562 17.4375 36.0312 ZM35.7969 24.9062 Q33.1562 24.0312 27.4453 22.8047 Q21.7344 21.5781 19.9688 20.4062 Q17.2812 18.5 17.2812 15.5781 Q17.2812 12.7031 19.4297 10.6016 Q21.5781 8.5 24.9062 8.5 Q28.6094 8.5 31.9844 10.9375 Q34.4688 12.7969 35.25 15.4844 Q35.7969 17.2344 35.7969 22.1719 L35.7969 24.9062 Z"
/><glyph unicode="r" horiz-adv-x="38.916016" d="M20.3125 0 L6.5938 0 L6.5938 51.8594 L19.3438 51.8594 L19.3438 44.4844 Q22.6094 49.7031 25.2188 51.3672 Q27.8281 53.0312 31.1562 53.0312 Q35.8438 53.0312 40.1875 50.4375 L35.9375 38.4844 Q32.4688 40.7188 29.5 40.7188 Q26.6094 40.7188 24.6094 39.1328 Q22.6094 37.5469 21.4609 33.3984 Q20.3125 29.25 20.3125 16.0156 L20.3125 0 Z"
/><glyph unicode="m" horiz-adv-x="88.916016" d="M6.1562 51.8594 L18.7969 51.8594 L18.7969 44.7812 Q25.5938 53.0312 34.9688 53.0312 Q39.9375 53.0312 43.6016 50.9766 Q47.2656 48.9219 49.6094 44.7812 Q53.0312 48.9219 56.9844 50.9766 Q60.9375 53.0312 65.4375 53.0312 Q71.1406 53.0312 75.0938 50.7109 Q79.0469 48.3906 81 43.8906 Q82.4219 40.5781 82.4219 33.1562 L82.4219 0 L68.7031 0 L68.7031 29.6406 Q68.7031 37.3594 67.2812 39.5938 Q65.375 42.5312 61.4219 42.5312 Q58.5469 42.5312 56.0078 40.7734 Q53.4688 39.0156 52.3438 35.625 Q51.2188 32.2344 51.2188 24.9062 L51.2188 0 L37.5 0 L37.5 28.4219 Q37.5 35.9844 36.7656 38.1797 Q36.0312 40.375 34.4922 41.4531 Q32.9531 42.5312 30.3281 42.5312 Q27.1562 42.5312 24.6172 40.8203 Q22.0781 39.1094 20.9766 35.8906 Q19.875 32.6719 19.875 25.2031 L19.875 0 L6.1562 0 L6.1562 51.8594 Z"
/><glyph unicode="è" horiz-adv-x="55.615234" d="M37.2031 16.5 L50.875 14.2031 Q48.25 6.6875 42.5547 2.7578 Q36.8594 -1.1719 28.3281 -1.1719 Q14.7969 -1.1719 8.2969 7.6719 Q3.1719 14.75 3.1719 25.5312 Q3.1719 38.4219 9.9141 45.7266 Q16.6562 53.0312 26.9531 53.0312 Q38.5312 53.0312 45.2188 45.3906 Q51.9062 37.75 51.6094 21.9688 L17.2344 21.9688 Q17.3906 15.875 20.5625 12.4766 Q23.7344 9.0781 28.4688 9.0781 Q31.6875 9.0781 33.8828 10.8359 Q36.0781 12.5938 37.2031 16.5 ZM37.9844 30.375 Q37.8438 36.3281 34.9141 39.4297 Q31.9844 42.5312 27.7812 42.5312 Q23.2969 42.5312 20.3594 39.2656 Q17.4375 35.9844 17.4844 30.375 L37.9844 30.375 ZM35.6406 59 L27 59 L13.5156 73.5938 L28.9062 73.5938 L35.6406 59 Z"
/><glyph unicode="t" horiz-adv-x="33.30078" d="M30.9531 51.8594 L30.9531 40.9219 L21.5781 40.9219 L21.5781 20.0156 Q21.5781 13.6719 21.8516 12.625 Q22.125 11.5781 23.0781 10.8906 Q24.0312 10.2031 25.3906 10.2031 Q27.2969 10.2031 30.9062 11.5312 L32.0781 0.875 Q27.2969 -1.1719 21.2344 -1.1719 Q17.5312 -1.1719 14.5547 0.0703 Q11.5781 1.3125 10.1875 3.2969 Q8.7969 5.2812 8.25 8.6406 Q7.8125 11.0312 7.8125 18.3125 L7.8125 40.9219 L1.5156 40.9219 L1.5156 51.8594 L7.8125 51.8594 L7.8125 62.1562 L21.5781 70.1719 L21.5781 51.8594 L30.9531 51.8594 Z"
/><glyph unicode="y" horiz-adv-x="55.615234" d="M0.6875 51.8594 L15.2812 51.8594 L27.6875 15.0469 L39.7969 51.8594 L54 51.8594 L35.6875 1.9531 L32.4219 -7.0781 Q30.6094 -11.625 28.9766 -14.0156 Q27.3438 -16.4062 25.2188 -17.8984 Q23.0938 -19.3906 19.9922 -20.2188 Q16.8906 -21.0469 12.9844 -21.0469 Q9.0312 -21.0469 5.2188 -20.2188 L4 -9.4688 Q7.2344 -10.1094 9.8125 -10.1094 Q14.5938 -10.1094 16.8906 -7.3047 Q19.1875 -4.5 20.4062 -0.1406 L0.6875 51.8594 Z"
/><glyph unicode="s" horiz-adv-x="55.615234" d="M2.3438 14.7969 L16.1094 16.8906 Q17 12.8906 19.6797 10.8125 Q22.3594 8.7344 27.2031 8.7344 Q32.5156 8.7344 35.2031 10.6875 Q37.0156 12.0625 37.0156 14.3594 Q37.0156 15.9219 36.0312 16.9375 Q35.0156 17.9219 31.4531 18.75 Q14.8438 22.4062 10.4062 25.4375 Q4.25 29.6406 4.25 37.1094 Q4.25 43.8438 9.5703 48.4375 Q14.8906 53.0312 26.0781 53.0312 Q36.7188 53.0312 41.8984 49.5625 Q47.0781 46.0938 49.0312 39.3125 L36.0781 36.9219 Q35.25 39.9375 32.9297 41.5547 Q30.6094 43.1719 26.3125 43.1719 Q20.9062 43.1719 18.5625 41.6562 Q17 40.5781 17 38.875 Q17 37.4062 18.3594 36.375 Q20.2188 35.0156 31.1797 32.5234 Q42.1406 30.0312 46.4844 26.4219 Q50.7812 22.75 50.7812 16.2188 Q50.7812 9.0781 44.8281 3.9531 Q38.875 -1.1719 27.2031 -1.1719 Q16.6094 -1.1719 10.4297 3.125 Q4.25 7.4219 2.3438 14.7969 Z"
/><glyph unicode=" " horiz-adv-x="27.783203" d=""
/><glyph unicode="e" horiz-adv-x="55.615234" d="M37.2031 16.5 L50.875 14.2031 Q48.25 6.6875 42.5547 2.7578 Q36.8594 -1.1719 28.3281 -1.1719 Q14.7969 -1.1719 8.2969 7.6719 Q3.1719 14.75 3.1719 25.5312 Q3.1719 38.4219 9.9141 45.7266 Q16.6562 53.0312 26.9531 53.0312 Q38.5312 53.0312 45.2188 45.3906 Q51.9062 37.75 51.6094 21.9688 L17.2344 21.9688 Q17.3906 15.875 20.5625 12.4766 Q23.7344 9.0781 28.4688 9.0781 Q31.6875 9.0781 33.8828 10.8359 Q36.0781 12.5938 37.2031 16.5 ZM37.9844 30.375 Q37.8438 36.3281 34.9141 39.4297 Q31.9844 42.5312 27.7812 42.5312 Q23.2969 42.5312 20.3594 39.2656 Q17.4375 35.9844 17.4844 30.375 L37.9844 30.375 Z"
/><glyph unicode="d" horiz-adv-x="61.083984" d="M54.7344 0 L42 0 L42 7.625 Q38.8125 3.1719 34.4922 1 Q30.1719 -1.1719 25.7812 -1.1719 Q16.8438 -1.1719 10.4766 6.0312 Q4.1094 13.2344 4.1094 26.125 Q4.1094 39.3125 10.3047 46.1719 Q16.5 53.0312 25.9844 53.0312 Q34.6719 53.0312 41.0156 45.7969 L41.0156 71.5781 L54.7344 71.5781 L54.7344 0 ZM18.1094 27.0469 Q18.1094 18.75 20.4062 15.0469 Q23.7344 9.6719 29.6875 9.6719 Q34.4219 9.6719 37.7422 13.6953 Q41.0625 17.7188 41.0625 25.7344 Q41.0625 34.6719 37.8438 38.6016 Q34.625 42.5312 29.5938 42.5312 Q24.7031 42.5312 21.4062 38.6484 Q18.1094 34.7656 18.1094 27.0469 Z"
/><glyph unicode="o" horiz-adv-x="61.083984" d="M4 26.6562 Q4 33.5 7.375 39.8984 Q10.75 46.2969 16.9219 49.6641 Q23.0938 53.0312 30.7188 53.0312 Q42.4844 53.0312 50 45.3906 Q57.5156 37.75 57.5156 26.0781 Q57.5156 14.3125 49.9219 6.5703 Q42.3281 -1.1719 30.8125 -1.1719 Q23.6875 -1.1719 17.2188 2.0547 Q10.75 5.2812 7.375 11.5 Q4 17.7188 4 26.6562 ZM18.0625 25.9219 Q18.0625 18.2188 21.7266 14.1172 Q25.3906 10.0156 30.7656 10.0156 Q36.1406 10.0156 39.7734 14.1172 Q43.4062 18.2188 43.4062 26.0312 Q43.4062 33.6406 39.7734 37.7422 Q36.1406 41.8438 30.7656 41.8438 Q25.3906 41.8438 21.7266 37.7422 Q18.0625 33.6406 18.0625 25.9219 Z"
/><glyph unicode="B" horiz-adv-x="72.2168" d="M7.3281 71.5781 L35.9375 71.5781 Q44.4375 71.5781 48.6094 70.875 Q52.7812 70.1719 56.0781 67.9219 Q59.375 65.6719 61.5703 61.9375 Q63.7656 58.2031 63.7656 53.5625 Q63.7656 48.5312 61.0547 44.3359 Q58.3438 40.1406 53.7188 38.0312 Q60.25 36.1406 63.7656 31.5469 Q67.2812 26.9531 67.2812 20.75 Q67.2812 15.875 65.0156 11.2578 Q62.75 6.6406 58.8203 3.8828 Q54.8906 1.125 49.125 0.4844 Q45.5156 0.0938 31.6875 0 L7.3281 0 L7.3281 71.5781 ZM21.7812 59.6719 L21.7812 43.1094 L31.25 43.1094 Q39.7031 43.1094 41.75 43.3594 Q45.4531 43.7969 47.5781 45.9219 Q49.7031 48.0469 49.7031 51.5156 Q49.7031 54.8281 47.875 56.9062 Q46.0469 58.9844 42.4375 59.4219 Q40.2812 59.6719 30.0781 59.6719 L21.7812 59.6719 ZM21.7812 31.2031 L21.7812 12.0625 L35.1562 12.0625 Q42.9688 12.0625 45.0625 12.5 Q48.2969 13.0938 50.3203 15.3594 Q52.3438 17.625 52.3438 21.4375 Q52.3438 24.6562 50.7812 26.9062 Q49.2188 29.1562 46.2656 30.1797 Q43.3125 31.2031 33.4531 31.2031 L21.7812 31.2031 Z"
/></font
></defs
><g style="fill:white; stroke:white;"
><rect x="0" y="0" width="560" style="clip-path:url(#clipPath1); stroke:none;" height="420"
/></g
><g style="fill:white; text-rendering:optimizeSpeed; color-rendering:optimizeSpeed; image-rendering:optimizeSpeed; shape-rendering:crispEdges; stroke:white; color-interpolation:sRGB;"
><rect x="0" width="560" height="420" y="0" style="stroke:none;"
/><path style="stroke:none;" d="M85 216 L507 216 L507 51 L85 51 Z"
/></g
><g style="fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(102,102,102); color-interpolation:linearRGB; stroke-width:0.6667;"
><line y2="216" style="fill:none;" x1="85" x2="507" y1="216"
/><line y2="51" style="fill:none;" x1="85" x2="507" y1="51"
/><line y2="211.78" style="fill:none;" x1="85" x2="85" y1="216"
/><line y2="211.78" style="fill:none;" x1="507" x2="507" y1="216"
/><line y2="55.22" style="fill:none;" x1="85" x2="85" y1="51"
/><line y2="55.22" style="fill:none;" x1="507" x2="507" y1="51"
/><line y2="213.89" style="fill:none;" x1="85" x2="85" y1="216"
/><line y2="213.89" style="fill:none;" x1="212.0347" x2="212.0347" y1="216"
/><line y2="213.89" style="fill:none;" x1="286.3452" x2="286.3452" y1="216"
/><line y2="213.89" style="fill:none;" x1="339.0693" x2="339.0693" y1="216"
/><line y2="213.89" style="fill:none;" x1="379.9654" x2="379.9654" y1="216"
/><line y2="213.89" style="fill:none;" x1="413.3799" x2="413.3799" y1="216"
/><line y2="213.89" style="fill:none;" x1="441.6314" x2="441.6314" y1="216"
/><line y2="213.89" style="fill:none;" x1="466.104" x2="466.104" y1="216"
/><line y2="213.89" style="fill:none;" x1="487.6903" x2="487.6903" y1="216"
/><line y2="213.89" style="fill:none;" x1="507" x2="507" y1="216"
/><line y2="53.11" style="fill:none;" x1="85" x2="85" y1="51"
/><line y2="53.11" style="fill:none;" x1="212.0347" x2="212.0347" y1="51"
/><line y2="53.11" style="fill:none;" x1="286.3452" x2="286.3452" y1="51"
/><line y2="53.11" style="fill:none;" x1="339.0693" x2="339.0693" y1="51"
/><line y2="53.11" style="fill:none;" x1="379.9654" x2="379.9654" y1="51"
/><line y2="53.11" style="fill:none;" x1="413.3799" x2="413.3799" y1="51"
/><line y2="53.11" style="fill:none;" x1="441.6314" x2="441.6314" y1="51"
/><line y2="53.11" style="fill:none;" x1="466.104" x2="466.104" y1="51"
/><line y2="53.11" style="fill:none;" x1="487.6903" x2="487.6903" y1="51"
/><line y2="53.11" style="fill:none;" x1="507" x2="507" y1="51"
/><line y2="51" style="fill:none;" x1="85" x2="85" y1="216"
/><line y2="51" style="fill:none;" x1="507" x2="507" y1="216"
/><line y2="216" style="fill:none;" x1="85" x2="89.22" y1="216"
/><line y2="183" style="fill:none;" x1="85" x2="89.22" y1="183"
/><line y2="150" style="fill:none;" x1="85" x2="89.22" y1="150"
/><line y2="117" style="fill:none;" x1="85" x2="89.22" y1="117"
/><line y2="84" style="fill:none;" x1="85" x2="89.22" y1="84"
/><line y2="51" style="fill:none;" x1="85" x2="89.22" y1="51"
/><line y2="216" style="fill:none;" x1="507" x2="502.78" y1="216"
/><line y2="183" style="fill:none;" x1="507" x2="502.78" y1="183"
/><line y2="150" style="fill:none;" x1="507" x2="502.78" y1="150"
/><line y2="117" style="fill:none;" x1="507" x2="502.78" y1="117"
/><line y2="84" style="fill:none;" x1="507" x2="502.78" y1="84"
/><line y2="51" style="fill:none;" x1="507" x2="502.78" y1="51"
/></g
><g transform="translate(79.6667,216)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-20" xml:space="preserve" y="5.5" style="stroke:none;"
>-40</text
></g
><g transform="translate(79.6667,183)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-20" xml:space="preserve" y="5.5" style="stroke:none;"
>-30</text
></g
><g transform="translate(79.6667,150)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-20" xml:space="preserve" y="5.5" style="stroke:none;"
>-20</text
></g
><g transform="translate(79.6667,117)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-20" xml:space="preserve" y="5.5" style="stroke:none;"
>-10</text
></g
><g transform="translate(79.6667,84)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-8" xml:space="preserve" y="5.5" style="stroke:none;"
>0</text
></g
><g transform="translate(79.6667,51)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-15" xml:space="preserve" y="5.5" style="stroke:none;"
>10</text
></g
><g transform="translate(55.6667,133.4999) rotate(-90)" style="font-size:14.6667px; text-rendering:geometricPrecision; color-rendering:optimizeQuality; image-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB;"
><text x="-50.5" xml:space="preserve" y="-4" style="stroke:none;"
>Magnitude (dB)</text
></g
><g style="stroke-linecap:butt; fill:rgb(0,114,189); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(0,114,189); color-interpolation:linearRGB; stroke-width:0.6667;"
><path d="M84.9497 64.6661 L95.8205 68.0665 L117.4615 74.8357 L139.1026 81.6049 L160.7436 88.3742 L182.3846 95.1434 L204.0257 101.9126 L225.6667 108.6819 L247.3077 115.4511 L268.9487 122.2203 L290.5898 128.9896 L312.2308 135.7588 L333.8718 142.528 L355.5128 149.2973 L377.1538 156.0665 L398.7949 162.8357 L420.4359 169.6049 L442.0769 176.3742 L463.718 183.1434 L485.359 189.9126 L507 196.6819 L507.0503 196.6976" style="fill:none; fill-rule:evenodd;"
/></g
><g style="fill:white; text-rendering:optimizeSpeed; color-rendering:optimizeSpeed; image-rendering:optimizeSpeed; shape-rendering:crispEdges; stroke:white; color-interpolation:sRGB;"
><path style="stroke:none;" d="M85 374 L507 374 L507 228 L85 228 Z"
/></g
><g style="fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(102,102,102); color-interpolation:linearRGB; stroke-width:0.6667;"
><line y2="374" style="fill:none;" x1="85" x2="507" y1="374"
/><line y2="228" style="fill:none;" x1="85" x2="507" y1="228"
/><line y2="369.78" style="fill:none;" x1="85" x2="85" y1="374"
/><line y2="369.78" style="fill:none;" x1="507" x2="507" y1="374"
/><line y2="232.22" style="fill:none;" x1="85" x2="85" y1="228"
/><line y2="232.22" style="fill:none;" x1="507" x2="507" y1="228"
/><line y2="371.89" style="fill:none;" x1="85" x2="85" y1="374"
/><line y2="371.89" style="fill:none;" x1="212.0347" x2="212.0347" y1="374"
/><line y2="371.89" style="fill:none;" x1="286.3452" x2="286.3452" y1="374"
/><line y2="371.89" style="fill:none;" x1="339.0693" x2="339.0693" y1="374"
/><line y2="371.89" style="fill:none;" x1="379.9654" x2="379.9654" y1="374"
/><line y2="371.89" style="fill:none;" x1="413.3799" x2="413.3799" y1="374"
/><line y2="371.89" style="fill:none;" x1="441.6314" x2="441.6314" y1="374"
/><line y2="371.89" style="fill:none;" x1="466.104" x2="466.104" y1="374"
/><line y2="371.89" style="fill:none;" x1="487.6903" x2="487.6903" y1="374"
/><line y2="371.89" style="fill:none;" x1="507" x2="507" y1="374"
/><line y2="230.11" style="fill:none;" x1="85" x2="85" y1="228"
/><line y2="230.11" style="fill:none;" x1="212.0347" x2="212.0347" y1="228"
/><line y2="230.11" style="fill:none;" x1="286.3452" x2="286.3452" y1="228"
/><line y2="230.11" style="fill:none;" x1="339.0693" x2="339.0693" y1="228"
/><line y2="230.11" style="fill:none;" x1="379.9654" x2="379.9654" y1="228"
/><line y2="230.11" style="fill:none;" x1="413.3799" x2="413.3799" y1="228"
/><line y2="230.11" style="fill:none;" x1="441.6314" x2="441.6314" y1="228"
/><line y2="230.11" style="fill:none;" x1="466.104" x2="466.104" y1="228"
/><line y2="230.11" style="fill:none;" x1="487.6903" x2="487.6903" y1="228"
/><line y2="230.11" style="fill:none;" x1="507" x2="507" y1="228"
/></g
><g transform="translate(74,396)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>10</text
></g
><g transform="translate(89,390)" style="font-size:10.6667px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>0</text
></g
><g transform="translate(496,396)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>10</text
></g
><g transform="translate(511,390)" style="font-size:10.6667px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="0" xml:space="preserve" y="0" style="stroke:none;"
>1</text
></g
><g style="fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(102,102,102); color-interpolation:linearRGB; stroke-width:0.6667;"
><line y2="228" style="fill:none;" x1="85" x2="85" y1="374"
/><line y2="228" style="fill:none;" x1="507" x2="507" y1="374"
/><line y2="372.5686" style="fill:none;" x1="85" x2="89.22" y1="372.5686"
/><line y2="336.7843" style="fill:none;" x1="85" x2="89.22" y1="336.7843"
/><line y2="301" style="fill:none;" x1="85" x2="89.22" y1="301"
/><line y2="265.2157" style="fill:none;" x1="85" x2="89.22" y1="265.2157"
/><line y2="229.4314" style="fill:none;" x1="85" x2="89.22" y1="229.4314"
/><line y2="372.5686" style="fill:none;" x1="507" x2="502.78" y1="372.5686"
/><line y2="336.7843" style="fill:none;" x1="507" x2="502.78" y1="336.7843"
/><line y2="301" style="fill:none;" x1="507" x2="502.78" y1="301"
/><line y2="265.2157" style="fill:none;" x1="507" x2="502.78" y1="265.2157"
/><line y2="229.4314" style="fill:none;" x1="507" x2="502.78" y1="229.4314"
/></g
><g transform="translate(79.6667,372.5686)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-27" xml:space="preserve" y="5.5" style="stroke:none;"
>-181</text
></g
><g transform="translate(79.6667,336.7843)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-38" xml:space="preserve" y="5.5" style="stroke:none;"
>-180.5</text
></g
><g transform="translate(79.6667,301)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-27" xml:space="preserve" y="5.5" style="stroke:none;"
>-180</text
></g
><g transform="translate(79.6667,265.2157)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-38" xml:space="preserve" y="5.5" style="stroke:none;"
>-179.5</text
></g
><g transform="translate(79.6667,229.4314)" style="font-size:13.3333px; fill:rgb(102,102,102); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; stroke:rgb(102,102,102); color-interpolation:linearRGB;"
><text x="-27" xml:space="preserve" y="5.5" style="stroke:none;"
>-179</text
></g
><g transform="translate(37.6667,300.9999) rotate(-90)" style="font-size:14.6667px; text-rendering:geometricPrecision; color-rendering:optimizeQuality; image-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB;"
><text x="-40" xml:space="preserve" y="-4" style="stroke:none;"
>Phase (deg)</text
></g
><g style="stroke-linecap:butt; fill:rgb(0,114,189); text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; stroke-linejoin:round; stroke:rgb(0,114,189); color-interpolation:linearRGB; stroke-width:0.6667;"
><path d="M84.9497 301 L95.8205 301 L117.4615 301 L139.1026 301 L160.7436 301 L182.3846 301 L204.0257 301 L225.6667 301 L247.3077 301 L268.9487 301 L290.5898 301 L312.2308 301 L333.8718 301 L355.5128 301 L377.1538 301 L398.7949 301 L420.4359 301 L442.0769 301 L463.718 301 L485.359 301 L507 301 L507.0503 301" style="fill:none; fill-rule:evenodd;"
/></g
><g transform="translate(295,44.7)" style="font-size:14.6667px; text-rendering:geometricPrecision; image-rendering:optimizeQuality; color-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB; font-weight:bold;"
><text x="-63" xml:space="preserve" y="-4" style="stroke:none;"
>Bode système rail</text
></g
><g transform="translate(295,398.6667)" style="font-size:14.6667px; text-rendering:geometricPrecision; color-rendering:optimizeQuality; image-rendering:optimizeQuality; font-family:'SansSerif'; color-interpolation:linearRGB;"
><text x="-60" xml:space="preserve" y="15" style="stroke:none;"
>Frequency (rad/s)</text
></g
></g
></svg
>

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -0,0 +1,306 @@
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="560" height="420" xmlns="http://www.w3.org/2000/svg"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
/><g
><defs id="defs1"
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
><path d="M0 0 L560 0 L560 420 L0 420 L0 0 Z"
/></clipPath
></defs
><g style="fill:white; stroke:white;"
><rect x="0" y="0" width="560" style="clip-path:url(#clipPath1); stroke:none;" height="420"
/></g
><g
><image x="0" y="0" width="560" xlink:href="data:image/png;base64,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" style="clip-path:url(#clipPath1);" height="420" preserveAspectRatio="none"
/></g
></g
></svg
>

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 116 KiB

BIN
presentation/main.pdf Normal file

Binary file not shown.

457
presentation/main.tex Normal file
View file

@ -0,0 +1,457 @@
\documentclass{beamer}
\mode<presentation>
{
\usetheme{JuanLesPins} % or try default, Madrid, Darmstadt, Warsaw, JuanLesPins, ...
% \AtBeginSection[]{ % Uncomment to add section pages automatically
% \begin{frame}
% \vfill
% \centering
% \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
% \usebeamerfont{title}\insertsectionhead\par%
% \end{beamercolorbox}
% \vfill
% \end{frame}
% }
\usecolortheme{default} % or try albatross, beaver, crane, ...
\usefonttheme{serif} % or try default, structurebold, ...
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{caption}[numbered]
}
\usepackage[french]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
%%Bibliotek for blokksjema
\usepackage{tikz}
\usetikzlibrary{shapes, arrows.meta, positioning}
\usetikzlibrary{decorations.pathreplacing}
\tikzstyle{block} = [draw, fill=white, rectangle,
minimum height=3em, minimum width=6em]
\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm]
\tikzstyle{input} = [coordinate]
\tikzstyle{output} = [coordinate]
\tikzstyle{pinstyle} = [pin edge={to-,thin,black}]
% On Overleaf, these lines give you sharper preview images.
% You might want to `comment them out before you export, though.
%\usepackage{pgfpages}
%\pgfpagesuselayout{resize to}[%physical paper width=33.87cm, physical paper height=19.05cm]
% Here's where the presentation starts, with the info for the title slide
\title[Miniprojet automation]{Miniprojet automation - bille sur rail}
\author[ORVIK, JOHNSEN et TABAN]{ORVIK Oskar, JOHNSEN Brage \& TABAN Aleksander}
\institute{INSA Toulouse - DGEI - 4AE-SE}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Sommaire}
\tableofcontents
\end{frame}
\section{Introduction}
\begin{frame}[fragile]
\frametitle{Introduction}
Le bille sur rail est une manipulation où le but est de stabiliser une bille sur un rail. Le rail est commandé par une tension, et les données lues sont l'angle du rail et la position de la bille. La position est achevé à l'aide d'un lecture d'impedance.
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{./Illustrations/Schema_Forces.png}
\caption{Schèma de forces de la bille sur rail}
\label{fig:forces}
\end{figure}
\end{frame}
\section{Identification du système rail}
\subsection{Analyse du schèma bloc du système rail}
\begin{frame}[fragile]
\frametitle{Analyse du schèma bloc du système rail}
L'identification du système se fait en bouclé fermé.
\begin{figure}[H]
\centering
\begin{tikzpicture}[auto, node distance=2cm,>=latex]
\node [input, name=input] {};
\node [sum, right of=input] (sum) {};
%%\node [block, right of=sum] (controller) {};
\node [block, right of=sum,
node distance=3cm] (system) {$G_{Rail}(p)$};
\draw [->] (sum) -- node[name=u] {$u$} (system);
\node [output, right of=system] (output) {};
%\node [block, below of=u] (measurements) {Measurements};
\coordinate [below of=u] (measurements) {};
\draw [draw,->] (input) -- node {$r$} (sum);
%\draw [->] (sum) -- node {$e$} (system);
\draw [->] (system) -- node [name=y] {$y$}(output);
%\draw [->] (y) |- (measurements);
\draw [-] (y) |- (measurements);
%\draw [->] (measurements) -| node[pos=0.99] {$-$}
\draw [->] (measurements) -| %node[pos=1.00] {$-$}
node [near end] {$y_m$} (sum);
\coordinate [below=1.7cm of sum] (u1) {};
\coordinate [below=1.88cm of y] (u2) {};
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
(u1.south west) -- (u2.south east)
node[midway, below=10pt] {$H(p)$};
\end{tikzpicture}
\caption{Schèma-bloc décrivant le système rail}
\label{fig:rail}
\end{figure}
\end{frame}
\subsection{Mise en œuvre de N4SID}
\begin{frame}[fragile]
\frametitle{Mise en œuvre de N4SID}
Nous utilisons la fonction MATLAB "multisine()" pour générer un signal de test de ce système.
\begin{figure}[H]
\centering
\includegraphics[scale=0.2, ]{./Illustrations/multisine1.png}
\caption{Le signal d'entrée, de type "multisine" entre 0.1Hz et 4Hz}
\label{fig:multisine}
\end{figure}
\end{frame}
\subsection{Test du modèle obtenu avec N4SID}
\begin{frame}[fragile]
\frametitle{Test du modèle obtenu avec N4SID}
Nous trouvons la fonction de transfert en utilisant la fonction MATLAB "n4sid()" en temporel et frequentiel.
\begin{figure}[H]
\centering
\includegraphics[scale=0.45, trim= 0 0.7cm 0 0.7cm, clip]{./Illustrations/fig2.png}
\caption{Comportement des differents modèles obtenus}
\label{fig:modeles}
\end{figure}
\vspace{-1em}
Après comparaison, nous avons choisi "temporel ordre 2".
\end{frame}
\subsection{Fonction transfert du système: Rail}
\begin{frame}
\frametitle{Fonction transfert du système: Rail}
Cela nous avait mené à résumer le systeme du rail à la fonction de transfert suivante :
\begin{equation*}
\boxed{H(z) = \frac{0,2977 z^{-1} - 0,2962 z^{-2}}{1 - 1,825 z^{-1} + 0,8496 z^{-2}}}
\end{equation*}
\vspace{1em}
Après avoir trouvé le modèle souhaité, nous avons ensuite retrouvé la vraie fonction transfert du rail aprés un d2c() :
\begin{equation*}
H(p)=\frac{G(p)}{1+G(p)}\Rightarrow G(p)=\frac{H(p)}{1-H(p)}
\end{equation*}
\end{frame}
\subsection{Calcul du correcteur du système : $K_p$}
\begin{frame}
\frametitle{Calcul du correcteur du système : $K_p$}
Nous avons conçu un retour PID pour le système du rail. Après avoir parlé avec le professeur, il nous a dit que le système est déjà equipé d'un integrateur. Donc nous avons choisi un système bouclé avec un simple correcteur P. Comme nous pouvons voir ci-dessous:
\begin{figure}
\centering
\begin{tikzpicture}[auto, node distance=2cm,>=latex]
\node [input, name=input] {};
\node [sum, right of=input] (sum) {};
\node [block, right of=sum] (controller) {Correcteur : $K_p$};
\node [block, right of=controller,
node distance=3cm] (system) {$G_{Rail}(p)$};
\draw [->] (controller) -- node[name=u] {$u$} (system);
\node [output, right of=system] (output) {};
%\node [block, below of=u] (measurements) {Measurements};
\coordinate [below of=u] (measurements) {};
\draw [draw,->] (input) -- node {$r$} (sum);
\draw [->] (sum) -- node {$e$} (controller);
\draw [->] (system) -- node [name=y] {$y$}(output);
%\draw [->] (y) |- (measurements);
\draw [-] (y) |- (measurements);
%\draw [->] (measurements) -| node[pos=0.99] {$-$}
\draw [->] (measurements) -| %node[pos=1.00] {$-$}
node [near end] {$y_m$} (sum);
\coordinate [below=1.7cm of sum] (u1) {};
\coordinate [below=1.88cm of y] (u2) {};
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
(u1.south west) -- (u2.south east)
node[midway, below=10pt] {$H_C(p)$};
\end{tikzpicture}
\caption{Schèma-bloc décrivant le système rail avec correcteur}
\label{fig:rail_correcteur}
\end{figure}
\end{frame}
\begin{frame}
Après avoir conçu le système avec n4sid(), nous avons retrouvé la fonction de transfert :
\begin{equation*}
H(p) = \frac{6,464p + 0,6686}{p^2 + 3,261 p + 10,52}
\end{equation*}
À l'aide de la fonction de transfert du système rail, nous avons recalculé la nouvelle fonction transferte avec le gain proportionnel en boucle fermée :
\begin{center}
$$ G(p)=\frac{H(p)}{1-H(p)} = \frac {5,564 p^3 + 18,72 p^2 + 60,43 p + 6,058 }{p ^4 + 0,5397 p ^3 + 10,14 p ^2 - 0,9659 p + 89,3 } $$
$$ G_{BF \ K_p}(p)=\frac{K_p G(p)}{1+K_p G(p)} $$
\end{center}
\end{frame}
\begin{frame}
Finalement, on essaie des valeurs différentes pour P pour observer le temps de réponse en boucle fermée avec correcteur.
\begin{figure}
\centering
\includegraphics[scale=0.4]{./Illustrations/StepRespnseRail.png}
\caption{Réponse à un échelon avec des $K_p$ différents }
\label{fig:test_gain}
\end{figure}
Nous avons choisi $\boxed{K_p = 1}$, bien rapide.
\end{frame}
\section{Loi de commande du bille sur rail}
\subsection{Système bouclé avec la bille}
\begin{frame}
\frametitle{Système bouclé avec la bille}
\begin{figure}
\scalebox{0.65}{\begin{tikzpicture}[auto, node distance=2cm,>=latex]
\node [input, name=input] {};
%Bloc pos/tension
\node [block, right of=input] (Kb) {$K_b$};
%Somme de erreur
\node [sum, right of=Kb, node distance=2.5cm] (sum2) {};
% First controller (Tc) AFTER input
\node [block, right of=sum2] (Tc) {$T_c$};
% Sum AFTER Tc
\node [sum, right of=Tc, node distance=3cm] (sum) {};
% Second controller (P) AFTER sum
\node [block, right of=sum] (Pctrl) {$Controleur : K_p$};
% System
\node [block, right of=Pctrl, node distance=3cm] (system) {$G_{Rail}(p)$};
% Output
\node [output, right of=system] (output) {};
% Connections
\draw [->] (input) -- node {$x_c$} (Kb);
\draw [->] (Kb) -- node {$V_x$} (sum2);
\draw [->] (sum2) -- node {$\epsilon$} (Tc);
\draw [->] (Tc) -- node {$r$} (sum);
\draw [->] (sum) -- node {$e$} (Pctrl);
\draw [->] (Pctrl) -- node[name=u] {$u$} (system);
\draw [->] (system) -- node[name=y] {$V_\theta$} (output);
% Feedback path
\coordinate [below of=u] (measurements) {};
\draw [-] (y) |- (measurements);
\draw [->] (measurements) -| node [near end] {$V_\theta$} (sum);
% Feedback path 2
\coordinate [below=2.7cm of sum2] (measurements2) {};
\draw [-] (y) |- (measurements2);
\draw [->] (measurements2) -| node [near end] {$V_\theta$} (sum2);
% Brace 1
\coordinate [below=1.7cm of sum] (u1) {};
\coordinate [below=1.88cm of y] (u2) {};
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
(u1.south west) -- (u2.south east)
node[midway, below=10pt] {$H_C(p)$};
% Brace 2
\coordinate [below=2.8cm of sum2] (u3) {};
\coordinate [below=3cm of y] (u4) {};
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
(u3.south west) -- (u4.south east)
node[midway, below=10pt] {$H(p)$};
\end{tikzpicture}}
\caption{Schèma-bloc décrivant le système bille sur rail en entier}
\label{fig:bille}
\end{figure}
Nous aimerions que l'entrée du système soit une position souhaité pour la bille, entre -50cm et +50cm. Commençons donc par trouver un $K_b$ pour transformer la position en tension.
\end{frame}
\subsection{Transformation position - tension}
\begin{frame}
\frametitle{Transformation position - tension}
Nous avons calculé la fonction de transfert à partir des equations mecaniques :
\begin{equation*}
\sum F_x = m \ddot{x} = mg \sin(\theta(t))
\end{equation*}
Or, $\theta\approx0$. Nous pouvons donc simplifier avec :
\begin{equation*}
\sin(\theta)\approx\theta
\end{equation*}
Ce qui nous donne :
\begin{equation*}
m\ddot{x}(t) = mg\theta(t)
\end{equation*}
Puis en passant par la transformée de Laplace, nous obtenons :
\begin{equation*}
p^2 X(p)=g\Theta(p)\Leftrightarrow\frac{X(p)}{\Theta(p)}=\frac{g}{p^2} \Rightarrow \boxed{\frac{V_x(p)}{V_\theta(p)}=K_b \frac{g}{p^2}}
\end{equation*}
\end{frame}
\begin{frame}
Pour calculer le \textit{$K_b$} nous avons fait une regression linéaire.
\begin{figure}
\centering
\includegraphics[scale=0.4]{./Illustrations/Regression_pos_volt.png}
\caption{Relation entre la position de la bille et la tension de sortie du système pour faire une régression linéaire}
\label{fig:regression}
\end{figure}
Ceci nous à donné, dans Microslop Excel, $\boxed{K_b = 1.926}$.
\end{frame}
\subsection{Analyse des frequences importantes au système}
\begin{frame}
\frametitle{Analyse des frequences importantes au système}
Pour cette deuxième boucle du système, nous commençons par tracer le diagramme de Bode du système bille sur rail.
\begin{figure}
\centering
\includegraphics[scale=0.4]{./Illustrations/bodeRail1.png}
\caption{Diagramme de Bode système rail sans bille}
\label{fig:bode_rail}
\end{figure}
\vspace{-1em}
Le correcteur choisit est un correcteur avance de phase.
\end{frame}
\begin{frame}
Le point critique où il faut ajouter de la marge de phase est quand la magnitude est à 0dB, c.à.d. à 1,4 rad/s. Donc on concoit le correcteur avance de phase pour cela. Le correcteur d'avance de phase a une fonction de transfert sur la forme canonique\footnote{\href{https://homepages.laas.fr/fgouaisb/donnees/M1ICM/slidesM1ICMp8.pdf}{https://homepages.laas.fr/fgouaisb/donnees/M1ICM/slidesM1ICMp8.pdf}} :
\begin{equation*}
T_c(p) = K_p \frac{1 + \alpha T p}{1 + T p} \ , \ avec \ \alpha \ > \ 1
\end{equation*}
\end{frame}
\subsection{Calcul des paramètres du correcteur avance de phase}
\begin{frame}
\frametitle{Calcul des paramètres du correcteur avance de phase}
Commençons par calculer la marge de phase désirée :
\begin{equation*}
\Theta_{Marge}=\Theta_{Desir\acute{e}e} - \Theta_{Systeme} = 125^\circ \Rightarrow \Theta_{Desir\acute{e}e} = 55^\circ
\end{equation*}
Puis, calculons $\alpha$ :
\begin{equation*}
\alpha = \frac {1 + \sin(\Theta)}{1 - \sin(\Theta)} = \frac {1 + \sin(55^\circ)}{1 - \sin(55^\circ)} \approx 10
\end{equation*}
Enfin, calculons T :
\begin{equation*}
T = \frac{1}{\omega_m*\sqrt{\alpha}} \Rightarrow T = \frac{1}{1.4*\sqrt 10} \approx 0,22
\end{equation*}
\end{frame}
\begin{frame}
Ceci nous donne un correcteur avance de phase :
\begin{equation*}
\boxed{T_c(p) = \frac{1+2,2p}{1+0,22p}}
\end{equation*}
\begin{figure}
\centering
\includegraphics[scale=0.5]{./Illustrations/bodeCorrecteur.png}
\caption{Diagramme de Bode du correcteur avance de phase}
\label{fig:bode_avance_phase}
\end{figure}
\end{frame}
\section{Vérification}
\subsection{Vérfication expérimentale}
\begin{frame}
\frametitle{Vérfication expérimentale}
\vfill
\centering
\begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
\usebeamerfont{title}\Huge\textbf{\textrightarrow\ Démonstration \textleftarrow}
\end{beamercolorbox}
\vfill
\end{frame}
\subsection{Vérfication de la marge de phase}
\begin{frame}
\frametitle{Vérfication de la marge de phase}
En utilisant la fonction de allmargin nous trouvons la marge de phase pour le système entier en boucle fermé.
\begin{figure}
\centering
\includegraphics[scale = 0.5]{./Illustrations/allmarginBode.png}
\caption{Diagramme de Bode du système entier}
\label{fig:bode_allmargin}
\end{figure}
\end{frame}
\section{Conclusion}
\begin{frame}
\frametitle{Conclusion}
\begin{center}
\large \textbf {La boucle est bouclée et la bille est commandée.} \\
\vspace{2em}
ORVIK Oskar, JOHNSEN Brage \& TABAN Aleksander
\end{center}
\end{frame}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 KiB

Binary file not shown.

BIN
rapport/Figures/ESP8266.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

BIN
rapport/Figures/F0.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

14
rapport/IA.tex Normal file
View file

@ -0,0 +1,14 @@
\section*{Statement on AI Usage}
The authors acknowledge the use of generative AI tools during this project, both for the development work and for writing this paper.
AI was used as a helper in several parts of the project. This includes support for understanding and structuring technical ideas, and giving suggestions during the development of different subsystems. It was also used to help with writing, rephrasing, and improving clarity in the report.
However, all final decisions, implementations, and validations were done by the authors. The AI outputs were always checked, corrected when needed, and adapted based on reliable technical sources and our own experiments and understanding of the system.
We consider AI as a useful tool to speed up thinking and writing, but not as a source of final technical truth. Everything related to design choices, analysis, and results was verified and fully controlled by the authors.
The use of AI tools in this work follows the IEEE guidelines for generative AI usage in publications.

323
rapport/PIR_MadMax3.bib Normal file
View file

@ -0,0 +1,323 @@
@inproceedings{patil_analysis_2025,
location = {{BELGAUM}, India},
title = {Analysis of {FOC} \& Trapezoidal Method of {PMSM} Motor for Variable Speed Application},
rights = {https://doi.org/10.15223/policy-029},
isbn = {979-8-3315-1873-8 979-8-3315-3103-4},
url = {https://ieeexplore.ieee.org/document/11140901/},
doi = {10.1109/INCET64471.2025.11140901},
abstract = {This study compares Field-Oriented Control ({FOC}) and trapezoidal control techniques for Permanent Magnet Synchronous Motors ({PMSMs}) in modern industrial variable-speed applications. Traditionally, variable-speed applications have relied on {DC} machines, which have inherent drawbacks such as increased maintenance, spark losses, higher inertia, and overall higher costs. This {FOC} has emerged as a sophisticated method that enables independent control of torque and magnetization flux in {AC} motors, allowing for precise regulation of torque and speed tailored to the motor's electromagnetic state. {FOC} leverages Sinusoidal Pulse-Width Modulation ({SPWM}) and Space Vector Pulse Width Modulation ({SVPWM}) techniques to enhance {DC} voltage utilization and minimize switching and harmonic losses. In contrast, the paper presents a detailed model of a {PMSM} drive system based on electronic components rather than standard mathematical blocks, leading to more realistic simulation results. All simulation modules, including the inverter and {PWM} generator, were custom-built, allowing for performance comparison under varying speed and torque conditions. Brushless {DC} ({BLDC}) motors, which are typically categorized as {PMSMs} with trapezoidal back-{EMF} waveforms, have gained traction due to their simplicity and cost-effectiveness. The trapezoidal control technique, also known as six-step commutation, simplifies the control process by aligning motor phase switching with the rotor position, resulting in a quasi-square-wave current. However, this method introduces torque ripple and presents control challenges, particularly in low-speed applications. Given the rising economic constraints and stringent governmental standards, there is an increasing demand for efficient, lowinterference, and adaptable electrical systems. This study demonstrates that {FOC} provides a more robust and efficient solution for high-performance applications than the trapezoidal control technique in {PMSMs}.},
eventtitle = {2025 6th International Conference for Emerging Technology ({INCET})},
pages = {1--9},
booktitle = {2025 6th International Conference for Emerging Technology ({INCET})},
publisher = {{IEEE}},
author = {Patil, Harshal and Argade, Sachin and Mulla, Aabid and Bharambe, Suraj and Barve, Hrishikesh and Suryawanshi, Rohit},
urldate = {2025-12-27},
date = {2025-05-23},
langid = {english},
file = {PDF:C\:\\Users\\nolan\\Zotero\\storage\\GIW7I2E7\\Patil et al. - 2025 - Analysis of FOC & Trapezoidal Method of PMSM Motor for Variable Speed Application.pdf:application/pdf},
}
@inproceedings{lee_advanced_2001,
location = {Cambridge, {MA}, {USA}},
title = {Advanced {BLDC} motor drive for low cost and high performance propulsion system in electric and hybrid vehicles},
isbn = {978-0-7803-7091-3},
url = {http://ieeexplore.ieee.org/document/939307/},
doi = {10.1109/IEMDC.2001.939307},
abstract = {In this paper, we propose an advanced brushless dc motor ({BLDCM}) drive for low cost and high performance electric propulsion system in electricvehicles ({EV}’s) and hybrid electric vehicles ({HEV}’s). It includes reduced parts power converter topologies and an optimal {PWM} control strategy to produce the desired dynamic and static speed and torque characteristics. The theoretical explanation and operational principle are described in detail. And, the performance of the proposed low cost {BLDCM} drive is, compared with the conventional counterpart by informative simulation results.},
eventtitle = {International Electric Machines and Drives Conference - {IEMDC} 2001},
pages = {246--251},
booktitle = {{IEMDC} 2001. {IEEE} International Electric Machines and Drives Conference (Cat. No.01EX485)},
publisher = {{IEEE}},
author = {Lee, B.K. and Ehsani, M.},
urldate = {2025-12-27},
date = {2001},
langid = {english},
file = {PDF:C\:\\Users\\nolan\\Zotero\\storage\\M2ZRVZXS\\Lee et Ehsani - 2001 - Advanced BLDC motor drive for low cost and high performance propulsion system in electric and hybrid.pdf:application/pdf},
}
@inproceedings{mohammd_taher_new_2021,
location = {Tabriz, Iran},
title = {A New {MPC}-based Approach for Torque Ripple Reduction in {BLDC} Motor Drive},
isbn = {978-1-6654-0366-5},
url = {https://ieeexplore.ieee.org/document/9405871/},
doi = {10.1109/PEDSTC52094.2021.9405871},
abstract = {In this paper, a new model predictive control ({MPC}) is proposed for brushless {DC} motor ({BLDCM}) to reduce the commutation torque ripple ({CTR}). The torque ripples generate vibration noise and reduce the efficiency. With purpose of minimizing the {CTR} of the {BLDCM} and considering the {CTR} sources, the proposed {MPC} scheme is designed by predicting the phase current and electromagnetic torque. The error square of predicted values of non-commutating current and electromagnetic torque, which are minimized in the cost function, determines the optimal switching states. The proposed {MPC} control is applied at commutation moments which is detected by analysis of Hall sensor signal. This control scheme is implemented on the traditional topology of the {BLDCM} driving system which facilitates the implementation. Considering a 210V-2000W {BLDCM}, the comparative analysis using the {MATLAB}/Simulink environment is carried out in terms of the {CTR} reduction, tracking of the reference current under low-speed, high-speed and load torque tracking. The key parameters’ responses of {BLDCM} illustrate the improvement of the {CTR}, fast-transient response and small steady-state errors by using the proposed {MPC} against the conventional {PI}-{PWM}.},
eventtitle = {2021 12th Power Electronics, Drive Systems, and Technologies Conference ({PEDSTC})},
pages = {1--6},
booktitle = {2021 12th Power Electronics, Drive Systems, and Technologies Conference ({PEDSTC})},
publisher = {{IEEE}},
author = {Mohammd Taher, Seyed and Halvaei Niasar, Abolfazl and Abbas Taher, Seyed},
urldate = {2025-12-27},
date = {2021-02-02},
langid = {english},
file = {PDF:C\:\\Users\\nolan\\Zotero\\storage\\9RNPM3Z5\\Mohammd Taher et al. - 2021 - A New MPC-based Approach for Torque Ripple Reduction in BLDC Motor Drive.pdf:application/pdf},
}
@inproceedings{jomsa-nga_torque_2024,
title = {Torque Ripple Mitigation Using Field Oriented Control for {BLDC} in Small Electric Vehicles},
url = {https://ieeexplore.ieee.org/document/11004292/},
doi = {10.1109/ISC260477.2024.11004292},
abstract = {This study introduces a motor control strategy suitable for small electric vehicles, aimed at supporting the Smart City framework. The Field Oriented Control ({FOC}) method is utilized to control Brushless {DC} Motors ({BLDC}) which are chosen for their numerous advantages such as highpower density, superior starting torque, lightweight design, and cost-effectiveness when compared to Permanent Magnet Synchronous Motors ({PMSM}). These characteristics make {BLDC} motors highly suitable for electric motorcycles and other small electric vehicles. However, {BLDC} motors have the drawback of high torque ripple which results in reduced ride comfort and increased mechanical stress. To address this issue, the study employs the {FOC} method which effectively reduces torque ripple, noise, and vibration compared to the traditional Six Step control method. The efficacy of the proposed method has been validated through simulation results obtained using {PSIM} software, as well as through experimental outcomes.},
eventtitle = {2024 {IEEE} International Smart Cities Conference ({ISC}2)},
pages = {1--6},
booktitle = {2024 {IEEE} International Smart Cities Conference ({ISC}2)},
author = {Jomsa-Nga, Jirapong and Teesakul, Pinmanus and Tanjaroen, Wason and Supatti, Uthane},
urldate = {2025-12-17},
date = {2024-10},
note = {{ISSN}: 2687-8860},
keywords = {{BLDC}, Brushless {DC} motors, Brushless {DC} Motors, Electric Motorcycle, Electric vehicles, Electric Vehicles, {FOC}, Motorcycles, Noise, Simulation, Small Electric Vehicles, Smart cities, Smart city, Testing, Torque, Torque measurement, Torque Ripple, Vibrations},
file = {Full Text PDF:C\:\\Users\\nolan\\Zotero\\storage\\6S3FC5Z7\\Jomsa-Nga et al. - 2024 - Torque Ripple Mitigation Using Field Oriented Control for BLDC in Small Electric Vehicles.pdf:application/pdf},
}
@inproceedings{li_quantitative_2019,
title = {Quantitative Characteristic Comparison between Sensorless Six Step and Field Oriented Control Methods for Permanent Magnet Brushless {DC} Motors},
url = {https://ieeexplore.ieee.org/document/8912478/},
doi = {10.1109/ECCE.2019.8912478},
abstract = {Permanent magnet ({PM}) brushless {DC} motors ({BLDCM}) have the advantages of high power density, high efficiency, simple structure and high reliability. {BLDCM} can be categorized into either trapezoidal back-electromotive ({EMF}) motor type, or sinusoidal back-{EMF} motor. There are typically two {BLDCM} control methods: One is six step control method which is easy to realize with simple hardware, the other is field oriented control ({FOC}) method which has better control performance. This paper compares quantitatively the characterization between these two {BLDC} control methods, with respect to torque ripple and power losses. Theoretical analysis and simulation studies are presented to illustrate their advantages and disadvantages. Experimental verification is conducted using a 48V, 4-pole, 4500RPM {BLDC} motor.},
eventtitle = {2019 {IEEE} Energy Conversion Congress and Exposition ({ECCE})},
pages = {1881--1885},
booktitle = {2019 {IEEE} Energy Conversion Congress and Exposition ({ECCE})},
author = {Li, Feilang and Yao, Wenxi and Lee, Kevin},
urldate = {2025-12-17},
date = {2019-09},
note = {{ISSN}: 2329-3748},
keywords = {Torque, Torque measurement, field oriented control, Mathematical model, {MOSFET}, Permanent magnet brushless {DC} motor, power loss, six step control, Stator windings, Switches, torque ripple},
file = {Full Text PDF:C\:\\Users\\nolan\\Zotero\\storage\\32AFSS22\\Li et al. - 2019 - Quantitative Characteristic Comparison between Sensorless Six Step and Field Oriented Control Method.pdf:application/pdf},
}
@inproceedings{bhatiya_bldc_2024,
title = {{BLDC} Motor Trapezoidal Regulation Using Hall Effect Sensor},
url = {https://ieeexplore.ieee.org/document/10829278/},
doi = {10.1109/ICISAA62385.2024.10829278},
abstract = {{BLDC} motors provide excellent performance, durability, and efficiency, making them ideal for a variety of applications. The motor was operated by means of the six-step commutation process of the trapezoidal control approach, which was applied to the exact rotor position data obtained via Hall effect sensors. This approach perfectly times the commutation sequence, reducing torque ripple and improving motor performance. The design, modeling, and experimental findings validated the effectiveness of the proposed control technique, suggesting that it can be used to maximize {BLDC} motor performance in commercial and industrial applications.},
eventtitle = {2024 International Conference on Intelligent Systems and Advanced Applications ({ICISAA})},
pages = {1--6},
booktitle = {2024 International Conference on Intelligent Systems and Advanced Applications ({ICISAA})},
author = {Bhatiya, Hansa and Patil, Dushyant and Makune, Shriram and Kadam, Swaraj and Mahajan, Vishal and Vaidya, Harshal},
urldate = {2025-12-17},
date = {2024-10},
keywords = {Torque measurement, {BLDC} motor, Commutation, Hall effect, Hall effect sensors, Motor control strategy, Process control, Regulation, Reliability, Rotors, Sensors, Stability analysis, Trapezoidal control, Velocity control},
file = {Full Text PDF:C\:\\Users\\nolan\\Zotero\\storage\\J9NQ9CM8\\Bhatiya et al. - 2024 - BLDC Motor Trapezoidal Regulation Using Hall Effect Sensor.pdf:application/pdf},
}
@inproceedings{m_speed_2025,
title = {Speed Control of Six Step Commutation Trapezoidal by Fuzzy Logic Control of {BLDC} Motor for E-Vehicle},
url = {https://ieeexplore.ieee.org/document/11113877},
doi = {10.1109/ICOECA66273.2025.00076},
abstract = {This paper demand for efficient and sustainable transportation solutions has driven the widespread adoption of Electric Vehicles ({EVs}). Brushless {DC} motors emerging as a popular choice for their high effectiveness, reliability, and low maintenance. This project focuses on the speed control of {BLDC} motors in {EVs} using trapezoidal control fuzzy logic techniques. Trapezoidal control, a common approach for {BLDC} motor commutation, is explored for its advantages in smooth speed control and reduced harmonic distortion. A speed control fuzzy logic algorithm is developed to adjust the motor speed vigorously created on the vehicle's operational requirements, ensuring efficient energy. The system uses the six-step commutation approach to produce the required signals that regulate the inverter that powers of {BLDC} motor while monitoring the motor's speed, current, and rotor position in real-time. The efficiency of the suggested speed control strategy is confirmed by the presentation of simulation results, focusing on achieving rapid acceleration, maintaining a steady cruising speed, and improving torque efficiency.},
eventtitle = {2025 5th International Conference on Expert Clouds and Applications ({ICOECA})},
pages = {407--412},
booktitle = {2025 5th International Conference on Expert Clouds and Applications ({ICOECA})},
author = {M, Kirubaharan and S, Haribaskar and Gopalakrishnan, R. and E, Chandrakumar and R, Satheeshkumar},
urldate = {2025-12-17},
date = {2025-03},
keywords = {Simulation, Torque, Commutation, Rotors, Velocity control, {BLDC} Motor, Fuzzy logic, Monitoring, Real-time systems, six-step commutation, Speed control of {EV}, System performance, Transportation, trapezoidal control fuzzy logic techniques},
file = {PDF:C\:\\Users\\nolan\\Zotero\\storage\\JV793P7X\\M et al. - 2025 - Speed Control of Six Step Commutation Trapezoidal by Fuzzy Logic Control of BLDC Motor for E-Vehicle.pdf:application/pdf},
}
@inproceedings{farid_performance_2007,
title = {Performance analysis of field-oriented control and direct torque control for sensorless induction motor drives},
url = {https://ieeexplore.ieee.org/document/4433783},
doi = {10.1109/MED.2007.4433783},
abstract = {This paper presents a contribution for detailed comparison between two sensorless control techniques for high performance induction motor drives: Field-oriented control ({FOC}) and direct torque control ({DTC}). The main characteristics of field-oriented control and direct torque control schemes are studied by simulation emphasizing their advantages and disadvantages. The performances of the two control schemes are evaluated in terms of torque and current ripples, and transient responses to load toque variation. We can nevertheless say that the two control schemes provide in their basic configuration, comparable performances regarding the torque control and parameter sensitivity. We can note a slight advance of {DTC} scheme compared to {FOC} scheme regarding the dynamic flux control performance and the implementation complexity. The choice of one or the other scheme will depend mainly on specific requirements of the application.},
eventtitle = {2007 Mediterranean Conference on Control \& Automation},
pages = {1--6},
booktitle = {2007 Mediterranean Conference on Control \& Automation},
author = {Farid, Naceri and Sebti, Belkacem and Mebarka, Kercha and Tayeb, Benmokrane},
urldate = {2025-12-17},
date = {2007-06},
keywords = {Induction motor drives, Induction motors, Open loop systems, Performance analysis, Performance evaluation, Pulse width modulation, Sensorless control, Stators, Torque control, Voltage},
file = {Full Text PDF:C\:\\Users\\nolan\\Zotero\\storage\\QS3AXW4G\\Farid et al. - 2007 - Performance analysis of field-oriented control and direct torque control for sensorless induction mo.pdf:application/pdf},
}
@collection{tan_advances_2013,
location = {Berlin, Heidelberg},
title = {Advances in Swarm Intelligence: 4th International Conference, {ICSI} 2013, Harbin, China, June 12-15, 2013, Proceedings, Part {II}},
volume = {7929},
rights = {https://www.springernature.com/gp/researchers/text-and-data-mining},
isbn = {978-3-642-38714-2 978-3-642-38715-9},
url = {https://link.springer.com/10.1007/978-3-642-38715-9},
series = {Lecture Notes in Computer Science},
shorttitle = {Advances in Swarm Intelligence},
abstract = {The Design and Implementation of Motor Drive
for an Electric Bicycle},
publisher = {Springer Berlin Heidelberg},
editor = {Tan, Ying and Shi, Yuhui and Mo, Hongwei},
editorb = {Hutchison, David and Kanade, Takeo and Kittler, Josef and Kleinberg, Jon M. and Mattern, Friedemann and Mitchell, John C. and Naor, Moni and Nierstrasz, Oscar and Pandu Rangan, C. and Steffen, Bernhard and Sudan, Madhu and Terzopoulos, Demetri and Tygar, Doug and Vardi, Moshe Y. and Weikum, Gerhard},
editorbtype = {redactor},
urldate = {2025-12-17},
date = {2013},
langid = {english},
doi = {10.1007/978-3-642-38715-9},
file = {PDF:C\:\\Users\\nolan\\Zotero\\storage\\BVFW45SK\\Tan et al. - 2013 - Advances in Swarm Intelligence 4th International Conference, ICSI 2013, Harbin, China, June 12-15,.pdf:application/pdf},
}
@inproceedings{samitha_ransara_modelling_2013,
title = {Modelling and analysis of a low cost Brushless {DC} motor drive},
url = {https://ieeexplore.ieee.org/document/6505698/},
doi = {10.1109/ICIT.2013.6505698},
abstract = {This paper presents a buck converter based modelling technique for Brushless {DC} ({BLDC}) motor drives. The proposed technique is a better alternative to model {BLDC} motor drives due to its reduced computational complexity in contrast to the conventional phase-variable model. Using the model, constant speed operation of a {BLDC} motor drive operated without a {DC} link capacitor is analysed. Theoretical behaviour of the motor drive, predicted from the model, is compared with Matlab/Simulink based simulations to demonstrate the validity of the model. Mathematical expressions are derived from the model to evaluate the steady state performance of the {BLDC} motor drive, which is presented, in comparison to a similar sized conventional {BLDC} motor drive. The proposed model and mathematical expressions are expected to be useful at the design stage of the low cost motor drive to achieve comparable performance.},
eventtitle = {2013 {IEEE} International Conference on Industrial Technology ({ICIT})},
pages = {356--361},
booktitle = {2013 {IEEE} International Conference on Industrial Technology ({ICIT})},
author = {Samitha Ransara, H. K. and Madawala, Udaya K.},
urldate = {2026-01-01},
date = {2013-02},
keywords = {Brushless {DC} motors, Torque, Mathematical model, Analytical models, Capacitors, Motor drives},
file = {Full Text PDF:C\:\\Users\\nolan\\Zotero\\storage\\F7UAHCL6\\Samitha Ransara et Madawala - 2013 - Modelling and analysis of a low cost Brushless DC motor drive.pdf:application/pdf},
}
@thesis{gasc_conception_2004,
title = {Conception d'un actionneur à aimants permanents à faibles ondulations de couple pour assistance de direction automobile},
url = {https://hal.science/tel-04297384},
abstract = {This study relates to the design of permanent magnet actuator for automotive electric steering assistance and has been supported by the {CNRS} and {RENAULT}.
The analysis of the specification schedule for automotive electric power steering reveals the need of a very low motor torque ripple. The minimisation of the torque ripple is treated according two ways : a first action consists in optimising the motor design and a second one in compensating the torque ripple by a control law.
Concerning the design, a study of the mechanical system links the torque sensor stiffness, integrated into the steering column, to the motor inertia brought back to the steering wheel. The low inertia and the high ambient temperature constitute strong constraints of design for a given size. Increasing the shaft stiffness reduces the constraints of design. Analytical electromagnetic and thermal models have been coupled and exploited according to a methodology defined by the specificity of the problem. Finite Element Analysis {FLUX}2D™ is used so as to validate the analytical design and to study torque ripple techniques. A solution based on a structure with a fractional slot number and an original winding is proposed. The realisation and the tests of a prototype have validated some aspects of the design.
In order to minimise the torque ripple by control laws, simulation models under Simulink were developed. They integrate the torque ripple which has been determined by Finite Element Analysis. Several observer structures taking into account the torque ripple are presented and compared. An original structure based on a Kalman’s filter coupled to a load torque observer based on Luenberger’s theory is updated. This structure enables to manage the control without position encoder while strongly reducing the torque ripple. A state feedback structure and a {RST} controller combined with load torque compensation were implemented on an experimental set-up designed and instrumented with the aim of reproducing the system of electric power-assisted steering.},
institution = {Institut National Polytechnique (Toulouse)},
type = {Theses},
author = {Gasc, Laurent},
urldate = {2026-01-02},
date = {2004-11},
note = {Issue: 2004INPT043H},
keywords = {Active compensation, Automobile power steering, Compensation active, Contrôle en position, Direction assistée automobile, Finite Element Analysis, {FLUX}2D, Model, Modélisation, Moteur à aimants permanents, Observateur de couple, Ondulations de couple, Permanent magnet motors, Position control, Ripple torque, Torque observer},
file = {HAL PDF Full Text:C\:\\Users\\nolan\\Zotero\\storage\\QQCS4KN4\\Gasc - 2004 - Conception d'un actionneur à aimants permanents à faibles ondulations de couple pour assistance de d.pdf:application/pdf},
}
@inproceedings{akiki_reduction_2016,
location = {Grenoble, France},
title = {Réduction des ondulations de couple d'un moteur à aimants en multi-V et bobinage sur dents},
url = {https://hal.science/hal-01361708},
abstract = {Cet article présente une étude sur la réduction des ondulations de couple d'un moteur électrique à 12 dents et 10 pôles avec des aimants intérieurs en multi-V et bobinage concentré sur dents. Ce type de machine est utilisé pour des applications qui exigent un fort couple à basse vitesse. Cependant, la combinaison 12/10 développe des ondulations de couple élevées. L'objectif de cette étude est de présenter une méthodologie de réduction des ondulations de couple en se basant sur le vrillage du rotor et l'asymétrie des pôles. Dans cet article, l'étude de chacune des techniques est d'abord présentée puis une méthode de combinaison de ces deux techniques est proposée afin de réduire certains harmoniques du couple.},
booktitle = {2nd Symposium de Génie Électrique ({SGE} 2016)},
author = {Akiki, Paul and Hage-Hassan, Maya and Vannier, Jean-Claude and Dessante, Philippe and Dagusé, Benjamin and Bensetti, Mohamed},
urldate = {2026-01-02},
date = {2016-06},
keywords = {Aimants multi-V, modélisation, ondulations de couple, plan d'expérience, pôles asymétriques, vrillage},
file = {HAL PDF Full Text:C\:\\Users\\nolan\\Zotero\\storage\\AFPWJ2YA\\Akiki et al. - 2016 - Réduction des ondulations de couple d'un moteur à aimants en multi-V et bobinage sur dents.pdf:application/pdf},
}
@book{gieras_modern_2023,
location = {Boca Raton},
edition = {First edition},
title = {Modern permanent magnet electric machines: theory and control},
isbn = {978-0-367-61058-6},
shorttitle = {Modern permanent magnet electric machines},
abstract = {Fundamentals of magnetism -- Soft magnetic materials -- Permanent magnets -- Calculation of magnetic circuits with {PMs} -- Pm brush {DC} machines and control -- Pm brushless {DC} motors and drives control -- Pm synchronous motors and drives control -- Axial and transverse flux. Motors -- High-speed {PM} brushless machines},
publisher = {{CRC} Press},
author = {Gieras, Jacek F. and Shen, Jian-Xin},
date = {2023},
doi = {10.1201/9781003103073},
}
@misc{b1,
author = {Benjamin Vedder},
title = {VESC BLDC Motor Control Firmware},
year = {2024},
howpublished = {\url{https://github.com/vedderb/bldc/}}
}
@misc{b2,
author = {Benjamin Vedder},
title = {lispBM in VESC},
year = {2024},
howpublished = {\url{https://github.com/vedderb/bldc/tree/master/lispBM}}
}
@misc{shamansystems_cheap-focer-2firmware_nodate,
title = {Cheap-FOCer-2/firmware at master · shamansystems/Cheap-FOCer-2},
url = {https://github.com/shamansystems/Cheap-FOCer-2/tree/master/firmware},
abstract = {Low-Cost Motor Controller based on the VESC 6. Contribute to shamansystems/Cheap-FOCer-2 development by creating an account on GitHub.},
language = {en},
urldate = {2026-05-14},
journal = {GitHub},
author = {{shamansystems}},
file = {Snapshot:/home/wario-crocs/Zotero/storage/WFJTZ3V9/firmware.html:text/html},
}
@misc{noauthor_darkflippersunleashed-firmware_2026,
title = {{DarkFlippers}/unleashed-firmware},
copyright = {GPL-3.0},
url = {https://github.com/DarkFlippers/unleashed-firmware},
abstract = {Flipper Zero Unleashed Firmware},
urldate = {2026-05-14},
publisher = {Unleashed Firmware Team},
month = may,
year = {2026},
note = {original-date: 2022-03-16T12:46:45Z},
keywords = {alternative-firmware, cfw, custom, custom-firmware, darkflippers, firmware, flipper, flipper-plugins, flipper-zero, flipperzero, jailbreak, keeloq, rolling-codes, unleashed, unlocked, unofficial},
}
@misc{cirlig_huuckflipperzeronrfjammer_2026,
title = {huuck/{FlipperZeroNRFJammer}},
copyright = {MIT},
url = {https://github.com/huuck/FlipperZeroNRFJammer},
abstract = {Simple Flipper Zero nRF24 jammer for the 2.4Ghz spectrum},
urldate = {2026-05-14},
author = {Cirlig, Gabriel},
month = may,
year = {2026},
note = {original-date: 2024-12-03T21:35:41Z},
}
@misc{noauthor_cycle_nodate,
title = {Cycle {Analyst} {V3} - {Grin} {Products} - {Product} {Info}},
url = {https://ebikes.ca/product-info/grin-products/cycle-analyst-3.html},
abstract = {The Cycle Analyst display is our first flagship product released in 2006 and now in its 3rd generation. While the hardware design may be showing its age, it still has capabilities and functionalities that are unmatched by modern ebike systems with their pretty colour screens. This device also serves as an educational tool so that people understand the nitty gritty of how their ebike is performing, while adding all kinds of customizable control features to tweak your ride.},
language = {en},
urldate = {2026-05-14},
}
@misc{noauthor_charrette_nodate,
title = {La {Charrette} version montagne ou comment transporter 250kg à vélo par monts et par vaux !},
url = {https://veloma.org/2022/10/05/la-charrette-version-montagne-ou-comment-transporter-250kg-a-velo-par-monts-et-par-vaux/},
abstract = {Le boom de la cyclologistique voit fleurir de superbes vélocargos, triporteurs, remorques capablesde porter plusieurs centaines de kg qui pour livrer, déménager, transporter ses enfants, matériaux,outils… Tout ce beau matériel fait des miracles en ville et sur des pentes douces ou pas trop longues,mais en...},
language = {fr-FR},
urldate = {2026-05-14},
journal = {Veloma},
}
@misc{noauthor_outil_2023,
title = {Outil de simulation énergétique développé par l'{IFPEN} - {Extrême} {Défi} {ADEME} / {Véhicules} et {Technologie} {XD}},
url = {https://forum.fabmob.io/t/outil-de-simulation-energetique-developpe-par-lifpen/1258},
abstract = {Ce fil de discussion pour échanger sur un outil de simulation énergétique. Cet outil permettra d’estimer la consommation énergétique sur un trajet donné via un carte à partir de 2 points et des données du véhicule. Il sera utilisé par les territoires, les utilisateurs, les aménageurs pour échanger sur les besoins, sur les offres. En complément, il existe aussi un outil de simulation plus technique : Trip Simulator -UPDATED- - Tools Un échange est prévu le 5/10 pour lancer l’outil : Atelier XD ...},
language = {fr},
urldate = {2026-05-14},
journal = {FabMob},
month = sep,
year = {2023},
note = {Section: Extrême Défi ADEME},
}
@misc{noauthor_tv1860-3r0107-r_nodate,
title = {{TV1860}-{3R0107}-{R} {\textbar} {Supercondensateur} {Eaton}, 100 μ{F} {TV} -10 to 30 \% 0.{011Ω}, {3V} c.c., {Traversant} {\textbar} {RS}},
url = {https://fr.rs-online.com/web/p/supercondensateurs/1351097},
urldate = {2026-05-14},
}
@misc{noauthor_green_nodate,
title = {Green {Cell}® {GC} {PowerMove} {Batterie} {Vélo} {Electrique} {48V} 14.{5Ah} {Li}-{Ion}},
url = {https://batteryempire.fr/batteries-pour-velo-electrique/4916-green-cell-batterie-velo-electrique-48v-145ah-696wh-down-tube-ebike-ec5-pour-samebike-ancheer-avec-chargeur.html},
abstract = {Green Cell® GC PowerMove Batterie Vélo Electrique 48V 14.5Ah Li-Ion Down Tube E-Bike avec Chargeur 24 mois de garantie, expédition immédiate, livraison gratuite},
language = {fr},
urldate = {2026-05-14},
}
@misc{noauthor_ddf-39_nodate,
title = {{DDF}-39 {1000W}},
url = {http://www.mxusebikekit.com/pro_info.asp?Pid=25},
urldate = {2026-05-14},
}
@misc{noauthor_PowerGaN_nodate,
title = {STPOWER GaN Transistors},
url = {https://www.st.com/en/power-transistors/powergan.html},
urldate = {2026-05-14},
}
@misc{noauthor_GaN-manufacturer_nodate,
title = {9 Gallium Nitride Manufacturers in 2026},
url = {https://us.metoree.com/categories/7137/,
urldate = {2026-05-14},
}

Binary file not shown.

14
rapport/aim.tex Normal file
View file

@ -0,0 +1,14 @@
\section{Aim and Research Objectives}
This work presents the design and implementation of a motor control system for electric bicycles and cargo transport applications developed within the context of the Manufacture Autonome Décentralisée (MAD) initiative at INSA Toulouse. The main objective is to develop a modular, open-source, and locally manufacturable control architecture adapted to low-cost electric mobility systems.
To achieve this, the project is structured into four main technical contributions.
First, a low-cost motor controller is designed based on a six-step (trapezoidal) commutation strategy. The objective is to eliminate the need for a microcontroller by relying exclusively on discrete MOSFETs and standard electronic components, thereby improving repairability, accessibility, and ease of local manufacturing.
Second, a high-performance controller based on Field-Oriented Control (FOC) is developed using an STM32 microcontroller platform. This implementation leverages and adapts the open-source VESC firmware to ensure compatibility with the selected hardware while enabling advanced motor control capabilities.
Third, the security of the wireless communication interface is investigated, with a focus on Bluetooth Low Energy (BLE) vulnerabilities. A Flipper Zero device is used as a diagnostic tool to evaluate potential attack surfaces and identify weaknesses in the communication layer.
Finally, a dynamic model of the bicycle-cargo system is developed to improve rider experience. The objective is to minimize the perceived additional effort when towing a cargo cart. This is achieved through a PID-based (Proportional-Integral-Derivative) control strategy combined with distance sensing, allowing adaptive assistance based on system dynamics.

17
rapport/conclusion.tex Normal file
View file

@ -0,0 +1,17 @@
\section{Conclusion/Summary}
%\begin{figure}[htbp]
%%\centerline{\includegraphics{fig1.png}}
%caption{Example of a figure caption.}
%\label{fig}
%\end{figure}
%Figure Labels: Use 8 point Times New Roman for Figure labels. Use words
%rather than symbols or abbreviations when writing Figure axis labels to
%avoid confusing the reader. As an example, write the quantity
%``Magnetization'', or ``Magnetization, M'', not just ``M''. If including
%units in the label, present them within parentheses. Do not label axes only
%with units. In the example, write ``Magnetization (A/m)'' or ``Magnetization
%\{A[m(1)]\}'', not just ``A/m''. Do not label axes with a ratio of
%quantities and units. For example, write ``Temperature (K)'', not
%``Temperature/K''.

17
rapport/discussion.tex Normal file
View file

@ -0,0 +1,17 @@
\section{Discussion}
This project could be seen as an introduction to the VESC project for someone who don't know about it from beforehand, the challenges the new users face during setup, as well as a demand for clear expectations concerning documentation on the subject. The project the MAD is leading should probably not be a fork of the project, as the project is still in development.
As a final note, this proved to be a project which could easily be developed into several different projects in different fields. Some projects could be continued later on as a different PIR subject, other could be proposed to later years in different specialisations like TLS-SEC, ESPE. Our thoughts on the following projects that could be
The fabrication line for electronics is globalised. This is okay in a stable world, but it could be a problem in a world full of instability, be it war, blockages, or tariffs. The idea of opening a specialisation in cooperation with AIME came up as an idea.
For TLS-SEC the subject could be the design for a fitting mechanism to restrict certain privileges to certified personnel that could be used in the C programming language. Later down the line we could also see the possibility to analyse the Bluetooth frames in order to manipulate them in order to change important parameters.
The continuation on the PCB could be a subject fitting an ESPE specialisation.
The proposition of and supply of a VESC system to play with and troubleshoot could be a good rule of thumb, which allows for a quicker start and gives among other things an idea of the budget and the supply line used by a entity in the sector. Proposing a visit could also be one way to familiarise students with the association.
What should be a clear conclusion from our test with the jammer is that a controller based on Bluetooth alone should be avoided when possible and practical. Examples where this could be relevant include electric skateboards, as cables could impose a tripping hazard. There, an encapsulation of an encrypted control frame could be an thought.

116
rapport/foc.tex Normal file
View file

@ -0,0 +1,116 @@
\section{STM32-Based Field-Oriented Control Motor Drive}
\label{sec:foc}
This section presents the design and implementation of a high-performance motor controller based on Field-Oriented Control (FOC).
\subsection{Choice of FOC Over Trapezoidal Commutation}
Table~\ref{tab:foc_vs_trap} summarizes the key differences between the two commutation strategies, based on the literature reviewed in Section~\ref{sec:relatedwork}.
\begin{table}[htbp]
\caption{Comparison between FOC and trapezoidal (six-step) commutation}
\label{tab:foc_vs_trap}
\centering
\begin{tabular}{lcc}
\toprule
\textbf{Criterion} & \textbf{FOC} & \textbf{Six-Step} \\
\midrule
Torque ripple (at 500 rpm) & \SI{18.4}{\percent} & \SI{35.7}{\percent} \\
Low-load efficiency & High & Moderate \\
High-speed switching loss & Higher & Lower \\
Position sensor requirement & Encoder (high resolution) & Hall sensors \\
Implementation complexity & High & Low \\
Hardware cost & Higher & Lower \\
Dynamic response & Fast & Standard \\
\bottomrule
\end{tabular}
\end{table}
For our cargo bike application, rider comfort and smooth torque delivery are priorities. FOC was therefore selected for the high-performance controller, while a separate low-tech six-step board (Section~\ref{sec:sixstep}) was developed for repairability.
\subsection{Base Design: Cheap FOCer-2 Project}
The starting point was the open-source \textit{Cheap FOCer-2} project, which provides a complete KiCad design for a VESC-compatible board based on an STM32F405 microcontroller. This design includes:
\begin{itemize}
\item A three-phase MOSFET full-bridge power stage.
\item Gate drivers with built-in dead-time insertion.
\item Shunt resistors for phase current sensing.
\item USB and CAN interfaces.
\item An expansion header for encoder or Hall sensors.
\end{itemize}
The existing KiCad schematic and layout were used as the baseline for our adaptations.
\subsection{Integration of the Rocacher FOC Tile}
Mr. Rocacher provided the Kicad schematic of a ready-to-use FOC tile based on an STM32L476 microcontroller.
The initial idea was to make this tile \textit{pluggable} into our carrier board, similar to an Arduino shield. This would allow :
\begin{itemize}
\item Easy replacement of the computing core without re-soldering.
\item Modular upgrades of the microcontroller.
\item Simplified repair and maintenance.
\end{itemize}
However, the Cheap FOCer-2 project was not designed for such modularity. Its routing is dense and highly optimized for a single, non-removable F405 chip. Adapting it to accept an L476 tile while preserving all critical functions (PWM, current sensing, USB communication) proved challenging.
\subsection{Pin Compatibility Verification: L476 vs F405}
Before starting the PCB modifications, a pin compatibility study was carried out between the STM32L476 used on the Rocacher tile and the STM32F405 originally used in the Cheap FOCer-2 design. The objective was to verify that the main functions required by the VESC firmware could still be used after replacing the original microcontroller.
The verification mainly focused on:
\begin{itemize}
\item Physical pinout compatibility in the LQFP64 package,
\item PWM timer for Alternate functions,
\item USB DP/DM pins (PA11/PA12),
\item Analog inputs for current sensing,
\item UART communication for BLE integration.
\end{itemize}
During this analysis, three main pin conflicts were identified.
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{Figures/CompatibiliteL4F4.pdf}
\caption{Comparison of F405 and L476 pin configurations}
\end{figure}
The first conflict concerned the SPI\_MISO signal on pin PA6. In the original STM32F405 design, this pin is used for SPI communication related to current sensing. On the STM32L476 tile, the same pin is associated with a DAC output, creating a functional conflict. To solve this issue, the SPI communication line was remapped to PA5 on the L476, which offers a compatible alternate function.
The second issue concerned the EN\_GATE signal. In the original design, this signal was connected to PB5 on the STM32F405. However, this pin is not accessible on the L476 tile. The signal was therefore moved to PC5, configured as a standard GPIO output.
Finally, Hall sensor C was originally connected to PC8 (TIM8) on the STM32F405. Since this pin is not available on the tile connector, the Hall sensor input was reassigned to PB3 using the TIM2\_CH2 alternate function, which preserves the input capture capability required for Hall sensor decoding.
All other important functions remained compatible between the two microcontrollers, including PWM generation, complementary PWM outputs, encoder inputs, UART, USB, and CAN communication. Some differences between the ADC peripherals of the STM32F405 and STM32L476 still remain and will require firmware adaptations in future work.
\subsection{Schematic Design and KiCad Implementation}
The original Cheap FOCer-2 schematic was modified in KiCad in order to replace the integrated STM32F405 microcontroller with connectors for the Rocacher STM32L476 tile. The objective was to make the control part more modular and easier to replace without modifying the power stage of the board.
The main modifications performed on the schematic were:
\begin{itemize}
\item Removal of the STM32F405 and its associated passive components.
\item Addition of two 20-pin headers for the L476 tile connection.
\item Re-routing of PWM, ADC, USB, and communication signals toward the headers.
\end{itemize}
Special attention was given to the routing of critical control signals, especially the PWM outputs used for motor commutation and the analogue signals used for current sensing.
After the modifications, the schematic was verified using the KiCad Electrical Rule Check (ERC). No electrical errors were detected during this verification step, which validated the consistency of the schematic before starting the PCB routing phase.
\subsection{Routing Challenges and Current Status}
After validating the schematic, the PCB routing phase was started in KiCad. The original Cheap FOCer-2 board uses a very compact layout with dense routing around the STM32F405 microcontroller and the power stage. Integrating connectors for a removable STM32L476 tile introduced several additional routing constraints.
One of the main difficulties was maintaining proper signal routing while keeping enough space for the tile connectors and preserving the integrity of the control signals. Particular attention had to be given to the PWM signals, current sensing traces, and power connections.
Several issues were encountered during the routing process:
\begin{itemize}
\item Some connector footprints associated with the tile did not appear correctly after importing the schematic into the PCB layout.
\item The routing of high-current paths, especially the battery and motor phase connections, become more complex due to the additional connectors and required extra vias.
\item Some Decoupling capacitors had to be repositioned, which could potentially affect switching noise and power
supply stability.
\end{itemize}
At the current stage of the project, the schematic has been validated and the PCB layout is still under development. Once the routing is completed, the board will be manufactured and tested using the VESC firmware adapted for the STM32L476 tile.

14
rapport/futur.tex Normal file
View file

@ -0,0 +1,14 @@
\section{Perspectives and Future Work}
Based on the results obtained and the limitations identified during this project, several directions for future work are proposed.
\subsection{Hardware Completion and Testing}
The VESC-based FOC PCB requires routing completion and prototype manufacturing. Once fabricated, the board must be tested under real operating conditions (varying loads, road profiles, and battery voltage).
\subsection{Control Strategy Enhancement}
Future work includes the implementation and comparison of the PI controller and the cascaded control structure on the cargo cart, in order to evaluate their performance under different conditions (load variations, road profiles, etc.).
In addition, the lack of direct velocity measurements limited the ability to fully characterise the system dynamics. Adding a speed measurement or improving state estimation would allow a more complete analysis of the model.

11
rapport/gap.tex Normal file
View file

@ -0,0 +1,11 @@
\section{Research Gap}
The literature presented in the previous sections shows that significant work has been carried out on BLDC motor control strategies, especially for torque ripple reduction, efficiency improvement, and dynamic performance optimisation. Open-source projects such as VESC also provide high-performance and flexible solutions for electric mobility systems.
However, most existing works mainly focus on control performance and do not consider low-tech constraints such as local manufacturing, hardware repairability, or component accessibility. In many existing controllers, the hardware design remains difficult to reproduce or repair without specialized equipment or advanced electronic knowledge.
In addition, the integration of wireless communication introduces new security concerns. While BLE connectivity simplifies configuration and monitoring, unauthorized access to controller parameters could create safety risks, especially for electric cargo bikes operating in public spaces.
To the best of our knowledge, there is currently no open-source motor controller that simultaneously addresses high-performance control, local manufacturability, repairability, and BLE security for decentralized cargo bike applications.
This project therefore aims to explore a modular and repair-oriented motor controller architecture compatible with VESC while remaining adapted to the constraints of the Manufacture Autonome Décentralisée (MAD).

10
rapport/intro.tex Normal file
View file

@ -0,0 +1,10 @@
\section{Introduction}
The fast urbanization of global logistics has positioned electric cargo bikes as a primary solution. At the heart of these vehicles is the motor controller. Current research and industry standards primarily focus on two methods of commutation for the controller: Trapezoidal commutation and Field Oriented Control (FOC).
As motor controllers become smarter, they increasingly incorporate wireless connectivity for tuning and diagnostics. Current research highlights that while Bluetooth Low Energy (BLE) and mobile app integration improve user experience, they often introduce vulnerabilities. Open-source projects, in particular, must balance ease of access for community developers with the need to secure the vehicle.
We also argue the need for general public's safety when it comes to these bikes, as it could be a danger to the traffic. This is especially true when it comes to vehicles carrying a substantial load. This needs to be considered by the MAD, where their responsibility and control begins and ends. Should there be a difference between the firmware loaded on a product from the MAD than what is publicly available?

141
rapport/logiciel.tex Normal file
View file

@ -0,0 +1,141 @@
\section{Software and Connectivity}
\subsection{BLE Compatibility With the VESC}
\subsubsection{First Experiment}
VESC-controllers are not necessarily equipped with Bluetooth-modules by default. Often, it is necessary to add a BLE-module. A standard HC-05 bluetooth-module compatible with Arduino is a great way to send and receive bluetooth-packets from a host, e.g. a mobile phone, via a bridge translating the bluetooth packets to the UART protocol. This could be demonstrated using a ESP8622's standard library with said module, by letting us send characters from one device to another.
\subsubsection{HC-05 and the VESC}
By flashing the VESC firmware on a discovery-card and connecting the HC-05 module to the PB10 and PB11-pins, which are the Rx and Tx-pins for the STM32F4xx chip, we discovered that the setup for the bluetooth module was not available in the VESC tool. The inherent BLE capabilities is an important limitation to consider when designing a VESC system. We learned therefore that the HC-05 is not originally adapted for BLE. The need for a bridge also adds on complexity and cost, in the form of extra components and another device to maintain the code of. For the future, choosing a bluetooth module supporting BLE will be the easiest solution. Preferably a module fitting the communication connector on the cheap FOCer project \cite{shamansystems_cheap-focer-2firmware_nodate} could facilitate the relevancy of the PCB project with a microcontroller.
\subsubsection{BLE Vulnerability}
Bluetooth could be a vulnerability to a VESC if it is to be used as a controller in real-time, as the controller could be jammed. Our test with the Flipper Zero shows the disfunctionnality of Bluetooth with different use cases. We experienced with the jamming of a bluetooth speaker that the music completely stopped. It could also be investigated how the connection to the VESC could be modified using the VESC tool. We will touch more on the accessibility of the code within the VESC tool sooner.
\subsection{Setup of BT-connection with VESC}
The setup consisted of a main PC/controller, HC-05 Bluetooth module, ESP8266 µ-controller, STM32 Discovery µ-controller, PC with VESC-tool as well as a \textit{FlipperZero}. Our plan of action consisted of flashing the Discovery-card with code for then to read this code via UART to the ESP8266 which was connected to the BT-module. The BT-module would then send packets to the PC. This PC would then act as read/write to read the code having been flashed on the Discovery. Full-band jamming would then be achieved by the implementation of the \textit{FlipperZero} disrupting any transfer of code from PC1 to PC2.The \textit{FlipperZero} was equipped with the firmware \textit{DarkFlippers/unleashed-firmware}\cite{noauthor_darkflippersunleashed-firmware_2026} with the addition of an NRF-jammer from \textit{huuck/FlipperZeroNRFJammer} \cite{cirlig_huuckflipperzeronrfjammer_2026}.
\newpage
\begin{figure}[!h]
\centering
\begin{tikzpicture}
% PC_ESP
\node[
draw,
rectangle,
minimum width=1.5cm,
minimum height=1.5cm
] (PC1) at (2.5,-0.5)
{
\includegraphics[width=1.5cm]{Figures/PC_STOCK.jpg}
};
\node[above=2mm of PC1] {PC1 ready to r/w};
% HC05
\node[
draw,
rectangle,
minimum width=1.5cm,
minimum height=1.5cm
] (HC05) at (-0.3,-2.6)
{
\includegraphics[width=1.5cm]{Figures/HC-05_Bluetooth_Module.jpg}
};
\node[above=1mm of HC05] {HC-05};
\node[
draw,
rectangle,
minimum width=1.5cm,
minimum height=1.5cm
] (ESP) at (-0.3,-5)
{
\includegraphics[width=1.5cm]{Figures/ESP8266.png}
};
\node[below=1mm of ESP] {ESP8266};
\node[
draw,
rectangle,
minimum width=1.5cm,
minimum height=1.5cm
] (PC2) at (-3.6,-2.6)
{
\includegraphics[width=1.5cm]{Figures/PC_STOCK.jpg}
};
\node[above=1mm of PC2] {PC2 with VESC-tool};
\node[
draw,
rectangle,
minimum width=1.5cm,
minimum height=1.5cm
] (Disc) at (-3.6,-5)
{
\includegraphics[width=1.5cm]{Figures/STM32_Discovery.jpg}
};
\node[below=1mm of Disc] {STM32 Discovery};
\node[
draw,
rectangle,
minimum width=1.5cm,
minimum height=1.5cm
] (F0) at (-1.5,0)
{
\includegraphics[width=1.5cm]{Figures/F0.jpeg}
};
\node[above=1mm of F0] {FlipperZero};
% Arrow between boxes
%\draw[decorate, decoration={snake}] (box1) -- (box2);
\draw[->, thick] (HC05) -- (ESP);
\draw[<->, decorate, decoration={snake}] (PC1) -- node[below right]{BT-connectivity} (HC05);
\draw[->] (HC05) -- node[left]{UART} (ESP);
\draw[<->] (HC05) -- node[right]{Tx $\leftrightarrow$ Rx} (ESP);
\draw[<->] (ESP) -- node[below]{UART} (Disc);
\draw[<->] (ESP) -- node[above]{Tx $\leftrightarrow$ Rx} (Disc);
\draw[<->] (Disc) -- node[left]{USB} (PC2);
\draw[->, decorate, decoration={snake}] (F0) -- node[above=3mm]{Jamming} (1.25,-1.5);
\
\end{tikzpicture}
\caption{Setup of BT-connection wih VESC.}
\label{fig:BT}
\end{figure}
\subsection{Code integrity}
\subsubsection{Context}
As the project is open source, and the code is freely accessible, there should be no reason to hide the code. It could however be reasonable to protect the code from changes which could hurt other people. Changing following parameters should at least come with a disclaimer and clearly state the dangers possible by proceeding with said changes. We have in mind the maximum speed permitted and the power available to the motors.
\subsubsection{LispBM extraction}
We caught word that the lisp code for the VESC used by Maillon mobility was easy to extract. By building an older firmware with the Maillon mobility software, we observed this by going to the lispBM tab and clicking read. It's up to the MAD if they would like to reinforce this mechanism. A modification on a parameter and then clicking upload allowed us to easily change the speed limit. This could bring up a public danger. This raises questions on the use of the MAD's equipment, as it's used in a day-to-day traffic environment.
\subsubsection{LispBM Code}
When we flashed newer firmware from the project made by Benjamin Vedder\cite{b1}, we also observed some difficulties in uploading the lispBM script taken from the one on firmware version 6.06. This could indicate that there needs to be further maintenance of the code in order to get the software up to date. This needs to be documented better for someone to continue the project. This could be a good investment for the MAD.
This documentation could be as simple as referencing the relevant parts of the lispBM documentation. \cite{b2}
\subsubsection{Proposed Solution}
This risk could be patched by developing a VESC application for the VESC controller or using a binary. This is a solution which is less open source, but defends well against malicious intent.The application could be created using C and use an algorithm known by the MAD in order to secure the access to someone to change the parameters only if they are MAD certified personnel. This encryption would preferably be reduced to the most essential settings in order to align with what our impression of the philosophy of the MAD would be.
\subsection{VESC Compiling}
As mentioned, we have been able to compile the VESC tool and the VESC firmware. This firmware has been put onto an STM32F4xx Discovery card. This card uses the same chip as the aforementioned ``Cheap FOCer'' project. The thought was that using something with the same chip would facilitate the switch from the discovery card to a PCB with the same target.
However, this choice posed several obstacles for our progress on the topic of cybersecurity. We will nonetheless summarise what we have learned and propose some additional work for the future. The challenges we encountered were the following: The lack of bluetooth capabilities. We did not have a module with BLE either. We had access to a HC-05 module, but that only allows for a normal Bluetooth version 2.0 protocol and would require further work on a bridge to UART by using an esp8622 that we had as well. We propose that the next group has access to a VESC controller from the beginning, as well as a motor we could control. This could be in cooperation with the MAD, as the MAD could propose some models they're interested in.
We also found that the information on the VESC is scattered around the internet. The resources is also sometimes based on a Debian-based Linux system which adds more work for someone using another distribution of Linux. This could hinder the implementation facility for new users. We struggled particularly with the Qt packages for positioning and game pad. We would therefore recommend the use of a Debian-based Linux system for the computer working with the VESC for the MAD associates.

99
rapport/lowtech.tex Normal file
View file

@ -0,0 +1,99 @@
\section{Hardware-Based Six-Step Commutation Controller}
\label{sec:sixstep}
The basis of this section is the replacement of components who are highly complex, technical and/or are dependant on global supply chains to manufacture. An additional goal is, as for the preceding section, to make a repairable, reliable and manufacturable circuit, this time using these more basic components, based on open-source principles. The controller needs to be performant enough to drive one of the two electric motors used on the LaMAD (La Manufacture Autonome Décentralisée) bicycle cargo trailer.\cite{noauthor_ddf-39_nodate}
\subsection{Constraints}
The electric motors used are supplied using 36/48 Volts at 1000 W. This means that the six-step chopper transistors need to be able to supply up to 28 Amperes of current. This is a lot, considering our restrictions. Additionally, the heat will need to be managed, which may be an even bigger challenge than the current.
\subsection{Semiconductor facilities in Occitanie}
The most challenging part of this section is the replacement of semiconductor parts, as these are the most complicated parts to manufacture. Luckily, the city in which the team is located, Toulouse, offers possibilities in semiconductor manufacturing. This may not be a complete list, but the following were identified:
\begin{enumerate}
\item ST Microelectronics Labège-Innopôle (formerly Exagan, formerly CEA-Leti)
\item LAAS-CNRS (Laboratoire d'Analyse et d'Architecture des Systèmes - Centre National des Recherches Scientifiques) semiconductor lab
\item AIME (Atelier Interuniversitaire de Micro-nano Électronique) on-campus at INSA Toulouse
\end{enumerate}
ST Microelectronics at Labège designs and manufactures gallium nitride transistors under the commercial designation STPOWER PowerGaN, this confirmed by a colleague who visited the plant and engineering teams in late 2022, Etienne Gadefait. Gallium nitride transistors are great for high speed power electronics \cite{noauthor_PowerGaN_nodate} but this is a very recent technology, and none of the big material players in GaN are European, let alone French or Occitanian (US, China, Japan and India are predominant)\cite{noauthor_GaN-manufacturer_nodate}. Because of this and very high costs, we chose to consider this a supply chain-constrained technology, which could not be relied on in a non-global future, and we moved on to other options.
The LAAS semiconductor lab was deemed less reachable and more technologically advanced than the AIME semiconductor lab, as we were told they mostly did research on carbon nanotubes and other fancy semiconductor materials. We therefore chose not to contact the LAAS, and rather prioritise contacting the AIME lab.
The AIME is a small research lab located on our campus. Their capabilities and projects were not publicly available, so we decided to contact them. We met two researchers Mr. Tan and Mr. Lincelles to enquire about the manufacturability of certain components, and eventual costs. The AIME specialises in logic circuits, and has not developed any power components at least a decade. Therefore, the research teams have not maintained any know-how in power semiconductors. However, they were very interested in developing this field in their lab, and came with a proposal to start, based on their existing knowledge. Here are some of AIME's capabilities and prices:
\begin{table}[htbp]
\caption{AIME capabilities}
\label{tab:AIME_capabilities}
\centering
\begin{tabular}{lcc}
\toprule
\textbf{Proposal or capability} & \textbf{Value} & \textbf{Price, if relevant} \\
\midrule
Silicon wafer & 2'' ($\sim$50mm) & 10 € \\
Epitaxial "fancy" wafer & 2'' ($\sim$50mm) & 100-200 € \\
AIME-made lithography mask & 10µm canal width & 300 € \\
Lab rental & 1 day & $\sim$2000 € \\
Transistor canal width & $\sim$1 µm \\
Drain-source on resistance & 1 k\textOmega \\
\bottomrule
\end{tabular}
\end{table}
The proposed project was based on their logic transistors, scaled up not in size, but in number. As seen in the table above, one of their small logic transistors has a resistance of:
\begin{equation}
R_{DS_{on}} \approx 1\ k\Omega
\end{equation}
As we need a transistor capable of passing 28 Amperes of current, this resistance is unacceptable. Therefore, they proposed to put a great number of transistors in parallel to reduce $R_{DS_{on}}$, on a big surface to better distribute and dissipate the heat (the heat calculations were not made). We can also note here that AIME does not have packaging technology to dissipate high head loads, which could be resolved using external specialist companies (expensive) or making a very thermally efficient transistor. The current also makes the attachment of wires more complicated, as the general relation (not taking into consideration the skin effect in larger diameters) they gave me gives:
\begin{equation}
1\ \frac{mA}{\mu m\ diameter} \Rightarrow diameter = 2,8 cm
\end{equation}
Which is extremely unrealistic for a small component and needs to be investigated further. The second problem is the voltage, as the small signal transistors they have are made for lower voltages. Therefore, we needed a thicker MOSFET with a thicker n- drift layer between the drain and source to prevent breakdown, which results in us needing a fancy and expensive epitaxial wafer instead of a cheap one. This results in another problem, an even higher Drain-source on resistance $R_{DS_{on}}$, multiplying the already great number of transistors by a good factor. At the end, this is the project they proposed:
\begin{table}[htbp]
\caption{The project proposed by the AIME}
\label{tab:AIME_project}
\centering
\begin{tabular}{lcc}
\toprule
\textbf{Proposal or capability} & \textbf{Value} & \textbf{Price, if relevant} \\
\midrule
Transistor count & $\sim$400 000 & \\
Die size & 1-2 cm$^2$ & \\
Wafer & 2'' ($\sim$50mm) epitaxial & 100-200 € \\
Dies per wafer & 1 & 100-200 € per die \\
Lab rental & subsidised & \\
Masks needed & 4 & 1200 € \\
Dies per set of masks & $>$ 1000 dies & \\
\bottomrule
\end{tabular}
\end{table}
These costs are much larger than what we have for this project, but are not insurmountable for a department like the GEI. If we run the calculations of static costs (no lab time), this project would cost 1300-1400 € for 1 transistor, 300-400 € per transistor for 6 transistors and 101-201 € per transistor for 1000 of them (the mask costs being absorbed by the sheer number of produced transistors). This project also needs a lot of time or more people to be completed, more than what we have at our disposal. The researchers were very interested in collaborating on such a project in the future, and considered it very strongly as a replacement for the current AIME project for the 5th year PTP Energie students at INSA Toulouse (currently a CO2 sensor), with GEI's backing and funding.
The complexity and price of manufacturing power transistors made us go for the strategy of choosing readily available and cheap components.
\subsection{Replacing an IC}
Replacing the IC of a motor controller requires using traditional logic gates. This approach can be done in several methods. The AIME would easily be able to produce such a circuit at a relatively low cost, but this is neither easily accessible nor repairable. We therefore needed to use another form of logic gates. The simplest form of gates are diode gates, which use two diodes to make either an AND or OR-gate. They cannot make NOT-gates, which need a CMOS-cell (two transistors). We continued by simulating this in LTSpice XVII, based on Mr. Rocacher's circuits. This circuit ended up needing 4 AND-gates, 2 OR-gates and 1 NOT-gate ("CMOS cell" using two N-Channel MOSFETs and possibly a MOSFET driver) per phase, with additional transistors to compensate for voltage lost at the diodes, as well as one additional OR-gate. The total would be like this:
\begin{table}[H][htbp]
\caption{Minimum number of diodes and transistors needed}
\label{tab:decompte}
\centering
\begin{tabular}{lccc}
\toprule
\textbf{Gate} & Number of gates & \textbf{Number of diodes} & \textbf{Number of transistors} \\
\midrule
AND & 12 & 24 & 0 \\
OR & 7 & 14 & 0 \\
NOT & 3 & 0 & 6\\
\bottomrule
Total & & 38 & 6
\end{tabular}
\end{table}
This is a considerable number of diodes and transistors, but would make the circuit easily repairable and replaceable.

BIN
rapport/main.pdf Normal file

Binary file not shown.

133
rapport/main.tex Normal file
View file

@ -0,0 +1,133 @@
\documentclass[conference]{IEEEtran}
\IEEEoverridecommandlockouts
% The preceding line is only needed to identify funding in the first footnote. If that is unneeded, please comment it out.
\usepackage[UKenglish]{babel}
\usepackage{float}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{url}
\usepackage[hidelinks]{hyperref}
\usepackage{placeins}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{textgreek}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{positioning}
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\begin{document}
\title{
Design and Implementation of a High-Power Motor Controller for Bicycles
}
\author{\IEEEauthorblockN{Hugo Abescat}
\IEEEauthorblockA{\textit{GEI Department} \\
\textit{INSA Toulouse}\\
Toulouse, France \\
abescat@insa-toulouse.fr}
\and
\IEEEauthorblockN{Karima Attar}
\IEEEauthorblockA{\textit{GEI Department} \\
\textit{INSA Toulouse}\\
Toulouse, France \\
karima.attar@insa-toulouse.fr}
\and
\IEEEauthorblockN{Brage Flønæs Johnsen}
\IEEEauthorblockA{\textit{GEI Department} \\
\textit{INSA Toulouse}\\
Toulouse, France \\
johnse@insa-toulouse.fr}
\and
\IEEEauthorblockN{Oskar Orvik}
\IEEEauthorblockA{\textit{GEI Department} \\
\textit{INSA Toulouse}\\
Toulouse, France \\
orvik@insa-toulouse.fr}
\and
\IEEEauthorblockN{Julien Pavillon}
\IEEEauthorblockA{\textit{GEI Department} \\
\textit{INSA Toulouse}\\
Toulouse, France \\
pavillon@insa-toulouse.fr}
\and
\IEEEauthorblockN{Nolan Reynier Nomer}
\IEEEauthorblockA{\textit{GEI Department} \\
\textit{INSA Toulouse}\\
Toulouse, France \\
reynier-nome@insa-toulouse.fr}
\and
\IEEEauthorblockN{Aleksander Taban}
\IEEEauthorblockA{\textit{GEI Department} \\
\textit{INSA Toulouse}\\
Toulouse, France \\
taban@insa-toulouse.fr}
}
\maketitle
\begin{abstract}
Electric bikes are becoming an increasingly attractive solution for transporting goods between short distances,
especially in city-wide infrastructures. However, most commercially available controllers rely on complex integrated
circuits making repair and local manufacturing difficult, particularly for organisations operating in
resource-constrained or low-tech environments. The Manufacture Autonome Décentralisée (MAD) is developing products
and solutions, particularly e-bikes, which are more repairable and sustainable. Previous studies have predominantly
focused on performance optimisation of Field Oriented Control (FOC) and trapezoidal commutation strategies, with limited
attention to repairability, component sourcing, and community-centred sustainability criteria. This project aims to
design, assemble, and develop a functional, low-tech and open-source motor controller for electric cargo bikes. The
current model uses an open-source motor control called VESC (Vedder Electronic Speed Controller) that allows precise
control of electric motors. The controller needs to be compatible with a VESC controller and easily locally repairable
by the MAD. By exploring the inner workings of the VESC project, modelling of the physical systems and the Printed
Circuit Board (PCB) we investigated the ways we could do it in another way. We acquired a VESC controller to compare our
system and a commercial product. Preliminary results demonstrate that the adapted VESC-based controller successfully
drives the target motor under both commutation strategies, and that positional control is achievable with the current
hardware configuration. Security vulnerabilities related to open Bluetooth access were identified. These findings
suggest that open-source, locally fabricated motor controllers can meet the functional requirements of electric cargo
bikes while significantly improving repairability.
\end{abstract}
\begin{IEEEkeywords}
VESC, Brushless DC motor, Field Oriented Control, Trapezoidal commutation, Low-Tech, PID-Control.
\end{IEEEkeywords}
%% On découpe le projet pour faciliter le travail en commun
% Début
\input{intro.tex}
\input{related.tex}
\input{gap.tex}
\input{aim.tex}
% Nos parties
\input{foc.tex}
\input{lowtech.tex}
\input{logiciel.tex}
\input{modelisation.tex}
% Fin
\input{resultats.tex}
\input{discussion.tex}
\input{futur.tex}
\input{conclusion.tex}
\input{remerciements.tex}
\input{IA.tex}
%Please number citations consecutively within brackets \cite{b1}. The
%sentence punctuation follows the bracket \cite{b2}. Refer simply to the reference
%number, as in \cite{b3}---do not use ``Ref. \cite{b3}'' or ``reference \cite{b3}'' except at
%the beginning of a sentence: ``Reference \cite{b3} was the first $\ldots$''
\bibliographystyle{IEEEtran}
\bibliography{PIR_MadMax3}
\end{document}

Binary file not shown.

104
rapport/modelisation.tex Normal file
View file

@ -0,0 +1,104 @@
\section{Dynamic Modelling and Control of the Bicycle-Cargo System}
\subsection{Dynamic System Modelling}
The studied system consists of a bicycle towing a cargo cart through a rigid mechanical linkage. This link is only used for steering guidance and does not contribute to the traction force. The main objective is to ensure that the rider perceives minimal additional effort, such that the overall behaviour remains similar to riding a standard bicycle.
From a control perspective, the rider provides a reference motion in terms of speed and position, while the cargo cart is expected to follow this reference with minimal delay. The position error between the bicycle and the cargo cart is computed using a distance sensor, which provides feedback relative to an equilibrium state.
The cargo cart is modelled as the plant of the system. Its rotational dynamics are described using the fundamental equation of rotational motion:
\begin{equation*}
\sum \tau = J_{\Delta} \times \dot{\omega}
\end{equation*}
where $\tau$ is the total torque applied to the system, $J_{\Delta}$ is the equivalent moment of inertia, and $\omega$ is the angular velocity.
The total torque is composed of the motor torque $\tau_m$ and a friction torque modelled as:
\begin{equation*}
\tau_f = -f \times \omega
\end{equation*}
where $f$ is the viscous friction coefficient.
The resulting dynamic equation becomes:
\begin{equation*}
J_{\Delta} \dot{\omega} = \tau_m - f \omega
\end{equation*}
In the Laplace domain, this leads to:
\begin{equation*}
\omega(s) = \frac{\tau_m(s)}{J_{\Delta} s + f}
\end{equation*}
Since the linear velocity is related to angular velocity by the wheel radius $R$, we obtain:
\begin{equation*}
v(s) = R \times \omega(s)
\end{equation*}
Thus, the transfer function between motor torque and linear velocity is:
\begin{equation*}
\frac{v(s)}{\tau_m(s)} = \frac{R}{J_{\Delta} s + f}
\end{equation*}
\subsection{PI-Based Control Strategy}
\label{subsec:Simulink_model}
Based on this model, a Simulink representation of the system was developed. The controlled system includes a feedback loop using a PI (Proportional-Integral) controller in order to regulate the position error between the bicycle and the cargo cart.
Since the reference input is a ramp signal (representing the bicycle position over time), an integral action is required to ensure zero steady-state error and accurate tracking of the reference trajectory.
The closed-loop Simulink model of the system is shown in Fig.~\ref{fig:simulink-closedloop}.
The control error is defined as the difference between a desired relative position and the measured displacement between the bicycle and the cargo cart:
\begin{equation*}
e(t) = e_{\text{ref}} - (x_{\text{bike}} - x_{\text{cart}})
\end{equation*}
where $e_{\text{ref}} = \SI{-0.5}{\meter}$ represents the desired equilibrium offset between both systems.
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/sys_dyn_matlab.png}
\caption{Closed-loop model of the bicycle-cargo system with PI control.}
\label{fig:simulink-closedloop}
\end{figure}
\subsection{Control Architecture Exploration}
Beyond the standard PI control structure simulated in the previous sections, this project explores a more sophisticated control law: the Cascaded Loop Architecture. This approach is envisioned as a high-level software enhancement to meet the robustness and safety requirements inherent to electric cargo mobility. This means that our control law includes two feedback loops that use two different physical parameters.
The selected cascaded structure is a well-established industry standard, particularly in high-performance motion control and robotics. Similar architectures are widely employed in Automated Guided Vehicles (AGVs) and platooning systems, where a “follower” unit must synchronize its dynamics with a “leader” unit through precise feedback loops.
The proposed approach decomposes the complex task of “cart following” into manageable sub-tasks by nesting control loops:
\begin{itemize}
\item Outer loop: Position control layer.
Using a linear encoder or distance sensor mounted on the trailer’s hitch, the system measures the relative displacement (error) between the bicycle and the cargo cart. This error is processed by a Proportional (P) Controller. The primary goal of this stage is to translate physical distance into a target velocity setpoint. By saturating the output of this loop, we can prevent the cargo cart from ever exceeding the bicycle’s speed, thereby ensuring it never “pushes” the cyclist.
\item Inner loop: Velocity control layer.
The velocity setpoint generated by the outer loop is fed into this internal layer, the inner loop is responsible for commanding the motor torque directly to compensate for immediate mechanical disturbances. Because this loop operates at a higher frequency, it can reject disturbances such as sudden changes in rolling resistance or friction, before they significantly impact the overall position error.
\end{itemize}
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/Schema_Autom_PIR.pdf}
\caption{Cascaded control architecture for the bicycle-cargo system.}
\label{fig:cascaded-loop}
\end{figure}
Fig.~\ref{fig:cascaded-loop} illustrates the cascade architecture for the dynamics of the cargo cart. In this scheme, $x_{\text{ref}}$ denotes the desired position of the bicycle, whereas $x$ represents the measured position of the cargo cart.
An outer Proportional Controller $K_{p,x}$ converts the position error $e_x = x_{\text{ref}} - x$ into a velocity reference $v_{\text{ref}}$, which serves as the set-point for the inner loop.
The inner Proportional Controller $K_{p,v}$ then transforms the velocity error $e_v = v_{\text{ref}} - v$ into a torque reference $\tau_{\text{ref}}$.
This command is processed by the motor/actuator block, which delivers the actual torque $\tau$.
The model of the plant maps this torque to velocity $v$, and the integrator $1/s$ reconstructs the position $x$.
The adoption of a cascaded loop architecture offers decisive advantages but comes with disadvantages. This precision introduces increased complexity: the multiplication of tuning parameters and the requirement for high-resolution feedback sensors, such as encoders, raise hardware costs and must come with high-performance software. These technical constraints represent a significant challenge and may raise other issues.

33
rapport/related.tex Normal file
View file

@ -0,0 +1,33 @@
\section{Related Work}
\label{sec:relatedwork}
\subsection{Modeling of BLDC Motor}
The electromechanical model of a BLDC (Brushless DC) motor is foundational for understanding its behaviour under different control schemes. BLDC motors are categorized by their back-electromotive force (back-EMF) waveform: trapezoidal or sinusoidal. This distinction is crucial, as the trapezoidal shape inherently leads to torque ripple when the supplied phase currents are not perfectly aligned, directly influencing the choice and effectiveness of the control strategy \cite{patil_analysis_2025}. For a BLDC motor with trapezoidal back-EMF, the electromagnetic torque is given by:
\[
T_e = \frac{e_a i_a + e_b i_b + e_c i_c}{\omega_m}
\]
where \( e_x \) is the back-EMF and \( i_x \) is the phase current \cite{li_quantitative_2019}. The classical d-q reference frame model, ideal for sinusoidal machines, is less suitable for trapezoidal BLDC motors because it assumes sinusoidal flux distribution. Phase-variable modelling in the natural (abc) frame is therefore more appropriate, as it directly accounts for the non-sinusoidal, trapezoidal nature of the back-EMF and the associated harmonics \cite{mohammd_taher_new_2021}.
\subsection{Trapezoidal Commutation (Six-Step Control) for BLDC Motors}
% Trapezoidal commutation, or six-step control, uses Hall-effect sensors to synchronize phase current switching every
% 120 electrical degrees.
Trapezoidal commutation, or Six-Step control, uses bipolar conduction, with two motor phases conducting at any time and current commutation occurring every 120 electrical degrees \cite{gieras_modern_2023}. As commutation depends on rotor position, Six-Step control requires either position sensors (e.g. Hall sensors, encoders, or resolvers) or sensor-less estimation based on back-EMF detection or observers \cite{gieras_modern_2023, gasc_conception_2004}. This method is renowned for its simplicity of implementation and low hardware cost \cite{bhatiya_bldc_2024}. It enables effective torque control but introduces significant torque ripple during commutation events, especially under high load \cite{jomsa-nga_torque_2024}. This ripple generates noise, increases mechanical stress, and reduces overall efficiency \cite{mohammd_taher_new_2021}. Although PWM techniques can mitigate this ripple, they do not completely eliminate it \cite{li_quantitative_2019}.
\subsection{Field-Oriented Control (FOC) for BLDC Motors}
FOC is a vector control strategy that decouples the stator flux and torque components. It transforms three-phase currents into orthogonal \( I_d \) and \( I_q \) components, enabling precise torque control and significant ripple reduction \cite{jomsa-nga_torque_2024}. FOC is particularly effective for BLDC motors with sinusoidal back-EMF but can also be applied to trapezoidal back-EMF motors, albeit with less impressive ripple suppression results \cite{li_quantitative_2019}. It requires greater computational power and more precise position sensors (e.g. encoders). Comparative analysis shows that FOC yields a more stable stator current profile and significantly reduces torque variations compared to trapezoidal control \cite{patil_analysis_2025}.
\subsection{Comparative Analysis: FOC vs. Trapezoidal for Light Electric Vehicles}
\subsubsection{Torque Ripple and User Comfort}
Firstly, torque ripple can be reduced for both control methods by selecting appropriate motor parameters, such as the number of stator slots and rotor poles \cite{gasc_conception_2004}.
FOC substantially reduces torque ripple compared to Six-Step control, directly enhancing ride comfort and minimizing vibrations. Experimental results show a torque ripple of \SI{18.38}{\percent} for FOC versus \SI{35.67}{\percent} for Six-Step control at 500~rpm \cite{jomsa-nga_torque_2024}. Commutation torque ripple (CTR), prominent in Six-Step control, can be specifically targeted and mitigated using advanced control techniques like Model Predictive Control (MPC) while retaining the fundamental simplicity of trapezoidal commutation \cite{mohammd_taher_new_2021}.
\subsubsection{Energy Efficiency}
FOC optimizes torque per ampere (MTPA), improving efficiency at low loads. Six-Step control exhibits lower switching losses at high speeds \cite{li_quantitative_2019}.
\subsubsection{Complexity, Cost, and Low-Tech Suitability}
Six-Step control is inherently simpler, cheaper, and more robust, making it a prime candidate for low-tech applications. Research focused on reducing propulsion system costs proposes simplified hardware topologies, such as 4-switch inverters (instead of 6) coupled with direct current control strategies, maintaining acceptable performance while significantly lowering hardware costs \cite{lee_advanced_2001}. FOC, while superior in performance, is more complex to implement and carries higher hardware costs (sensors, processing power).
\subsubsection{Dynamic Response}
FOC provides faster response times and better load disturbance rejection \cite{jomsa-nga_torque_2024}.

11
rapport/remerciements.tex Normal file
View file

@ -0,0 +1,11 @@
\section*{Acknowledgment}
The authors would like to thank Pascal Acco and Thierry Rocacher for their continuous technical guidance and support throughout this project. Their expertise in power electronics, embedded systems, and PCB design was invaluable.
We also thank La Manufacture Autonome Décentralisée (LaMAD) for providing the use case, the technical requirements, and the cargo bike platform used for validation.
Finally, we acknowledge the INSA Toulouse GEI department for providing access to laboratory facilities, measurement equipment, and the necessary components for prototyping.
This work was carried out as part of the 4th-year research project (PIR) at INSA Toulouse.

92
rapport/resultats.tex Normal file
View file

@ -0,0 +1,92 @@
\section{Results}
\subsection{FOC Controller Validation}
\subsubsection{Current Status Summary}
Table~\ref{tab:foc_status} summarizes the current status of the FOC
controller development.
\begin{table}[htbp]
\caption{FOC controller development status}
\label{tab:foc_status}
\centering
\begin{tabular}{l c}
\toprule
\textbf{Task} & \textbf{Status} \\
\midrule
VESC firmware compilation & Completed \\
Pin compatibility (F405 / L476) & Completed \\
Schematic design (KiCad) & Completed \\
ERC validation & Completed \\
PCB routing & In progress \\
Tile footprint correction & In progress \\
Board manufacturing & Planned \\
Hardware testing & Planned \\
\bottomrule
\end{tabular}
\end{table}
\subsection{Bicycle-Cargo System Control Results}
\subsubsection{Simulation Results}
The closed-loop Simulink model presented in the subsection~\ref{subsec:Simulink_model} was used to evaluate the performance of the proposed PI-based (Proportional-Integral) control strategy.
Figure~\ref{fig:tracking-error} shows the evolution of the tracking error between the bicycle and the cargo cart during simulation. The response exhibits an initial transient phase followed by a progressive convergence toward the desired equilibrium position, demonstrating stable closed-loop behaviour and satisfactory tracking performance.
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/error_fig.png}
\caption{Position tracking error between bicycle and cargo cart.}
\label{fig:tracking-error}
\end{figure}
\subsubsection{Experimental Load Characterization}
Experimental tests were conducted on flat terrain in order to evaluate the influence of mechanical load on the motor current consumption of the cargo cart system. The system was powered using a \SI{48}{\volt} battery pack.
Current measurements were acquired using an Analog Discovery 2 connected to a computer running the WaveForms software environment. A current clamp probe was used to measure the motor current, and the signals were sampled at \SI{1}{\kilo\hertz}.
During each test, the throttle command was set to its maximum value in order to produce the highest possible acceleration. Once the maximum speed was reached, the motor current naturally decreased and stabilised as the motor only compensated for rolling resistance and friction effects.
Three loading conditions were investigated corresponding approximately to one, two, and three passengers inside the cargo cart. The motor current measured during these experiments is shown in Fig.~\ref{fig:motor-currents}.
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/Motor_currents.pdf}
\caption{Measured motor current under three loading conditions.}
\label{fig:motor-currents}
\end{figure}
The results show a significant current peak during the acceleration phase, reaching the controller limit of approximately \SI{25}{\ampere}. After this transient phase, the current decreases and converges toward a lower steady-state value corresponding mainly to friction and resistive force compensation.
As expected, higher loading conditions resulted in higher steady-state current consumption, indicating an increase in the required motor torque. In addition, the duration during which the current remained close to the maximum controller limit also increased with heavier loads, reflecting the longer acceleration time required to reach steady-state operation.
These variations are mainly attributed to terrain irregularities, throttle response fluctuations, and limitations associated with the measurement setup and current probe acquisition chain.
However, due to the absence of direct velocity measurements during the experiments, only qualitative observations could be extracted from these tests. Consequently, a precise estimation of dynamic friction parameters and energy efficiency could not be achieved.
\subsection{FOC Controller Validation}
\subsubsection{Current Status Summary}
Table~\ref{tab:foc_status} summarizes the current status of the FOC controller development.
\begin{table}[htbp]
\caption{FOC controller development status}
\label{tab:foc_status}
\centering
\begin{tabular}{l c}
\toprule
\textbf{Task} & \textbf{Status} \\
\midrule
VESC firmware compilation & Completed \\
Pin compatibility (F405 / L476) & Completed \\
Schematic design (KiCad) & Completed \\
ERC validation & Completed \\
PCB routing & In progress \\
Tile footprint correction & In progress \\
Board manufacturing & Planned \\
Hardware testing & Planned \\
\bottomrule
\end{tabular}
\end{table}