Commande automatique de groupe électrogène - machine à états et autres questions

Et voila le schéma avec cette fois les modifs faites en live en pleine nuit. Je me rends compte en le dessinant à tête reposée que les capas de découplage ne sont pas forcément aux endroits les plus critiques, il en manque sur les entrées par exemple. Mais bon, en pleine nuit après 2 nuits blanches...

groupe1.3.pdf (77.9 KB)

Ok je crois que je vois un peu mieux. Y'a un une partie que je comprend pas vraiment, celle de gauche : le calage est bien détecté par cette partie (e_alim) ?

non. le fonctionnement du moteur et donc le calage est détecté par e_run. Quand le moteur tourne, l'alternateur produit du 220V, et active l'optocoupleur.

e_alim, ça sert à détecter si l'interrupteur général est sur on ou pas, pour couper l'auto-maintien de l'alim.

Ok alors je viens de reprendre ton code, bon y'a quelques points qui restent obsures pour moi mais je pense pas que ça vienne de la. Il me semble que ton code et ton hardware ne sont pas armés pour faire face à la mise en régime de l'alternateur : quand tu le mets en marche, l'laternateur ne va pas fournir directement du 230V 50hz, or ton circuit lisse le signal donc tu ne vois pas la fréquence. Il faudrait dans l'idéal ne pas le filtrer et rentrer sur un port digital, et faire en somme un système de détection de passage à zero. Ainsi tu pourrais suivre la phase transitoire.

