Identification par séquences binaires pseudo

February 7, 2018 | Author: Anonymous | Category: N/A
Share Embed


Short Description

Download Identification par séquences binaires pseudo...

Description

ECOLE D’INGENIEUR EICNAM

Identification par séquences binaires pseudo-aléatoires De la théorie à la pratique Adil El Missouri 16/06/2015

Remerciement à Alain Caffard, François Malburet et Frédéric Villecroze

Identification des systèmes linéaires par S.B.P.A

Contenu I.

Introduction ................................................................................................................................... 2

II.

Théorie ........................................................................................................................................... 2 Identification par signaux aléatoires .................................................................................................. 2 a)

Fonction de corrélation .......................................................................................................... 2

b)

Produit de convolution ........................................................................................................... 3

c)

Bruit Blanc .............................................................................................................................. 4

d)

Séquence Binaire Pseudo-Aléatoire ....................................................................................... 4

e)

Identification par S.B.P.A ........................................................................................................ 6

III.



Intérêt du signal S.B.P.A ..................................................................................................... 7



Conditions .......................................................................................................................... 7

Pratique ...................................................................................................................................... 8

1.

Identification de système simulé ................................................................................................ 8 f)

Système simulé....................................................................................................................... 8

g)

Réponse impulsionnelle et indicielle réelles ........................................................................... 9

h)

Injection de S.B.P.A en entrée .............................................................................................. 11

i)

Traitement des données ....................................................................................................... 12 

Tracé des données ............................................................................................................ 12



Vérification des données de l’entrée ................................................................................ 12

j)

Identification par corrélation................................................................................................ 13

k)

Identification paramétrique ................................................................................................. 14 

2.

Modèles ARX et ARMAX : ................................................................................................. 14

Identification de système réel .................................................................................................. 15

IV.



Outils: ............................................................................................................................... 15



Exploitation ...................................................................................................................... 17

Comparaison ............................................................................................................................ 20

1.

Récapitulatif des résultats ........................................................................................................ 20 l)

Réponses impulsionnelles .................................................................................................... 20

2. Comparaison entre les estimations simulées sous Matlab et l’estimation sur système réel avec Labview .................................................................................................................................... 23 3.

A d i l

E l

Comparaison des réponses estimées sur Procédé réel ............................................................ 24

V.

Conclusion .................................................................................................................................... 25

VI.

Bibliographie ............................................................................................................................ 26

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 1

Identification des systèmes linéaires par S.B.P.A

I.

Introduction

Il est souvent demandé dans ce type de documents de respecter la propriété intellectuelle des informations introduites et de citer la source, donc l’intérêt du document écrit est d’apporter quelque chose de nouveau. Si on applique ceci au sujet des identifications par signaux aléatoires une remarque s’impose, le fait que sur la toile on trouve une infinité de publications partant des cours des traitements des signaux aux thèses spécialisées, MAIS, de la théorie et que de la théorie, on trouve des exemples théoriques ou incomplets, par contre je ne suis pas arrivé à trouver un document écrit décrivant une méthode complète avec un système réel identifié par les méthodes théoriques pour voir à quel point la théorie corrèle avec la pratique. D’où le but de cette étude, de mettre en œuvre les fonctions théoriques, les appliquer à un procédé simulé et un autre réel et les comparer. L’objectif est d’extraire de la théorie les fonctions dont nous avons besoin, de décrire des procédures et méthodes pratiques pour identifier un système soumis à une séquence binaire pseudo aléatoire à son entrée, décrire l’intérêt de ce signal justifier ce choix et exploiter les mesures. En autres mots une personne avec un minimum de connaissances en notions de traitement du signal puisse identifier un système avec succès.

II.

Théorie

Dans ce chapitre nous allons citer les fonctions utiles pour la partie pratique en expliquant le plus simplement possible.

Identification par signaux aléatoires a) Fonction de corrélation La fonction corrélation ou inter corrélation permet de déterminer le degré de ressemblance entre deux signaux

