Upload
others
View
25
Download
0
Embed Size (px)
Citation preview
2006
Mise en œuvre FPGA temps réeld’un algorithme d’identification basé sur la
mesure de données binaires
• CEA – LETI – MINATEC• Laboratoire MEA (MEMS et Électronique Associée)• Eric Colinet
230/10/07 Christophe Le Blanc
ObjectifsUn exemple de système mis au point au laboratoire :
Accéléromètre LocadynTrois objectifs :• Outils de conception systèmes – méthodologie :
– Génération d’interface– Prototypage numérique rapide à partir de modèles
• Développement d’une carte interface capteur généralisable (Julien)• Test de l’implémentation de deux algorithmes d’identification
– BIMBO_inline– Moindres carrés récursifs
330/10/07 Christophe Le Blanc
Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective
430/10/07 Christophe Le Blanc
Recherche d’outils – Fonctionnement du service• Un mode de fonctionnement• Différentes spécialités• => recherche d’outils et de solutions plus rapides• Temps long pour passer du modèle à son prototype A
nalog Digital M
ixed-signal +MEMS and E source
Linear & non-linear Control theory tools
Analytical models C
ircuit Signal & noise parameters T
estability
Adjustments
Test methodology
High-level modelling I
dentification Compensator optimization (
e.g. Matlab) Feedback
Building blocks specifications E
lectrical engineering Behavioral (VHDL-AMS, Verilog-A) R
TL / Gate-level (VHDL, Verilog) Transistor-level (Eldo, Spice) (
e.g. ADMS)
Systems engineering T
est engineering
IC technology T
est equipment
Méthodologie actuelle empruntée lors de projets
530/10/07 Christophe Le Blanc
Recherche d’outils – cas du vhdl
Modèle Simulink Spécifications SpécialisteHardware
Modèle VHDL
Résultats de Simulation Résultats de Simulation
Simulation
Comparaison
Simulation
Validation
modifications
• Deux interlocuteurs• Échange d’information• Faiblesse : temps de développement LONG• Optimisation• Validation
630/10/07 Christophe Le Blanc
Recherche d’outils – première solution VHDL 1• Cas de code VHDL• Exclusivement des outils
Mathworks• Code synthétisable• Rapidité• Résultats ? BlocsStateFlow
Simulink® HDL CoderFilter Design HDL Coder
Modèle VHDL
CosimulationVérification avec l’outil Link for Modelsim
Modèle Simulink
Validation
Xilinx System Generator for DSP
730/10/07 Christophe Le Blanc
Recherche d’outils – deuxième solution VHDL 2• Code VHDL• Nombreux outils – prix des licences élevé• Plus grand nombre de solution logicielles• Résultats ?
Modèle Simulink
VHDL
RT Workshop Embedded Coder
Modèle StateFlow
CosimulationVérification avec l’outil Link for Modelsim
Validation
Ansi C CodeSystemC
Outils de passage du langage C vers le VHDL
RT Workshop
Mentor Graphics : CatapultCUniversité de Caroline du Nord :
SparkCeloxicaImpulseC
Mitrion
830/10/07 Christophe Le Blanc
Recherche d’outils – troisième solution – DSP• Cible DSP, Texas instrument• Résultats
Modèle Simulink Link for Code Composer Studio
Code DSP
Code Composer Studio
TI : C2000C5000C6000OMAP
930/10/07 Christophe Le Blanc
• La solution 1 est retenue• Testée par la suite
Recherche d’outils – choix final Méthode VHDL 1 Méthode VHDL 2 Méthode DSP
Avantages Outils Matlab Rapidité 1 seule conversion
Outils performants 1 seule conversion 1 seul outil
Inconvénients Quels résultats ?
Outils de différentes sociétés
Prix 2 conversions
Quels résultats ?
DSP Quels résultats ?
BlocsStateFlow
Simulink® HDL Coder
VHDL
Cosimulation
Modèle Simulink
Validation
1030/10/07 Christophe Le Blanc
Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective
1130/10/07 Christophe Le Blanc
Principe des projets – Identification• Différents capteurs développés à ce jour
– Accéléromètre– magnétomètre
• Une structure générale (correcteurs – filtres)• Identification : remonter à la fonction de transfert d’un système observé• Les avantages d’une fonction d’identification :
– Correcteur idéal– Correction suivant l’évolution du capteur - température
1230/10/07 Christophe Le Blanc
Objectifs pour la carte• Support de test• Support rapide pour validation
d’architectures• Plateforme de tests pour clients• Test de l’implémentation de
l’algorithme d’identification BIMBOpour validation
Capteur + ASIC
Capteur
FPGA / DSPAnalogique – Numérique
IdentificationContrôleurs
PC
1330/10/07 Christophe Le Blanc
Objectifs – Synoptique détaillé (suite)
Capteur + ASIC
Capteur
Partie numérique : FPGA et/ou DSP
Identification: BIMBO
Temps réel
Interface,Communication
Partie Analogique
Correcteurs(rétroaction)
Gestion de l’énergie:Managy
PC
gestion CNAtest capteur
ConvertisseursΣΔ, ..
InterfacesA / N
Chaîne de retourN / A
Entrée test
Gestion et configASICs
Locadyn, Gyro, ..
Entrée test (ΣΔ) :CNA
AlimsCNA
Gestion des CNA
alimentations
Interface utilisateur
Julien
Christophe
Ensemble
Recherche d’outils
1430/10/07 Christophe Le Blanc
BIMBO_inline :• Algorithme statistique• fournit les estimations :
– De la réponse impulsionnelledu système observé
– Du signal y(pour l’algorithme d’identification)
Modèle échantillonnéajustable du procédé
Algorithme d’adaptationparamétrique (A.A.P) :
Moindres carré
Paramètres du modèle
uk
Système observé
?0sk
yk
yk
sk
BIMBO_inline :
Approximation de y
• Caractérisation de systèmes• Différentes solutions
– Méthode globale– Moindres carrés récursifs– BIMBO (Basic Identification Method using
Binary Observations)• Problèmes :
– Convertisseur A/N performant => passage en 1 bit (ΣΔ)– Calibrage de l’algorithme BIMBO
Partie identification
Système observé
Modèle échantillonnéajustable du procédé
Paramètres du modèle
?0uk
sk
skyk
Algorithme d’adaptationparamétrique (A.A.P)
y
1530/10/07 Christophe Le Blanc
BIMBO_inline – Principe• Génération d’un bruit blanc binaire
riche spectralement• Étude des observations u et s• Estimation de la réponse
impulsionnelleFonction de coût :
• A l’aide de statistiques, dans lecas d’un bruit blanc binaire :
• Si :lien direct entre l’élément i de laréponse impulsionnelle et J
f-1
( )
( )( )
( ) ( )( )!
!
=
"
"
=
=###
$
%
&&&
'
(
+
N
k
pp
ksksXORN
J
hh
Jerf
Jerf
1
0
21
1
ˆ,1
ˆ
21
2)
uk
Système observé
?0 skyk
Yk etestimation dela réponseimpulsionnelle
BIMBO_inlineModèle échantillonné
( ) ( )( )!=
=N
k
ksksXORN
J
1
ˆ,1
y
( ) ( ) ( )knhkunyn
k
!="=
ˆˆ
1
i de décalé 10=!
p
ph
1630/10/07 Christophe Le Blanc
h0 et h1BIMBO_inline – Résultats de simulation
y et yhat
( )
( )21
21
1-
9.08.11
4304.04304.0zH
: transfertdefonction de filtreun est
!!
!!
+!
!=
zz
zz
S
Convergence, stabilité
incertitude sur h(n) conforme au modèle
1730/10/07 Christophe Le Blanc
BIMBO_inline – configuration – rôle de (a,b)• Compromis entre vitesse et
précision suivant le rapport a /b• Solution : (a,b) variable
Convergence de h1, BIMBO_inline version 2 pour différentes valeurs de (a, b)
1830/10/07 Christophe Le Blanc
BIMBO_inline – configuration – rôle de (a,b)• Compromis entre vitesse et
précision suivant le rapport a /b• Solution : (a,b) variable
Comparaison entre h1 commandé par un couple(a, b) constant et
h1 commandé un couple (a, b) évoluantsuivant le signal ci dessous
Convergence de h1, BIMBO_inline version 2 pour différentes valeurs de (a, b)
1930/10/07 Christophe Le Blanc
BIMBO_inline – améliorations (2)
sk
BIMBO_inline
Nh étages
s uab
uk
Système observé
Hyk
Estimation de l’erreur& Commande
yhat shat
• Pilotage del’algorithme :
• Commande du couplede paramètres (a,b)
2030/10/07 Christophe Le Blanc
BIMBO_inline – codage• Deux axes :
– Code généré automatiquement(cf. outils)
– Code généré manuellement• Résultats cohérents
Mode % de
registres occupés
% de portes
occupées
Nombre
de blocs
18*18
Fréquence
maximale de fonctionnement
normal
Automatique 4163/67584
6%
7995/33792
23%
128/144
88%
30 Mhz
Manuel 6934/67584
10%
6764
20%
128/144
88%
50 Mhz
Résultat de la synthèse sur le FPGA xilinx 2v6000
Long à générerCombinatoiresDifficilement débogableNon optimiséMoins rapide d’exécution
inconvénients
Plus fiableChoix d’optimisationsRapidité d’exécution
Rapide à générerfiable
avantages
Code ‘manuel’Code ‘automatique’
2130/10/07 Christophe Le Blanc
• La cible : carte Nallatech Bennuey– 3 FPGA Xilinx 2v6000– Banc pins de test– Configuration par bus PCI– Dialogue par liaison RS232
BIMBO_inline – Tests et Résultats
FPGA Xilinx – Nallatech
BIMBO_inline
PC
Système observé
?0
(uk,, sk )
yk
Yk et estimationde la réponseimpulsionnelle
RS232
RS232
Modèle Bimbo_inline
PCI : configuration du FPGA
2230/10/07 Christophe Le Blanc
Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective
2330/10/07 Christophe Le Blanc
Identification – principes• Identification du système observé• A partir de l’estimation de y obtenue avec BIMBO_inline• Moindres carrés - BIMBO
Modèle échantillonnéajustable du procédé
Algorithme d’adaptationparamétrique (A.A.P) :
Moindres carré
Paramètres du modèle
uk
Système observé
?0sk
yk
yk
sk
BIMBO_inline :
Approximation de y
2430/10/07 Christophe Le Blanc
Identification – moindres carrés – optimisation• Cet algorithme a été testé avec Matlab et Simulink• Résultats cohérents et convergents• Problèmes :
– Rapidité– précision
• Solution : l’ajout d’un facteur de coût λ
Nouveau compromis entre
vitesse et précision
Estimation d’un élément de la fonction de transfert de (S)Pour plusieurs valeurs de λ
2530/10/07 Christophe Le Blanc
Identification – moindres carrés – implémentation• Algorithme pas facilement implémentable en vhdl :
– Division– accumulation
• Adapté plus adapté à un traitement de type DSP (calcul matriciel,sommes de multiplications) :– > choix
• FPGA + DSP• FPGA avec cœur de DSP
• Finalement : cœur de processeur dans FPGA:– Leon3 : open core– Architecture RISC 32 bit– instruction norme SPARC V8– Format flottant 32 bits.– Codage en C
Synoptique du cœur LEON 3
2630/10/07 Christophe Le Blanc
PC
Identification – moindres carrés – Résultats• Résultats probants en simulation (Modelsim) :*
– Problème de lenteur résolu par la FPU• Validation sur la cible FPGA :
– Mêmes résultats qu’avec simulateur
FPGA Xilinx – Nallatech
BIMBO_inline
(uk,, sk )
Système observé
?0
Estimation dela fonction detransfert
RS232
Modèle Bimbo_inline
PCI : configuration du FPGA
2730/10/07 Christophe Le Blanc
Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective
2830/10/07 Christophe Le Blanc
Identification – chaîne globale – Matlab• Juxtaposition de BIMBO_inline et de l’algorithme des moindres
carrés• Configuration pour choix entre rapidité et précision:
– Choix de λ– Choix du couple (a,b)
• Stade actuel : simulation (Modelsim)
A (3) estimé avec paramètres fixes et variables
Modèleajustable
Moindres carréParamètres
uSystème observé
?0sy
y
s
BIMBO_inline
2930/10/07 Christophe Le Blanc
Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective
3030/10/07 Christophe Le Blanc
Conclusion• Différents éléments traités à ce jour :
– Outils et méthodologie• Deux outils choisis puis testés et validés• Leur mode de fonctionnement analysé
– Identification• BIMBO_inline : de la modélisation aux tests
Modélisation Matlab SimulinkOptimisation : algorithme aujourd’hui paramétrable et quantifiableCodageTests sur carte (non fini)
• Moindres carrés :Modélisation MatlabValidation fonctionnelleCode généré et testé uniquement sur simulateurConnexion possible et paramétrable à BIMBO_inline
3130/10/07 Christophe Le Blanc
La suite• Simulation et tests sur carte :
– Chaîne globale
• Test et validation d’un autre algorithme d’identification : BIMBO
• Choix d’un autre processeur de traitement ?• Test des performances sur DSP
3230/10/07 Christophe Le Blanc
Merci pour votre attention
3330/10/07 Christophe Le Blanc
Identification – moindres carrés – principe• Algorithme des moindres carrés :
( ) ( )( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( )1)(1)(1
11
11
0
0
+++=+
!+=+
""#
$%%&
'
+!=+
((
(
tttFtt
tttyt
ttFt
tFtttFtFtF
T
T
T
)*++
*+)
**,
**
,
[ ]
( ) ( ) ( ) ( )[ ]
( )oublifacteur d'
yhatsurprioriàerreurlestt
ndtudtuntytyt
bbaa
F
zaza
zbzbzb
BA
T
ndn
T
n
n
dn
n
dd
A
A
B
B
'
1..,1..)(
paramètresdesvecteurleest..,..
adaptationd’ matricielgain leest
..1
...
:forme la deest observé système Le
:Où
0
1
1
1
1
21
!
"
#
$
•
•
+%%%+%%%=•
=•
•
+++
+++
•
&
%%
%%%%%
Modèleajustable
IdentificationParamètres dumodèle
uk
Système observé
?0sk
yk
yk
sk
BIMBO_inline