Ben je ne vois pas en quoi cela poserait problème ? A partir d'un certain régime, la tension produite est suffisante pour activer l'optocoupleur, à partir de ce régime il n'y a plus de risque d'arret du moteur si le démarreur ne tourne plus, donc je coupe le démarreur.
En fait l'alternateur produit quasiment immédiatement du 230V mais c'est la fréquence qui augmente avec le régime moteur.
Le fait est que ça fonctionne parfaitement en mode "manuel" (démarrage depuis l'entré e_local) alors que ça ne foire que dans le cas du démarrage depuis l'entrée e_ext.

La seule différence entre ces deux entrées dans le code, c'est que l'entrée locale active un flag puis n'est plus lue, alors que l'entrée ext est lue tout le temps et que si elle tombe cela coupe le moteur. Mais dans ce cas ça ne devrait pas faire remonter un défaut de "calage moteur", ça devrait juste le couper puis redémarrer.

Du coup je me suis dit il y a peut-être une perturbation de l'entrée e_run qui me fait détecter un calage, alors j'ai rajouté une tempo sur cette détection de calage, ce qui n'a rien changé.

Je crois que tu n'avais pas la dernière version du code, je la joins à ce post. Attention, elle est passablement en vrac, c'est fruit de modifications dans tous les sens en désespoir de cause à des heures inavouables...

Sur la suggestion de barbudor, suis en train de re-dessiner une nouvelle carte en utilisant directement un atmega328 en boitier DIL, comme ça déjà je vais éliminer les soucis d'alimentation liés aux deux régulateurs en cascade, et le soucis de liaison série qui se perds, vu que j'utilisera alors un convertisseur USB/TTL externe.
Je crois que tant que ça n'est pas fait, il sera difficile de comprendre ce qui se passe, vu que je n'ai de toutes façons plus le matériel sous la main pour faire des essais.

En tout cas, merci de t'interresser à mon problème :slight_smile:

groupe.ino (29.7 KB)

bricofoy:
Du coup je me suis dit il y a peut-être une perturbation de l'entrée e_run qui me fait détecter un calage, alors j'ai rajouté une tempo sur cette détection de calage, ce qui n'a rien changé.
...
Sur la suggestion de barbudor, suis en train de re-dessiner une nouvelle carte en utilisant directement un atmega328 en boitier DIL, comme ça déjà je vais éliminer les soucis d'alimentation liés aux deux régulateurs en cascade, et le soucis de liaison série qui se perds, vu que j'utilisera alors un convertisseur USB/TTL externe.
Je crois que tant que ça n'est pas fait, il sera difficile de comprendre ce qui se passe, vu que je n'ai de toutes façons plus le matériel sous la main pour faire des essais.

bonjour bricofoy
reprendre une conception que l'on pensait bien aboutie , même si c'est "intellectuellement" difficile :grin: est souvent une bonne façon de reposer calmement les problemes et leurs resolutions, la suggestion de Barbudor dés lors que tu dispose de cette possibilité (intellectuelle et "matos dispo" est une excellente chose.

pour simple reflexion :
ce que tu appelle info de "calage diesel" est une info secondaire dérivée mécaniquement mais pas primaire ?

tu ne "lis" pas la rotation de l'accouplement, mais tu déduis que la rotation existe (moteur en etat "non calé" )parce que l'alternateur delivre "qq chose" ?

Oui, exactement. Si le moteur tourne, l'alternateur débite. L'accouplement est direct, il n'y a pas de courroie ou de flector.

À partir du moment ou je ne détecte plus la tension, c'est que soit le moteur a calé, soit il tourne à trop bas régime car la panne sèche arrive, soit l'alternateur a cramé.

Dans les trois cas il convient de couper l'alimentation du moteur et de passer en erreur.

Sinon ma conception, c'était fait en une semaine je ne considère pas vraiment ça comme abouti :stuck_out_tongue:

bricofoy:
Oui, exactement. Si le moteur tourne, l'alternateur débite.

À partir du moment ou je ne détecte plus la tension, c'est que soit le moteur a calé, soit il tourne à trop bas régime car l'alimentation en carburant est défectueuse, soit l'alternateur a cramé.

soit il tourne à trop bas régime parce qu'il est entrain de démarrer ? ou l'opto-coupleur n'a pas encore commuté

j'aurais tendance de mettre une petite tempo sur un problème de ce genre...

cannard:

bricofoy:
Oui, exactement. Si le moteur tourne, l'alternateur débite.

À partir du moment ou je ne détecte plus la tension, c'est que soit le moteur a calé, soit il tourne à trop bas régime car l'alimentation en carburant est défectueuse, soit l'alternateur a cramé.

soit il tourne à trop bas régime parce qu'il est entrain de démarrer ? ou l'opto-coupleur n'a pas encore commuté

j'aurais tendance de mettre une petite tempo sur un problème de ce genre...

Non, car pour passer à l'état suivant et couper le démarreur, c'est que la détection de tension a déjà été faite.

Et oui il y a la tempo, de toutes manières. Je l'ai justement rajoutée quand j'ai constaté le soucis, sans succès.

Je n'ai pas regardé le code mais dans ta reprise de carte/câblage, pense a bien repenser au propre le câblage des alims comme je te le suggérais dans l'autre topic : un seul point de masse et pour chaque alim, câblage en étoile.
Autant que possible bien séparer les parties logiques (Arduino) et puissance qui peuvent générer de forts courants et donc des parasites : alims séparées, et surtout câbles d'alims séparés.

Ben alims séparées, à part de ne pas mettre le relais de commande du démarreur sur la carte, je ne vois pas ce que je peux faire de plus ?
Pour le point de masse, c'est le moins batterie, repéré -batt sur la carte, qui donne sur un plan de masse. Est-ce que cette disposition n'est pas bonne ?

J'ai peut être encore pas tout compris ton câblage
Pourrais tu faire un schéma du câblage externe à la carte ?

Voila le schéma.

Il manque la borne "C" (pour relier l'alternateur de charge batterie) sur le schéma de la carte, car je l'ai oubliée... en fait du coup je me suis branché sur la borne d'alim du relais de commande du décompresseur, vu que ce relais n'est pas monté sur la carte.

groupe_diesel.pdf (24.9 KB)

Dans les relais, y a t'il des courants forts ?

Si oui, l'ide qui me vient ca serait d'avoir 2 signaux +BATT :

  • Un destiné à l'alim de la carte et qui va donc sur le circuit d'alim de la carte : bobine RL5 et et commun 2 de RL5 (broche 21)
  • Un destiné au circuit des relais RL1..RL4 et qui rentrerait par un point de connecteur différent et qui n'alimentarait que les relais au niveau des fusibles.
    Chaque entrée batterie serait relié à la batterie par un câble différent pour éviter que les courants forts qui traversent ces relais n'impactent l'alim de la carte.

C'est la seule idée que j'ai.

en complément de la suggestion de barbudor, je mettrais un tore ferrite au plus prés du point d'alim du MCU

Merci de ces suggestions :slight_smile:

Par contre, je ne sais pas à partir de quel niveau vous considérez ça comme "courants forts"... en l'occurence là qui passe par les relais, il y a l'alimentation de l'électrovanne de carburant, grand maxi 500mA, et l'alimentation du solénoïde du démarreur, environ 5A à vue de nez, à vrai dire je ne l'ai pas mesuré. C'est sans doute moins que ça.
Et dans certains cas il y aura un solénoïde de décompression (2A), et une bougie de préchauffage, là on sera plus proche des 15 ou 20A, mais 100% résistif, ce qui du coup ne devrait pas poser problème, non ?

Je pense que je vais aussi rajouter une diode de roue libre aux bornes du solénoïde du démarreur, ça ne pourra pas faire de mal.

Je m'étais même posé la question de commander tout ça directement via les IRF740 (ou IRF3205, bien plus costauds, j'en ai un stock aussi), sans utiliser de relais, mais alors je serai obligé de leur adjoindre des radiateurs, et comme je n'en avais pas, mais que j'avais un stock de relais...
D'après vous, la commande direct via les MOS, ça serait une mauvaise idée ?

Même 500mA commence a faire.
Ce n'est pas tant le courant max que l'établissement brutal qui - à mon avis - peut réjecter sur le reste du circuit.
Une fois établit, si le courant est constant ca ne devrait pas poser de problème du moment que les pistes sont dimensionnées pour (20A ca commence a faire pour des pistes de CI).
Même si la charge est purement résistive (pas d'effet inductance), les appels de courants au démarrage peuvent créer des perturbations.

Ha ok. Pourtant dans le solaire, j'ai l'habitude de trimballer des forts courants (pour le coup entre 20 et 80A, et des fois 100 à 300, donc ça commence à faire) sans que ça perturbe ce qu'il y a à coté. Curieux.

Pour les pistes du CI, celles qui doivent trimballer 20A, je soude un fil de cuivre de 2,5mm² sur tout le long.

bricofoy:
Ha ok. Pourtant dans le solaire, j'ai l'habitude de trimballer des forts courants (pour le coup entre 20 et 80A, et des fois 100 à 300, donc ça commence à faire) sans que ça perturbe ce qu'il y a à coté. Curieux.

Pour les pistes du CI, celles qui doivent trimballer 20A, je soude un fil de cuivre de 2,5mm² sur tout le long.

les contacts de relais sont plus susceptible en pouvoir de coupure en DC qu'en AC
l'etincelage/charbonage en DC est plus problematique qu'en AC où le zerocrossing contribue à l'etouffement d'etincelage lors du déplacement de l'equipage

Oui, mais là j'utilise des relais automobile, dont le pouvoir de coupure est au minimum de 30A, j'en suis bien loin !

Dans les installations solaires, quand on doit couper des courants forts, on utilise des relais mercure (une bille qui flotte sur du mercure et établi le contact).