x et y

Deux signaux qui se ressemblent ont une corrélation proche de 1, deux signaux complètements différents (c'est-à-dire il n’ya aucune loi qui peut les relier) ont une corrélation égal à 0. Elle est définie par la relation suivante :

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 2

Identification des systèmes linéaires par S.B.P.A

Avec : est le conjugué complexe de Cas particulier, la fonction d’autocorrélation : La fonction d’autocorrélation est la fonction de corrélation d’un signal

x avec lui-même, c'est-à-dire

une fonction qui détermine à quel point ou combien de temps le signal peut être déterministe, ou la possibilité de prédire une loi d’évolution de ce signal. Elle est définie par la relation suivante :

Puisqu’en pratique on utilise des systèmes échantillonnés, nous serons amenés à utiliser des algorithmes discrets de corrélation : Formule d’inter corrélation entre deux signaux :

b) Produit de convolution

Le produit de convolution de deux fonctions f et g est définit par la relation :

Ou en signaux discrets:

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 3

Identification des systèmes linéaires par S.B.P.A

c) Bruit Blanc

Le bruit blanc, est un signal composé de toutes les fréquences, chaque fréquence ayant la même énergie, pour mieux comprendre on peut le comparer à la « lumière blanche » qui est un mélange de toutes les couleurs. Propriété :

La fonction d’autocorrélation d’un bruit Blanc est égale à une impulsion de Dirac :

Cette propriété peut être utilisée comme Définition même du bruit Blanc. d) Séquence Binaire Pseudo-Aléatoire

Une séquence binaire pseudo aléatoire qu’on va noter dans la suite du document S.B.P.A est un signal binaire aléatoire, mais sur une longue durée de temps il est périodique. La génération d’un tel signal se fait à l’aide de registres à décalages (bascules), bouclées avec un ou exclusif (voir figures 1 et 2).

Figure 1 :Génération d’une S.B.P.A

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 4

Identification des systèmes linéaires par S.B.P.A

Figure2 :Exemple de S.B.P.A à 3 registres

L’allure du signal est une suite d’états binaires aléatoires avec l’état haute la plus longue est égal au nombre de registres (voir figure 3)

Figure3 : Allure d’une SBPA à 3 registres

Te temps de l’horloge. N= longueur de la séquence en nombre d’impulsions (états hauts et bas confondues). NTe longueur de la séquence en unités de temps. 3Te est la longueur de l’état haute la plus longue. La longueur de séquence et la longueur de l’état haute la plus longue dépendent du nombre de registres, ces derniers doivent être bouclés avec un ou exclusif, voici un tableau qui résume la relation entre le nombre des registres la longueur de la séquence et les bits des registres qui doivent être additionnés exclusivement :

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 5

Identification des systèmes linéaires par S.B.P.A

L’avantage majeur des S.B.P.A est qu’elle est une valeur moyenne nulle sur une longueur de séquence, ainsi qu’elle est approximatif (en prenant une fréquence d’échantillonnage adéquate) à un bruit Blanc, c'est-à-dire elle a une fonction d’autocorrélation proche d’un Dirac (figure 4), dans la suite on étudiera l’intérêt de ce signal.

Figure 4 : Autocorrélation d’une S.B.P.A

e) Identification par S.B.P.A

Considérons un système linéaire invariant dans le temps, de réponse temporelle h(k) et de fonction de transfert H(n). La relation temporelle qui relie la sortie y(k) à l’entrée x(k) est la suivante :

y(k) = x(k) ∗ h(k) La relation entre la corrélation de la sortie et l’entrée:

Cyx(k) = Cxx(k) ∗ h(k) A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 6

Identification des systèmes linéaires par S.B.P.A

Où Cyx(k) est l’inter corrélation entre la sortie et l’entrée du filtre. Si le signal x(k) est un bruit blanc, Alors sa fonction d’autocorrélation est une impulsion de Dirac Cxx(k) = δ(k), d’où :

