Go Down

Topic: [résolu] arduino simule mal un capteur... (Read 6956 times) previous topic - next topic

Super_Cinci

Oct 26, 2015, 10:04 pm Last Edit: Oct 31, 2015, 09:48 pm by Super_Cinci
Toujours dans mes histoires de vouloir comprendre et contrôler le moteur de ma voiture (maintenant, c'est une super5, j'adore les renault des 80's... Mais j'ai toujours la R21 injection)...

Son petit moteur (1L4, 60chx, ça fait rêver) possède un allumage électronique (AEI), et comme c'est un truc fait "sur mesure", impossible de trouver des infos sur la cartographie qu'il renferme.

J'ai décidé de construire un banc de mesure pour relever la carto interne du boîtier. je n'ai accès qu'à 3 signaux : GND, +12V et sortie allumage. en entrée, j'ai une entrée différentielle pour le capteur PMH (volant moteur) et un tuyau branché sur le collecteur d'admission. Tout le reste est noyé dans une gomme qui résiste à tous les acides du commerce.

J'ai programmé un MEGA qui reproduit le signal du capteur, dont la fréquence est réglable par un petit potard.

la tronche du signal du capteur d'origine :



la tronche du signal sorti du MEGA2560 :



le signal du méga correspond à 100% au signal du capteur, passé à travers un comparateur.

Et bien vous me croirez ou pas, au ralenti (et jusqu'à 2000tr/min), l'AEI répond bien et j'ai un signal d'allumage propre et net. mais passé 2000tr/min, l'AEI déraille et allume n'importequand, comme s'il se perdait dans le signal.

Le capteur est du type "à reluctance variable" : c'est une bobine devant un volant cranté métalique :



il faut comprendre par là que plus ça tourne vite, plus le signal est fort (100mv au ralenti, pas loin de 100V à 7000tr/min). J'ai donc tenté de modifier l'amplitude de mon signal carré pour faire mieux : ça n'a rien changé... l'inverser, augmenter ou diminuer le nombre de dents... rien n'y fait. Comme mon signal est généré sur une INT d'un timer, j'ai viré l'INT TOVF du timer 0 pour limiter les interférences, je n'ai presque rien gagné.

Quelqu'un aurait une idée de comment je pourrais générer un signal que mon calculateur d'allumage prendrait au sérieux? J'ai pensé à l'intégrateur qui sortirait un signal triangulaire, mais l'amplitude diminuerait avec la fréquence, je veux l'inverse.

J'ai tenté de mettre mon signal dans une bobine, bobine placée devant le capteur d'origine : plus rien du tout malgré un signal plus proche de la réalité...

ce topic ressemble à un autre : Interface à base de PIC pour gestion d'impulsions, mais là, je travaille dans l'autre sens : je veux remplacer le capteur (dans l'autre topic, je voulais simplement le lire...)

Merci à vous! ;)

PS : je commence à désespérer : ça fait 3 ans 1/2 que je bloque sur ce problème de signal qui marche pas...

Jambe

#1
Oct 26, 2015, 10:11 pm Last Edit: Oct 26, 2015, 10:14 pm by Jambe
Huuuu ma première voiture! (Même moteur!)

La RTA t'apportes rien? De mémoire, elle donne pas mal d'info

La capsule mesurait la dépression pour déterminer la charge du moteur et jouer sur l'avance à l'allumage.

Le fil du milieu sur la broche sortait la fréquence de rotation du moulin

Artouste

bonsoir S5
je lirais ça posément demain :smiley-mr-green:

Super_Cinci

#3
Oct 26, 2015, 11:17 pm Last Edit: Oct 26, 2015, 11:25 pm by Super_Cinci
Huuuu ma première voiture! (Même moteur!)

La RTA t'apportes rien? De mémoire, elle donne pas mal d'info

La capsule mesurait la dépression pour déterminer la charge du moteur et jouer sur l'avance à l'allumage.

Le fil du milieu sur la broche sortait la fréquence de rotation du moulin
je suis remonté bien plus loin, jusqu'au prospectus commercial qui vend le système à Renault, et il précise beaucoup de choses. la RTA n'y connaît rien du tout de ce côté. J'ai un pote qui s'amuse en ce moment à virer la résine, dissoudre les CI à l'acide et regarder la ROM au microscope :





mais il n'avance pas beaucoup plus vite que moi...

le fil du milieu, c'est la masse. l'info "compte-tour" est à gauche ;)

bonsoir S5
je lirais ça posément demain :smiley-mr-green:
oui, vaut mieux!

tout ce que je sais, c'est que le signal du capteur arrive sur un carré (de chocolat?) à 4 pattes. sauf qu'en virant la résine, le bidule a arrêté de marcher, donc pas moyen de relever des signaux en interne.


-Standby

Il faut m'expliquer pourquoi on passe d'un signal analogique a du numerique..
The Mind is like a parachute it works best when opened.

Super_Cinci

Il faut m'expliquer pourquoi on passe d'un signal analogique a du numerique..
C'est simple : sur la voiture, le boîtier reçoit un signal analogique et fonctionne à merveille. Je voudrais qu'il fonctionne tout seul sur mon établi, il faut donc que je recrée l'environnement du moteur, et pour l'instant, je n'arrive à produire qu'un signal carré et le boîtier n'a pas l'air de bien le prendre.

icare

Bonjour S5,
Si tu fais suivre ta sortie signal carré par un intégrateur (resistance + capacité) tu va obtenir un signal pseudo-analogique.
Voir si ce signal peut convenir à tes essais.
L'autre solution consiste à utiliser des convertisseurs numériques / analogiques.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

-Standby

 Dans se cas la seule solution c'est d'utiliser un DAC rapide avec une assez bonne résolution. Un aop va être trop hasardeux.
The Mind is like a parachute it works best when opened.

infobarquee

salut les filles, :)
tu peux trouver pas mal d'infos sur des prépa rallye de gt turbo.
le moteur est basé sur le même principe, mais avec un turbo en plus.
http://tbolliet.free.fr/deport_AEI/Deport_AEI.html
http://www.neo-tech.fr/AEI-RE000/presentation.html
AUCUNE AIDE PAR MP

Artouste

