Compare commits

...

49 commits

Author SHA1 Message Date
67c357be4b
rien de gros 2026-05-15 02:34:42 +02:00
0ac8aeacaf
ajout de sources 2026-05-15 00:27:35 +02:00
f538807b5d
le truc que t'a changé 2026-05-15 00:11:46 +02:00
b6cc0b2ed3
fini 2026-05-15 00:04:55 +02:00
210975a79c
Partie SC finie 2026-05-14 23:33:58 +02:00
8ff0bdd318 Merge branch 'main' of https://git.etud.insa-toulouse.fr/taban/PIR_MadMax 2026-05-14 23:12:41 +02:00
Tournesol02
83338bbdef Enleve de deux repo grand: VescUART et bldc_uart 2026-05-14 23:12:15 +02:00
4633fa6e56 petit fix 2026-05-14 23:12:05 +02:00
Tournesol02
2c681103f8 Proofreading 2026-05-14 23:08:50 +02:00
dec0d984dc Merge branch 'main' of https://git.etud.insa-toulouse.fr/taban/PIR_MadMax 2026-05-14 23:00:29 +02:00
08de5a314c Ajouter bibliographie pour M. Taban 2026-05-14 22:57:34 +02:00
cab824f8da
ajout des composants 2026-05-14 22:30:48 +02:00
Tournesol02
4b59e20ee5 Ajout de sous-titre de figure 2026-05-14 22:30:23 +02:00
d748559abc
un peu de progrès 2026-05-14 22:27:44 +02:00
7001002f82 MàJ main.bbl 2026-05-14 21:57:40 +02:00
1cc3dcfadb Ajouter source 2026-05-14 21:53:13 +02:00
ff3c85c334 Ajouter source dans la bibliographie 2026-05-14 21:40:35 +02:00
df6b88ab83 Ajouter source 2026-05-14 20:56:32 +02:00
c664ae2017 Revert "on enleve des trucs inutiles"
This reverts commit 759e619504.
2026-05-14 20:39:44 +02:00
759e619504
on enleve des trucs inutiles 2026-05-14 20:43:47 +02:00
eda53a6535
restructuration pour qu'on puisse travailler ensemble 2026-05-14 20:40:08 +02:00
21fa1dfb2a
corrections 2026-05-14 20:10:11 +02:00
a6d4089e13
merge fix 2026-05-14 20:07:46 +02:00
46df5a2f17
Ajout du debut de ma partie 2026-05-14 20:01:10 +02:00
e1e23943b8 Petit fix 2026-05-14 19:32:53 +02:00
69ad6a6e4f Ajouter la figure dans le répértoire 2026-05-14 19:18:02 +02:00
fe0b6b2dca Revert "Adding skriveleifs"
This reverts commit 1f86a799d0.
2026-05-14 19:01:58 +02:00
Tournesol02
1f86a799d0 Adding skriveleifs 2026-05-14 18:43:31 +02:00
Tournesol02
09e55c2feb Ajout des figures partie Secu 2026-05-14 18:28:52 +02:00
ataban
4252af65c3
Merge branch 'main' of https://git.etud.insa-toulouse.fr/taban/PIR_MadMax
Ajout d'un .gitignore
2026-05-14 17:42:18 +02:00
ataban
6cfb40f0f5
ajout du gitignore 2026-05-14 17:41:04 +02:00
06f743caff Actualiser Article_Scientifique/main.tex 2026-05-14 17:27:22 +02:00
6627955b50 Supprimer Article_Scientifique/CompatibiliteL4F4.pdf 2026-05-14 17:07:49 +02:00
7f2a47bbf3 Merge remote-tracking branch 'origin/abescat-patch-1' 2026-05-14 16:44:32 +02:00
493e127183 Merge branch 'main' of https://git.etud.insa-toulouse.fr/taban/PIR_MadMax 2026-05-14 16:30:19 +02:00
0c2d0160e5 Ajouter image erreur BLE HC-05 2026-05-14 16:24:54 +02:00
794d1b4df2 chgt research gap 2026-05-14 16:14:54 +02:00
29d62b0493 ajout future work autom 2026-05-14 15:43:14 +02:00
a4dd4f290f ajout cascaded_loop 2026-05-14 15:27:12 +02:00
077af49282 Update Sécurité/Info.md 2026-05-14 14:44:05 +02:00
Tournesol02
3c1d27dbbc Deleted two arbitrary files 2026-05-14 14:23:14 +02:00
436d0fd8dc MàJ du rapport 2026-05-14 14:11:07 +02:00
ac20737bce MàJ du rapport 2026-05-14 09:02:58 +02:00
231b47a6cb Merge branch 'main' of https://git.etud.insa-toulouse.fr/taban/PIR_MadMax 2026-05-13 20:09:45 +02:00
9c1f96ca2c MaJ pdf 2026-05-13 19:58:42 +02:00
7af9657162 Merge branch 'abescat-patch-1' 2026-05-13 19:58:14 +02:00
e806bc1ef5 ajout travail hugo 2026-05-13 19:53:30 +02:00
694a067188 MàJ du rapport 2026-05-13 19:45:58 +02:00
fa5f864ea0 MàJ du rapport 2026-05-13 19:27:57 +02:00
59 changed files with 5583 additions and 3032 deletions

439
.gitignore vendored Normal file
View file

@ -0,0 +1,439 @@
# Created by https://www.toptal.com/developers/gitignore/api/latex,kicad,ltspice,matlab,octave,commonlisp
# Edit at https://www.toptal.com/developers/gitignore?templates=latex,kicad,ltspice,matlab,octave,commonlisp
### CommonLisp ###
*.FASL
*.fasl
*.lisp-temp
*.dfsl
*.pfsl
*.d64fsl
*.p64fsl
*.lx64fsl
*.lx32fsl
*.dx64fsl
*.dx32fsl
*.fx64fsl
*.fx32fsl
*.sx64fsl
*.sx32fsl
*.wx64fsl
*.wx32fsl
### KiCad ###
# For PCBs designed using KiCad: https://www.kicad.org/
# Format documentation: https://kicad.org/help/file-formats/
# Temporary files
*.000
*.bak
*.bck
*.kicad_pcb-bak
*.kicad_sch-bak
*-backups
*.kicad_prl
*.sch-bak
*~
_autosave-*
*.tmp
*-save.pro
*-save.kicad_pcb
fp-info-cache
# Netlist files (exported from Eeschema)
*.net
# Autorouter files (exported from Pcbnew)
*.dsn
*.ses
# Exported BOM files
*.xml
*.csv
### KiCad Patch ###
rescue-backup/
*.tsv
bom/
# Gerber export output
out/
### LaTeX ###
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
# .pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
*.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
### LaTeX Patch ###
# LIPIcs / OASIcs
*.vtc
# glossaries
*.glstex
### LTspice ###
# gitignore template for LTspice
# website: https://www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html
# Logfile
# Simulation Outputs
*.raw
*.fft
# Netlist
### MATLAB ###
# Windows default autosave extension
*.asv
# OSX / *nix default autosave extension
*.m~
# Compiled MEX binaries (all platforms)
*.mex*
# Packaged app and toolbox files
*.mlappinstall
*.mltbx
# Generated helpsearch folders
helpsearch*/
# Simulink code generation folders
slprj/
sccprj/
# Matlab code generation folders
codegen/
# Simulink autosave extension
*.autosave
# Simulink cache files
*.slxc
# Octave session info
octave-workspace
### Octave ###
# Windows default autosave extension
# OSX / *nix default autosave extension
# Compiled MEX binaries (all platforms)
# Packaged app and toolbox files
# Generated helpsearch folders
# Simulink code generation folders
# Matlab code generation folders
# Simulink autosave extension
# Simulink cache files
# Octave session info
# End of https://www.toptal.com/developers/gitignore/api/latex,kicad,ltspice,matlab,octave,commonlisp

View file

@ -30,4 +30,4 @@
## Notes
- Penser à faire des **transitions** à chaque changement de partie
- Penser à faire des **transitions** à chaque changement de partie

View file

@ -1,764 +0,0 @@
<!DOCTYPE html>
<html lang="fr-FR" data-theme="forgejo-auto">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>PIR_MadMax/PCB/CompatibiliteL4F4.pdf sur main - taban/PIR_MadMax - GitEtud</title>
<link rel="manifest" href="data:application/json;base64,eyJuYW1lIjoiR2l0RXR1ZCIsInNob3J0X25hbWUiOiJHaXRFdHVkIiwic3RhcnRfdXJsIjoiaHR0cHM6Ly9naXQuZXR1ZC5pbnNhLXRvdWxvdXNlLmZyLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2dpdC5ldHVkLmluc2EtdG91bG91c2UuZnIvYXNzZXRzL2ltZy9sb2dvLnBuZyIsInR5cGUiOiJpbWFnZS9wbmciLCJzaXplcyI6IjUxMng1MTIifSx7InNyYyI6Imh0dHBzOi8vZ2l0LmV0dWQuaW5zYS10b3Vsb3VzZS5mci9hc3NldHMvaW1nL2xvZ28uc3ZnIiwidHlwZSI6ImltYWdlL3N2Zyt4bWwiLCJzaXplcyI6IjUxMng1MTIifV19">
<meta name="author" content="taban">
<meta name="description" content="PIR_MadMax - PIR (Projet Info Recherche) 4AE-SE INSA Toulouse MadMax">
<meta name="keywords" content="git,forge,forgejo">
<meta name="referrer" content="no-referrer">
<link rel="alternate" type="application/atom+xml" title="" href="/taban/PIR_MadMax.atom">
<link rel="alternate" type="application/rss+xml" title="" href="/taban/PIR_MadMax.rss">
<link rel="icon" href="/assets/img/favicon.svg" type="image/svg+xml">
<link rel="alternate icon" href="/assets/img/favicon.png" type="image/png">
<script>
window.addEventListener('error', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
window.addEventListener('unhandledrejection', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
window.config = {
appUrl: 'https:\/\/git.etud.insa-toulouse.fr\/',
appSubUrl: '',
assetVersionEncoded: encodeURIComponent('9.0.0~gitea-1.22.0'),
assetUrlPrefix: '\/assets',
runModeIsProd: true ,
customEmojis: {"codeberg":":codeberg:","forgejo":":forgejo:","git":":git:","gitea":":gitea:","github":":github:","gitlab":":gitlab:","gogs":":gogs:"},
csrfToken: 'V5ZXeb80nzt_K-vBuAhT7I2i_rk6MTc3ODc2ODkyNDY1ODkzMzI4MQ',
pageData: {},
notificationSettings: {"EventSourceUpdateTime":10000,"MaxTimeout":60000,"MinTimeout":10000,"TimeoutStep":10000},
enableTimeTracking: true ,
mermaidMaxSourceCharacters: 5000 ,
i18n: {
copy_success: "Copié !",
copy_error: "Échec de la copie",
error_occurred: "Une erreur sest produite",
network_error: "Erreur réseau",
remove_label_str: "Supprimer lélément « %s »",
modal_confirm: "Confirmer",
modal_cancel: "Annuler",
more_items: "Plus d'éléments",
},
};
window.config.pageData = window.config.pageData || {};
</script>
<script src="/assets/js/webcomponents.js?v=9.0.0~gitea-1.22.0"></script>
<noscript>
<style>
.dropdown:hover > .menu { display: block; }
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
</style>
</noscript>
<meta property="og:title" content="PIR_MadMax/PCB/CompatibiliteL4F4.pdf sur main">
<meta property="og:url" content="https://git.etud.insa-toulouse.fr//taban/PIR_MadMax/src/branch/main/PCB/CompatibiliteL4F4.pdf">
<meta property="og:type" content="object">
<meta property="og:image" content="https://git.etud.insa-toulouse.fr/avatars/4a5dbc25f5978c360521c4cfaaa883a18673e79ba7ca980555145a1a93b88bfe">
<meta property="og:site_name" content="GitEtud">
<link rel="stylesheet" href="/assets/css/index.css?v=9.0.0~gitea-1.22.0">
<link rel="stylesheet" href="/assets/css/theme-forgejo-auto.css?v=9.0.0~gitea-1.22.0">
</head>
<body hx-headers='{"x-csrf-token": "V5ZXeb80nzt_K-vBuAhT7I2i_rk6MTc3ODc2ODkyNDY1ODkzMzI4MQ"}' hx-swap="outerHTML" hx-ext="morph" hx-push-url="false">
<div class="full height">
<noscript>Ce site Web nécessite JavaScript.</noscript>
<nav id="navbar" aria-label="Barre de navigation">
<div class="navbar-left ui secondary menu">
<a class="item" id="navbar-logo" href="/" aria-label="Tableau de bord">
<img width="30" height="30" src="/assets/gitea-sm.png" alt="Logo" aria-hidden="true">
</a>
<div class="ui secondary menu item navbar-mobile-right only-mobile">
<a id="mobile-notifications-icon" class="item tw-w-auto tw-p-2" href="/notifications" data-tooltip-content="Notifications" aria-label="Notifications">
<div class="tw-relative">
<svg viewBox="0 0 16 16" class="svg octicon-bell" aria-hidden="true" width="16" height="16"><path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16M3 5a5 5 0 0 1 10 0v2.947q0 .076.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.26.26 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556-.003.01.001.006q0 .003.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007-.003-.01-1.703-2.554a1.75 1.75 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5"/></svg>
<span class="notification_count tw-hidden">0</span>
</div>
</a>
<button class="item tw-w-auto ui icon mini button tw-p-2 tw-m-0" id="navbar-expand-toggle" aria-label="Menu va-et-vient"><svg viewBox="0 0 16 16" class="svg octicon-three-bars" aria-hidden="true" width="16" height="16"><path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75m0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75M1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5"/></svg></button>
</div>
<a class="item" href="/issues">Tickets</a>
<a class="item" href="/pulls">Demandes d'ajout</a>
<a class="item" href="/milestones">Jalons</a>
<a class="item" href="/explore/repos">Explorateur</a>
</div>
<div class="navbar-right ui secondary menu">
<a class="active-stopwatch-trigger item tw-mx-0 tw-hidden" href="" title="Suivi du temps actif">
<div class="tw-relative">
<svg viewBox="0 0 16 16" class="svg octicon-stopwatch" aria-hidden="true" width="16" height="16"><path d="M5.75.75A.75.75 0 0 1 6.5 0h3a.75.75 0 0 1 0 1.5h-.75v1l-.001.041a6.7 6.7 0 0 1 3.464 1.435l.007-.006.75-.75a.749.749 0 0 1 1.275.326.75.75 0 0 1-.215.734l-.75.75-.006.007a6.75 6.75 0 1 1-10.548 0L2.72 5.03l-.75-.75a.75.75 0 0 1 .018-1.042.75.75 0 0 1 1.042-.018l.75.75.007.006A6.7 6.7 0 0 1 7.25 2.541V1.5H6.5a.75.75 0 0 1-.75-.75M8 14.5a5.25 5.25 0 1 0-.001-10.501A5.25 5.25 0 0 0 8 14.5m.389-6.7 1.33-1.33a.75.75 0 1 1 1.061 1.06L9.45 8.861A1.503 1.503 0 0 1 8 10.75a1.499 1.499 0 1 1 .389-2.95"/></svg>
<span class="header-stopwatch-dot"></span>
</div>
<span class="only-mobile tw-ml-2">Suivi du temps actif</span>
</a>
<div class="active-stopwatch-popup item tippy-target tw-p-2">
<div class="tw-flex tw-items-center">
<a class="stopwatch-link tw-flex tw-items-center" href="">
<svg viewBox="0 0 16 16" class="tw-mr-2 svg octicon-issue-opened" aria-hidden="true" width="16" height="16"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3"/><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0"/></svg>
<span class="stopwatch-issue">#</span>
<span class="ui primary label stopwatch-time tw-my-0 tw-mx-4" data-seconds="">
</span>
</a>
<form class="stopwatch-commit" method="post" action="/times/stopwatch/toggle">
<input type="hidden" name="_csrf" value="V5ZXeb80nzt_K-vBuAhT7I2i_rk6MTc3ODc2ODkyNDY1ODkzMzI4MQ">
<button
type="submit"
class="ui button mini compact basic icon"
data-tooltip-content="Arrêter le chronomètre"
><svg viewBox="0 0 16 16" class="svg octicon-square-fill" aria-hidden="true" width="16" height="16"><path d="M5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0 1 10.25 12h-4.5A1.75 1.75 0 0 1 4 10.25v-4.5C4 4.784 4.784 4 5.75 4"/></svg></button>
</form>
<form class="stopwatch-cancel" method="post" action="/times/stopwatch/cancel">
<input type="hidden" name="_csrf" value="V5ZXeb80nzt_K-vBuAhT7I2i_rk6MTc3ODc2ODkyNDY1ODkzMzI4MQ">
<button
type="submit"
class="ui button mini compact basic icon"
data-tooltip-content="Abandonner le minuteur"
><svg viewBox="0 0 16 16" class="svg octicon-trash" aria-hidden="true" width="16" height="16"><path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75M4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.75 1.75 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15M6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25"/></svg></button>
</form>
</div>
</div>
<a class="item not-mobile tw-mx-0" href="/notifications" data-tooltip-content="Notifications" aria-label="Notifications">
<div class="tw-relative">
<svg viewBox="0 0 16 16" class="svg octicon-bell" aria-hidden="true" width="16" height="16"><path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16M3 5a5 5 0 0 1 10 0v2.947q0 .076.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.26.26 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556-.003.01.001.006q0 .003.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007-.003-.01-1.703-2.554a1.75 1.75 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5"/></svg>
<span class="notification_count tw-hidden">0</span>
</div>
</a>
<div class="ui dropdown jump item tw-mx-0 tw-pr-2" data-tooltip-content="Créer…">
<span class="text">
<svg viewBox="0 0 16 16" class="svg octicon-plus" aria-hidden="true" width="16" height="16"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2"/></svg>
<span class="not-mobile"><svg viewBox="0 0 16 16" class="svg octicon-triangle-down" aria-hidden="true" width="16" height="16"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427"/></svg></span>
<span class="only-mobile">Créer…</span>
</span>
<div class="menu">
<a class="item" href="/repo/create">
<svg viewBox="0 0 16 16" class="svg octicon-plus" aria-hidden="true" width="16" height="16"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2"/></svg> Nouveau dépôt
</a>
<a class="item" href="/repo/migrate">
<svg viewBox="0 0 16 16" class="svg octicon-repo-push" aria-hidden="true" width="16" height="16"><path d="M1 2.5A2.5 2.5 0 0 1 3.5 0h8.75a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0V1.5h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 3.5 9h3.25a.75.75 0 0 1 0 1.5H3.5a1 1 0 0 0 0 2h5.75a.75.75 0 0 1 0 1.5H3.5A2.5 2.5 0 0 1 1 11.5Zm13.23 7.79zl-1.224-1.224v6.184a.75.75 0 0 1-1.5 0V9.066L10.28 10.29a.75.75 0 0 1-1.06-1.061l2.505-2.504a.75.75 0 0 1 1.06 0L15.29 9.23a.75.75 0 0 1-.018 1.042.75.75 0 0 1-1.042.018"/></svg> Nouvelle migration
</a>
</div>
</div>
<div class="ui dropdown jump item tw-mx-0 tw-pr-2" data-tooltip-content="Profil et réglages…">
<span class="text tw-flex tw-items-center">
<img loading="lazy" class="ui avatar tw-align-middle tw-mr-1" src="/avatar/17d9c3a181425ea19512346b4af53571?size=48" title="Karima Attar" width="24" height="24"/>
<span class="only-mobile tw-ml-2">kattar</span>
<span class="not-mobile"><svg viewBox="0 0 16 16" class="svg octicon-triangle-down" aria-hidden="true" width="16" height="16"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427"/></svg></span>
</span>
<div class="menu user-menu">
<div class="ui header">
Connecté en tant que <strong>kattar</strong>
</div>
<div class="divider"></div>
<a class="item" href="/kattar">
<svg viewBox="0 0 16 16" class="svg octicon-person" aria-hidden="true" width="16" height="16"><path d="M10.561 8.073a6 6 0 0 1 3.432 5.142.75.75 0 1 1-1.498.07 4.5 4.5 0 0 0-8.99 0 .75.75 0 0 1-1.498-.07 6 6 0 0 1 3.431-5.142 3.999 3.999 0 1 1 5.123 0M10.5 5a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0"/></svg>
Profil
</a>
<a class="item" href="/kattar?tab=stars">
<svg viewBox="0 0 16 16" class="svg octicon-star" aria-hidden="true" width="16" height="16"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25m0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41z"/></svg>
Favoris
</a>
<a class="item" href="/notifications/subscriptions">
<svg viewBox="0 0 16 16" class="svg octicon-bell" aria-hidden="true" width="16" height="16"><path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16M3 5a5 5 0 0 1 10 0v2.947q0 .076.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.26.26 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556-.003.01.001.006q0 .003.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007-.003-.01-1.703-2.554a1.75 1.75 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5"/></svg>
Abonnements
</a>
<a class="item" href="/user/settings">
<svg viewBox="0 0 16 16" class="svg octicon-tools" aria-hidden="true" width="16" height="16"><path d="M5.433 2.304A4.49 4.49 0 0 0 3.5 6c0 1.598.832 3.002 2.09 3.802.518.328.929.923.902 1.64v.008l-.164 3.337a.75.75 0 1 1-1.498-.073l.163-3.33c.002-.085-.05-.216-.207-.316A6 6 0 0 1 2 6a6 6 0 0 1 2.567-4.92 1.48 1.48 0 0 1 1.673-.04c.462.296.76.827.76 1.423v2.82c0 .082.041.16.11.206l.75.51a.25.25 0 0 0 .28 0l.75-.51A.25.25 0 0 0 9 5.282V2.463c0-.596.298-1.127.76-1.423a1.48 1.48 0 0 1 1.673.04A6 6 0 0 1 14 6a6 6 0 0 1-2.786 5.068c-.157.1-.209.23-.207.315l.163 3.33a.752.752 0 0 1-1.094.714.75.75 0 0 1-.404-.64l-.164-3.345c-.027-.717.384-1.312.902-1.64A4.5 4.5 0 0 0 12.5 6a4.49 4.49 0 0 0-1.933-3.696c-.024.017-.067.067-.067.16v2.818a1.75 1.75 0 0 1-.767 1.448l-.75.51a1.75 1.75 0 0 1-1.966 0l-.75-.51A1.75 1.75 0 0 1 5.5 5.282V2.463c0-.092-.043-.142-.067-.159"/></svg>
Configuration
</a>
<a class="item" target="_blank" rel="noopener noreferrer" href="https://forgejo.org/docs/latest/">
<svg viewBox="0 0 16 16" class="svg octicon-question" aria-hidden="true" width="16" height="16"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8m8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13M6.92 6.085h.001a.749.749 0 1 1-1.342-.67c.169-.339.436-.701.849-.977C6.845 4.16 7.369 4 8 4a2.76 2.76 0 0 1 1.637.525c.503.377.863.965.863 1.725 0 .448-.115.83-.329 1.15-.205.307-.47.513-.692.662-.109.072-.22.138-.313.195l-.006.004a6 6 0 0 0-.26.16 1 1 0 0 0-.276.245.75.75 0 0 1-1.248-.832c.184-.264.42-.489.692-.661q.154-.1.313-.195l.007-.004c.1-.061.182-.11.258-.161a1 1 0 0 0 .277-.245C8.96 6.514 9 6.427 9 6.25a.61.61 0 0 0-.262-.525A1.27 1.27 0 0 0 8 5.5c-.369 0-.595.09-.74.187a1 1 0 0 0-.34.398M9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/></svg>
Aide
</a>
<div class="divider"></div>
<a class="item link-action" href data-url="/user/logout">
<svg viewBox="0 0 16 16" class="svg octicon-sign-out" aria-hidden="true" width="16" height="16"><path d="M2 2.75C2 1.784 2.784 1 3.75 1h2.5a.75.75 0 0 1 0 1.5h-2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 0 1.5h-2.5A1.75 1.75 0 0 1 2 13.25Zm10.44 4.5-1.97-1.97a.749.749 0 0 1 .326-1.275.75.75 0 0 1 .734.215l3.25 3.25a.75.75 0 0 1 0 1.06l-3.25 3.25a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734l1.97-1.97H6.75a.75.75 0 0 1 0-1.5Z"/></svg>
Déconnexion
</a>
</div>
</div>
</div>
</nav>
<div role="main" aria-label="PIR_MadMax/PCB/CompatibiliteL4F4.pdf sur main" class="page-content repository file list ">
<div class="secondary-nav">
<div class="ui container">
<div class="repo-header">
<div class="flex-item tw-items-center">
<div class="flex-item-leading">
<svg viewBox="0 0 16 16" class="svg octicon-repo" aria-hidden="true" width="24" height="24"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.5 2.5 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.25.25 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"/></svg>
</div>
<div class="flex-item-main">
<div class="flex-item-title gt-font-18">
<a class="muted gt-font-normal" href="/taban">taban</a>/<a class="muted" href="/taban/PIR_MadMax">PIR_MadMax</a>
</div>
</div>
<div class="flex-item-trailing">
</div>
</div>
<div class="repo-buttons button-row">
<a class="ui compact small basic button" href="/taban/PIR_MadMax.rss" data-tooltip-content="Flux RSS">
<svg viewBox="0 0 16 16" class="svg octicon-rss" aria-hidden="true" width="16" height="16"><path d="M2.002 2.725a.75.75 0 0 1 .797-.699C8.79 2.42 13.58 7.21 13.974 13.201a.75.75 0 0 1-1.497.098 10.5 10.5 0 0 0-9.776-9.776.747.747 0 0 1-.7-.798ZM2.84 7.05h-.002a7 7 0 0 1 6.113 6.111.75.75 0 0 1-1.49.178 5.5 5.5 0 0 0-4.8-4.8.75.75 0 0 1 .179-1.489M2 13a1 1 0 1 1 2 0 1 1 0 0 1-2 0"/></svg>
</a>
<form hx-boost="true" hx-target="this" method="post" action="/taban/PIR_MadMax/action/watch">
<div class="ui labeled button" >
<button type="submit" class="ui compact small basic button">
<svg viewBox="0 0 16 16" class="svg octicon-eye" aria-hidden="true" width="16" height="16"><path d="M8 2c1.981 0 3.671.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14s-3.671-.992-4.933-2.078C1.797 10.83.88 9.576.43 8.898a1.62 1.62 0 0 1 0-1.798c.45-.677 1.367-1.931 2.637-3.022C4.33 2.992 6.019 2 8 2M1.679 7.932a.12.12 0 0 0 0 .136c.411.622 1.241 1.75 2.366 2.717C5.176 11.758 6.527 12.5 8 12.5s2.825-.742 3.955-1.715c1.124-.967 1.954-2.096 2.366-2.717a.12.12 0 0 0 0-.136c-.412-.621-1.242-1.75-2.366-2.717C10.824 4.242 9.473 3.5 8 3.5s-2.825.742-3.955 1.715c-1.124.967-1.954 2.096-2.366 2.717M8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10"/></svg><span class="text not-mobile">Suivre</span>
</button>
<a hx-boost="false" class="ui basic label" href="/taban/PIR_MadMax/watchers">
2
</a>
</div>
</form>
<form hx-boost="true" hx-target="this" method="post" action="/taban/PIR_MadMax/action/star">
<div class="ui labeled button" >
<button type="submit" class="ui compact small basic button">
<svg viewBox="0 0 16 16" class="svg octicon-star" aria-hidden="true" width="16" height="16"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25m0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41z"/></svg><span class="text not-mobile">Ajouter aux favoris</span>
</button>
<a hx-boost="false" class="ui basic label" href="/taban/PIR_MadMax/stars">
4
</a>
</div>
</form>
<div class="ui labeled button
"
>
<a class="ui compact small basic button"
href="/taban/PIR_MadMax/fork"
>
<svg viewBox="0 0 16 16" class="svg octicon-repo-forked" aria-hidden="true" width="16" height="16"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0M5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0m6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0"/></svg><span class="text not-mobile">Bifurcation</span>
</a>
<div class="ui small modal" id="fork-repo-modal">
<div class="header">
Vous avez déjà forké PIR_MadMax
</div>
<div class="content tw-text-left">
<div class="ui list">
</div>
<div class="divider"></div>
<a href="/taban/PIR_MadMax/fork">Créer une bifurcation vers un autre compte</a>
</div>
</div>
<a class="ui basic label" href="/taban/PIR_MadMax/forks">
0
</a>
</div>
</div>
</div>
</div>
<overflow-menu class="ui container secondary pointing tabular top attached borderless menu tw-pt-0 tw-my-0">
<div class="overflow-menu-items">
<a class="active item" href="/taban/PIR_MadMax">
<svg viewBox="0 0 16 16" class="svg octicon-code" aria-hidden="true" width="16" height="16"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.75.75 0 0 1 .734.215m-6.56 0a.75.75 0 0 1 1.042.018.75.75 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"/></svg> Code
</a>
<a class="item" href="/taban/PIR_MadMax/issues">
<svg viewBox="0 0 16 16" class="svg octicon-issue-opened" aria-hidden="true" width="16" height="16"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3"/><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0"/></svg> Tickets
<span class="ui small label">4</span>
</a>
<a class="item" href="/taban/PIR_MadMax/pulls">
<svg viewBox="0 0 16 16" class="svg octicon-git-pull-request" aria-hidden="true" width="16" height="16"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0"/></svg> Demandes d'ajout
</a>
<a href="/taban/PIR_MadMax/projects" class="item">
<svg viewBox="0 0 16 16" class="svg octicon-project" aria-hidden="true" width="16" height="16"><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0M1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25M11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3"/></svg> Projets
</a>
<a class="item" href="/taban/PIR_MadMax/releases">
<svg viewBox="0 0 16 16" class="svg octicon-tag" aria-hidden="true" width="16" height="16"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.75 1.75 0 0 1 1 7.775m1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2"/></svg> Publications
</a>
<a href="/taban/PIR_MadMax/packages" class="item">
<svg viewBox="0 0 16 16" class="svg octicon-package" aria-hidden="true" width="16" height="16"><path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0M7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.25.25 0 0 0-.25 0M2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"/></svg> Paquets
</a>
<a class="item" href="/taban/PIR_MadMax/wiki">
<svg viewBox="0 0 16 16" class="svg octicon-book" aria-hidden="true" width="16" height="16"><path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.74 3.74 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574M8.755 4.75l-.004 7.322a3.75 3.75 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25"/></svg> Wiki
</a>
<a class="item" href="/taban/PIR_MadMax/activity">
<svg viewBox="0 0 16 16" class="svg octicon-pulse" aria-hidden="true" width="16" height="16"><path d="M6 2c.306 0 .582.187.696.471L10 10.731l1.304-3.26A.75.75 0 0 1 12 7h3.25a.75.75 0 0 1 0 1.5h-2.742l-1.812 4.528a.751.751 0 0 1-1.392 0L6 4.77 4.696 8.03A.75.75 0 0 1 4 8.5H.75a.75.75 0 0 1 0-1.5h2.742l1.812-4.529A.75.75 0 0 1 6 2"/></svg> Activité
</a>
<a class="item" href="/taban/PIR_MadMax/actions">
<svg viewBox="0 0 16 16" class="svg octicon-play" aria-hidden="true" width="16" height="16"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0m4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215"/></svg> Actions
</a>
</div>
</overflow-menu>
<div class="ui tabs divider"></div>
</div>
<div class="ui container ">
<div id="flash-message" hx-swap-oob="true"></div>
<div class="repo-button-row">
<div class="tw-flex tw-items-center tw-gap-y-2">
<script type="module">
const data = {
'textReleaseCompare': "Comparer",
'textCreateTag': "Créer l'étiquette %s",
'textCreateBranch': "Créer la branche %s",
'textCreateBranchFrom': "de \"%s\"",
'textBranches': "Branches",
'textTags': "Étiquettes",
'textDefaultBranchLabel': "défaut",
'mode': 'branches',
'showBranchesInDropdown': true ,
'searchFieldPlaceholder': 'Filtrer une branche ou une étiquette...',
'branchForm': null ,
'disableCreateBranch': false ,
'setAction': null ,
'submitForm': null ,
'viewType': "branch",
'refName': "main",
'commitIdShort': "493e127183",
'tagName': "",
'branchName': "main",
'noTag': null ,
'defaultSelectedRefName': "main",
'repoDefaultBranch': "main",
'enableFeed': true ,
'rssURLPrefix': '\/taban\/PIR_MadMax/rss/branch/',
'branchURLPrefix': '\/taban\/PIR_MadMax/src/branch/',
'branchURLSuffix': '/PCB\/CompatibiliteL4F4.pdf',
'tagURLPrefix': '\/taban\/PIR_MadMax/src/tag/',
'tagURLSuffix': '/PCB\/CompatibiliteL4F4.pdf',
'repoLink': "/taban/PIR_MadMax",
'treePath': "PCB/CompatibiliteL4F4.pdf",
'branchNameSubURL': "branch/main",
'noResults': "Aucun résultat trouvé.",
};
window.config.pageData.branchDropdownDataList = window.config.pageData.branchDropdownDataList || [];
window.config.pageData.branchDropdownDataList.push(data);
</script>
<div class="js-branch-tag-selector tw-mr-1">
<div class="ui dropdown custom">
<button class="branch-dropdown-button gt-ellipsis ui basic small compact button tw-flex tw-m-2">
<span class="text tw-flex tw-items-center tw-mr-1 gt-ellipsis">
<svg viewBox="0 0 16 16" class="svg octicon-git-branch" aria-hidden="true" width="16" height="16"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.5 2.5 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25m-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0m8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5"/></svg>
<strong ref="dropdownRefName" class="tw-ml-2 tw-inline-block gt-ellipsis">main</strong>
</span>
<svg viewBox="0 0 16 16" class="dropdown icon svg octicon-triangle-down" aria-hidden="true" width="14" height="14"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427"/></svg>
</button>
</div>
</div>
<a id="new-pull-request" role="button" class="ui compact basic button" href="/taban/PIR_MadMax/compare/main...main"
data-tooltip-content="Nouvelle demande dajout">
<svg viewBox="0 0 16 16" class="svg octicon-git-pull-request" aria-hidden="true" width="16" height="16"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0"/></svg>
</a>
<span class="breadcrumb repo-path tw-ml-1">
<a class="section" href="/taban/PIR_MadMax/src/branch/main" title="PIR_MadMax">PIR_MadMax</a><span class="breadcrumb-divider">/</span><span class="section"><a href="/taban/PIR_MadMax/src/branch/main/PCB" title="PCB">PCB</a></span><span class="breadcrumb-divider">/</span><span class="active section" title="CompatibiliteL4F4.pdf">CompatibiliteL4F4.pdf</span></span>
</div>
<div class="tw-flex tw-items-center">
</div>
</div>
<div class="tab-size-4 non-diff-file-content">
<div id="repo-file-commit-box" class="ui segment list-header tw-mb-4 tw-flex tw-justify-between">
<div class="latest-commit">
<img loading="lazy" class="ui avatar tw-align-middle tw-mr-2" src="/avatar/2c0f78f319bc7d5082e4361e019ea9ef?size=48" title="Hugo Abescat" width="24" height="24"/>
<a class="muted author-wrapper" title="abescat" href="/abescat"><strong>abescat</strong></a>
<a rel="nofollow" class="ui sha label " href="/taban/PIR_MadMax/commit/86584c62fedc11adf44cb3008f4e653337072af9">
<span class="shortsha">86584c62fe</span>
</a>
<span class="grey commit-summary" title="Tableau récapitulatif broches L4/F4"><span class="message-wrapper"><a href="/taban/PIR_MadMax/commit/86584c62fedc11adf44cb3008f4e653337072af9" class="default-link muted">Tableau récapitulatif broches L4/F4</a></span>
</span>
</div>
<div class="text grey age">
<relative-time prefix="" tense="past" datetime="2026-03-10T18:10:38+01:00" data-tooltip-content data-tooltip-interactive="true">2026-03-10 18:10:38 +01:00</relative-time>
</div>
</div>
<h4 class="file-header ui top attached header tw-flex tw-items-center tw-justify-between tw-flex-wrap">
<div class="file-header-left tw-flex tw-items-center tw-py-2 tw-pr-4">
<div class="file-info tw-font-mono">
<div class="file-info-entry">
116 Kio
</div>
</div>
</div>
<div class="file-header-right file-actions tw-flex tw-items-center tw-flex-wrap">
<div class="ui buttons tw-mr-1">
<a class="ui mini basic button" href="/taban/PIR_MadMax/raw/branch/main/PCB/CompatibiliteL4F4.pdf">Brut</a>
<a class="ui mini basic button" href="/taban/PIR_MadMax/src/commit/493e127183ffc6f187faff99afc3653b9ad7669f/PCB/CompatibiliteL4F4.pdf">Lien permanent</a>
<a class="ui mini basic button" href="/taban/PIR_MadMax/commits/branch/main/PCB/CompatibiliteL4F4.pdf">Historique</a>
</div>
<a download href="/taban/PIR_MadMax/raw/branch/main/PCB/CompatibiliteL4F4.pdf"><span class="btn-octicon" data-tooltip-content="Télécharger le fichier"><svg viewBox="0 0 16 16" class="svg octicon-download" aria-hidden="true" width="16" height="16"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"/><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06z"/></svg></span></a>
<a href="#" id="copy-content" class="btn-octicon disabled" data-tooltip-content="Ce type de fichier ne peut pas être copié"><svg viewBox="0 0 16 16" class="svg octicon-copy" aria-hidden="true" width="14" height="14"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"/><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"/></svg></a>
<a class="btn-octicon" href="/taban/PIR_MadMax/rss/branch/main/PCB/CompatibiliteL4F4.pdf" data-tooltip-content="Flux RSS">
<svg viewBox="0 0 16 16" class="svg octicon-rss" aria-hidden="true" width="14" height="14"><path d="M2.002 2.725a.75.75 0 0 1 .797-.699C8.79 2.42 13.58 7.21 13.974 13.201a.75.75 0 0 1-1.497.098 10.5 10.5 0 0 0-9.776-9.776.747.747 0 0 1-.7-.798ZM2.84 7.05h-.002a7 7 0 0 1 6.113 6.111.75.75 0 0 1-1.49.178 5.5 5.5 0 0 0-4.8-4.8.75.75 0 0 1 .179-1.489M2 13a1 1 0 1 1 2 0 1 1 0 0 1-2 0"/></svg>
</a>
<span class="btn-octicon disabled" data-tooltip-content="Les fichiers binaires ne peuvent pas être édités dans l&#39;interface web."><svg viewBox="0 0 16 16" class="svg octicon-pencil" aria-hidden="true" width="16" height="16"><path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.25.25 0 0 0-.064.108l-.558 1.953 1.953-.558a.25.25 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"/></svg></span>
<a href="/taban/PIR_MadMax/_delete/main/PCB/CompatibiliteL4F4.pdf"><span class="btn-octicon btn-octicon-danger" data-tooltip-content="Supprimer le fichier"><svg viewBox="0 0 16 16" class="svg octicon-trash" aria-hidden="true" width="16" height="16"><path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75M4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.75 1.75 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15M6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25"/></svg></span></a>
</div>
</h4>
<div class="ui bottom attached table unstackable segment">
<div class="file-view">
<div class="view-raw">
<div class="pdf-content is-loading" data-src="/taban/PIR_MadMax/raw/branch/main/PCB/CompatibiliteL4F4.pdf" data-fallback-button-text="Voir le fichier"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="page-footer" role="group" aria-label="Pied de page">
<div class="left-links" role="contentinfo" aria-label="À propos du logiciel">
<a target="_blank" rel="noopener noreferrer" href="https://forgejo.org">Propulsé par Forgejo</a>
</div>
<div class="right-links" role="group" aria-label="Liens">
<div class="ui dropdown upward language">
<span class="flex-text-inline"><svg viewBox="0 0 16 16" class="svg octicon-globe" aria-hidden="true" width="14" height="14"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M5.78 8.75a9.64 9.64 0 0 0 1.363 4.177q.383.64.857 1.215c.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a10 10 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.51 6.51 0 0 0 4.666 5.5q-.184-.271-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948m-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948q.18-.295.353-.552a6.51 6.51 0 0 0-4.666 5.5m10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948q-.18.296-.353.552a6.51 6.51 0 0 0 4.666-5.5Zm2.733-1.5a6.51 6.51 0 0 0-4.666-5.5q.184.272.353.552c.714 1.192 1.436 2.874 1.58 4.948Z"/></svg> Français</span>
<div class="menu language-menu">
<a lang="id-ID" data-url="/?lang=id-ID" class="item ">Bahasa Indonesia</a>
<a lang="de-DE" data-url="/?lang=de-DE" class="item ">Deutsch</a>
<a lang="en-US" data-url="/?lang=en-US" class="item ">English</a>
<a lang="es-ES" data-url="/?lang=es-ES" class="item ">Español</a>
<a lang="eo" data-url="/?lang=eo" class="item ">Esperanto</a>
<a lang="fil" data-url="/?lang=fil" class="item ">Filipino</a>
<a lang="fr-FR" data-url="/?lang=fr-FR" class="item active selected">Français</a>
<a lang="it-IT" data-url="/?lang=it-IT" class="item ">Italiano</a>
<a lang="lv-LV" data-url="/?lang=lv-LV" class="item ">Latviešu</a>
<a lang="hu-HU" data-url="/?lang=hu-HU" class="item ">Magyar nyelv</a>
<a lang="nl-NL" data-url="/?lang=nl-NL" class="item ">Nederlands</a>
<a lang="pl-PL" data-url="/?lang=pl-PL" class="item ">Polski</a>
<a lang="pt-PT" data-url="/?lang=pt-PT" class="item ">Português de Portugal</a>
<a lang="pt-BR" data-url="/?lang=pt-BR" class="item ">Português do Brasil</a>
<a lang="sl" data-url="/?lang=sl" class="item ">Slovenščina</a>
<a lang="fi-FI" data-url="/?lang=fi-FI" class="item ">Suomi</a>
<a lang="sv-SE" data-url="/?lang=sv-SE" class="item ">Svenska</a>
<a lang="tr-TR" data-url="/?lang=tr-TR" class="item ">Türkçe</a>
<a lang="cs-CZ" data-url="/?lang=cs-CZ" class="item ">Čeština</a>
<a lang="el-GR" data-url="/?lang=el-GR" class="item ">Ελληνικά</a>
<a lang="bg" data-url="/?lang=bg" class="item ">Български</a>
<a lang="ru-RU" data-url="/?lang=ru-RU" class="item ">Русский</a>
<a lang="uk-UA" data-url="/?lang=uk-UA" class="item ">Українська</a>
<a lang="fa-IR" data-url="/?lang=fa-IR" class="item ">فارسی</a>
<a lang="ja-JP" data-url="/?lang=ja-JP" class="item ">日本語</a>
<a lang="zh-CN" data-url="/?lang=zh-CN" class="item ">简体中文</a>
<a lang="zh-TW" data-url="/?lang=zh-TW" class="item ">繁體中文(台灣)</a>
<a lang="zh-HK" data-url="/?lang=zh-HK" class="item ">繁體中文(香港)</a>
<a lang="ko-KR" data-url="/?lang=ko-KR" class="item ">한국어</a>
</div>
</div>
<a href="/assets/licenses.txt">Licences</a>
</div>
</footer>
<script src="/assets/js/index.js?v=9.0.0~gitea-1.22.0" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

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: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

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.

View file

@ -223,4 +223,101 @@ In order to minimise the torque ripple by control laws, simulation models under
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 destimer 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 loutil : 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},
}

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.

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''.

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.

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.

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.

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).

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?

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.

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.