Cyx(k) = δ(k) ∗ h(k) = h(k) (équation (1))

L’inter corrélation entre la sortie et l’entrée du système correspond à la réponse impulsionnelle du système. Intérêt du signal S.B.P.A

Puisque la S.B.P.A sur une longueur de séquence à une autocorrélation proche d’un Dirac, le fait de l’utiliser en entrée du système à identifier, en application de l’équation (1) on pourra retrouver la réponse impulsionnelle du système en calculant l’inter corrélation entre la sortie est l’entrée. Conditions:



Condition nécessaire Soit N le nombre de registres. Te le temps de l’horloge. Tm le temps de montée du système.

La durée maximale d’une impulsion étant NTe, pour identifier le gain statique convenablement il faut que NTe soit plus grand ou égal à tm (voir figure 5).

Figure 5 : temps de montée par rapport à l’impulsion maximale



A d i l

E l

M i s s o u r i

Condition pratique Pour respecter la condition précédente, dans certains cas, nous sommes amené à prendre N assez grand, ce qui peut mener à des nombres de valeurs échantillonnées assez important est donc lourd à manipuler. 1 6 / 0 6 / 2 0 1 5

Page 7

Identification des systèmes linéaires par S.B.P.A

Pour pallier à ceci il faut choisir Fh (fréquence de l’horloge) de façon qu’il soit un sous multiple de la fréquence d’échantillonnage Fe : 𝐹ℎ =

𝐹𝑒

Avec a ϵ {1, 2,3…}

𝑎

Remarque : L’amplitude du signal S.B.P.A peut être assez faible (en pratique aux alentours de 5% de la valeur de fonctionnement du système), il faut seulement qu’elle soit plus grande que la valeur du bruit résiduel.

III.

Pratique

1. Identification de système simulé Dans cette partie on utilisera les logiciels Matlab et Simulink pour identifier un système simple. f) Système simulé

le système simulé sera comme sur la figure 6, avec une entrée E et une sortie S pour toute la suite du document.

E

Système

S

Figure 6 : Système

Un circuit RC (figure 7) peut satisfaire aux conditions de linéarité et invariance dans le temps pour être identifiable par SBPA. On appliquera une tension d’entrée E et mesurera la tension de sortie S. Avec R= 20Ω Et C= 10µF

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 8

Identification des systèmes linéaires par S.B.P.A

E

S

Figure 7 : Circuit à identifier Avec E tension d’entrée et S tension de sortie

g) Réponse impulsionnelle et indicielle réelles

Puisque tout système linéaire invariant dans le temps peut être caractérisé par sa réponse impulsionnelle nous allons mesurer celle-ci ainsi que la réponse indicielle (cette dernière est plus parlante pour nos sens humains) Pour cela on construit un diagramme sous Simulink (voir figure 8), simulant un circuit RC, une alimentation, et un bloc de mesure de tension.

Figure 8 : Diagramme Pour obtenir les réponses indicielle et impulsionnelle

En générant une impulsion d’amplitude 1 et de longueur 0.01 seconde (pour être proche d’une impulsion de Dirac) on obtient la réponse sur la figure 9.

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 9

Identification des systèmes linéaires par S.B.P.A

Figure 9 : réponse impulsionnelle

De même pour la réponse à un échelon (voir figure 10).

Figure 10 : réponse indicielle.

L’objectif est de comparer ces résultats aux réponses estimées que nous allons obtenir par identification du même système.

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 10

Identification des systèmes linéaires par S.B.P.A

h) Injection de S.B.P.A en entrée

Pour identifier le système nous allons injecter une S.B.P.A en entrée et enregistrer les données d’entrée-sortie dans l’espace de travail de Matlab afin de les analyser par la suite, pour ceci on construit le diagramme Simulink (voir figure 11). Pour respecter les règles d’identification par SBPA on choisit les valeurs suivantes : Fréquence d’échantillonnage = 100Hz Longueur de la séquence binaire= 1023s Temps de l’horloge de la séquence = 1s S.B.P.A en Entrée du Système

