Mise en œuvre FPGA temps réel d`un algorithme d`identification

Transcription

Mise en œuvre FPGA temps réel d`un algorithme d`identification
2006
Mise en œuvre FPGA temps réel
d’un algorithme d’identification basé sur la
mesure de données binaires
• CEA – LETI – MINATEC
• Laboratoire MEA (MEMS et Électronique Associée)
• Eric Colinet
• [email protected]
Objectifs
Un exemple de système mis au point au laboratoire :
Accéléromètre Locadyn
Trois 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
30/10/07
Christophe Le Blanc
2
Déroulement de la présentation
1.
2.
3.
4.
5.
Recherche d’outils – méthodologie
Algorithmes d’identification – BIMBO_inline
Algorithmes d’identification – moindres carrés
Algorithmes d’identification – chaîne globale
Conclusion et perspective
30/10/07
Christophe Le Blanc
3
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
nalytical models
inear & non-linear
ontrol theory tools
ystems engineering
ircuit
uilding blocks
igh-level modelling
ignal & noise
C technology
pecifications
dentification
arameters
ompensator optimization
e.g. Matlab)
eedback
lectrical engineering
est methodology
ehavioral (VHDL-AMS, Verilog-A)
TL / Gate-level (VHDL, Verilog)
djustments
ransistor-level (Eldo, Spice)
est engineering
est
nalog
quipment
igital
e.g. ADMS)
estability
ixed-signal
MEMS and E source
Méthodologie
actuelle empruntée lors de projets
30/10/07
Christophe Le Blanc
4
Recherche d’outils – cas du vhdl
•
•
•
•
•
Deux interlocuteurs
Échange d’information
Faiblesse : temps de développement LONG
Spécifications
Optimisation
Modèle Simulink
Validation
Spécialiste
Hardware
modifications
Simulation
Modèle VHDL
Simulation
Résultats de Simulation
Résultats de Simulation
Comparaison
Validation
30/10/07
Christophe Le Blanc
5
Recherche d’outils – première solution VHDL 1
•
•
•
•
•
Cas de code VHDL
Exclusivement des outils
Mathworks
Code synthétisable
Rapidité
Résultats ?
StateFlow
Blocs
Modèle Simulink
Simulink® HDL Coder
Filter Design HDL Coder
Xilinx System Generator for DSP
Modèle VHDL
Cosimulation
Vérification avec l’outil Link for Modelsim
Validation
30/10/07
Christophe Le Blanc
6
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
RT Workshop Embedded Coder
RT Workshop
Ansi C Code
SystemC
Modèle StateFlow
Mentor Graphics : CatapultC
Université de Caroline du Nord :
Outils de passage du
Spark
langage C vers le VHDL
Celoxica
ImpulseC
Mitrion
VHDL
Cosimulation
Vérification avec l’outil Link for Modelsim
Validation
30/10/07
Christophe Le Blanc
7
Recherche d’outils – troisième solution – DSP
•
•
Cible DSP, Texas instrument
Résultats
Modèle Simulink
Link for Code Composer Studio
Code Composer Studio
Code DSP
30/10/07
Christophe Le Blanc
TI :
C2000
C5000
C6000
OMAP
8
Recherche d’outils – choix final
Avantages
Inconvénients
•
•
Méthode VHDL 1
Outils Matlab
Rapidité
1 seule conversion
Méthode VHDL 2
Outils performants
Méthode DSP
1 seule conversion
1 seul outil
Quels résultats ?
Outils de différentes
sociétés
Prix
2 conversions
Quels résultats ?
DSP
Quels résultats ?
La solution 1 est retenue
Testée par la suite
StateFlow
Blocs
Modèle Simulink
Simulink® HDL Coder
VHDL
Cosimulation
Validation
30/10/07
Christophe Le Blanc
9
Déroulement de la présentation
1.
2.
3.
4.
5.
Recherche d’outils – méthodologie
Algorithmes d’identification – BIMBO_inline
Algorithmes d’identification – moindres carrés
Algorithmes d’identification – chaîne globale
Conclusion et perspective
30/10/07
Christophe Le Blanc
10
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
30/10/07
Christophe Le Blanc
11
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 BIMBO
pour validation
Capteur + ASIC
FPGA / DSP
Analogique – Numérique
Identification
Contrôleurs
PC
Capteur
30/10/07
Christophe Le Blanc
12
Objectifs
– Synoptique détaillé (suite)
Entrée test
Julien
Christophe
Gestion des
CNA
alimentations
Interface,
Communication
Capteur + ASIC
Identification:
BIMBO
Temps réel
Correcteurs
(rétroaction)
Gestion de l’énergie:
Managy
Recherche
d’outils
30/10/07
Gestion et config
ASICs
Locadyn, Gyro, ..
PC
gestion CNA
test capteur
Partie numérique : FPGA et/ou DSP
Interface
utilisateur
Convertisseurs
ΣΔ, ..
Capteur
Ensemble
Chaîne de retour
N/A
Alims
CNA
Interfaces
A/N
Entrée test (ΣΔ) :
CNA
Partie
Analogique
Christophe
Le Blanc
13
Partie identification
•
•
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
Système
observéobservé
Système
uk u
k
0
?
0
yk
?
Modèle échantillonné
ajustable du procédé
Modèle échantillonné
ajustable du procédé
Paramètres du modèle
Paramètres du modèle
sksk
yk
BIMBO_inline :
y
Approximation de y
s
yk k
sk
Algorithme d’adaptation
paramétrique (A.A.P)
Algorithme d’adaptation
paramétrique (A.A.P) :
BIMBO_inline :
• Algorithme statistique
• fournit les estimations :
–
De la réponse impulsionnelle
du système observé
– Du signal y
(pour l’algorithme d’identification)
Moindres carré
30/10/07
Christophe Le Blanc
14
BIMBO_inline – Principe
•
•
•
Génération d’un bruit blanc binaire
riche spectralement
Étude des observations u et s uk
Estimation de la réponse
impulsionnelle
Fonction de coût :
J=
•
•
1
N
0
p
0
yk
?
Modèle échantillonné
y
Yk et
estimation de
la réponse
impulsionnelle
! XOR(s(k ), sˆ(k ))
k =1
= 1 décalé de i:
Si
p
lien direct entre l’élément i de la
réponse impulsionnelle et J
sk
BIMBO_inline
N
A l’aide de statistiques, dans le
cas d’un bruit blanc binaire :
!h
Système observé
f-1
(
%
erf "1 (J )
&
#=
0 ˆ
) 2&
h
hp
!
p
& 1 + 2 erf "1 (J ) 2 ##
'
$
1 N
J = ! XOR(s (k ), sˆ(k ))
N k =1
(
)
n
yˆ (n ) = " u (k )hˆ(n ! k )
k =1
30/10/07
Christophe Le Blanc
15
BIMBO_inline – Résultats de simulation
h0 et h1
(S )est un filtre de fonction de transfert :
0.4304 z !1 ! 0.4304 z ! 2
=
1 ! 1.8 z !1 + 0.9 z ! 2
( )
Hz
-1
y et yhat
Convergence, stabilité
incertitude sur h(n) conforme au modèle
30/10/07
Christophe Le Blanc
16
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)
30/10/07
Christophe Le Blanc
17
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) évoluant
suivant le signal ci dessous
Convergence de h1, BIMBO_inline version 2
pour différentes valeurs de (a, b)
30/10/07
Christophe Le Blanc
18
BIMBO_inline – améliorations (2)
•
•
Pilotage de
l’algorithme :
Commande du couple
uk
de paramètres (a,b)
Système observé
H
sk
yk
s
u BIMBO_inline yhat
a
b Nh étages
shat
Estimation de l’erreur
& Commande
30/10/07
Christophe Le Blanc
19
BIMBO_inline – codage
•
•
Mode
% de portes Nombre
Fréquence
occupées
de
maximale de
blocs fonctionnement
– Code généré automatiquement
18*18
normal
(cf. outils)
Automatique 4163/67584 7995/33792 128/144
30 Mhz
– Code généré manuellement
6%
23%
88%
Manuel
6934/67584
6764
128/144
50 Mhz
Résultats cohérents
10%
20%
88%
Deux axes :
% de
registres
occupés
Résultat de la synthèse sur le FPGA xilinx 2v6000
Code ‘automatique’
Code ‘manuel’
avantages
Rapide à générer
fiable
Plus fiable
Choix d’optimisations
Rapidité d’exécution
inconvénients
Combinatoires
Difficilement débogable
Non optimisé
Moins rapide d’exécution
Long à générer
30/10/07
Christophe Le Blanc
20
BIMBO_inline – Tests et Résultats
•
La cible : carte Nallatech Bennuey
–
–
–
–
3 FPGA Xilinx 2v6000
Banc pins de test
Configuration par bus PCI
Dialogue par liaison RS232
PCI : configuration du FPGA
Modèle Bimbo_inline
Système observé
y
0
?
k
RS232
(uk,, sk )
PC
30/10/07
Yk et estimation
de la réponse
impulsionnelle
BIMBO_inline
RS232
FPGA Xilinx – Nallatech
Christophe Le Blanc
21
Déroulement de la présentation
1.
2.
3.
4.
5.
Recherche d’outils – méthodologie
Algorithmes d’identification – BIMBO_inline
Algorithmes d’identification – moindres carrés
Algorithmes d’identification – chaîne globale
Conclusion et perspective
30/10/07
Christophe Le Blanc
22
Identification – principes
•
•
•
Identification du système observé
A partir de l’estimation de y obtenue avec BIMBO_inline
Moindres carrés - BIMBO
Système observé
uk
0
yk
sk
?
BIMBO_inline :
yk
Approximation de y
sk
Modèle échantillonné
ajustable du procédé
Paramètres du modèle
Algorithme d’adaptation
paramétrique (A.A.P) :
Moindres carré
30/10/07
Christophe Le Blanc
23
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 λ
30/10/07
Christophe Le Blanc
24
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
30/10/07
Christophe Le Blanc
25
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
PCI : configuration du FPGA
Modèle Bimbo_inline
(uk,, sk )
Système observé
0
?
BIMBO_inline
Estimation de
la fonction de
PC transfert
30/10/07
RS232
FPGA Xilinx – Nallatech
Christophe Le Blanc
26
Déroulement de la présentation
1.
2.
3.
4.
5.
Recherche d’outils – méthodologie
Algorithmes d’identification – BIMBO_inline
Algorithmes d’identification – moindres carrés
Algorithmes d’identification – chaîne globale
Conclusion et perspective
30/10/07
Christophe Le Blanc
27
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)
Système observé
u
0
y
s
?
BIMBO_inline
Modèle
ajustable
Paramètres
y
s
Moindres carré
A (3) estimé avec paramètres fixes et variables
30/10/07
Christophe Le Blanc
28
Déroulement de la présentation
1.
2.
3.
4.
5.
Recherche d’outils – méthodologie
Algorithmes d’identification – BIMBO_inline
Algorithmes d’identification – moindres carrés
Algorithmes d’identification – chaîne globale
Conclusion et perspective
30/10/07
Christophe Le Blanc
29
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 Simulink
Optimisation : algorithme aujourd’hui paramétrable et quantifiable
Codage
Tests sur carte (non fini)
• Moindres carrés :
Modélisation Matlab
Validation fonctionnelle
Code généré et testé uniquement sur simulateur
Connexion possible et paramétrable à BIMBO_inline
30/10/07
Christophe Le Blanc
30
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
30/10/07
Christophe Le Blanc
31
Merci pour votre attention
30/10/07
Christophe Le Blanc
32
Identification – moindres carrés – principe
•
Algorithme des moindres carrés :
T
1'
F (t )* (t )* (t )F (t )$
""
F (t + 1) = %% F (t )!
T
,&
, + * (t )F (t )* (t ) #
Système observé
u
0
?
k
) (t + 1) = y (t + 1)! + (t )* (t )
(
s
k
k
BIMBO_inline
(T
0
y
y
k
(
Modèle
ajustable
+ (t + 1) = + (t ) + F (t + 1)* (t )) 0 (t + 1)
Où :
• Le système observé est de la forme :
Paramètres du
modèle
s
k
Identification
b1 z % d + b2 z % d %1 + ... + bnB z % nB % d
1 + a1 z %1 + .. + an A z % n A
• F est le gain matriciel d’ adaptation
&T
• $ = [a1..an , bd ..bn ] est le vecteur des paramètres
• # (t )T = [% y (t ).. % y (t % n A + 1), u (t % d )..u (t % d % nB + 1)]
• " 0 (t )est l ' erreur à priori sur yhat
• ! facteur d'oubli
30/10/07
Christophe Le Blanc
33