ajout partie autom 1
This commit is contained in:
parent
9e99d4282b
commit
ff8fee3dd9
6 changed files with 227 additions and 169 deletions
BIN
Article_Scientifique/Figures/error_fig.png
Normal file
BIN
Article_Scientifique/Figures/error_fig.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 68 KiB |
|
|
@ -20,7 +20,6 @@
|
|||
\citation{li_quantitative_2019}
|
||||
\citation{lee_advanced_2001}
|
||||
\citation{jomsa-nga_torque_2024}
|
||||
\citation{b1}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}Trapezoidal Commutation (Six-Step Control) for BLDC Motors}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-C}}Field-Oriented Control (FOC) for BLDC Motors}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-D}}Comparative Analysis: FOC vs. Trapezoidal for Light Electric Vehicles}{2}{}\protected@file@percent }
|
||||
|
|
@ -29,21 +28,32 @@
|
|||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}3}Complexity, Cost, and Low-Tech Suitability}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}4}Dynamic Response}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {III}Research gap}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {IV}The aim of the study}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {V}Software and Connectivity}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {V-A}}BLE Compatibility With the VESC}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-A}1}First Experiment}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-A}2}HC-05 and the VESC}{2}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {IV}Aim and Research Objectives}{2}{}\protected@file@percent }
|
||||
\citation{b1}
|
||||
\citation{b1}
|
||||
\citation{b2}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-A}3}BLE Vulnerability}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {V-B}}Code integrity}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}1}Context}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}2}LispBM extraction}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}3}LispBM Code}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}4}Proposed Solution}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {V-C}}VESC Compiling}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {VI}Discussion}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {V}Hardware-Based Six-Step Commutation Controller}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {VI}STM32-Based Field-Oriented Control Motor Drive}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {VII}Software and Connectivity}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-A}}BLE Compatibility With the VESC}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}1}First Experiment}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}2}HC-05 and the VESC}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}3}BLE Vulnerability}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-B}}Code integrity}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}1}Context}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}2}LispBM extraction}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}3}LispBM Code}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}4}Proposed Solution}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-C}}VESC Compiling}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Dynamic Modelling and Control of the Bicycle–Cargo System}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VIII-A}}System Modelling and Simulation}{3}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VIII-A}1}Dynamic Modelling}{4}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VIII-A}2}Simulation and Control}{4}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Closed-loop model of the bicycle–cargo system with PI control.}}{4}{}\protected@file@percent }
|
||||
\newlabel{fig:simulink_closedloop}{{1}{4}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Position tracking error between bicycle and cargo cart.}}{4}{}\protected@file@percent }
|
||||
\newlabel{fig:tracking_error}{{2}{4}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {IX}Discussion}{4}{}\protected@file@percent }
|
||||
\bibstyle{IEEEtran}
|
||||
\bibdata{PIR_MadMax3}
|
||||
\bibcite{patil_analysis_2025}{1}
|
||||
|
|
@ -56,7 +66,7 @@
|
|||
\bibcite{lee_advanced_2001}{8}
|
||||
\bibcite{b1}{9}
|
||||
\bibcite{b2}{10}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {VII}Results}{4}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Conclusion/Summary}{4}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{References}{4}{}\protected@file@percent }
|
||||
\gdef \@abspage@last{4}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {X}Results}{5}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {XI}Conclusion/Summary}{5}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{References}{5}{}\protected@file@percent }
|
||||
\gdef \@abspage@last{5}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2026.3.16) 12 MAY 2026 15:56
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2026.3.16) 12 MAY 2026 18:13
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
|
|
@ -210,6 +210,9 @@ Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
|||
\Urlmuskip=\muskip17
|
||||
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
|
||||
)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/placeins/placeins.sty
|
||||
Package: placeins 2005/04/18 v 2.2
|
||||
)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/siunitx/siunitx.sty
|
||||
Package: siunitx 2022-02-02 v3.0.46 A comprehensive (SI) units package
|
||||
\l__siunitx_angle_tmp_dim=\dimen171
|
||||
|
|
@ -322,24 +325,24 @@ Package xcolor Info: Model `Gray' substituted by `gray' on input line 1374.
|
|||
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1375.
|
||||
)
|
||||
Package translations Info: No language package found. I am going to use `englis
|
||||
h' as default language. on input line 16.
|
||||
h' as default language. on input line 17.
|
||||
(./main.aux)
|
||||
\openout1 = `main.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
|
||||
-- Lines per column: 56 (exact).
|
||||
|
||||
|
|
@ -349,7 +352,7 @@ File: translations-basic-dictionary-english.trsl (english translation file `tra
|
|||
nslations-basic-dictionary')
|
||||
)
|
||||
Package translations Info: loading dictionary `translations-basic-dictionary' f
|
||||
or `english'. on input line 16.
|
||||
or `english'. on input line 17.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
|
|
@ -373,108 +376,42 @@ Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
|
|||
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
|
||||
e
|
||||
))
|
||||
|
||||
LaTeX Warning: Citation `patil_analysis_2025' on page 1 undefined on input line
|
||||
117.
|
||||
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 118
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 121
|
||||
.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+msb on input line 118
|
||||
LaTeX Font Info: Trying to load font information for U+msb on input line 121
|
||||
.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
|
||||
LaTeX Warning: Citation `li_quantitative_2019' on page 1 undefined on input lin
|
||||
e 121.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `mohammd_taher_new_2021' on page 1 undefined on input l
|
||||
ine 125.
|
||||
|
||||
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
|
||||
) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
|
||||
|
||||
|
||||
]
|
||||
Underfull \vbox (badness 1354) has occurred while \output is active []
|
||||
|
||||
LaTeX Warning: Citation `gieras_modern_2023' on page 2 undefined on input line
|
||||
131.
|
||||
[2]
|
||||
[3]
|
||||
Underfull \hbox (badness 2173) in paragraph at lines 352--354
|
||||
\OT1/ptm/m/it/10 2) Sim-u-la-tion and Con-trol: [][] \OT1/ptm/m/n/10 Based on
|
||||
this model, a
|
||||
[]
|
||||
|
||||
|
||||
LaTeX Warning: Citation `gieras_modern_2023' on page 2 undefined on input line
|
||||
133.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `gasc_conception_2004' on page 2 undefined on input lin
|
||||
e 133.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `bhatiya_bldc_2024' on page 2 undefined on input line 1
|
||||
34.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
|
||||
ne 136.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `mohammd_taher_new_2021' on page 2 undefined on input l
|
||||
ine 137.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `li_quantitative_2019' on page 2 undefined on input lin
|
||||
e 138.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
|
||||
ne 143.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `li_quantitative_2019' on page 2 undefined on input lin
|
||||
e 145.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `patil_analysis_2025' on page 2 undefined on input line
|
||||
147.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `gasc_conception_2004' on page 2 undefined on input lin
|
||||
e 153.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
|
||||
ne 156.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `mohammd_taher_new_2021' on page 2 undefined on input l
|
||||
ine 159.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `li_quantitative_2019' on page 2 undefined on input lin
|
||||
e 163.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `lee_advanced_2001' on page 2 undefined on input line 1
|
||||
70.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
|
||||
ne 175.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `b1' on page 2 undefined on input line 208.
|
||||
|
||||
[2]
|
||||
|
||||
LaTeX Warning: Citation `b1' on page 3 undefined on input line 232.
|
||||
|
||||
|
||||
LaTeX Warning: Citation `b2' on page 3 undefined on input line 238.
|
||||
|
||||
[3] (./main.bbl
|
||||
<./Figures/sys_dyn_matlab.png, id=19, 430.2474pt x 193.2018pt>
|
||||
File: ./Figures/sys_dyn_matlab.png Graphic file (type png)
|
||||
<use ./Figures/sys_dyn_matlab.png>
|
||||
Package pdftex.def Info: ./Figures/sys_dyn_matlab.png used on input line 373.
|
||||
(pdftex.def) Requested size: 252.0pt x 113.16261pt.
|
||||
<./Figures/error_fig.png, id=21, 509.7444pt x 328.5876pt>
|
||||
File: ./Figures/error_fig.png Graphic file (type png)
|
||||
<use ./Figures/error_fig.png>
|
||||
Package pdftex.def Info: ./Figures/error_fig.png used on input line 381.
|
||||
(pdftex.def) Requested size: 252.0pt x 162.44328pt.
|
||||
[4 <./Figures/sys_dyn_matlab.png> <./Figures/error_fig.png (PNG copy)>]
|
||||
(./main.bbl
|
||||
Underfull \hbox (badness 1490) in paragraph at lines 97--99
|
||||
[]\OT1/ptm/m/n/8 ------, ``lispbm in vesc,'' $https : / / github . com / vedder
|
||||
b / bldc / tree / master /
|
||||
|
|
@ -492,35 +429,29 @@ Before submitting the final camera ready copy, remember to:
|
|||
uses only Type 1 fonts and that every step in the generation
|
||||
process uses the appropriate paper size.
|
||||
|
||||
[4
|
||||
|
||||
] (./main.aux)
|
||||
|
||||
LaTeX Warning: There were undefined references.
|
||||
|
||||
|
||||
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
|
||||
|
||||
)
|
||||
[5] (./main.aux) )
|
||||
Here is how much of TeX's memory you used:
|
||||
8270 strings out of 478287
|
||||
179210 string characters out of 5849289
|
||||
458734 words of memory out of 5000000
|
||||
26390 multiletter control sequences out of 15000+600000
|
||||
505668 words of font info for 98 fonts, out of 8000000 for 9000
|
||||
8318 strings out of 478287
|
||||
180456 string characters out of 5849289
|
||||
457883 words of memory out of 5000000
|
||||
26430 multiletter control sequences out of 15000+600000
|
||||
505639 words of font info for 98 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
71i,8n,79p,227b,513s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texliv
|
||||
e/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texm
|
||||
f-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dist/
|
||||
fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/t
|
||||
ype1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/
|
||||
utmbi8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></u
|
||||
sr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
|
||||
Output written on main.pdf (4 pages, 111590 bytes).
|
||||
{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</
|
||||
usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/sh
|
||||
are/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/te
|
||||
xlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/t
|
||||
exmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-di
|
||||
st/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts
|
||||
/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1
|
||||
/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb
|
||||
i8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/s
|
||||
hare/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
|
||||
Output written on main.pdf (5 pages, 235480 bytes).
|
||||
PDF statistics:
|
||||
53 PDF objects out of 1000 (max. 8388607)
|
||||
32 compressed objects within 1 object stream
|
||||
75 PDF objects out of 1000 (max. 8388607)
|
||||
44 compressed objects within 1 object stream
|
||||
0 named destinations out of 1000 (max. 500000)
|
||||
1 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
11 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -5,6 +5,7 @@
|
|||
\usepackage{amsmath,amssymb,amsfonts}
|
||||
\usepackage{algorithmic}
|
||||
\usepackage{url}
|
||||
\usepackage{placeins}
|
||||
\usepackage{siunitx}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{textcomp}
|
||||
|
|
@ -71,15 +72,15 @@ taban@insa-toulouse.fr}
|
|||
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. La Manufacture Autonome Décentralisée (LaMAD) is developing products
|
||||
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 LaMAD. 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
|
||||
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
|
||||
|
|
@ -102,11 +103,13 @@ they often introduce vulnerabilities. Open-source projects, in particular, must
|
|||
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 vehicules carrying a substantial load. This needs to be considered by laMAD,
|
||||
This is especially true when it comes to vehicules 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 laMAD than what is publicly available?
|
||||
product from the MAD than what is publicly available?
|
||||
|
||||
|
||||
% ********************************************* RELATED WORK ***********************************************************
|
||||
|
||||
\section{Related Work}
|
||||
|
||||
\subsection{Modeling of BLDC Motor}
|
||||
|
|
@ -206,6 +209,13 @@ The objective is to minimize the perceived additional effort when towing a cargo
|
|||
PID-based (Proportional–Integral–Derivative) control strategy combined with distance sensing, allowing adaptive
|
||||
assistance based on system dynamics.
|
||||
|
||||
\section{Hardware-Based Six-Step Commutation Controller}
|
||||
|
||||
\section{STM32-Based Field-Oriented Control Motor Drive}
|
||||
|
||||
|
||||
% ************************************** SOFTWARE AND CONNECTIVITY *****************************************************
|
||||
|
||||
\section{Software and Connectivity}
|
||||
|
||||
\subsection{BLE Compatibility With the VESC}
|
||||
|
|
@ -243,15 +253,15 @@ have in mind the maximum speed permitted and the power available to the motors.
|
|||
\subsubsection{LispBM extraction}
|
||||
We caugth 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
|
||||
laMAD 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 laMADs
|
||||
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 which is in a traffic friendly manner.
|
||||
|
||||
\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 speed. This needs to be documented better for someone
|
||||
to continue the project. This could be a good investment for laMAD as well in the context of training for the people
|
||||
to continue the project. This could be a good investment for the MAD as well in the context of training for the people
|
||||
working on the motor control part of the e-bike.
|
||||
|
||||
This documentation could be as simple as referencing the relevant parts of the lispBM documentation \cite{b2}
|
||||
|
|
@ -259,9 +269,9 @@ This documentation could be as simple as referencing the relevant parts of the l
|
|||
\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 which is make unlawful use of the material harder. The application could be
|
||||
created using C and use an algorithm known by laMAD in order to securise the access to someone to change the parameters
|
||||
only if they are laMAD 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 laMAD would be.
|
||||
created using C and use an algorithm known by the MAD in order to securise the access to someone to change the parameters
|
||||
only if they are the 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.
|
||||
|
||||
|
||||
|
||||
|
|
@ -272,20 +282,118 @@ summarise what we have learned for you and propose some additional work for the
|
|||
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 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 laMAD, as laMAD could propose
|
||||
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 ressources 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 struggeled particularly with the Qt packages for positioning and
|
||||
gamepad. We would therefore recommend the use of a debian-based linux system for the computer working with the VESC
|
||||
for the laMAD associates.
|
||||
for the the MAD associates.
|
||||
|
||||
|
||||
% ************************************ DYNAMIC MODELLING ***************************************************************
|
||||
|
||||
\section{Dynamic Modelling and Control of the Bicycle–Cargo System}
|
||||
|
||||
\subsection{System Modelling and Simulation}
|
||||
|
||||
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.
|
||||
|
||||
\subsubsection{Dynamic Modelling}
|
||||
|
||||
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*}
|
||||
|
||||
|
||||
\subsubsection{Simulation and Control}
|
||||
|
||||
Based on this model, a Simulink representation of the system was developed. The controlled system includes a feedback
|
||||
loop using a PI 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.
|
||||
The resulting position error between the bicycle and the cargo cart is shown in Fig.~\ref{fig:tracking_error}.
|
||||
|
||||
\FloatBarrier
|
||||
|
||||
\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}
|
||||
|
||||
\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}
|
||||
|
||||
\subsection{Control Architecture Exploration}
|
||||
|
||||
\subsection{Experimental Characterization Under Different Loads}
|
||||
|
||||
% ******************************** DISCUSSION **************************************************************************
|
||||
|
||||
|
||||
\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 laMAD is leading should probably not be a fork of the project, as the project is still
|
||||
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
|
||||
|
|
@ -333,12 +441,21 @@ impose a tripping hazard. There, an encapsulation of an encrypted control frame
|
|||
|
||||
\section*{Acknowledgment}
|
||||
|
||||
The preferred spelling of the word ``acknowledgment'' in America is without
|
||||
an ``e'' after the ``g''. Avoid the stilted expression ``one of us (R. B.
|
||||
G.) thanks $\ldots$''. Instead, try ``R. B. G. thanks$\ldots$''. Put sponsor
|
||||
acknowledgments in the unnumbered footnote on the first page.
|
||||
The authors acknowledge the use of generative AI tools during this project, both for the development work and for
|
||||
writing this paper.
|
||||
|
||||
%\section*{References}
|
||||
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.
|
||||
|
||||
%Please number citations consecutively within brackets \cite{b1}. The
|
||||
%sentence punctuation follows the bracket \cite{b2}. Refer simply to the reference
|
||||
|
|
|
|||
Loading…
Reference in a new issue