Enregistrement des valeurs de l’entrée

Enregistrement des valeurs de la sortie

Figure 11 : Système soumis à une S.B.P.A en entrée

Après exécution du modèle les données d’entrée et sortie sont enregistrés respectivement dans les variables Tableaux de dimension 1 : « entree_sbpa » et « reponse », elles seront transférées via la fonction « To Workspace » vers l’espace de travail Matlab (figure 12).

Figure 12 : espace de travail Matlab

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 11

Identification des systèmes linéaires par S.B.P.A

i) Traitement des données

A partir de là nous allons décrire le traitement à faire séquentiellement avant toute analyse. Tracé des données

Une première vérification visuelle prévient des éventuelles erreurs commises par imprudence et pour cela nous allons créer une variable data qui regroupe l’entrée et la sortie en une seule, ensuite la tracer avec la fonction plot (voir figure 13) : Code Matlab : data = iddata(reponse,entree_sbpa) ; plot(data) ;

Figure 13 : allure de l’entrée et sortie du système

Vérification des données de l’entrée

Une condition sine qua non pour le bon fonctionnement de la méthode est que le signal d’entrée doit être considéré comme un bruit blanc, pour cela il faut vérifier la fonction autocorrélation qui doit se rapprocher d’une impulsion de Dirac (propriété caractéristique) Sous Matlab on applique la fonction xcorr sur entree_sbpa qui retourne la fonction d’autocorrélation de cette dernière on enregistre dans une variable Xc et on trace à l’aide de la fonction plot :

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 12

Identification des systèmes linéaires par S.B.P.A

Code Matlab : Xc = xcorr(entree_sbpa) ; plot(Xc) ; Nous avons un résultat satisfaisant (voir figure 14).

Figure 14 : Autocorrélation de l’entrée semblable à une impulsion de Dirac

j) Identification par corrélation

La réponse impulsionnelle caractéristique du système peut être obtenue par application de la fonction inter corrélation entre la sortie et l’entrée pour cela on applique la fonction Matlab d’identification par corrélation : A=impulseest(data,); impulse(A,50); step(A,80);

Estimation réponse impulsionnelle par corrélation Tracé des réponses impulsionnelle et indicielle

Ce qui produit le résultat (figure 15).

Figure 15 : réponse impulsionnelle et indicielle estimées par corrélation

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 13

Identification des systèmes linéaires par S.B.P.A

k) Identification paramétrique Modèles ARX et ARMAX :

De la même façon l’application de la fonction arx pour déterminer le modèle ARX comme ceci : B = arx(data,[1 2 0])

C = armax(data,[2 2 2 1]) ;

Le deuxième argument est respectivement [ordre, nombre de pôles, nombres de zéros)

fonction qui estime le modèle ARMAX

De même on trace les réponses indicielles et impulsionnelles de chacun des modèles avec le code suivant : Impulseplot (C) ; Hold on; Impulseplot(B) ; Figure; Stepplot (C); Hold on; Stepplot(B); Le résultat : Nous obtenons respectivement une estimation des réponses impulsionnelles et indicielles (voir figures 16 et17).

Figure 16 : réponses impulsionnelles estimée

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 14

Identification des systèmes linéaires par S.B.P.A

Remarque : les deux réponses des deux modèles sont superposées sur chacun des deux graphes.

Figure 17 : réponse indicielles estimées

2. Identification de système réel Outils:

Pour une identification réussie nous aurons besoins de quatre outils indispensables : un système réel, une carte d’entrée sorties, un logiciel de traitement et une liaison de communication composé d’un support ( la nature de la ligne) et un protocole (la façon de communiquer) Système Pour rester en harmonie avec le modèle simulé, le choix du système sera le même câblé réellement sur une platine électronique, l’idée est de générer une S.B.P.A sur une sortie TOR d’une carte traverser le système puis mesurer la sortie du système sur une entrée analogique d’une seconde carte. Principe (figure 18)