View file

@ -1,95 +0,0 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\citation{patil_analysis_2025}
\citation{li_quantitative_2019}
\citation{mohammd_taher_new_2021}
\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {II}Related Work}{1}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-A}}Modeling of BLDC Motor}{1}{subsection.2.1}\protected@file@percent }
\citation{gieras_modern_2023}
\citation{gieras_modern_2023,gasc_conception_2004}
\citation{bhatiya_bldc_2024}
\citation{jomsa-nga_torque_2024}
\citation{mohammd_taher_new_2021}
\citation{li_quantitative_2019}
\citation{jomsa-nga_torque_2024}
\citation{li_quantitative_2019}
\citation{patil_analysis_2025}
\citation{gasc_conception_2004}
\citation{jomsa-nga_torque_2024}
\citation{mohammd_taher_new_2021}
\citation{li_quantitative_2019}
\citation{lee_advanced_2001}
\citation{jomsa-nga_torque_2024}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}Trapezoidal Commutation (Six-Step Control) for BLDC Motors}{2}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-C}}Field-Oriented Control (FOC) for BLDC Motors}{2}{subsection.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-D}}Comparative Analysis: FOC vs. Trapezoidal for Light Electric Vehicles}{2}{subsection.2.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}1}Torque Ripple and User Comfort}{2}{subsubsection.2.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}2}Energy Efficiency}{2}{subsubsection.2.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}3}Complexity, Cost, and Low-Tech Suitability}{2}{subsubsection.2.4.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}4}Dynamic Response}{2}{subsubsection.2.4.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {III}Research gap}{2}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IV}Aim and Research Objectives}{2}{section.4}\protected@file@percent }
\citation{b1}
\citation{b1}
\citation{b2}
\@writefile{toc}{\contentsline {section}{\numberline {V}Hardware-Based Six-Step Commutation Controller}{3}{section.5}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VI}STM32-Based Field-Oriented Control Motor Drive}{3}{section.6}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VII}Software and Connectivity}{3}{section.7}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-A}}BLE Compatibility With the VESC}{3}{subsection.7.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}1}First Experiment}{3}{subsubsection.7.1.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}2}HC-05 and the VESC}{3}{subsubsection.7.1.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}3}BLE Vulnerability}{3}{subsubsection.7.1.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-B}}Code integrity}{3}{subsection.7.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}1}Context}{3}{subsubsection.7.2.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}2}LispBM extraction}{3}{subsubsection.7.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}3}LispBM Code}{3}{subsubsection.7.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}4}Proposed Solution}{3}{subsubsection.7.2.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-C}}VESC Compiling}{3}{subsection.7.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Dynamic Modelling and Control of the BicycleCargo System}{3}{section.8}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VIII-A}}Dynamic System Modelling}{3}{subsection.8.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VIII-B}}PI-Based Control Strategy}{4}{subsection.8.2}\protected@file@percent }
\newlabel{subsec:Simulink_model}{{\mbox {VIII-B}}{4}{PI-Based Control Strategy}{subsection.8.2}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Closed-loop model of the bicyclecargo system with PI control.}}{4}{figure.1}\protected@file@percent }
\newlabel{fig:simulink-closedloop}{{1}{4}{Closed-loop model of the bicyclecargo system with PI control}{figure.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VIII-C}}Control Architecture Exploration}{4}{subsection.8.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IX}Results}{4}{section.9}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IX-A}}Bicycle-Cargo System Control Results}{4}{subsection.9.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-A}1}Simulation Results}{4}{subsubsection.9.1.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Position tracking error between bicycle and cargo cart.}}{4}{figure.2}\protected@file@percent }
\newlabel{fig:tracking-error}{{2}{4}{Position tracking error between bicycle and cargo cart}{figure.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IX-A}2}Experimental Load Characterization}{4}{subsubsection.9.1.2}\protected@file@percent }
\bibstyle{IEEEtran}
\bibdata{PIR_MadMax3}
\bibcite{patil_analysis_2025}{1}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Measured motor current under three loading conditions.}}{5}{figure.3}\protected@file@percent }
\newlabel{fig:motor-currents}{{3}{5}{Measured motor current under three loading conditions}{figure.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {X}Discussion}{5}{section.10}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {XI}Conclusion/Summary}{5}{section.11}\protected@file@percent }
\bibcite{li_quantitative_2019}{2}
\bibcite{mohammd_taher_new_2021}{3}
\bibcite{gieras_modern_2023}{4}
\bibcite{gasc_conception_2004}{5}
\bibcite{bhatiya_bldc_2024}{6}
\bibcite{jomsa-nga_torque_2024}{7}
\bibcite{lee_advanced_2001}{8}
\bibcite{b1}{9}
\bibcite{b2}{10}
\@writefile{toc}{\contentsline {section}{References}{6}{section*.2}\protected@file@percent }
\gdef \@abspage@last{6}

View file

@ -89,6 +89,42 @@ B.~Lee and M.~Ehsani, ``Advanced {BLDC} motor drive for low cost and high
\url{http://ieeexplore.ieee.org/document/939307/}
\BIBentrySTDinterwordspacing
\bibitem{noauthor_ddf-39_nodate}
\BIBentryALTinterwordspacing
``{DDF}-39 {1000W}.'' [Online]. Available:
\url{http://www.mxusebikekit.com/pro_info.asp?Pid=25}
\BIBentrySTDinterwordspacing
\bibitem{noauthor_PowerGaN_nodate}
\BIBentryALTinterwordspacing
``Stpower gan transistors.'' [Online]. Available:
\url{https://www.st.com/en/power-transistors/powergan.html}
\BIBentrySTDinterwordspacing
\bibitem{noauthor_GaN-manufacturer_nodate}
``9 gallium nitride manufacturers in 2026.''
\bibitem{shamansystems_cheap-focer-2firmware_nodate}
\BIBentryALTinterwordspacing
{shamansystems}, ``\BIBforeignlanguage{en}{Cheap-focer-2/firmware at master ·
shamansystems/cheap-focer-2}.'' [Online]. Available:
\url{https://github.com/shamansystems/Cheap-FOCer-2/tree/master/firmware}
\BIBentrySTDinterwordspacing
\bibitem{noauthor_darkflippersunleashed-firmware_2026}
\BIBentryALTinterwordspacing
``{DarkFlippers}/unleashed-firmware,'' May 2026, original-date:
2022-03-16T12:46:45Z. [Online]. Available:
\url{https://github.com/DarkFlippers/unleashed-firmware}
\BIBentrySTDinterwordspacing
\bibitem{cirlig_huuckflipperzeronrfjammer_2026}
\BIBentryALTinterwordspacing
G.~Cirlig, ``huuck/{FlipperZeroNRFJammer},'' May 2026, original-date:
2024-12-03T21:35:41Z. [Online]. Available:
\url{https://github.com/huuck/FlipperZeroNRFJammer}
\BIBentrySTDinterwordspacing
\bibitem{b1}
B.~Vedder, ``Vesc bldc motor control firmware,''
\url{https://github.com/vedderb/bldc/}, 2024.

View file

@ -1,4 +1,4 @@
This is BibTeX, Version 0.99d (TeX Live 2022/dev/Debian)
This is BibTeX, Version 0.99d (TeX Live 2023)
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
The top-level auxiliary file: main.aux
The style file: IEEEtran.bst
@ -10,6 +10,11 @@ Reallocated singl_function (elt_size=4) to 100 items from 50.
Database file #1: PIR_MadMax3.bib
Warning--entry type for "gasc_conception_2004" isn't style-file defined
--line 341 of file PIR_MadMax3.bib
Illegal end of database file---line 646 of file PIR_MadMax3.bib
:
:
(Error may have been on previous line)
I'm skipping whatever remains of this entry
-- IEEEtran.bst version 1.14 (2015/08/26) by Michael Shell.
-- http://www.michaelshell.org/tex/ieeetran/bibtex/
-- See the "IEEEtran_bst_HOWTO.pdf" manual for usage information.
@ -23,45 +28,45 @@ Warning--empty year in jomsa-nga_torque_2024
Warning--empty year in lee_advanced_2001
Done.
You've used 10 entries,
You've used 16 entries,
4087 wiz_defined-function locations,
878 strings with 9760 characters,
and the built_in function-call counts, 6856 in all, are:
= -- 531
> -- 159
905 strings with 10616 characters,
and the built_in function-call counts, 8751 in all, are:
= -- 661
> -- 171
< -- 42
+ -- 80
- -- 29
* -- 337
:= -- 1071
add.period$ -- 23
call.type$ -- 10
change.case$ -- 12
+ -- 88
- -- 31
* -- 406
:= -- 1393
add.period$ -- 35
call.type$ -- 16
change.case$ -- 20
chr.to.int$ -- 108
cite$ -- 18
duplicate$ -- 487
empty$ -- 593
format.name$ -- 36
if$ -- 1567
cite$ -- 24
duplicate$ -- 663
empty$ -- 801
format.name$ -- 38
if$ -- 1985
int.to.chr$ -- 0
int.to.str$ -- 10
missing$ -- 89
newline$ -- 67
num.names$ -- 10
pop$ -- 244
int.to.str$ -- 16
missing$ -- 129
newline$ -- 95
num.names$ -- 12
pop$ -- 378
preamble$ -- 1
purify$ -- 0
quote$ -- 4
skip$ -- 529
skip$ -- 672
stack$ -- 0
substring$ -- 255
swap$ -- 343
substring$ -- 265
swap$ -- 431
text.length$ -- 6
text.prefix$ -- 0
top$ -- 5
type$ -- 10
type$ -- 16
warning$ -- 8
while$ -- 34
width$ -- 12
write$ -- 126
(There were 9 warnings)
while$ -- 36
width$ -- 18
write$ -- 177
(There was 1 error message)

View file

@ -1,600 +0,0 @@
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 18:32
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**main.tex
(./main.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-01-21>
(/usr/share/texlive/texmf-dist/tex/latex/ieeetran/IEEEtran.cls
Document Class: IEEEtran 2015/08/26 V1.8b by Michael Shell
-- See the "IEEEtran_HOWTO" manual for usage information.
-- http://www.michaelshell.org/tex/ieeetran/
\@IEEEtrantmpdimenA=\dimen138
\@IEEEtrantmpdimenB=\dimen139
\@IEEEtrantmpdimenC=\dimen140
\@IEEEtrantmpcountA=\count185
\@IEEEtrantmpcountB=\count186
\@IEEEtrantmpcountC=\count187
\@IEEEtrantmptoksA=\toks16
LaTeX Font Info: Trying to load font information for OT1+ptm on input line 5
03.
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd
File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.
)
-- Using 8.5in x 11in (letter) paper.
-- Using PDF output.
\@IEEEnormalsizeunitybaselineskip=\dimen141
-- This is a 10 point document.
\CLASSINFOnormalsizebaselineskip=\dimen142
\CLASSINFOnormalsizeunitybaselineskip=\dimen143
\IEEEnormaljot=\dimen144
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
\IEEEquantizedlength=\dimen145
\IEEEquantizedlengthdiff=\dimen146
\IEEEquantizedtextheightdiff=\dimen147
\IEEEilabelindentA=\dimen148
\IEEEilabelindentB=\dimen149
\IEEEilabelindent=\dimen150
\IEEEelabelindent=\dimen151
\IEEEdlabelindent=\dimen152
\IEEElabelindent=\dimen153
\IEEEiednormlabelsep=\dimen154
\IEEEiedmathlabelsep=\dimen155
\IEEEiedtopsep=\skip47
\c@section=\count188
\c@subsection=\count189
\c@subsubsection=\count190
\c@paragraph=\count191
\c@IEEEsubequation=\count192
\abovecaptionskip=\skip48
\belowcaptionskip=\skip49
\c@figure=\count193
\c@table=\count194
\@IEEEeqnnumcols=\count195
\@IEEEeqncolcnt=\count196
\@IEEEsubeqnnumrollback=\count197
\@IEEEquantizeheightA=\dimen156
\@IEEEquantizeheightB=\dimen157
\@IEEEquantizeheightC=\dimen158
\@IEEEquantizeprevdepth=\dimen159
\@IEEEquantizemultiple=\count198
\@IEEEquantizeboxA=\box50
\@IEEEtmpitemindent=\dimen160
\IEEEPARstartletwidth=\dimen161
\c@IEEEbiography=\count199
\@IEEEtranrubishbin=\box51
)
** ATTENTION: Overriding command lockouts (line 2).
(/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty
LaTeX Info: Redefining \cite on input line 302.
LaTeX Info: Redefining \nocite on input line 332.
Package: cite 2015/02/27 v 5.5
)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2021/10/15 v2.17l AMS math features
\@mathmargin=\skip50
For additional information on amsmath, use the `?' option.
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2021/08/26 v2.01 AMS text
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks17
\ex@=\dimen162
))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen163
)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2021/08/26 v2.02 operator names
)
\inf@bad=\count266
LaTeX Info: Redefining \frac on input line 234.
\uproot@=\count267
\leftroot@=\count268
LaTeX Info: Redefining \overline on input line 399.
\classnum@=\count269
\DOTSCASE@=\count270
LaTeX Info: Redefining \ldots on input line 496.
LaTeX Info: Redefining \dots on input line 499.
LaTeX Info: Redefining \cdots on input line 620.
\Mathstrutbox@=\box52
\strutbox@=\box53
\big@size=\dimen164
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
\macc@depth=\count271
\c@MaxMatrixCols=\count272
\dotsspace@=\muskip16
\c@parentequation=\count273
\dspbrk@lvl=\count274
\tag@help=\toks18
\row@=\count275
\column@=\count276
\maxfields@=\count277
\andhelp@=\toks19
\eqnshift@=\dimen165
\alignsep@=\dimen166
\tagshift@=\dimen167
\tagwidth@=\dimen168
\totwidth@=\dimen169
\lineht@=\dimen170
\@envbody=\toks20
\multlinegap=\skip51
\multlinetaggap=\skip52
\mathdisplay@stack=\toks21
LaTeX Info: Redefining \[ on input line 2938.
LaTeX Info: Redefining \] on input line 2939.
)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
))
(/usr/share/texlive/texmf-dist/tex/latex/algorithms/algorithmic.sty
Package: algorithmic 2009/08/24 v0.1 Document Style `algorithmic'
(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2020/11/24 v1.1c Standard LaTeX ifthen package (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks22
)
\c@ALC@unique=\count278
\c@ALC@line=\count279
\c@ALC@rem=\count280
\c@ALC@depth=\count281
\ALC@tlm=\skip53
\algorithmicindent=\skip54
)
(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
Package: hyperref 2021-06-07 v7.00m Hypertext links for LaTeX
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2020/03/06 v1.0d TeX engine tests
)
(/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO
)
(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
)
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found.
)
(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO)
)
\@linkdim=\dimen171
\Hy@linkcounter=\count282
\Hy@pagecounter=\count283
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
File: pd1enc.def 2021-06-07 v7.00m Hyperref: PDFDocEncoding definition (HO)
Now handling font encoding PD1 ...
... no UTF-8 mapping file for font encoding PD1
)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def
File: hyperref-langpatches.def 2021-06-07 v7.00m Hyperref: patches for babel la
nguages
)
(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
)
\Hy@SavedSpaceFactor=\count284
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
File: puenc.def 2021-06-07 v7.00m Hyperref: PDF Unicode definition (HO)
Now handling font encoding PU ...
... no UTF-8 mapping file for font encoding PU
)
Package hyperref Info: Hyper figures OFF on input line 4192.
Package hyperref Info: Link nesting OFF on input line 4197.
Package hyperref Info: Hyper index ON on input line 4200.
Package hyperref Info: Plain pages OFF on input line 4207.
Package hyperref Info: Backreferencing OFF on input line 4212.
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
Package hyperref Info: Bookmarks ON on input line 4445.
\c@Hy@tempcnt=\count285
LaTeX Info: Redefining \url on input line 4804.
\XeTeXLinkMargin=\dimen172
(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
)
))
\Fld@menulength=\count286
\Field@Width=\dimen173
\Fld@charsize=\dimen174
Package hyperref Info: Hyper figures OFF on input line 6076.
Package hyperref Info: Link nesting OFF on input line 6081.
Package hyperref Info: Hyper index ON on input line 6084.
Package hyperref Info: backreferencing OFF on input line 6091.
Package hyperref Info: Link coloring OFF on input line 6096.
Package hyperref Info: Link coloring with OCG OFF on input line 6101.
Package hyperref Info: PDF/A mode OFF on input line 6106.
LaTeX Info: Redefining \ref on input line 6146.
LaTeX Info: Redefining \pageref on input line 6150.
(/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi
package with kernel methods
)
\Hy@abspage=\count287
\c@Item=\count288
\c@Hfootnote=\count289
)
Package hyperref Info: Driver (autodetected): hpdftex.
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
File: hpdftex.def 2021-06-07 v7.00m Hyperref driver for pdfTeX
(/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac
kage
with kernel methods
)
\Fld@listcount=\count290
\c@bookmark@seq@number=\count291
(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO)
(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
)
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
86.
)
\Hy@SectionHShift=\skip55
)
(/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=\dimen175
\l__siunitx_angle_marker_box=\box54
\l__siunitx_angle_unit_box=\box55
\l__siunitx_compound_count_int=\count292
(/usr/share/texlive/texmf-dist/tex/latex/translations/translations.sty
Package: translations 2022/01/04 v1.11 internationalization of LaTeX2e packages
(CN)
(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count293
))
\l__siunitx_number_exponent_fixed_int=\count294
\l__siunitx_number_min_decimal_int=\count295
\l__siunitx_number_min_integer_int=\count296
\l__siunitx_number_round_precision_int=\count297
\l__siunitx_number_group_minimum_int=\count298
\l__siunitx_table_tmp_box=\box56
\l__siunitx_table_tmp_dim=\dimen176
\l__siunitx_table_column_width_dim=\dimen177
\l__siunitx_table_integer_box=\box57
\l__siunitx_table_decimal_box=\box58
\l__siunitx_table_before_box=\box59
\l__siunitx_table_after_box=\box60
\l__siunitx_table_before_dim=\dimen178
\l__siunitx_table_carry_dim=\dimen179
\l__siunitx_unit_tmp_int=\count299
\l__siunitx_unit_position_int=\count300
\l__siunitx_unit_total_int=\count301
(/usr/share/texlive/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2022-01-21 L3 programming layer (loader)
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2022-01-12 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count302
\l__pdf_internal_box=\box61
))
Package: l3keys2e 2022-01-12 LaTeX2e option processing using LaTeX3 keys
)
(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
Package: array 2021/10/04 v2.5f Tabular extension package (FMi)
\col@sep=\dimen180
\ar@mcellbox=\box62
\extrarowheight=\dimen181
\NC@list=\toks23
\extratabsurround=\skip56
\backup@length=\skip57
\ar@cellbox=\box63
))
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 107.
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
))
\Gin@req@height=\dimen182
\Gin@req@width=\dimen183
)
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty
Package: textcomp 2020/02/02 v2.0n Standard LaTeX package
)
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2021/10/31 v2.13 LaTeX color extensions (UK)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 227.
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1352.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1356.
Package xcolor Info: Model `RGB' extended on input line 1368.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1370.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1371.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1372.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1373.
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 18.
(./main.aux)
\openout1 = `main.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
-- Lines per column: 56 (exact).
Package hyperref Info: Link coloring OFF on input line 18.
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
Package: nameref 2021-04-02 v2.47 Cross-referencing by name of section
(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
)
\c@section@level=\count303
)
LaTeX Info: Redefining \ref on input line 18.
LaTeX Info: Redefining \pageref on input line 18.
LaTeX Info: Redefining \nameref on input line 18.
(./main.out) (./main.out)
\@outlinefile=\write3
\openout3 = `main.out'.
(/usr/share/texlive/texmf-dist/tex/latex/translations/translations-basic-dictio
nary-english.trsl
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 18.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count304
\scratchdimen=\dimen184
\scratchbox=\box64
\nofMPsegments=\count305
\nofMParguments=\count306
\everyMPshowfont=\toks24
\MPscratchCnt=\count307
\MPscratchDim=\dimen185
\MPnumerator=\count308
\makeMPintoPDFobject=\count309
\everyMPtoPDFconversion=\toks25
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
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 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 122
.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
]
Underfull \vbox (badness 1354) has occurred while \output is active []
[2]
[3]
<./Figures/sys_dyn_matlab.png, id=202, 430.2474pt x 226.6869pt>
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 132.77559pt.
<./Figures/error_fig.png, id=206, 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 399.
(pdftex.def) Requested size: 252.0pt x 162.44328pt.
[4 <./Figures/sys_dyn_matlab.png> <./Figures/error_fig.png (PNG copy)>]
<./Figures/Motor_currents.png, id=218, 499.6266pt x 328.1058pt>
File: ./Figures/Motor_currents.png Graphic file (type png)
<use ./Figures/Motor_currents.png>
Package pdftex.def Info: ./Figures/Motor_currents.png used on input line 421.
(pdftex.def) Requested size: 252.0pt x 165.48434pt.
(./main.bbl [5 <./Figures/Motor_currents.png (PNG copy)>]
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 /
[]
)
** Conference Paper **
Before submitting the final camera ready copy, remember to:
1. Manually equalize the lengths of two columns on the last page
of your paper;
2. Ensure that any PostScript and/or PDF output post-processing
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
[6
] (./main.aux)
Package rerunfilecheck Info: File `main.out' has not changed.
(rerunfilecheck) Checksum: 4840E35989685C6A900816FED622AB01;6851.
)
Here is how much of TeX's memory you used:
14802 strings out of 478287
281591 string characters out of 5849289
566416 words of memory out of 5000000
32767 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
70i,8n,79p,470b,903s 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/cmex10.pfb></usr/share/texlive/texm
f-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-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/type1/p
ublic/amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/am
sfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8
a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb></usr/sh
are/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/share/texlive/tex
mf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on main.pdf (6 pages, 315176 bytes).
PDF statistics:
301 PDF objects out of 1000 (max. 8388607)
266 compressed objects within 3 object streams
57 named destinations out of 1000 (max. 500000)
304 words of extra memory for PDF output out of 10000 (max. 10000000)

