Show Posts
Pages: [1] 2 3 ... 88
1  International / Le bar / Re: PID, Ziegler & Nichols et Fussy Logic on: September 29, 2014, 11:59:09 am
Bonsoir,
Quelques nouvelles de mes tests, ils ne sont pas à la hauteur de mes espérances, le choix de départ est trop ambitieux et manque de souplesse lors du changement des fonctions d'appartenance.
Le fait de vouloir être le plus général possible me pénalise dans la reprogrammation entre les différents essais.
Pour exemple, un dispositif flou à une entrée m'oblige à calculer une courbe commande = f(entrée). C'est long mais encore faisable, par contre pour un dispositif flou à 2 entrées (cas du PI et PD) le spectre de sortie est une surface et enfin pour 3 entrées (cas du PID) le spectre de sortie est un volume.  Dans ces conditions, le choix retenu ne fonctionne plus.smiley-sad
Il faut que je trouve une solution simple qui sera directement intégrée dans la carte Arduino, quitte à prévoir des simplifications. On ne va pas piloter avec notre carte Arduino une station d'épuration ou un réacteur chimique.
Après de longues lectures et études, je pense avoir une piste qui puisse fonctionner.
La grande révolution se situe au niveau de la défuzzification.
A bientôt.
2  International / Français / Re: [Résolu] Calculs simples sur MEGA 2560 non corrects. on: September 27, 2014, 09:29:36 am
Re,
J'ai l'impression que tu mélanges les points et les virgules dans les nombres réels.
3  International / Français / Re: Calculs simples sur MEGA 2560 non corrects. on: September 27, 2014, 05:37:37 am
Bonjour,
Essaye
u_instant = 4.85/1024*float(zzz-512);
4  International / Français / Re: ESP8266 module wifi on: September 26, 2014, 05:25:15 am
Bonjour,
.....là je pars dans ma campagne pour un W-E prolongé , ...
Ah le chanceux, nous on reste au taffe.
 smiley-mr-green
5  International / Français / Re: Moteur de recherche Francophone on: September 25, 2014, 08:25:05 am
Bonjour Skywodd,
EDIT: changement d'hébergeur pour le formulaire effectuait avec succès. Le formulaire devrait remarcher sans soucis maintenant.
Voilà, il me donne des réponses  smiley-lol
C'est ok.
6  International / Le bar / Re: PID, Ziegler & Nichols et Fussy Logic on: September 23, 2014, 02:44:50 pm
Re,
Episode précédent

VII. Autres modèles de fonctions d'appartenance.

VII.1 fonction d'appartenance d'entrée.

Plage de variation : -255 ≤ erreur ≤ +255
Variable linguistique : erreur
Valeurs linguistiques : erreur nulle ounégative, erreur grande, erreur très grande


VII.2 fonction d'appartenance de sortie.

Plage de variation : 0 ≤ commande ≤ +255
Variable linguistique : commande
Valeurs linguistiques : commande nulle, commande importante, commande très importante


VII.3 Règles d'inférence.

SI erreur nulle ou négative ALORS commande nulle
SI erreur grande ALORS commande importante
SI erreur très grande ALORS commande très importante

VII.4 Commande (MM).


La discontinuité entre erreur 220 et 240 vient du choix des fonctions d'appartenance par l'apprenti expert.

Episode suivant : Les essais
7  International / Le bar / Re: PID, Ziegler & Nichols et Fussy Logic on: September 23, 2014, 01:38:05 pm
Bonsoir,

Episode précédent

VI. La défuzzification.

La phase de défuzzification est tout aussi délicate que la phase de fuzzification. Tout repose sur l'expert, encore lui.smiley