Figure 18 : circuit RC (filtre)

Réalisation (figure 19)

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 15

Identification des systèmes linéaires par S.B.P.A

Figure 19 : circuit réel

Carte d’acquisition :

Figure 20 : carte Arduino Uno

La carte Arduino (figure 20) est une carte microcontrôleur avec 14 entrée/sorties TOR, et 6 entrées ANA. Logiciel de traitement Nous allons utiliser Labview qui a l’avantage d’être un logiciel de programmation visuel, il permet aussi l’acquisition à partir de différentes interfaces dont la carte Arduino. Communication La carte est doté d’une interface USB qui peut contenir une liaison série avec une vitesse qui peut aller jusqu’à 115200 bauds, c’est cette valeur qui a été retenue. De l’autre côté de l’interface Labview est capable d’interpréter cette communication.

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 16

Identification des systèmes linéaires par S.B.P.A

Exploitation

Par analogie au système simulé, le câblage est de manière générer une S.B.P.A sur une sortie 5V qui l’entrée du système puis mesurer la réponse du système sur une entrée analogique (voir figure 21)

SORTIE 5V

Carte (E)

Figure 21 : Schéma de câblage

Avec R= 20Ω Et C= 10µF Remarque: pour avoir un système pratique à identifier, ces valeurs doivent être relativement petites, car dans le cas contraire non seulement le système aura un temps de monté très long, le condensateur ne se déchargera pas facilement car l’entrée de mesure de la carte a une petite impédance. Programme d’acquisition La face avant La face avant du VI (programme) ou l’interface utilisateur (voir figure 22) est composé simplement de trois graphes, pour l’affichage de l’entrée, la sortie et la réponse impulsionnelle estimée.

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 17

Identification des systèmes linéaires par S.B.P.A

Figure 22 : Face avant (ou interface Homme machine)

La face arrière La face arrière (voir figures 23 et 24) ou ce qu’on appelle le digramme (le code d’exécution) est composée de deux parties, une première pour la lecture sur l’entrée de la carte (A) et l’identification, l’autre pour la génération du signal S.B.P.A et l’écriture sur la sortie de la carte (E), les deux, exécutées simultanément. Première partie : Générateur de signal SBPA

Ecriture sur sortie Numéro 10

Fermeture de la communication

Traitement des erreurs

Ouverture de la communication avec la carte sur le COM1

Configuration de la sortie

Figure 23 : programme injection S.B.P.A

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 18

Identification des systèmes linéaires par S.B.P.A

Seconde partie : Fonction d’identification par corrélation

Acquisition du signal de l’entrée du système

Acquisition du signal de sortie du système

Figure 24 : programme acquisition de l’entrée de la sortie et estimation du système

Résultats Après exécution du VI, on obtient les graphes (figures 25, 26 et 27) : Entrée du système générée puis mesurée sur une entrée analogique :

Figure 25 : Entrée S.B.P.A

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 19

Identification des systèmes linéaires par S.B.P.A

Sortie du système, qui corréspond à la mesure de la réponse à une S.B.P.A injectée en entrée.

Figure 26 : réponse du système.

Réponse impulsionnelle estimée par corrélation:

Figure 27 : Estimation de la réponse impulsionnelle

IV.

Comparaison 1. Récapitulatif des résultats l) Réponses impulsionnelles

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 20

Identification des systèmes linéaires par S.B.P.A

Réponse à une impulsion sous Simulink (figure 9 page 9) :

Réponse estimée par corrélation : (figure 15 page 12)

Réponse estimée avec les modèles arx et armax (figure 16 page 13) :

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 21

Identification des systèmes linéaires par S.B.P.A

Réponse estimée sous Labview sur procédé réel (figure 27 page 19) :

Pour pouvoir faire une comparaison avec ce résultat il faut le transmettre dans l’espace de travail de Matlab, et pour ceci on peut (entre autres) procéder comme sur la figure 28:

Insérer dans le programme un bloc écriture dans un fichier Tableau sur disque.

Figure 28 : écriture des données sur disque

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 22

Identification des systèmes linéaires par S.B.P.A

Ensuite après exécution, ouvrir le fichier avec Excel puis copier dans une variable dans l’espace de travail Matlab, et à partir de là nous pourrons traiter ces données (voir figure 29).

Figure 29 : réponse impulsionelle transferée dans Matlab

2. Comparaison entre les estimations simulées sous Matlab et l’estimation sur système réel avec Labview Tracé des différentes réponses :

Figure 30 : comparaison des réponses impulsionnelles

D’après la figure 30 nous remarquons que l’estimation par Labview, même si elle se rapproche de la théorie, elle reste loin du modèle simulé. Les modèles ARX et ARMAX sont les plus proche des données, la fonction Compare donne le résultat du degré d’adaptation suivant : Modèle ARX =100%, Modèle ARMAX= 100%, identification par corrélation= 95,83%

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 23

Identification des systèmes linéaires par S.B.P.A

3. Comparaison des réponses estimées sur Procédé réel Pour pouvoir avoir un modèle plus pertinent au procédé réel, il est plus judicieux de traiter les données réelles sous Matlab, et dans ce cas-là, de la même façon on enregistre les valeurs d’entrée et sortie du système sous Labview sur le disque et ensuite les récupérer dans l’espace de travail de Matlab. On applique les mêmes fonctions qu’on a appliqué au système simulé : >> data = iddata(reponse, entree_sbpa); >> A=impulseest(data); >> B= arx (data, [1 2 0]); >> C=armax(data,[2 2 2 1]);

On obtient en dessinant les réponses impulsionnelles du système la figure 31 :

Figure 31 : représentation des réponses estimées

Nous pouvons comparer la façon dont les différents modèles estimés sont capables de prédire la sortie (voir figure 32)

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 24

Identification des systèmes linéaires par S.B.P.A

Figure 32 : Comparaison temporelle des différents modèles

On constate que le modèle d’estimation par corrélation est le plus adapté au procédé réel.

V.

Conclusion

L’identification des systèmes par séquences binaires pseudo aléatoires, est une des voies d’identification les plus précises. On constate que pour atteindre l’objectif de ce sujet nous n’avions pas besoins d’être des experts en matière de traitement de signal ou de statistique, il suffit d’appliquer les fonctions adéquates et bien savoir les interpréter. Nous nous sommes limité à la réponse impulsionnelle, puisqu’elle est plus parlante (domaine temporelle) et surtout qu’elle est caractéristique à un système, nous pouvons également à partir des données de réponse à un signal S.B.P.A déduire l’estimation dans le domaine fréquentiel tel que estimer la fonction de transfert, les diagrammes correspondants, et ouvrir la porte à des éventuelles études de stabilité et de correction.

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 25

Identification des systèmes linéaires par S.B.P.A

VI.

Bibliographie 

http://fr.mathworks.com/ site officiel de Mathworks (Matlab et Simulink)



HENRI BOURLES, 2006, Systèmes linéaires de la modélisation à la commande, HERMES.



P. BORNE J.P. RICHARD et al. 1992, Modélisation et identification des processus, Vol2, Edition Technip.



http://fr.wikipedia.org/wiki/Bruit_blanc



https://www.u-picardie.fr/gagou/TraitSignal/Master2/Cours_Master2_08-09.pdf

[01/06/2015]

Cours de traitement de signal Université II de Picardie Jules Verne Master-II de Physique [26/05/2015] 

http://dobigeon.perso.enseeiht.fr/teaching/TNS/TP_TNS_1TR.pdf TP de traitement de signaux l'INP-ENSEEIHT. [26/05/2015]

A d i l

E l

M i s s o u r i

1 6 / 0 6 / 2 0 1 5

Page 26

View more...

Comments

Copyright © 2020 DOCSPIKE Inc.