diff --git a/Article_Scientifique/Figures/Motor_currents.pdf b/Article_Scientifique/Figures/Motor_currents.pdf new file mode 100644 index 0000000..59c0046 Binary files /dev/null and b/Article_Scientifique/Figures/Motor_currents.pdf differ diff --git a/Article_Scientifique/Figures/Schema_Autom_PIR.pdf b/Article_Scientifique/Figures/Schema_Autom_PIR.pdf new file mode 100644 index 0000000..d497818 Binary files /dev/null and b/Article_Scientifique/Figures/Schema_Autom_PIR.pdf differ diff --git a/Article_Scientifique/Figures/Schema_Autom_PIR.pdf:Zone.Identifier b/Article_Scientifique/Figures/Schema_Autom_PIR.pdf:Zone.Identifier new file mode 100644 index 0000000..d6c1ec6 Binary files /dev/null and b/Article_Scientifique/Figures/Schema_Autom_PIR.pdf:Zone.Identifier differ diff --git a/Article_Scientifique/main.aux b/Article_Scientifique/main.aux index e5feeba..a54204f 100644 --- a/Article_Scientifique/main.aux +++ b/Article_Scientifique/main.aux @@ -80,19 +80,28 @@ \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Closed-loop model of the bicycle-cargo system with PI control.}}{5}{figure.1}\protected@file@percent } \newlabel{fig:simulink-closedloop}{{1}{5}{Closed-loop model of the bicycle-cargo system with PI control}{figure.1}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VIII-C}}Control Architecture Exploration}{5}{subsection.8.3}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {IX}Results}{5}{section.9}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IX-A}}FOC Controller Validation}{5}{subsection.9.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-A}1}Current Status Summary}{5}{subsubsection.9.1.1}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {II}{\ignorespaces FOC controller development status}}{5}{table.2}\protected@file@percent } -\newlabel{tab:foc_status}{{II}{5}{FOC controller development status}{table.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IX-B}}Bicycle-Cargo System Control Results}{5}{subsection.9.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-B}1}Simulation Results}{5}{subsubsection.9.2.1}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Position tracking error between bicycle and cargo cart.}}{6}{figure.2}\protected@file@percent } -\newlabel{fig:tracking-error}{{2}{6}{Position tracking error between bicycle and cargo cart}{figure.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Cascaded control architecture for the bicycle-cargo system.}}{6}{figure.2}\protected@file@percent } +\newlabel{fig:cascaded-loop}{{2}{6}{Cascaded control architecture for the bicycle-cargo system}{figure.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {IX}Results}{6}{section.9}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IX-A}}FOC Controller Validation}{6}{subsection.9.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-A}1}Current Status Summary}{6}{subsubsection.9.1.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {II}{\ignorespaces FOC controller development status}}{6}{table.2}\protected@file@percent } +\newlabel{tab:foc_status}{{II}{6}{FOC controller development status}{table.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IX-B}}Bicycle-Cargo System Control Results}{6}{subsection.9.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-B}1}Simulation Results}{6}{subsubsection.9.2.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Position tracking error between bicycle and cargo cart.}}{6}{figure.3}\protected@file@percent } +\newlabel{fig:tracking-error}{{3}{6}{Position tracking error between bicycle and cargo cart}{figure.3}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-B}2}Experimental Load Characterization}{6}{subsubsection.9.2.2}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Measured motor current under three loading conditions.}}{6}{figure.3}\protected@file@percent } -\newlabel{fig:motor-currents}{{3}{6}{Measured motor current under three loading conditions}{figure.3}{}} -\@writefile{toc}{\contentsline {section}{\numberline {X}Discussion}{6}{section.10}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Measured motor current under three loading conditions.}}{6}{figure.4}\protected@file@percent } +\newlabel{fig:motor-currents}{{4}{6}{Measured motor current under three loading conditions}{figure.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IX-C}}FOC Controller Validation}{7}{subsection.9.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-C}1}Current Status Summary}{7}{subsubsection.9.3.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {III}{\ignorespaces FOC controller development status}}{7}{table.3}\protected@file@percent } +\newlabel{tab:foc_status}{{III}{7}{FOC controller development status}{table.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {X}Discussion}{7}{section.10}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {XI}Perspectives and Future Work}{7}{section.11}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {XI-A}}Hardware Completion and Testing}{7}{subsection.11.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {XII}Conclusion/Summary}{7}{section.12}\protected@file@percent } \bibstyle{IEEEtran} \bibdata{PIR_MadMax3} \bibcite{patil_analysis_2025}{1} @@ -105,8 +114,5 @@ \bibcite{lee_advanced_2001}{8} \bibcite{b1}{9} \bibcite{b2}{10} -\@writefile{toc}{\contentsline {section}{\numberline {XI}Perspectives and Future Work}{7}{section.11}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {XI-A}}Hardware Completion and Testing}{7}{subsection.11.1}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {XII}Conclusion/Summary}{7}{section.12}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{References}{7}{section*.3}\protected@file@percent } -\gdef \@abspage@last{7} +\@writefile{toc}{\contentsline {section}{References}{8}{section*.3}\protected@file@percent } +\gdef \@abspage@last{8} diff --git a/Article_Scientifique/main.log b/Article_Scientifique/main.log index 15202c1..e36b289 100644 --- a/Article_Scientifique/main.log +++ b/Article_Scientifique/main.log @@ -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) 13 MAY 2026 19:57 +This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2026.3.16) 14 MAY 2026 15:24 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -459,7 +459,11 @@ 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 19. - (./main.aux) + (./main.aux + +LaTeX Warning: Label `tab:foc_status' multiply defined. + +) \openout1 = `main.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 19. @@ -533,13 +537,13 @@ 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 Font Info: Trying to load font information for U+msa on input line 124 +LaTeX Font Info: Trying to load font information for U+msa on input line 122 . (/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 124 +LaTeX Font Info: Trying to load font information for U+msb on input line 122 . (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd @@ -553,28 +557,31 @@ Underfull \hbox (badness 1509) in paragraph at lines 432--439 [] [4] -<./Figures/sys_dyn_matlab.png, id=253, 430.2474pt x 226.6869pt> +<./Figures/sys_dyn_matlab.png, id=261, 430.2474pt x 226.6869pt> File: ./Figures/sys_dyn_matlab.png Graphic file (type png) Package pdftex.def Info: ./Figures/sys_dyn_matlab.png used on input line 520. (pdftex.def) Requested size: 252.0pt x 132.77559pt. -<./Figures/error_fig.png, id=258, 509.7444pt x 328.5876pt> + [5 <./Figures/sys_dyn_matlab.png>] +<./Figures/Schema_Autom_PIR.pdf, id=272, 610.21573pt x 143.36761pt> +File: ./Figures/Schema_Autom_PIR.pdf Graphic file (type pdf) + +Package pdftex.def Info: ./Figures/Schema_Autom_PIR.pdf used on input line 557 +. +(pdftex.def) Requested size: 252.0pt x 59.20549pt. +<./Figures/error_fig.png, id=277, 509.7444pt x 328.5876pt> File: ./Figures/error_fig.png Graphic file (type png) -Package pdftex.def Info: ./Figures/error_fig.png used on input line 573. +Package pdftex.def Info: ./Figures/error_fig.png used on input line 620. (pdftex.def) Requested size: 252.0pt x 162.44328pt. - - -LaTeX Warning: `!h' float specifier changed to `!ht'. - -[5 <./Figures/sys_dyn_matlab.png>] -<./Figures/Motor_currents.png, id=271, 499.6266pt x 328.1058pt> -File: ./Figures/Motor_currents.png Graphic file (type png) - -Package pdftex.def Info: ./Figures/Motor_currents.png used on input line 595. -(pdftex.def) Requested size: 252.0pt x 165.48434pt. - [6 <./Figures/error_fig.png (PNG copy)> <./Figures/Motor_currents.png (PNG cop -y)>] (./main.bbl +<./Figures/Motor_currents.pdf, id=279, 501.875pt x 329.23pt> +File: ./Figures/Motor_currents.pdf Graphic file (type pdf) + +Package pdftex.def Info: ./Figures/Motor_currents.pdf used on input line 642. +(pdftex.def) Requested size: 252.0pt x 165.31287pt. + [6 <./Figures/Schema_Autom_PIR.pdf> <./Figures/error_fig.png (PNG copy)> <./Fi +gures/Motor_currents.pdf>] [7] +(./main.bbl Underfull \hbox (badness 1490) in paragraph at lines 97--99 []\OT1/ptm/m/n/8 ------, ``lispbm in vesc,'' []$https : / / github . com / vedd erb / bldc / tree / master / @@ -592,35 +599,44 @@ 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. -[7] (./main.aux) +[8 + +] (./main.aux) + +LaTeX Warning: There were multiply-defined labels. + Package rerunfilecheck Info: File `main.out' has not changed. -(rerunfilecheck) Checksum: D428FCA31372168544B7CCCCB9675B0D;9238. +(rerunfilecheck) Checksum: 4DF27D054EB6179EF4DF0FC61FEDCAAE;9611. ) Here is how much of TeX's memory you used: - 14909 strings out of 478287 - 283324 string characters out of 5849289 - 567540 words of memory out of 5000000 - 32854 multiletter control sequences out of 15000+600000 + 14924 strings out of 478287 + 283713 string characters out of 5849289 + 567663 words of memory out of 5000000 + 32863 multiletter control sequences out of 15000+600000 508470 words of font info for 101 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 70i,10n,79p,470b,753s stack positions out of 5000i,500n,10000p,200000b,80000s + 70i,10n,79p,470b,830s stack positions out of 5000i,500n,10000p,200000b,80000s {/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}< -/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb> -Output written on main.pdf (7 pages, 348774 bytes). +/fonts/type1/public/amsfonts/cm/cmmi6.pfb> +Output written on main.pdf (8 pages, 676579 bytes). PDF statistics: - 372 PDF objects out of 1000 (max. 8388607) - 329 compressed objects within 4 object streams - 71 named destinations out of 1000 (max. 500000) - 384 words of extra memory for PDF output out of 10000 (max. 10000000) + 455 PDF objects out of 1000 (max. 8388607) + 392 compressed objects within 4 object streams + 76 named destinations out of 1000 (max. 500000) + 405 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Article_Scientifique/main.out b/Article_Scientifique/main.out index b45c272..a42444a 100644 --- a/Article_Scientifique/main.out +++ b/Article_Scientifique/main.out @@ -39,8 +39,10 @@ \BOOKMARK [2][-]{subsection.9.2}{\376\377\000B\000i\000c\000y\000c\000l\000e\000-\000C\000a\000r\000g\000o\000\040\000S\000y\000s\000t\000e\000m\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000R\000e\000s\000u\000l\000t\000s}{section.9}% 39 \BOOKMARK [3][-]{subsubsection.9.2.1}{\376\377\000S\000i\000m\000u\000l\000a\000t\000i\000o\000n\000\040\000R\000e\000s\000u\000l\000t\000s}{subsection.9.2}% 40 \BOOKMARK [3][-]{subsubsection.9.2.2}{\376\377\000E\000x\000p\000e\000r\000i\000m\000e\000n\000t\000a\000l\000\040\000L\000o\000a\000d\000\040\000C\000h\000a\000r\000a\000c\000t\000e\000r\000i\000z\000a\000t\000i\000o\000n}{subsection.9.2}% 41 -\BOOKMARK [1][-]{section.10}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n}{}% 42 -\BOOKMARK [1][-]{section.11}{\376\377\000P\000e\000r\000s\000p\000e\000c\000t\000i\000v\000e\000s\000\040\000a\000n\000d\000\040\000F\000u\000t\000u\000r\000e\000\040\000W\000o\000r\000k}{}% 43 -\BOOKMARK [2][-]{subsection.11.1}{\376\377\000H\000a\000r\000d\000w\000a\000r\000e\000\040\000C\000o\000m\000p\000l\000e\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000T\000e\000s\000t\000i\000n\000g}{section.11}% 44 -\BOOKMARK [1][-]{section.12}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000/\000S\000u\000m\000m\000a\000r\000y}{}% 45 -\BOOKMARK [1][-]{section*.3}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 46 +\BOOKMARK [2][-]{subsection.9.3}{\376\377\000F\000O\000C\000\040\000C\000o\000n\000t\000r\000o\000l\000l\000e\000r\000\040\000V\000a\000l\000i\000d\000a\000t\000i\000o\000n}{section.9}% 42 +\BOOKMARK [3][-]{subsubsection.9.3.1}{\376\377\000C\000u\000r\000r\000e\000n\000t\000\040\000S\000t\000a\000t\000u\000s\000\040\000S\000u\000m\000m\000a\000r\000y}{subsection.9.3}% 43 +\BOOKMARK [1][-]{section.10}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n}{}% 44 +\BOOKMARK [1][-]{section.11}{\376\377\000P\000e\000r\000s\000p\000e\000c\000t\000i\000v\000e\000s\000\040\000a\000n\000d\000\040\000F\000u\000t\000u\000r\000e\000\040\000W\000o\000r\000k}{}% 45 +\BOOKMARK [2][-]{subsection.11.1}{\376\377\000H\000a\000r\000d\000w\000a\000r\000e\000\040\000C\000o\000m\000p\000l\000e\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000T\000e\000s\000t\000i\000n\000g}{section.11}% 46 +\BOOKMARK [1][-]{section.12}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000/\000S\000u\000m\000m\000a\000r\000y}{}% 47 +\BOOKMARK [1][-]{section*.3}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 48 diff --git a/Article_Scientifique/main.pdf b/Article_Scientifique/main.pdf index ea257cf..036e1bd 100644 Binary files a/Article_Scientifique/main.pdf and b/Article_Scientifique/main.pdf differ diff --git a/Article_Scientifique/main.tex b/Article_Scientifique/main.tex index ed69584..8b29724 100644 --- a/Article_Scientifique/main.tex +++ b/Article_Scientifique/main.tex @@ -279,7 +279,7 @@ assistance based on system dynamics. microcontroller. The initial idea was to make this tile \textit{pluggable} into our - carrier board, similar to an Arduino shield. This would allow : + 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. @@ -525,6 +525,53 @@ where $e_{\text{ref}} = \SI{-0.5}{\meter}$ represents the desired equilibrium of \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 bike. +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. % ******************************** RESULTS ************************************************************************** @@ -592,7 +639,7 @@ cargo cart. The motor current measured during these experiments is shown in Fig. \begin{figure}[!h] \centering - \includegraphics[width=\linewidth]{./Figures/Motor_currents.png} + \includegraphics[width=\linewidth]{./Figures/Motor_currents.pdf} \caption{Measured motor current under three loading conditions.} \label{fig:motor-currents} \end{figure}