(57)【要約】【課題】  シミュレーションの走行時間の間に、リアルタイムの保持を保証し、同時に全ての可能性を利用し尽くして、できるだけ正確なシミュレーション結果を計算時に得られるようにされた方法を提供することである。【解決手段】  データ処理装置上に、シミュレーションされるべき少なくとも１つの同一の信号を計算するための異なる計算時間を有する少なくとも２つの異なるタスクのセットを、実行可能に記憶し、少なくとも１つのミニマルタスクは、周期持続時間よりも短い計算時間を有しており、タスクマネージャーは、前記セットから少なくとも１つのタスクを、記憶されたストラテジーに従って開始し、当該ストラテジーによって、所与の周期持続時間内でリアルタイムを保持しつつ、前記セットからの少なくとも１つのタスクの計算結果を得る。【選択図】図１
2009289266.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイム作動システムを備えたデータ処理装置上に、ソフトウェア内に実装されたタスクマネージャーによって、シミュレーションされるべき少なくとも１つの信号をリアルタイムで計算するための少なくとも１つのタスクを実行する方法であって、
前記タスクマネージャーは周期的にそれぞれ、予め設定された／予め設定可能な周期持続時間の後にタスクを開始し、当該タスクは、少なくとも１つの所定の入力信号から、入力信号に依存する少なくとも１つの出力信号を計算する形式の方法において、
データ処理装置上に、シミュレーションされるべき少なくとも１つの同一の信号を計算するための異なる計算時間を有する少なくとも２つの異なるタスクのセットを、実行可能に記憶し、少なくとも１つのミニマルタスクは、周期持続時間よりも短い計算時間を有しており、
タスクマネージャーは、前記セットから少なくとも１つのタスクを、記憶されたストラテジーに従って開始し、当該ストラテジーによって、所与の周期持続時間内でリアルタイムを保持しつつ、前記セットからの少なくとも１つのタスクの計算結果を得る、
ことを特徴とする、少なくとも１つのタスクを実行する方法。
【請求項２】
前記記憶されているストラテジーに従って、はじめにミニマルタスクを開始し、当該ミニマルタスクが終了した後に、前記ミニマルタスクよりも長い計算時間を有している、前記セットからの別のタスクを開始し、
遅くとも前記周期持続時間が終了した後に、継続中のタスクを中断し、設定されている／設定可能な判断基準を満たしているタスクの計算結果をシミュレーション結果として得る、請求項１記載の方法。
【請求項３】
前記判断基準は計算持続時間、殊に長い計算持続時間および／または計算精度、殊に高い計算精度および／またはシミュレーションステップ幅、殊に小さいシミュレーションステップ幅および／またはこれらのソルバーおよび／またはこれらの組み合わせである、請求項２記載の方法。
【請求項４】
前記タスクのセットから、ミニマルタスクによって開始し、さらなるタスクを計算時間が長くなる順番で開始する、請求項２または３記載の方法。
【請求項５】
記憶されているストラテジーによって、前記セットから、ミニマルタスクよりも長い計算時間を有するタスクを開始し、当該タスクの開始とともにタイマーをスタートさせ、
ここで前記タスクマネージャーは、周期持続時間とタイマーの時間値との差に依存して、開始されたタスクを中断し、ミニマルタスクを開始する、請求項１記載の方法。
【請求項６】
周期持続時間と時間値との差が、ミニマルタスクの計算持続時間よりも安全時間だけ大きい場合に、前記中断をタイマーの時間値で行う、請求項５記載の方法。
【請求項７】
前記タイマーの時間値に依存して、殊に、周期持続時間と時間値との差がミニマルタスクの計算持続時間よりも安全時間だけ大きい場合に、割込をトリガし、
当該割込によって開始されたプロシージャにおいて、前記タスクが既に終了しているか否かを検査し、前記タスクがまだ中断されていない場合には当該タスクを中断する、請求項５または６記載の方法。
【請求項８】
予期される最長持続時間を有する、前記セットからのタスクを開始する、請求項５から７までのいずれか１項記載の方法。
【請求項９】
先行の計算周期においてタスクが中断された場合には、予期される計算時間がタイマー時間よりも短い、前記セットからのタスクを開始させる、請求項５から８までのいずれか１項記載の方法。
【請求項１０】
前記割込前にタスクが終了した場合には、タスクマネージャーは周期持続時間が経過するまで待機する、請求項５から９までのいずれか１項記載の方法。
【請求項１１】
割込前にタスクが終了した場合には、タスクマネージャーは、前記セットから、前記終了したタスクの計算時間よりも長い予測計算時間を有している別のタスクを開始する、請求項５から９までのいずれか１項記載の方法。
【請求項１２】
前記データ処理装置は並行して作動する複数のプロセッサを有しており、前記タスクマネージャーは前記ミニマルタスクおよび少なくとも１つのタスクを前記セットから並行して、それぞれ１つのプロセッサ上で開始し、
前記周期持続時間が経過した後には、前記並行タスクのうちの、完全に実施されたタスクのうち、設定された／設定可能な判断基準を満たしているタスクの計算結果をシミュレーション結果として得る、請求項１から１１までのいずれか１項記載の方法。
【請求項１３】
前記判断基準は計算持続時間、殊に長い計算持続時間および／または計算精度、殊に高い計算精度および／またはシミュレーションステップ幅、殊に小さいシミュレーションステップ幅および／またはこれらのソルバーおよび／またはこれらの組み合わせである、請求項１２記載の方法。
【請求項１４】
当該方法をデータ処理装置上で実施し、当該データ処理装置によって実際の電子制御機器、殊に自動車制御機器に対してテスト環境がシミュレートされ、
ここで前記実際の制御機器に、前記データ処理装置のシミュレートされた制御機器環境から信号および／またはデータを供給し、前記制御機器は実際の信号および／または計算されたデータを前記データ処理装置に送出する、請求項１から１３までのいずれか１項記載の方法。
【請求項１５】
当該方法を実際の電子制御機器、殊に自動車制御機器上で、当該電子制御機器の制御特性をシミュレーションするために実施し、
前記制御機器に実際の制御機器環境、殊にセンサおよび測定値検出器からの信号および／またはデータを供給し、前記制御機器はシミュレートされた信号、および／またはシミュレートして計算されたデータを実際の制御機器環境のアクチュエータに出力する、請求項１から１４までのいずれか１項記載の方法。
【請求項１６】
当該方法をデータ処理装置上で実施し、当該データ処理装置によって制御機器、殊に自動車制御機器の制御特性がシミュレートされ、
前記データ処理装置に実際の制御機器環境、殊にセンサおよび測定値検出器から信号および／または信号を供給し、またはデータ処理装置から制御機器環境をシミュレートするために信号および／またはデータを供給し、前記制御特性をシミュレートするデータ処理装置から、シミュレートされた信号および／またはデータを実際の、またはシミュレートされた制御機器環境へ供給する、
ことを特徴とする請求項１から１５までのいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムで、シミュレーションされるべき少なくとも１つの信号を計算するための少なくとも１つのタスクを、タスクマネージャーによって実施するための方法に関する。ここでこのタスクマネージャーは、リアルタイム作動システムを備えたデータ処理装置上でソフトウェア内に実装されている。タスクマネージャーは、周期的に、所定の周期持続時間が終わる度にタスクを開始する。このタスクは、所定の入力信号から、当該入力信号に依存する出力信号を計算する。
【背景技術】
【０００２】
従来技術においては、実際の世界を技術定に、データ処理装置によってシミュレーションすることが知られている。ここで殊に、技術的なコンポーネント、例えば制御機器、殊に自動車制御機器をテストするために有利には、リアルタイムシミュレーションが実施される。リアルタイムシミュレーションとはすなわち、外部の観察者が、シミュレーションによって得られる結果を、実際にリアルタイムで起こっているかのように認識するシミュレーションである。
【０００３】
リアルタイムシミュレーションでは、過度に複雑なモデルによって、計算時間ないしは実施される計算の質に関する問題が生じる。これに相応して、過度に複雑なモデルの使用時には次のような問題が生じる恐れがある。すなわち、正確な計算結果を得つつ、シミュレーションの間にリアルタイムを維持することが保証されないという問題が生じる恐れがある。
【０００４】
例えばこのような問題は、エンジンシミュレーションにおける公知の平均値モデルとして、別のモデルを使用することによって生じる。通常は、今日では、自動車業界においてシミュレーションのために、物理的なシステムの数値的な近似のために、固定されたステップ幅を伴うＥｕｌｅｒ方法が使用される。このような場合には、エンジニアにとっては、一方ではシステム全体の数値的な安定のために保証され、他方ではシステムのリアルタイム性を危険にさらすことにないステップ幅を見つけ出すのは困難である。従ってこのようにして、過度に長い計算時間を必要とする過度に複雑なモデルがプログラミングされ、これによってシミュレーション結果がリアルタイムでは供給されない恐れが生じてしまう。この場合にここに記載された発明では、実施されるべき計算タスクの複雑性の定義では、複雑性の上昇とともに、タスクの計算時間が長くなる。タスクはここでは計算規則であり、これによって、入力信号から、入力信号に依存する出力信号が計算される。従って全体として、高い複雑性が望まれるが、高い複雑性に応じた必然性によって、このために行われるべき計算のリアル時間性に危害が与えられる恐れがある。
【０００５】
従って従来技術では冒頭に記載したように、シミュレーションされるべき信号を計算するためのタスクを実施することが知られている。ここでは既知のように、ソフトウェア内に実装されているタスクマネージャーが使用される。このタスクマネージャーは周期的に、予め定められた／予め定めることが可能な周期持続時間の後にそれぞれ、このようなタスクを開始する。
【０００６】
ここでこれまでのプログラミングは次のように行われてきた。すなわち、リアルタイム性に危害を与えないために、開始されるべきタスクの計算が、確実に所定の周期持続時間内で終わるように行われてきた。これによってリアルタイム時間性は妨害されない。ここでは個々のケースにおいて、計算の終了は、所定の周期持続時間内の使用される計算時間を利用し尽くさない。なぜなら例えば、実施されるタスクは特定の時点で、または所定の与えられた状況において、予測計算されているよりも早く計算されることがあるからである。従って、このような状況では、実際に行われたものよりもより正確なタスクが計算されることがあることが判明している。従って、シミュレーションするデータ処理装置の計算キャパシタンスは明らかには使用し尽くされず、リアルタイム性の確実な側に常に留まる。
【０００７】
ここで従来技術ではさらに、リアルタイム制を確保しながらできるだけ高い精度を得るために、シミュレーションを実施する前に、所望の事情が容易にモジュール化されるモデル、すなわち例えば短い計算時間を有するタスクで計算されるか、または複雑に公式化されたモデル、すなわち長い計算時間を有するタスクで計算されるかを定めることが知られている。
【０００８】
このようなソリューションの欠点は、どのような複雑性で計算が実施されるべきであるのかを、常にシミュレーション前に既に定められていなければいけないということである。しかしここで、長い計算時間を有する複雑なタスクを選択する判断は問題を有している。なぜなら常には、事前領域において、すなわちシミュレーションの実際の実行の前に、複雑に公式化されたタスクを実際に、リアルタイムを保持しながら、具体的に与えられた条件で計算できるか否かを迷いなく判断することができないからである。
【０００９】
従来技術では、Ｆｒａｕｎｈｏｆｅｒ−ＩｎｓｔｉｔｕｔｅのＭｏｓｉｌａｂと称されるプログラムが既知である。このプログラムもこのような問題を解決することを試みており、このプログラムではタスクの各計算前に、複雑または簡単なタスクで状況が計算されるべきか否かが判断される。従って、Ｍｏｓｉｌａｂソフトウェアに関連して、システムの考慮される状態（例えば先行タスクの計算によってまたはシミュレーション前の判断によって生じる状態）と、システムのそれほど考慮されない状態とが区別され、これに依存して、シミュレーション前の簡単なタスクまたは複雑なタスクの計算が選択される。例えば、ソーラー装置の作動様式のシミュレーション時には、夜間の特性のシミュレーションの前に、計算コストを削減することが決定される。さらに、簡単なタスクが計算されるべきか、または複雑なタスクが計算されるべきかがタスク前に判断される。しかし、複雑なタスクがリアルタイムで計算可能であるか否かを常に事前に見積もることはできない。従って、リアルタイムシミュレーションを実施する間に、計算されるべきタスクおよびその複雑性ないしはそれにかかる計算時間に影響を与えるＭｏｓｉｌａｂソフトウェアも適切ではない。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の課題は、シミュレーションの走行時間の間に、リアルタイムの保持を保証し、同時に全ての可能性を利用し尽くして、できるだけ正確なシミュレーション結果を計算時に得られるようにされた、冒頭に記載した様式の方法を提供することである。ここで、冒頭に記載したタスクの実施は、シミュレーションされるべき信号の完全なモデルに対しても、部分モデルに対しても、信号をシミュレーションするために設けられる。所定の周期持続時間内に確実に計算が終わるタスクのみが常に計算される従来技術の欠点は解消される。さらに、柔軟に、かつユーザ側でコストをかけず、技術的なフレーム条件に反応が示されるべきである。従って、例えば、高速プロセッサ上では、場合によっては、緩慢なプロセッサ上でよりも、より複雑なタスクがリアルタイムで計算可能であることが考慮されるべきである。
【課題を解決するための手段】
【００１１】
上述の課題は本発明では次のことによって解決される。すなわち、上位概念に記載された方法において、データ処理装置上に、シミュレーションされるべき同一の信号を計算するための異なった計算時間を有する少なくとも２つの異なるタスクのセットが、実行可能に記憶されており、少なくとも１つのミニマルタスクが周期持続時間よりも短い計算時間を有しており、ここでタスクマネージャーはセットからの少なくとも１つのタスクを、記憶されている、例えば設定されている、または学習されたストラテジーに従って開始する。これによって、所定の周期持続時間内でリアルタイムを保持しつつ、前記セットからの少なくとも１つのタスクの計算結果を得ることができる。タスクマネージャーが周期的に１つのタスクを開始するという記載はここでは排除されず、むしろ、本発明ではこれが含まれ、以降に記載されたストラテジーに従って、タスクがタスクマネージャーによって不規則に開始されてもよい。
【図面の簡単な説明】
【００１２】
【図１】シミュレーション計算機が具体的な制御機器に対する環境をシミュレートする形態
【図２】制御機器自体内で、その制御特性のシミュレーションが行われる形態
【図３】ミニマルタスクで始まるタスクの連続的な開始
【図４】ミニマルタスクと比べてより長い計算時間のタスクで始まる、タスクの連続的な開始
【図５】種々異なる計算時間のタスクの、並行して行われる計算
【発明を実施するための形態】
【００１３】
シミュレーションされるべき信号とはここでは可能性のある物理量である。これは、タスクの計算結果によってあらわされ、例えば電気的、光学的または音響的な信号であり、電気的な信号の場合には殊にアナログまたはデジタル信号、例えば電圧または電流である。このような信号は例えば、上述したタスクの計算から結果として得られる数値によって表される。ここで殊に、シミュレーションの計算結果から実際の物理的な信号が、例えばデジタルアナログ変換器、動作システム等の駆動制御から形成されてもよい。従って、本発明のコアとなる考えは、シミュレーションされるべき信号が、唯一の複雑さ、ひいてはこれに結びつく、タスクにおける計算時間によってのみモデリングされるのではなく、このような信号を、異なる複雑さ、ひいてはこれに伴う異なる計算時間を有する種々のモデルにおいてモデリングするということである。
【００１４】
従って、本発明では次のことが可能である。すなわち、記憶されているストラテジーに従って、異なる複雑性ないしは計算時間のセット内に存在するタスクから、１つまたは複数のタスクを計算のために選択し、常に、所定の周期持続時間内で、タスクの少なくとも１つから計算結果を得ることが可能である。記憶されているストラテジーに基づいて、多くの異なる複雑さないし計算時間内に存在しているタスクから、１つまたは複数を、計算のために選択し、これによって常に、所定の周期持続時間内で、タスクの少なくとも１つから計算結果を得ることができる。このような場合に、リアルタイムシミュレーションを各ケースにおいて保証するために、本発明ではタスクの１つは次のような低い複雑さないし計算時間を有している。すなわち、このタスクが確実に常に所定の周期持続時間内で実行されるような複雑さないし計算時間である。データ処理装置上で全体的に使用可能なタスクのセットからのタスクであるこのようなタスクを以降でミニマルタスクと称し、これによってこのタスクを、残りの可能なタスクと区別する。
【００１５】
データ処理装置上、殊に、ソフトウェア内に実装された使用可能なタスクマネージャー内に記憶されたストラテジーは同じようにソフトウェア内で実行可能であり、使用されるタスクマネージャーが周期的にそれぞれ、上述の、ひいては結びつけられた周期持続時間が経過した後に、使用可能なセットから１つまたは複数のタスクをどのように開始するのかを定める。ここでストラテジーは本発明と相応に次のように選択され、上述したデータ処理装置上のソフトウェア内に実装される。すなわち、冒頭に記載したように、常に計算結果がリアルタイムで、使用可能な周期持続時間内で得られるように実装される。このために本発明では複数の択一的なストラテジーが使用される。
【００１６】
可能な選択肢においては、記憶されているストラテジーに相応してまずはタスクマネージャーによってミニマルタスクが開始され、ミニマルタスクの終了後に少なくとも１つの別のタスクがセットから開始され、このタスクはミニマルタスクの計算時間よりも長い計算時間を有する。この場合には、周期持続時間が経過した後に、継続中のタスクが中断され、計算結果が、予め設定された／設定可能な判断基準を満たしているタスクから得られる。
【００１７】
例えば、この判断基準は（殊に長い）計算持続時間および／または（殊に高い）計算精度および／または（殊に僅かな）シミュレーションステップ幅および／またはこれらのソルバー（Ｓｏｌｖｅｒ）または組み合わせである。ソルバーは、このような特別な場合にＤＡＥ（differential algebraic equation）ないしはＤＧＬ（Differentialgleichung）の数値的なソリューションを計算すアルゴリズムである。既知のソルバーは例えば、Euler、Ｈｅｕｎ、Ｒｕｎｇａ−Ｋｕｔｔａである。従って、可能な実施形態では例えば計算結果は、長い計算持続時間を有するタスクから得られる。
【００１８】
はじめに、確実に周期持続時間よりも短い計算時間を有するミニマルタスクを開始させることによって次のことが保証される。すなわち、シミュレーション時に、少なくとも１つの計算結果が得られること、すなわちミニマルタスクの計算結果が得られることが保証される。ミニマルタスクの計算時間は周期持続時間よりも常に短いでの、ミニマルタスクの終了後には常に時間が残る。この残時間内で、使用可能なタスクのセットから少なくとも１つの別のタスクを開始させることができる。ここでこのタスクは次のようなタスクである。すなわち、より長い計算時間を有しており、従ってミニマルタスクと比べてより正確な計算結果を供給するタスクである。従ってこのようなストラテジーでは、まずは計算結果が保証され、その次に、周期持続時間が終了するまでの残りの時間内で、より正確な計算結果が得られるように試みがなされる。
【００１９】
この場合には、ミニマルタスクの計算の終了後に、個々の別のタスクのみが開始されてもよい。このタスクの実施時間中に周期持続時間が終了してしまう場合には、このタスクは中断され、ミニマルタスクの結果が使用される。この別のタスクの終了後にさらに別のタスクを開始することもできる。例えばここでは、タスクセットから、ミニマルタスクから始めて、計算時間が長くなる順番でそれぞれ別のタスクを開始することができる。従って、例えば緩衝記憶される、得られた計算結果が確保された後に、周期持続時間の経過が終了するまで継続的に、だんだん複雑になる、すなわち計算時間が長くなっていくタスクを続けて後から開始さて、より正確な計算結果を得ることが試みられる。このように、ミニマルタスクから始めて、順次連続してタスクを計算する場合、それぞれ常に次のように設定可能である。すなわち、周期持続時間の終了時に、依然として実行されているタスクが中断され、これによってその結果、例えば途中の結果が拒絶されるように設定可能である。
【００２０】
別の選択肢では次のように設定することも可能である。すなわち、記憶されているストラテジーに従って、セットから、ミニマルタスクよりも長い計算時間を有する１つのタスクが開始され、このタスクの開始とともにタイマーが開始されるように設定することも可能である。ここでタスクマネージャーは周期持続時間とタイマーの時間値との差に依存して、開始されたタスクを中断し、ミニマルタスクを開始させる。
【００２１】
従ってこのストラテジーでは、最短の計算時間を有するミニマルタスクが供給するであろう計算結果よりも正確な計算結果を得ることが試みられる。これに従って、その計算時間がミニマルタスクの計算時間とは異なるタスクが開始される。このために、ミニマルタスクの計算時間は有利には既知であり、記憶されている。残りのタスクの計算時間、少なくとも残りのタスクの予期される計算時間も既知であり、かつ記憶可能である。従って、このような予期される計算時間も、ストラテジーの枠内での選択のために使用可能である。ここでは予期される計算時間は実際に時間として知られている必要はなく、個々の、セット内に与えられている個々のタスクが、その計算時間に関して、例えば優先権に等しいシーケンスを有しているだけでも充分である。
【００２２】
ここでタイマーが同時に開始されることによって次のことが保証される。すなわち、タスクの実行時間の間の各時間で、既に経過した時間が計算に使用可能である、ということが保証される。従ってミニマルタスクの既知の計算時間に基づいて次のことが考慮される。すなわち開始されたタスクが適時に中断され、これによってこのタスクの中断後に、周期持続時間が終わるまでの残りの時間内で、常に確実にミニマルタスクが、計算終了まで実施可能であることが考慮される。従って、このようなストラテジーでは、より正確な計算結果を得ることが試みられる。しかし各ケースにおいて適時、ミニマルタスクの実施が開始され、これによって、以前に開始されたタスクの計算が適時に終了可能でない場合でも、このようなミニマルタスクの計算結果が得られる。
【００２３】
この場合には次のような設定がなされる。すなわち、全体的に計算に使用可能である周期持続時間とタイマーの時間値との間の差が、ミニマルタスクの計算持続時間よりも安全時間だけ大きい場合に、タイマーの時間値で中断が行われるように設定がなされる。ここでは殊に、安全時間によって設けられた時間緩衝が設定される。これによって、ミニマルタスクの計算持続時間と、このタスクに対する記憶されている理論的な計算時間における差が補償される。
【００２４】
実施中のタスクの中断および／またはミニマルタスクの開始を実現するために、割込を使用することができる。割込はデータ処理装置において公知であり、例えば次のように機能する。すなわち、割込信号線路を特定の、割込のために設けられた信号経路上に設け、これによって、割込がトリガされるように機能する。
【００２５】
データ処理装置がこのような割込信号を得ると、メモリ内に記憶されているプログラムが実施されてから、データ処理装置のメモリ内へのアドレスの分岐が行われる。従って、ここでは次のことが可能である。すなわち、タイマーの時間値に依存して、すなわち殊に、周期持続時間と時間値との差が、ミニマルタスクの計算時間よりも安全時間だけ大きい場合に、このような割り込みがトリガされることが可能である。これは例えば、時間がカウントアップされるタイマーユニットによって相応する割込信号が生成されることによって、例えば相応する割込線路が冒頭に記載された、このために必要な信号レベル、殊に基準レベルにあることによって行われる。
【００２６】
このような場合には、タスクマネージャーのプロシージャである、割込によって開始されたプロシージャによって、最初に開始されたタスクが既に終了されたか否かが検査される。そうでない場合には、このタスクは中断され、ミニマルタスクが開始される。しかしこのタスクが既に終了している場合には、例えば、タスクマネージャーが、周期持続時間が経過するまで待機する、すなわちさらなるタスクを開始しないように設定することができる。択一的に同じように、タスク終了時に、タスクマネージャーの割込前に、タスクセットから、終了されたタスクの計算時間よりも長い、予想計算時間を伴うさらなるタスクを開始させるように設定することができる。従ってこの場合には、周期持続時間が終了するまでにまだ使用可能な計算時間がある場合に、より正確な結果を得る可能性がある。
【００２７】
本発明の１つの可能な形態では、ここで次のように設定が可能である。すなわち、このように処理が順次連続している場合に、最長の予想計算持続時間を有するタスク、ないしは最高の計算精度を有するタスクとしてシステムに知られているタスクがセットから開始されるように設定が可能である。このようにしてこのシステムは常にはじめに、できる限り正確な計算結果を得るように試みる。しかし、このような計算が適時、ミニマルタスクの択一的な実施に対して充分な残り時間を供給する時間内で実施可能ではないであろう場合には、計算を中断し、ミニマルタスクを開始させる。
【００２８】
殊に、方法のシーケンスが周期的である場合には、セットから次のようなタスクが開始される。すなわち、先行する計算周期におけるタスクの中断時に、その予想計算時間が、タイマー時間よりも短いタスクが開始される。従って、ここでは、過去の経験値から、タスクマネージャーの学習様式を実装することが可能である。例えば、先行する処理周期時に、選択されたタスクが適時に終了されずに、安全のために、ミニマルタスクが開始された場合には、これに続く周期において、複雑性の低いないしは計算時間の短いタスクを選択するように設定が可能である。この先行周期では、その前に開始されたタスクが中断されたタイマー時間が求められているので、ここでは、その予想計算時間がこのタイマー時間よりも短いタスクが選択される。これによって、このタスクが割込前に終了までに実施される可能性が得られる。従って、タスクマネージャーは、先行の結果から学習し、セット内の使用可能なタスクの選択を最適化することを試みる。従ってここで、この実施形態では、個々のタスクの予測される計算時間に関するできるだけ正確な情報を、データ処理装置内に記憶して有することができる。
【００２９】
タスクの開始のためのストラテジーのみを形成することも、上述したシリアルなストラテジーと組み合わせることもできる別の実施形態では、次のように設定がされる。すなわち、データ処理装置が並行に処理を行う複数のプロセッサを有し、タスクマネージャーがミニマルタスクと、少なくとも１つの別のタスクをセットから並行して各プロセッサ上で開始させるように設定がされる。ここでは周期持続時間が経過した後、並行タスクのうちの次のようなタスクの計算結果がシミュレーション結果として得られる。すなわち、完全に実施されたタスクのうちの、最長の計算持続時間、ひいては結果の最高の精度を有するタスクの計算結果がシミュレーション結果として得られる。従って、ここでも並行して行われる処理によって各ケースにおいて次のことが保証される。すなわち、ミニマルタスクが計算結果を供給することが保証される。ここでは、計算が並行して行われることによって、使用可能な周期持続時間内で同じように、ミニマルタスクよりも高い精度を有するタスクも、自身の計算を終了させるチャンスが得られる。そうである場合には、このように記憶されたストラテジーに従って、より長い計算持続時間を有するタスク、有利には最長計算持続時間を有するタスクの結果が、シミュレーション結果として得られる。上述のようにここでは次のように設定が可能である。すなわち、並行して作動する各プロセッサ上で各タスクの開始後に、プロセッサ上での計算のこの特性が、冒頭にシーケンシャルなストラテジーのケースで説明されたように行われるように設定が可能である。従って次のことが可能である。すなわち、並行に処理するプロセッサから場合によっては複数の計算結果が供給されることが可能である。ここでは全ての計算するセットにわたって、本発明に従って最も正確な計算結果、すなわち、最長の計算持続時間を有する計算結果が得られる。
【００３０】
冒頭に記載したように、ここでは、１つのデータ処理装置に対して、複数のタスクから成るセットが準備される。これらのタスクは、シミュレートされるべき全ての信号に対して、シミュレーション結果を計算することができる。しかしこのためには種々異なる計算時間が必要である。ここで少なくとも１つのタスクは、ミニマルタスクとして実行される。このミニマルタスクは、使用可能な周期持続時間よりも短い、保証された計算時間を有している。個々のタスクの計算時間における違いは例えば次のことによって得られる。すなわち、タスクが計算を実施するステップ幅が異なって選択されることによって得られる。従って、長い計算持続時間を伴うタスクは、より少ない計算持続時間を有するタスクよりも小さいステップ幅を有している。計算持続時間は同じようにソルバーによって異なる。このソルバーによってタスクが計算される。従って、複雑なタスク、すなわち、より長い計算持続時間を有するタスクは同じように、複雑性の低いタスクよりもより複雑なソルバーを有する。
【００３１】
計算持続時間におけるさらなる相違は次のことによっても得られる。すなわちタスク内で計算される式が種々異なる精度を有しているが、有利には常に同じ状態数、すなわち殊に式に対する入力パラメータを有していることによっても得られる。従って、より長い計算時間を有するタスクに対して、より正確な式を使用することができる。
【００３２】
計算時間におけるさらなる差は次のことによっても得られる。すなわち、計算されるべき機能の数または計算に使用されるパラメータに対する数が異なっていることによっても得られる。ここで限定されずに理解されるべき例では、ブレーキアンチブロックシステムの機能がシミュレーションされ、例えば、短い計算持続時間を有するタスクにおいては、ＡＢＳ機能のみ、例えばブレーキ圧およびホイール回転が検出される。これとは異なり、長い計算持続時間を有するタスクにおいては、上述の、例えばブレーキアシスタント機能に対して付加的な機能ないしパラメータが考慮可能である。これはブレーキペダルが踏まれる速度および／またはガスペダルがトリガされる速度等である。
【００３３】
全ての可能な実施形態と組み合わせ可能な発展形態では、タスクが開始される周期持続時間を変えるように設定がされてもよい。周期持続時間のプログラミング変更は例えば、目下の周期持続時間の経過時間の間に行われる。従って、これが経過した後に、後続の変えられた周期持続時間が続く。
【００３４】
一般的に次のようにも設定可能である。すなわち、上述した本発明の方法が、シミュレーションされるべき唯一の信号に対してのみ使用されるのではなく、場合によっては並行して計算される種々の異なる信号に対しても使用されるように設定可能である。
【００３５】
ここに挙げた本発明の方法は技術的に例えば種々の様式で実現可能である。例えば次のように設定することができる。すなわち、この方法がデータ処理装置上で実施され、このデータ処理装置によってリアルな電子制御機器、例えば自動車制御機器に対してテスト環境がシミュレートされる。ここでこのリアルな制御機器に信号および／またはデータが、データ処理装置のシミュレートされた制御機器環境から供給され、制御機器はリアルな信号および／または計算されたデータをデータ処理装置に送信する。このようにしてここでは実際の信号およびシミュレートされた信号ないしデータのデータ交換が、本発明の方法が行われるデータ処理装置と実際のリアルな電子制御機器との間で実施される。信号またはデータのこのようなコミュニケーションはここでは例えば線路で結合され、電気的または光学的な信号線路を介して、または無線接続されて行われる。相応する信号はこの場合に、各データ処理装置ないしは電子制御機器のこのために設けられている部分で、送信のために供給される、ないしは受信される。
【００３６】
別の選択肢では次のように設定されてもよい。すなわち、この方法が実際の電子制御機器、例えば自動車制御機器上で実施されるように設定されてもよい。これによってその制御特性がシミュレートされる。ここでは制御機器に信号および／またはデータが実際の制御機器環境から、例えばセンサおよび測定値検出部から供給される。ここでこの制御機器は信号をシミュレートする、および／または計算されたデータをシミュレートして制御機器環境、例えばアクチュエータに出力する。従ってここでも相応するコミュニケーションが行われる。これは前述の実施形態で述べたのと同じ様式で行われる。
【００３７】
同じように別の手法において次のように設定がされてもよい。すなわち、この方法がデータ処理装置上で実行され、このデータ処理装置によって制御機器の制御特性、殊に自動車制御機器の制御特性がシミュレートされる。ここでデータ処理装置には信号および／またはデータが実際の制御機器環境から、異にセンサおよび測定値検出部から供給される、またはここでもシミュレーションが行われる。すなわち例えばデータ処理装置から制御機器周辺のシミュレーションのために供給され、制御特性をシミュレーションするデータ処理装置によってシミュレートされた信号および／または実際のまたはシミュレートされた制御機器環境でのデータが供給される。従ってここでも同じように信号およびデータのコミュニケーションが２つの方向で行われる。ここではこのコミュニケーションに関与する機器は実際のものであるか、または自身の側でシミュレートされたものである。
【００３８】
まとめると、本発明の方法によって、種々異なる技術的な用途で、できるだけ正確な計算結果を得ながら、シミュレーションのリアルタイム性を提供することができる。
【実施例】
【００３９】
本発明の実施例を以降で図示する。
【００４０】
図１はここで例示的に、可能な、上述した使用可能性のうちの１つを示しており、ここでは、データ処理装置がシミュレーション計算機として作動し、冒頭に記載した本発明の方法を実行する。ここでは、シミュレーション計算機が、具体的な実際の自動車制御機器に対する環境をシミュレートする。シミュレートする計算機と具体的な制御機器との間で、データ交換ないしは信号交換が行われる。例えば、道路、速度、タイヤ状態等に関する情報に関する信号およびデータである。ここでこの例では、制御制御機器の特性は、その制御特性に関して、アンチブロックブレーキシステムと関連してテストされる。本発明による方法を実施するためにシミュレーション計算機上で実行されるソフトウェアおよびその中に実装されたタスクマネージャーは、予め定められたストラテジーに従って、示されたタスクを開始させる。ここで容易なないしは複雑なタスク、すなわち短い計算時間ないしは長い計算時間によるタスクがそれぞれ、アンチブロックシステムないしは走行開始時またはカーブ走行時のスリップをコントロールするためのＥＳＰシステムに対して設けられている。格納されているストラテジーでは、タスクセット内に設けられたタスクが順次にまたは並行して計算され、この計算の結果が制御機器に提供され、これによって、環境、すなわち例えば道路上の自動車の走行が制御機器でシミュレートされ、シミュレートされたこの環境に対するその反応がコミュニケーションにおいてシミュレーション計算機に戻されて得られる。
【００４１】
図２は、用途の択一的な可能性を示している。ここでは制御機器自体が本発明の方法を実行する。すなわちこの制御機器は自身の電子的な構造に関してはまだ具体化されておらず、その制御特性がソフトウェア的にシミュレートされる。ここでも本発明の方法が使用可能であり。ここでは、短いまたは長い計算時間の相応するタスクが、「簡単」ないしは「複雑」と称されて設けられている。自身の制御特性をシミュレーションする制御機器に外部信号またはデータが供給されることはここには図示されていない。これらの信号またはデータは、例えば実際の環境（例えば自動車環境）から生じるものである。ここでは、このようにして得られたデータまたは信号に基づいて、制御機器がタスクの処理によって、本発明の可能なストラテジーに従って、出力量を供給する。この出力量は直接的に、具体的な自動車の油圧システムないしブレーキに影響を与える。ここで図示された図１および図２の用途は単に例として示されたものであり、この方法はここで示された用途に制限されないことを示唆しておく。
【００４２】
図３は、分かりやすい例で、使用可能なセットからのタスクの一連の処理の冒頭に記載された一般的な作動様式を示している。ここでは、ソフトウェア内に実装されている上位のタスクマネージャーが、周期的にシミュレーションが実行される周期持続時間をあらわす各所定の時間間隔の後、常に計算を、ミニマルタスクから開始する。このミニマルタスクはここでは「簡単」として示されている。ここでは第１の周期持続時間Ｉにおいて次のことが示されている。すなわち、ミニマルタスクの処理後に自動的にタスクマネージャーによってより高い複雑性のタスク、すなわちより長い計算持続時間と潜在的に正確な結果を有するタスクが開始されることが示されている。ここではこの周期Ｉにおける実施時に次のことが示されている。すなわち、ここでは複雑性として示されるより高い計算持続時間を有するタスクが、周期持続時間が終了する前には完全には計算されず、このような複雑なタスクは中断され、ここではミニマルタスクの結果が、シミュレーション計算に対する結果として得られることが示されている。
【００４３】
これに続く周期ＩＩでは、同じように計算はミニマルタスクから開始される。この後に、高い複雑性を有するタスクが開始される。ここでは時間の経過において次のことが示されている。すなわち、周期持続時間の終了前に、このより複雑なタスクの計算も完全に終了されることが示されている。従って周期持続時間の終了時には、このストラテジーに相応して、非常に長い計算時間ないしは複雑性を有し、完全に実施されるタスクの結果が得られる。ここでは次のように設定がされ得る。すなわち、点が示しているように、ここに示された複雑なタスクの後に場合によっては、さらに高い複雑性ないしは長い計算時間を有する別の後続のタスクが開始されるように設定がされ得る。このタスクの処理は場合によってはもはや所定の周期持続時間内で終了されない。
【００４４】
図４は連続的な処理ストラテジーを示しており、この処理ストラテジーでは、簡単として示されているミニマルタスクと比べて算時間の長いタスクから開始される。このタスクの開始と同時に、タイマーも開始される。このタイマーは所定の時間の後に割込をトリガする。このトリガは、一般的な部分に示されているように行われ、割込のトリガ後および周期持続時間終了後の残り時間内でさらに、ミニマルタスクを開始するのに充分な時間があることが保証される。従ってここでは周期Ｉにおいて図が示され、ここでは長い計算時間を有する複雑なタスクが中断され、これによって、周期持続時間が終了するまでの残り時間においてさらにミニマルタスクを完全に実施することが可能になる。計算時間が中断され、これによって、残り時間内で、周期持続時間の終了までにさらにミニマルタスクが完全に実施されることが可能になる。ここでは次のことが分かる。すなわち、使用可能な最大の周期持続時間と、タイマーの時間値との差が、ミニマルタスクが必要とする計算時間よりも安全時間ＳＺだけ大きい場合に割込がトリガされることが分かる。これは、ミニマルタスクの処理後に、周期持続時間の終了までに、このような選択された安全時間が残っていることに反映されている。従ってここでは安全時間によって次のことが保証される。すなわち場合によっては、ミニマルタスクの記憶された計算時間内での差によって、特定の周囲条件に基づいて、システムのリアルタイム性が影響されないことが保証される。
【００４５】
周期ＩＩでは、割込のトリガ前にミニマルタスクよりも長い計算時間を有する複雑なタスクが完全に処理がされることが分かる。この後ここではタスクマネージャーによってさらなるタスクが開始されることはなく、この複雑なタスクの結果がシミュレーションの結果として使用される。
【００４６】
図５は、複数のプロセッサ上で種々異なるタスクが並行に処理される実施形態を示しており、ここでは例として、データ処理装置の２つのプロセッサのみが示されており、このプロセッサ上で本発明の方法が実施される。データ処理装置上の、ソフトウェア内に実装されているタスクマネージャーによってここでは２つのプロセッサ１および２上でそれぞれ１つのタスクが開始される。プロセッサ１上で行われるのはミニマルタスクであり、これによって使用可能な周期持続時間内で、タスクの計算が完全に終了することが保証される。ここに図示された時間的な周期Ｉにおいて次のことが読み取れる。すなわちプロセッサ１はミニマルタスクの処理を、使用される周期持続時間内で終了させることができるが、プロセッサＩＩは、長い計算時間を有するより複雑なタスクの処理を終了させることができない、ということが読み取れる。従って、タスクマネージャーによって、使用可能な周期持続時間の終了後に、プロセッサ２上での複雑なタスクの計算が中断され、ミニマルタスクの計算結果のみが評価される。
【００４７】
方法ＩＩに従った、別の周期的な実行時には、再びプロセッサ１上でミニマルタスクが開始される。ミニマルタスクの計算は、使用可能な周期持続時間内でも終了可能である。しかしここでは同じようにプロセッサ２によっても、複雑な、かつ多くの計算が行われるタスクの計算が、周期持続時間の終了前に終了する。従って基になっているストラテジーでは、タスクマネージャーは、プロセッサ２上での多くの計算が行われるタスクの結果をシミュレーション結果として選択する。ここで挙げた例を、ここで図示された２つのプロセッサよりも多くのプロセッサを用いて実施することができ、従って、異なる持続時間を有する２つのタスクよりも多くのタスクを同時に開始させることができる。
【符号の説明】
【００４８】
Ｉ、ＩＩ  設定された時間間隔
【図１】
2009289266.tif 000003
【図２】
2009289266.tif 000004
【図３】
2009289266.tif 000005
【図４】
2009289266.tif 000006
【図５】
2009289266.tif 000007