View file

@ -1,36 +0,0 @@
\BOOKMARK [1][-]{section.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1
\BOOKMARK [1][-]{section.2}{\376\377\000R\000e\000l\000a\000t\000e\000d\000\040\000W\000o\000r\000k}{}% 2
\BOOKMARK [2][-]{subsection.2.1}{\376\377\000M\000o\000d\000e\000l\000i\000n\000g\000\040\000o\000f\000\040\000B\000L\000D\000C\000\040\000M\000o\000t\000o\000r}{section.2}% 3
\BOOKMARK [2][-]{subsection.2.2}{\376\377\000T\000r\000a\000p\000e\000z\000o\000i\000d\000a\000l\000\040\000C\000o\000m\000m\000u\000t\000a\000t\000i\000o\000n\000\040\000\050\000S\000i\000x\000-\000S\000t\000e\000p\000\040\000C\000o\000n\000t\000r\000o\000l\000\051\000\040\000f\000o\000r\000\040\000B\000L\000D\000C\000\040\000M\000o\000t\000o\000r\000s}{section.2}% 4
\BOOKMARK [2][-]{subsection.2.3}{\376\377\000F\000i\000e\000l\000d\000-\000O\000r\000i\000e\000n\000t\000e\000d\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000\050\000F\000O\000C\000\051\000\040\000f\000o\000r\000\040\000B\000L\000D\000C\000\040\000M\000o\000t\000o\000r\000s}{section.2}% 5
\BOOKMARK [2][-]{subsection.2.4}{\376\377\000C\000o\000m\000p\000a\000r\000a\000t\000i\000v\000e\000\040\000A\000n\000a\000l\000y\000s\000i\000s\000:\000\040\000F\000O\000C\000\040\000v\000s\000.\000\040\000T\000r\000a\000p\000e\000z\000o\000i\000d\000a\000l\000\040\000f\000o\000r\000\040\000L\000i\000g\000h\000t\000\040\000E\000l\000e\000c\000t\000r\000i\000c\000\040\000V\000e\000h\000i\000c\000l\000e\000s}{section.2}% 6
\BOOKMARK [3][-]{subsubsection.2.4.1}{\376\377\000T\000o\000r\000q\000u\000e\000\040\000R\000i\000p\000p\000l\000e\000\040\000a\000n\000d\000\040\000U\000s\000e\000r\000\040\000C\000o\000m\000f\000o\000r\000t}{subsection.2.4}% 7
\BOOKMARK [3][-]{subsubsection.2.4.2}{\376\377\000E\000n\000e\000r\000g\000y\000\040\000E\000f\000f\000i\000c\000i\000e\000n\000c\000y}{subsection.2.4}% 8
\BOOKMARK [3][-]{subsubsection.2.4.3}{\376\377\000C\000o\000m\000p\000l\000e\000x\000i\000t\000y\000,\000\040\000C\000o\000s\000t\000,\000\040\000a\000n\000d\000\040\000L\000o\000w\000-\000T\000e\000c\000h\000\040\000S\000u\000i\000t\000a\000b\000i\000l\000i\000t\000y}{subsection.2.4}% 9
\BOOKMARK [3][-]{subsubsection.2.4.4}{\376\377\000D\000y\000n\000a\000m\000i\000c\000\040\000R\000e\000s\000p\000o\000n\000s\000e}{subsection.2.4}% 10
\BOOKMARK [1][-]{section.3}{\376\377\000R\000e\000s\000e\000a\000r\000c\000h\000\040\000g\000a\000p}{}% 11
\BOOKMARK [1][-]{section.4}{\376\377\000A\000i\000m\000\040\000a\000n\000d\000\040\000R\000e\000s\000e\000a\000r\000c\000h\000\040\000O\000b\000j\000e\000c\000t\000i\000v\000e\000s}{}% 12
\BOOKMARK [1][-]{section.5}{\376\377\000H\000a\000r\000d\000w\000a\000r\000e\000-\000B\000a\000s\000e\000d\000\040\000S\000i\000x\000-\000S\000t\000e\000p\000\040\000C\000o\000m\000m\000u\000t\000a\000t\000i\000o\000n\000\040\000C\000o\000n\000t\000r\000o\000l\000l\000e\000r}{}% 13
\BOOKMARK [1][-]{section.6}{\376\377\000S\000T\000M\0003\0002\000-\000B\000a\000s\000e\000d\000\040\000F\000i\000e\000l\000d\000-\000O\000r\000i\000e\000n\000t\000e\000d\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000M\000o\000t\000o\000r\000\040\000D\000r\000i\000v\000e}{}% 14
\BOOKMARK [1][-]{section.7}{\376\377\000S\000o\000f\000t\000w\000a\000r\000e\000\040\000a\000n\000d\000\040\000C\000o\000n\000n\000e\000c\000t\000i\000v\000i\000t\000y}{}% 15
\BOOKMARK [2][-]{subsection.7.1}{\376\377\000B\000L\000E\000\040\000C\000o\000m\000p\000a\000t\000i\000b\000i\000l\000i\000t\000y\000\040\000W\000i\000t\000h\000\040\000t\000h\000e\000\040\000V\000E\000S\000C}{section.7}% 16
\BOOKMARK [3][-]{subsubsection.7.1.1}{\376\377\000F\000i\000r\000s\000t\000\040\000E\000x\000p\000e\000r\000i\000m\000e\000n\000t}{subsection.7.1}% 17
\BOOKMARK [3][-]{subsubsection.7.1.2}{\376\377\000H\000C\000-\0000\0005\000\040\000a\000n\000d\000\040\000t\000h\000e\000\040\000V\000E\000S\000C}{subsection.7.1}% 18
\BOOKMARK [3][-]{subsubsection.7.1.3}{\376\377\000B\000L\000E\000\040\000V\000u\000l\000n\000e\000r\000a\000b\000i\000l\000i\000t\000y}{subsection.7.1}% 19
\BOOKMARK [2][-]{subsection.7.2}{\376\377\000C\000o\000d\000e\000\040\000i\000n\000t\000e\000g\000r\000i\000t\000y}{section.7}% 20
\BOOKMARK [3][-]{subsubsection.7.2.1}{\376\377\000C\000o\000n\000t\000e\000x\000t}{subsection.7.2}% 21
\BOOKMARK [3][-]{subsubsection.7.2.2}{\376\377\000L\000i\000s\000p\000B\000M\000\040\000e\000x\000t\000r\000a\000c\000t\000i\000o\000n}{subsection.7.2}% 22
\BOOKMARK [3][-]{subsubsection.7.2.3}{\376\377\000L\000i\000s\000p\000B\000M\000\040\000C\000o\000d\000e}{subsection.7.2}% 23
\BOOKMARK [3][-]{subsubsection.7.2.4}{\376\377\000P\000r\000o\000p\000o\000s\000e\000d\000\040\000S\000o\000l\000u\000t\000i\000o\000n}{subsection.7.2}% 24
\BOOKMARK [2][-]{subsection.7.3}{\376\377\000V\000E\000S\000C\000\040\000C\000o\000m\000p\000i\000l\000i\000n\000g}{section.7}% 25
\BOOKMARK [1][-]{section.8}{\376\377\000D\000y\000n\000a\000m\000i\000c\000\040\000M\000o\000d\000e\000l\000l\000i\000n\000g\000\040\000a\000n\000d\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000o\000f\000\040\000t\000h\000e\000\040\000B\000i\000c\000y\000c\000l\000e\040\023\000C\000a\000r\000g\000o\000\040\000S\000y\000s\000t\000e\000m}{}% 26
\BOOKMARK [2][-]{subsection.8.1}{\376\377\000D\000y\000n\000a\000m\000i\000c\000\040\000S\000y\000s\000t\000e\000m\000\040\000M\000o\000d\000e\000l\000l\000i\000n\000g}{section.8}% 27
\BOOKMARK [2][-]{subsection.8.2}{\376\377\000P\000I\000-\000B\000a\000s\000e\000d\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000S\000t\000r\000a\000t\000e\000g\000y}{section.8}% 28
\BOOKMARK [2][-]{subsection.8.3}{\376\377\000C\000o\000n\000t\000r\000o\000l\000\040\000A\000r\000c\000h\000i\000t\000e\000c\000t\000u\000r\000e\000\040\000E\000x\000p\000l\000o\000r\000a\000t\000i\000o\000n}{section.8}% 29
\BOOKMARK [1][-]{section.9}{\376\377\000R\000e\000s\000u\000l\000t\000s}{}% 30
\BOOKMARK [2][-]{subsection.9.1}{\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}% 31
\BOOKMARK [3][-]{subsubsection.9.1.1}{\376\377\000S\000i\000m\000u\000l\000a\000t\000i\000o\000n\000\040\000R\000e\000s\000u\000l\000t\000s}{subsection.9.1}% 32
\BOOKMARK [3][-]{subsubsection.9.1.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.1}% 33
\BOOKMARK [1][-]{section.10}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n}{}% 34
\BOOKMARK [1][-]{section.11}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000/\000S\000u\000m\000m\000a\000r\000y}{}% 35
\BOOKMARK [1][-]{section*.2}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 36

Binary file not shown.

View file

@ -1,16 +1,24 @@
\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
@ -21,8 +29,6 @@
Design and Implementation of a High-Power Motor Controller for Bicycles
}
%\maketitle
\author{\IEEEauthorblockN{Hugo Abescat}
\IEEEauthorblockA{\textit{GEI Department} \\
@ -93,646 +99,27 @@ bikes while significantly improving repairability.
VESC, Brushless DC motor, Field Oriented Control, Trapezoidal commutation, Low-Tech, PID-Control.
\end{IEEEkeywords}
\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 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 the MAD than what is publicly available?
% ********************************************* RELATED WORK ***********************************************************
\section{Related Work}
\subsection{Modeling of BLDC Motor}
The electromechanical model of a BLDC (Brushless DC) motor is foundational for understanding its behavior 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 modeling 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 sensorless
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}.
\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{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.
% ************************************** LOW TECH SIX STEP CONTROL *****************************************************
\section{Hardware-Based Six-Step Commutation Controller}
% ************************************** FIELD ORIENTED CONTROL *****************************************************
\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.
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.
% ************************************** SOFTWARE AND CONNECTIVITY *****************************************************
\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 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.
\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{b1} 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 accessability of the
code within the vesc tool sooner.
\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 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
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 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}
\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 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.
\subsection{VESC Compiling}
As mentionned, we have been able to compile the VESC tool and the VESC firmware. This firmware has been put onto an
STM32F4xx Discovery card. This poses several obstacles for our progress on the topic of cybersecurity. We will however
summarise what we have learned for you 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 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 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 the MAD associates.
% ************************************ DYNAMIC MODELLING ***************************************************************
\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}
% ******************************** RESULTS **************************************************************************
\section{Results}
\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.png}
\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}
% ******************************** 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 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 spesialisations like TLS SEC, ESPE. Our thoughts on the following projects that could be
explored are the following.
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 tarifs. The idea of opening a spesialisation 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 priveligies 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 spesialisation.
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 controlles 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.
% ******************************** Perspectives and Future Work ************************************************************
\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).
% ******************************** CONCLUSION **************************************************************************
\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''.
% ******************************** REMERCIEMENTS **************************************************************************
\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.
% ******************************** IA **************************************************************************
\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.
%% 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

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 trailers 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 bicycles 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.

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}.

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.

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}

View file

@ -64,7 +64,7 @@ delay(2000);
#include <SoftwareSerial.h>
#define BTouVESC 0
#define BTouVESC 3
#define RXBT 14 // D5
@ -73,9 +73,10 @@ delay(2000);
#define RX2_VESC 16 //D0 RX ESP8266 / PB10 TX Discovery
#define TX2_VESC 5 //D1 TX ESP8266 / PB11 RX Discovery
#if BTouVESC == 1
#if BTouVESC == 1
SoftwareSerial mySer(RXBT, TXBT);
void setup() {
Serial.begin(9600); // Serial Monitor
mySer.begin(9600); // HC-05
@ -93,7 +94,9 @@ void loop() {
while (Serial.available()) {
char c = Serial.read();
mySer.print(c);
mySer2.write(c);
}
}
#elif BTouVESC == 0
@ -119,4 +122,29 @@ void loop() {
}
}
#elif BTouVESC == 3
// BT on SoftwareSerial
SoftwareSerial BT(RXBT, TXBT);
void setup() {
Serial.begin(115200); // USB debug
BT.begin(9600); // HC-05
Serial1.begin(115200); // TX only (GPIO2) maybe to VESC
}
void loop() {
while (BT.available()) {
char c = BT.read();
Serial.write(c);
Serial1.write(c); // to VESC
}
while (Serial.available()) {
char c = Serial.read();
BT.write(c);
}
}
#endif

View file

@ -71,7 +71,7 @@ sudo su -c "echo 'message' > /dev/rfcomm0"
sudo rfcomm release 0
```
# Après avoir connecé une fois:
# Après être connecté une fois:
```
sudo rfcomm release 0

View file

@ -1,42 +0,0 @@
\relax
\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {II}Bluetooth Low Energy}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-A}}BLE compatibility with the VESC}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}BLE vulnerability}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-C}}Testing of BLE-modules}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {III}Prepare Your Paper Before Styling}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-A}}Abbreviations and Acronyms}{1}{}\protected@file@percent }
\newlabel{AA}{{\mbox {III-A}}{1}{}{}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-B}}Units}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-C}}Equations}{1}{}\protected@file@percent }
\newlabel{eq}{{1}{1}{}{}{}}
\citation{b7}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-D}}\LaTeX -Specific Advice}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-E}}Some Common Mistakes}{2}{}\protected@file@percent }
\newlabel{SCM}{{\mbox {III-E}}{2}{}{}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-F}}Authors and Affiliations}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-G}}Identify the Headings}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-H}}Figures and Tables}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{\numberline {\mbox {III-H}0a}Positioning Figures and Tables}{2}{}\protected@file@percent }
\citation{b1}
\citation{b2}
\citation{b3}
\citation{b3}
\citation{b3}
\citation{b3}
\citation{b4}
\citation{b5}
\citation{b6}
\bibcite{b1}{1}
\bibcite{b2}{2}
\bibcite{b3}{3}
\bibcite{b4}{4}
\bibcite{b5}{5}
\bibcite{b6}{6}
\bibcite{b7}{7}
\@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces Table Type Styles}}{3}{}\protected@file@percent }
\newlabel{tab1}{{I}{3}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Example of a figure caption.}}{3}{}\protected@file@percent }
\newlabel{fig}{{1}{3}{}{}{}}
\@writefile{toc}{\contentsline {section}{References}{3}{}\protected@file@percent }
\gdef \@abspage@last{3}

View file

@ -1,384 +0,0 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex 2026.4.14) 4 MAY 2026 16:17
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**Template_Latex.tex
(./Template_Latex.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-01-22>
(/usr/share/texlive/texmf-dist/tex/latex/ieeetran/IEEEtran.cls
Document Class: IEEEtran 2015/08/26 V1.8b by Michael Shell
-- See the "IEEEtran_HOWTO" manual for usage information.
-- http://www.michaelshell.org/tex/ieeetran/
\@IEEEtrantmpdimenA=\dimen140
\@IEEEtrantmpdimenB=\dimen141
\@IEEEtrantmpdimenC=\dimen142
\@IEEEtrantmpcountA=\count187
\@IEEEtrantmpcountB=\count188
\@IEEEtrantmpcountC=\count189
\@IEEEtrantmptoksA=\toks17
LaTeX Font Info: Trying to load font information for OT1+ptm on input line 5
03.
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd
File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.
)
-- Using 8.5in x 11in (letter) paper.
-- Using PDF output.
\@IEEEnormalsizeunitybaselineskip=\dimen143
-- This is a 10 point document.
\CLASSINFOnormalsizebaselineskip=\dimen144
\CLASSINFOnormalsizeunitybaselineskip=\dimen145
\IEEEnormaljot=\dimen146
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
\IEEEquantizedlength=\dimen147
\IEEEquantizedlengthdiff=\dimen148
\IEEEquantizedtextheightdiff=\dimen149
\IEEEilabelindentA=\dimen150
\IEEEilabelindentB=\dimen151
\IEEEilabelindent=\dimen152
\IEEEelabelindent=\dimen153
\IEEEdlabelindent=\dimen154
\IEEElabelindent=\dimen155
\IEEEiednormlabelsep=\dimen156
\IEEEiedmathlabelsep=\dimen157
\IEEEiedtopsep=\skip48
\c@section=\count190
\c@subsection=\count191
\c@subsubsection=\count192
\c@paragraph=\count193
\c@IEEEsubequation=\count194
\abovecaptionskip=\skip49
\belowcaptionskip=\skip50
\c@figure=\count195
\c@table=\count196
\@IEEEeqnnumcols=\count197
\@IEEEeqncolcnt=\count198
\@IEEEsubeqnnumrollback=\count199
\@IEEEquantizeheightA=\dimen158
\@IEEEquantizeheightB=\dimen159
\@IEEEquantizeheightC=\dimen160
\@IEEEquantizeprevdepth=\dimen161
\@IEEEquantizemultiple=\count266
\@IEEEquantizeboxA=\box51
\@IEEEtmpitemindent=\dimen162
\IEEEPARstartletwidth=\dimen163
\c@IEEEbiography=\count267
\@IEEEtranrubishbin=\box52
)
** ATTENTION: Overriding command lockouts (line 2).
(/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty
LaTeX Info: Redefining \cite on input line 302.
LaTeX Info: Redefining \nocite on input line 332.
Package: cite 2015/02/27 v 5.5
)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2023/05/13 v2.17o AMS math features
\@mathmargin=\skip51
For additional information on amsmath, use the `?' option.
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2021/08/26 v2.01 AMS text
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks18
\ex@=\dimen164
))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen165
)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2022/04/08 v2.04 operator names
)
\inf@bad=\count268
LaTeX Info: Redefining \frac on input line 234.
\uproot@=\count269
\leftroot@=\count270
LaTeX Info: Redefining \overline on input line 399.
LaTeX Info: Redefining \colon on input line 410.
\classnum@=\count271
\DOTSCASE@=\count272
LaTeX Info: Redefining \ldots on input line 496.
LaTeX Info: Redefining \dots on input line 499.
LaTeX Info: Redefining \cdots on input line 620.
\Mathstrutbox@=\box53
\strutbox@=\box54
LaTeX Info: Redefining \big on input line 722.
LaTeX Info: Redefining \Big on input line 723.
LaTeX Info: Redefining \bigg on input line 724.
LaTeX Info: Redefining \Bigg on input line 725.
\big@size=\dimen166
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
\macc@depth=\count273
LaTeX Info: Redefining \bmod on input line 905.
LaTeX Info: Redefining \pmod on input line 910.
LaTeX Info: Redefining \smash on input line 940.
LaTeX Info: Redefining \relbar on input line 970.
LaTeX Info: Redefining \Relbar on input line 971.
\c@MaxMatrixCols=\count274
\dotsspace@=\muskip16
\c@parentequation=\count275
\dspbrk@lvl=\count276
\tag@help=\toks19
\row@=\count277
\column@=\count278
\maxfields@=\count279
\andhelp@=\toks20
\eqnshift@=\dimen167
\alignsep@=\dimen168
\tagshift@=\dimen169
\tagwidth@=\dimen170
\totwidth@=\dimen171
\lineht@=\dimen172
\@envbody=\toks21
\multlinegap=\skip52
\multlinetaggap=\skip53
\mathdisplay@stack=\toks22
LaTeX Info: Redefining \[ on input line 2953.
LaTeX Info: Redefining \] on input line 2954.
)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
))
(/usr/share/texlive/texmf-dist/tex/latex/algorithms/algorithmic.sty
Package: algorithmic 2009/08/24 v0.1 Document Style `algorithmic'
(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2022/04/13 v1.1d Standard LaTeX ifthen package (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
\KV@toks@=\toks23
)
\c@ALC@unique=\count280
\c@ALC@line=\count281
\c@ALC@rem=\count282
\c@ALC@depth=\count283
\ALC@tlm=\skip54
\algorithmicindent=\skip55
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 107.
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex
))
\Gin@req@height=\dimen173
\Gin@req@width=\dimen174
)
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty
Package: textcomp 2020/02/02 v2.0n Standard LaTeX package
)
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 274.
(/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx)
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354.
Package xcolor Info: Model `RGB' extended on input line 1366.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373.
)
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count284
\l__pdf_internal_box=\box55
)
(./Template_Latex.aux)
\openout1 = `Template_Latex.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12.
LaTeX Font Info: ... okay on input line 12.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12.
LaTeX Font Info: ... okay on input line 12.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12.
LaTeX Font Info: ... okay on input line 12.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12.
LaTeX Font Info: ... okay on input line 12.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 12.
LaTeX Font Info: ... okay on input line 12.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12.
LaTeX Font Info: ... okay on input line 12.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12.
LaTeX Font Info: ... okay on input line 12.
-- Lines per column: 56 (exact).
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count285
\scratchdimen=\dimen175
\scratchbox=\box56
\nofMPsegments=\count286
\nofMParguments=\count287
\everyMPshowfont=\toks24
\MPscratchCnt=\count288
\MPscratchDim=\dimen176
\MPnumerator=\count289
\makeMPintoPDFobject=\count290
\everyMPtoPDFconversion=\toks25
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
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 57.
(/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 57.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
LaTeX Font Info: Calculating math sizes for size <11> on input line 57.
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texlive/texmf
-dist/fonts/enc/dvips/base/8r.enc}
]
LaTeX Font Info: Trying to load font information for OT1+pcr on input line 1
28.
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd
File: ot1pcr.fd 2001/06/04 font definitions for OT1/pcr.
)
LaTeX Font Info: Trying to load font information for OMS+ptm on input line 2
44.
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/omsptm.fd
File: omsptm.fd
)
LaTeX Font Info: Font shape `OMS/ptm/m/n' in size <10> not available
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 244.
[2]
** Conference Paper **
Before submitting the final camera ready copy, remember to:
1. Manually equalize the lengths of two columns on the last page
of your paper;
2. Ensure that any PostScript and/or PDF output post-processing
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
[3] (./Template_Latex.aux)
***********
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-01-22>
***********
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
)
Here is how much of TeX's memory you used:
4282 strings out of 474222
66560 string characters out of 5748733
1944975 words of memory out of 5000000
26483 multiletter control sequences out of 15000+600000
609174 words of font info for 137 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
57i,11n,65p,589b,304s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share
/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/share/texlive
/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-d
ist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fo
nts/type1/public/amsfonts/cm/cmsy7.pfb></usr/share/texlive/texmf-dist/fonts/typ
e1/urw/courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/
utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb></u
sr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/share/texliv
e/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on Template_Latex.pdf (3 pages, 132412 bytes).
PDF statistics:
70 PDF objects out of 1000 (max. 8388607)
42 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)

Binary file not shown.

Binary file not shown.

@ -1 +0,0 @@
Subproject commit 43228716a24f8ccfa1e55f7c12f01de51aa44f7b

@ -1 +0,0 @@
Subproject commit c19a6283e187040f25aa52e213673938db054d06

View file

@ -1,432 +0,0 @@
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:49
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**main.tex
(./main.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-01-21>
(/usr/share/texlive/texmf-dist/tex/latex/ieeetran/IEEEtran.cls
Document Class: IEEEtran 2015/08/26 V1.8b by Michael Shell
-- See the "IEEEtran_HOWTO" manual for usage information.
-- http://www.michaelshell.org/tex/ieeetran/
\@IEEEtrantmpdimenA=\dimen138
\@IEEEtrantmpdimenB=\dimen139
\@IEEEtrantmpdimenC=\dimen140
\@IEEEtrantmpcountA=\count185
\@IEEEtrantmpcountB=\count186
\@IEEEtrantmpcountC=\count187
\@IEEEtrantmptoksA=\toks16
LaTeX Font Info: Trying to load font information for OT1+ptm on input line 5
03.
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd
File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.
)
-- Using 8.5in x 11in (letter) paper.
-- Using PDF output.
\@IEEEnormalsizeunitybaselineskip=\dimen141
-- This is a 10 point document.
\CLASSINFOnormalsizebaselineskip=\dimen142
\CLASSINFOnormalsizeunitybaselineskip=\dimen143
\IEEEnormaljot=\dimen144
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090.
\IEEEquantizedlength=\dimen145
\IEEEquantizedlengthdiff=\dimen146
\IEEEquantizedtextheightdiff=\dimen147
\IEEEilabelindentA=\dimen148
\IEEEilabelindentB=\dimen149
\IEEEilabelindent=\dimen150
\IEEEelabelindent=\dimen151
\IEEEdlabelindent=\dimen152
\IEEElabelindent=\dimen153
\IEEEiednormlabelsep=\dimen154
\IEEEiedmathlabelsep=\dimen155
\IEEEiedtopsep=\skip47
\c@section=\count188
\c@subsection=\count189
\c@subsubsection=\count190
\c@paragraph=\count191
\c@IEEEsubequation=\count192
\abovecaptionskip=\skip48
\belowcaptionskip=\skip49
\c@figure=\count193
\c@table=\count194
\@IEEEeqnnumcols=\count195
\@IEEEeqncolcnt=\count196
\@IEEEsubeqnnumrollback=\count197
\@IEEEquantizeheightA=\dimen156
\@IEEEquantizeheightB=\dimen157
\@IEEEquantizeheightC=\dimen158
\@IEEEquantizeprevdepth=\dimen159
\@IEEEquantizemultiple=\count198
\@IEEEquantizeboxA=\box50
\@IEEEtmpitemindent=\dimen160
\IEEEPARstartletwidth=\dimen161
\c@IEEEbiography=\count199
\@IEEEtranrubishbin=\box51
)
** ATTENTION: Overriding command lockouts (line 2).
(/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty
LaTeX Info: Redefining \cite on input line 302.
LaTeX Info: Redefining \nocite on input line 332.
Package: cite 2015/02/27 v 5.5
)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2021/10/15 v2.17l AMS math features
\@mathmargin=\skip50
For additional information on amsmath, use the `?' option.
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2021/08/26 v2.01 AMS text
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks17
\ex@=\dimen162
))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen163
)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2021/08/26 v2.02 operator names
)
\inf@bad=\count266
LaTeX Info: Redefining \frac on input line 234.
\uproot@=\count267
\leftroot@=\count268
LaTeX Info: Redefining \overline on input line 399.
\classnum@=\count269
\DOTSCASE@=\count270
LaTeX Info: Redefining \ldots on input line 496.
LaTeX Info: Redefining \dots on input line 499.
LaTeX Info: Redefining \cdots on input line 620.
\Mathstrutbox@=\box52
\strutbox@=\box53
\big@size=\dimen164
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
\macc@depth=\count271
\c@MaxMatrixCols=\count272
\dotsspace@=\muskip16
\c@parentequation=\count273
\dspbrk@lvl=\count274
\tag@help=\toks18
\row@=\count275
\column@=\count276
\maxfields@=\count277
\andhelp@=\toks19
\eqnshift@=\dimen165
\alignsep@=\dimen166
\tagshift@=\dimen167
\tagwidth@=\dimen168
\totwidth@=\dimen169
\lineht@=\dimen170
\@envbody=\toks20
\multlinegap=\skip51
\multlinetaggap=\skip52
\mathdisplay@stack=\toks21
LaTeX Info: Redefining \[ on input line 2938.
LaTeX Info: Redefining \] on input line 2939.
)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
))
(/usr/share/texlive/texmf-dist/tex/latex/algorithms/algorithmic.sty
Package: algorithmic 2009/08/24 v0.1 Document Style `algorithmic'
(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2020/11/24 v1.1c Standard LaTeX ifthen package (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks22
)
\c@ALC@unique=\count278
\c@ALC@line=\count279
\c@ALC@rem=\count280
\c@ALC@depth=\count281
\ALC@tlm=\skip53
\algorithmicindent=\skip54
)
(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
(/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
\l__siunitx_angle_marker_box=\box54
\l__siunitx_angle_unit_box=\box55
\l__siunitx_compound_count_int=\count282
(/usr/share/texlive/texmf-dist/tex/latex/translations/translations.sty
Package: translations 2022/01/04 v1.11 internationalization of LaTeX2e packages
(CN)
(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count283
)
(/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO
)
(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2020/03/06 v1.0d TeX engine tests
)
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
)
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found.
))
\l__siunitx_number_exponent_fixed_int=\count284
\l__siunitx_number_min_decimal_int=\count285
\l__siunitx_number_min_integer_int=\count286
\l__siunitx_number_round_precision_int=\count287
\l__siunitx_number_group_minimum_int=\count288
\l__siunitx_table_tmp_box=\box56
\l__siunitx_table_tmp_dim=\dimen172
\l__siunitx_table_column_width_dim=\dimen173
\l__siunitx_table_integer_box=\box57
\l__siunitx_table_decimal_box=\box58
\l__siunitx_table_before_box=\box59
\l__siunitx_table_after_box=\box60
\l__siunitx_table_before_dim=\dimen174
\l__siunitx_table_carry_dim=\dimen175
\l__siunitx_unit_tmp_int=\count289
\l__siunitx_unit_position_int=\count290
\l__siunitx_unit_total_int=\count291
(/usr/share/texlive/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2022-01-21 L3 programming layer (loader)
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2022-01-12 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count292
\l__pdf_internal_box=\box61
))
Package: l3keys2e 2022-01-12 LaTeX2e option processing using LaTeX3 keys
)
(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
Package: array 2021/10/04 v2.5f Tabular extension package (FMi)
\col@sep=\dimen176
\ar@mcellbox=\box62
\extrarowheight=\dimen177
\NC@list=\toks23
\extratabsurround=\skip55
\backup@length=\skip56
\ar@cellbox=\box63
))
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 107.
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
))
\Gin@req@height=\dimen178
\Gin@req@width=\dimen179
)
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty
Package: textcomp 2020/02/02 v2.0n Standard LaTeX package
)
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2021/10/31 v2.13 LaTeX color extensions (UK)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 227.
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1352.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1356.
Package xcolor Info: Model `RGB' extended on input line 1368.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1370.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1371.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1372.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1373.
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.
(./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.
-- Lines per column: 56 (exact).
(/usr/share/texlive/texmf-dist/tex/latex/translations/translations-basic-dictio
nary-english.trsl
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.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count293
\scratchdimen=\dimen180
\scratchbox=\box64
\nofMPsegments=\count294
\nofMParguments=\count295
\everyMPshowfont=\toks24
\MPscratchCnt=\count296
\MPscratchDim=\dimen181
\MPnumerator=\count297
\makeMPintoPDFobject=\count298
\everyMPtoPDFconversion=\toks25
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
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 118
.
(/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
.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
] [2] [3] (./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 /
[]
)
** Conference Paper **
Before submitting the final camera ready copy, remember to:
1. Manually equalize the lengths of two columns on the last page
of your paper;
2. Ensure that any PostScript and/or PDF output post-processing
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
[4
] (./main.aux) )
Here is how much of TeX's memory you used:
8269 strings out of 478287
179204 string characters out of 5849289
458765 words of memory out of 5000000
26390 multiletter control sequences out of 15000+600000
504561 words of font info for 97 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}</us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/shar
e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texli
ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texm
f-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/ty
pe1/urw/times/utmbi8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/
utmr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on main.pdf (4 pages, 110930 bytes).
PDF statistics:
53 PDF objects out of 1000 (max. 8388607)
32 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)

Binary file not shown.

13
circuits/lotec/README.md Normal file
View file

@ -0,0 +1,13 @@
Composants
Lien specs moteur : http://www.mxusebikekit.com/pro_info.asp?Pid=25
Liens batterie : 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
Super capas : https://fr.rs-online.com/web/p/supercondensateurs/1351097
Outils simulation : https://forum.fabmob.io/t/outil-de-simulation-energetique-developpe-par-lifpen/1258
Charrette Piano : https://veloma.org/2022/10/05/la-charrette-version-montagne-ou-comment-transporter-250kg-a-velo-par-monts-et-par-vaux/
Cycle Analyst : https://ebikes.ca/product-info/grin-products/cycle-analyst-3.html

View file

@ -0,0 +1,65 @@
Version 4
SHEET 1 880 680
WIRE -160 -608 -160 -640
WIRE -160 -608 -272 -608
WIRE -64 -608 -160 -608
WIRE -272 -592 -272 -608
WIRE -64 -592 -64 -608
WIRE -320 -576 -368 -576
WIRE -112 -576 -240 -576
WIRE -368 -496 -368 -576
WIRE -368 -496 -496 -496
WIRE -272 -480 -272 -496
WIRE -160 -480 -272 -480
WIRE -64 -480 -64 -496
WIRE -64 -480 -160 -480
WIRE 0 -480 -64 -480
WIRE -160 -464 -160 -480
WIRE -368 -384 -368 -496
WIRE -208 -384 -368 -384
WIRE -240 -288 -240 -576
WIRE -240 -288 -496 -288
WIRE -208 -288 -240 -288
WIRE -960 -176 -960 -192
FLAG -800 -176 0
FLAG -800 -256 Vb
FLAG -960 -176 0
FLAG -960 -192 Vss
IOPIN -960 -192 In
FLAG -896 -176 0
FLAG -896 -256 Vdd
IOPIN -896 -256 In
FLAG -800 -320 0
FLAG -800 -400 Va
FLAG -496 -496 Va
FLAG -496 -288 Vb
FLAG -160 -640 Vdd
IOPIN -160 -640 In
FLAG -160 -272 Vss
IOPIN -160 -272 In
FLAG 0 -480 Vs
IOPIN 0 -480 Out
SYMBOL voltage -800 -272 R0
WINDOW 3 69 172 VLeft 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value PULSE(5 0 5m 1n 1n 10m 20m)
SYMBOL voltage -896 -272 R0
SYMATTR InstName V2
SYMATTR Value 5
SYMBOL voltage -800 -416 R0
WINDOW 3 -44 117 VLeft 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V3
SYMATTR Value PULSE(0 5 0 1n 1n 10m 20m)
SYMBOL pmos -320 -496 M180
SYMATTR InstName M1
SYMBOL pmos -112 -496 M180
SYMATTR InstName M2
SYMBOL nmos -208 -464 R0
SYMATTR InstName M3
SYMBOL nmos -208 -368 R0
SYMATTR InstName M4
TEXT -968 -136 Left 2 !.tran 40m

View file

@ -0,0 +1,36 @@
Version 4
SHEET 1 880 680
WIRE -336 -288 -336 -352
WIRE -384 -272 -432 -272
WIRE -432 -160 -432 -272
WIRE -432 -160 -512 -160
WIRE -336 -160 -336 -192
WIRE -224 -160 -336 -160
WIRE -336 -144 -336 -160
WIRE -800 -96 -800 -112
WIRE -432 -64 -432 -160
WIRE -384 -64 -432 -64
WIRE -336 16 -336 -48
FLAG -512 -160 Ve
FLAG -336 16 Vss
FLAG -336 -352 Vdd
FLAG -224 -160 Vs
FLAG -800 -176 0
FLAG -800 -256 Ve
FLAG -800 -96 0
FLAG -800 -112 Vss
FLAG -896 -176 0
FLAG -896 -256 Vdd
SYMBOL nmos -384 -144 R0
SYMATTR InstName M2
SYMBOL pmos -384 -192 M180
SYMATTR InstName M1
SYMBOL voltage -800 -272 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value PULSE(0 5 0 1n 1n 20m 30m)
SYMBOL voltage -896 -272 R0
SYMATTR InstName V2
SYMATTR Value 5
TEXT -176 32 Left 2 !.tran 0 100m 0 1m

View file

@ -0,0 +1,65 @@
Version 4
SHEET 1 880 680
WIRE -208 -608 -336 -608
WIRE -208 -512 -304 -512
WIRE -336 -496 -336 -608
WIRE -336 -496 -496 -496
WIRE 0 -480 -64 -480
WIRE -160 -400 -160 -432
WIRE -160 -400 -272 -400
WIRE -64 -400 -64 -480
WIRE -64 -400 -160 -400
WIRE -304 -384 -304 -512
WIRE -304 -384 -496 -384
WIRE -144 -384 -304 -384
WIRE -272 -368 -272 -400
WIRE -64 -368 -64 -400
WIRE -336 -288 -336 -496
WIRE -320 -288 -336 -288
WIRE -144 -288 -144 -384
WIRE -112 -288 -144 -288
WIRE -176 -272 -272 -272
WIRE -64 -272 -176 -272
WIRE -960 -176 -960 -192
FLAG -800 -176 0
FLAG -800 -256 Vb
FLAG -960 -176 0
FLAG -960 -192 Vss
IOPIN -960 -192 In
FLAG -896 -176 0
FLAG -896 -256 Vdd
IOPIN -896 -256 In
FLAG -800 -320 0
FLAG -800 -400 Va
FLAG -496 -496 Va
FLAG -496 -384 Vb
FLAG -160 -624 Vdd
IOPIN -160 -624 In
FLAG -176 -272 Vss
IOPIN -176 -272 In
FLAG 0 -480 Vs
IOPIN 0 -480 Out
SYMBOL voltage -800 -272 R0
WINDOW 3 69 172 VLeft 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value PULSE(5 0 5m 1n 1n 10m 20m)
SYMBOL voltage -896 -272 R0
SYMATTR InstName V2
SYMATTR Value 5
SYMBOL voltage -800 -416 R0
WINDOW 3 -44 117 VLeft 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V3
SYMATTR Value PULSE(0 5 0 1n 1n 10m 20m)
SYMBOL pmos -208 -432 M180
SYMATTR InstName M1
SYMBOL pmos -208 -528 M180
SYMATTR InstName M2
SYMBOL nmos -112 -368 R0
SYMATTR InstName M3
SYMBOL nmos -320 -368 R0
SYMATTR InstName M4
TEXT -968 -136 Left 2 !.tran 40m

View file

@ -0,0 +1,2 @@
Version 4
SHEET 1 880 680

730
circuits/lotec/Spice/v0.asc Normal file
View file

