Brevet FR2963129A1 — publié le 20120127

PROCEDE D'ESTIMATION PAR UN CALCULATEUR D'UNE DUREE SEPARANT UNE EXECUTION D'UNE TÂCHE PERIODIQUE D'UNE EXECUTION IMMEDIATEMENT PRECEDENTE D'UNE TÂCHE ASYNCHRONE [0001] L'invention concerne un procédé d'estimation par un calculateur électronique temps réel exécutant une tâche périodique Xp et une tâche asynchrone Xa, d'une durée Y; séparant une exécution Xp; de la tâche Xp d'une exécution Xai immédiatement précédente de la tâche Xa, les indices i et j étant des entiers représentant les numéros d'ordres des exécutions, respectivement, des tâches Xp et Xa. L'invention concerne également un support d'enregistrement d'informations contenant des instructions pour l'exécution de ce procédé ainsi qu'un véhicule. [0002] L'invention s'applique en particulier au domaine des systèmes temps réel. Par « système temps réel » on désigne un système informatique comprenant un ensemble de tâches interdépendantes dont l'exécution est réalisée en respectant des contraintes temporelles. Ces tâches peuvent être périodiques ou asynchrones. Par « tâche périodique » on désigne une tâche dont l'exécution est déclenchée à intervalle régulier. Par « tâche asynchrone » on désigne une tâche dont l'exécution est déclenchée de manière événementielle en réponse à l'occurrence d'un événement prédéterminé. Cet événement ne se produit pas de façon périodique. [0003] Par exemple, les véhicules automobiles équipés de calculateur de contrôle moteur sont des systèmes temps réels. Une tâche périodique peut être l'acquisition d'un régime moteur par le calculateur par l'intermédiaire d'un capteur. Par régime moteur on désigne la vitesse de rotation d'un arbre de vilebrequin, exprimé par exemple en nombre de tours par minute. Une tâche asynchrone peut être l'actionnement d'un enfoncement d'une pédale d'accélération par un utilisateur du véhicule. De tels systèmes temps réel ont généralement la capacité de mesurer la durée s'écoulant entre deux exécutions d'une mêmes tâches, par exemple par l'intermédiaire de compteurs dédiés à cet effet. En revanche, il est plus difficile pour ces systèmes de déterminer la durée s'écoulant entre deux exécutions de deux tâches différentes. [0001] L'invention vise à résoudre cet inconvénient. [0002] L'invention porte ainsi sur un procédé comprenant l'estimation de la durée Y; à partir : - d'une durée Ti séparant deux exécutions Xai et Xai+1 encadrant 40 temporellement l'exécution Xp;, - d'une durée T;_, séparant deux exécutions Xai_k et Xai_k+, encadrant temporellement une exécution Xp;_,, k étant un entier positif, - d'une durée AB; séparant les exécutions Xpi_1 et Xp;, et - d'une durée AA; séparant les exécutions Xai_k et Xai. [0003] Le procédé ci-dessus permet d'estimer la durée Y; sans utiliser de compteur supplémentaire commun aux deux tâches. De plus, la durée Y; est uniquement estimée à partir de mesures de durées entre les exécutions d'une même tâche. [0004] Les modes de réalisation de ce procédé peuvent comporter en outre une ou plusieurs des caractéristiques suivantes : - l'estimation de la durée Y; comprend : - la détermination d'une plage de durées à laquelle doit appartenir une durée Y;_1, établie à l'aide d'un procédé d'estimation conforme à la revendication 1, séparant l'exécution Xai_k de l'exécution Xpi_1 à partir des durées AB; , AA;, Ti_1 et/ou Ti , et - la réalisation de l'estimation de la durée Y; à partir de cette plage de durées et des durées AB; et AA;. . - le procédé comprend : - l'estimation grossière d'une plage de durées [Yi-1_ min_ grossière ; Yi-1_ max_ grossière], à laquelle la durée Yi_1 doit appartenir, à partir des durées AB;, AA;, Ti_1 et/ou Ti, - l'estimation plus fine d'une plage de durées [Yi_1_min_fine Yi 1_max_fine], à laquelle la durée Y;_ldoit appartenir, moins large que la plage de durées [Yi-1_ min_ grossière ; Y1 -1_ max_ grossière] déterminée, - l'estimation d'une plage de durées [Y; min; Yi max] à laquelle doit appartenir la durée Y; à partir de la plage de durées [Yi-1_min_fine Yi 1_max_fine] déterminée et des durées AB; et AA;, et - l'estimation de la durée Y; à partir de la plage de durées [Yi_min; Yi_max] déterminée. - les bornes de la plage de durées [Yi_1_min_grossière ; Yi- max_ grossière] sont déterminées à l'aide des relations suivantes: Yi-1_min_ grossière = max (0 ; AA; - Bi), et Yi-1_max_grossière = min (AA; - AB; + Ti ; Ti 1)- - la plage de durées [Yi-1_min_fine ; Yi-1_max_fine] est déterminée en réalisant l'intersection de la plage de durées [Yi-1_ min_ grossière ; Yi-1_ max_ grossière] et d'une plage de durées [Yi-1 min; Yi-1 max], la plage de durées [Yi_- min; Yi-1 max] étant une plage de durées calculée lors d'une itération précédente du même procédé pour estimer - les bornes de la plage de durée [Y_min; Yi_max] sont déterminées à l'aide des relations suivantes : Yimin = Yi 1 min fine - (AA; - ABi), et Yi max = Yi 1 max fine - (AAi - ABi)- - l'estimation de la durée Yi est déterminée à l'aide de la relation suivante : Yi = (Yi_max - Yi_min)/2 - le procédé comporte des opérations de mesure ou d'estimation des durées AAi, Ti_1 et/ou Ti par l'intermédiaire d'un ou plusieurs compteurs. [0005] L'invention concerne également un support d'enregistrement d'informations contenant des instructions pour l'exécution du procédé ci-dessus, lorsque ces instructions sont exécutées par un calculateur électronique. [0006] L'invention concerne enfin un véhicule, comportant un calculateur électronique temps réel exécutant une tâche périodique Xp et une tâche asynchrone Xa, ce calculateur exécutant un procédé d'estimation d'une durée Yi séparant une exécution Xpi de la tâche Xp d'une exécution Xai immédiatement précédente de la tâche Xa, les indices i et j étant des entiers représentant le numéro d'ordre des exécutions respectivement, des tâches Xp et Xa, le calculateur étant apte à estimer la durée Yi à partir: - d'une durée Ti séparant deux exécutions Xai et Xai+1 encadrant temporellement l'exécution Xpi, - d'une durée Ti_1 séparant deux exécutions Xai_k et Xai_k+1 encadrant temporellement une exécution Xpi_1, k étant un entier positif, - d'une durée ABi séparant les exécutions Xpi_1 et Xpi, - d'une durée AAi séparant les exécutions Xai_k et Xai. [0007] L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif et faite en se référant aux dessins sur lesquels : - la figure 1 est une illustration schématique partielle d'un véhicule équipé d'un calculateur électronique temps réel, - la figure 2 est un chronogramme illustrant un enchaînement d'exécutions d'une tâche périodique et d'une tâche asynchrone par le calculateur de la figure 1, - la figure 3 est un second chronogramme illustrant un enchaînement d'exécutions d'une tâche périodique et d'une tâche asynchrone par le calculateur de la figure 1, et - la figure 4 est un organigramme d'un procédé d'estimation d'une durée séparant une exécution de la tâche périodique d'une exécution immédiatement précédente de la tâche asynchrone mis en oeuvre par le calculateur de la figure 1. [0008] La figure 1 représente un véhicule 2. Par exemple, ce véhicule 2 est un véhicule automobile. Ici, le véhicule 2 est une voiture. [0009] Ce véhicule 2 est équipé d'un moteur 4 à combustion interne propre à entraîner en rotation des roues motrices 6 et 7. Le moteur 4 est connecté à un calculateur 6 programmable apte à exécuter des instructions enregistrées sur un support d'enregistrement d'informations. A cet effet, le calculateur 6 est raccordé au support 8 d'enregistrement contenant des instructions pour l'exécution du procédé de la figure 4. Ici, le calculateur 6 est un calculateur électronique temps réel de contrôle moteur apte à gérer des paramètres de fonctionnement du moteur 4. Le calculateur 6 contrôle, par exemple, en temps réel la richesse des gaz de combustion et/ou l'émission d'éléments polluants dans des gaz d'échappement. A cet effet, le calculateur 6 analyse des signaux envoyés par des capteurs 9 embarqués sur le véhicule 2 en exécutant en temps réel différentes tâches. Ces signaux envoyés sont, par exemple, une mesure d'une position d'une pédale d'accélération, d'un régime moteur, d'un bruit de cliquetis, d'une pression, et/ou d'une température. A partir des signaux envoyés, le calculateur 6 est apte à commander le fonctionnement du moteur 4 en agissant sur des actionneurs 11 du moteur 4. Par exemple, les actionneurs 11 peuvent être une vanne papillon des gaz, un injecteur de carburant, une vanne de recirculation des gaz d'échappement. [0010] Les tâches permettant l'analyse de ces signaux peuvent être exécutées de manière périodique ou asynchrone. [0011] Dans la suite de la description, pour simplifier on considère que le calculateur 6 exécute une tâche périodique Xp et une tâche asynchrone Xa. On note Xp; une exécution de la tâche Xp, et Xai une exécution de la tâche Xa. Les indices i et j représentent les numéros d'ordres des exécutions, respectivement, des tâches Xp et Xa. Ici, les indices i et j sont des entiers positifs. Dans l'exemple, on considère que la durée de l'exécution Xp; est suffisamment brève pour qu'au moment de l'exécution Xpi+1 l'exécution Xp; soit achevée. De même, on considère que la durée d'exécution Xai est suffisamment brève pour qu'au moment de l'exécution Xai+1 l'exécution Xai soit achevée. [0012] Les figures 2 et 3 illustrent des exemples de chronogrammes d'exécutions des tâches Xp et Xa exécutées sur le calculateur 6. Sur ces chronogrammes, les différentes durées utilisées dans le procédé de la figure 4 sont représentées et définies ci-dessous. [0013] La durée Ti est la durée séparant deux exécutions Xai et Xai+1 immédiatement successives de la tâche Xa encadrant temporellement une exécution Xp; de la tâche Xp. [0014] La durée Ti_1 est la durée séparant deux exécutions Xai_k et Xai_k+1 immédiatement successives de la tâche Xa encadrant temporellement une exécution Xp;_1 de la tâche Xp, où l'indice k est un entier positif. L'exécution Xai_k précède immédiatement la tâche Xp;_1. [0015] La durée AB; est la durée séparant les exécutions Xpi_1 et Xp;. La tâche Xp étant périodique, la durée AB; est égale à la période d'exécution de la tâche Xp. Elle est donc généralement connue et ne nécessite pas d'être mesurée. [0016] La durée AAi est la durée séparant les exécutions Xai_k et Xai. [0017] La durée Yi_1 est la durée séparant l'exécution Xai_k de l'exécution Xp~1 [0018] Le fonctionnement du calculateur 6 pour estimer la durée Y; va maintenant être décrit en regard de la figure 4. [0019] Ici, le procédé d'estimation de la durée Y; est décrit dans le cas particulier où celui-ci est exécuté lors de l'exécution Xp;. Typiquement, ce procédé est exécuté à chaque exécution de la tâche Xp. Par exemple, ce procédé est exécuté au sein de la tâche Xp. [0020] Lors d'une étape 22, la durée AB; est déterminée. Par exemple, la période d'exécution de la tâche Xp est mémorisée dans le support d'enregistrement 8. Le calculateur 6 peut alors directement déduire la durée AB;. [0021] Lors d'une étape 24, le calculateur vérifie si une exécution de la tâche Xa s'est produite entre l'exécution Xp; et l'exécution Xpi-1. [0022] Dans le cas (illustré sur la figure 3) où aucune exécution de la tâche Xa ne s'est produite entre l'exécution Xp; et l'exécution Xpi_1, la durée Y; est estimée à partir des durées AB; et Yi_1 lors d'une étape 26. La durée Yi_1 est celle précédemment estimée lors de l'exécution Xpi_1. Ici, lors de l'étape 26 la durée Y; est déterminée à l'aide de la relation suivante : Y;=Y;-1+AB; [0023] Dans le cas (illustré sur la figure 2) où une exécution Xai s'est produite entre l'exécution Xp; et l'exécution Xpi_1, la durée Y; est estimée à partir des durées Ti, Ti_1, AB; et AAi. Pour cela, le calculateur 6 procède à une étape 28 de mesure des durées Ti, Ti_1, et AAi. Plus précisément, lors d'une opération 29, la durée Ti est estimée. En effet, comme au moment de l'exécution Xpi l'exécution Xai+1 ne s'est pas encore produite, il n'est pas possible de mesurer cette durée Ti. L'estimation de la durée Ti est par exemple réalisée à partir de données issues des capteurs 9. Ici, la tâche Xa est par exemple exécutée lorsque le moteur atteint un régime moteur prédéterminé. Des méthodes connues en soi permettent à partir de mesures du régime moteur, par l'intermédiaire de capteurs, d'estimer l'évolution de ce régime moteur. Dans ce cas, il est possible de prévoir quand aura lieu l'exécution Xai+1 à partir de mesures du régime moteur. On peut ainsi estimer la durée Ti. [0024] Parallèlement, lors d'une opération 30 la durée Ti_1 est mesurée. Par exemple, un compteur est incrémenté à chaque coup d'horloge de cadencement du calculateur 6 pendant l'intervalle de temps séparant les exécutions Xai_k et Xai_k+1. Typiquement, ce compteur est implémenté dans la tâche Xa. A partir du nombre d'incrémentation de ce compteur et de la période de l'horloge de cadencement, la durée Ti_1 peut être mesurée. Dans l'exemple, une fois la durée Ti_1 mesurée le compteur est réinitialisé. [0025] Parallèlement lors d'une opération 32, la durée AAi est mesurée. Par exemple, un autre compteur est implémenté dans la tâche Xa. Cet autre compteur est incrémenté à chaque coup d'horloge de cadencement du calculateur 6. La durée AAi peut être mesurée à partir du nombre d'incrémentation de cet autre compteur s'étant produites entre les exécutions Xai_k et Xai et à partir de la période de l'horloge de cadencement. Ici, une fois la durée AAi mesurée cet autre compteur est réinitialisé. [0026] Lors d'une étape 34, le calculateur 6 réalise une estimation d'une plage de durées à laquelle doit appartenir la durée Yi_1 afin de minimiser l'erreur entre la durée Yi_1 estimée lors de l'exécution Xpi_1 et la véritable durée Yi_1. [0027] Lors d'une opération 36, le calculateur 6 réalise une estimation grossière d'une plage de durées [Yi_1_min_grossière ; Y- 1_ max_ grossière] à laquelle doit appartenir la véritable durée Yi_1 à partir des durées ABi, AAi, Ti_1 et Ti. Par exemple, les bornes de la plage de durées [Yi-1_ min_ grossière ; Yi-1_max_grossière] sont déterminées à l'aide des relations suivantes: Yi 1_min_ grossière = max (0 ; - ABi), et Yi-1_ max_ grossière = min - ABi + Ti ; Ti 1)- [0028] Ces relations découlent des relations suivantes : Y;_1 = AAi + Yi - ABi 0 REVENDICATIONS1. Procédé d'estimation par un calculateur électronique temps réel exécutant une tâche périodique Xp et une tâche asynchrone Xa, d'une durée Yi séparant une exécution Xpi de la tâche Xp d'une exécution Xai immédiatement précédente de la tâche Xa, les indices i et j étant des entiers représentant les numéros d'ordres des exécutions, respectivement, des tâches Xp et Xa, caractérisé en ce que, le procédé comprend : - la déduction (22), par le calculateur électronique, d'une durée AB; mémorisée séparant les exécutions Xpi_1 et Xpi, - l'estimation (28), par le calculateur électronique, d'une durée Ti séparant deux exécutions Xai et Xaj+1 encadrant temporellement l'exécution Xpi, à partir de mesures issues de capteur, - la mesure (30) par le calculateur électronique d'une durée Ti_1 séparant deux exécutions XaJ_k et Xai_k+1 encadrant temporellement une exécution Xpi_1, k étant un entier positif, - la mesure (32) d'une durée AAi séparant les exécutions Xai_k et Xai, et - l'estimation (44) par le calculateur électronique de la durée Yi à partir de la durée Ti estimée, de la durée Ti_1 mesurée, de la durée ABi déduite, et de la durée AAi mesurée. 2. Procédé selon la revendication 1, dans lequel le procédé comprend : l'estimation (34) d'une plage de durées à laquelle doit appartenir une durée Yi_1, établie à l'aide d'un procédé d'estimation conforme à la revendication 1, séparant l'exécution Xai_k de l'exécution Xpi_1 à partir des durées ABi , AAi, Ti_1 et/ou Ti , et - la réalisation de l'estimation (44) de la durée Yi à partir de cette plage de durées et des durées ABi etAAi. . 3. Procédé selon la revendication 2, dans lequel le procédé comprend : l'estimation (36) grossière d'une plage de durées [ Y i-1_min_grossière ; Yi-1_max_grossière], à laquelle la durée Yi_1 doit appartenir, à partir des durées ABi, AAi, Ti_1 et/ou Ti, l'estimation (38) plus fine d'une plage de durées [Yi-1 min fine ; Yi-1 max fine], à laquelle la durée Yi_ldoit appartenir, moins large que la plage de durées [Yi_ 1_min_grossière ; Yi-1_max_grossière] estimée, l'estimation (42) d'une plage de durées [Yi min; Y; max] à laquelle doit appartenir la durée Yi à partir de la plage de durées [Yi-1_min_fine ; Yi-1_max_fine] estimée et des durées ABi et AAi, et l'estimation (44) de la durée Yi à partir de la plage de durées [Yi min; Yi max] déterminée. 4. Procédé selon la revendication 3, dans lequel les bornes de la plage de durées [Yi-1_min_grossière ; Yi-1_max_grossièrel sont estimées (36) à l'aide des relations suivantes: Yi-1_min_ grossière = max (0 ; AA; - ABi), et Yi-1_max_grossière = min (Ai - ABi + Ti; Ti-m). 5. Procédé selon l'une quelconque des revendications 3 à 4, dans lequel la plage de durées [ Y i-1_min_fine ; Yi-1_max_fine] est estimée (38) en réalisant l'intersection de la plage de durées [Y;-1_min_grossière ; Yi-1_max_grossière] et d'une plage de durées [Yi-1_min; Yi-1_max], la plage de durées [Yi-1_min; Yi-1_max] étant une plage de durées estimée lors d'une itération précédente du même procédé pour estimer 6. Procédé selon l'une quelconque des revendication 3 à 5, dans lequel les bornes de la plage de durée [Y;_min; Yi_max] sont estimées (42) à l'aide des relations suivantes : Yi_min = Yi-1_min fine - (moi - ABi), et Yimax = Yi-1max_fine - (LAi - ABi)- 7. Procédé selon l'une quelconque des revendication 3 à 6, dans lequel la durée Yi est estimée (44) à l'aide de la relation suivante : Yi = (Yi max + Y; min)/2 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comporte des opérations (29, 30, 32) de mesure ou d'estimation des durées DA;, Ti_1 et/ou Ti par l'intermédiaire d'un ou plusieurs compteurs. 9. Support (8) d'enregistrement d'informations, caractérisé en ce qu'il contient des instructions pour l'exécution d'un procédé conforme à l'une quelconque des revendications précédentes, lorsque ces instructions sont exécutées par un calculateur (6) électronique. 10. Véhicule (2), caractérisé en ce qu'il comporte un calculateur électronique temps réel exécutant une tâche périodique Xp et une tâche asynchrone Xa, d'une durée Y; séparant une exécution Xp; de la tâche Xp d'une exécution Xa1 immédiatement précédente de la tâche Xa, les indices i et j étant des entiers représentant le numéro d'ordre des exécutions, respectivement, des tâches Xp et Xa, caractérisé en ce que le calculateur est apte : - déduire une durée B mémorisée séparant les exécutions Xpi_1 et Xp;, estimer une durée Ti séparant deux exécutions Xaj et Xaj+1 encadrant temporellement l'exécution Xp;, à partir de mesures issues de capteur,mesurer une durée T;_1 séparant deux exécutions Xa;_k et Xa;_k+1 encadrant temporellement une exécution Xp;_1, k étant un entier positif, mesurer une durée AA1 séparant les exécutions XaJ_k et Xai, et estimer la durée Y; à partir de la durée Ti estimée, de la durée T;_1 5 mesurée, de la durée AB; déduite, et de la durée AA; mesurée.