Show Posts
Pages: [1] 2 3 ... 86
1  International / Français / Re: [Aide] Afficher des chiffres de 0 à 9 sur un écran Color LCD Shield on: September 18, 2014, 01:51:46 pm
Bonjour,
+1
Surprenant comme réaction, il faudrait aussi interdire toutes autres formes de documentations smiley-wink
2  International / Le bar / Re: PID, Ziegler & Nichols et Fussy Logic on: September 16, 2014, 03:23:28 am
Bonjour Heloderma-kris,
la logique flou me plais assé car daprés ce que tu dit on peut donc ce passé de la recherche des coeficients Kp,Ki et Kd.
meme s'il sont réintroduit par la suite biensure sous une autre forme !

je me demander , dans le cas d'un PID standard on doit imperativement bien normé le systeme pour que cela marche ( par exemple un même systeme de régulation d'une piece n'aurat pas les memes coeficient si l'on change de piece et de radiateur!

est ce que dans le cas d'une logique flou on peut transgréssé ce type de problematique?

et enfin est 'il envisageable de faire un systeme auto adaptatif , qui calculerai et ajusterai ces propres parametres au cours du temps?
Dans le cas d'un régulateur flou PID, on va agir uniquement sur l'erreur (correspond au terme de proportionnalité), la variation d'erreur (correspond à l'intégrale) et la variation[de la variation d'erreur] (correspond à la dérivée) donc, à priori, les réglages devraient ne pas différés suivant la pièce et la radiateur.
Dans son principe la régulation flou est déjà auto-adaptatif mais si tu précises un peu mieux ta problématique, je veux bien regarder le sujet d'un peu plus près.
@+
3  International / Le bar / Re: PID, Ziegler & Nichols et Fussy Logic on: September 15, 2014, 02:43:54 pm
La logique floue
Après avoir réalisé un dispositif d'appertisation en utilisant un régulateur PID numérique pour la régulation de température et la difficulté à déterminer et d'ajuster les différents coefficients Kp, Ki et Kd. La détermination des coefficients par les méthodes de Ziegler & Nichols (boucle ouverte et boucle fermée) est relativement facile mais la mise en œuvre se termine souvent par la méthode des tâtonnements successifs. Les coefficients sont fortement impactés par le temps échantillonnage et par la conversion commande/PWM.

Une question c'est posé à ce moment là, la logique floue est-elle plus simple et plus efficace ?

Me voilà parti pour une nouvelle aventure !

La logique floue est omniprésente dans notre vie de tous les jours (machine à laver, four micro-ondes, aspirateurs, stabilisateur de caméscopes, correcteur yeux rouges des appareils photos, ABS des voitures, jeux vidéos, médecine, agriculture, etc....). La liste des équipements utilisant cette technique est énorme.
Sur certains appareils, on trouve même le logo ''Fussy Logic Inside''. smiley

I. Généralité.

Sans vouloir faire un cours sur la logique floue (Fussy Logic pour nos amis anglophones) j'en suis parfaitement incapable smiley-wink
Une approche théorique relativement facile du sujet est disponible sur le site du zéro et, de plus, les articles sur le sujet ne manquent pas sur la toile.
Il y avait également la possibilité d'utiliser des librairies disponibles pour Arduino mais elles sont relativement complexes et souvent mal documentées.
Pour les amateurs de bibliothèques, celle qui me parait le mieux documentée se trouve ici.
Je dois avouer que je n'ai rien compris et que l'énergie à mettre œuvre pour comprendre cette librairie est importante, et je préfère la mettre dans la compréhension de la logique floue. A quoi bon une bonne librairie si on ne comprend pas le principe !

II. Principe.

La commande floue permet de traiter des commandes de processus uniquement à partir des connaissances de comportement qui sont formulées par des spécialistes du procédé en langage naturel (forme linguistique).

On part d'entrés physiques pour les transformer en variables linguistiques (langage naturel). Cette opération s'appelle la fuzzification.
Finalement la fuzzification d'une valeur numérique en degré d'appartenance flou par évaluation d'une fonction d'appartenance (ce n'est pas toujours clair smiley-wink). Par exemple : il fait beau peu appartenir à OUI pour 70 % et NON pour 30 %

Les variables linguistiques sont soumises au moteur d'inférence qui se chargera d'appliquer les règles d'inférences. Ces règles, dictées par les experts, représentent les connaissances que l'on a du système ou processus.

La dernière étape est la défuzzification qui consiste à transformer les variables linguistiques produites par les règles d'inférence via le moteur d'inférence en une sortie de commande physique (numérique).

Les règles d'inférence sont construites sous la forme :
Quote
- Si prémisse1 ET prémisse2 ALORS conclusion1
- SI prémisse3 ALORS conclusion2
- etc.

Attention : les conjonctions OU, ET et NON n'ont pas la même signification qu'en logique classique ou ''logique nette''.

Un petit schéma pour résumer la situation :
Avertissement :
L'approche des problèmes par la logique floue est différente de celle d'une démarche scientifique.

Elle est beaucoup plus pragmatique que déterministe.

Ne pas être trop cartésien pour aborder la logique floue.

II.1 Avantages.

- pas de modèles mathématiques,
- une théorie simple pour des systèmes complexes,
- système pouvant être fortement non linéaire,
- connaissances en 'automatique' réduites,
- une robustesse de commande vis à vis des incertitudes,
- une possibilité de commande auto-adaptative aux variations du procédé.

II.2 Inconvénients.

- une technique de réglage essentiellement empirique (j'aime la méthode des tâtonnements successifs ou des petits pas),
- la performance dépend de l'expertise,
- pas de certitude d'avoir les réglages optimaux,
- pas de théorie générale qui caractérise la stabilité et la robustesse.

III. Etude de cas.

Comme il faut bien un exemple et que cette étude fait suite à la réalisation de mon dispositif d'appertisation, je reste dans le domaine de la régulation de température (ce n'est qu'un choix arbitraire).
Pour ne pas trop compliquer les choses, j'ai choisi l'étude d'un régulateur flou de type P (proportionnel). Dans ce cas, on n'a qu'une entrée et une sortie. Pour l'entrée, on a la différence entre la consigne et la température mesurée (e = consigne – temp_mesuree) et en sortie, on a la commande (en PWM) de la plaque chauffante.

Soit :

Code:
cde(t) = Kp * e(t)

avec :
- cde(t) : commande appliquée à la plaque chauffante,
- Kp : coefficient de proportionnalité,
- e(t) : consigne (cons) – température mesurée (temp_mesuree).

L'utilisation de la logique floue permettra d'effacer le coefficient Kp qui est ré-introduit d'une manière différente.

Episode suivant : les fonctions d'appartenance

[edit1] Vos remarques et/ou suggestions sont les bienvenues
4  International / Français / Re: Utilisation d'un arduino dans un jeu de type COIN PUSHER on: September 15, 2014, 02:27:11 pm
Re,
Comment ça fonctionne? Avec l'arduino ou à part? Il en faudrait deux?
Le module se commande via une interface SPI et, bien sur, dans ton cas il en faudrait 2.
Il y a également celui ci qui se pilote via une interface série TTL.
J'avais utilisé un petit frère du dernier pour faire une horloge qui reproduisait les cloches de l'horloge de l'église du village smiley
Le projet a rapidement rejoint les cartons pour cause de perturbations nocturnes  smiley-mr-green
Nota : il te faudra un mélangeur audio pour réunir les 2 sorties audio.
@+
[edit] exemples mélangeurs audio
5  International / Français / Re: Utilisation d'un arduino dans un jeu de type COIN PUSHER on: September 15, 2014, 02:04:38 pm
bonsoir,
Je pensais à ce genre de module MP3
@+
6  International / Français / Re: Utilisation d'un arduino dans un jeu de type COIN PUSHER on: September 15, 2014, 12:44:16 pm
Bonsoir,
si tu souhaite une musique de fond , le plus simple est peut etre  d'utiliser un lecteur MP3 pour le fond sonore et un systeme dedié aux bruitage.
La solution de luxe, 2 lecteurs MP3 + un mélangeur. smiley
7  International / Français / Re: Problèmes d'encodeur EC11 on: September 15, 2014, 05:05:49 am
Bonjour,
Pas besoin de grande recherche, tu mets une résistances de 4.7k entre le +5V et le SDA et une autre de 4.7k entre le +5V et le SCL.
@+
8  International / Français / Re: Utilisation d'un arduino dans un jeu de type COIN PUSHER on: September 15, 2014, 02:36:27 am
Bonjour,
Pour les résistances à mettre en série avec les leds (comme tu étais sur le site de ton fournisseur), il y avait ceci :
Calcul valeur résistance led
9  International / Français / Re: Problèmes d'encodeur EC11 on: September 15, 2014, 02:31:34 am
Bonjour,
Une variable booléenne prend les valeurs suivantes :
- 0 pour false,
- <> 0 pour true. (donc entre 1 et 255)
@+
10  International / Français / Re: pb chargement bibliotheque on: September 14, 2014, 03:42:45 am
Bonjour Xavier,
Hello,

La Mega n'est pas une avr mais une arm, la librairie que tu utilises n'est pas compatible ; il te faudra en trouver une autre.
La ATmega2650 est bien un AVR
@+
11  International / Français / Re: Probleme avec LCD 1602 I2C on: September 13, 2014, 06:43:28 am
Bonjour,
Pour que le bus I2C fonctionne il faut des résistances de pullup sur les lignes SDA SCL.
Ton LCD possède-t-il ces résistances (voir dans le datasheet du LCD) ?
Si ce n'est pas le cas, il faut ajouter une résistance de 4,7k entre le +5V et la lignes SDA. Idem pour la ligne SCL.
@+
12  International / Le bar / Re: PID et sieurs Ziegler & Nichols on: September 12, 2014, 04:42:46 pm
Salut Super_Cinci,
Pt'êt' ben qu'oui, pt'êt ben qu'non... c'est pour ça qu'aucun processeur n'a pu être développé en normandie...
Ce n'est pas propre à la Normandie mais j'ai l'impression que c'est pareil sur tout le territoire.  smiley-lol
Sinon, tu as un système très stable, mais est-ce qu'une variation de secteur peut mettre en vrac ton soft? Chez mes parents, il y a 240V en été et 190V en hiver... Ils ont une usine à veaux qui s'est installée à 200m, et depuis, même leur modem ADSL a du mal à synchroniser en hiver...
Normalement le soft doit tenir :
Si la puissance de chauffe diminue (baisse de tension) l'écart entre la consigne et la mesure augmente donc immédiatement le PWM augmente pour compenser. On est dans le principe même des régulateurs PID, cad réagir aux perturbations extérieures.
@+
13  International / Français / Re: Probleme avec LCD 1602 I2C on: September 12, 2014, 02:08:05 pm
Bonsoir,
+1
Montre nous le schéma que tu utilises
@+
14  International / Le bar / Re: PID et sieurs Ziegler & Nichols on: September 12, 2014, 09:40:54 am
Re,
je rajoute ces deux lien qui sont for intéréssant car il permete a de debutant comme moi d'y voir plus clair!
l'auteur explique bien la notion de PID dans le premier lien , et montre sur le second avec  un moteur comment realisé ce type d'aservisement avec un arduino !
http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
http://www.ferdinandpiette.com/blog/2012/04/asservissement-en-vitesse-dun-moteur-avec-arduino/
Une autre documentation intéressante : http://www.schneider-electric.fr/france/fr/produits-services/cahiers-techniques/cahier-technique-automatismes.page?c_filepath=/templatedata/Content/Technical_Publication/data/fr/local/automatismes/automatismes-reseaux-information/ct191.xml
15  International / Le bar / Re: PID et sieurs Ziegler & Nichols on: September 12, 2014, 08:40:55 am
Re Heloderma-kris,
pour moi ça reste FLOU tout ça ! smiley-mr-green
Rien de plus simple. smiley-wink

Logique classique (binaire):
On a : OUI ou NON (0 ou 1, low ou high, etc)

Logique flou:
On a : OUI, NON ou PEUT-ETRE

Pour la mise en oeuvre, c'est une autre histoire smiley

[edit] Avec cette notion de logique flou, on arrive à formaliser le raisonnement humain  smiley-eek-blue
Pages: [1] 2 3 ... 86