Adding skriveleifs
This commit is contained in:
parent
09e55c2feb
commit
1f86a799d0
1 changed files with 144 additions and 237 deletions
|
|
@ -183,28 +183,11 @@ carries higher hardware costs (sensors, processing power).
|
|||
FOC provides faster response times and better load disturbance rejection \cite{jomsa-nga_torque_2024}.
|
||||
|
||||
|
||||
|
||||
\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).
|
||||
\section{Research gap}
|
||||
Despite this progress, limited research has examined the adaptation of open-source motor controllers to LowTech and
|
||||
repairability constraints. To date, researchers have not addressed the challenge of designing a controller that can
|
||||
be locally fabricated, repaired with standard components, and secured against unauthorised wireless access requirements
|
||||
that are critical for decentralised, community-operated fleets.
|
||||
|
||||
|
||||
\section{Aim and Research Objectives}
|
||||
|
|
@ -245,161 +228,143 @@ assistance based on system dynamics.
|
|||
\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:related}.
|
||||
|
||||
\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]{../PCB/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 analog 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.
|
||||
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 modifying the PCB, a thorough pin compatibility check was
|
||||
performed between the STM32L476 and the STM32F405
|
||||
(original Cheap FOCer-2 design). The following aspects were examined:
|
||||
\begin{itemize}
|
||||
\item Physical pinout in LQFP64 package.
|
||||
\item Alternate functions for PWM timers.
|
||||
\item USB DP/DM pins (PA11/PA12).
|
||||
\item Analog inputs for current sensing.
|
||||
\item UART for BLE communication.
|
||||
\end{itemize}
|
||||
|
||||
Three pin conflicts were identified and resolved as follows.
|
||||
|
||||
First, the SPI\_MISO function on PA6 for the STM32F405 conflicts with a
|
||||
DAC output on the same pin for the STM32L476 tile. Since this pin is
|
||||
used for current sensing via SPI in the original Cheap FOCer-2 design,
|
||||
the SPI communication was remapped to PA5 on the L476, which provides a
|
||||
compatible alternate function.
|
||||
|
||||
Second, the gate driver enable signal (EN\_GATE) was originally assigned
|
||||
to PB5 on the F405. This pin is not accessible on the L476
|
||||
tile. The signal was therefore moved to PC5, which is available and
|
||||
can be configured as a standard GPIO output.
|
||||
|
||||
Third, Hall sensor C was originally connected to PC8 (TIM8) on the F405.
|
||||
This pin is not available on the L476 tile. The Hall sensor input was
|
||||
therefore reassigned to PB3, configured as TIM2\_CH2, which provides
|
||||
the necessary input capture functionality for Hall signal decoding.
|
||||
|
||||
All other critical functions (PWM timers, complementary PWM, enable
|
||||
signals, encoder inputs, UART, USB, and CAN) remain fully compatible
|
||||
between the two microcontrollers. The ADC channel differences between
|
||||
the F405 (ADC123/ADC12) and the L476 (ADC3) must still be handled in
|
||||
firmware, as noted previously.
|
||||
|
||||
\subsection{Schematic Design and KiCad Implementation}
|
||||
|
||||
The original Cheap FOCer-2 schematic was modified in KiCad to replace the
|
||||
integrated F405 with connectors for the L476 tile. The main modifications
|
||||
included:
|
||||
\begin{itemize}
|
||||
\item Removal of the F405 and its associated passive components.
|
||||
\item Addition of two 20-pin headers to receive the Rocacher tile.
|
||||
\item Re-routing of PWM, ADC, and USB signals to the headers.
|
||||
\end{itemize}
|
||||
|
||||
The schematic passed Electrical Rule Check (ERC) with no errors.
|
||||
|
||||
\subsection{Routing Challenges and Current Status}
|
||||
|
||||
The PCB layout was then started. The original Cheap FOCer-2 routing is
|
||||
very dense. Inserting connectors for the removable tile while maintaining signal integrity proved
|
||||
difficult.
|
||||
|
||||
The main issues encountered were:
|
||||
\begin{itemize}
|
||||
\item Some footprints for the tile connectors did not appear correctly
|
||||
in the layout after schematic import.
|
||||
\item Routing of high-current paths (battery, motor phases) around the
|
||||
connectors required additional vias, increasing resistance.
|
||||
\item Decoupling capacitors had to be repositioned, raising concerns
|
||||
about switching noise.
|
||||
\end{itemize}
|
||||
|
||||
Currently, the schematic is validated, and the layout is under
|
||||
development. Once routing is completed, the board will be manufactured
|
||||
and tested with the VESC firmware adapted to the L476 tile.
|
||||
|
||||
|
||||
% ************************************** SOFTWARE AND CONNECTIVITY *****************************************************
|
||||
|
|
@ -410,7 +375,7 @@ STM32L476 tile.
|
|||
|
||||
\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 recieve
|
||||
BT-module. A standard HC-05 bluetooth-module compatible with arduino is a great way to send and recieve
|
||||
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.
|
||||
|
|
@ -661,56 +626,6 @@ 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 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.
|
||||
|
||||
|
||||
% ******************************** RESULTS **************************************************************************
|
||||
|
|
@ -778,7 +693,7 @@ cargo cart. The motor current measured during these experiments is shown in Fig.
|
|||
|
||||
\begin{figure}[!h]
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{./Figures/Motor_currents.pdf}
|
||||
\includegraphics[width=\linewidth]{./Figures/Motor_currents.png}
|
||||
\caption{Measured motor current under three loading conditions.}
|
||||
\label{fig:motor-currents}
|
||||
\end{figure}
|
||||
|
|
@ -870,14 +785,6 @@ 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.
|
||||
|
||||
|
||||
% ******************************** CONCLUSION **************************************************************************
|
||||
|
||||
\section{Conclusion/Summary}
|
||||
|
|
|
|||
Loading…
Reference in a new issue