FR 3050336 A1 20171020 FR 1653344 A 20160415 1 L'invention concerne le domaine de l'automobile et concerne plus particulièrement un procédé de diagnostic de la commande en courant d'un moteur électrique d'un véhicule automobile. L'invention s'applique notamment à la commande en courant d'un moteur électrique triphasé. Dans un véhicule automobile à moteur électrique triphasé, la commande du moteur est réalisée de manière connue en utilisant trois signaux alternatifs de commande en courant fournis par un dispositif de commande. Dans une solution existante illustrée à la figure 1, ce dispositif 1A comprend un microcontrôleur 10, un amplificateur 20 et un étage de puissance se présentant sous la 10 forme d'un onduleur 30 permettant de générer ces trois signaux U, V, W de commande en courant du moteur 2. Plus précisément, le microcontrôleur 10 génère tout d'abord six signaux primaires alternatifs (deux par phase du moteur 2) modulés en largeur d'impulsion (« Pulse-Width Modulation » ou PWM en langue anglaise) de faible amplitude, 15 correspondant à l'amplitude du signal d'alimentation du microcontrôleur 10, par exemple de l'ordre de 5 V. Ces signaux présentent chacun une alternance d'états hauts (ou états actifs) et d'états bas (ou états inactifs). Ces signaux sont ensuite amplifiés par l'amplificateur 20 pour atteindre par exemple une amplitude de l'ordre de 20 V (quand la tension B de batterie du véhicule est 20 de l'ordre de 10V, par exemple) puis transmis à l'onduleur 30 qui délivre en sortie les trois signaux U, V, W de commande en courant du moteur 2 se présentant également comme une alternance d'états hauts et d'états bas. Chaque phase du moteur 2 est alors commandée de manière connue par le déphasage existant respectivement entre deux des trois signaux de commande U, V, W deux à deux. 25 A cette fin, l'onduleur 30 comprend trois couples de transistors de type MOSFET générant chacun l'un des trois signaux U, V, W de commande en courant du moteur 2. Dans chaque couple de transistor, l'un des transistors (étage haut) est connecté à la borne positive de la batterie B du véhicule tandis que l'autre (étage bas) est connecté à la masse M. Les deux transistors d'un couple reçoivent chacun un signal 30 primaire amplifié, ces deux signaux primaires amplifiés étant centrés (c'est-à-dire les centres des créneaux coïncident) mais inversés. En pratique, les créneaux de ces signaux primaires amplifiés ne sont pas carrés mais présentent une pente à la montée et une pente à la descente. Afin d'éviter que les deux transistors d'un même couple ne laissent passer le 35 courant en même temps, ce qui connecterait la tension de batterie à la masse (court- 3050336 2 circuit) et pourrait endommager le dispositif de commande 1A voire le moteur 2, le microcontrôleur 10 observe un temps mort entre un créneau du signal primaire destiné à l'étage haut d'un couple de transistors donné et le créneau associé du signal primaire destiné à l'étage bas dudit couple. En pratique, comme illustré dans l'exemple donné à 5 la figure 2, les deux signaux d'étage haut SEH1 et d'étage bas SEB1 restent centrés mais la largeur d'un des deux signaux primaires (le signal d'étage haut SEH1 dans cet exemple) est réduite afin d'éviter que les deux signaux SEH1 et SEB1 soient simultanément à l'état actif. On a représenté aux figures 3 à 6 des exemples de signaux du dispositif de commande 1A (illustrés pour un cycle de signal PWM). Plus précisément, la figure 3 illustre un signal d'étage haut SEH1 généré par le microcontrôleur 10 à destination d'un transistor d'étage haut d'un couple de transistors, la figure 4 illustre le signal SEH2 de sortie dudit transistor d'étage haut, la figure 5 illustre un signal d'étage bas SEB1 généré par le microcontrôleur 10 à destination du transistor d'étage bas dudit couple de transistors et la figure 6 illustre le signal SEB2 de sortie dudit transistor d'étage bas. On observe ainsi sur les figures 3 et 5 que le microcontrôleur 10 observe un temps mort MotPwmDiffTheo entre la fin t1 d'un état actif du signal d'étage bas SEB1 et le début t2 d'un état actif du signal d'étage haut SEH1. On observe sur la figure 4 qu'un délai dl de mise en fonctionnement est nécessaire au transistor d'étage haut suivi d'un temps de montée d2 afin que le signal de sortie SEH2 du transistor atteigne l'état actif puis qu'un délai d3 de mise à l'arrêt du transistor est nécessaire suivi d'un temps de descente d4 du signal de sortie SEH2 jusqu'à l'état inactif du transistor. Similairement, on observe sur la figure 6 qu'un délai d5 de mise à l'arrêt est nécessaire au transistor d'étage bas suivi d'un temps de descente d6 afin que le signal de sortie SEB2 du transistor atteigne l'état inactif puis qu'un délai d7 de mise en fonctionnement du transistor est nécessaire suivi d'un temps de montée d8 du signal de sortie SEB2 jusqu'à l'état actif du transistor. Le temps mort MotPwmDiffTheo observé par le microcontrôleur 10 entre deux signaux primaires destinés à un couple de transistors, appelé par la suite temps mort inséré, est limité à 500 ns afin de ne pas dégrader les performances du moteur 2. En effet, une augmentation de la durée du temps mort MotPwmDiffTheo entraine une diminution de la largeur des états hauts SEH1 des signaux U, V, W de commande du moteur 2 et donc une commande en courant moins efficace du moteur 2, notamment au-delà de 500 ns de temps mort. Afin de diagnostiquer un contrôle défaillant du moteur 2, il est connu de mesurer le temps mort réel présent dans les signaux de commande. Dans une première solution existante, on mesure les six signaux primaires SEH1, SEB1 générés par le 3050336 3 microcontrôleur 10. Toutefois, une telle solution permet uniquement de diagnostiquer un défaut sur les temps morts insérés par le microcontrôleur 10, c'est-à-dire un défaut du microcontrôleur 10 lui-même. Or, on constate que la durée du temps mort inséré par le microcontrôleur 10 dans les signaux primaires SEH1, SEB1 peut être modifiée par 5 l'amplificateur 20 ou l'onduleur 30. En effet, lors de l'utilisation du véhicule, un échauffement des transistors de l'onduleur 30 peut se produire et modifier la durée des temps morts des signaux de commande U, V, W en sortie de l'onduleur 30, ce qui peut dégrader la commande en courant du moteur 2. Aussi, dans une deuxième solution existante, le dispositif 1A comprend un module de mesure 40 qui détermine les instants 10 de montée des signaux de commandes U, V, W et les compare aux instants de montée des signaux primaires SEH1, SEB1 générés par le microcontrôleur 10. Une telle solution ne permet toutefois pas de détecter un défaut du microcontrôleur 10. De plus, les temps de latence pour faire de tels calculs ne permettent d'obtenir une précision que de l'ordre de la microseconde, soit le double de la durée maximal d'un temps mort (500 ns), d'autant 15 que le temps mort est impacté par les effets du courant circulant dans les transistors, les erreurs de mesure induites par le module de mesure 40, les délais introduits par les filtres électroniques et les temps de montée et de descentes des signaux primaires SEH1, SEB1 et des signaux de commande U, V, W, ce qui rend la méthode imprécise voire aléatoire et présente donc un inconvénient majeur. 20 L'invention a pour but de résoudre au moins en partie ces inconvénients en proposant une solution simple, fiable et efficace pour mesurer les temps morts insérés dans les signaux de commande d'un moteur électrique. A cette fin, l'invention a tout d'abord pour objet un procédé de diagnostic d'un défaut de commande d'un moteur électrique triphasé, chaque phase dudit moteur étant 25 commandée en courant par un signal de commande, ledit signal de commande étant modulé en largeur d'impulsion et étant généré au point milieu d'un ensemble formé par un transistor dit « d'étage haut » connecté à la batterie du véhicule et un transistor dit « d'étage bas » connecté à la masse à partir d'un signal d'étage haut reçu par le transistor d'étage haut et d'un signal d'étage bas reçu par le transistor d'étage bas, le 30 signal d'étage haut et le signal d'étage bas étant des signaux modulés en largeur d'impulsion, inversés l'un par rapport à l'autre et dont chaque état haut du signal d'étage haut est centré avec un état bas du signal d'étage bas, ledit procédé comprenant, les étapes suivantes : - pour chaque signal de commande d'une phase du moteur, 35 - génération du signal d'étage haut et du signal d'état bas, le début d'un état haut du signal d'état haut étant décalé temporellement d'une durée 3050336 4 appelée « temps mort inséré » par rapport au début de l'état bas correspondant du signal d'état bas, - génération du signal de commande à partir du signal d'étage haut et du signal d'état bas générés, 5 - mesure et formatage du signal de commande, - calcul de la différence entre la durée d'un état haut du signal d'étage haut généré additionnée de la valeur du temps mort inséré et la durée du signal de commande formaté, ladite différence évoluant de manière sinusoïdale dans le temps, 10 - compensation de la différence calculée afin qu'elle oscille autour d'une valeur nulle en fonction du temps, - calcul du temps mort réel présent dans chacun des trois signaux de commande à un instant donné à partir des décalages temporels compensés pour chaque phase du moteur, d'une erreur prédéterminée de mesure commune aux trois 15 phases du moteur et de la valeur de l'amplitude du courant circulant dans les transistors des trois couples de transistors audit instant donné, - calcul de la différence entre le temps mort calculé et le temps mort inséré, - détection d'un défaut de commande du moteur lorsque la valeur absolue de la différence calculée est supérieure à un seuil de détection prédéterminé. 20 Le procédé selon l'invention permet de calculer en temps réel le temps mort réel afin de prendre en compte les effets négatifs des transistors et filtres sur le temps mort inséré. Le temps mort réel est calculé finement à partir des signaux de commande mesurés et formatés. Le procédé permet ainsi de mesurer avec précision, de l'ordre de 250 ns, le temps mort réel présent dans les signaux de commande afin de détecter 25 efficacement un défaut desdits signaux de commande. Selon un aspect de l'invention, le procédé comprend une étape de détermination de l'erreur de mesure commune aux trois phases du moteur, cette détermination étant réalisée en faisant la moyenne des décalages temporels calculés à courant nul circulant dans le transistor d'étage haut et le transistor d'étage bas pour 30 chaque phase du moteur. Avantageusement le calcul du temps mort réel dans chacun des trois signaux de commande formaté à un instant donné comprend : - le calcul de la pente d'une droite représentant l'évolution du temps mort en fonction du courant, 35 - le calcul d'une différence entre la valeur du temps mort inséré corrigée de l'erreur prédéterminée de mesure et la valeur du temps mort à une amplitude de courant donnée à partir de la valeur de pente calculée. 3050336 5 Avantageusement encore, la pente de la droite représentant l'évolution du temps mort en fonction du courant est calculée selon l'équation suivante : MotPwmDif !Initial MotPwmDif fTheo MotPwmDif fLinInit A = lphAmpMax-lphAmpLinThr OÙ MotPwmDif fTheo est le temps mort inséré, MotPwmDif f Initial est 5 l'erreur de mesure commune aux trois phases du moteur, MotPwmDif f Linlnit est la valeur du temps mort correspondant au seuil de courant IphAmpLinThr à partir duquel le temps mort évolue de façon linéaire en fonction du courant et IphAmpMax est la valeur d'amplitude maximale du courant. De manière préférée, la différence entre la valeur du temps mort inséré 10 corrigée de la moitié de l'erreur prédéterminée de mesure et la valeur du temps mort à une amplitude de courant donnée est calculée selon l'équation suivante : MotPwmDif flphCorr = (IphAmpMax - ampl(i)) x A où ampl(i) est l'amplitude de courant (I) donnée. De préférence encore, le calcul du temps mort réel est réalisé selon l'équation 15 suivante : MotPwmDif f Calc = MotPwmDiff X lphCorr + + MotPwmDif flnitial 2 avec X = abs (min (MotPwmDif f CorrU , MotPwmDif f CorrV , MotPwmDif f CorrW) + max(MotPwmDi ff CorrU , MotPwmDi ff CorrV , MotPwmDif f CorrW)). 20 L'utilisation d'une droite théorique permet d'affiner le calcul du temps mort de sorte que son calcul soit possible avec une précision de l'ordre de 250 ns ou moins. L'invention concerne aussi un dispositif de diagnostic d'un défaut de commande d'un moteur électrique triphasé, chaque phase dudit moteur étant commandée en courant par un signal de commande, ledit signal de commande étant modulé en 25 largeur d'impulsion et étant généré au point milieu d'un ensemble formé par un transistor dit « d'étage haut » connecté à la batterie du véhicule et un transistor dit « d'étage bas » connecté à la masse à partir d'un signal d'étage haut reçu par le transistor d'étage haut et d'un signal d'étage bas reçu par le transistor d'étage bas, le signal d'étage haut et le signal d'étage bas étant des signaux modulés en largeur d'impulsion, inversés l'un par 30 rapport à l'autre et dont chaque état haut du signal d'étage haut est centré avec un état bas du signal d'étage bas, ledit dispositif comprenant : - un microcontrôleur configuré pour générer, pour chaque signal de commande d'une phase du moteur, un signal d'étage haut et un signal d'état bas, le début d'un état haut du signal d'état haut étant décalé temporellement d'une durée 35 appelée « temps mort inséré » par rapport au début de l'état bas correspondant du signal d'état bas, 3050336 6 - un amplificateur configuré pour amplifier lesdits signaux d'étage haut et d'étage bas, - un onduleur configuré pour générer, pour chaque phase du moteur, un signal de commande à partir d'un couple de signaux d'étage haut et d'état bas amplifiés, 5 - un module de mesure configuré pour mesurer et formater les signaux de commande générés, le microcontrôleur étant en outre configuré pour : - pour chaque signal de commande d'une phase du moteur, calculer la différence entre la durée d'un état haut du signal d'étage haut généré additionnée de la 10 valeur du temps mort inséré et la durée du signal de commande formaté, ladite différence évoluant de manière sinusoïdale dans le temps, - pour chaque signal de commande d'une phase du moteur, compenser la différence calculée afin qu'elle oscille autour d'une valeur nulle en fonction du temps, 15 - calculer le temps mort réel présent dans chacun des trois signaux de commande à un instant donné à partir des décalages temporels compensés pour chaque phase du moteur, d'une erreur prédéterminée de mesure commune aux trois phases du moteur et de la valeur de l'amplitude du courant circulant dans les transistors des trois couples de transistors audit instant donné, 20 - calculer la différence entre le temps mort calculé et le temps mort inséré, - détecter un défaut de commande du moteur lorsque la valeur absolue de la différence calculée est supérieure à un seuil de détection prédéterminé. Selon une caractéristique de l'invention, le dispositif est configuré pour déterminer l'erreur de mesure commune aux trois phases du moteur, cette détermination 25 étant réalisée en faisant la moyenne des décalages temporels calculés à courant nul circulant dans le transistor d'étage haut et le transistor d'étage bas pour chaque phase du moteur. Selon une autre caractéristique de l'invention, le dispositif est configuré pour calculer la pente d'une droite représentant l'évolution du temps mort en fonction du 30 courant, et pour calculer une différence entre la valeur du temps mort inséré corrigée de l'erreur prédéterminée de mesure et la valeur du temps mort à une amplitude de courant donnée à partir de la valeur de pente calculée afin de calculer le temps mort réel dans chacun des trois signaux de commande formaté à un instant donné. De préférence, la pente de la droite représentant l'évolution du temps mort en 35 fonction du courant est calculée selon l'équation suivante : MotPwmDif fTheo MotPwmDif fInitial MotPwmDif f Linlnit A - 2 lphAmpMax-lphAmpLinThr 3050336 7 où MotPwmDiffTheo est le temps mort inséré, MotPwmDifflnitial est l'erreur de mesure commune aux trois phases du moteur, MotPwmDif f Linlnit est la valeur du temps mort correspondant au seuil de courant IphAmpLinThr à partir duquel le temps mort évolue de façon linéaire en fonction du courant et IphAmpMax est la valeur 5 d'amplitude maximale du courant. De préférence encore, la différence (MotPwmDif f lphCorr) entre la valeur du temps mort inséré (MotPwmDiffTheo) corrigée de la moitié de l'erreur prédéterminée de mesure (MotPwmDifflnitial) et la valeur du temps mort (TM(I)) à une amplitude de courant donnée I est calculée selon l'équation suivante : 10 MotPwmDif flphCorr = (IphAmpMax - ampl(i)) x A Avantageusement, la détermination du temps mort observé (MotPwmDiffCalc) est réalisée selon l'équation suivante : MotPwmDif f Calc = MotPwmDif f X lphCorr + + MotPwmDifflnitial 2 avec 15 X = abs(min(MotPwmDif fCorrU,MotPwmDif fCorrV,MotPwmDif fCorrW) + maxMotPwm,DiffeorrU, MotPwm,DiffCorr MotPwm,DiffCorrW L'invention concerne également un véhicule automobile comprenant un dispositif tel que présenté précédemment. D'autres caractéristiques et avantages de l'invention apparaîtront lors de la 20 description qui suit faite en regard des figures annexées données à titre d'exemples non limitatifs et dans lesquelles des références identiques sont données à des objets semblables. - La figure 1 illustre schématiquement un dispositif de commande et de diagnostic des signaux de commande en courant d'un moteur électrique de 25 l'art antérieur. - La figure 2 est un exemple de signaux d'étage haut et bas initiaux générés par un microcontrôleur. - La figure 3 est un exemple de signal d'étage haut initial généré par un microcontrôleur. 30 - La figure 4 est un exemple de signal de sortie d'un transistor d'étage haut ayant reçu le signal de la figure 3. - La figure 5 est un exemple de signal d'étage bas initial généré par un microcontrôleur. - La figure 6 est un exemple de signal de sortie d'un transistor d'étage bas 35 ayant reçu le signal de la figure 5. 3050336 8 La figure 7 est un exemple de signal de commande formaté par un module de mesure. La figure 8 illustre schématiquement un dispositif de commande et de diagnostic des signaux de commande en courant d'un moteur électrique 5 selon l'invention. La figure 9 illustre schématiquement les variations temporelles des différences entre les durées attendues et les durées des états hauts des signaux initiaux pour les trois phases du moteur. La figure 10 illustre schématiquement les différences de la figure 9 qui ont 10 été centrées pour varier autour de zéro. La figure 11 illustre schématiquement l'évolution du temps mort réel en fonction du courant. La figure 12 illustre un mode de réalisation du procédé selon l'invention. Le dispositif selon l'invention est destiné à être monté dans un véhicule 15 automobile à moteur électrique afin de commander en courant ledit moteur et de diagnostiquer un défaut de commande dudit moteur. En référence à la figure 8, le moteur électrique 2 est un moteur à trois phases U, V, W ou moteur triphasé mais il va de soi que l'invention pourrait s'appliquer à tout moteur électrique de véhicule automobile. 20 Chaque phase U, V, W du moteur 2 est commandée en courant par un signal de commande, respectivement U, V, W, généré par le dispositif de commande 1B. A cette fin, le dispositif de commande 1B comprend un microcontrôleur 100, un amplificateur 200 et un étage de puissance se présentant sous la forme d'un onduleur 300. 25 Le microcontrôleur 100 est configuré pour générer trois couples de signaux de tension modulés en largeur d'impulsion (« Pulse-Width Modulation » ou PWM en langue anglaise), appelés signaux initiaux et dont un seul couple a été représenté sur les figures 3 et 5 par souci de clarté. Les signaux d'étage haut de ces trois couples sont identiques mais déphasés entre eux, de même que leurs signaux d'étage bas afin de 30 permettre la commande du moteur 2 électrique triphasé. Plus précisément, le moteur 2 est commandé par les différences de phases entre les trois signaux de commande en courant U, V, W générés par l'onduleur 300 à partir des trois couples de signaux initiaux SEH1, SEB1. Chaque couple de signaux initiaux comprend un signal d'étage 35 haut SEH1 (figure 3) et un signal d'étage bas SEB1 (figure 5), tous deux modulés en largeur d'impulsion, inversés l'un par rapport à l'autre et dont chaque état haut du signal d'étage haut SEH1 est centré avec un état bas du signal d'étage bas SEB1. Comme 3050336 9 illustré sur les figures 3 et 5, le début t2 d'un état haut du signal d'état haut SEH1 est décalé temporellement d'une durée MotPwmDiffTheo appelée « temps mort inséré » par rapport au début t1 de l'état bas correspondant du signal d'état bas SEB1. Toutefois, les capacités du microcontrôleur 100 ne permettant de générer que 5 des signaux de faible amplitude (le microcontrôleur 100 fonctionnant à partir d'un signal d'alimentation de l'ordre de 5 V), il est nécessaire d'amplifier ces signaux initiaux avant de les fournir à l'onduleur 300 pour générer les signaux de commande U, V, W du moteur 2. Le rôle de l'amplificateur 200 est d'amplifier les trois couples de signaux initiaux SEH1, SEB1 générés par le microcontrôleur 100, afin que leur amplitude soit 10 suffisante pour commander le moteur 2, avant de les fournir à l'onduleur 300. L'onduleur 300 est configuré pour générer les trois signaux de commande U, V, W du moteur 2 à partir des trois couples de signaux initiaux SEH1, SEB1 amplifiés fournis par l'amplificateur 200. A cette fin, comme illustré à la figure 8, l'onduleur 300 comprend trois couples de transistors au point milieu de chacun desquels est généré un 15 signal de commande en courant U, V, W. Chaque signal de commande U, V, W est modulé en largeur d'impulsion et est généré au point milieu d'un ensemble formé par un transistor dit « d'étage haut » connecté à la batterie B du véhicule et un transistor dit « d'étage bas » connecté à la masse M à partir d'un signal d'étage haut SEH1 amplifié reçu par le transistor d'étage 20 haut et d'un signal d'étage bas SEB1 amplifié reçu par le transistor d'étage bas. Le temps mort réel présent dans les signaux de commande est différent du temps mort inséré par le microcontrôleur 100 car les composants électroniques du dispositif de commande 1B, notamment ceux de l'onduleur 300 en font varier la durée réelle, par exemple lorsque les transistors de l'onduleur 300 chauffent. 25 On a représenté aux figures 3 à 6 des exemples de signaux du dispositif de commande (illustrés pour un cycle de signal PWM). Plus précisément, la figure 3 illustre un signal d'étage haut SEH1 généré par le microcontrôleur 100 à destination d'un transistor d'étage haut d'un couple de transistors, la figure 4 illustre le signal SEH2 de sortie dudit transistor d'étage haut, la figure 5 illustre un signal d'étage bas SEB1 généré 30 par le microcontrôleur 100 à destination du transistor d'étage bas dudit couple de transistors et la figure 6 illustre le signal SEB2 de sortie dudit transistor d'étage bas. On observe ainsi sur les figures 3 et 5 que le microcontrôleur 100 observe un temps mort MotPwmDiffTheo entre la fin t1 d'un état actif du signal d'étage bas SEB1 et le début t2 d'un état actif du signal d'étage haut SEH1. On observe sur la figure 4 qu'un délai cl, de 35 mise en fonctionnement est nécessaire au transistor d'étage haut suivi d'un temps de montée d2 afin que le signal de sortie SEH2 du transistor atteigne l'état actif puis qu'un délai d3 de mise à l'arrêt du transistor est nécessaire suivi d'un temps de descente d4 du 3050336 10 signal de sortie SEH2 jusqu'à l'état inactif du transistor. Similairement, on observe sur la figure 6 qu'un délai d5 de mise à l'arrêt est nécessaire au transistor d'étage bas suivi d'un temps de descente d6 afin que le signal de sortie SEB2 du transistor atteigne l'état inactif puis qu'un délai d7 de mise en fonctionnement du transistor est nécessaire suivi 5 d'un temps de montée d8 du signal de sortie SEB2 jusqu'à l'état actif du transistor. En référence à la figure 7, la durée de l'état haut du signal d'étage haut SEH1 additionnée de la durée du temps mort inséré (théorique) est notée MotPwmExpected et appelée durée attendue. Le module de mesure 400 est configuré pour mesurer les signaux de 10 commande U, V, W générés par l'onduleur 300, les formater (connu en soi) en des signaux MotPwmFbkU, MotPwmFbkV, MotPwmFbkW que le microcontrôleur 100 peut lire et analyser et les fournir au microcontrôleur 100 dans une boucle de retour. On notera que les signaux de commande U, V, W et les signaux de commande formatés MotPwmFbkU, MotPwmFbkV, MotPwmFbkW présentent des caractéristiques 15 quasiment identiques en termes de temps mort et de décalages temporelles (au léger retard induit par les filtres du module de mesure 400 près). La figure 7 illustre le signal de commande formaté associé aux signaux des figures 3 à 6. La durée MotPwmFbk de l'état haut de ce signal est définie entre un premier instant pour lequel la valeur du signal franchit un seuil maximum Smax et un 20 deuxième instant pour lequel la valeur du signal franchit un seuil minimum Smin- Pour chaque signal de commande formaté MotPwmFbkU, MotPwmFbkV, MotPwmFbkW d'une phase du moteur 2, le microcontrôleur 100 est configuré pour calculer la différence MotPwmDiffU,MotPwmDiffV,MotPwmDiffW entre la durée attendue MotPwmExpected et la durée MotPwmFbk d'un état haut du signal de 25 commande formaté MotPwmFbkU, MotPwmFbkV, MotPwmFbkW, cette différence MotPwmDif fU, MotPwmDiffV, MotPwmDiffW évoluant de manière sinusoïdale avec le temps. Comme illustré à la figure 9, ces différences MotPwmDif fU, MotPwmDiffV, MotPwmDiffW oscillent dans le temps autour d'une valeur centrale non nulle qui 30 correspond aux erreurs de mesure dues notamment à l'échauffement des transistors de l'onduleur 300. Ensuite, pour chaque signal de commande formaté MotPwmFbkU, MotPwmFbkV, MotPwmFbkW d'une phase du moteur 2, le microcontrôleur 100 est configuré pour compenser la différence MotPwmDif fU, 35 MotPwmDiffV, MotPwmDiffW calculée afin qu'elle oscille autour d'une valeur nulle en fonction du temps t. Le microcontrôleur 100 corrige cette dérive en centrant autour de 3050336 11 zéro le signal représentant le temps mort réel présent dans le signal de commande du moteur 2 en fonction du temps comme illustré à la figure 10. Le microcontrôleur 100 est ensuite configuré pour calculer le temps mort réel MotPwmDif fCalc présent dans chacun des trois signaux de commande 5 formaté MotPwmFbkU, MotPwmFbkV , MotPwmFbkW à un instant donné à partir : - des décalages temporels compensés MotPwmDif fCorrU, MotPwmDif fCorrV, MotPwmDif fCorrW pour chaque phase U, V, W du moteur 2, - d'une erreur prédéterminée de mesure commune aux trois phases U, V, W du moteur 2, et 10 - de la valeur de l'amplitude du courant I circulant dans les transistors des trois couples de transistors audit instant donné. L'erreur de mesure est une erreur commune aux trois phases du moteur 2. Elle est déterminée par le microcontrôleur 100 en faisant la moyenne des décalages temporels calculés à courant nul circulant dans le transistor d'étage haut et le transistor 15 d'étage bas pour chaque phase du moteur 2. Le microcontrôleur 100 calcule le temps mort réel en prenant comme hypothèse que le temps mort maximum atteignable est égal au temps mort inséré théoriquement par le microcontrôleur 100 auquel on soustrait la moitié de la l'erreur de mesure commune des trois signaux de commande à courant nul. 20 Le temps mort réel peut être calculé lorsque l'amplitude du courant circulant dans les transistors de l'onduleur 300 est supérieure à un seuil de courant minimum déterminé par le microcontrôleur 100. En effet, dans ce cas, on peut calculer la valeur de correction du temps mort à partir de l'amplitude de courant mesurée, de l'amplitude maximale de courant et de la pente de l'évolution du temps mort en fonction du courant. 25 Afin de déterminer le temps mort réel MotPwmDif f Calc dans chacun des trois signaux de commande formaté MotPwmFbkU,MotPwmFbkV,MotPwmFbkW à un instant donné, le microcontrôleur 100 est configuré pour calculer la pente A d'une droite représentant l'évolution du temps mort TM en fonction du courant I. Pour ce faire, en référence à la figure 11, le microcontrôleur 100 est configuré 30 pour calculer la pente A de la droite représentant l'évolution du temps mort TM en fonction du courant I selon l'équation suivante : MotPwmDif !Initial MotPwmDif fTheo MotPwmD if f Linlnit A = 2 lphAmpMax- lphAmpLinThr MotPwmDif fLinInit est la valeur de temps mort correspondant au seuil de courant IphAmpLinThr à partir duquel le temps mort TM évolue de façon linéaire en 35 fonction du courant et IphAmpMax est la valeur d'amplitude maximale du courant. 3050336 12 Le microcontrôleur 100 est configuré pour calculer la différence MotPwmDifflphCorr entre la valeur du temps mort inséré MotPwmDiffTheo corrigée de la moitié de l'erreur prédéterminée de mesure MotPwmDif f Initial et la valeur du temps mort TM(I) à une amplitude de courant donnée I est calculée selon l'équation suivante : 5 MotPwmDif flphCorr = (IphAmpMax - ampl(i)) x A Le microcontrôleur 100 est configuré pour déterminer le temps mort observé MotPwmDiffCalc selon l'équation suivante : MotPwmDif f X Calc = MotPwmDifflphCorr + + MotPwmDif flnitial 2 avec 10 X = abs(min(MotPwmDiffCorrU,MotPwmDiffCorrV,MotPwmDiffCorrW) + max(MotPwmDif fCorrU,MotPwmDiffCorrV,MotPwmDiffCorrW)). Le microcontrôleur 100 est ensuite configuré pour calculer la différence absolue D entre la valeur du temps mort inséré MotPwmDiffTheo, corrigée de l'erreur prédéterminée de mesure, et la valeur du temps mort réel calculé MotPwmDiffCalc à 15 une amplitude de courant I donnée à partir de la valeur de pente A calculée. Le microcontrôleur 100 est enfin configuré pour détecter un défaut de commande du moteur 2 lorsque la valeur absolue de la différence D calculée est supérieure à un seuil de détection SD prédéterminé. L'invention va maintenant être décrite en référence aux figures 8 à 12. 20 Tout d'abord, dans une étape E1, le microcontrôleur 100 génère un signal d'étage haut initial SEH1 et un signal d'état bas initial SEB1 pour chaque couple de transistors de l'onduleur 300 associé à l'une des trois phases. Dans une étape E2, l'amplificateur 200 amplifie un signal d'étage haut initial SEH1 et un signal d'état bas initial SEB1 générés pour chaque phase du moteur 2 25 et les transmet à l'onduleur 300. L'onduleur 300 génère, dans une étape E3, pour chaque couple de transistors, un signal de commande U, V, W à partir du signal d'étage haut initial SEH1 amplifié et du signal d'état bas initial SEB1 amplifié reçus. Le module de mesure 400 mesure ensuite dans une étape E4 les signaux de 30 commande en courant U, V, W générés par l'onduleur 300 pour commander le moteur 2 et les formate en des signaux de commande formatés MotPwmFbkU, MotPwmFbkV, MotPwmFbkW . Le microcontrôleur 100 calcule ensuite dans une étape E5, pour chaque phase du moteur 2, la différence MotPwmDiffU MotPwmDiffV, MotPwmDiffW entre la 35 durée attendue MotPwmExpected et la durée MotPwmFbk du signal de commande formaté MotPwmFbkU, MotPwmFbkV, MotPwmFbkW . 3050336 13 Le microcontrôleur 100 compense ensuite dans une étape E6, pour chaque phase du moteur 2 la différence MotPwmDif fU,MotPwmDif fV,MotPwmDif fW calculée afin qu'elle oscille autour d'une valeur nulle en fonction du temps t, comme expliqué ci-avant. 5 Dans une étape E7, le microcontrôleur 100 détermine l'erreur de mesure MotPwmDifflnitial commune aux trois phases du moteur 2 en faisant la moyenne des décalages temporels calculés à courant nul circulant dans le transistor d'étage haut et le transistor d'étage bas pour chaque phase du moteur 2. On notera que cette étape E7 peut être réalisée à tout moment antérieurement à l'une des étapes El à E6. 10 Le microcontrôleur 100 détermine dans une étape E8 le temps mort réel MotPwmDif fCalc présent dans chacun des trois signaux de commande à un instant donné à partir des décalages temporels compensés MotPwmDif fCorrU, MotPwmDif fCorrV, MotPwmDif fCorrW pour chaque phase du moteur 2, de l'erreur MotPwmDifflnitial prédéterminée de mesure commune aux trois phases du moteur 2 et 15 de la valeur de l'amplitude du courant I circulant dans les transistors des trois couples de transistors audit instant donné. La détermination du temps mort observé dans chacun des trois signaux de commande MotPwmFbkU,MotPwmFbkV,MotPwmFbkW à un instant donné implique le calcul de la pente A d'une droite représentant l'évolution du temps mort en fonction du 20 courant. La pente A de la droite représentant l'évolution du temps mort en fonction du courant est calculée selon l'équation suivante : MotPwmDifflnitial MotPwmDif fTheo MotPwmDif fLinInit A - lphAmpMax-lphAmpLinThr OÙ MotPwmDif fLinInit est la valeur du temps mort correspondant au seuil de 25 courant IphAmpLinThr à partir duquel le temps mort évolue de façon linéaire en fonction du courant et IphAmpMax est la valeur d'amplitude maximale du courant. Le microcontrôleur 100 détermine le temps mort observé MotPwmDif f Calc selon l'équation suivante : MotPwmDif f Calc = MotPwmDiff X lphCorr + + MotPwmDif flnitial 2 30 avec X = abs (min (MotPwmDif fCorrU,MotPwmDif fCorrV,MotPwmDiffCorrW) + max(MotPwmDif fCorrU,MotPwmDif fCorrV,MotPwmDif fCorrW)) et MotPwmDif f lphCorr correspond à la différence entre la valeur du temps mort inséré MotPwmDif fTheo corrigée de la moitié de l'erreur prédéterminée de mesure 35 MotPwmDifflnitial et la valeur du temps mort TM(I) à une amplitude de courant donnée I est calculée selon l'équation suivante : 3050336 14 MotPwmDif flphCorr = (IphAmpMax - ampl(i)) x A Dans une étape E9, le microcontrôleur 100 calcule la différence absolue D entre le temps mort déterminé MotPwmDif f Calc et le temps mort inséré MotPwmDif fTheo dont il connait la valeur pour l'avoir lui-même inséré. 5 Le microcontrôleur 100 détecte ainsi un défaut de commande du moteur 2 dans une étape E10 lorsque la valeur absolue de la différence D calculée est supérieure à un seuil de détection SD prédéterminé. Le procédé selon l'invention permet avantageusement de diagnostiquer des défauts de commande en courant d'un moteur électrique de manière fiable et avec une 10 précision importante de l'ordre de 250 ns, ce qui rend la détection de défaut efficace. Il est précisé, en outre, que la présente invention n'est pas limitée aux exemples décrits ci-dessus et est susceptible de nombreuses variantes accessibles à l'homme de l'art. REVENDICATIONS1. Procédé de diagnostic d'un défaut de commande d'un moteur (2) électrique triphasé, chaque phase dudit moteur (2) étant commandée en courant par un signal de commande (U, V, W), ledit signal de commande (U, V, W) étant modulé en largeur d'impulsion et étant généré au point milieu d'un ensemble formé par un transistor 5 dit « d'étage haut » connecté à la batterie du véhicule et un transistor dit « d'étage bas » connecté à la masse à partir d'un signal d'étage haut (SEH1) reçu par le transistor d'étage haut et d'un signal d'étage bas (SEB1) reçu par le transistor d'étage bas, le signal d'étage haut (SEH1) et le signal d'étage bas (SEB1) étant des signaux modulés en largeur d'impulsion, inversés l'un par rapport à l'autre et dont chaque état haut du signal d'étage 10 haut (SEH1) est centré avec un état bas du signal d'étage bas (SEB1), ledit procédé comprenant les étapes suivantes : - pour chaque signal de commande (U, V, W) d'une phase du moteur (2), - génération (E1) du signal d'étage haut (SEH1) et du signal d'état bas (SEB1), le début (t2) d'un état haut du signal d'état haut étant décalé 15 temporellement d'une durée (MotPwmDiffTheo) appelée « temps mort inséré » par rapport au début (t2) de l'état bas correspondant du signal d'état bas, génération (E3) du signal de commande (U, V, W) à partir du signal d'étage haut (SEH1) et du signal d'état bas (SEB1) générés, 20 mesure et formatage (E4) du signal de commande, - calcul (E5) de la différence (MotPwmDiffU,MotPwmDif fV,MotPwmDiffW) entre la durée (MotPwmExpected) d'un état haut du signal d'étage haut généré additionnée de la valeur du temps mort inséré (MotPwmDiffTheo) et la 25 durée (MotPwmFbk) du signal de commande formaté (MotPwmFbkU, MotPwmFbkV, MotPwmFbkW), ladite différence (MotPwmDiffU,MotPwmDiffV,MotPwmDiffW) évoluant de manière sinusoïdale dans le temps (t), - compensation (E6) de la différence (MotPwmDiffU, MotPwmDiffV, 30 MotPwmDiffW) calculée afin qu'elle oscille autour d'une valeur nulle en fonction du temps (t), - calcul (E8) du temps mort réel (MotPwmDiffCalc) présent dans chacun des trois signaux de commande à un instant donné à partir des décalages temporels 3050336 16 compensés (Mo tPwmDiffCorrU, MotPwmDif fCorrV,MotPwmDiffCorrW) pour chaque phase du moteur (2), d'une erreur (MotPwmDif f Initial) prédéterminée de mesure commune aux trois phases du moteur (2) et de la valeur de l'amplitude du courant (I) circulant dans les transistors des trois couples de transistors audit instant donné, - calcul (E9) de la différence (D) entre le temps mort calculé (MotPwmDiffCalc) et le temps mort inséré (MotPwmDiffTheo), - détection (E10) d'un défaut de commande du moteur (2) lorsque la valeur absolue de la différence (D) calculée est supérieure à un seuil de détection (SD) prédéterminé. 2. Procédé selon la revendication 1, comprenant une étape (E7) de détermination de l'erreur de mesure (MotPwmDifflnitial) commune aux trois phases du moteur (2), cette détermination étant réalisée en faisant la moyenne des décalages temporels calculés à courant nul circulant dans le transistor d'étage haut et le transistor d'étage bas pour chaque phase du moteur (2). 3. Procédé selon l'une des revendications 1 et 2, dans lequel le calcul du temps mort réel dans chacun des trois signaux de commande formaté (MotPwmFbkU,MotPwmFbkV, MotPwmFbkW) à un instant donné comprend : - le calcul de la pente (A) d'une droite représentant l'évolution du temps mort (TM) en fonction du courant (I), - le calcul d'une différence entre la valeur du temps mort inséré (MotPwmDiffTheo) corrigée de l'erreur prédéterminée de mesure (MotPwmDiffinitia/) et la valeur du temps mort à une amplitude de courant (I) donnée à partir de la valeur de pente (A) calculée. 4. Procédé selon la revendication 3, dans lequel la pente (A) de la droite représentant l'évolution du temps mort en fonction du courant est calculée selon l'équation suivante : MotPwmDiffTheo MotPwmDif f Initial MotPwmDif fLinInit A - 2 lphAmpMax-lphAmpLinThr où MotPwmDif f Linlnit est la valeur du temps mort correspondant au seuil de courant 30 lphAmpLinThr à partir duquel le temps mort évolue de façon linéaire en fonction du courant et lphAmpMax est la valeur d'amplitude maximale du courant. 5. Procédé selon la revendication 4, dans lequel la différence (MotPwmDif f lphCorr) entre la valeur du temps mort inséré (MotPwmDiffTheo) corrigée 3050336 17 de la moitié de l'erreur prédéterminée de mesure (MotPwmDif f Initial) et la valeur du temps mort (TM(I)) à une amplitude de courant (I) donnée est calculée selon l'équation suivante : MotPwmDif flphCorr = (IphAmpMax - ampl(i)) x A 5 6. Procédé selon la revendication 4, dans lequel le calcul du temps mort réel (MotPwmDif fCalc) est réalisé selon l'équation suivante : MotPwmDif f Calc = MotPwmDif flphCorr + X + MotPwmDif f Initial 2 avec X = abs(min(MotPwmDif fCorrU,MotPwmDif fCorrV,MotPwmDif fCorrW) + max(MotPwmDif fCorrU,MotPwmDif fCorrV,MotPwmDif fCorrW)). 10 7. Dispositif (1) de diagnostic d'un défaut de commande d'un moteur (2) électrique triphasé, chaque phase dudit moteur (2) étant commandée en courant par un signal de commande (U, V, W), ledit signal de commande (U, V, W) étant modulé en largeur d'impulsion et étant généré au point milieu d'un ensemble formé par un transistor dit « d'étage haut » connecté à la batterie (B) du véhicule et un transistor dit « d'étage 15 bas » connecté à la masse (M) à partir d'un signal d'étage haut (SEH1) reçu par le transistor d'étage haut et d'un signal d'étage bas (SEB1) reçu par le transistor d'étage bas, le signal d'étage haut (SEH1) et le signal d'étage bas (SEB1) étant des signaux modulés en largeur d'impulsion, inversés l'un par rapport à l'autre et dont chaque état haut du signal d'étage haut (SEH1) est centré avec un état bas du signal d'étage 20 bas (SEB1), ledit dispositif (1) comprenant : - un microcontrôleur (100) configuré pour générer, pour chaque signal de commande (U, V, W) d'une phase du moteur (2), un signal d'étage haut (SEH1) et un signal d'état bas (SEB1), le début (t2) d'un état haut du signal d'état haut étant décalé temporellement d'une durée appelée « temps 25 mort inséré » (MotPwmDiffTheo) par rapport au début (t2) de l'état bas correspondant du signal d'état bas (SEB1), - un amplificateur (200) configuré pour amplifier lesdits signaux d'étage haut (SEH1) et d'étage bas (SEB1), - un onduleur (300) configuré pour générer, pour chaque phase du moteur (2), un signal de commande (U, V, W) à partir d'un couple de signaux d'étage haut (SEH1) et d'état bas (SEB1) amplifiés, - un module de mesure (400) configuré pour mesurer et formater les signaux de commande (U, V, W) générés, 3050336 18 le microcontrôleur (100) étant en outre configuré pour : - pour chaque signal de commande (U, V, W) d'une phase du moteur (2), calculer la différence (MotPwmDiffU,MotPwmDiffV ,MotPwmDiffW) entre la durée d'un état haut du signal d'étage haut (SEH1) généré additionnée de la valeur du 5 temps mort inséré (MotPwmDif fTheo) et la durée (MotPwmFbk) du signal de commande (MotPwmFbkU,MotPwmFbkV,MotPwmFbkW) formaté, ladite différence (MotPwmDiffU,MotPwmDiffV,MotPwmDif fW) évoluant de manière sinusoïdale dans le temps (t), - pour chaque signal de commande (U, V, W) d'une phase du moteur (2), 10 compenser la différence (MotPwmDiffU,MotPwmDiffV,MotPwmDiffW) calculée afin qu'elle oscille autour d'une valeur nulle en fonction du temps (t), - calculer le temps mort réel (MotPwmDiffCalc) présent dans chacun des trois signaux de commande à un instant donné à partir des décalages temporels compensés (MotPwmDiffCorrU,MotPwmDif fCorrV,MotPwmDiffCorrW) 15 pour chaque phase du moteur (2), d'une erreur (MotPwmDif flnitial) prédéterminée de mesure commune aux trois phases du moteur (2) et de la valeur de l'amplitude du courant (I) circulant dans les transistors des trois couples de transistors audit instant donné, - calculer la différence (D) entre le temps mort calculé (MotPwmDiffCalc) et le 20 temps mort inséré (MotPwmDiffTheo), - détecter un défaut de commande du moteur (2) lorsque la valeur absolue de la différence (D) calculée est supérieure à un seuil de détection (SD) prédéterminé. 8. Dispositif (1) selon la revendication 7, configuré pour déterminer l'erreur de mesure (MotPwmDiff/nitia/) commune aux trois phases du moteur (2), cette 25 détermination étant réalisée en faisant la moyenne des décalages temporels calculés à courant nul circulant dans le transistor d'étage haut et le transistor d'étage bas pour chaque phase du moteur (2). 9. Dispositif (1) selon l'une des revendications 7 et 8, configuré pour calculer la pente (A) d'une droite représentant l'évolution du temps mort en fonction du courant (I), et 30 pour calculer une différence entre la valeur du temps mort inséré (MotPwmDiffTheo) corrigée de l'erreur prédéterminée de mesure (MotPwmDif f Initial) et la valeur du temps mort à une amplitude de courant (I) donnée à partir de la valeur de pente (A) calculée afin de calculer le temps mort réel (MotPwmDiffCalc) dans chacun des trois signaux de commande formaté (MotPwmFbkU, MotPwmFbkV, MotPwmFbkW) à un instant donné. 3050336 19 10. Dispositif (1) selon la revendication 9, dans lequel la pente (A) de la droite représentant l'évolution du temps mort en fonction du courant (I) est calculée selon l'équation suivante : MotPwmDif fTheo MotPwmDi f f Initial MotPwmDif fLinInit A = 2 lphAmpMax-lphAmpLinThr 5 où MotPwmDif f Linlnit est la valeur du temps mort correspondant au seuil de courant lphAmpLinThr à partir duquel le temps mort évolue de façon linéaire en fonction du courant et lphAmpMax est la valeur d'amplitude maximale du courant, la différence (MotPwmDif f lphCorr) entre la valeur du temps mort inséré (MotPwmDif fTheo) corrigée de la moitié de l'erreur prédéterminée de 10 mesure (MotPwmDiffinitia/) et la valeur du temps mort (TM(I)) à une amplitude de courant donnée I est calculée selon l'équation suivante : MotPwmDif flphCorr = (lphAmpMax - ampl(i)) x A Et la détermination du temps mort observé (MotPwmDif f Cale) est réalisée selon l'équation suivante : 15 MotPwmDif f Calc = MotPwmDif f X lphCorr + + MotPwmDif f Initial 2 avec X = abs(min(MotPwmDif fCorrU,MotPwmDif fCorrV,MotPwmDif f CorrW) + maxMotPwm,1»://CorrU, MotPwm,DiffCorr MotPwm,DiffCorrW