bonjour
la sortie de ton oscillo represente quoi ?
le signal en sortie du CRV ?
comment tu reproduit en numerique les singularités detectables (indiqué en blanc sur la photo
l'ecart entre "trains" corrsepond à quoi, les "grandes dents" de calage du CRV ? 
je penche comme mes petits camarades que la solution passe par un generateur de signal quasi sinusoidal 12V

apres voir la meilleur solution :
reseau RC, pseudo DAC faible resolution (reseau de R) , DAC+AOP , autres ?
en premier je tenterais la solution d'icare (reseau RC)
à defaut  je tenterais bien  un essai avec un DAC 4R  c'est assez simple à realiser


rjnc38

peut être une solution : il me semble que l'arduino DUE peux utiliser un DAC en sortie analogique

Jambe

Je rentre d'une journée de formation, mon voisin de table est un ancien de chez renault (30 ans de boutique)

Il a entre autres développé le moteur D de la twingo, j'essaierai de glaner des infos pour toi demain

Super_Cinci

#12
Oct 27, 2015, 08:40 pm Last Edit: Oct 27, 2015, 08:42 pm by Super_Cinci
Alors parmis les solutions que vous proposez :

1 - DAC (simple R/2R ou un vrai DAC) :

Ca va demander pas mal de ressources : le signal, pour être correctement représenté doit être fait en 8 échantillons / période, (6 suffiraient, mais en base 2, 8 sonne mieux). à 10000 tr/min (c'est une limite haute de marge que je me fixe), la fréquence du signal atteint 7,33KHz, donc il faut fournir un échantillon toute les 17µs, trop rapide à mon goût pour un nono.

De plus, il faut l'amplifier à plus de 100V crête, voilà la machine de guerre... (amplification dépendante de la fréquence en plus!)

2 - l'intégrateur ou RC :

Il donnerait une forme certainement très acceptable, mais je rappelle que plus la fréquence augmente, plus il faut amplifier le signal, donc c'est mort. je rappelle que d'origine, c'est un capteur à reluctance variable, donc le niveau de sortie croit avec la vitesse de passage des dents métaliques (même principe qu'un micro de guitare).

Dans les liens d'infobarquee, les mecs lisent le signal et je sais le faire aussi, moi, je veux le créer! Mais plus de nouvelles des gars en question...

bonjour
3 - la sortie de ton oscillo represente quoi ?
le signal en sortie du CRV ?
4 - comment tu reproduit en numerique les singularités detectables (indiqué en blanc sur la photo
l'ecart entre "trains" corrsepond à quoi, les "grandes dents" de calage du CRV ? 

3 - sur l'oscillo, c'est le signal que génère mon nono. il y en a deux, en opposition de phase avec découplage pour laisser l'AEI faire sa polarisation à 2,5V. Il passe par un ampli (à transistors avec impédance de sortie à 200 ohms, comme le capteur) qui modifie l'amplitude via deux pins du nono (donc 4 nivaux possibles : 6V, 18V, 30V, 60V). le signal augmente donc (en escalier...) avec la fréquence. c'est ce que je rentre dans le calculateur.

4 - la def du volant moteur est claire : 44 dents, dont deux manquantes. en fait, c'est deux fronts qui disparaissent, allongeant la période du signal à ce moment là (3T).

Jusqu'à 2000tr/min, ça marche bien, mais après, le calculateur s'emmèle les pinceaux...

Je devrais peut-être essayer autre chose... Maintenant que tu m'y fais penser :



En rouge : le signal que je génère actuellement.

Générer un nouveau signal :
En bleu, le signal +
En violet, le signal -
En vert, la différence des deux vue par le calculateur qui utilise une entrée différentielle, donc il fait la différence entre les deux entrées.

Qui sait...
Je rentre d'une journée de formation, mon voisin de table est un ancien de chez renault (30 ans de boutique)

Il a entre autres développé le moteur D de la twingo, j'essaierai de glaner des infos pour toi demain
Pourquoi pas. mais le D est un injection, et c'est un calculateur FENIX développé par siemens qui n'utilise pas les mêmes composants. ceci dit, s'il veut bien rentrer en contact avec moi, donne-moi ses coordonnées par MP, ça serait cool!!! Je suis toujours à le recherche de portes d'entrées... (s'il connaît le boîtier RX3 et ou XR25, je suis preneur aussi!!!)

Artouste

bonsoir S5
tu peux faire une acquisition à l'oscillo du CRV connecté sur le calculateur à par exemple 3600 tours
déjà pour regarder l'allure generale de la courbe ?

L'impedance d'entrée CRV sur le  calculateur est de quel ordre ?

A chaud mais je me trompe peut etre , je ne pense pas que pour faire une injection de simulation , le niveau de sortie du simulateur soit important (chercher le 100V) , en revanche je pense que  la propreté du "croisement" dents manquantes doit être "un point assez susceptible" 

Jambe

Et bien vous me croirez ou pas, au ralenti (et jusqu'à 2000tr/min), l'AEI répond bien et j'ai un signal d'allumage propre et net. mais passé 2000tr/min, l'AEI déraille et allume n'importequand, comme s'il se perdait dans le signal.
Une idée a la volée, tu colles à l'AEI le signal du capteur, mais tu ne dis pas si tu lui colles de la dépression.

Je sais pas comment tu as fais ton banc pour tes mesures donc c'est une hypothèse mais si l'AEI attend justement de la dépression à partir de 2000 trs, peut être le "deraillage" vient de la?

Go Up