Il existe de nombreuses méthodes pour cette étape mais les deux les plus courantes sont la méthode de la moyenne des valeurs maximales (MM) et la méthode du centre de gravité (CG) (ou plutôt l'abscisse du centre de gravité).

Un petit schéma qui résume les 2 cas de traitement.


Les mêmes résultats pour notre fil conducteur.

VI.1 Méthode MM pour une erreur de 100.


VI.2 Méthode CG pour une erreur de 100.


Si l'on veut effectuer tous ces calculs avec nos cartes Arduino préférées cela risque d'être 'chaud' d'un point de vue temps d’exécution surtout pour le calcul des intégrales.
Dans un applicatif lent comme notre fil conducteur cela pourrait se faire si taille RAM nécessaire le permet. Par contre pour une régulation de vitesse ou un asservissement de position, cela ressemble à une mission impossible.
Nos cartes Arduino n'ont pas la vocation de faire ce type de traitement.

La solution pourra venir d'un calcul extérieur puis d'idéaliser la sortie par des courbes de régressions.

Pour ma part tous les calculs sont faits avec un tableur (libreOffice, openOffice ou autre excel…).

Les courbes ci-dessous représentent la commande en fonction de l'erreur pour les 2 méthodes de défuzzification.


VII. Conclusion provisoire.

VII.1 Méthode MM (courbe bleue).

On peut dire que la forme de la courbe est conforme à nos attentes. J'entends déjà, là bas au fond, toute cette 'usine à gaz' pour arriver à un résultat que l'on aurait pu trouver sur le coin d'une table le matin au petit-déjeuner.smiley
Je dois dire, qu'ils ont raison mais les choses seront moins évidentes lors de l'étude des régulateurs de type PI, PD ou PID.
Le but des épisodes précédents est plutôt destiné à la méthodologie qu'au résultat.

VII.2 Méthode CG (courbe verte).

La plage d'évolution est limitée et ne permet pas d'utiliser toute la plage du PWM. Pour le pourquoi, revoir les cours sur les centres de gravité des triangles.smiley-wink

Réflexion personnelle :

SI matin ET petit-déjeuner ALORS raisonnement flou  smiley-mr-green

Episode suivant : D'autres fonctions d'appartenance

Episode suivant
8  International / Français / Re: Moteur de recherche Francophone on: September 23, 2014, 01:06:34 pm
Re Skywodd (avec 2d),
Je préférais l'ancienne version, elle ne donnait des réponses.
La nouvelle version ne donne pas de résultats à la recherche.
Y aurait-il un bug ?
smiley
9  International / Français / Re: Moteur de recherche Francophone on: September 23, 2014, 11:16:22 am
Salut Skywodd,
Quel plaisir de te revoir sur le forum smiley-wink
J'utilise régulièrement ton adaptation pour le moteur de recherche et je me suis habitué à ses défauts.
Dans tous les cas cela reste pratique.
@+
10  International / Français / Re: Contrôler interrupteur pour allumer/éteindre pompe on: September 23, 2014, 08:08:43 am
Re,
I=P/U donc dans mon cas I = 40/230 = 0.18 A
Je dois donc regarder pour un relais laissant passer ce genre d'intensité de courant ?
Oui et non. L'appel de courant au démarrage peut atteindre jusqu'à 4 x l'intensité nominale donc prévoit un relais avec un pouvoir de coupure d'au moins 1A.
Les charges inductives génèrent également de forte sur-tension aux bornes des contacts.
@+
11  International / Français / Re: Contrôler interrupteur pour allumer/éteindre pompe on: September 23, 2014, 08:04:16 am
Re,
Comme un relais statique ce n'est rien de plus qu'un optocoupleur+triac et que les triac n'aime pas les charges inductives, tu auras peut-être quelques soucis, mais je suis quand même optimiste vu que c'est pas 1500W que tu essayes de commuter xD
Exact, mais la mise en place de filtre adapté améliore grandement la situation (attention au dv/dt).
@+
12  International / Français / Re: Nano et broche, Question bête du soir on: September 23, 2014, 06:46:14 am
smiley-mr-green smiley-mr-green smiley-mr-green
+1
13  International / Le bar / Re: PID, Ziegler & Nichols et Fussy Logic on: September 23, 2014, 05:17:06 am
Bonjour,
Un épisode de plus, on risque de faire mieux que Dallas.

Episode précédent

V. La prise de décision par la logique floue.

Pour notre cas, la prise de décision est relativement simple, du moins d'un point de vue graphique. Le traitement informatique correspondant fera l'objet d'un autre épisode.

A partir d'une erreur en entrée, on détermine son appartenance dans les deux ensembles flous correspondant. Puis on reporte, ces appartenances vers la sortie, pour obtenir une image floue partielle de la commande.
L'image floue résultante de la commande correspond à la somme des surfaces.

Le petit graphique ci-dessous résume la démarche à suivre :


Voilà pour le principe.
En exemple, deux cas pour le projet qui sert de fil conducteur.

V.1 Image floue de la commande pour une erreur de 100.


V.2 Image floue de la commande pour une erreur de -10.


Episode suivant : Retour au monde réel ou défuzzification.
@+

Episode suivant
14  International / Français / Re: Contrôler interrupteur pour allumer/éteindre pompe on: September 23, 2014, 05:13:43 am
Bonjour,
Pour ton contrôle de pompe, il existe de nombreuses solution.
Mais dans une première approche, on peut utiliser un relais (mécanique) commandé par la carte Arduino (avec l'interface qui va bien).
Une seconde approche consisterait à utiliser un relais statique. Il rend, pour faire simple, le même service que le relais mécanique.
Une petite documentation sur les relais mécaniques, statiques et autres
@+
15  International / Le bar / Re: PID, Ziegler & Nichols et Fussy Logic on: September 23, 2014, 02:16:37 am
Bonjour,
c'est un vrai tutoriel , le fait d'expliqué avec des termes compréhesible par tous est un plus non négligeable , Merci icare!
Merci pour ton soutient.
Ce n'est pas toujours évidement de comprendre cette approche de logique floue et encore moins sa mise en oeuvre pratique.
Tu verras que les résultats sont surprenant ou plutôt logique (logique nette)  smiley-mr-green
@+
Pages: [1] 2 3 ... 88