@ -0,0 +1,730 @@
Version 4
SHEET 1 1408 1276
WIRE -1056 160 -1088 160
WIRE -848 160 -880 160
WIRE -656 160 -688 160
WIRE 112 176 -80 176
WIRE 352 176 112 176
WIRE 592 176 352 176
WIRE 864 192 864 176
WIRE 976 192 976 176
WIRE 1088 192 1088 176
WIRE -1088 208 -1088 160
WIRE -880 208 -880 160
WIRE -688 208 -688 160
WIRE 112 208 112 176
WIRE 208 208 112 208
WIRE 352 208 352 176
WIRE 448 208 352 208
WIRE 592 208 592 176
WIRE 688 208 592 208
WIRE 112 224 112 208
WIRE 208 224 208 208
WIRE 352 224 352 208
WIRE 448 224 448 208
WIRE 592 224 592 208
WIRE 688 224 688 208
WIRE 64 240 48 240
WIRE 304 240 288 240
WIRE 544 240 528 240
WIRE 64 288 48 288
WIRE 304 288 288 288
WIRE 544 288 528 288
WIRE 864 288 864 272
WIRE 928 288 864 288
WIRE 976 288 976 272
WIRE 976 288 928 288
WIRE 1088 288 1088 272
WIRE 1088 288 976 288
WIRE -80 304 -80 176
WIRE 48 304 48 288
WIRE 288 304 288 288
WIRE 528 304 528 288
WIRE 112 320 112 304
WIRE 208 320 208 288
WIRE 208 320 112 320
WIRE 352 320 352 304
WIRE 448 320 448 288
WIRE 448 320 352 320
WIRE 592 320 592 304
WIRE 688 320 688 288
WIRE 688 320 592 320
WIRE -1088 336 -1088 288
WIRE -880 336 -880 288
WIRE -688 336 -688 288
WIRE 112 352 112 320
WIRE 224 352 112 352
WIRE 352 352 352 320
WIRE 464 352 352 352
WIRE 592 352 592 320
WIRE 704 352 592 352
WIRE 112 368 112 352
WIRE 208 368 112 368
WIRE 352 368 352 352
WIRE 448 368 352 368
WIRE 592 368 592 352
WIRE 688 368 592 368
WIRE -1056 384 -1088 384
WIRE -848 384 -880 384
WIRE 112 384 112 368
WIRE 208 384 208 368
WIRE 352 384 352 368
WIRE 448 384 448 368
WIRE 592 384 592 368
WIRE 688 384 688 368
WIRE 64 400 48 400
WIRE 304 400 288 400
WIRE 544 400 528 400
WIRE -1088 432 -1088 384
WIRE -880 432 -880 384
WIRE 64 448 48 448
WIRE 304 448 288 448
WIRE 544 448 528 448
WIRE 816 448 768 448
WIRE 944 448 896 448
WIRE 1056 448 1024 448
WIRE 48 464 48 448
WIRE 288 464 288 448
WIRE 528 464 528 448
WIRE 112 480 112 464
WIRE 208 480 208 448
WIRE 208 480 112 480
WIRE 352 480 352 464
WIRE 448 480 448 448
WIRE 448 480 352 480
WIRE 592 480 592 464
WIRE 688 480 688 448
WIRE 688 480 592 480
WIRE -80 512 -80 384
WIRE 112 512 112 480
WIRE 112 512 -80 512
WIRE 352 512 352 480
WIRE 352 512 112 512
WIRE 592 512 592 480
WIRE 592 512 352 512
WIRE -80 528 -80 512
WIRE 816 528 768 528
WIRE 944 528 896 528
WIRE 1056 528 1056 448
WIRE 1056 528 1024 528
WIRE -1088 576 -1088 512
WIRE -880 576 -880 512
WIRE 816 608 768 608
WIRE 944 608 896 608
WIRE 1056 608 1056 528
WIRE 1056 608 1024 608
WIRE -1040 736 -1072 736
WIRE -880 736 -912 736
WIRE -96 736 -256 736
WIRE 448 736 288 736
WIRE 992 736 832 736
WIRE -1072 752 -1072 736
WIRE -912 752 -912 736
WIRE -96 752 -240 752
WIRE -16 752 -32 752
WIRE 448 752 304 752
WIRE 528 752 512 752
WIRE 992 752 848 752
WIRE 1072 752 1056 752
WIRE -96 768 -112 768
WIRE 448 768 432 768
WIRE 992 768 976 768
WIRE -256 784 -256 736
WIRE -256 784 -272 784
WIRE -208 784 -256 784
WIRE -112 784 -112 768
WIRE -96 784 -112 784
WIRE -16 784 -16 752
WIRE 0 784 -16 784
WIRE 32 784 0 784
WIRE 288 784 288 736
WIRE 288 784 272 784
WIRE 336 784 288 784
WIRE 432 784 432 768
WIRE 448 784 432 784
WIRE 528 784 528 752
WIRE 544 784 528 784
WIRE 576 784 544 784
WIRE 832 784 832 736
WIRE 832 784 816 784
WIRE 880 784 832 784
WIRE 976 784 976 768
WIRE 992 784 976 784
WIRE 1072 784 1072 752
WIRE 1088 784 1072 784
WIRE 1120 784 1088 784
WIRE -208 800 -272 800
WIRE -128 800 -144 800
WIRE -112 800 -112 784
WIRE -96 800 -112 800
WIRE 32 800 -16 800
WIRE 128 800 96 800
WIRE 336 800 272 800
WIRE 416 800 400 800
WIRE 432 800 432 784
WIRE 448 800 432 800
WIRE 576 800 528 800
WIRE 672 800 640 800
WIRE 880 800 816 800
WIRE 960 800 944 800
WIRE 976 800 976 784
WIRE 992 800 976 800
WIRE 1120 800 1072 800
WIRE 1216 800 1184 800
WIRE -208 816 -224 816
WIRE -112 816 -112 800
WIRE -80 816 -80 800
WIRE -80 816 -112 816
WIRE 32 816 16 816
WIRE 336 816 320 816
WIRE 432 816 432 800
WIRE 464 816 464 800
WIRE 464 816 432 816
WIRE 576 816 560 816
WIRE 880 816 864 816
WIRE 976 816 976 800
WIRE 1008 816 1008 800
WIRE 1008 816 976 816
WIRE 1120 816 1104 816
WIRE -224 832 -224 816
WIRE -208 832 -224 832
WIRE -80 832 -80 816
WIRE 16 832 16 816
WIRE 32 832 16 832
WIRE 320 832 320 816
WIRE 336 832 320 832
WIRE 464 832 464 816
WIRE 560 832 560 816
WIRE 576 832 560 832
WIRE 864 832 864 816
WIRE 880 832 864 832
WIRE 1008 832 1008 816
WIRE 1104 832 1104 816
WIRE 1120 832 1104 832
WIRE -224 848 -224 832
WIRE -208 848 -224 848
WIRE 16 848 16 832
WIRE 32 848 16 848
WIRE 320 848 320 832
WIRE 336 848 320 848
WIRE 560 848 560 832
WIRE 576 848 560 848
WIRE 864 848 864 832
WIRE 880 848 864 848
WIRE 1104 848 1104 832
WIRE 1120 848 1104 848
WIRE -224 864 -224 848
WIRE -192 864 -192 848
WIRE -192 864 -224 864
WIRE -128 864 -128 800
WIRE -96 864 -128 864
WIRE 16 864 16 848
WIRE 48 864 48 848
WIRE 48 864 16 864
WIRE 320 864 320 848
WIRE 352 864 352 848
WIRE 352 864 320 864
WIRE 416 864 416 800
WIRE 448 864 416 864
WIRE 560 864 560 848
WIRE 592 864 592 848
WIRE 592 864 560 864
WIRE 864 864 864 848
WIRE 896 864 896 848
WIRE 896 864 864 864
WIRE 960 864 960 800
WIRE 992 864 960 864
WIRE 1104 864 1104 848
WIRE 1136 864 1136 848
WIRE 1136 864 1104 864
WIRE -1072 880 -1072 832
WIRE -912 880 -912 832
WIRE -192 880 -192 864
WIRE -96 880 -128 880
WIRE -16 880 -16 800
WIRE -16 880 -32 880
WIRE 48 880 48 864
WIRE 352 880 352 864
WIRE 448 880 416 880
WIRE 528 880 528 800
WIRE 528 880 512 880
WIRE 592 880 592 864
WIRE 896 880 896 864
WIRE 992 880 960 880
WIRE 1072 880 1072 800
WIRE 1072 880 1056 880
WIRE 1136 880 1136 864
WIRE -96 896 -112 896
WIRE 448 896 432 896
WIRE 992 896 976 896
WIRE -1040 912 -1072 912
WIRE -880 912 -912 912
WIRE -240 912 -240 752
WIRE -240 912 -272 912
WIRE -208 912 -240 912
WIRE -112 912 -112 896
WIRE -96 912 -112 912
WIRE -16 912 -32 912
WIRE 0 912 0 784
WIRE 32 912 0 912
WIRE 304 912 304 752
WIRE 304 912 272 912
WIRE 336 912 304 912
WIRE 432 912 432 896
WIRE 448 912 432 912
WIRE 528 912 512 912
WIRE 544 912 544 784
WIRE 576 912 544 912
WIRE 848 912 848 752
WIRE 848 912 816 912
WIRE 880 912 848 912
WIRE 976 912 976 896
WIRE 992 912 976 912
WIRE 1072 912 1056 912
WIRE 1088 912 1088 784
WIRE 1120 912 1088 912
WIRE -1072 928 -1072 912
WIRE -912 928 -912 912
WIRE -208 928 -272 928
WIRE -128 928 -128 880
WIRE -128 928 -144 928
WIRE -112 928 -112 912
WIRE -96 928 -112 928
WIRE -16 928 -16 912
WIRE 32 928 -16 928
WIRE 128 928 96 928
WIRE 336 928 272 928
WIRE 416 928 416 880
WIRE 416 928 400 928
WIRE 432 928 432 912
WIRE 448 928 432 928
WIRE 528 928 528 912
WIRE 576 928 528 928
WIRE 672 928 640 928
WIRE 880 928 816 928
WIRE 960 928 960 880
WIRE 960 928 944 928
WIRE 976 928 976 912
WIRE 992 928 976 928
WIRE 1072 928 1072 912
WIRE 1120 928 1072 928
WIRE 1216 928 1184 928
WIRE -208 944 -224 944
WIRE -112 944 -112 928
WIRE -80 944 -80 928
WIRE -80 944 -112 944
WIRE 32 944 16 944
WIRE 336 944 320 944
WIRE 432 944 432 928
WIRE 464 944 464 928
WIRE 464 944 432 944
WIRE 576 944 560 944
WIRE 880 944 864 944
WIRE 976 944 976 928
WIRE 1008 944 1008 928
WIRE 1008 944 976 944
WIRE 1120 944 1104 944
WIRE -224 960 -224 944
WIRE -208 960 -224 960
WIRE -80 960 -80 944
WIRE 16 960 16 944
WIRE 32 960 16 960
WIRE 320 960 320 944
WIRE 336 960 320 960
WIRE 464 960 464 944
WIRE 560 960 560 944
WIRE 576 960 560 960
WIRE 864 960 864 944
WIRE 880 960 864 960
WIRE 1008 960 1008 944
WIRE 1104 960 1104 944
WIRE 1120 960 1104 960
WIRE -224 976 -224 960
WIRE -208 976 -224 976
WIRE 16 976 16 960
WIRE 32 976 16 976
WIRE 320 976 320 960
WIRE 336 976 320 976
WIRE 560 976 560 960
WIRE 576 976 560 976
WIRE 864 976 864 960
WIRE 880 976 864 976
WIRE 1104 976 1104 960
WIRE 1120 976 1104 976
WIRE -224 992 -224 976
WIRE -192 992 -192 976
WIRE -192 992 -224 992
WIRE 16 992 16 976
WIRE 48 992 48 976
WIRE 48 992 16 992
WIRE 320 992 320 976
WIRE 352 992 352 976
WIRE 352 992 320 992
WIRE 560 992 560 976
WIRE 592 992 592 976
WIRE 592 992 560 992
WIRE 864 992 864 976
WIRE 896 992 896 976
WIRE 896 992 864 992
WIRE 1104 992 1104 976
WIRE 1136 992 1136 976
WIRE 1136 992 1104 992
WIRE -192 1008 -192 992
WIRE 48 1008 48 992
WIRE 352 1008 352 992
WIRE 592 1008 592 992
WIRE 896 1008 896 992
WIRE 1136 1008 1136 992
WIRE -1072 1056 -1072 1008
WIRE -912 1056 -912 1008
WIRE 208 1056 176 1056
WIRE -448 1072 -480 1072
WIRE 208 1072 176 1072
WIRE 304 1072 272 1072
WIRE -480 1088 -480 1072
WIRE 208 1088 192 1088
WIRE -1040 1104 -1072 1104
WIRE -880 1104 -912 1104
WIRE 192 1104 192 1088
WIRE 208 1104 192 1104
WIRE -1072 1120 -1072 1104
WIRE -912 1120 -912 1104
WIRE 192 1120 192 1104
WIRE 208 1120 192 1120
WIRE 192 1136 192 1120
WIRE 224 1136 224 1120
WIRE 224 1136 192 1136
WIRE 224 1152 224 1136
WIRE -480 1200 -480 1168
WIRE -1072 1248 -1072 1200
WIRE -912 1248 -912 1200
FLAG -1088 336 0
FLAG -880 336 0
FLAG -688 336 0
FLAG -880 576 0
FLAG -1088 576 0
FLAG -1056 160 ModP
FLAG -848 160 ModM
FLAG -656 160 Triangle
FLAG -1056 384 PWM_P
FLAG -848 384 PWM_M
FLAG 48 304 0
FLAG 48 464 0
FLAG 288 304 0
FLAG 288 464 0
FLAG 528 464 0
FLAG 528 304 0
FLAG -80 528 0
FLAG 224 352 A
FLAG 464 352 B
FLAG 704 352 C
FLAG 48 240 HA
FLAG 288 240 HB
FLAG 528 240 HC
FLAG 48 400 LA
FLAG 288 400 LB
FLAG 528 400 LC
FLAG 864 176 A
FLAG 768 448 A
FLAG 976 176 B
FLAG 768 528 B
FLAG 1088 176 C
FLAG 768 608 C
FLAG 928 288 Neutre
FLAG -1040 736 Seq_AH
FLAG -272 784 Seq_AH
FLAG -880 736 Seq_AL
FLAG -912 880 0
FLAG -1072 880 0
FLAG 272 784 Seq_BH
FLAG -1040 912 Seq_BH
FLAG -272 912 Seq_AL
FLAG -880 912 Seq_BL
FLAG 272 912 Seq_BL
FLAG 176 1072 Seq_BL
FLAG 304 1072 Seq_BL
FLAG -912 1056 0
FLAG -1072 1056 0
FLAG -1040 1104 Seq_CH
FLAG 816 784 Seq_CH
FLAG -880 1104 Seg_CL
FLAG 816 912 Seg_CL
FLAG -1072 1248 0
FLAG -912 1248 0
FLAG -480 1200 0
FLAG -448 1072 Seq_BL_Init
FLAG 176 1056 Seq_BL_Init
FLAG -272 800 PWM_P
FLAG 272 800 PWM_P
FLAG 816 800 PWM_P
FLAG -272 928 PWM_N
FLAG 272 928 PWM_N
FLAG 816 928 PWM_N
FLAG -192 880 0
FLAG -192 1008 0
FLAG -80 832 0
FLAG -80 960 0
FLAG 48 880 0
FLAG 48 1008 0
FLAG 0 784 EnA
FLAG 128 800 HA
FLAG 128 928 LA
FLAG 352 1008 0
FLAG 352 880 0
FLAG 464 832 0
FLAG 464 960 0
FLAG 592 1008 0
FLAG 592 880 0
FLAG 544 784 EnB
FLAG 672 800 HB
FLAG 672 928 LB
FLAG 1216 800 HC
FLAG 1216 928 LC
FLAG 896 1008 0
FLAG 1008 960 0
FLAG 1136 1008 0
FLAG 1136 880 0
FLAG 1008 832 0
FLAG 896 880 0
FLAG 1088 784 EnC
FLAG 224 1152 0
SYMBOL voltage -1088 192 R0
WINDOW 3 10 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value {0.5+0.5*{A}}
SYMBOL voltage -880 192 R0
WINDOW 3 5 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value {0.5-0.5*{A}}
SYMBOL voltage -688 192 R0
WINDOW 3 -142 125 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V3
SYMATTR Value PULSE(0 +1 0 {0.5/Freq} {0.5/Freq} 0 {1/Freq} 2000)
SYMBOL bv -1088 416 R0
WINDOW 3 -30 101 Left 2
SYMATTR InstName PWMP
SYMATTR Value V=if(V(ModP)>V(Triangle),1,0)
SYMBOL bv -880 416 R0
WINDOW 3 -202 129 Left 2
SYMATTR InstName PWMM
SYMATTR Value V=if(V(ModM)>V(Triangle),1,0)
SYMBOL sw 112 320 M180
WINDOW 0 2 17 Left 2
WINDOW 3 -20 97 Left 2
SYMATTR InstName S1
SYMATTR Value MYSW
SYMBOL sw 112 480 M180
WINDOW 0 5 16 Left 2
WINDOW 3 -24 98 Left 2
SYMATTR InstName S2
SYMATTR Value MYSW
SYMBOL sw 352 320 M180
WINDOW 3 -30 95 Left 2
SYMATTR InstName S3
SYMATTR Value MYSW
SYMBOL sw 352 480 M180
WINDOW 0 9 17 Left 2
WINDOW 3 -27 99 Left 2
SYMATTR InstName S4
SYMATTR Value MYSW
SYMBOL sw 592 320 M180
WINDOW 0 5 17 Left 2
WINDOW 3 -31 100 Left 2
SYMATTR InstName S5
SYMATTR Value MYSW
SYMBOL sw 592 480 M180
WINDOW 0 12 20 Left 2
WINDOW 3 -32 102 Left 2
SYMATTR InstName S6
SYMATTR Value MYSW
SYMBOL diode 224 288 R180
WINDOW 0 -19 63 Left 2
WINDOW 3 -35 7 Left 2
SYMATTR InstName D1
SYMATTR Value MyDiode
SYMBOL diode 224 448 R180
WINDOW 0 -21 64 Left 2
WINDOW 3 -48 9 Left 2
SYMATTR InstName D2
SYMATTR Value MyDiode
SYMBOL diode 464 448 R180
WINDOW 0 -18 69 Left 2
WINDOW 3 -47 6 Left 2
SYMATTR InstName D3
SYMATTR Value MyDiode
SYMBOL diode 464 288 R180
WINDOW 0 -22 66 Left 2
WINDOW 3 -42 8 Left 2
SYMATTR InstName D4
SYMATTR Value MyDiode
SYMBOL diode 704 288 R180
WINDOW 0 -19 64 Left 2
WINDOW 3 -28 6 Left 2
SYMATTR InstName D5
SYMATTR Value MyDiode
SYMBOL diode 704 448 R180
WINDOW 0 -20 62 Left 2
WINDOW 3 -27 6 Left 2
SYMATTR InstName D6
SYMATTR Value MyDiode
SYMBOL voltage -80 288 R0
SYMATTR InstName UBatt
SYMATTR Value 24
SYMBOL res 848 176 R0
WINDOW 3 38 77 Left 2
SYMATTR InstName R1
SYMATTR Value 10k
SYMBOL res 960 176 R0
SYMATTR InstName R2
SYMATTR Value 10k
SYMBOL res 1072 176 R0
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL res 912 432 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 4
SYMBOL res 912 512 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value 4
SYMBOL res 912 592 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R6
SYMATTR Value 4
SYMBOL ind2 1040 432 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L1
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 512 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L2
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 592 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L3
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL voltage -1072 736 R0
WINDOW 0 24 28 Left 2
WINDOW 3 -41 105 Left 2
SYMATTR InstName V5
SYMATTR Value PULSE(0 1 {0*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 912 R0
WINDOW 0 27 28 Left 2
WINDOW 3 -42 109 Left 2
SYMATTR InstName V6
SYMATTR Value PULSE(0 1 {2*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 1104 R0
WINDOW 0 25 23 Left 2
WINDOW 3 -44 108 Left 2
SYMATTR InstName V7
SYMATTR Value PULSE(0 1 {4*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 736 R0
WINDOW 0 24 25 Left 2
WINDOW 3 -137 130 Left 2
SYMATTR InstName V8
SYMATTR Value PULSE(0 1 {3*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 912 R0
WINDOW 0 24 26 Left 2
WINDOW 3 -136 127 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V9
SYMATTR Value PULSE(0 1 {5*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 1104 R0
WINDOW 0 24 23 Left 2
WINDOW 3 -135 127 Left 2
SYMATTR InstName V10
SYMATTR Value PULSE(0 1 {1*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -480 1072 R0
WINDOW 0 21 26 Left 2
WINDOW 3 -148 102 Left 2
SYMATTR InstName V11
SYMATTR Value PULSE(0 1 0 1n 1n {T_Bloc} {1000*Periode})
SYMBOL Digital\\and -176 752 R0
WINDOW 0 2 25 Left 2
SYMATTR InstName A1
SYMBOL Digital\\and -176 880 R0
WINDOW 0 7 27 Left 2
SYMATTR InstName A2
SYMBOL Digital\\and 64 752 R0
SYMATTR InstName A3
SYMBOL Digital\\and 64 880 R0
SYMATTR InstName A4
SYMBOL Digital\\and 368 752 R0
WINDOW 0 12 27 Left 2
SYMATTR InstName A5
SYMBOL Digital\\and 368 880 R0
WINDOW 0 8 30 Left 2
SYMATTR InstName A6
SYMBOL Digital\\and 608 752 R0
WINDOW 0 11 29 Left 2
SYMATTR InstName A7
SYMBOL Digital\\and 608 880 R0
WINDOW 0 10 30 Left 2
SYMATTR InstName A8
SYMBOL Digital\\and 912 752 R0
WINDOW 0 9 31 Left 2
SYMATTR InstName A9
SYMBOL Digital\\and 912 880 R0
WINDOW 0 7 29 Left 2
SYMATTR InstName A10
SYMBOL Digital\\and 1152 752 R0
WINDOW 0 5 27 Left 2
SYMATTR InstName A11
SYMBOL Digital\\and 1152 880 R0
WINDOW 0 10 32 Left 2
SYMATTR InstName A12
SYMBOL Digital\\or -64 704 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A13
SYMBOL Digital\\or -64 832 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A14
SYMBOL Digital\\or 480 704 R0
SYMATTR InstName A15
SYMBOL Digital\\or 480 832 R0
SYMATTR InstName A16
SYMBOL Digital\\or 1024 704 R0
WINDOW 0 -4 24 Left 2
SYMATTR InstName A17
SYMBOL Digital\\or 1024 832 R0
WINDOW 0 0 26 Left 2
SYMATTR InstName A18
SYMBOL Digital\\or 240 1024 R0
WINDOW 0 -3 25 Left 2
SYMATTR InstName A19
TEXT -1120 96 Left 5 ;Génération des PWM + et -
TEXT -720 392 Left 2 !.param Freq = 25k T_bloc = 1m Periode = 6m
TEXT -720 416 Left 2 !.tran 0 40m 0 200n
TEXT -720 456 Left 2 !.param Ffond=100
TEXT -720 496 Left 2 !.param A=1
TEXT -720 520 Left 2 !.param Tension_CC=24
TEXT -720 560 Left 2 !;op 0 5m 0 20n ulc
TEXT -160 656 VLeft 2 ;---------------------------------------------------------------
TEXT -144 88 Left 5 ;Onduleur triphasé
TEXT -144 128 Left 2 !.model MyDiode D(Ron=0.01, Roff=1M, Vfwd=0.6, Vrev=50, Epsilon 0.05)
TEXT -144 152 Left 2 !.model MYSW SW(Ron=1m, Roff=1M, Vt=0.5)
TEXT 736 656 VLeft 2 ;--------------------------------------------------------------
TEXT 752 88 Left 4 ;Reconstruction passive neutre\n(interne au wattmetre)
TEXT 752 344 Left 4 ;Transformateur triphase\n= stator sans aimants rotor
TEXT 736 312 Left 2 ;---------------------------------------------------------------
TEXT 1088 424 Left 2 !K L1 L2 L3 0.9
TEXT -1128 656 Left 2 ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TEXT -1120 696 Left 5 ;Commande par bloc (BO)
TEXT 616 1232 Left 4 ;Merci ŕ M Rocacher pour les circuits

730
circuits/lotec/Spice/v1.asc Normal file
View file

@ -0,0 +1,730 @@
Version 4
SHEET 1 1408 1276
WIRE -1056 160 -1088 160
WIRE -848 160 -880 160
WIRE -656 160 -688 160
WIRE 112 176 -80 176
WIRE 352 176 112 176
WIRE 592 176 352 176
WIRE 864 192 864 176
WIRE 976 192 976 176
WIRE 1088 192 1088 176
WIRE -1088 208 -1088 160
WIRE -880 208 -880 160
WIRE -688 208 -688 160
WIRE 112 208 112 176
WIRE 208 208 112 208
WIRE 352 208 352 176
WIRE 448 208 352 208
WIRE 592 208 592 176
WIRE 688 208 592 208
WIRE 112 224 112 208
WIRE 208 224 208 208
WIRE 352 224 352 208
WIRE 448 224 448 208
WIRE 592 224 592 208
WIRE 688 224 688 208
WIRE 64 240 48 240
WIRE 304 240 288 240
WIRE 544 240 528 240
WIRE 64 288 48 288
WIRE 304 288 288 288
WIRE 544 288 528 288
WIRE 864 288 864 272
WIRE 928 288 864 288
WIRE 976 288 976 272
WIRE 976 288 928 288
WIRE 1088 288 1088 272
WIRE 1088 288 976 288
WIRE -80 304 -80 176
WIRE 48 304 48 288
WIRE 288 304 288 288
WIRE 528 304 528 288
WIRE 112 320 112 304
WIRE 208 320 208 288
WIRE 208 320 112 320
WIRE 352 320 352 304
WIRE 448 320 448 288
WIRE 448 320 352 320
WIRE 592 320 592 304
WIRE 688 320 688 288
WIRE 688 320 592 320
WIRE -1088 336 -1088 288
WIRE -880 336 -880 288
WIRE -688 336 -688 288
WIRE 112 352 112 320
WIRE 224 352 112 352
WIRE 352 352 352 320
WIRE 464 352 352 352
WIRE 592 352 592 320
WIRE 704 352 592 352
WIRE 112 368 112 352
WIRE 208 368 112 368
WIRE 352 368 352 352
WIRE 448 368 352 368
WIRE 592 368 592 352
WIRE 688 368 592 368
WIRE -1056 384 -1088 384
WIRE -848 384 -880 384
WIRE 112 384 112 368
WIRE 208 384 208 368
WIRE 352 384 352 368
WIRE 448 384 448 368
WIRE 592 384 592 368
WIRE 688 384 688 368
WIRE 64 400 48 400
WIRE 304 400 288 400
WIRE 544 400 528 400
WIRE -1088 432 -1088 384
WIRE -880 432 -880 384
WIRE 64 448 48 448
WIRE 304 448 288 448
WIRE 544 448 528 448
WIRE 816 448 768 448
WIRE 944 448 896 448
WIRE 1056 448 1024 448
WIRE 48 464 48 448
WIRE 288 464 288 448
WIRE 528 464 528 448
WIRE 112 480 112 464
WIRE 208 480 208 448
WIRE 208 480 112 480
WIRE 352 480 352 464
WIRE 448 480 448 448
WIRE 448 480 352 480
WIRE 592 480 592 464
WIRE 688 480 688 448
WIRE 688 480 592 480
WIRE -80 512 -80 384
WIRE 112 512 112 480
WIRE 112 512 -80 512
WIRE 352 512 352 480
WIRE 352 512 112 512
WIRE 592 512 592 480
WIRE 592 512 352 512
WIRE -80 528 -80 512
WIRE 816 528 768 528
WIRE 944 528 896 528
WIRE 1056 528 1056 448
WIRE 1056 528 1024 528
WIRE -1088 576 -1088 512
WIRE -880 576 -880 512
WIRE 816 608 768 608
WIRE 944 608 896 608
WIRE 1056 608 1056 528
WIRE 1056 608 1024 608
WIRE -1040 736 -1072 736
WIRE -880 736 -912 736
WIRE -96 736 -256 736
WIRE 448 736 288 736
WIRE 992 736 832 736
WIRE -1072 752 -1072 736
WIRE -912 752 -912 736
WIRE -96 752 -240 752
WIRE -16 752 -32 752
WIRE 448 752 304 752
WIRE 528 752 512 752
WIRE 992 752 848 752
WIRE 1072 752 1056 752
WIRE -96 768 -112 768
WIRE 448 768 432 768
WIRE 992 768 976 768
WIRE -256 784 -256 736
WIRE -256 784 -272 784
WIRE -208 784 -256 784
WIRE -112 784 -112 768
WIRE -96 784 -112 784
WIRE -16 784 -16 752
WIRE 0 784 -16 784
WIRE 32 784 0 784
WIRE 288 784 288 736
WIRE 288 784 272 784
WIRE 336 784 288 784
WIRE 432 784 432 768
WIRE 448 784 432 784
WIRE 528 784 528 752
WIRE 544 784 528 784
WIRE 576 784 544 784
WIRE 832 784 832 736
WIRE 832 784 816 784
WIRE 880 784 832 784
WIRE 976 784 976 768
WIRE 992 784 976 784
WIRE 1072 784 1072 752
WIRE 1088 784 1072 784
WIRE 1120 784 1088 784
WIRE -208 800 -272 800
WIRE -128 800 -144 800
WIRE -112 800 -112 784
WIRE -96 800 -112 800
WIRE 32 800 -16 800
WIRE 128 800 96 800
WIRE 336 800 272 800
WIRE 416 800 400 800
WIRE 432 800 432 784
WIRE 448 800 432 800
WIRE 576 800 528 800
WIRE 672 800 640 800
WIRE 880 800 816 800
WIRE 960 800 944 800
WIRE 976 800 976 784
WIRE 992 800 976 800
WIRE 1120 800 1072 800
WIRE 1216 800 1184 800
WIRE -208 816 -224 816
WIRE -112 816 -112 800
WIRE -80 816 -80 800
WIRE -80 816 -112 816
WIRE 32 816 16 816
WIRE 336 816 320 816
WIRE 432 816 432 800
WIRE 464 816 464 800
WIRE 464 816 432 816
WIRE 576 816 560 816
WIRE 880 816 864 816
WIRE 976 816 976 800
WIRE 1008 816 1008 800
WIRE 1008 816 976 816
WIRE 1120 816 1104 816
WIRE -224 832 -224 816
WIRE -208 832 -224 832
WIRE -80 832 -80 816
WIRE 16 832 16 816
WIRE 32 832 16 832
WIRE 320 832 320 816
WIRE 336 832 320 832
WIRE 464 832 464 816
WIRE 560 832 560 816
WIRE 576 832 560 832
WIRE 864 832 864 816
WIRE 880 832 864 832
WIRE 1008 832 1008 816
WIRE 1104 832 1104 816
WIRE 1120 832 1104 832
WIRE -224 848 -224 832
WIRE -208 848 -224 848
WIRE 16 848 16 832
WIRE 32 848 16 848
WIRE 320 848 320 832
WIRE 336 848 320 848
WIRE 560 848 560 832
WIRE 576 848 560 848
WIRE 864 848 864 832
WIRE 880 848 864 848
WIRE 1104 848 1104 832
WIRE 1120 848 1104 848
WIRE -224 864 -224 848
WIRE -192 864 -192 848
WIRE -192 864 -224 864
WIRE -128 864 -128 800
WIRE -96 864 -128 864
WIRE 16 864 16 848
WIRE 48 864 48 848
WIRE 48 864 16 864
WIRE 320 864 320 848
WIRE 352 864 352 848
WIRE 352 864 320 864
WIRE 416 864 416 800
WIRE 448 864 416 864
WIRE 560 864 560 848
WIRE 592 864 592 848
WIRE 592 864 560 864
WIRE 864 864 864 848
WIRE 896 864 896 848
WIRE 896 864 864 864
WIRE 960 864 960 800
WIRE 992 864 960 864
WIRE 1104 864 1104 848
WIRE 1136 864 1136 848
WIRE 1136 864 1104 864
WIRE -1072 880 -1072 832
WIRE -912 880 -912 832
WIRE -192 880 -192 864
WIRE -96 880 -128 880
WIRE -16 880 -16 800
WIRE -16 880 -32 880
WIRE 48 880 48 864
WIRE 352 880 352 864
WIRE 448 880 416 880
WIRE 528 880 528 800
WIRE 528 880 512 880
WIRE 592 880 592 864
WIRE 896 880 896 864
WIRE 992 880 960 880
WIRE 1072 880 1072 800
WIRE 1072 880 1056 880
WIRE 1136 880 1136 864
WIRE -96 896 -112 896
WIRE 448 896 432 896
WIRE 992 896 976 896
WIRE -1040 912 -1072 912
WIRE -880 912 -912 912
WIRE -240 912 -240 752
WIRE -240 912 -272 912
WIRE -208 912 -240 912
WIRE -112 912 -112 896
WIRE -96 912 -112 912
WIRE -16 912 -32 912
WIRE 0 912 0 784
WIRE 32 912 0 912
WIRE 304 912 304 752
WIRE 304 912 272 912
WIRE 336 912 304 912
WIRE 432 912 432 896
WIRE 448 912 432 912
WIRE 528 912 512 912
WIRE 544 912 544 784
WIRE 576 912 544 912
WIRE 848 912 848 752
WIRE 848 912 816 912
WIRE 880 912 848 912
WIRE 976 912 976 896
WIRE 992 912 976 912
WIRE 1072 912 1056 912
WIRE 1088 912 1088 784
WIRE 1120 912 1088 912
WIRE -1072 928 -1072 912
WIRE -912 928 -912 912
WIRE -208 928 -272 928
WIRE -128 928 -128 880
WIRE -128 928 -144 928
WIRE -112 928 -112 912
WIRE -96 928 -112 928
WIRE -16 928 -16 912
WIRE 32 928 -16 928
WIRE 128 928 96 928
WIRE 336 928 272 928
WIRE 416 928 416 880
WIRE 416 928 400 928
WIRE 432 928 432 912
WIRE 448 928 432 928
WIRE 528 928 528 912
WIRE 576 928 528 928
WIRE 672 928 640 928
WIRE 880 928 816 928
WIRE 960 928 960 880
WIRE 960 928 944 928
WIRE 976 928 976 912
WIRE 992 928 976 928
WIRE 1072 928 1072 912
WIRE 1120 928 1072 928
WIRE 1216 928 1184 928
WIRE -208 944 -224 944
WIRE -112 944 -112 928
WIRE -80 944 -80 928
WIRE -80 944 -112 944
WIRE 32 944 16 944
WIRE 336 944 320 944
WIRE 432 944 432 928
WIRE 464 944 464 928
WIRE 464 944 432 944
WIRE 576 944 560 944
WIRE 880 944 864 944
WIRE 976 944 976 928
WIRE 1008 944 1008 928
WIRE 1008 944 976 944
WIRE 1120 944 1104 944
WIRE -224 960 -224 944
WIRE -208 960 -224 960
WIRE -80 960 -80 944
WIRE 16 960 16 944
WIRE 32 960 16 960
WIRE 320 960 320 944
WIRE 336 960 320 960
WIRE 464 960 464 944
WIRE 560 960 560 944
WIRE 576 960 560 960
WIRE 864 960 864 944
WIRE 880 960 864 960
WIRE 1008 960 1008 944
WIRE 1104 960 1104 944
WIRE 1120 960 1104 960
WIRE -224 976 -224 960
WIRE -208 976 -224 976
WIRE 16 976 16 960
WIRE 32 976 16 976
WIRE 320 976 320 960
WIRE 336 976 320 976
WIRE 560 976 560 960
WIRE 576 976 560 976
WIRE 864 976 864 960
WIRE 880 976 864 976
WIRE 1104 976 1104 960
WIRE 1120 976 1104 976
WIRE -224 992 -224 976
WIRE -192 992 -192 976
WIRE -192 992 -224 992
WIRE 16 992 16 976
WIRE 48 992 48 976
WIRE 48 992 16 992
WIRE 320 992 320 976
WIRE 352 992 352 976
WIRE 352 992 320 992
WIRE 560 992 560 976
WIRE 592 992 592 976
WIRE 592 992 560 992
WIRE 864 992 864 976
WIRE 896 992 896 976
WIRE 896 992 864 992
WIRE 1104 992 1104 976
WIRE 1136 992 1136 976
WIRE 1136 992 1104 992
WIRE -192 1008 -192 992
WIRE 48 1008 48 992
WIRE 352 1008 352 992
WIRE 592 1008 592 992
WIRE 896 1008 896 992
WIRE 1136 1008 1136 992
WIRE -1072 1056 -1072 1008
WIRE -912 1056 -912 1008
WIRE 208 1056 176 1056
WIRE -448 1072 -480 1072
WIRE 208 1072 176 1072
WIRE 304 1072 272 1072
WIRE -480 1088 -480 1072
WIRE 208 1088 192 1088
WIRE -1040 1104 -1072 1104
WIRE -880 1104 -912 1104
WIRE 192 1104 192 1088
WIRE 208 1104 192 1104
WIRE -1072 1120 -1072 1104
WIRE -912 1120 -912 1104
WIRE 192 1120 192 1104
WIRE 208 1120 192 1120
WIRE 192 1136 192 1120
WIRE 224 1136 224 1120
WIRE 224 1136 192 1136
WIRE 224 1152 224 1136
WIRE -480 1200 -480 1168
WIRE -1072 1248 -1072 1200
WIRE -912 1248 -912 1200
FLAG -1088 336 0
FLAG -880 336 0
FLAG -688 336 0
FLAG -880 576 0
FLAG -1088 576 0
FLAG -1056 160 ModP
FLAG -848 160 ModM
FLAG -656 160 Triangle
FLAG -1056 384 PWM_P
FLAG -848 384 PWM_N
FLAG 48 304 0
FLAG 48 464 0
FLAG 288 304 0
FLAG 288 464 0
FLAG 528 464 0
FLAG 528 304 0
FLAG -80 528 0
FLAG 224 352 A
FLAG 464 352 B
FLAG 704 352 C
FLAG 48 240 HA
FLAG 288 240 HB
FLAG 528 240 HC
FLAG 48 400 LA
FLAG 288 400 LB
FLAG 528 400 LC
FLAG 864 176 A
FLAG 768 448 A
FLAG 976 176 B
FLAG 768 528 B
FLAG 1088 176 C
FLAG 768 608 C
FLAG 928 288 Neutre
FLAG -1040 736 Seq_AH
FLAG -272 784 Seq_AH
FLAG -880 736 Seq_AL
FLAG -912 880 0
FLAG -1072 880 0
FLAG 272 784 Seq_BH
FLAG -1040 912 Seq_BH
FLAG -272 912 Seq_AL
FLAG -880 912 Seq_BL
FLAG 272 912 Seq_BL
FLAG 176 1072 Seq_BL
FLAG 304 1072 Seq_BL
FLAG -912 1056 0
FLAG -1072 1056 0
FLAG -1040 1104 Seq_CH
FLAG 816 784 Seq_CH
FLAG -880 1104 Seg_CL
FLAG 816 912 Seg_CL
FLAG -1072 1248 0
FLAG -912 1248 0
FLAG -480 1200 0
FLAG -448 1072 Seq_BL_Init
FLAG 176 1056 Seq_BL_Init
FLAG -272 800 PWM_P
FLAG 272 800 PWM_P
FLAG 816 800 PWM_P
FLAG -272 928 PWM_N
FLAG 272 928 PWM_N
FLAG 816 928 PWM_N
FLAG -192 880 0
FLAG -192 1008 0
FLAG -80 832 0
FLAG -80 960 0
FLAG 48 880 0
FLAG 48 1008 0
FLAG 0 784 EnA
FLAG 128 800 HA
FLAG 128 928 LA
FLAG 352 1008 0
FLAG 352 880 0
FLAG 464 832 0
FLAG 464 960 0
FLAG 592 1008 0
FLAG 592 880 0
FLAG 544 784 EnB
FLAG 672 800 HB
FLAG 672 928 LB
FLAG 1216 800 HC
FLAG 1216 928 LC
FLAG 896 1008 0
FLAG 1008 960 0
FLAG 1136 1008 0
FLAG 1136 880 0
FLAG 1008 832 0
FLAG 896 880 0
FLAG 1088 784 EnC
FLAG 224 1152 0
SYMBOL voltage -1088 192 R0
WINDOW 3 10 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value {0.5+0.5*{A}}
SYMATTR InstName V1
SYMBOL voltage -880 192 R0
WINDOW 3 5 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value {0.5-0.5*{A}}
SYMATTR InstName V2
SYMBOL voltage -688 192 R0
WINDOW 3 -142 125 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value PULSE(0 +1 0 {0.5/Freq} {0.5/Freq} 0 {1/Freq} 2000)
SYMATTR InstName V3
SYMBOL bv -1088 416 R0
WINDOW 3 -30 101 Left 2
SYMATTR Value V=if(V(ModP)>V(Triangle),1,0)
SYMATTR InstName PWMP
SYMBOL bv -880 416 R0
WINDOW 3 -202 129 Left 2
SYMATTR Value V=if(V(ModM)>V(Triangle),1,0)
SYMATTR InstName PWMM
SYMBOL sw 112 320 M180
WINDOW 0 2 17 Left 2
WINDOW 3 -20 97 Left 2
SYMATTR InstName S1
SYMATTR Value MYSW
SYMBOL sw 112 480 M180
WINDOW 0 5 16 Left 2
WINDOW 3 -24 98 Left 2
SYMATTR InstName S2
SYMATTR Value MYSW
SYMBOL sw 352 320 M180
WINDOW 3 -30 95 Left 2
SYMATTR Value MYSW
SYMATTR InstName S3
SYMBOL sw 352 480 M180
WINDOW 0 9 17 Left 2
WINDOW 3 -27 99 Left 2
SYMATTR InstName S4
SYMATTR Value MYSW
SYMBOL sw 592 320 M180
WINDOW 0 5 17 Left 2
WINDOW 3 -31 100 Left 2
SYMATTR InstName S5
SYMATTR Value MYSW
SYMBOL sw 592 480 M180
WINDOW 0 12 20 Left 2
WINDOW 3 -32 102 Left 2
SYMATTR InstName S6
SYMATTR Value MYSW
SYMBOL diode 224 288 R180
WINDOW 0 -19 63 Left 2
WINDOW 3 -35 7 Left 2
SYMATTR InstName D1
SYMATTR Value MyDiode
SYMBOL diode 224 448 R180
WINDOW 0 -21 64 Left 2
WINDOW 3 -48 9 Left 2
SYMATTR InstName D2
SYMATTR Value MyDiode
SYMBOL diode 464 448 R180
WINDOW 0 -18 69 Left 2
WINDOW 3 -47 6 Left 2
SYMATTR InstName D3
SYMATTR Value MyDiode
SYMBOL diode 464 288 R180
WINDOW 0 -22 66 Left 2
WINDOW 3 -42 8 Left 2
SYMATTR InstName D4
SYMATTR Value MyDiode
SYMBOL diode 704 288 R180
WINDOW 0 -19 64 Left 2
WINDOW 3 -28 6 Left 2
SYMATTR InstName D5
SYMATTR Value MyDiode
SYMBOL diode 704 448 R180
WINDOW 0 -20 62 Left 2
WINDOW 3 -27 6 Left 2
SYMATTR InstName D6
SYMATTR Value MyDiode
SYMBOL voltage -80 288 R0
SYMATTR InstName UBatt
SYMATTR Value 24
SYMBOL res 848 176 R0
WINDOW 3 38 77 Left 2
SYMATTR Value 10k
SYMATTR InstName R1
SYMBOL res 960 176 R0
SYMATTR InstName R2
SYMATTR Value 10k
SYMBOL res 1072 176 R0
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL res 912 432 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 4
SYMBOL res 912 512 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value 4
SYMBOL res 912 592 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R6
SYMATTR Value 4
SYMBOL ind2 1040 432 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L1
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 512 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L2
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 592 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L3
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL voltage -1072 736 R0
WINDOW 0 24 28 Left 2
WINDOW 3 -41 105 Left 2
SYMATTR InstName V5
SYMATTR Value PULSE(0 1 {0*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 912 R0
WINDOW 0 27 28 Left 2
WINDOW 3 -42 109 Left 2
SYMATTR InstName V6
SYMATTR Value PULSE(0 1 {2*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 1104 R0
WINDOW 0 25 23 Left 2
WINDOW 3 -44 108 Left 2
SYMATTR InstName V7
SYMATTR Value PULSE(0 1 {4*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 736 R0
WINDOW 0 24 25 Left 2
WINDOW 3 -137 130 Left 2
SYMATTR InstName V8
SYMATTR Value PULSE(0 1 {3*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 912 R0
WINDOW 0 24 26 Left 2
WINDOW 3 -136 127 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V9
SYMATTR Value PULSE(0 1 {5*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 1104 R0
WINDOW 0 24 23 Left 2
WINDOW 3 -135 127 Left 2
SYMATTR InstName V10
SYMATTR Value PULSE(0 1 {1*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -480 1072 R0
WINDOW 0 21 26 Left 2
WINDOW 3 -148 102 Left 2
SYMATTR InstName V11
SYMATTR Value PULSE(0 1 0 1n 1n {T_Bloc} {1000*Periode})
SYMBOL Digital\\and -176 752 R0
WINDOW 0 2 25 Left 2
SYMATTR InstName A1
SYMBOL Digital\\and -176 880 R0
WINDOW 0 7 27 Left 2
SYMATTR InstName A2
SYMBOL Digital\\and 64 752 R0
SYMATTR InstName A3
SYMBOL Digital\\and 64 880 R0
SYMATTR InstName A4
SYMBOL Digital\\and 368 752 R0
WINDOW 0 12 27 Left 2
SYMATTR InstName A5
SYMBOL Digital\\and 368 880 R0
WINDOW 0 8 30 Left 2
SYMATTR InstName A6
SYMBOL Digital\\and 608 752 R0
WINDOW 0 11 29 Left 2
SYMATTR InstName A7
SYMBOL Digital\\and 608 880 R0
WINDOW 0 10 30 Left 2
SYMATTR InstName A8
SYMBOL Digital\\and 912 752 R0
WINDOW 0 9 31 Left 2
SYMATTR InstName A9
SYMBOL Digital\\and 912 880 R0
WINDOW 0 7 29 Left 2
SYMATTR InstName A10
SYMBOL Digital\\and 1152 752 R0
WINDOW 0 5 27 Left 2
SYMATTR InstName A11
SYMBOL Digital\\and 1152 880 R0
WINDOW 0 10 32 Left 2
SYMATTR InstName A12
SYMBOL Digital\\or -64 704 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A13
SYMBOL Digital\\or -64 832 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A14
SYMBOL Digital\\or 480 704 R0
SYMATTR InstName A15
SYMBOL Digital\\or 480 832 R0
SYMATTR InstName A16
SYMBOL Digital\\or 1024 704 R0
WINDOW 0 -4 24 Left 2
SYMATTR InstName A17
SYMBOL Digital\\or 1024 832 R0
WINDOW 0 0 26 Left 2
SYMATTR InstName A18
SYMBOL Digital\\or 240 1024 R0
WINDOW 0 -3 25 Left 2
SYMATTR InstName A19
TEXT -1120 96 Left 5 ;Génération des PWM + et -
TEXT -720 392 Left 2 !.param Freq = 25k T_bloc = 1m Periode = 6m
TEXT -720 416 Left 2 !.tran 0 40m 0 200n
TEXT -720 456 Left 2 !.param Ffond=100
TEXT -720 496 Left 2 !.param A=0.9
TEXT -720 520 Left 2 !.param Tension_CC=24
TEXT -720 560 Left 2 !;op 0 5m 0 20n ulc
TEXT -160 656 VLeft 2 ;---------------------------------------------------------------
TEXT -144 88 Left 5 ;Onduleur triphasé
TEXT -144 128 Left 2 !.model MyDiode D(Ron=0.01, Roff=1Meg, Vfwd=0.6, Vrev=50, Epsilon 0.05)
TEXT -144 152 Left 2 !.model MYSW SW(Ron=1m Roff=1Meg Vt=0.5)
TEXT 736 656 VLeft 2 ;--------------------------------------------------------------
TEXT 752 88 Left 4 ;Reconstruction passive neutre\n(interne au wattmetre)
TEXT 752 344 Left 4 ;Transformateur triphase\n= stator sans aimants rotor
TEXT 736 312 Left 2 ;---------------------------------------------------------------
TEXT 1088 424 Left 2 !K L1 L2 L3 0.9
TEXT -1128 656 Left 2 ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TEXT -1120 696 Left 5 ;Commande par bloc (BO)
TEXT 616 1232 Left 4 ;Merci ŕ M Rocacher pour les circuits

701
circuits/lotec/Spice/v2.asc Normal file
View file

@ -0,0 +1,701 @@
Version 4
SHEET 1 1408 1276
WIRE -1056 160 -1088 160
WIRE -848 160 -880 160
WIRE -656 160 -688 160
WIRE 112 176 -80 176
WIRE 352 176 112 176
WIRE 592 176 352 176
WIRE 864 192 864 176
WIRE 976 192 976 176
WIRE 1088 192 1088 176
WIRE -1088 208 -1088 160
WIRE -880 208 -880 160
WIRE -688 208 -688 160
WIRE 112 208 112 176
WIRE 208 208 112 208
WIRE 352 208 352 176
WIRE 448 208 352 208
WIRE 592 208 592 176
WIRE 688 208 592 208
WIRE 208 224 208 208
WIRE 448 224 448 208
WIRE 688 224 688 208
WIRE 864 288 864 272
WIRE 928 288 864 288
WIRE 976 288 976 272
WIRE 976 288 928 288
WIRE 1088 288 1088 272
WIRE 1088 288 976 288
WIRE -80 304 -80 176
WIRE 112 320 112 304
WIRE 208 320 208 288
WIRE 208 320 112 320
WIRE 352 320 352 304
WIRE 448 320 448 288
WIRE 448 320 352 320
WIRE 592 320 592 304
WIRE 688 320 688 288
WIRE 688 320 592 320
WIRE -1088 336 -1088 288
WIRE -880 336 -880 288
WIRE -688 336 -688 288
WIRE 112 352 112 320
WIRE 224 352 112 352
WIRE 352 352 352 320
WIRE 464 352 352 352
WIRE 592 352 592 320
WIRE 704 352 592 352
WIRE 112 368 112 352
WIRE 208 368 112 368
WIRE 352 368 352 352
WIRE 448 368 352 368
WIRE 592 368 592 352
WIRE 688 368 592 368
WIRE -1056 384 -1088 384
WIRE -848 384 -880 384
WIRE 208 384 208 368
WIRE 448 384 448 368
WIRE 688 384 688 368
WIRE -1088 432 -1088 384
WIRE -880 432 -880 384
WIRE 64 448 48 448
WIRE 304 448 288 448
WIRE 544 448 528 448
WIRE 816 448 768 448
WIRE 944 448 896 448
WIRE 1056 448 1024 448
WIRE 112 480 112 464
WIRE 208 480 208 448
WIRE 208 480 112 480
WIRE 352 480 352 464
WIRE 448 480 448 448
WIRE 448 480 352 480
WIRE 592 480 592 464
WIRE 688 480 688 448
WIRE 688 480 592 480
WIRE -80 512 -80 384
WIRE 112 512 112 480
WIRE 112 512 -80 512
WIRE 352 512 352 480
WIRE 352 512 112 512
WIRE 592 512 592 480
WIRE 592 512 352 512
WIRE -80 528 -80 512
WIRE 816 528 768 528
WIRE 944 528 896 528
WIRE 1056 528 1056 448
WIRE 1056 528 1024 528
WIRE -1088 576 -1088 512
WIRE -880 576 -880 512
WIRE 816 608 768 608
WIRE 944 608 896 608
WIRE 1056 608 1056 528
WIRE 1056 608 1024 608
WIRE -1040 736 -1072 736
WIRE -880 736 -912 736
WIRE -96 736 -256 736
WIRE 448 736 288 736
WIRE 992 736 832 736
WIRE -1072 752 -1072 736
WIRE -912 752 -912 736
WIRE -96 752 -240 752
WIRE -16 752 -32 752
WIRE 448 752 304 752
WIRE 528 752 512 752
WIRE 992 752 848 752
WIRE 1072 752 1056 752
WIRE -96 768 -112 768
WIRE 448 768 432 768
WIRE 992 768 976 768
WIRE -256 784 -256 736
WIRE -256 784 -272 784
WIRE -208 784 -256 784
WIRE -112 784 -112 768
WIRE -96 784 -112 784
WIRE -16 784 -16 752
WIRE 0 784 -16 784
WIRE 32 784 0 784
WIRE 288 784 288 736
WIRE 288 784 272 784
WIRE 336 784 288 784
WIRE 432 784 432 768
WIRE 448 784 432 784
WIRE 528 784 528 752
WIRE 544 784 528 784
WIRE 576 784 544 784
WIRE 832 784 832 736
WIRE 832 784 816 784
WIRE 880 784 832 784
WIRE 976 784 976 768
WIRE 992 784 976 784
WIRE 1072 784 1072 752
WIRE 1088 784 1072 784
WIRE 1120 784 1088 784
WIRE -208 800 -272 800
WIRE -128 800 -144 800
WIRE -112 800 -112 784
WIRE -96 800 -112 800
WIRE 32 800 -16 800
WIRE 128 800 96 800
WIRE 336 800 272 800
WIRE 416 800 400 800
WIRE 432 800 432 784
WIRE 448 800 432 800
WIRE 576 800 528 800
WIRE 672 800 640 800
WIRE 880 800 816 800
WIRE 960 800 944 800
WIRE 976 800 976 784
WIRE 992 800 976 800
WIRE 1120 800 1072 800
WIRE 1216 800 1184 800
WIRE -208 816 -224 816
WIRE -112 816 -112 800
WIRE -80 816 -80 800
WIRE -80 816 -112 816
WIRE 32 816 16 816
WIRE 336 816 320 816
WIRE 432 816 432 800
WIRE 464 816 464 800
WIRE 464 816 432 816
WIRE 576 816 560 816
WIRE 880 816 864 816
WIRE 976 816 976 800
WIRE 1008 816 1008 800
WIRE 1008 816 976 816
WIRE 1120 816 1104 816
WIRE -224 832 -224 816
WIRE -208 832 -224 832
WIRE -80 832 -80 816
WIRE 16 832 16 816
WIRE 32 832 16 832
WIRE 320 832 320 816
WIRE 336 832 320 832
WIRE 464 832 464 816
WIRE 560 832 560 816
WIRE 576 832 560 832
WIRE 864 832 864 816
WIRE 880 832 864 832
WIRE 1008 832 1008 816
WIRE 1104 832 1104 816
WIRE 1120 832 1104 832
WIRE -224 848 -224 832
WIRE -208 848 -224 848
WIRE 16 848 16 832
WIRE 32 848 16 848
WIRE 320 848 320 832
WIRE 336 848 320 848
WIRE 560 848 560 832
WIRE 576 848 560 848
WIRE 864 848 864 832
WIRE 880 848 864 848
WIRE 1104 848 1104 832
WIRE 1120 848 1104 848
WIRE -224 864 -224 848
WIRE -192 864 -192 848
WIRE -192 864 -224 864
WIRE -128 864 -128 800
WIRE -96 864 -128 864
WIRE 16 864 16 848
WIRE 48 864 48 848
WIRE 48 864 16 864
WIRE 320 864 320 848
WIRE 352 864 352 848
WIRE 352 864 320 864
WIRE 416 864 416 800
WIRE 448 864 416 864
WIRE 560 864 560 848
WIRE 592 864 592 848
WIRE 592 864 560 864
WIRE 864 864 864 848
WIRE 896 864 896 848
WIRE 896 864 864 864
WIRE 960 864 960 800
WIRE 992 864 960 864
WIRE 1104 864 1104 848
WIRE 1136 864 1136 848
WIRE 1136 864 1104 864
WIRE -1072 880 -1072 832
WIRE -912 880 -912 832
WIRE -192 880 -192 864
WIRE -96 880 -128 880
WIRE -16 880 -16 800
WIRE -16 880 -32 880
WIRE 48 880 48 864
WIRE 352 880 352 864
WIRE 448 880 416 880
WIRE 528 880 528 800
WIRE 528 880 512 880
WIRE 592 880 592 864
WIRE 896 880 896 864
WIRE 992 880 960 880
WIRE 1072 880 1072 800
WIRE 1072 880 1056 880
WIRE 1136 880 1136 864
WIRE -96 896 -112 896
WIRE 448 896 432 896
WIRE 992 896 976 896
WIRE -1040 912 -1072 912
WIRE -880 912 -912 912
WIRE -240 912 -240 752
WIRE -240 912 -272 912
WIRE -208 912 -240 912
WIRE -112 912 -112 896
WIRE -96 912 -112 912
WIRE -16 912 -32 912
WIRE 0 912 0 784
WIRE 32 912 0 912
WIRE 304 912 304 752
WIRE 304 912 272 912
WIRE 336 912 304 912
WIRE 432 912 432 896
WIRE 448 912 432 912
WIRE 528 912 512 912
WIRE 544 912 544 784
WIRE 576 912 544 912
WIRE 848 912 848 752
WIRE 848 912 816 912
WIRE 880 912 848 912
WIRE 976 912 976 896
WIRE 992 912 976 912
WIRE 1072 912 1056 912
WIRE 1088 912 1088 784
WIRE 1120 912 1088 912
WIRE -1072 928 -1072 912
WIRE -912 928 -912 912
WIRE -208 928 -272 928
WIRE -128 928 -128 880
WIRE -128 928 -144 928
WIRE -112 928 -112 912
WIRE -96 928 -112 928
WIRE -16 928 -16 912
WIRE 32 928 -16 928
WIRE 128 928 96 928
WIRE 336 928 272 928
WIRE 416 928 416 880
WIRE 416 928 400 928
WIRE 432 928 432 912
WIRE 448 928 432 928
WIRE 528 928 528 912
WIRE 576 928 528 928
WIRE 672 928 640 928
WIRE 880 928 816 928
WIRE 960 928 960 880
WIRE 960 928 944 928
WIRE 976 928 976 912
WIRE 992 928 976 928
WIRE 1072 928 1072 912
WIRE 1120 928 1072 928
WIRE 1216 928 1184 928
WIRE -208 944 -224 944
WIRE -112 944 -112 928
WIRE -80 944 -80 928
WIRE -80 944 -112 944
WIRE 32 944 16 944
WIRE 336 944 320 944
WIRE 432 944 432 928
WIRE 464 944 464 928
WIRE 464 944 432 944
WIRE 576 944 560 944
WIRE 880 944 864 944
WIRE 976 944 976 928
WIRE 1008 944 1008 928
WIRE 1008 944 976 944
WIRE 1120 944 1104 944
WIRE -224 960 -224 944
WIRE -208 960 -224 960
WIRE -80 960 -80 944
WIRE 16 960 16 944
WIRE 32 960 16 960
WIRE 320 960 320 944
WIRE 336 960 320 960
WIRE 464 960 464 944
WIRE 560 960 560 944
WIRE 576 960 560 960
WIRE 864 960 864 944
WIRE 880 960 864 960
WIRE 1008 960 1008 944
WIRE 1104 960 1104 944
WIRE 1120 960 1104 960
WIRE -224 976 -224 960
WIRE -208 976 -224 976
WIRE 16 976 16 960
WIRE 32 976 16 976
WIRE 320 976 320 960
WIRE 336 976 320 976
WIRE 560 976 560 960
WIRE 576 976 560 976
WIRE 864 976 864 960
WIRE 880 976 864 976
WIRE 1104 976 1104 960
WIRE 1120 976 1104 976
WIRE -224 992 -224 976
WIRE -192 992 -192 976
WIRE -192 992 -224 992
WIRE 16 992 16 976
WIRE 48 992 48 976
WIRE 48 992 16 992
WIRE 320 992 320 976
WIRE 352 992 352 976
WIRE 352 992 320 992
WIRE 560 992 560 976
WIRE 592 992 592 976
WIRE 592 992 560 992
WIRE 864 992 864 976
WIRE 896 992 896 976
WIRE 896 992 864 992
WIRE 1104 992 1104 976
WIRE 1136 992 1136 976
WIRE 1136 992 1104 992
WIRE -192 1008 -192 992
WIRE 48 1008 48 992
WIRE 352 1008 352 992
WIRE 592 1008 592 992
WIRE 896 1008 896 992
WIRE 1136 1008 1136 992
WIRE -1072 1056 -1072 1008
WIRE -912 1056 -912 1008
WIRE 208 1056 176 1056
WIRE -448 1072 -480 1072
WIRE 208 1072 176 1072
WIRE 304 1072 272 1072
WIRE -480 1088 -480 1072
WIRE 208 1088 192 1088
WIRE -1040 1104 -1072 1104
WIRE -880 1104 -912 1104
WIRE 192 1104 192 1088
WIRE 208 1104 192 1104
WIRE -1072 1120 -1072 1104
WIRE -912 1120 -912 1104
WIRE 192 1120 192 1104
WIRE 208 1120 192 1120
WIRE 192 1136 192 1120
WIRE 224 1136 224 1120
WIRE 224 1136 192 1136
WIRE 224 1152 224 1136
WIRE -480 1200 -480 1168
WIRE -1072 1248 -1072 1200
WIRE -912 1248 -912 1200
FLAG -1088 336 0
FLAG -880 336 0
FLAG -688 336 0
FLAG -880 576 0
FLAG -1088 576 0
FLAG -1056 160 ModP
FLAG -848 160 ModM
FLAG -656 160 Triangle
FLAG -1056 384 PWM_P
FLAG -848 384 PWM_N
FLAG -80 528 0
FLAG 224 352 A
FLAG 464 352 B
FLAG 704 352 C
FLAG 64 224 HA
FLAG 304 224 HB
FLAG 544 224 HC
FLAG 48 448 LA
FLAG 288 448 LB
FLAG 528 448 LC
FLAG 864 176 A
FLAG 768 448 A
FLAG 976 176 B
FLAG 768 528 B
FLAG 1088 176 C
FLAG 768 608 C
FLAG 928 288 Neutre
FLAG -1040 736 Seq_AH
FLAG -272 784 Seq_AH
FLAG -880 736 Seq_AL
FLAG -912 880 0
FLAG -1072 880 0
FLAG 272 784 Seq_BH
FLAG -1040 912 Seq_BH
FLAG -272 912 Seq_AL
FLAG -880 912 Seq_BL
FLAG 272 912 Seq_BL
FLAG 176 1072 Seq_BL
FLAG 304 1072 Seq_BL
FLAG -912 1056 0
FLAG -1072 1056 0
FLAG -1040 1104 Seq_CH
FLAG 816 784 Seq_CH
FLAG -880 1104 Seg_CL
FLAG 816 912 Seg_CL
FLAG -1072 1248 0
FLAG -912 1248 0
FLAG -480 1200 0
FLAG -448 1072 Seq_BL_Init
FLAG 176 1056 Seq_BL_Init
FLAG -272 800 PWM_P
FLAG 272 800 PWM_P
FLAG 816 800 PWM_P
FLAG -272 928 PWM_N
FLAG 272 928 PWM_N
FLAG 816 928 PWM_N
FLAG -192 880 0
FLAG -192 1008 0
FLAG -80 832 0
FLAG -80 960 0
FLAG 48 880 0
FLAG 48 1008 0
FLAG 0 784 EnA
FLAG 128 800 HA
FLAG 128 928 LA
FLAG 352 1008 0
FLAG 352 880 0
FLAG 464 832 0
FLAG 464 960 0
FLAG 592 1008 0
FLAG 592 880 0
FLAG 544 784 EnB
FLAG 672 800 HB
FLAG 672 928 LB
FLAG 1216 800 HC
FLAG 1216 928 LC
FLAG 896 1008 0
FLAG 1008 960 0
FLAG 1136 1008 0
FLAG 1136 880 0
FLAG 1008 832 0
FLAG 896 880 0
FLAG 1088 784 EnC
FLAG 224 1152 0
SYMBOL voltage -1088 192 R0
WINDOW 3 10 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value {0.5+0.5*{A}}
SYMATTR InstName V1
SYMBOL voltage -880 192 R0
WINDOW 3 5 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value {0.5-0.5*{A}}
SYMATTR InstName V2
SYMBOL voltage -688 192 R0
WINDOW 3 -142 125 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value PULSE(0 +1 0 {0.5/Freq} {0.5/Freq} 0 {1/Freq} 2000)
SYMATTR InstName V3
SYMBOL bv -1088 416 R0
WINDOW 3 -30 101 Left 2
SYMATTR Value V=if(V(ModP)>V(Triangle),1,0)
SYMATTR InstName PWMP
SYMBOL bv -880 416 R0
WINDOW 3 -202 129 Left 2
SYMATTR Value V=if(V(ModM)>V(Triangle),1,0)
SYMATTR InstName PWMN
SYMBOL diode 224 288 R180
WINDOW 0 -19 63 Left 2
WINDOW 3 -13 7 Left 2
SYMATTR InstName D1
SYMATTR Value MyDiode
SYMBOL diode 224 448 R180
WINDOW 0 -21 64 Left 2
WINDOW 3 -11 6 Left 2
SYMATTR InstName D2
SYMATTR Value MyDiode
SYMBOL diode 464 448 R180
WINDOW 0 -18 69 Left 2
WINDOW 3 -5 5 Left 2
SYMATTR InstName D3
SYMATTR Value MyDiode
SYMBOL diode 464 288 R180
WINDOW 0 -22 66 Left 2
WINDOW 3 -13 8 Left 2
SYMATTR InstName D4
SYMATTR Value MyDiode
SYMBOL diode 704 288 R180
WINDOW 0 -19 64 Left 2
WINDOW 3 -7 7 Left 2
SYMATTR InstName D5
SYMATTR Value MyDiode
SYMBOL diode 704 448 R180
WINDOW 0 -20 62 Left 2
WINDOW 3 -4 2 Left 2
SYMATTR InstName D6
SYMATTR Value MyDiode
SYMBOL voltage -80 288 R0
WINDOW 0 26 29 Left 2
SYMATTR InstName UBatt
SYMATTR Value 24
SYMBOL res 848 176 R0
WINDOW 3 38 77 Left 2
SYMATTR Value 10k
SYMATTR InstName R1
SYMBOL res 960 176 R0
SYMATTR InstName R2
SYMATTR Value 10k
SYMBOL res 1072 176 R0
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL res 912 432 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 4
SYMBOL res 912 512 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value 4
SYMBOL res 912 592 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R6
SYMATTR Value 4
SYMBOL ind2 1040 432 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L1
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 512 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L2
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 592 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L3
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL voltage -1072 736 R0
WINDOW 0 24 28 Left 2
WINDOW 3 -41 105 Left 2
SYMATTR InstName V5
SYMATTR Value PULSE(0 1 {0*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 912 R0
WINDOW 0 27 28 Left 2
WINDOW 3 -42 109 Left 2
SYMATTR InstName V6
SYMATTR Value PULSE(0 1 {2*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 1104 R0
WINDOW 0 25 23 Left 2
WINDOW 3 -44 108 Left 2
SYMATTR InstName V7
SYMATTR Value PULSE(0 1 {4*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 736 R0
WINDOW 0 24 25 Left 2
WINDOW 3 -137 130 Left 2
SYMATTR InstName V8
SYMATTR Value PULSE(0 1 {3*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 912 R0
WINDOW 0 24 26 Left 2
WINDOW 3 -136 127 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V9
SYMATTR Value PULSE(0 1 {5*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 1104 R0
WINDOW 0 24 23 Left 2
WINDOW 3 -135 127 Left 2
SYMATTR InstName V10
SYMATTR Value PULSE(0 1 {1*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -480 1072 R0
WINDOW 0 21 26 Left 2
WINDOW 3 -148 102 Left 2
SYMATTR InstName V11
SYMATTR Value PULSE(0 1 0 1n 1n {T_Bloc} {1000*Periode})
SYMBOL Digital\\and -176 752 R0
WINDOW 0 2 25 Left 2
SYMATTR InstName A1
SYMBOL Digital\\and -176 880 R0
WINDOW 0 7 27 Left 2
SYMATTR InstName A2
SYMBOL Digital\\and 64 752 R0
SYMATTR InstName A3
SYMBOL Digital\\and 64 880 R0
SYMATTR InstName A4
SYMBOL Digital\\and 368 752 R0
WINDOW 0 12 27 Left 2
SYMATTR InstName A5
SYMBOL Digital\\and 368 880 R0
WINDOW 0 8 30 Left 2
SYMATTR InstName A6
SYMBOL Digital\\and 608 752 R0
WINDOW 0 11 29 Left 2
SYMATTR InstName A7
SYMBOL Digital\\and 608 880 R0
WINDOW 0 10 30 Left 2
SYMATTR InstName A8
SYMBOL Digital\\and 912 752 R0
WINDOW 0 9 31 Left 2
SYMATTR InstName A9
SYMBOL Digital\\and 912 880 R0
WINDOW 0 7 29 Left 2
SYMATTR InstName A10
SYMBOL Digital\\and 1152 752 R0
WINDOW 0 5 27 Left 2
SYMATTR InstName A11
SYMBOL Digital\\and 1152 880 R0
WINDOW 0 10 32 Left 2
SYMATTR InstName A12
SYMBOL Digital\\or -64 704 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A13
SYMBOL Digital\\or -64 832 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A14
SYMBOL Digital\\or 480 704 R0
SYMATTR InstName A15
SYMBOL Digital\\or 480 832 R0
SYMATTR InstName A16
SYMBOL Digital\\or 1024 704 R0
WINDOW 0 -4 24 Left 2
SYMATTR InstName A17
SYMBOL Digital\\or 1024 832 R0
WINDOW 0 0 26 Left 2
SYMATTR InstName A18
SYMBOL Digital\\or 240 1024 R0
WINDOW 0 -3 25 Left 2
SYMATTR InstName A19
SYMBOL nmos 64 304 M180
WINDOW 0 3 -5 Left 2
WINDOW 3 -6 106 Left 2
SYMATTR InstName M1
SYMBOL nmos 64 368 R0
WINDOW 0 6 2 Left 2
WINDOW 3 -12 101 Left 2
SYMATTR InstName M2
SYMBOL nmos 304 368 R0
WINDOW 0 6 -5 Left 2
WINDOW 3 -8 99 Left 2
SYMATTR InstName M3
SYMBOL nmos 304 304 M180
WINDOW 0 13 -2 Left 2
WINDOW 3 1 98 Left 2
SYMATTR InstName M4
SYMBOL nmos 544 304 M180
WINDOW 0 -2 -5 Left 2
WINDOW 3 5 95 Left 2
SYMATTR InstName M5
SYMBOL nmos 544 368 R0
WINDOW 0 3 -3 Left 2
WINDOW 3 -12 99 Left 2
SYMATTR InstName M6
SYMBOL InfineonNMOS\\2N7002DW_L1 32 896 R0
SYMATTR InstName U1
TEXT -1120 96 Left 5 ;Génération des PWM + et -
TEXT -720 392 Left 2 !.param Freq = 25k T_bloc = 1m Periode = 6m
TEXT 624 1192 Left 2 !.tran 0 40m 0 200n
TEXT -720 456 Left 2 !.param Ffond=100
TEXT -720 496 Left 2 !.param A=0.9
TEXT -720 520 Left 2 !.param Tension_CC=24
TEXT -720 560 Left 2 !;op 0 5m 0 20n ulc
TEXT -160 656 VLeft 2 ;---------------------------------------------------------------
TEXT -144 88 Left 5 ;Onduleur triphasé
TEXT -144 128 Left 2 !.model MyDiode D(Ron=0.01, Roff=1Meg, Vfwd=0.6, Vrev=50, Epsilon 0.05)
TEXT -144 152 Left 2 !.model MYSW SW(Ron=1m Roff=1Meg Vt=0.5)
TEXT 736 656 VLeft 2 ;--------------------------------------------------------------
TEXT 752 88 Left 4 ;Reconstruction passive neutre\n(interne au wattmetre)
TEXT 752 344 Left 4 ;Transformateur triphase\n= stator sans aimants rotor
TEXT 736 312 Left 2 ;---------------------------------------------------------------
TEXT 1088 424 Left 2 !K L1 L2 L3 0.9
TEXT -1128 656 Left 2 ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TEXT -1120 696 Left 5 ;Commande par bloc (BO)
TEXT 616 1232 Left 4 ;Merci ŕ M Rocacher pour les circuits

730
circuits/lotec/Spice/v3.asc Normal file
View file

@ -0,0 +1,730 @@
Version 4
SHEET 1 1408 1276
WIRE -1056 160 -1088 160
WIRE -848 160 -880 160
WIRE -656 160 -688 160
WIRE 112 176 -80 176
WIRE 352 176 112 176
WIRE 592 176 352 176
WIRE 864 192 864 176
WIRE 976 192 976 176
WIRE 1088 192 1088 176
WIRE -1088 208 -1088 160
WIRE -880 208 -880 160
WIRE -688 208 -688 160
WIRE 112 208 112 176
WIRE 208 208 112 208
WIRE 352 208 352 176
WIRE 448 208 352 208
WIRE 592 208 592 176
WIRE 688 208 592 208
WIRE 112 224 112 208
WIRE 208 224 208 208
WIRE 352 224 352 208
WIRE 448 224 448 208
WIRE 592 224 592 208
WIRE 688 224 688 208
WIRE 64 240 48 240
WIRE 304 240 288 240
WIRE 544 240 528 240
WIRE 64 288 48 288
WIRE 304 288 288 288
WIRE 544 288 528 288
WIRE 864 288 864 272
WIRE 928 288 864 288
WIRE 976 288 976 272
WIRE 976 288 928 288
WIRE 1088 288 1088 272
WIRE 1088 288 976 288
WIRE -80 304 -80 176
WIRE 48 304 48 288
WIRE 288 304 288 288
WIRE 528 304 528 288
WIRE 112 320 112 304
WIRE 208 320 208 288
WIRE 208 320 112 320
WIRE 352 320 352 304
WIRE 448 320 448 288
WIRE 448 320 352 320
WIRE 592 320 592 304
WIRE 688 320 688 288
WIRE 688 320 592 320
WIRE -1088 336 -1088 288
WIRE -880 336 -880 288
WIRE -688 336 -688 288
WIRE 112 352 112 320
WIRE 224 352 112 352
WIRE 352 352 352 320
WIRE 464 352 352 352
WIRE 592 352 592 320
WIRE 704 352 592 352
WIRE 112 368 112 352
WIRE 208 368 112 368
WIRE 352 368 352 352
WIRE 448 368 352 368
WIRE 592 368 592 352
WIRE 688 368 592 368
WIRE -1056 384 -1088 384
WIRE -848 384 -880 384
WIRE 112 384 112 368
WIRE 208 384 208 368
WIRE 352 384 352 368
WIRE 448 384 448 368
WIRE 592 384 592 368
WIRE 688 384 688 368
WIRE 64 400 48 400
WIRE 304 400 288 400
WIRE 544 400 528 400
WIRE -1088 432 -1088 384
WIRE -880 432 -880 384
WIRE 64 448 48 448
WIRE 304 448 288 448
WIRE 544 448 528 448
WIRE 816 448 768 448
WIRE 944 448 896 448
WIRE 1056 448 1024 448
WIRE 48 464 48 448
WIRE 288 464 288 448
WIRE 528 464 528 448
WIRE 112 480 112 464
WIRE 208 480 208 448
WIRE 208 480 112 480
WIRE 352 480 352 464
WIRE 448 480 448 448
WIRE 448 480 352 480
WIRE 592 480 592 464
WIRE 688 480 688 448
WIRE 688 480 592 480
WIRE -80 512 -80 384
WIRE 112 512 112 480
WIRE 112 512 -80 512
WIRE 352 512 352 480
WIRE 352 512 112 512
WIRE 592 512 592 480
WIRE 592 512 352 512
WIRE -80 528 -80 512
WIRE 816 528 768 528
WIRE 944 528 896 528
WIRE 1056 528 1056 448
WIRE 1056 528 1024 528
WIRE -1088 576 -1088 512
WIRE -880 576 -880 512
WIRE 816 608 768 608
WIRE 944 608 896 608
WIRE 1056 608 1056 528
WIRE 1056 608 1024 608
WIRE -1040 736 -1072 736
WIRE -880 736 -912 736
WIRE -96 736 -256 736
WIRE 448 736 288 736
WIRE 992 736 832 736
WIRE -1072 752 -1072 736
WIRE -912 752 -912 736
WIRE -96 752 -240 752
WIRE -16 752 -32 752
WIRE 448 752 304 752
WIRE 528 752 512 752
WIRE 992 752 848 752
WIRE 1072 752 1056 752
WIRE -96 768 -112 768
WIRE 448 768 432 768
WIRE 992 768 976 768
WIRE -256 784 -256 736
WIRE -256 784 -272 784
WIRE -208 784 -256 784
WIRE -112 784 -112 768
WIRE -96 784 -112 784
WIRE -16 784 -16 752
WIRE 0 784 -16 784
WIRE 32 784 0 784
WIRE 288 784 288 736
WIRE 288 784 272 784
WIRE 336 784 288 784
WIRE 432 784 432 768
WIRE 448 784 432 784
WIRE 528 784 528 752
WIRE 544 784 528 784
WIRE 576 784 544 784
WIRE 832 784 832 736
WIRE 832 784 816 784
WIRE 880 784 832 784
WIRE 976 784 976 768
WIRE 992 784 976 784
WIRE 1072 784 1072 752
WIRE 1088 784 1072 784
WIRE 1120 784 1088 784
WIRE -208 800 -272 800
WIRE -128 800 -144 800
WIRE -112 800 -112 784
WIRE -96 800 -112 800
WIRE 32 800 -16 800
WIRE 128 800 96 800
WIRE 336 800 272 800
WIRE 416 800 400 800
WIRE 432 800 432 784
WIRE 448 800 432 800
WIRE 576 800 528 800
WIRE 672 800 640 800
WIRE 880 800 816 800
WIRE 960 800 944 800
WIRE 976 800 976 784
WIRE 992 800 976 800
WIRE 1120 800 1072 800
WIRE 1216 800 1184 800
WIRE -208 816 -224 816
WIRE -112 816 -112 800
WIRE -80 816 -80 800
WIRE -80 816 -112 816
WIRE 32 816 16 816
WIRE 336 816 320 816
WIRE 432 816 432 800
WIRE 464 816 464 800
WIRE 464 816 432 816
WIRE 576 816 560 816
WIRE 880 816 864 816
WIRE 976 816 976 800
WIRE 1008 816 1008 800
WIRE 1008 816 976 816
WIRE 1120 816 1104 816
WIRE -224 832 -224 816
WIRE -208 832 -224 832
WIRE -80 832 -80 816
WIRE 16 832 16 816
WIRE 32 832 16 832
WIRE 320 832 320 816
WIRE 336 832 320 832
WIRE 464 832 464 816
WIRE 560 832 560 816
WIRE 576 832 560 832
WIRE 864 832 864 816
WIRE 880 832 864 832
WIRE 1008 832 1008 816
WIRE 1104 832 1104 816
WIRE 1120 832 1104 832
WIRE -224 848 -224 832
WIRE -208 848 -224 848
WIRE 16 848 16 832
WIRE 32 848 16 848
WIRE 320 848 320 832
WIRE 336 848 320 848
WIRE 560 848 560 832
WIRE 576 848 560 848
WIRE 864 848 864 832
WIRE 880 848 864 848
WIRE 1104 848 1104 832
WIRE 1120 848 1104 848
WIRE -224 864 -224 848
WIRE -192 864 -192 848
WIRE -192 864 -224 864
WIRE -128 864 -128 800
WIRE -96 864 -128 864
WIRE 16 864 16 848
WIRE 48 864 48 848
WIRE 48 864 16 864
WIRE 320 864 320 848
WIRE 352 864 352 848
WIRE 352 864 320 864
WIRE 416 864 416 800
WIRE 448 864 416 864
WIRE 560 864 560 848
WIRE 592 864 592 848
WIRE 592 864 560 864
WIRE 864 864 864 848
WIRE 896 864 896 848
WIRE 896 864 864 864
WIRE 960 864 960 800
WIRE 992 864 960 864
WIRE 1104 864 1104 848
WIRE 1136 864 1136 848
WIRE 1136 864 1104 864
WIRE -1072 880 -1072 832
WIRE -912 880 -912 832
WIRE -192 880 -192 864
WIRE -96 880 -128 880
WIRE -16 880 -16 800
WIRE -16 880 -32 880
WIRE 48 880 48 864
WIRE 352 880 352 864
WIRE 448 880 416 880
WIRE 528 880 528 800
WIRE 528 880 512 880
WIRE 592 880 592 864
WIRE 896 880 896 864
WIRE 992 880 960 880
WIRE 1072 880 1072 800
WIRE 1072 880 1056 880
WIRE 1136 880 1136 864
WIRE -96 896 -112 896
WIRE 448 896 432 896
WIRE 992 896 976 896
WIRE -1040 912 -1072 912
WIRE -880 912 -912 912
WIRE -240 912 -240 752
WIRE -240 912 -272 912
WIRE -208 912 -240 912
WIRE -112 912 -112 896
WIRE -96 912 -112 912
WIRE -16 912 -32 912
WIRE 0 912 0 784
WIRE 32 912 0 912
WIRE 304 912 304 752
WIRE 304 912 272 912
WIRE 336 912 304 912
WIRE 432 912 432 896
WIRE 448 912 432 912
WIRE 528 912 512 912
WIRE 544 912 544 784
WIRE 576 912 544 912
WIRE 848 912 848 752
WIRE 848 912 816 912
WIRE 880 912 848 912
WIRE 976 912 976 896
WIRE 992 912 976 912
WIRE 1072 912 1056 912
WIRE 1088 912 1088 784
WIRE 1120 912 1088 912
WIRE -1072 928 -1072 912
WIRE -912 928 -912 912
WIRE -208 928 -272 928
WIRE -128 928 -128 880
WIRE -128 928 -144 928
WIRE -112 928 -112 912
WIRE -96 928 -112 928
WIRE -16 928 -16 912
WIRE 32 928 -16 928
WIRE 128 928 96 928
WIRE 336 928 272 928
WIRE 416 928 416 880
WIRE 416 928 400 928
WIRE 432 928 432 912
WIRE 448 928 432 928
WIRE 528 928 528 912
WIRE 576 928 528 928
WIRE 672 928 640 928
WIRE 880 928 816 928
WIRE 960 928 960 880
WIRE 960 928 944 928
WIRE 976 928 976 912
WIRE 992 928 976 928
WIRE 1072 928 1072 912
WIRE 1120 928 1072 928
WIRE 1216 928 1184 928
WIRE -208 944 -224 944
WIRE -112 944 -112 928
WIRE -80 944 -80 928
WIRE -80 944 -112 944
WIRE 32 944 16 944
WIRE 336 944 320 944
WIRE 432 944 432 928
WIRE 464 944 464 928
WIRE 464 944 432 944
WIRE 576 944 560 944
WIRE 880 944 864 944
WIRE 976 944 976 928
WIRE 1008 944 1008 928
WIRE 1008 944 976 944
WIRE 1120 944 1104 944
WIRE -224 960 -224 944
WIRE -208 960 -224 960
WIRE -80 960 -80 944
WIRE 16 960 16 944
WIRE 32 960 16 960
WIRE 320 960 320 944
WIRE 336 960 320 960
WIRE 464 960 464 944
WIRE 560 960 560 944
WIRE 576 960 560 960
WIRE 864 960 864 944
WIRE 880 960 864 960
WIRE 1008 960 1008 944
WIRE 1104 960 1104 944
WIRE 1120 960 1104 960
WIRE -224 976 -224 960
WIRE -208 976 -224 976
WIRE 16 976 16 960
WIRE 32 976 16 976
WIRE 320 976 320 960
WIRE 336 976 320 976
WIRE 560 976 560 960
WIRE 576 976 560 976
WIRE 864 976 864 960
WIRE 880 976 864 976
WIRE 1104 976 1104 960
WIRE 1120 976 1104 976
WIRE -224 992 -224 976
WIRE -192 992 -192 976
WIRE -192 992 -224 992
WIRE 16 992 16 976
WIRE 48 992 48 976
WIRE 48 992 16 992
WIRE 320 992 320 976
WIRE 352 992 352 976
WIRE 352 992 320 992
WIRE 560 992 560 976
WIRE 592 992 592 976
WIRE 592 992 560 992
WIRE 864 992 864 976
WIRE 896 992 896 976
WIRE 896 992 864 992
WIRE 1104 992 1104 976
WIRE 1136 992 1136 976
WIRE 1136 992 1104 992
WIRE -192 1008 -192 992
WIRE 48 1008 48 992
WIRE 352 1008 352 992
WIRE 592 1008 592 992
WIRE 896 1008 896 992
WIRE 1136 1008 1136 992
WIRE -1072 1056 -1072 1008
WIRE -912 1056 -912 1008
WIRE 208 1056 176 1056
WIRE -448 1072 -480 1072
WIRE 208 1072 176 1072
WIRE 304 1072 272 1072
WIRE -480 1088 -480 1072
WIRE 208 1088 192 1088
WIRE -1040 1104 -1072 1104
WIRE -880 1104 -912 1104
WIRE 192 1104 192 1088
WIRE 208 1104 192 1104
WIRE -1072 1120 -1072 1104
WIRE -912 1120 -912 1104
WIRE 192 1120 192 1104
WIRE 208 1120 192 1120
WIRE 192 1136 192 1120
WIRE 224 1136 224 1120
WIRE 224 1136 192 1136
WIRE 224 1152 224 1136
WIRE -480 1200 -480 1168
WIRE -1072 1248 -1072 1200
WIRE -912 1248 -912 1200
FLAG -1088 336 0
FLAG -880 336 0
FLAG -688 336 0
FLAG -880 576 0
FLAG -1088 576 0
FLAG -1056 160 ModP
FLAG -848 160 ModM
FLAG -656 160 Triangle
FLAG -1056 384 PWM_P
FLAG -848 384 PWM_N
FLAG 48 304 0
FLAG 48 464 0
FLAG 288 304 0
FLAG 288 464 0
FLAG 528 464 0
FLAG 528 304 0
FLAG -80 528 0
FLAG 224 352 A
FLAG 464 352 B
FLAG 704 352 C
FLAG 48 240 HA
FLAG 288 240 HB
FLAG 528 240 HC
FLAG 48 400 LA
FLAG 288 400 LB
FLAG 528 400 LC
FLAG 864 176 A
FLAG 768 448 A
FLAG 976 176 B
FLAG 768 528 B
FLAG 1088 176 C
FLAG 768 608 C
FLAG 928 288 Neutre
FLAG -1040 736 Seq_AH
FLAG -272 784 Seq_AH
FLAG -880 736 Seq_AL
FLAG -912 880 0
FLAG -1072 880 0
FLAG 272 784 Seq_BH
FLAG -1040 912 Seq_BH
FLAG -272 912 Seq_AL
FLAG -880 912 Seq_BL
FLAG 272 912 Seq_BL
FLAG 176 1072 Seq_BL
FLAG 304 1072 Seq_BL
FLAG -912 1056 0
FLAG -1072 1056 0
FLAG -1040 1104 Seq_CH
FLAG 816 784 Seq_CH
FLAG -880 1104 Seg_CL
FLAG 816 912 Seg_CL
FLAG -1072 1248 0
FLAG -912 1248 0
FLAG -480 1200 0
FLAG -448 1072 Seq_BL_Init
FLAG 176 1056 Seq_BL_Init
FLAG -272 800 PWM_P
FLAG 272 800 PWM_P
FLAG 816 800 PWM_P
FLAG -272 928 PWM_N
FLAG 272 928 PWM_N
FLAG 816 928 PWM_N
FLAG -192 880 0
FLAG -192 1008 0
FLAG -80 832 0
FLAG -80 960 0
FLAG 48 880 0
FLAG 48 1008 0
FLAG 0 784 EnA
FLAG 128 800 HA
FLAG 128 928 LA
FLAG 352 1008 0
FLAG 352 880 0
FLAG 464 832 0
FLAG 464 960 0
FLAG 592 1008 0
FLAG 592 880 0
FLAG 544 784 EnB
FLAG 672 800 HB
FLAG 672 928 LB
FLAG 1216 800 HC
FLAG 1216 928 LC
FLAG 896 1008 0
FLAG 1008 960 0
FLAG 1136 1008 0
FLAG 1136 880 0
FLAG 1008 832 0
FLAG 896 880 0
FLAG 1088 784 EnC
FLAG 224 1152 0
SYMBOL voltage -1088 192 R0
WINDOW 3 10 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value {0.5+0.5*{A}}
SYMATTR InstName V1
SYMBOL voltage -880 192 R0
WINDOW 3 5 98 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value {0.5-0.5*{A}}
SYMATTR InstName V2
SYMBOL voltage -688 192 R0
WINDOW 3 -142 125 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR Value PULSE(0 +1 0 {0.5/Freq} {0.5/Freq} 0 {1/Freq} 2000)
SYMATTR InstName V3
SYMBOL bv -1088 416 R0
WINDOW 3 -30 101 Left 2
SYMATTR Value V=if(V(ModP)>V(Triangle),1,0)
SYMATTR InstName PWMP
SYMBOL bv -880 416 R0
WINDOW 3 -202 129 Left 2
SYMATTR Value V=if(V(ModM)>V(Triangle),1,0)
SYMATTR InstName PWMM
SYMBOL sw 112 320 M180
WINDOW 0 2 17 Left 2
WINDOW 3 -20 97 Left 2
SYMATTR InstName S1
SYMATTR Value MYSW
SYMBOL sw 112 480 M180
WINDOW 0 5 16 Left 2
WINDOW 3 -24 98 Left 2
SYMATTR InstName S2
SYMATTR Value MYSW
SYMBOL sw 352 320 M180
WINDOW 3 -30 95 Left 2
SYMATTR Value MYSW
SYMATTR InstName S3
SYMBOL sw 352 480 M180
WINDOW 0 9 17 Left 2
WINDOW 3 -27 99 Left 2
SYMATTR InstName S4
SYMATTR Value MYSW
SYMBOL sw 592 320 M180
WINDOW 0 5 17 Left 2
WINDOW 3 -31 100 Left 2
SYMATTR InstName S5
SYMATTR Value MYSW
SYMBOL sw 592 480 M180
WINDOW 0 12 20 Left 2
WINDOW 3 -32 102 Left 2
SYMATTR InstName S6
SYMATTR Value MYSW
SYMBOL diode 224 288 R180
WINDOW 0 -19 63 Left 2
WINDOW 3 -35 7 Left 2
SYMATTR InstName D1
SYMATTR Value MyDiode
SYMBOL diode 224 448 R180
WINDOW 0 -21 64 Left 2
WINDOW 3 -48 9 Left 2
SYMATTR InstName D2
SYMATTR Value MyDiode
SYMBOL diode 464 448 R180
WINDOW 0 -18 69 Left 2
WINDOW 3 -47 6 Left 2
SYMATTR InstName D3
SYMATTR Value MyDiode
SYMBOL diode 464 288 R180
WINDOW 0 -22 66 Left 2
WINDOW 3 -42 8 Left 2
SYMATTR InstName D4
SYMATTR Value MyDiode
SYMBOL diode 704 288 R180
WINDOW 0 -19 64 Left 2
WINDOW 3 -28 6 Left 2
SYMATTR InstName D5
SYMATTR Value MyDiode
SYMBOL diode 704 448 R180
WINDOW 0 -20 62 Left 2
WINDOW 3 -27 6 Left 2
SYMATTR InstName D6
SYMATTR Value MyDiode
SYMBOL voltage -80 288 R0
SYMATTR InstName UBatt
SYMATTR Value 24
SYMBOL res 848 176 R0
WINDOW 3 38 77 Left 2
SYMATTR Value 10k
SYMATTR InstName R1
SYMBOL res 960 176 R0
SYMATTR InstName R2
SYMATTR Value 10k
SYMBOL res 1072 176 R0
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL res 912 432 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 4
SYMBOL res 912 512 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value 4
SYMBOL res 912 592 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R6
SYMATTR Value 4
SYMBOL ind2 1040 432 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L1
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 512 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L2
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL ind2 1040 592 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L3
SYMATTR Value 1m
SYMATTR Type ind
SYMBOL voltage -1072 736 R0
WINDOW 0 24 28 Left 2
WINDOW 3 -41 105 Left 2
SYMATTR InstName V5
SYMATTR Value PULSE(0 1 {0*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 912 R0
WINDOW 0 27 28 Left 2
WINDOW 3 -42 109 Left 2
SYMATTR InstName V6
SYMATTR Value PULSE(0 1 {2*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -1072 1104 R0
WINDOW 0 25 23 Left 2
WINDOW 3 -44 108 Left 2
SYMATTR InstName V7
SYMATTR Value PULSE(0 1 {4*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 736 R0
WINDOW 0 24 25 Left 2
WINDOW 3 -137 130 Left 2
SYMATTR InstName V8
SYMATTR Value PULSE(0 1 {3*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 912 R0
WINDOW 0 24 26 Left 2
WINDOW 3 -136 127 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V9
SYMATTR Value PULSE(0 1 {5*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -912 1104 R0
WINDOW 0 24 23 Left 2
WINDOW 3 -135 127 Left 2
SYMATTR InstName V10
SYMATTR Value PULSE(0 1 {1*T_Bloc} 1n 1n {2*T_Bloc} {Periode})
SYMBOL voltage -480 1072 R0
WINDOW 0 21 26 Left 2
WINDOW 3 -148 102 Left 2
SYMATTR InstName V11
SYMATTR Value PULSE(0 1 0 1n 1n {T_Bloc} {1000*Periode})
SYMBOL Digital\\and -176 752 R0
WINDOW 0 2 25 Left 2
SYMATTR InstName A1
SYMBOL Digital\\and -176 880 R0
WINDOW 0 7 27 Left 2
SYMATTR InstName A2
SYMBOL Digital\\and 64 752 R0
SYMATTR InstName A3
SYMBOL Digital\\and 64 880 R0
SYMATTR InstName A4
SYMBOL Digital\\and 368 752 R0
WINDOW 0 12 27 Left 2
SYMATTR InstName A5
SYMBOL Digital\\and 368 880 R0
WINDOW 0 8 30 Left 2
SYMATTR InstName A6
SYMBOL Digital\\and 608 752 R0
WINDOW 0 11 29 Left 2
SYMATTR InstName A7
SYMBOL Digital\\and 608 880 R0
WINDOW 0 10 30 Left 2
SYMATTR InstName A8
SYMBOL Digital\\and 912 752 R0
WINDOW 0 9 31 Left 2
SYMATTR InstName A9
SYMBOL Digital\\and 912 880 R0
WINDOW 0 7 29 Left 2
SYMATTR InstName A10
SYMBOL Digital\\and 1152 752 R0
WINDOW 0 5 27 Left 2
SYMATTR InstName A11
SYMBOL Digital\\and 1152 880 R0
WINDOW 0 10 32 Left 2
SYMATTR InstName A12
SYMBOL Digital\\or -64 704 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A13
SYMBOL Digital\\or -64 832 R0
WINDOW 0 -5 25 Left 2
SYMATTR InstName A14
SYMBOL Digital\\or 480 704 R0
SYMATTR InstName A15
SYMBOL Digital\\or 480 832 R0
SYMATTR InstName A16
SYMBOL Digital\\or 1024 704 R0
WINDOW 0 -4 24 Left 2
SYMATTR InstName A17
SYMBOL Digital\\or 1024 832 R0
WINDOW 0 0 26 Left 2
SYMATTR InstName A18
SYMBOL Digital\\or 240 1024 R0
WINDOW 0 -3 25 Left 2
SYMATTR InstName A19
TEXT -1120 96 Left 5 ;Génération des PWM + et -
TEXT -720 392 Left 2 !.param Freq = 25k T_bloc = 1m Periode = 6m
TEXT -720 416 Left 2 !.tran 0 10m 0 200n
TEXT -720 456 Left 2 !.param Ffond=100
TEXT -720 496 Left 2 !.param A=.1
TEXT -720 520 Left 2 !.param Tension_CC=24
TEXT -720 560 Left 2 !;op 0 5m 0 20n ulc
TEXT -160 656 VLeft 2 ;---------------------------------------------------------------
TEXT -144 88 Left 5 ;Onduleur triphasé
TEXT -144 128 Left 2 !.model MyDiode D(Ron=0.01, Roff=1Meg, Vfwd=0.6, Vrev=50, Epsilon 0.05)
TEXT -144 152 Left 2 !.model MYSW SW(Ron=1m Roff=1Meg Vt=0.5)
TEXT 736 656 VLeft 2 ;--------------------------------------------------------------
TEXT 752 88 Left 4 ;Reconstruction passive neutre\n(interne au wattmetre)
TEXT 752 344 Left 4 ;Transformateur triphase\n= stator sans aimants rotor
TEXT 736 312 Left 2 ;---------------------------------------------------------------
TEXT 1088 424 Left 2 !K L1 L2 L3 0.9
TEXT -1128 656 Left 2 ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TEXT -1120 696 Left 5 ;Commande par bloc (BO)
TEXT 616 1232 Left 4 ;Merci ŕ M Rocacher pour les circuits

View file

@ -0,0 +1,719 @@
Version 4
SHEET 1 10452 1636
WIRE 9424 -592 9424 -640
WIRE 9552 -592 9552 -640
WIRE 9664 -592 9664 -640
WIRE 7680 -496 7264 -496
WIRE 8272 -496 7680 -496
WIRE 8768 -496 8272 -496
WIRE 6192 -464 6160 -464
WIRE 6240 -464 6192 -464
WIRE 6576 -464 6544 -464
WIRE 6624 -464 6576 -464
WIRE 6880 -464 6832 -464
WIRE 6912 -464 6880 -464
WIRE 9424 -464 9424 -512
WIRE 9488 -464 9424 -464
WIRE 9552 -464 9552 -512
WIRE 9552 -464 9488 -464
WIRE 9664 -464 9664 -512
WIRE 9664 -464 9552 -464
WIRE 7680 -432 7680 -496
WIRE 7856 -432 7680 -432
WIRE 8272 -432 8272 -496
WIRE 8272 -432 8112 -432
WIRE 8768 -432 8768 -496
WIRE 8768 -432 8608 -432
WIRE 7680 -416 7680 -432
WIRE 8272 -416 8272 -432
WIRE 8768 -416 8768 -432
WIRE 7632 -400 7568 -400
WIRE 7856 -400 7856 -432
WIRE 8112 -400 8112 -432
WIRE 8384 -400 8320 -400
WIRE 8608 -400 8608 -432
WIRE 8880 -400 8816 -400
WIRE 6160 -368 6160 -464
WIRE 6544 -368 6544 -464
WIRE 6832 -368 6832 -464
WIRE 7632 -352 7616 -352
WIRE 8336 -352 8320 -352
WIRE 8832 -352 8816 -352
WIRE 7616 -320 7616 -352
WIRE 8336 -320 8336 -352
WIRE 8832 -320 8832 -352
WIRE 7680 -304 7680 -336
WIRE 7856 -304 7856 -336
WIRE 7856 -304 7680 -304
WIRE 8112 -304 8112 -336
WIRE 8272 -304 8272 -336
WIRE 8272 -304 8112 -304
WIRE 8608 -304 8608 -336
WIRE 8768 -304 8768 -336
WIRE 8768 -304 8608 -304
WIRE 6160 -240 6160 -288
WIRE 6544 -240 6544 -288
WIRE 6832 -240 6832 -288
WIRE 7680 -176 7680 -304
WIRE 7728 -176 7680 -176
WIRE 7872 -176 7728 -176
WIRE 8208 -176 8080 -176
WIRE 8272 -176 8272 -304
WIRE 8272 -176 8208 -176
WIRE 8704 -176 8576 -176
WIRE 8768 -176 8768 -304
WIRE 8768 -176 8704 -176
WIRE 9408 -144 9312 -144
WIRE 9568 -144 9488 -144
WIRE 9712 -144 9648 -144
WIRE 6240 -112 6144 -112
WIRE 6736 -112 6640 -112
WIRE 7264 -112 7264 -496
WIRE 6144 -80 6144 -112
WIRE 6640 -80 6640 -112
WIRE 7680 -64 7680 -176
WIRE 7856 -64 7680 -64
WIRE 8272 -64 8272 -176
WIRE 8272 -64 8144 -64
WIRE 8768 -64 8768 -176
WIRE 8768 -64 8640 -64
WIRE 7680 -32 7680 -64
WIRE 7856 -32 7856 -64
WIRE 8144 -32 8144 -64
WIRE 8272 -32 8272 -64
WIRE 8640 -32 8640 -64
WIRE 8768 -32 8768 -64
WIRE 9408 -32 9312 -32
WIRE 9568 -32 9488 -32
WIRE 9712 -32 9712 -144
WIRE 9712 -32 9648 -32
WIRE 7632 -16 7568 -16
WIRE 8384 -16 8320 -16
WIRE 8880 -16 8816 -16
WIRE 7632 32 7616 32
WIRE 8336 32 8320 32
WIRE 8832 32 8816 32
WIRE 7616 64 7616 32
WIRE 7680 64 7680 48
WIRE 7856 64 7856 32
WIRE 7856 64 7680 64
WIRE 8144 64 8144 32
WIRE 8272 64 8272 48
WIRE 8272 64 8144 64
WIRE 8336 64 8336 32
WIRE 8640 64 8640 32
WIRE 8768 64 8768 48
WIRE 8768 64 8640 64
WIRE 8832 64 8832 32
WIRE 9408 96 9312 96
WIRE 9568 96 9488 96
WIRE 9712 96 9712 -32
WIRE 9712 96 9648 96
WIRE 7264 144 7264 -32
WIRE 7680 144 7680 64
WIRE 7680 144 7264 144
WIRE 8272 144 8272 64
WIRE 8272 144 7680 144
WIRE 8768 144 8768 64
WIRE 8768 144 8272 144
WIRE 8832 144 8768 144
WIRE 6144 160 6144 0
WIRE 6640 160 6640 0
WIRE 7264 176 7264 144
WIRE 9424 448 9232 448
WIRE 9424 464 9248 464
WIRE 9536 464 9488 464
WIRE 9552 464 9536 464
WIRE 6304 480 6192 480
WIRE 6320 480 6304 480
WIRE 8656 480 8464 480
WIRE 9424 480 9408 480
WIRE 6992 496 6880 496
WIRE 7008 496 6992 496
WIRE 7888 496 7696 496
WIRE 8656 496 8480 496
WIRE 8768 496 8720 496
WIRE 8784 496 8768 496
WIRE 9408 496 9408 480
WIRE 9424 496 9408 496
WIRE 7888 512 7712 512
WIRE 8000 512 7952 512
WIRE 8016 512 8000 512
WIRE 8656 512 8640 512
WIRE 9408 512 9408 496
WIRE 9424 512 9408 512
WIRE 7888 528 7872 528
WIRE 8640 528 8640 512
WIRE 8656 528 8640 528
WIRE 9408 528 9408 512
WIRE 9440 528 9440 512
WIRE 9440 528 9408 528
WIRE 9712 528 9664 528
WIRE 7872 544 7872 528
WIRE 7888 544 7872 544
WIRE 8640 544 8640 528
WIRE 8656 544 8640 544
WIRE 9440 544 9440 528
WIRE 9712 544 9584 544
WIRE 9808 544 9776 544
WIRE 6192 560 6192 480
WIRE 7872 560 7872 544
WIRE 7888 560 7872 560
WIRE 8640 560 8640 544
WIRE 8672 560 8672 544
WIRE 8672 560 8640 560
WIRE 8944 560 8896 560
WIRE 9712 560 9680 560
WIRE 6880 576 6880 496
WIRE 7872 576 7872 560
WIRE 7904 576 7904 560
WIRE 7904 576 7872 576
WIRE 8176 576 8128 576
WIRE 8672 576 8672 560
WIRE 8944 576 8816 576
WIRE 9040 576 9008 576
WIRE 9680 576 9680 560
WIRE 9712 576 9680 576
WIRE 7904 592 7904 576
WIRE 8176 592 8048 592
WIRE 8272 592 8240 592
WIRE 8944 592 8912 592
WIRE 9680 592 9680 576
WIRE 9712 592 9680 592
WIRE 8176 608 8144 608
WIRE 8912 608 8912 592
WIRE 8944 608 8912 608
WIRE 9680 608 9680 592
WIRE 9728 608 9728 592
WIRE 9728 608 9680 608
WIRE 8144 624 8144 608
WIRE 8176 624 8144 624
WIRE 8912 624 8912 608
WIRE 8944 624 8912 624
WIRE 9232 624 9232 448
WIRE 9232 624 9216 624
WIRE 9296 624 9232 624
WIRE 9728 624 9728 608
WIRE 8144 640 8144 624
WIRE 8176 640 8144 640
WIRE 8912 640 8912 624
WIRE 8960 640 8960 624
WIRE 8960 640 8912 640
WIRE 9296 640 9216 640
WIRE 9472 640 9360 640
WIRE 8144 656 8144 640
WIRE 8192 656 8192 640
WIRE 8192 656 8144 656
WIRE 8464 656 8464 480
WIRE 8464 656 8448 656
WIRE 8528 656 8464 656
WIRE 8960 656 8960 640
WIRE 9296 656 9264 656
WIRE 9472 656 9408 656
WIRE 9584 656 9584 544
WIRE 9584 656 9536 656
WIRE 7696 672 7696 496
WIRE 7696 672 7680 672
WIRE 7760 672 7696 672
WIRE 8192 672 8192 656
WIRE 8528 672 8448 672
WIRE 8704 672 8592 672
WIRE 9264 672 9264 656
WIRE 9296 672 9264 672
WIRE 9472 672 9456 672
WIRE 6192 688 6192 640
WIRE 7760 688 7680 688
WIRE 7936 688 7824 688
WIRE 8528 688 8496 688
WIRE 8704 688 8640 688
WIRE 8816 688 8816 576
WIRE 8816 688 8768 688
WIRE 9264 688 9264 672
WIRE 9296 688 9264 688
WIRE 9456 688 9456 672
WIRE 9472 688 9456 688
WIRE 9584 688 9536 688
WIRE 6880 704 6880 656
WIRE 7760 704 7728 704
WIRE 7936 704 7872 704
WIRE 8048 704 8048 592
WIRE 8048 704 8000 704
WIRE 8496 704 8496 688
WIRE 8528 704 8496 704
WIRE 8704 704 8688 704
WIRE 9264 704 9264 688
WIRE 9312 704 9312 688
WIRE 9312 704 9264 704
WIRE 9456 704 9456 688
WIRE 9472 704 9456 704
WIRE 7728 720 7728 704
WIRE 7760 720 7728 720
WIRE 7936 720 7920 720
WIRE 8496 720 8496 704
WIRE 8528 720 8496 720
WIRE 8688 720 8688 704
WIRE 8704 720 8688 720
WIRE 8816 720 8768 720
WIRE 9312 720 9312 704
WIRE 9456 720 9456 704
WIRE 9488 720 9488 704
WIRE 9488 720 9456 720
WIRE 6304 736 6192 736
WIRE 6320 736 6304 736
WIRE 7728 736 7728 720
WIRE 7760 736 7728 736
WIRE 7920 736 7920 720
WIRE 7936 736 7920 736
WIRE 8048 736 8000 736
WIRE 8496 736 8496 720
WIRE 8544 736 8544 720
WIRE 8544 736 8496 736
WIRE 8688 736 8688 720
WIRE 8704 736 8688 736
WIRE 9488 736 9488 720
WIRE 6992 752 6880 752
WIRE 7008 752 6992 752
WIRE 7728 752 7728 736
WIRE 7776 752 7776 736
WIRE 7776 752 7728 752
WIRE 7920 752 7920 736
WIRE 7936 752 7920 752
WIRE 8544 752 8544 736
WIRE 8688 752 8688 736
WIRE 8720 752 8720 736
WIRE 8720 752 8688 752
WIRE 7776 768 7776 752
WIRE 7920 768 7920 752
WIRE 7952 768 7952 752
WIRE 7952 768 7920 768
WIRE 8720 768 8720 752
WIRE 9696 768 9664 768
WIRE 7952 784 7952 768
WIRE 9248 784 9248 464
WIRE 9248 784 9216 784
WIRE 9296 784 9248 784
WIRE 9584 784 9584 688
WIRE 9696 784 9584 784
WIRE 9808 784 9760 784
WIRE 8928 800 8896 800
WIRE 9296 800 9216 800
WIRE 9408 800 9408 656
WIRE 9408 800 9360 800
WIRE 9696 800 9664 800
WIRE 6192 816 6192 736
WIRE 8160 816 8128 816
WIRE 8480 816 8480 496
WIRE 8480 816 8448 816
WIRE 8528 816 8480 816
WIRE 8816 816 8816 720
WIRE 8928 816 8816 816
WIRE 9040 816 8992 816
WIRE 9296 816 9264 816
WIRE 9664 816 9664 800
WIRE 9696 816 9664 816
WIRE 6880 832 6880 752
WIRE 7712 832 7712 512
WIRE 7712 832 7680 832
WIRE 7760 832 7712 832
WIRE 8048 832 8048 736
WIRE 8160 832 8048 832
WIRE 8272 832 8224 832
WIRE 8528 832 8448 832
WIRE 8640 832 8640 688
WIRE 8640 832 8592 832
WIRE 8928 832 8896 832
WIRE 9264 832 9264 816
WIRE 9296 832 9264 832
WIRE 9664 832 9664 816
WIRE 9696 832 9664 832
WIRE 7760 848 7680 848
WIRE 7872 848 7872 704
WIRE 7872 848 7824 848
WIRE 8160 848 8128 848
WIRE 8528 848 8496 848
WIRE 8896 848 8896 832
WIRE 8928 848 8896 848
WIRE 9264 848 9264 832
WIRE 9296 848 9264 848
WIRE 9664 848 9664 832
WIRE 9712 848 9712 832
WIRE 9712 848 9664 848
WIRE 7760 864 7728 864
WIRE 8128 864 8128 848
WIRE 8160 864 8128 864
WIRE 8496 864 8496 848
WIRE 8528 864 8496 864
WIRE 8896 864 8896 848
WIRE 8928 864 8896 864
WIRE 9264 864 9264 848
WIRE 9312 864 9312 848
WIRE 9312 864 9264 864
WIRE 9712 864 9712 848
WIRE 7728 880 7728 864
WIRE 7760 880 7728 880
WIRE 8128 880 8128 864
WIRE 8160 880 8128 880
WIRE 8496 880 8496 864
WIRE 8528 880 8496 880
WIRE 8896 880 8896 864
WIRE 8944 880 8944 864
WIRE 8944 880 8896 880
WIRE 9312 880 9312 864
WIRE 7728 896 7728 880
WIRE 7760 896 7728 896
WIRE 8128 896 8128 880
WIRE 8176 896 8176 880
WIRE 8176 896 8128 896
WIRE 8496 896 8496 880
WIRE 8544 896 8544 880
WIRE 8544 896 8496 896
WIRE 8944 896 8944 880
WIRE 7728 912 7728 896
WIRE 7776 912 7776 896
WIRE 7776 912 7728 912
WIRE 8176 912 8176 896
WIRE 8544 912 8544 896
WIRE 7776 928 7776 912
WIRE 6192 944 6192 896
WIRE 6880 960 6880 912
WIRE 6304 1008 6192 1008
WIRE 6320 1008 6304 1008
WIRE 6992 1024 6880 1024
WIRE 7008 1024 6992 1024
WIRE 7760 1056 7648 1056
WIRE 7776 1056 7760 1056
WIRE 8160 1072 8064 1072
WIRE 6192 1088 6192 1008
WIRE 8160 1088 8064 1088
WIRE 8240 1088 8224 1088
WIRE 6880 1104 6880 1024
WIRE 8160 1104 8144 1104
WIRE 8144 1120 8144 1104
WIRE 8160 1120 8144 1120
WIRE 7648 1136 7648 1056
WIRE 8144 1136 8144 1120
WIRE 8160 1136 8144 1136
WIRE 8144 1152 8144 1136
WIRE 8176 1152 8176 1136
WIRE 8176 1152 8144 1152
WIRE 8176 1168 8176 1152
WIRE 6192 1216 6192 1168
WIRE 6880 1232 6880 1184
WIRE 7648 1264 7648 1216
FLAG 7264 176 0
FLAG 6576 -464 ModM
FLAG 6832 -240 0
FLAG 6544 -240 0
FLAG 6880 -464 Triangle
FLAG 6144 160 0
FLAG 6240 -112 PWM_P
FLAG 7568 -400 HA
FLAG 7568 -16 LA
FLAG 7728 -176 A
FLAG 8208 -176 B
FLAG 6192 -464 ModP
FLAG 6160 -240 0
FLAG 6640 160 0
FLAG 6736 -112 PWM_M
FLAG 7616 -320 0
FLAG 7616 64 0
FLAG 8384 -400 HB
FLAG 8384 -16 LB
FLAG 8336 -320 0
FLAG 8336 64 0
FLAG 8704 -176 C
FLAG 8880 -400 HC
FLAG 8880 -16 LC
FLAG 8832 -320 0
FLAG 8832 64 0
FLAG 6192 688 0
FLAG 6304 480 Seq_AH
FLAG 6192 944 0
FLAG 6304 736 Seq_BH
FLAG 6192 1216 0
FLAG 6304 1008 Seq_CH
FLAG 6880 704 0
FLAG 6992 496 Seq_AL
FLAG 6880 960 0
FLAG 6992 752 Seq_BL_
FLAG 6880 1232 0
FLAG 6992 1024 Seq_CL
FLAG 7648 1264 0
FLAG 7760 1056 Seq_BL_init
FLAG 8176 1168 0
FLAG 8064 1072 Seq_BL_init
FLAG 8064 1088 Seq_BL_
FLAG 8240 1088 Seq_BL
FLAG 7776 768 0
FLAG 8272 592 HA
FLAG 7680 672 Seq_AH
FLAG 7680 688 PWM_P
FLAG 7776 928 0
FLAG 8272 832 LA
FLAG 7680 832 Seq_AL
FLAG 7680 848 PWM_M
FLAG 9488 -464 Neutre
FLAG 7952 784 0
FLAG 8192 672 0
FLAG 8176 912 0
FLAG 7904 592 0
FLAG 8000 512 EnA
FLAG 8128 576 EnA
FLAG 8128 816 EnA
FLAG 8544 752 0
FLAG 9040 576 HB
FLAG 8448 656 Seq_BH
FLAG 8448 672 PWM_P
FLAG 8544 912 0
FLAG 9040 816 LB
FLAG 8448 816 Seq_BL
FLAG 8448 832 PWM_M
FLAG 8720 768 0
FLAG 8960 656 0
FLAG 8944 896 0
FLAG 8672 576 0
FLAG 8768 496 EnB
FLAG 8896 560 EnB
FLAG 8896 800 EnB
FLAG 9312 720 0
FLAG 9808 544 HC
FLAG 9216 624 Seq_CH
FLAG 9216 640 PWM_P
FLAG 9312 880 0
FLAG 9808 784 LC
FLAG 9216 784 Seq_CL
FLAG 9216 800 PWM_M
FLAG 9488 736 0
FLAG 9728 624 0
FLAG 9712 864 0
FLAG 9440 544 0
FLAG 9536 464 EnC
FLAG 9664 528 EnC
FLAG 9664 768 EnC
FLAG 9424 -640 A
FLAG 9552 -640 B
FLAG 9664 -640 C
FLAG 9312 -144 A
FLAG 9312 -32 B
FLAG 9312 96 C
SYMBOL voltage 7264 -128 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value 24
SYMBOL voltage 6832 -384 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
WINDOW 3 -411 196 Left 2
SYMATTR Value PULSE(0 +1 0 {0.5/Freq} {0.5/Freq} 0 {1/Freq} 2000)
SYMATTR InstName V3
SYMBOL voltage 6544 -384 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
WINDOW 3 24 44 Left 2
SYMATTR Value {0.5-0.5*{A}}
SYMATTR InstName V4
SYMBOL bv 6144 -96 R0
SYMATTR InstName PWM
SYMATTR Value V=if(V(ModP)>V(Triangle),1,0)
SYMBOL voltage 6160 -384 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
WINDOW 3 24 44 Left 2
SYMATTR Value {0.5+0.5*{A}}
SYMATTR InstName V8
SYMBOL bv 6640 -96 R0
SYMATTR InstName PWM1
SYMATTR Value V=if(V(ModM)>V(Triangle),1,0)
SYMBOL sw 7680 -320 M180
SYMATTR InstName S1
SYMATTR Value MYSW
SYMBOL sw 7680 64 M180
SYMATTR InstName S2
SYMATTR Value MYSW
SYMBOL sw 8272 -320 R180
SYMATTR InstName S3
SYMATTR Value MYSW
SYMBOL sw 8272 64 R180
SYMATTR InstName S4
SYMATTR Value MYSW
SYMBOL diode 7872 -336 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D9
SYMATTR Value MyDiode
SYMBOL diode 8128 -336 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D10
SYMATTR Value MyDiode
SYMBOL diode 7872 32 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D11
SYMATTR Value MyDiode
SYMBOL diode 8160 32 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D12
SYMATTR Value MyDiode
SYMBOL sw 8768 -320 R180
SYMATTR InstName S5
SYMATTR Value MYSW
SYMBOL sw 8768 64 R180
SYMATTR InstName S6
SYMATTR Value MYSW
SYMBOL diode 8624 -336 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D1
SYMATTR Value MyDiode
SYMBOL diode 8656 32 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D2
SYMATTR Value MyDiode
SYMBOL voltage 6192 544 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V20
SYMATTR Value PULSE(0 1 0 1n 1n {2*T_Bloc} {Period})
SYMBOL voltage 6192 800 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value PULSE(0 1 {2*T_Bloc} 1n 1n {2*T_Bloc} {Period})
SYMBOL voltage 6192 1072 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V5
SYMATTR Value PULSE(0 1 {4*T_Bloc} 1n 1n {2*T_Bloc} {Period})
SYMBOL voltage 6880 560 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V6
SYMATTR Value PULSE(0 1 {3*T_Bloc} 1n 1n {2*T_Bloc} {Period})
SYMBOL voltage 6880 816 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V7
SYMATTR Value PULSE(0 1 {5*T_Bloc} 1n 1n {2*T_Bloc} {Period})
SYMBOL voltage 6880 1088 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V9
SYMATTR Value PULSE(0 1 {1*T_Bloc} 1n 1n {2*T_Bloc} {Period})
SYMBOL voltage 7648 1120 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V10
SYMATTR Value PULSE(0 1 0 1n 1n {T_Bloc} {1000*Period})
SYMBOL Digital\\or 8192 1040 R0
SYMATTR InstName A1
SYMBOL Digital\\and 7792 640 R0
SYMATTR InstName A2
SYMBOL Digital\\and 7792 800 R0
SYMATTR InstName A3
SYMBOL res 9648 -608 R0
SYMATTR InstName R1
SYMATTR Value 10k
SYMBOL res 9536 -608 R0
SYMATTR InstName R2
SYMATTR Value 10k
SYMBOL res 9408 -608 R0
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL res 9504 -160 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value {Rm}
SYMBOL ind2 9552 -128 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L1
SYMATTR Value {Lm}
SYMATTR Type ind
SYMBOL res 9504 -48 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value {Rm}
SYMBOL ind2 9552 -16 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L2
SYMATTR Value {Lm}
SYMATTR Type ind
SYMBOL res 9504 80 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R6
SYMATTR Value {Rm}
SYMBOL ind2 9552 112 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L3
SYMATTR Value {Lm}
SYMATTR Type ind
SYMBOL Digital\\or 7968 656 R0
SYMATTR InstName A8
SYMBOL Digital\\and 8208 544 R0
SYMATTR InstName A9
SYMBOL Digital\\and 8192 784 R0
SYMATTR InstName A14
SYMBOL Digital\\or 7920 464 R0
SYMATTR InstName A15
SYMBOL Digital\\and 8560 624 R0
SYMATTR InstName A16
SYMBOL Digital\\and 8560 784 R0
SYMATTR InstName A17
SYMBOL Digital\\or 8736 640 R0
SYMATTR InstName A18
SYMBOL Digital\\and 8976 528 R0
SYMATTR InstName A19
SYMBOL Digital\\and 8960 768 R0
SYMATTR InstName A20
SYMBOL Digital\\or 8688 448 R0
SYMATTR InstName A21
SYMBOL Digital\\and 9328 592 R0
SYMATTR InstName A4
SYMBOL Digital\\and 9328 752 R0
SYMATTR InstName A5
SYMBOL Digital\\or 9504 608 R0
SYMATTR InstName A10
SYMBOL Digital\\and 9744 496 R0
SYMATTR InstName A11
SYMBOL Digital\\and 9728 736 R0
SYMATTR InstName A22
SYMBOL Digital\\or 9456 416 R0
SYMATTR InstName A23
TEXT 7264 -616 Left 2 !.model MYSW SW(Ron=1m Roff=1Meg Vt=0.5)
TEXT 6616 -632 Left 2 !.tran 0 40m 0 200n
TEXT 7264 -576 Left 2 ;http://www.linear.com/solutions/5735
TEXT 7200 -696 Left 4 ;Ondleur triphasé
TEXT 6608 -704 Left 4 ;Génération des PWM + et -
TEXT 6616 -664 Left 2 !.param Freq=25k T_Bloc=1m Period=6m
TEXT 7200 -152 Left 2 ;UBatt
TEXT 6264 -552 Left 2 ;Generation PWM (MLI)
TEXT 6112 -632 Left 2 !;op 0 5m 0 20n uic
TEXT 7272 -648 Left 2 !.model MyDiode D(Ron=0.01, Roff=1Meg, Vfwd=0.6, Vrev=50,Epsilon 0.05)
TEXT 6104 -760 Left 2 !.param Ffond=100
TEXT 6104 -696 Left 2 !.param A=0.9
TEXT 6104 -672 Left 2 !.param DC_Voltage=24
TEXT 9568 -216 Left 2 !K L1 L2 L3 0.7
TEXT 6928 400 Left 4 ;Commande par bloc (boucle ouverte, pas de capteur Hall pas de moteur
TEXT 9264 -312 Left 4 ;Transformateur triphasé\n= stator sans aimants rotor
TEXT 9272 -752 Left 4 ;Reconstruction passive neutre\n(interne au wattmčtre)
TEXT 9632 144 Left 2 !.param Rm=10 Lm=1m
LINE Normal 7184 -784 8704 -784 2
LINE Normal 8704 224 7184 224 2
LINE Normal 9200 224 8704 224 2
LINE Normal 9200 -784 9200 224 2
LINE Normal 8704 -784 9200 -784 2
LINE Normal 6080 -784 6080 -784 2
LINE Normal 6080 224 6096 224 2
RECTANGLE Normal 6080 224 7184 -784 2
RECTANGLE Normal 9888 -416 9232 -768 2
RECTANGLE Normal 9888 160 9232 -352 2
RECTANGLE Normal 9904 1360 6080 352 2

View file

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

View file

@ -0,0 +1,413 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {},
"track_widths": [],
"via_dimensions": []
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"undefined_netclass": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "v1.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": true,
"label": "Exclude from BOM",
"name": "${EXCLUDE_FROM_BOM}",
"show": true
},
{
"group_by": true,
"label": "Exclude from Board",
"name": "${EXCLUDE_FROM_BOARD}",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"sort_asc": true,
"sort_field": "Référence"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [],
"text_variables": {}
}

View file

@ -0,0 +1,14 @@
(kicad_sch
(version 20250114)
(generator "eeschema")
(generator_version "9.0")
(uuid 09cc63de-bf29-4c3e-8216-90c954be472c)
(paper "A4")
(lib_symbols)
(sheet_instances
(path "/"
(page "1")
)
)
(embedded_fonts no)
)

View file

@ -0,0 +1 @@
{"hostname":"klinx","username":"klinx"}