JP5843230B2 - ハイブリッドシステムの検証方法、検証装置、及び検証コンピュータプログラム、並びに、ハイブリッドシステムのモデル変換方法、変換装置、及び変換コンピュータプログラム - Google Patents
ハイブリッドシステムの検証方法、検証装置、及び検証コンピュータプログラム、並びに、ハイブリッドシステムのモデル変換方法、変換装置、及び変換コンピュータプログラム Download PDFInfo
- Publication number
- JP5843230B2 JP5843230B2 JP2011135201A JP2011135201A JP5843230B2 JP 5843230 B2 JP5843230 B2 JP 5843230B2 JP 2011135201 A JP2011135201 A JP 2011135201A JP 2011135201 A JP2011135201 A JP 2011135201A JP 5843230 B2 JP5843230 B2 JP 5843230B2
- Authority
- JP
- Japan
- Prior art keywords
- verification
- hybrid system
- code
- model
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/80—Technologies aiming to reduce greenhouse gasses emissions common to all road transportation technologies
- Y02T10/82—Elements for improving aerodynamics
Landscapes
- Stored Programmes (AREA)
Description
このため、ハイブリッドシステムは、連続値のみを扱うプラントや離散値のみを扱うソフトウェアとは異なった複雑さを持っている。
連続的な値のみを扱うシステムを対象とする従来の制御理論では、信号の流れを、図式を用いて表現する手法がよく用いられる。これを計算機上に実現し、さらに離散的な状態変化を表現するブロックを追加して拡張したのが、Simulinkなどの枠組みである。
一般に、システムが意図した通りに振る舞うことを検証するために、シミュレーションによるテストがよく用いられる。これは、様々な入力をシステムに繰り返し与え、その動作が意図した通りであることを確認することで、システムの品質を担保しようとする手法である。
前記ハイブリッドシステムの動作を、プログラミング言語によってコーディングしたモデルを作成する作成ステップと、
前記モデルのコードを、形式的検証を行うプログラム検証器によって検証することで、前記ハイブリッドシステムの検証を行う検証ステップと、
を含み、
前記プログラミング言語は、無限小を記述可能なプログラミング言語であり、
前記モデルは、前記ハイブリッドシステムにおける前記連続値の変化が、前記無限小を用いてコーディングされている
ハイブリッドシステムの検証方法である。
前記検証ステップでは、前記モデルのコードの検証条件を示す論理式を生成し、前記論理式を前記定理証明器によって証明することで、前記モデルのコードを検証するのが好ましい。
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記検証ステップでは、前記置換ステップによって置換された後の前記モデルのコードを検証するのが好ましい。
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記検証ステップでは、前記置換ステップによって置換された後の前記論理式を前記定理証明器によって証明するのが好ましい。
前記ハイブリッドシステムの動作を、プログラミング言語によってコーディングしたモデルの入力を受け付ける入力部と、
前記入力部によって受け付けた前記モデルのコードを記憶する記憶部と、
前記記憶部に記憶された前記モデルのコードに対して、形式的検証によって検証を行うプログラム検証器と、
前記プログラム検証器による検証結果を、前記ハイブリッドシステムの検証結果として出力する出力部と、
を備えているハイブリッドシステムの検証装置である。
前記プログラム検証器は、前記記憶部に記憶された前記モデルのコードの検証条件を示す論理式を生成し、前記論理式を前記定理証明器によって証明することで、前記モデルのコードを検証するのが好ましい。
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記プログラム検証器は、前記置換処理部によって置換された後の前記モデルのコードを検証するのが好ましい。
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記プログラム検証器は、前記置換処理部によって置換された後の前記論理式を前記定理証明器によって証明するのが好ましい。
前記ブロック線図が示す前記ハイブリッドシステムの動作を、プログラミング言語によってコーディングしたモデルを生成する生成ステップを含み、
前記プログラミング言語は、無限小を記述可能なプログラミング言語であり、
前記生成ステップでは、前記ハイブリッドシステムにおける前記連続値の変化を、前記無限小を用いてコーディングしたコードが生成される
ハイブリッドシステムのモデル変換方法である。
(15)他の観点からみた本発明は、連続値と離散値とが相互に影響を与えながら動作するハイブリッドシステムのブロック線図を、ハイブリッドシステムの検証用のモデルに変換するための装置であって、
前記ブロック線図が示す前記ハイブリッドシステムの動作を、プログラミング言語によってコーディングしたモデルを生成する生成部を備え、
前記プログラミング言語は、無限小を記述可能なプログラミング言語であり、
前記生成部は、前記ハイブリッドシステムにおける前記連続値の変化を、前記無限小を用いてコーディングしたコードを生成する
ハイブリッドシステムのモデル変換装置である。
(16)他の観点からみた本発明は、コンピュータを、前記(15)のモデル変換装置として機能させるためのコンピュータプログラムである。
図1は、ハイブリッドシステムの設計支援及び検証のためのシステム1を示している。このシステム1は、ハイブリッドシステムの作成を行うことができるコンピュータ支援設計システム2と、コンピュータ支援設計システム2で作成したハイブリッドシステムを、ハイブリッドシステムをモデル化したプログラムに変換する変換器と、プログラミング言語によってコーディングされたハイブリッドシステムを検証する検証装置4と、を備えている。
ここで、プログラム(ソフトウェア)の開発においては、形式的検証(形式的手法によるプログラム検証)による検証が用いられつつある。形式的検証とは、数理科学的に正しさが証明されたアルゴリズム(例えば、定理証明器)で、プログラムを解析し、プログラムにバグが無いことを保証する手法である。なお、形式的検証については、例えば、「林 晋、プログラム検証論 (情報数学講座) 、共立出版、1994」に開示されている。
形式的検証では、様々な入力を与えてテストすることなく、すべての入力について網羅的にテストを行ったのと同じ結果が得られる。
このように優れた特性を持つ形式的検証の手法を、ハイブリッドシステムの検証に利用するという点が、本発明者らの着想の第一点である。
プログラミング言語は、元来、コンピュータによって実行されるプログラムコードを記述するためのものであり、ハイブリッドシステムの動作を記述するものではない。
従来のプログラミング言語であっても、ハイブリッドシステムの動作のうち、レジスタの値やメモリアドレスのようなソフトウェアの動作に関わる離散値の変化は、当然に、記述できる。
これにより、ハイブリッドシステムを、プログラムの検証と同様の手法で検証でき、様々な入力を与えてテストする必要がなく、モジュール性の確保が容易となる。
本実施形態では、手続き型プログラミング言語のエッセンスであるwhile言語(Glynn Winskel. Formal Semantics of Programming Languages. The MIT Press, February 1993.)を、無限小の値を表すdtという記号で拡張した言語であるwhiledtを用いる。
無限小の値を言語に加えることにより、連続量を扱うシステムを、手続き型プログラミング言語で記述することができる。
なお、無限小を導入したプログラミング言語(whiledt言語)は、コンピュータによる実行を前提としたものではなく、ハイブリッドシステムの動作を記述するための言語である。したがって、無限小を導入したプログラミング言語は、ハイブリッドシステムのモデリング言語ということができる。
以下に、本実施形態で用いられるwhiledt言語の定義の例を示す。
a::=x|r|dt|a1 aop a2
は、「aは、x,r,dtもしくはa1 aop a2のいずれかである」という意味である。
aは、算術式で、変数、実数定数、無限小を表す記号dtか、算術演算(aop)のいずれかである。
bは、真偽値を表す式で、真を表す値、偽を表す値、ブール演算(and演算、or演算またはnot演算)または算術式間の関係式(a1<a2等)のいずれかである。
通りである。
skip : なにも実行せずに終了する。
x:=a : 算術式aを評価し、その評価結果を変数xに代入する。
c1;c2 : コマンドc1を実行し、その後コマンドc2を実行する。
if b then c1 else c2: 式bを評価し、その結果が真ならばc1を実行し、偽ならばc2を実行する。
whileQ b do c done : 式bが真である間、cを繰り返し実行する。
つまり、whiledt言語は、手続き型プログラミング言語を、無限小が記述できるように拡張した言語、ということができる。
なお、whiledt言語の定義は、上記のものに限られず、さらに拡張されていてもよい。本実施形態では、算術演算(aop)に累乗を含めるなど、上記定義をさらに拡張したものを用いる。
[例1]
初めに非常にシンプルなwhiledtのプログラム例を示す。このプログラムは微分方程式
に従ったx(t)の時間発展を時刻5まで計算する。whileコマンドの各ループにおいて、xの値は微分方程式で指定された現時刻でのxの微小変化量(x×dt)だけ変化する。プログラム中のassert(x≧2a)は、この時点においてx≧2aが成り立たなければならないということを表しており、この条件が必ず成り立つことを、後述のプログラム論理を用いて検証する。
他の一例として先行研究(Andre Platzer.Differential dynamic logic for hybrid systems. J. Autom.Reasoning, 41(2):143-189, 2008.)にて取り上げられているヨーロッパ鉄道制御システム(ETCS)のモデルを挙げる。
Caccelは定数加速度aで時刻εまで加速する電車をモデル化している。
ここで変数vは電車の速度、変数zは電車の位置を表現している。whileループで時刻tを無限小量ずつ変化させ、コマンドCdrive内ではv:=v+a×dtで速度vを、加速度aに応じて変化させ、z:=z+v×dtで電車の位置zを現在の速度vに応じて変化させている。
別の現実に近い例として、先行研究(Rajeev Alur, Costas Courcoubetis, Thomas A. Henzinger, and Pei−Hsin Ho. Hybrid automata: An algorithmic approach to the specification and verification of hybrid systems. In Hybrid Systems, pages 209-229, 1992.)にて取り上げられている貯水槽モニタのモデルを挙げる。
図2に示すように、この貯水槽100には給水口101と排水口102が付いており、給水口101のバルブ103が開いているときは水位が毎秒1cmで上昇し、バルブ103が閉じているときには毎秒2cmで下降する。バルブ103の操作はスイッチ104で行われており、バルブ103の開閉はスイッチ104の操作後2秒経ってから起こる。
以下のプログラムにおいて、case{・・・}は、初めから順番に条件を検査し、条件が成り立った部分のプログラムを実行する構文である。
whiledt言語によってコーディングされたハイブリッドシステムのモデルは、プログラミング言語的に記述されているため、形式的検証を行うプログラム検証器45によって検証が可能である。
さらに、検証装置4は、定理証明器47による証明結果(検証結果)を、ハイブリッドシステムの検証結果として出力するための出力部48を備えている。
1)プログラムc、事前条件Qについてセクション化の操作を行う(置換ステップ)。
2)セクション化後のプログラムcについて、ループ不変表明の計算の操作を行う(付加ステップ)。
3)プログラムcについて検証条件(論理式)の生成を行う(検証ステップ)。
4)検証条件が成り立つことを、定理証明器を用いて証明する。この証明に定理証明器が成功した場合は検証成功、成功しなかった場合は検証失敗を返す(検証ステップ)。
前記置換ステップでは、セクション化部(置換処理部)43が、入力として与えられたプログラムcと事前条件Qについてセクション化という操作を行う。セクション化とは、無限小を示す表現であるdtを、実数値を示す表現”1/i”に置換する操作である。実数値を示す表現”1/i”は、数値を示す記号”i”を含んでおり、iが示す値(の絶対値)が増加したと考えた場合、その増加につれて、表現”1/i”が示す値が0に収束する値を示す表現となっている。つまり、iの絶対値が非常に大きくなれば、1/iは0に収束する。ここでは、iは、正の整数であるとするが、負の整数であってもよい。また、実数値を示す値は、”1/i”に限らず、例えば、”1/(2×i)”または”1/(3×i)”などであってもよい。セクション化の操作によりwhiledtのプログラムcと事前条件Qとが、(無限小の値を含まない)実数上のプログラムci・論理式Qiに変換される。セクション化により、無限小値を含むプログラムの検証に無限小値を対象としない既存手法(例えば、以下で述べるループ不変表明の計算等)を適用することが可能となる。
のもとでの検証例を見る。
前記付加ステップでは、ループ不変表明計算部44が、セクション化して得られたプログラムciについてループ不変表明(loop invariant assertion)を計算し、プログラムciに付加する。
ループ不変表明を自動生成するアルゴリズムとしては、例えば、Sriram Sankaranarayanan、 Henny B. Sipma, and Zohar Manna. Nonlinear loop invariant generation using groebner bases. In Proceedings of the 31st ACM SIGPLAN−SIGACT symposium on Principles of programming languages, POPL ’04, pages 318-329, New York, NY, USA,2004. ACM.に開示されているものを利用することができる。ループ不変表明の計算・付加は、手動で行っても良い。
をとることができる。
プログラム検証器45の検証条件生成器46は、記憶部42に記憶されたプログラム(セクション化され、ループ不変表明が付加されたプログラム)ci、及び事前条件(セクション化された事前条件)Qiについて、検証条件の生成という手続きを行う。
アルゴリズムVCは、再帰関数VC1を用いて定義されている。
VC1(c,Q)は、プログラムcの実行後に、Qが成り立つために、cの実行前に成り立っているべき条件を返す。
例えば、VC1(c1;c2,Q)の定義は、「VC1(c2,Q)の結果をQ’’、VC1(c1,Q’’)の結果をQ’としたときに、全体の結果はQ’である」のように読む。
VCは、「VC1によって返された条件が、事前条件から帰結される」ことを意味する論理式を検証条件として返す。
なお、検証条件生成アルゴリズムにおいて、Q[x−>a]は、Q中の変数xをaで置き換える操作を示す。
なお、Q’’(t,x,i)は、ループ不変表明計算部44によって計算されたループ不変表明である。
前述のように生成された検証条件が、「有限個のiを除いて正しい」ことが示されれば、元のwhiledtのプログラムcは、与えられた性質を必ず満たす。この検証条件(論理式)の証明のため、本実施形態では、定理証明器(Theorem Prover)47を用いる。プログラム検証の分野においては、与えられた論理式が成り立つかどうかを自動的に判定する手法(Beheads Akbarpour and L. C. Paulson. Metitarski: An automatic theorem prover for real−valued special functions. J. Automated Reasoning,44(3):175-205, 2010.)や、一部人間の支援によって判定する手法(The Coq Development Team. Reference Manual - The Coq Proof Assistant.INRIA, 2010. http://coq.inria.fr/refan/.)が知られており、これらの手法を用いて検証条件が成り立つかどうかを判定する。
と書ける。
例1のプログラムについての検証条件を整理すると、
したがって、定理証明器47で証明すべき論理式は、
となる。この論理式が成り立つことは、定理証明器47を用いて証明することが可能である。
上記のアルゴリズムVCに先立ちセクション化という操作を行っている。この操作は無限小値を含むプログラムの検証を、実数のみを扱える定理証明器を用いて行うために必要な操作である。本実施形態では、プログラムcのセクション化を行ってから以降の手続きを行っているが、プログラムcのセクション化を行わずにループ不変表明の計算と検証条件の生成を行い、その後、検証条件をセクション化して、定理証明器47に渡しても良い。
また、セクション化の手法は、プログラム論理を用いない他の検証手法をwhiledtで記述されたプログラムの検証を行う場合にも有効である。
[4.1 whiledtのプログラムの例A]
whiledtによってハイブリッドシステムの動作をコーディングしたモデルのプログラムコードAを、以下に示す。なお、以下のコードにおいて、「&&」は、論理積を示す論理演算子である。
例Aのコードをセクション化したコードA1を、以下に示す。セクション化により、例Aのコードに含まれていたdt(無限小を表す記号)が、”1/i”に変換され、無限小dtを含まない形となっている。したがって、既存のソフトウェア検証手法を適用することが可能となっている。
セクション化されたコードA1に、ループ不変表明を付加したコードA2を、以下に示す。
セクション化され、かつ、ループ不変表面が付加されたコードA2に対し、事前条件をtrueとして、検証条件生成アルゴリズムVCを適用して得られる検証条件を、以下に示す。この検証条件は、定理証明器Coq(http://coq.inria.fr/refan/)で扱えるフォーマットで記述されている。なお、実際に定理証明器で証明すべき論理式は、以下に示す論理式の先頭に、「exists n:nat,i>n −>」を付加したものになる。
例AのコードAを、セクション化せずにループ不変表明を付加したコードA3を、以下に示す。
セクション化せずにループ不変表明を付加したコードA3に対し、事前条件をtrueとして、検証条件生成アルゴリズムVCを適用して得られる検証条件を、以下に示す。
無限小を直接扱える定理証明器を用いれば、この検証条件の証明を行うことで、コードAの安全性を示すことができる。無限小を扱える定理証明器としては、(Tania Bedrax−Weiss and Rolando Chuaqui, INFMAL: An Infinitesimal Analysis Interactive Theorem Prover and Problem Solver. Proceedings of the XII International Conference of the Chilean Computer Science Society, Santiago, Chile, October 1992.)に記載のものがある。以下の検証条件中のdtを”1/i”で置き換えたものは、[4.4 検証条件]で示した検証条件と一致する。
図3は、図1に示す変換装置3におけるモデル変換処理を示している。図1に示すように、変換装置3は、生成部3aと、変換テーブル3bと、を備えている。
生成部3aは、コンピュータ支援設計システム2によって生成されたハイブリッドシステムのブロック線図(モデル)から、whiledt言語でコーディングされたプログラム(ハイブリッドシステムのモデルのコード)を生成する。
変換テーブル3bは、ハイブリッドシステムのブロック線図から、whiledt言語のプログラムコードに生成するために、生成部3aによって参照される。
また、生成部3aは、ブロック線図中の各ブロック51,52,53a,53b,53c,54a,54bのうち、内部状態を持つブロック54a,54bについて、状態変数si,si’(iは、自然数)を生成する(ステップS3)。なお、積分ブロック54a,54bの場合、内部状態を示す値は、積分値である。状態変数についても、各ブロックに対してsi,si’という2つの変数が生成される。
図5は、図4のブロック線図に対して、変数生成処理(ステップS2,S3)を行って生成された変数xi,xi’,si,si’を示している。
続いて、生成部3aは、ステップS2〜4で生成した各変数xi,xi’,si,si’,tを初期化するコードc0を生成する(ステップS5)。以下は、各変数を0で初期化したコードc0の例を示している。
生成部3aは、ブロック線図中の各ブロックについて、変換テーブル3bを参照することで、コードc11を生成する(ステップS6a)。なお、変換テーブル3bは、変換装置3を構成するコンピュータ又はその他の装置の記憶部に記憶されている。
図6の変換テーブル3bの左側が、Simulinkにおいて用いられるブロックを示しており、変換テーブル3bの右側が、各ブロックに対応するwhiledt言語のコードを示している。
また、変換テーブル3b中のwhiledt言語のコードにおけるその他の変数を示す記号(dtを除く)は、置換対象のブロックに設定されたパラメータ(ブロック線図のデータ中のパラメータ)が示す値に置換される。
生成部3aが、図5に示すブロック線図に関して、xi’,si’の値を、xi,siに代入するコードとして生成したコードc12を以下に示す。
さらに、本実施形態では、ハイブリッドシステムの開発者として、ソフトウェア技術者を活用することが可能である。
すなわち、ハイブリッドシステムの開発現場では、制御理論に由来する開発手法が主に採用されているため、通常のソフトウェア技術者を、ハイブリッドシステムの開発者として活用することが困難であった。しかし、本実施形態では、ハイブリッドシステムのモデルを、プログラミング言語によってコーディングできるため、プログラミング言語に慣れているソフトウェア技術者を、ハイブリッドシステムの開発者として活用することが可能である。
なお、上記において開示した事項は、例示であって、本発明を限定するものではなく、様々な変形が可能である。
2 コンピュータ支援設計システム
3 変換装置
3a 生成部
3b 変換テーブル
4 検証装置
41 入力部
42 記憶部
43 セクション化部(置換処理部)
44 ループ不変表明計算部
45 プログラム検証器
46 検証条件生成器
47 定理証明器
48 出力部
Claims (17)
- 連続値と離散値とが相互に影響を与えながら動作するハイブリッドシステムの検証方法であって、
前記ハイブリッドシステムの動作を、プログラミング言語によってコーディングしたモデルを作成する作成ステップと、
前記モデルのコードを、形式的検証を行うプログラム検証器によって検証することで、前記ハイブリッドシステムの検証を行う検証ステップと、
を含み、
前記プログラミング言語は、無限小を示す記号が導入されたプログラミング言語であり、
前記モデルは、前記ハイブリッドシステムにおける前記連続値の微小変化量が、無限小を示す前記記号を用いてコーディングされている
ハイブリッドシステムの検証方法。 - 前記プログラム検証器は、定理証明器を含み、
前記検証ステップでは、前記モデルのコードの検証条件を示す論理式を生成し、前記論理式を前記定理証明器によって証明することで、前記モデルのコードを検証する
請求項1記載のハイブリッドシステムの検証方法。 - 前記検証ステップに先立って、前記モデルのコードにおける無限小を示す前記記号を、実数値を示す表現に置換する置換ステップを更に含み、
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記検証ステップでは、前記置換ステップによって置換された後の前記モデルのコードを検証する
請求項1又は2記載のハイブリッドシステムの検証方法。 - 前記検証ステップに先立って、前記検証条件を示す論理式における無限小を示す記号を、実数値を示す表現に置換する置換ステップを更に含み、
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記検証ステップでは、前記置換ステップによって置換された後の前記論理式を前記定理証明器によって証明する
請求項2記載のハイブリッドシステムの検証方法。 - 前記数値を表す前記記号は、正の整数を示す記号である
請求項3又は4記載のハイブリッドシステムの検証方法。 - 前記検証ステップに先立って、前記モデルのコードに含まれているループに対して、ループ不変表明を付加する付加ステップを更に含む
請求項1〜5のいずれか1項に記載のハイブリッドシステムの検証方法。 - 連続値と離散値とが相互に影響を与えながら動作するハイブリッドシステムの検証装置であって、
前記ハイブリッドシステムの動作を、無限小を示す記号が導入されたプログラミング言語によってコーディングしたモデルの入力を受け付ける入力部と、
前記入力部によって受け付けた前記モデルのコードを記憶する記憶部と、
前記記憶部に記憶された前記モデルのコードに対して、形式的検証によって検証を行うプログラム検証器と、
前記プログラム検証器による検証結果を、前記ハイブリッドシステムの検証結果として出力する出力部と、
を備え、
前記モデルは、ハイブリッドシステムにおける前記連続値の微小変化量が、無限小を示す前記記号を用いてコーディングされているハイブリッドシステムの検証装置。 - 前記プログラム検証器は、定理証明器を含み、
前記プログラム検証器は、前記記憶部に記憶された前記モデルのコードの検証条件を示す論理式を生成し、前記論理式を前記定理証明器によって証明することで、前記モデルのコードを検証する
請求項7記載のハイブリッドシステムの検証装置。 - 前記記憶部に記憶されている前記モデルのコードにおける無限小を示す前記記号を、実数値を示す表現に置換する置換処理部を更に備え、
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記プログラム検証器は、前記置換処理部によって置換された後の前記モデルのコードを検証する
請求項7又は8記載のハイブリッドシステムの検証装置。 - 前記検証条件を示す論理式における無限小を示す記号を、実数値を示す表現に置換する置換処理部を更に備え、
前記実数値を示す前記表現は、数値を表す記号を含み、前記数値の絶対値が増加するにつれて0に収束する値を示す表現であり、
前記プログラム検証器は、前記置換処理部によって置換された後の前記論理式を前記定理証明器によって証明する
請求項8記載のハイブリッドシステムの検証装置。 - 前記数値を表す前記記号は、正の整数を示す記号である
請求項9又は10記載のハイブリッドシステムの検証装置。 - 前記記憶部に記憶された前記モデルのコードに含まれているループに対して、ループ不変表明を付加する付加部を更に備える
請求項7〜11のいずれか1項に記載のハイブリッドシステムの検証装置。 - コンピュータを、請求項7〜12のいずれか1項に記載の検証装置として機能させるためのコンピュータプログラム。
- 連続値と離散値とが相互に影響を与えながら動作するハイブリッドシステムのブロック線図を、ハイブリッドシステムの検証用のモデルに変換するための方法であって、
前記ブロック線図が示す前記ハイブリッドシステムの動作を、プログラミング言語によってコーディングしたモデルをコンピュータにより生成する生成ステップを含み、
前記プログラミング言語は、無限小を示す記号が導入されたプログラミング言語であり、
前記生成ステップでは、前記ハイブリッドシステムにおける前記連続値の微小変化量を、無限小を示す前記記号を用いてコーディングしたコードが生成される
ハイブリッドシステムのモデル変換方法。 - 連続値と離散値とが相互に影響を与えながら動作するハイブリッドシステムのブロック線図を、ハイブリッドシステムの検証用のモデルに変換するための装置あって、
前記ブロック線図が示す前記ハイブリッドシステムの動作を、プログラミング言語によってコーディングしたモデルを生成する生成部を備え、
前記プログラミング言語は、無限小を示す記号が導入されたプログラミング言語であり、
前記生成部は、前記ハイブリッドシステムにおける前記連続値の微小変化量を、無限小を示す前記記号を用いてコーディングしたコードを生成する
ハイブリッドシステムのモデル変換装置。 - コンピュータを、請求項15記載のモデル変換装置として機能させるためのコンピュータプログラム。
- 形式的検証を行うプログラム検証器によって前記形式的検証が行われるコードであって、
前記コードは、連続値と離散値とが相互に影響を与えながら動作するハイブリッドシステムの動作が、無限小を示す記号が導入されたプログラミング言語によってコーディングされたものであり、
前記コードでは、前記ハイブリッドシステムにおける前記連続値の微小変化量が、無限小を示す前記記号を用いてコーディングされている
コード。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011135201A JP5843230B2 (ja) | 2011-06-17 | 2011-06-17 | ハイブリッドシステムの検証方法、検証装置、及び検証コンピュータプログラム、並びに、ハイブリッドシステムのモデル変換方法、変換装置、及び変換コンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011135201A JP5843230B2 (ja) | 2011-06-17 | 2011-06-17 | ハイブリッドシステムの検証方法、検証装置、及び検証コンピュータプログラム、並びに、ハイブリッドシステムのモデル変換方法、変換装置、及び変換コンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013003897A JP2013003897A (ja) | 2013-01-07 |
JP5843230B2 true JP5843230B2 (ja) | 2016-01-13 |
Family
ID=47672396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011135201A Expired - Fee Related JP5843230B2 (ja) | 2011-06-17 | 2011-06-17 | ハイブリッドシステムの検証方法、検証装置、及び検証コンピュータプログラム、並びに、ハイブリッドシステムのモデル変換方法、変換装置、及び変換コンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5843230B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324776B (zh) * | 2013-04-25 | 2015-12-09 | 南京大学 | 基于抽象解释的线性混成系统不变式的生成方法 |
CN111679809B (zh) * | 2020-04-15 | 2023-06-06 | 杭州云象网络技术有限公司 | 一种基于Noesis逻辑的程序开发与验证方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3866595B2 (ja) * | 2002-03-15 | 2007-01-10 | 株式会社東芝 | ハイブリッドモデル作成装置及びプログラム |
JP3940665B2 (ja) * | 2002-11-27 | 2007-07-04 | 株式会社東芝 | ハイブリッドシミュレーション装置およびプログラム |
-
2011
- 2011-06-17 JP JP2011135201A patent/JP5843230B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013003897A (ja) | 2013-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Heitmeyer et al. | Tools for constructing requirements specifications: The SCR toolset at the age of ten | |
Ab. Rahim et al. | A survey of approaches for verifying model transformations | |
Sztipanovits et al. | Model and tool integration platforms for cyber–physical system design | |
Schamai | Model-based verification of dynamic system behavior against requirements: Method, language, and tool | |
Apvrille et al. | Prototyping an embedded automotive system from its UML/SysML models | |
Krishnan et al. | An integrated system design and safety framework for model-based safety analysis | |
US8751094B2 (en) | Method for validation of a graphically based executable control specification using model extraction | |
JP5843230B2 (ja) | ハイブリッドシステムの検証方法、検証装置、及び検証コンピュータプログラム、並びに、ハイブリッドシステムのモデル変換方法、変換装置、及び変換コンピュータプログラム | |
Cha et al. | A safety-focused verification using software fault trees | |
Post et al. | Integrating sotif and agile systems engineering | |
US7543274B2 (en) | System and method for deriving a process-based specification | |
Dragomir et al. | Formal verification of space systems designed with TASTE | |
Hocking et al. | Proving critical properties of Simulink models | |
Aceituna | Survey of concerns in embedded systems requirements engineering | |
Bouali et al. | Formal verification for model-based development | |
JP7418608B2 (ja) | プログラマブルロジックコントローラプログラムの解析方法 | |
Aniculaesei et al. | Using the SCADE toolchain to generate requirements-based test cases for an adaptive cruise control system | |
Nastov et al. | MBSE and V&V: a tool-equipped method for combining various V&V strategies | |
Kittelmann et al. | Runtime verification of correct-by-construction driving maneuvers | |
Aniculaesei et al. | Automated Generation of Requirements-Based Test Cases for an Automotive Function using the SCADE Toolchain | |
Van Acker et al. | Generation of test strategies for model-based functional safety testing using an artifact-centric approach | |
Zhang et al. | Test case generation from formal models of cyber physical system | |
Hwang et al. | Safety-Critical Software Quality Improvement Using Requirement Analysis | |
Gholami et al. | Applying formal methods into safety-critical health applications | |
Aceituna et al. | Addressing the state explosion problem when visualizing off-nominal behaviors in a set of reactive requirements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140530 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150616 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150805 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150907 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20151020 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5843230 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |