KR100363337B1 - 정성물리를 이용하는 머신 고장 분리방법 - Google Patents

정성물리를 이용하는 머신 고장 분리방법 Download PDF

Info

Publication number
KR100363337B1
KR100363337B1 KR1020027008231A KR20027008231A KR100363337B1 KR 100363337 B1 KR100363337 B1 KR 100363337B1 KR 1020027008231 A KR1020027008231 A KR 1020027008231A KR 20027008231 A KR20027008231 A KR 20027008231A KR 100363337 B1 KR100363337 B1 KR 100363337B1
Authority
KR
South Korea
Prior art keywords
hypothesis
test
machine
variable
user
Prior art date
Application number
KR1020027008231A
Other languages
English (en)
Inventor
로버트 티. 클라크
토마스 피. 해밀톤
스티븐 갈로
Original Assignee
유나이티드 테크놀로지즈 코포레이션
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US08/233,280 external-priority patent/US5522014A/en
Priority claimed from US08/233,466 external-priority patent/US5537644A/en
Priority claimed from US08/233,349 external-priority patent/US5604841A/en
Application filed by 유나이티드 테크놀로지즈 코포레이션 filed Critical 유나이티드 테크놀로지즈 코포레이션
Application granted granted Critical
Publication of KR100363337B1 publication Critical patent/KR100363337B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2257Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)
  • Navigation (AREA)

Abstract

머신에 특정된 고장이 존재하는 것을 판단하기 위하여, 그 머신의 제약조건보류 및 정성물리모델을 이용한다(58). 수신된 머신신호는 모델을 통하여 전달될 수 있고(69), 변수에 부여된 변수값의 임프리컨트가 결정될 수 있으며 다른 변수들은 그 임플리컨트의 합에 따라서 제한될 수 있다. 사용자는 머신의 구성을 변경시키는 머신 테스트 프로시저를 수행하도록 프롬프팅될 수 있다(72).
테스트 수행시간은 사용자가 수행할 최적의 테스트를 선택하는데 있어서(286) 하나의 인자가 될 수 있다. 머신의 정성물리모델(310)은 그래픽 사용자 인터페이즈(302)를 이용하여 구축될 수도 있다. 그것은 그 모델을 위하여 머신성분의 선택 및 상호 연결을 허락하므로서, 사용자는 그 모델의 변수의 정성값-공간을 정의를 제공하기 위하여 일종의 랜드마크 도메인을 정의할 수 있다. 총괄적 테스트 템플릿은 또한 모델을 발전시키는 데에 사용될 수 있다.

Description

정성물리를 이용하는 머신 고장 분리방법{Machine Failure Isolation Using Qualitative Physics}
본 발명은 컴퓨터 소프트웨어 분야에 관련되고 특히 인공지능 컴퓨터 소프트웨어에 관련된다.
하나의 머신 고장의 증상에 수많은 다른 해석이 제시되는 경우가 가끔 있다. 통상적으로, 머신 고장의 증상에 대한 어떤 다른 해석을 추출하기 위하여 가능성 있는 모든 경우에 대해 수리 및/또는 교체하는 것보다는 머신을 더욱 상세히 관찰하므로써 비용과 시간이 더욱 절약된다. 머신을 반복적으로 관찰하고 그로부터머신고장의 잠재적인 원인을 추출하는 프로시저를 '고장원인분리'라고 한다. '고장원리분리' 작업은 고장원인분리의 반복테스트/제거단계들을 고장-트리 내지 플로우차트의 형식을 이용하여 수작업으로 수행할 수도 있다. 고장-트리의 각각의 요소는 사용자에게 특정된 관찰을 하도록 요구한다. 각각의 요소에서는 복수의 가지경로가 나오며, 이 각각의 가지경로는 고장-트리에서 다른 부분으로 인도된다. 사용자는 현재의 요소가 요구하는 테스트의 결과에 기초하여 특정한 가지 경로를 따라간다. 그 프로시저의 어느 한 점에서, 사용자는 그로부터 이어지는 '가지'가 전혀 존재하지 않는 요소에 도달할 것이다. 그것은 고장난 특정 성분 또는 성분의 그룹을 나타낸다.
거대하고 복잡한 머신에 대해서는, 고장-트리가 많은 페이지에 달하거나 아마도 수권의 책이 될 수도 있고, 그것에 의해서 고장-트리를 자세히 고찰하기란 매우 어려운 일이다. 이러한 것에 대한 하나의 해결책은 '규칙에 기초한 고장원인 분리시스템'을 내장한 컴퓨터를 이용하는 것이다. 그것은 고장-트리로부터의 정보를 포함하고 있는 프로그램이다. 컴퓨터는 사용자에게 테스트를 수행하도록 지시하고 그 결과를 기입하도록 지시한다.
하지만, 고장-트리 방식 및 '규칙에 기초한 고장원인 분리시스템' 방식에 있어서, 사용자가 직면하게 될 모든 가능한 고장의 형식이 그것을 만들 때 결정되어 있을 필요가 있다. 단순한 머신에 대하여는 이것은 어려운 작업이 아니다. 하지만 좀 더 복잡한 머신에 대해서는 이것은 불가능하거나 적어도 비현실적인 것이 될 것이다. 고장-트리의 설계자 또는 '규칙에 기초한 고장원인 분리시스템'의 프로그래머가 머신 고장 형식 중에서 어떤 것을 생략하더라도 그것이 비상식적인 것은 아니다. 이러한 생략은 작업이 거대하기 때문에 우발적으로 일어나거나 또는 실제적인 범위로 그 크기를 유지하기 위해서 고의적으로 결정한 것이다.
고장-트리와 '규칙에 기초한 고장원인 분리시스템'의 무용성을 해결하고 생각할 수 있는 모든 고장을 분리해낼 수 있기 위한 해결책으로서, 데이비스, 랜달의 "구조 및 행동에 기초한 진단추론" (「인공지능」 24(1984), 347-410) 논문이 발표되어 있다. 데이비스는 "제약조건의 보류"라는 고장원인 분리시스템을 제안한다. 여기서는 컴퓨터가복수의 머신 모델을 발생시킨다. 각각의 모델은 다양한 '고장난 성분' 내지 '고장난 성분의 그룹'을 가정한다. 테스트 결과와 모순되지 않는 모델은 성분 내지 성분의 그룹이 고장나 있다는 것을 나타낸다.
'제약조건의 보류' 시스템이 가지는 결점은, 많은 아날로그-량을 가지고 있는 복잡한 기계를 모델링하는 것은 그 프로세서가 매우 집약적이어야 한다는 것이고, 그 시스템을 운영하는데 시간이 매우 많이 걸린다는 것이다. 이러한 결점의 해결책으로서, 해밀톤, 토마스의 논문 "HELIX; 정성물리를 기초로 한 헬리콥터 진단시스템"(국제 인공지능 공학지, Vol. 3, No. 3, 1988년 7월, pp 141-150)이 있다. 해밀톤은 '제약조건보류'와 정성물리를 결합시킨 것을 제안한다. 이것은 아날로그-량을 변수값의 유합집합에서 변수값을 취할 수 있는 변수로 나타내는 일종의 모델링 기술이다. 유한한 정량값 각각은 아날로그-량의 다른 범위를 대표한다. 하지만, 해밀톤의 논문은 당해기술분야의 전문가가 '정성물리를 이용한 고장원인 분리시스템'을 구성하고 이용할 수 있도록 충분한 설명을 하지 못한다.
공개된 PCT 출원(출원번호 WO-A-92 01254)에는 머신 고장원인 분리를 위한 정성적 추론 시스템이 개시되어 있다. 머신의 하나 이상의 성분에서의 고장이 가정되고, 고장에 대한 가설은 그 가정의 컨플루언스-식을 통하여 머신 파리미터에 대한 실제값을 전달 하므로써 테스트된다. 컨플루언스 변수 및 머신 파라미터에 대해 실제값은 정성물리를 이용하여 표현되고 조작된다. 하지만 출원 WO-A-92 01254에 개시된 머신 고장원인 분리 시스템은, 그 동작이 가능은 하지만, 모든 목적을 위하여는 항상 최적의 시스템인 것은 아니다.
발명의 요약
본 발명에 따르면, 어떤 머신에 특정한 고정이 존재한다는 것은 다음의 단계를 수행 하므로써 판단된다. 복수의 '머신 테스트 프로시저' 각각에 대한 실행시간을 평가한다. 각 테스트 프로시저에 대한 실행시간은 그의 일부분에 대한 평가된 실행시간의 합으로서 제공된다. 여기서 그 '머신 테스트 프로시저'의 일부분으로서 현재 테스트를 위한 머신 구성에 의해서 필요치 않은 것은 상기 합산에 포함되지 않는다.
다음, 머신 테스트 프로시저의 그룹으로 부터 최고의 테스트 성적을 가진 머신 테스트 프로시저 하나를 선택하므로써 특정한 테스트 프로시저를 선택한다. 여기서 상기 테스트 성적은 상기의 합산 값과 반비례한다. 다음, 사용자가 그 특정한 테스트 프로시저를 수행하고 그 결과를 제공하도록 사용자를 프롬프팅시킨다.
다음, 복수의 잠정 가설을 설정시킨다. 여기서 각 가설은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스집합과 대응한다.
다음, 컨플루언스 변수의 값에 대한 예측집합을 생성하기 위하여 그 컨플루언스를 통하여 테스트 결과를 나타내는 그 변수값을 전달한다. 다음, 예측집합과 모순이 되는 가설은 기각한다. 다음, 예측집합과 모순이 없는 가설은 저장시킨다. 그리고, 하나 이상의 특정된 머신 성분의 고장에 대응하는 나머지 단일 가설들에 응답하여 하나 이상의 특정된 머신 성분의 고장에 대응하는 나머지 단일 가설들에 응답하여 하나 이상의 특정된 머신 고장이 존재한다는 것을 지시한다. 사용자는 '성분 동작 평가'를 수행하고 그 평가결과를 기입하고, 머신 파라미터를 관찰하고, 그 관찰결과를 기입하도록 프롬프팅되거나 이러한 것의 조합을 수행하도록 프롬프팅될 수 있다.
또한 본 발명에 따르면, 어떤 머신에 특정한 고장이 존재한다는 것은 다음의 단계를 수행하므로서 판단된다. 사용자가 복수의 '머신 테스트 프로시저'를 수행하고 프로세서에 그 결과를 제공하도록 사용자를 프롬프팅시킨다. 상기 테스트 프로시저는 특정 파라미터 또는 특정 성분에 가해지는 일종의 '포괄적 템플릿(generic template)'이다.
다음, 복수의 잠정가설을 설정시킨다. 이 가설은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응된다. 다음, 컨플루언스 변수의 값에 대한 예측집합을 생성하기 위하여 그 컨플루언스를 통하여 테스트 결과를 나타내는 그 변수값을 전달한다. 다음, 예측집합과 모순이 되는 가설은 기각한다. 다음, 예측집합과 모순이 없는 가설은 저장한다.그리고, 하나 이상의 특정된 머신 성분의 고장에 대응하는 나머지 단일 가설들에 응답하여 하나 이상의 특정된 머신 고장이 존재한다는 것을 지시한다.
또한 본 발명에 따르면, 머신의 '정성물리모델'이 다음과 같이 구축된다. 사용자가 그 모델을 위한 머신 성분을 선택하고 그것과 상호 연결될 수 있도록 만들어주는 그래픽 사용자 인터페이스를 제공한다. 다음, 사용자가 프로세서에 제공한 입력에 응답하여 '정성물리모델'을 발생시키고, 조작한다. 그리고, 머신의 성분 및 파라미터에 대한 테스트 프로시저를 나타내는 데이타를 기입하도록 사용자를 프롬프팅시킨다. 여기서 사용자는 소정의 '포괄적 테스트 템플릿'을 선택하므로써 특정된 성분에 대한 테스트 프로시저를 특정할 수 있다.
또한 본 발명에 따르면, 머신의 '정성물리모델'이 다음과 같이 구축된다. 사용자가 그 모델을 위한 머신 성분을 선택하고 그것과 상호 연결될 수 있도록 만들어주는 그래픽 사용자 인터페이스를 제공한다. 다음, 사용자가 프로세서에 제공한 입력에 응답하여 '정성물리모델'을 발생시키고, 조작한다. 다음, 모델의 성분을 계층적으로 그룹핑한다. 여기서 하층구조성분은 계층에 있어서 특정된 성분의 일종의 자식을 나타낸다. 그리고 사용자가 한 입력에 대응하여 모델 성분을 재구조화시킨다. 재구조화는 적어도 하나의 자식을 가지는 부모를 변경시키거나, 복수의 성분을 새로운 복합 성분으로 재-그룹핑 하거나 또는 관련 성분 그룹에 제공하도록 성분들을 자동적으로 재-그룹핑하는 것이 포함될 수 있다.
또한 본 발명에 따르면, 어떤 머신에 특정한 고장이 존재한다는 것은 다음의 단계를 수행하므로써 판단된다. 사용자가 복수의 '머신 테스트 프로시저'중의 하나를 수행하고 그 결과를 제공하도록 사용자를 프롬프팅시킨다. 여기서 적어도 하나의 테스트 프로시저는 '머신구성변경'을 일으킨다. 다음, 복수의 잠정가설을 설정시킨다. 이 가설은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응된다. 다음, 컨플루언스 변수의 값에 대한 예측집합을 생성하기 위하여 그 컨플루언스를 통하여 테스트 결과를 나타내는 그 변수값을 전달한다. 다음, 예측집합과 모순이 되는 가설은 기각한다. 다음, 예측집합과 모순이 없는 가설은 저장한다. 그리고, 하나 이상의 특정된 머신 성분의 고장에 대응하는 나머지 단일 가설들에 응답 하여 하나 이상의 특정된 머신 고장이 존재한다는 것을 지시한다. 머신구성변경은 사용자가 머신제어입력을 변경하도록 또는 인베이시브 테스트를 수행하도록 사용자를 프롬프팅시키므로써 일어날 수 있다. 머신구성변경에 응답하여, 프로세서는 예측과 테스트 프로시저 수행의 결과를 저장하고, 구성변경의 결과로서 기입된 구성에 대응하는 테스트 프로시저 수행의 결과 및 예측을 복구할 수 있다.
또한, 본 발명에 따르면, '가정된 머신증상의 초기집합'이 다음 단계를 수행하므로써 머신에 특정된 고장이 존재하는지를 판단하기 위하여 이용된다. 잠정가설의 초기집합을 설정시킨다. 이 가설의 초기집합은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응된다. 여기에서가설들은 가정된 머신 증상의 초기집합 및 머신 모델을 이용하여 설정된다. 다음, 사용자가 복수의 '머신 테스트 프로시저'중의 하나를 수행하고 그 결과를 제공하도록 사용자를 프롬프팅시킨다. 다음, 컨플루언스 변수의 값에 대한 예측집합을 생성하기 위하여 그 컨플루언스를 통하여 테스트 결과를 나타내는 그 변수값을 전달한다. 다음, 예측집합과 모순이 되는 가설은 기각한다. 다음, 예측집합과 모순이 없는 가설은 저장한다. 그리고, 하나 이상의 특정된 머신 성분의 고장에 대응하는 나머지 단일 가설들에 응답하여 하나 이상의 특정된 머신 고장이 존재한다는 것을 지시한다.
또한 본 발명에 따르면, '가정된 머신 증상의 초기집합'이 다음 단계를 수행하므로써 머신에 특정된 고장이 존재하는지를 판단하기 위하여 이용된다. 다음 복수의 잠정가설의 초기집합을 설정시킨다. 이 가설의 초기집합은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응된다. 여기에서 가설들은 가정된 머신 증상의 초기집합 및 머신 모델을 이용하여 설정된다. 다음, 복수의 가정된 머신 테스트 프로시저를 제공한다. 다음, 컨플루언스 변수의 값에 대한 예측집합을 생성하기 위하여 그 컨플루언스를 통하여 테스트 결과를 나타내는 그 변수값을 전달한다. 다음, 가정된 초기조건 및 가정된 머신 테스트 프로시저의 결과에 대응하는 복수의 진단로직-트리를 발생시킨다. 다음, 사용자가 실제의 머신 테스트 프로시저의 결과를 기입하도록 사용자를 프롬프팅시킨다. 다음, 사용자에 의해 기입된 그 실제의 머신 테스트 프로시저의 결과에 응답하여 고장원인-트리를 따라가면서 고찰한다. 그리고 고장원인-트리의 잎 노드에 도달한 것에 응답하여 하나 이상의 머신 고장이 더 존재한다는 것을 지시한다.
본 발명에 따르면, 어떤 머신에 특정된 고장이 존재한다는 것은 다음의 단계를 수행 하므로써 판단된다. 머신 테스트 프로시저의 결과를 나타내는 머신 신호를 수신한다. 다음, 제1 잠정가설집합을 설정시킨다. 이 제1 잠정가설집합은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응된다. 다음, 특정가설의 컨플루언스 변수의 값에 대한 예측집합을 생성하기 위하여 그 가설의 비제한 컨플루언스 변수 및 부분제한 컨플루언스 변수의 부분집합을 선택하므로써 그 컨플루언스를 통하여 머신신호를 전달한다. 다음, 하나 이상의 '가능한 정성값'이 특정된 가설에 대하여 모순없는 예측집합으로 되는지의 여부를 판단하기 위하여 그 부분집합의 각 변수에 대하여 '가능한 정성값'을 잠정적으로 부여한다. 그리고, 모순없는 예측집합을 생성하는 변수값으로 그 부분집합의 변수를 제한한다. 모순되는 예측집합을 생성한 가설은 기각되고, 모순없는 예측집합을 생성한 가설은 저장된다. 하나 이상의 특정된 머신 성분의 고장에 대응하는 단일가설이 남아있는 경우에, 하나 이상의 특정된 머신 고장이 존재하는 것이 판단된다. 상기 '선택'은 특정된 가설의 비제한 변수 및 부분제한 변수를 조사하고 다음과 같은 조건중의 적어도 하나를 만족하는 변수를 선택하는 것을 포함할 수 있다. 즉, 그것은 '그 변수가 임의의 컨플루언스의 전-조건에서 나타난다', '그 변수가 두개의 비제한 또는 부분변수보다 많은 것을 포함하는 무조건적-컨플루언스에서 나타난다', 그리고 '그 변수가 두개 이상의 비제한 또는 부분변수를 컨플루언스 후-조건에 나타난다' 등이다. 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응되는 '부가적인 잠정가설'이 설정될 수 있다. 여기서 '부가적인 가설'은 제1가설집합중의 적어도 하나의 하층구조에 대응한다. 여기서 부가적인 가설에 대응하는 제1 가설집합중의 적어도 하나에서도 나타나지 않는 그 부가적인 가설에 대하여 '조사'가 수행된다. 부가적인 가설의 변수에 '변수값'이 부여될 수 있다.
여기서 변수값은 그 부가적인 가설에 대응하는 제1 가설집합중의 적어도 하나로 부터 유래한 것이다. '선택'은 그 부가적인 가설에 대응하는 제1 가설집합중의 적어도 하나로 부터의 변수에 대응하는 부가적인 가설의 부가적인 변수를 조사하는 것을 포함할 수 있다. 여기서 그 부가적인 변수는 제한된 변수이거나 재귀적 코베리에이트(covariate)이다. 선택은 또한 부가적인 가설에 대응하는 제1 가설 집합중의 적어도 하나에서도 나타나지 않는 부가적인 가설의 변수의 코베리에이트인 부가적인 변수를 조사하는 것은 포함할 수 있다. 머신 테스트 프로시저의 결과를 나타내는 부가적인 머신신호가 수신될 수 있다. 그리고 그 부가적인 머신신호 및 임플리컨트(implicant)에 대응하는 변수 및 코베리에이트가 조사된다. 변수-부분집합의 하나의 변수에 부여된 각각의 변수값의 임플리컨트가 판단될 수 있다. 그리고 그 가설의 다른 변수는 그 임플리컨트의 합에 따라서 제한될 수 있다. 최근의 '반복'루프에서 제한되었던 비제한 변수 및 부분제한 변수가 조사될 수 있다. 모순없는 예측집합으로 되는 가설의 변수-부분집합의 변수에 부여될 수 있는 '가능한 변수값'이 아무것도 존재하지 않는 것에 응답하여, 그 가설은 기각된다.
또한 본 발명에 따르면, 머신에 특정된 고장이 존재한다는 것은 다음의 단계를 수행 하므로써 판단된다. 머신 테스트 프로시저의 결과를 나타내는 머신신호를 수신한다. 다음, 제1 잠정가설집합을 설정시킨다. 이 제1 잠정가설집합은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응된다. 다음, 머신 신호에 대응하는 변수값을 특정가설의 컨플루언스 변수에 부여한다. 다음, 다른 컨플루언스 변수의 값을 더욱 제한하기 위하여 컨플루언스를 통하여 완전제한 컨플루언스 변수 및 부분제한 컨플루언스 변수에 대한 변수 값을 전달한다. 다음, 모순되는 예측집합을 생성한 가설은 기각한다.
다음, 모순없는 예측집합을 생성한 가설은 저장한다. 하나 이상의 특정된 머신 성분의 고장에 대응하는 나머지 단일가설에 응답하여 하나 이상의 특정된 머신 고장이 존재하는 것을 지시한다.
본 발명에 따르면, 어떤 머신에 특정된 고장이 존재한다는 것은 다음의 단계를 수행 하므로써 판단된다. 머신 테스트 프로시저의 결과를 나타내는 머신 신호를 수신한다. 다음, 제1 잠정가설집합을 설정시킨다. 이 제1 잠정가설집합은 고장나지 않았다고 가정된 머신 성분의 동작을 기술하기 위한 변수와 식을 이용하는 컨플루언스 집합과 대응된다. 다음 특정가설의 컨플루언스 변수의 값에 대한 예측집합을 생성하기 위하여 그 컨플루언스를 통하여 머신신호를 전달한다. 여기서, 컨플루언스 변수의 값은 정성값, 정량값 또는 그들의 조합이다. 모순되는 예측집합을 생성한 가설은 기각한다.
다음, 모순없는 예측집합을 생성한 가설은 저장한다. 하나 이상의 특정된 머신 성분의 고장에 대응하는 나머지 단일가설에 대응하여 하나 이상의 특정된 머신 고장이 존재하는 것을 지시한다. '글로벌 랜드마크 오더링 '이 컨플루언스 변수의 정성값과 정량값을 상호 연관지어주기 위하여 사용될 수 있다.
또한 본 발명에 따르면, 머신의 '정성물리모델' 이 다음과 같이 구축된다. 사용자가 그 모델을 위한 머신 성분을 선택하고 그것과 상호 연결될 수 있도록 만들어주는 그래픽 사용자 인터페이스를 제공한다. 그리하여, 그 모델의 컨플루언스 변수의 정성값-공간 및 정량값-공간을 정의하기 위하여 사용자는 '랜드마크 도메인'을 정의할 수 있고, 그 랜드마크 도메인을 적용할 수 있다.
본 발명의 상기 및 그 이외의 목적, 특징 및 이점은 다음의 바람직한 실시예의 상세한 설명과 첨부 도면에 의해서 분명해질 것이다.
도 1은 휴대용 유지보수장치를 나타내는 사시도,
도 2는 사용자 프롬프트 스크린을 나타내는 도,
도 3은 고장원인분리 소프트웨어의 전체 동작을 나타내는 플로우차트,
도 4는 정성적 추론 시스템 소프트웨어의 동작을 나타내는 데이타플로우 다이어그램,
도 5a는 정석적 추론 시스템 소프트웨어에 의해서 사용되는 데이타 구조를 나타내는 도,
도 5b는 테스트 프로시저를 제공하기 위하여 정성적 추론 시스템 소프트웨어에 의해 사용되는 데이타 구조를 나타내는 도,
도 6은 정성적 추론 시스템 소프트웨어내에서 가설 테스트 모듈의 동작을 나타내는 데이타플로우 다이어그램,
도 7은 정성적 추론 시스템 소프트웨어내에서 상태발생모듈의 동작을 나타내는 데이타플로우 다이어그램,
도 8은 상태발생모듈내에서 제약조건 전달모듈의 단계들을 나타내는 플로우차트,
도 9a는 상태발생모듈내에서 코어 예측 모듈의 단계들을 나타내는 플로우차트,
도 9b는 코어 예측을 수행하기 위한 변수선택을 나타내는 플로우차트,
도 10은 정성적 추론 시스템 소프트웨어내에서 가설설정모듈의 동작을 나타내는 데이타플로우 다이어그램,
도 11은 정성적 추론 시스템 소프트웨어내에서 최선 테스트 선택 소프트웨어의 동작을 나타내는 데이타플로우 다이어그램,
도 12a는 모델형성모듈을 나타내는 데이타플로우 다이어그램,
도 12b는 모델의 계층구조를 개략적으로 나타내는 데이타플로우 다이어그램,
도 12c는 모델의 계층구조를 개략적으로 나타내는 데이타플로우 다이어그램.
본 발명의 바람직한 실시예
도 1을 참조하면, PMA(30, Portable Maintenance Aid, 휴대용 유지보수장치)는 디스플레이 장치(32), 키보드(34) 및 처리장치(36)를 가지고 있다. PMA(30)는 그루만 전자 시스템사(미합중국 뉴욕, 베스페이지, #A31U18031-3)가 제조한 휴대용 컴퓨터이다. 디스플레이 장치(32)는 7인치 x 9인치의 LCD(액정표시장치)이다. 키보드(34)는 쿼티(QWERTY) 키보드이다. 프로세서(36)는 선 마이크로사(미합중국, 캘리포니아, 마운틴 뷰)가 제조한 스팍스테이션 1E 회로보드가 내장되어 있다. PMA(30)로서 다음과 같은 상표와 종류의 컴퓨터가 사용될 수 있다.
RSC-1X 러기드 스팍, 휴대용 유지보수장치(SAIC 제조, 캘리포니아 샌 디에고) 브라이트 라이트 IPC, 휴대용 워크스테이션(REI 컴퓨터 주식회사, 캘리포니아샌 디에고) DECpc 560ST (디지탈 이큅먼트사, 매사츄세츠 메이나드) PMA(30)는 또한 사용자 입력을 용이하게 하기 위하여 선택사항으로 마우스를 포함할 수 있다.
PMA(30)는 헬리콥터의 전자머신시스템과 같은 머신의 "고장원인 분리"(failure isolation)를 수행하는데에 이용된다. 고장원인 분리 소프트웨어(Common Lisp로 쓰임)는 처리장치(36)에 내장된 하드 디스크(도시되지 않음)에 저장된다. 이 소프트웨어는 장치의 고장원인 분리를 수행하기 위하여 PMA(30)와 사용자가 상호작용할 수 있도록 하게 한다. 이 소프트웨어는 디스플레이(32)를 이용하여 사용자가 머신에 대한 테스트를 수행하도록 사용자에게 프롬프팅(prompting)한다. 사용자는 키보드(34) 또는 마우스(가능하다면) 등을 통하여 그 테스트 결과를 기입한다.
테스트에 의해서, 고장원리분리-정보가 PMA(30)와 사용자 사이에서 교류된다. 테스트의 타입에는 "관찰"과 "성분 동작 평가(component health assessment)" 등과 같은 여러가지가 있다. 관찰은 머신의 특정부분의 물리적 상태를 기술하는 것으로서 특정한 두점 사이의 전압이나, '특정한 스위치가 "온" 상태이고 특정한 지시기가 "오프" 상태에 있다'는 관측결과 등을 의미한다. 한편 성분 동작 평가는 머신의 특정 성분의 동작 가능성을 기술하는 것으로서 특정한 도선이 끊어졌는지의 여부 또는 특정한 파이프가 막혔는지의 여부 등을 의미한다. 테스트의 타입들을 조합할 수 있고, 동일한 테스트에 대해 관찰 및 성분 동작 평가를 함께 할 수 있도록 사용자를 프롬프팅할 수 있다. 테스트의 다양한 타입과 그들간의 차이점에 대해 다음에서 상세히 설명한다.
도 2는 사용자 프롬프트 스크린(40)을 나타낸다. 질문(42)과 그에 가능한 대답(44, 46)의 항목이 사용자에게 제시된다. 이 예에서 이용된 질문(42)은 예/아니오의 대답을 요구하므로, 스크린(40)에 나타나는 가능한 대답 항목은 "예(44)" 및 "아니오(46)" 두개만 포함한다. 사용자는 커서키(또는 마우스)를 이용하여 대답(44, 46)중의 하나를 선택하고 리턴키를 누름으로써 소프트웨어에게 어떤 대답이 선택되었다는 것을 지시한다. 다른 사용자 프롬프트 스크린은 사용자에게 측정을 하고 특별한 값을 기입하거나 성분 동작 평가를 수행할 것을 요구하기도 할 것이다.
도 3은 고장원인분리 소프트웨어의 동작을 나타내는 플로우차트(50)로서, "규칙에 기초한 시스템(rule-based system)"을 위한 단계(54)와 QRS(Qualitative Reasoning System, 정성적 추론 시스템) 시스템을 위한 단계(58)로 나뉜다. 첫번째로 실행되는 것은 '규칙에 기초한 시스템'을 위한 단계(54)로서, 이것의 구현과 동작은 당해기술분야의 전문가에게 잘 알려져 있다. (「빌딩 전문가 시스템(Building Expert System)」, 저자: 프레드릭 헤이스-로스, 도날드 에이. 워터만, 더글라스 비. 레냇 편집: 애디슨- 웨슬리 출판사 독서모임, 1983). 이 '규칙에 기초한 시스템'은 통상의 고장과 그 고장의 증상에 대한 정보로써 프로그래밍되는 것으로서, 그 시스템이 검출하도록 프로그래밍된 고장의 판단에 있어서는 신속한 해답을 제시한다. 하지만, 복잡한 머신에 있어서, 고장원인과 그 증상의 가능한 모든 조합을 예상하기란 (그리고 고장원인과 그 증상의 가능한 모든 조합을 '법칙에 기초한 시스템'으로 프로그래밍시키는 것은) 불가능하거나 적어도 매우 비실제적이다. 그래서, '규칙에 기초한 시스템'으로서는 어떤 특별한 고장을 검출할 수 없을 수도 있다. 이러한 경우에, 시스템 제어는 '규칙에 기초한 시스템' 단계(54)로 부터 QRS 단계(58)로 넘어간다. QRS 시스템은 머신 고장원인과 그 증상의 가능한 모든 조합을 프로그래밍시키지 아니하고도 고장원인분리를 할 수 있다. 머신 고장원인분리를 위한 QRS 시스템에 대해서 미합중국 특허(특허번호 5,138,694, 해밀톤)에 개시되어 있고 여기서도 그것을 참조한다.
고장원인 분리 소프트웨어의 실행은 '법칙에 기초한 시스템'을 인에이블링시키는 초기단계(62)로 부터 시작한다. 다음 단계(63)는 테스트를 수행할 것을 사용자에게 프롬프팅한다. 단계(63) 다음에는, '규칙에 기초한 시스템'이 미리 프로그래밍된 법칙을 테스트 결과에 적용하므로써 고장원인분리를 시도하는 단계(64)로 제어가 넘어간다.
하나의 테스트에 의해 특정한 고장원인이 직접적으로 나타날 가능성도 있다. 예를들면, (하나의 규칙으로서 '만약 전지 양단의 전압이 영이면, 전지는 다쓴 상태이다'라고 가정 하면), '전지 양단의 전압이 영이다'라는 관측은 '다쓴 전지'라는 고장원인으로 직접 분리될 수 있다. 다른 테스트에서는, 고장원인은 가능한 고장원인의 그룹으로 분리될 수 있다. 예를들면, (적절한 규칙을 그 시스템에 프로그래밍한다면) '전지의 전압계가 영이다'라는 관측은 '전지가 다쓴 상태이다', '전압계가 오-동작을 한다' 또는 '전지와 전압계 사이의 전선이 끊어진 상태이다' 중의 하나를 나타낼 수도 있다.
단계(64) 다음에는, 고장원인이 분리되었는지의 여부를 판단하기 위한 테스트를 수행 하는 단계(65)로 제어가 넘어간다. 만약 어떤 단일의 성분에서 고장원인이 분리되면, 처리는 완료된다. 만약 어떤 단일의 성분에서 고장원인이 분리되지 않았다면, 더이상의 고장원리 분리가 가능한지 여부를 판단하기 위한 테스트를 수행하는 단계(66)로 제어가 넘어간다. 만약 그 분리가 더 가능하다면, 또 다른 테스트를 수행하도록 사용자를 프롬프팅시키는 단계(63)로 제어가 넘어간다. 소프트웨어가 고장원인분리를 계속하기 위해서 사용할 테스트를 수행하도록 사용자를 계속적으로 프롬프팅하는 단계(63-66)는 반복 루프를 형성한다.
하지만, '규칙에 기초한 시스템'의 본질적 한계 때문에 단계(66)에서 더이상의 고장 원인 분리를 할 수 없을 수도 있다. 즉 테스트와 그에 관련된 고장원인의 모든 가능한 조합이 그 시스템에 프로그래밍될 수 있는 것은 아니기 때문이다. 예를들면, '전지 양단의 전압이 12V이다', '전지 전압계는 영을 가르킨다' 및 '전압계는 고장나지 않았다'는 관찰을 하였다고 가정하여 보자. 만약 '규칙에 기초한 시스템'이 전압계와 전지 사이의 전선이 끊어진 상태라는 가능성을 고려하여 프로그래밍되어 있지 않다면, 난관에 봉착하게 될 것이다. 즉 그 테스트 결과는 '규칙에 기초한 시스템'을 프로그래밍할 예상했었던 어떠한 고장원인에도 대응하지 않을 것이다. 이렇게 된다면, '규칙에 기초한 시스템'을 디스에이블링하는 단계(67)로 제어가 넘어간다. 단계(66)에서 단계(67)로 넘어가는 것은 또한 '규칙에 기초한 시스템'의 단계(54)에서 QRS의 단계(58)로 넘어가는 것에 해당하기도 한다.
단계(67)에서 '규칙에 기초한 시스템'을 디스에이블링시킨 후, QRS 시스템을 인에이블링시키는 단계(68)로 제어가 넘어간다. 단계(68) 다음에는, QRS가 고장원인 분리를 시도하는 단계(69)가 있다. QRS의 고장원인 분리에 대해서는 다음에 자세히 설명한다. 단계(69) 다음에는, 고장원인이 분리되었는지 여부를 판단하는 단계(70)가 있다. 만약 고장원인이 분리되었다면, 처리는 완료한다. 그렇지 아니하면, 그 분리가 더 가능한지의 여부를 결정하기 위한 테스트를 수행되는 단계(71)로 제어가 넘어간다. 만약 QRS에 의한 더이상의 분리가 가능하지 않다면, 처리는 완료한다. 그렇지 아니하면, 또다른 테스트를 수행하도록 사용자를 프롬프팅하는 단계(72)로 제어가 넘어간다. '규칙에 기초한 시스템'의 단계(54)에서 QRS의 단계(58)로 넘어가는 것이 사용자에게는 보이지 않기 때문에 (즉 이렇게 단계가 넘어간 것이 사용자에게 알려지지 않기 때문에), 단계(72)에서 사용자가 보는 프롬프트는 단계(63)에서 보는 것과 유사하다. 제어는 단계 (72)로 부터, 머신고장원인 분리를 다시 시도하는 단계(69)로 되돌아간다.
대체적으로, 고장원인 분리를 위하여 단지 QRS 시스템만을 사용하는 것도 가능하다. 즉, '규칙에 기초한 시스템'의 단계(54)가 제거되고 단계(68)에서 부터 처리가 시작되는 QRS의 단계(58)만이 사용되어 고장원인 분리가 수행될 수도 있다. 따라서, QRS에 대한 다음의 논의는 '규칙에 기초한 시스템' 사용후 QRS를 사용하거나 또는 QRS만을 사용 하는 경우 모두에 적용된다. 또한 다음에 상세히 설명하는 바와 같이, '규칙에 기초한 시스템'의 부분을 QRS와 결합하여, QRS를 이용한 고장원인 분리를 수행하는 도중에 성분 동작 평가를 하도록 사용자를 프롬프팅시키는 것도 가능하다.
'규칙에 기초한 시스템'과는 달리, QRS는 테스트 결과를 특정 고장원인에 직접 대응시키지 않는다. 대신에, QRS는 머신에 대한 컴퓨터 모델을 이용하여, 반복적으로 특정 성분의 고장원인에 대한 가설을 세우고, 사용자의 테스트 결과로 부터 각각의 가설에 대하여 머신의 여러가지 파라미터(전류 흐름, 전압, 유속 등) 값을 예측하는 유도 과정을 수행한다. 만약 그 유도과정중의 어느 순간에 특정 가정에 대한 예측이 자체로 내지 후속되는 테스트 결과와 모순되는 것이 발견된다면, 그 가설은 기각된다.
QRS는 머신을 '정성물리(qualitative physics)'를 이용하여 기술한다. 이 정성물리는 일종의 컴퓨터 모델링 기법으로서 머신의 각 성분은 복수의 단자와 대응하는 변수집합을 가진 '암상(black box)'으로 대표되고, 각 변수는 단자를 유입-유출하는 실체(예, 전류, 연료 등)의 어떤 속성(예, 유속, 압력, 온도 등)을 대표한다. 각 변수는 정성값(qualitative value)의 유한집합에서 선택될 수 있다. 성분의 동작은 컨플루언스(confluence)로 정의되는데 이것은 성분의 변수들간의 상관관계를 정의하는 정성식(qualitative equation)의 집합이다. 예를들면, 파이프는 두개의 단자(즉 파이프의 양쪽 끝)와 두개의 변수(파이프로 유입하는 유체 흐름을 대표하는 것과 유출하는 것을 대표하는 것)를 가지는 것으로 나타낼 수도 있다. 파이프의 동작을 나타내는 어떤 컨플루언스는 '파이프에서 유출하는 것을 대표하는 변수가 유입하는 것을 대표하는 변수와 동일 부호를 갖는다' 라는 것으로 표현될 수 있다. 정성물리에 대한 더 많은 정보를 원한다면, 디클리어, 조안과 브라운, 존 실리의 "정성물리 법칙의 기원, 형식 및 논리"를 참조하라. (제 8차 국제 인공지능 회의(International Joint Conference on Artificial Intelligence)의회보, 1983년 8월, 서독, 칼스루헤).
수개의 변수와 그와 대응되는 컨플루언스를 정성적 및 정량적으로 함께 정의하는 것도 가능하다. 즉, 모델화되는 머신의 부분들은 제 1의 컨플루언스 집합을 정성변수(qualitative variable)를 이용하여 기술하고 제 2의 유사한 컨플루언스 집합을 정량변수를 이용하여 기술할 수 있다. 예를들면, 어떤 모타의 전압/속력 관계는, 정성적으로는 '만약 인가전압이 높으면 속력이 빠르고 인가전압이 낮으면 속력이 느리다'라고 기술할 수 있다. 전압과 속력을 나타내는 정성변수는 그 값으로서 각각 고/저 및 빠름/느림으로 택하여 질 수도 있다. 또한 동일한 모터에 대해서 정성변수(어떤 수치로 값을 가짐)를 사용하여 그 전압-정량변수와 속력-정량변수의 관계식에 따라 정량적으로 기술할 수도 있다. 주목할 것은, 동일한 컨플루언스를 이용하여 변수들간의 관계(즉 저항 양단의 전압은 저항과 전류의 곱)로서 정량적 관계와 정성적 관계를 동시에 기술할 수 있다는 것이다. 정성변수, 정량변수 및 컨플루언스를 결합시키는 것은 이후에 상세히 설명한다.
머신의 여러가지 성분은 계층적으로 그룹지워진다. 복잡한 성분은 복수의 하위 성분들로 구성되고, 기본적 성분은 아무런 하위 성분을 가지지 않는 것이다. 예를들면, 전원은 계층내의 어떤 레벨에서 단일 성분으로 나타낼 수도 있지만, 실제로 계층내의 더 낮은 레벨에서는 커패시터, 변압기 등 많은 수의 성분으로 구성된다. 계층의 최상위 레벨에는, 머신전체가 복잡한 단일 성분으로서 나타난다. 계층의 최하위 레벨에는, 머신을 구성하는 모든 기본적 성분들이 나타난다. 고장원인 분리의 프로시저를 최적화하는 방식으로 '모델 계층'을 변형시킬 수 있다.즉, 모델의 계층을 재배열하는 것이 가능하며, 그래서 계층내의 어떤 레벨에서의 복잡한 성분을 전개시킨 것이 물리적으로 존재하는 즉 그 복잡한 성분의 부분으로서 물리적으로 존재하는 하위 성분으로 반드시 되는 것은 아니다. 하위 성분은 복잡한 성분으로 부터 다른 것으로 이동하므로써 "재 부모화(reparent)"될 수 있다. 일 그룹의 성분은 현존하는 복잡한 모델의 성분으로서 계층내에 위치할 수 있는 슈도(pseudo)-성분으로 재-그룹지워질 수 있다. 동일한 '기능경로'의 일부분(동일한 기능을 수행하기 위하여 상호 연결되거나 함께 작동하는 것)인 성분들은 자동적으로 재-그룹지워진다. 공간적 근접성, 기능적 유사성 및 신뢰성 등(이것에만 제한되지는 않음)을 포함하는 다른 방식으로, 그에 관련되는 성분들을 재-그룹지울 수 있다. 모델 계층을 변형하는 것은 다음에 상세히 설명된다.
성분은 암상으로서 모델화되기 때문에, 고장원인 분리를 더 수행하기 위하여 계층의 더 낮은 레벨에서의 성분을 조사하는 것이 유용하다. (즉 좀더 많은 정보를 얻기 위하여 암상 내부로 들어감). 예를들면, 전원이 고장났다는 것을 판단한 후, QRS는 전원 성분을 하위 성분으로 전개하고, 계층내의 그 레벨에서 고장원인 분리의 프로시저를 계속한다.
특정 성분에 대한 여러가지의 컨플루언스에 의해 정의된 '상관 관계'는 소위 "제약 조건"이라고 불린다. QRS는 특정 성분의 제약조건을 보류(즉, 제거)한 것이 그 성분의 고장에 미치는 효과를 계산한다. 예를들면 세개의 성분(X, Y, Z)을 가진 임의의 머신에 대하여, QRS는 '성분(X)이 고장이다'라는 가설을 테스트하기 위하여 성분(X)이 보류된 제약조건의 컨플루언스를 가지는 머신의 정성물리적 모델을만든다. 즉 이것은 고장나지 않았다고 가정되는 성분(Y, Z)에 대한 컨플루언스만을 포함하는 머신모델을 의미한다. 그다음, QRS는 그 컨플루언스와 사용자가 수행한 테스트 결과를 이용하여 변수의 예상되는 값으로 이루어지는 예측집합을 만든다. 만약 결과적으로 그 예측에 모순성이 없다면, X는 유효한 가설로 된다. 그렇지 않으면 X는 가설로서 제거된다. 만약 후속 테스트에 대응된 변수값과 예측이 서로 모순된다면, 그 가설은 제거될 것이다. '제약조건의 보류'에 관한 깊은 논의는 데이비스, 랜달의 "구조와 행동에 기초한 진단 추론" (학술지「인공지능」24 (1984), 347-410)을 참조하라.
QRS는 '머신의 어떠한 성분도 고장나지 않았다'라는 가설로 부터 시작한다. 만약 이 가설로 부터 발생된 예측이 무모순성을 갖는다면, QRS 소프트웨어는 '아무런 고장도 없다, 고장원리분리 프로시저를 종료하라'는 결론을 내린다. 만약 그렇지 아니하면, QRS는 머신의 단일 성분의 고장에 각각 대응하는 복수의 가설을 설정한다. 이들 각각의 가설에 대응하는 예측이 발생되고, 무모순성에 대한 테스트가 행해진다. 만약 단일 성분에 대한 가설들에 대응하는 예측들 모두가 모순성을 갖는다면(즉 모든 가설이 거짓으로 판명된다면), QRS 소프트웨어는 두개의 머신 성분들이 동시에 고장난 것에 대응하는 새로운 가설 집합을 설정한다. 만약 그 이중 성분에 대한 예측들 모두가 모순된다면, QRS 소프트는 세개의 성분이 동시에 고장난 것에 각각 대응하는 새로운 가설집합을 설정한다. 이러한 방식으로 가설 설정이 계속될 수 있다.
예를들면, 세개의 성분(A, B, C)을 가진 머신에 대하여, QRS는 초기에 '아무런 성분도 고장나지 않았다'는 가설을 바탕으로 한 컨플루언스 집합을 설정한다(즉, 모든 성분에 대해 모든 컨플루언스를 유지할 수 있다는 것임). 그다음, QRS는 그 가설에 대해 예측을 판단하고, 대응하는 예측들의 무모순성을 테스트한다. 만약 가설에 기초한 예측들이 모순이 없다면, '아무런 성분도 고장나지 않았다'는 가설은 증명된 것이고 고장원인 분리의 프로시저는 종료한다. 그렇지 아니하다면, QRS는 세개의 새로운 가설을 설정한다. 즉 '성분(A)만 고장남', '성분(B)만 고장남' 및 '성분(C)만 고장남' 등의 가설이다. 그다음에, QRS는 가설(A)에 대한 예측, 가설(B)에 대한 예측 및 가설(C)에 대한 예측 등 3개의 예측 집합을 발생시킨다. 가설(A)에 대한 예측은 가설(A)가 참일 때의 변수(즉, 전류흐름, 유체흐름, 전압 등의 머신 파라미터)의 예측된 값이다. 마찬가지로, 가설(B)에 대응하는 예측은 가설(B)이 참일 때의 변수의 예측된 값이고, 가설(C)에 대응하는 예측은 가설(C)이 참일 때의 변수의 예측된 값이다. 만약 가설(A)에 대응하는 예측이 모순된다면, '성분(A)이 고장났다'는 가설은 모순되는 것이고 가설(A)은 유효 가설의 항목에서 제거된다. 만약 B 및 C에 대응하는 예측이 모순이 없다면, 성분(B 또는 C)이 고장났는지의 여부를 판단하기 위하여, 고장원인 분리가 계속 요구된다.
상기 예에서, 머신의 성분이 하나 이상의 동시에 고장났다는 결론을 유추하면, QRS는 가설(A, B, C)을 제거할 수 있다. 그다음에, QRS는 새로운 3개의 가설을 설정한다. '성분(A, B)이 동시에 고장났다'는 가설(AB)과 '성분(A, C)이 동시에 고장났다'는 가설(AC)와 '성분(B, C)이 동시에 고장났다'는 가설(BC)이 그것이다. 그다음에, QRS는 이들 가설을 이용하여 고장원인분리를 시작한다. 복잡한 머신에 대하여는, 가설의 증가에 따라 고장난 성분의 수가 증가하기 때문에, 이러한 처리는 컴퓨터에 의존하여 수행된다. QRS가 N개의 성분 가설 모두를 기각했을 경우, QRS 소프트웨어가 N+1개의 성분 가설을 세우고 테스트할 것인지 또는 고장원인분리 종료할 것인지를 사용자에게 질문한다. 사용자는 QRS가 새로운 가설 집합을 세우고 테스트할 것을 기다리지 않기를 바랄 수도 있다.
도 4는 QRS의 동작을 나타내는 데이타플로우 다이어그램(90)이다. 다이어그램(90)의 박스는 프로그램 모듈(즉 QRS 소프트웨어의 부분)을 나타내고, 원통은 데이타 요소(즉 QRS 데이타 부분)를 나타낸다. 박스와 원통 사이의 화살표는 데이타의 흐름의 방향을 나타낸다. 플로우차트와 달리, 데이타플로우 다이어그램(90)의 어떤 부분도 그 모듈들 사이의 시간적 상관 관계를 나타내지 않는다.
사용자가 제공하는 테스트 결과는 입력신호('사용자 입력' 다이어그램(90)에 도시됨) 로서 QRS에 제공된다. 사용자입력-신호는 입력 처리-코드 모듈(92)에 의해 처리된다. 이 모듈은 사용자가 기입한 자판의 내역을 QRS 소프트웨어가 처리할 수 있는 포멧으로 변환시킨다. 입력처리 모듈(92)의 출력은 테스트 결과-데이타 요소(94)에 저장된다. 이 데이타 요소는 고장원인 분리 프로시저 중에 사용자에 의해서 수행된 테스트의 결과를 포함한다. 만약 고장원인분리를 위하여 '규칙에 기초한 시스템'이 QRS 이전에 사용된다면, 그 테스트 결과-데이타 요소(94)는 고장원인 분리 처리의 '규칙에 기초한 시스템' 단계 동안에 사용자에 의해 수행된 테스트의 결과를 나타내는 데이타로 초기화될 수도 있다.
가설 테스트-코드 모듈(96)은 테스트 결과-데이터 요소(94) 및 잠정가설-데이타 요소(98)를 이용하여 가능성 높은 유효가설 및 그 가설에 대한 예측을 발생시킨다. 잠정가설-데이타 요소(98) 테스트될 가설을 포함한다. 가설 테스트 모듈(96)은 가설에 대해 참으로 될 수 있는 예측이 참일 수 있다라고 발생시키기 위하여 테스트 결과에 대응하는 변수 값을 그 가설의 컨플루언스를 통하여 전달하므로써 그 가설을 테스트한다. 가설 설정의 처리 과정중에, 가설 테스트 모듈(96)은 모순성을 찾을 수 있다. 예를들면, 컨플루언스의 다른 부분집합이 두개의 특정한 점간의 전압을 음의 값으로 예측하는 반면에, 컨플루언스의 어떤 부분집합은 그 동일한 점간의 전압을 양의 값으로 예측할 수 있다. 이러한 경우에, 테스트되는 가설은 부정되고 가설 테스트 모듈(96)에 의해 기각된다. 가설 테스트 모듈(96)에 의해 부정될 수도 있는 잠정가설-데이타 요소(98)로 부터의 하나 가설 및 그에 대응하는 예측은 저장된 가설-데이타 요소(99)로 출력된다.
예를들면, 잠정가설-데이타 요소(98)가 가설(A)을 포함한다고 가정하자. 가설 테스트 모듈(96)은 가설의 유효성을 다음과 같이 테스트한다. 즉 성분(A)을 보류시킨 제약조건을 가진 머신 모델(즉 성분(A)의 동작을 기술하는 컨플루언스는 제어되고 그외의 모든 성분 컨플루언스는 포함되는 모델)을 조사하고, 그다음에 변수값을 예측한다. 만약 가설(A)에 대한 예측을 추론하는 과정중에 가설 테스트 모듈(96)이 모순성을 찾아낸다면, 가설(A)은 부정된다. 그러하지 아니하면, 가설(A)과 그에 대응하는 예측은 저장된 가설-데이타 요소(99)로 출력된다.
만약 저장된 가설-데이타 요소(99)가 하나 이상의 가설을 포함한다면, 어떤 가설이 제거되어야 하는 가에 대한 정보를 제공하기 위하여 사용자가 추가적인 테스트를 수행 하는 것이 유용하다. 지능 테스트 선택-코드 모듈(100)에는 저장된 가설-데이타 요소(99) 및 성분 정보-데이타 요소(101)가 입력을 제공한다. 성분 정보-데이타 요소(101)는 특정 테스트 과정의 정보와 각 성분의 '성분 고장율'과 같은 실험 데이타를 포함한다. 지능 테스트 선택-모듈(100)은 사용자가 수행할 최선의 테스트(즉 고장원인 분리의 정도를 최대화하는 한편 사용자에 수행할 그 테스트의 비용을 최소화할 테스트)를 결정하기 위하여 성분 정보-데이타 요소(101)로 부터의 가설 예측 및 정보를 이용한다. 지능 테스트 선택 모듈(100)은 최선의 테스트에 관한 정보를 테스트 요구-데이타 요소(102)로 출력한다. 테스트 요구-데이타 요소(102)로부터 데이타를 받은 출력 처리 코드 모듈(103)은 테스트 요구-데이타 요소(102)를 사람이 읽을 수 있는 형식으로 변환시키고, 사용자를 프롬프팅시키는 디스플레이 출력-신호(사용자가 수행할 다음 테스트가 무엇인지를 나타내는 프롬프트를 일으킨다)를 PMA(30)의 디스플레이 장치(32)에 제공한다. 사용자가 제공한 테스트 결과는 저장된 가설-데이타 요소(99)내에 저장된 가설중에서하나 이상의 것을 가려낸다. 가설갱신모듈(104)은 저장된 가설-데이타 요소(99)에 저장된 가설과 그에 대응하는 예측을 조사하고 각각의 가설에 대한 예측을 사용자가 기입한 테스트 결과(94)에 대응하는 변수값과 비교한다. 가설갱신모듈(104)은 모순되는 예측을 가지는 가설을 제거한다. 또한 가설갱신모듈(104)은 사용자에 의해 수행되고 테스트 결과-데이타 요소(94)에 제공되는 성분 동작평가를 바탕으로 정확히 동작하는지가 실험적으로 판단되는 고장난 성분에 대응하는 가설을 제거한다. 예를들어, 저장된 가설-데이타 요소(99)가 가설(A, B, C)을 포함하고, 가설(A)이 특정 전압을 양의 값으로 예측하고, 가설(B)이 동일한 전압을 음의 값으로 예측하고, 가설(C)이 그 전압값에 대해 모호한 예측(즉 음 또는 양의 값을 가질 수 있다는 예측)을 한 경우를 가정하여 보자. 또한 지능 테스트 선택 모듈(100)이 최선의 테스트로 될 전압 측정-테스트를 선택하고, 프롬프팅된 후 사용자가 그 전압을 양의 값이라고 기입한 경우를 가정하자. 그러면, '그 전압이 음의 값이다'라고 하는 가설(B)에 대한 예측은 잘못된 것이고 그에 의해 가설(B)은 부정되기 때문에 가설갱신모듈(104)은 저장된 가설-데이타 요소(99)로 부터 가설(B)을 제거할 수 있다. 가설(A)은 그 전압이 양의 값이다 라고 올바르게 예측하였기 때문에, 가설(A)은 저장된 가설-데이타 요소(99)에 계속 남는다. 가설갱신모듈(104)은 가설(C)을 제거할 수는 없다. 왜냐하면 가설(C)은 양일 수도 있고 음일 수도 있다고 예측하기 때문이다.
지능 테스트 선택 모듈(100)은 사용자가 수행할 테스트로서 '저장된 가설'-데이타 요소(99)내에 저장된 가설중의 어떤 것을 제거하는 테스트를 아무것도 발생시킬 수 없을 가능성도 있다. 이러한 경우에, 가설설정모듈(105)은 테스트 요구-데이타 요소(102)가 빈 상태임을 검출하면, 저장된 가설-데이타 요소(99)내의 가설에 대응하는 하나 이상의 성분을 하위 성분으로 전개하고 그 하위 성분을 기초하는 가설을 설정하므로써, 계속 가설을 설정하는 시도를 한다. 가설설정모듈(105)은 성분의 계층 오더링에 관한 정보와 성분의 정성물리적 내역을 포함하는 모델 예시데이타 요소(106)를 이용한다. 모델 예시-데이타 요소(106)의 구조와 내용에 대해서는 다음에 상세히 설명한다. 모델 예시-데이타 요소(106)로 부터의 정보는 성분 정보-데이타 요소(101)를 초기화하는데 이용될 수 있다. 가설설정모듈(105)의 출력은 잠정가설-데이타 요소(98)에 제공된다.
예를들면, 저장된 가설-데이타 요소(99)가 머신의 전원의 고장에 대응하는 제1 가설과 머신의 연료장치의 고장에 대응하는 제2 가설을 포함한다고 가정하자. 또한 최선 테스트선택-코드모듈(100)이 테스트 요구-데이타 요소(102)가 빈 상태를 발생시키고 두개를 구별하기 위하여 수행할 테스트를 사용자에게 제공할 수 없다고 가정하자. 그러면 가설설정모듈(105)은 테스트 요구-데이타 요소(102)가 빈 상태임을 검출하고 그 전원을 하위 성분(즉, 커패시터, 변압기 등)으로 전개하고 그 연료장치를 그에 대한 하위 성분으로 전개한다. 그 하위 성분에 바탕을 둔 새로운 가설집합이 생성된다. 가설설정모듈(105)이 잠정가설-데이타 요소(98)에게 (언젠가) 제공하게 될 그 새로운 가설집합은 가설 테스트 모듈(96)에 의해 테스트되고, 테스트를 위해 사용자를 프롬프팅하고 가설을 제거하는 등의 반복적인 처리가 계속된다. 주목할 것은, 저장된 가설-데이타 요소(99)가 하나 이상의 기본적 성분의 고장을 가정한 단 하나의 가설을 포함한 경우 또는 비용절약 테스트가 더이상 수행될수 없는 경우에 고장원인 분리의 프로시저는 완료한다는 것이다.
가설 테스트 모듈(96)이 잠정가설-데이타 요소(98)에 저장된 가설 모두를 제거하는 것도 가능하며, 그렇게 되면 저장된 가설-데이타 요소(99)는 빈 상태로 된다. 이것은 가설에 대한 고장난 성분의 수가 가정된 것보다 클 경우에 일어난다.동시에 고장난 N개의 성분에 대응하는 모든 가설을 제거한다는 것은 N개 이상의 머신 성분이 고장 났다는 것을 의미한다. 예를들면, 만약 단일 성분의 고장에 대응하는 모든 가설이 가설 테스트 모듈(96) 및/또는 가설갱신모듈(104)에 의해서 제거된다면, 논리적으로 하나 이상의 성분이 동시에 고장났다고 할 수 있다. (주목할 것은, '아무런 성분도 고장나지 않았다'라는 가능성 여부는 초기에 테스트된다.)
N개 성분 고장에 대응하는 가설의 전체집합이 가설 테스트 모듈(96)에 의해 부정된 경우에, 가설설정모듈(105)은 사용자가 연속 테스팅 쿼어리-데이타 요소(107)에 사용자 프롬프트 정보를 기록하므로써 N+1개의 성분 고장에 대응하는 가설의 새로운 집합을 설정하는 것을 허락한다. 연속 테스팅 쿼어리-데이타 요소(107)는 디스플레이 장치(32)로의 출력을 위하여 그 쿼어리-데이타 요소(107)를 사람이 읽을 수 있는 포멧으로 변환 시키는 출력처리모듈(103)에 대한 입력으로 제공된다. 그 질문에 대한 사용자의 응답은 사용자 입력신호로서 제공되고, 입력처리모듈(92)에 의하여 처리되고, 연속 테스팅 응답-데이타 요소(108)에 저장된다. 만약 사용자가 연속 테스팅을 하지 않을 것을 선택하면, 고장원인분리는 완료된다. 만약 그렇지 아니하면, 연속 테스팅 응답-데이타 요소(108)는 가설설정모듈(105)에 대한 입력으로 제공되고, 그 가설설정모듈(105)이 모델 예시-데이타 요소(106)로 부터의 정보를 이용하여 새로운 가설집합을 만들어내도록 하게 한다. 그 새로운 가설집합은 동시 고장난 성분 수가 하나 증가한 것에 대응하는 것이다.
가설설정모듈(105)은 또한 잠정가설-데이타 요소(98)에게 저장된 가설-데이타 요소(99)로 부터의 가설을 제공할 수 있다. 가설설정모듈(105)은 '저장된 가설-데이타 요소(99)가 현재 사용자에게 수행 요구되는 테스트의 결과에 대응하는 변수에 대해 모호한 예측을 만들어내는 가설을 포함하는지'의 여부를 판단하기 위하여, 테스트 요구-데이타 요소(102)에 의해 제공되는 입력을 이용한다. 가설 테스트 모듈(96)에 의해 재-테스팅되기 위하여 최근에 얻은 변수값에 대해 모호한 예측을 만들어낸 가설은 저장된 가설-데이타요소(98)로 부터 잠정가설-데이타 요소(98)로 넘겨진다. 재-테스팅된 어떤 가설은 새로운 변수값을 이용하므로써 무효화될 수도 있다.
어떤 경우에는, 테스팅될 머신이 하나 이상의 '동작 구성'을 가질 수도 있다. 고장원인 분리도중에, 사용자는 머신의 동작구성이 변경되도록 하는 방식으로 머신제어입력을 변경하도록 프롬프팅될 수 있다. 또한 사용자는 성분을 제거하거나 성분을 뛰어넘는 점퍼를 설치하므로써 머신의 하나 이상의 성분을 의도적으로 변경시키는 '인베이시브(invasive) 테스트'를 수행하도록 프롬프팅될 수도 있다. 어떤 구성으로 머신이 있을 때 얻어진 많은 테스트 결과는 머신이 그와 다른 구성으로 있을 때 그 머신은 분석하기 위해서는 유효하지 않다. 예를들면, 어떤 머신은 기본 전원 모드와 백업파워모드를 가질 수 있다. 기본 전원 모드에 머신이 있을 때 그 기본 전원선에서 측정된 전압은 머신이 백업전원모드로 전환된 후에는 고장원인분리를 위해서 유효하지 않을 수도 있을 것이다.
복수의 동작 구성을 가진 머신에 대해서는, 특정한 머신동작구성에 각각의 (테스트 결과 및 예측의) 특정 집합을 대응시켜 별도의 테스트 결과 및 예측의 집합을 유지하므로써 고장원인분리가 수행될 수 있다. 머신이 구성을 변경하게 하는 테스트가 수행될 때, 현재의 테스트 결과와 예측은 저장되고, 다른 집합이 그것을 대체하고 고장 원리 분리처리를 계속 수행하는데에 이용된다.
머신 구성-데이타 요소(110)는 입력처리코드모듈(92)에 연결되고 그것으로 부터의 입력을 수신한다. 다음에 상세히 설명될 어떤 조건하에서는, 사용자는 머신 구성을 관찰하고 그것을 기입하도록 또는 머신에의 제어 입력을 변경하고 그 변경내역을 확인하도록 프롬프팅된다. 이러한 두 경우에 있어서, 입력처리코드모듈(92)은 특정된 머신구성(예, 백업전원모드, 기본전원모드등)을 결정하고, 그 특정 머신구성을 나타내는 머신구성-데이타 요소(110)로 데이타를 제공한다. 복수의 구성을 가지고 동작하는 머신에 대하여, 사용자는 고장원인분리의 프로시저를 시작하는 때에 초기구성을 기입하도록 프롬프팅될 수 있다.
머신구성-데이타 요소(110)로 부터의 데이타는 테스트 결과 저장 코드 모듈(112)에 제공된다. 테스트 결과 저장 모듈(112)은 머신구성의 변경(즉 현재의 머신구성이 그전반복에서의 머신구성과 다른 지의 여부)을 검출한다. 머신구성의 변경은 테스트 결과 저장 모듈(112)이 테스트 결과-데이타 요소(94)로 부터 저장된 테스트 결과-데이타 요소(114)로 데이타를 전송하도록 하게 한다. 그 저장된 테스트 결과-데이타 요소(114)는 머신이 다른 구성에서 동작할 때의 테스트 결과의 집합을 포함한다.
테스트 결과 저장 모듈(112)은 또한 테스트 결과-데이타 요소(94)내에 저장된 데이타를 현재의 머신구성에 대응하는 저장된 테스트 결과-데이타 요소(114)로 대체한다. 즉 머신구성이 변경되었을 때, 머신이 현재의 구성에 있을 때 고장원인 분리 과정중에 얻어졌던 저장된 테스트 결과-데이타 요소(114)내에 저장된 테스트 결과는 테스트 결과-데이타 요소(96)로 전송된다. 만약 현재의 머신구성에 대응하는 테스트 결과 데이타가 아무것도 없다면, 구성변경을 일으켰던 제어입력을 제외하고는 아무런 테스트 결과도 아직 얻지 못했음을 나타내도록 테스트 결과-데이타 요소(94)내의 데이타를 초기화한다.
예를들면, 머신이 구성(A)에 있을 때 고장원인 분리가 시작된다고 가정하자. 테스트 결과 집합이 얻어지고, 사용자는 머신의 구성을 구성(B)으로 변경시키는 테스트를 수행하도록 프롬프팅된다. 테스트 결과 저장 모듈(112)은 테스트 결과-데이타 요소(94)로부터 저장된 테스트 결과-데이타 요소(114)로 데이타를 저장하고, 머신이 구성(B)에 있을 때 상기 언급한 것처럼 구성을 변경시키는 제어입력에 관련된 테스트 결과(예, 기본전원모드에서 백업전원모드로 전환시키는 스위치)를 제외하고는 아무런 테스트 결과도 아직 얻어지지 않았음을 나타나도록 테스트 결과-데이타 요소(94)내의 데이타를 초기화한다. 만약 약간의 반복과정후에 사용자가 머신을 구성(B)에서 구성(A)으로 다시 변환시키는 테스트를 수행하도록 프롬프팅된다면, 테스트 결과 저장 모듈(112)은 구성(B)의 테스트 결과 집합은 테스트 결과-데이타 요소(94)로 부터 저장된 테스트 결과-데이타 요소(114)로 전송할 것이며, 구성(A)에 대응하는 테스트 결과 집합을 저장된 테스트 결과-데이타 요소(114)로 부터 실제의 테스트 결과-데이타 요소(94)로 복구시킬 것이다.
머신 구성-데이타 요소(110)로 부터의 데이타는 또한 예측 테이블 저장 모듈(116)에 제공된다. 머신구성의 변경에 응답하여, 예측 테이블 저장 모듈(116)은 저장된 가설-데이타 요소(99)내의 각각의 가설에 대응하는 가설 예측 테이블(이후 상세히 설명됨)을 저장된 예측 테이블-데이타 요소(118)로 전송한다. 저장된 예측 테이블-데이타 요소(118)는 저장된 테스트 결과-데이타 요소(114)와 유사하고, 다른 머신구성에 대응하는 저장된 가설-데이타 요소(99)내에 저장된 가설에 대한 예측집합을 포함한다. 제1 집합을 선택하기 전에, 저장된 예측 테이블-데이타 요소(118)는 어떤 테스트에 의해 머신이 가질 수 있는 가능한 모든 구성에 대한 각각의 가설에 대응하는 예측 테이블 집합으로서 초기화된다. 저장된 가설-데이타 요소(99)로 부터 예측 테이블을 전송한 후, 예측 테이블 저장 모듈(116)은 저장된 예측 테이블-데이타 요소로 부터 저장된 가설-데이타 요소(99)내의 예측 테이블로 예측 테이블을 복구시킨다.
사용자가 수행한 이전의 테스트 단계를 추적하므로써 고장원인 분리의 프로시저를 최적화하는 것이 가능하다. 예를들면, 만약 테스트를 수행하기 위하여 사용자가 '접근 판넬'을 제거하면, 그 접근 판넬이 이미 그 머신에서 제거되었기 때문에 동일한 접근 판넬을 제거할 것을 요구하는 제 2의 테스트를 수행할 때 시간이 절약될 것이다. 테스트 구성-데이타 요소(119)는 입력 처리 코드 모듈(92)로 부터의 데이타가 제공된다. 테스트 구성-데이타 요소(119)는 머신의 현재의 테스트 구성(즉, 테스팅 중에 제거된 판넬과 성분, 점퍼의 설정위치, 사용자에게 이미 접근된 도구 등)을 나타내는 데이타를 포함한다.
테스트 구성-데이타 요소(119)로 부터의 데이타는 최선 데스트 선택 코드 모듈(100)에 제공된다. 최선 테스트 선택 코드 모듈(100)은 성분의 현재의 테스트구성에 부분적으로 기초하여 사용자가 수행한 최선의 테스트를 선택할 수 있도록 하는 정보를 이용한다. 머신 테스트 구성-데이타 요소(119)와 관련한 최선 테스트 선택 코드 모듈(100)은 다음에 상세히 설명한다.
제5A도는 QRS 소프트웨어에 의해 이용되는 데이타의 구조를 나타낸다. 잠정가설-데이타 요소(98)내에 저장된 데이타를 나타내는 잠정가설 데이타 구조(120)는 가설식별요소(122B), 예측 테이블(122C) 및 캐싱된 컨플루언스 테이블(122D)로 구성된 잠정가설(122A)을 포함한다. 가설식별요소(122B)는 특정된 잠정가설을 식별하기위한 정보를 포함한다. 예를들면, 가설식별요소(122B)는 전원고장으로 가정된 가설로서 잠정가설(122A)을 식별할 수 있다.
예측 테이블(122C)은 잠정가설(122A)에 대응하는 모든 변수(즉, 머신 파라미터)를 포함한다. 예측 테이블(122C)은 가설설정모듈(105)에 의해 구축되고, 그것은 가설이 만들어질 때 그 가설의 모든 변수를 결정한다. 초기에, 예측 테이블(122C)은 만약 존재한다고 하더라도 매우 적은 변수값을 포함한다. 하지만 가설이 테스팅될 때마다, 더많은 테스트 결과가 가능하게 됨에 따라 가설 테스트 모듈(96)은 예측 테이블(122C)의 변수에 대한 값을 더 많이 예측한다.
캐싱된 컨플루언스 테이블(122D)은 잠정가설(122A)에 대한 모든 모델 컨플루언스를 포함한다. 캐싱된 컨플루언스 테이블(122D)은 예측 테이블(122C)로 부터의 각각의 변수에 의해 색인될 수 있다. 캐싱된 컨플루언스 테이블(122D)의 요소들은 '색인 변수'가 나타나는 모든 모델 컨플루언스를 포함하고, 그것에 의해서 가설 테스트 모듈(96)내에 가설에 대응하는 컨플루언스에 신속접근을 위한 수단을 제공한다.
어떤 경우에는, 변수와 그에 대응하는 컨플루언스가 정성 및 정량적인 정보 모두로 표현될 수 있다. 그래서, 캐싱된 컨플루언스 테이블(122D)내의 어떤 캐싱된 컨플루언스는 머신 성분의 동작을 기술하는 데에 정성적 및 정량적으로 이용될 수 있다. 동작이 정성적 또는 정량적으로 수행될 것인지는 그 컨플루언스에 대한 입력변수의 값이 정성값인지 정량값인지에 따라 결정된다. 예를들면, 저항의 동작을 기술하는 어떤 컨플루언스가 '전압은 저항과 전류의 곱이다'라고 할 수 있다. 만약 저항과 전류가 정량값(예, 3A, 5Ω)으로 주어지면, 전압은 정량값인 15V로 계산된다. 한편 만약 전류와저항이 단지 정성값(예, 둘다 "+")으로만 주어지면, 그 전압은 정성적으로 "+"로 계산된다. 또한 만약 저항이 1Ω 이상으로 주어지고 전류가 5A 이상으로 주어지면, 전압은 정성적 및 정량적 계산이 혼합된 방식으로 '5V 이상'이라고 계산된다. 컨플루언스를 통하여 정량값 및 정성값이 전달되는 것에 대하여 다음에 상세히 설명한다.
저장된 가설-데이타 요소(99)에 저장된 가설-데이타 구조(123)는 제1 현재 가설(124A), 제2 현재가설(125A)과 제N 현재가설(126A)을 포함한다. 제1 현재가설(124A)은 가설 식별요소(124B), 예측 테이블(124C) 및 캐싱된 컨플루언스 테이블(124D)을 포함한다. 마찬가지로, 제2 현재가설(125A)은 가설식별요소(125B), 예측 테이블(125C) 및 캐싱된 컨플루언스 테이블(125D)을 포함한다. 제N 현재가설(126A)은 가설식별요소(126B), 예측 테이블(126C) 및 캐싱된 컨플루언스 테이블(126D)을 포함한다. 가설식별요소(124B, 125B, 126B)는 특정된 '저장된 가설'을 식별하기 위한 정보를 포함하고, 잠장가설(122A)의 가설식별요소(122B)와 유사하다. 예측 테이블(124C, 125C, 126C)은, 가설 테스트 모듈(96)이 어떤 변수에 대하여 그 값을 제공하는 것만을 제외하면, 잠정가설(122A)로 부터의 예측 테이블(122C)과 유사하다. 캐싱된 컨플루언스 테이블(124D, 125D, 126D)는 잠정가설(122A)로 부터의 캐싱된 컨플루언스 테이블(122D)와 유사하다.
제5B도는 예측 테이블(122C)의 변수에 대응하는 테스트 프로시저-데이타 구조를 나타내는 다이어그램(128)이다. 이하에 상세히 설명되는 것처럼, 모델 예시-데이타 요소(106)의 구축과정은, 모델의 변수 및/또는 성분을 위한 하나 이상의 테스트 처리를 개별적으로 특정하는 것을 포함한다. 어떤 경우에, 사용자가 특정 변수(예, 머신 내부가 받는 마찰력 등)를 측정하거나 테스팅할 필요가 없는 경우도 있다. 이러한 경우에는, 그 특정변수에 대한 테스트 처리는 제외될 것이다.
테스트 프로시저-데이타 구조는 TP1, TP2, ..., TPN을 포함하는 항목으로서 다이어그램(128)에 도시되어 있다. 각각의 테스트 프로시저-데이타 구조는 사용자에 의해서 그 대응하는 변수 및 성분이 어떻게 테스팅될 수 있는 가를 나타내는 데이타를 포함한다. 예를들면, 만약 변수(V1)가 저항을 통해 흐르는 전류의 흐름을 나타낸다면, 대응하는 테스트 프로시저는 사용자가 그 전류를 측정하도록 프롬프팅한다. 이하에 상세히 설명한 바와 같이, 테스트 프로시저는 성분 동작 평가(예, 저항이 타버렸는지의 여부의 육안 판단)를 포함할 수 있다.
각 테스트 프로시저에는 복수의 테스트 단계가 대응한다. 예를들면, 다이어그램(128)은 테스트 단계(TS1A, TS1B 등)와 링크된 테스트 프로시저-데이타 구조(TP1)를 도시한다. 각 테스트 단계는 대응하는 테스트 프로시저 실행과정에서 사용자가 수행해야 단일의 행동을 나타낸다. 예를들면, 어떤 테스트 단계는 사용자에게 '접근판넬을 제거하라' 또는 '흐름을 관찰하라' 등의 명령을 제시한다. 사용자가 적절한 행동을 취하도록 프롬프팅시키기 위한 텍스트는 각 테스트 단계와 함께 저장된다. 테스트 단계는 또한 비용(예, 시간)과 관계된다. 각 테스트 단계의 비용을 이용하여 사용자가 수행할 최적의 테스트를 결정하는 것은 다음에 상세히 설명한다.
테스트 프로시저 데이타는 테스트가 수행될 수 있게 되기 전에 수행되어야 하는 하나 이상의 전단계를 나타내는 데이타를 포함할 수 있다. 예를들면, 백업 전원과 관련된 테스트를 수행하기 전에 머신을 기본전원을 디스에이블링시키고 모든 전력이 백업전원에 의해서 제공되도록 하는 구성으로 설정시키는 작업이 필요할 수도 있다. 전 단계는 사용자에게 그 대응하는 테스트를 설정하기 위한 적절한 단계를 수행하도록 지시한다. 테스트 프로시저는 그 테스트 프로시저 후에 수행될 후단계를 포함할 수도 있다.
도 6은 가설 테스트 모듈(96)의 동작을 나타내는 데이타 플로우의 다이어그램(130)이다. 상태발생모듈(132)에는 테스트 결과-데이타 요소(94) 및 잠정가설-데이타 요소(98)로 부터의 입력이 제공된다. 상태발생모듈(132)은 테스팅될 특정한 가설을 위한 예측 테이블을 포함하는 예측 데이타 요소(134)를 생성하기 위하여 테스트 결과(94) 및 잠정가설(98)을 처리한다. 상태발생모듈(132)은 예측 테이블을 (잠정가설-데이타 요소(98)로 부터) 어떤 변수에 대한 값으로 채우므로써 예측 데이타 요소(134)를 생성한다. 그 변수값은 테스트 결과(94) 및 잠정가설-데이타 요소(98)로 부터의 캐싱된 컨플루언스를 처리하므로써 결정된다. 만약 상태발생모듈(132)이 예측-데이타 요소(134)를 위한 값을 예측하는 시도를 하면서 어떤 모순성을 검출한다면, 예측 테이블 대신에 널-테이블(null table)이 예측-데이타 요소(134)내에 저장된다. 값의 실제 계산은 모델 컨플루언스를 나타내는 'Common Lisp' 식을 조작하므로써 수행된다. 'Common Lisp 식'의 조작은 당해기술분야의 전문가에게 잘 알려져 있다.
가설평가모듈(136)에는 예측-데이타 요소(134)로 부터의 데이타 및 잠정가설-데이타 요소(98)로 부터의 데이타가 제공된다. 각 가설에 대하여, 가설평가모듈(136)은 예측 데이타 요소(134)가 널-테이블을 포함하는지의 여부를 판단한다. 만약 그러하지 아니하면, 가설 평가 모듈(136)은 그 가설(잠정 가설-데이타 요소(98)로 부터 온 것) 및 대응하는 예측 테이블(예측 데이타 요소(134)로 부터 온 것)을 저장된 가설-데이타 요소(99)로 보낸다. 그렇지 아니하면, 테스팅될 그 가설은 유효하지 않게 된 것이고 저장된 가설-데이타 요소(99)로 보내어지지 않는다.
주목할 것은, 상기 언급한 것처럼, 어떤 컨플루언스 변수는 정성적 또는 정량적으로 표현되는 것이 가능하다는 것이다. 예를들어, 도선을 통하여 흐르는 전류를 나타내는 변수(V1)는 변수값 공간{-_, -최대, -최소, 영, 최소, 최대, +_}에서 취해지는 정성적 값으로 나타낼 수 있다. 상기 동일한 변수(V1)는 또한 음의무한대로 부터 양의 무한대 까지의 실수인 정량값으로 나타낼 수 있다. 만약 사용자가 V1을 직접 측정하고 그 정량값을 기입하거나 또는 만약 사용자가 V1에 대한 값을 계산하기 위하여 사용되는 다른 변수를 정량적으로 측정하고 기입하면, 정량값이 V1에 부여될 수 있다. 예를들면, 만약 특정한 컨플루언스가 'V1은 변수(V2)의 2배이다'라고 나타내고 V2가 정량적으로 측정 되고 기입된다면, V1에 정량값이 부여될 수 있다.
어떤 '값의 대응'이란 정성적 랜드마크(landmark) 값과 수치와의 대응을 의미한다. 변수의 정성값-공간은 정량값 집합으로 맵핑될 수 있다. 예를들면, 상기와 같이 정성값-공간{-_, -최대, -최소, 영, 최소, 최대, +_}을 가지는 변수(V1)에 대하여, 대응하는 정량값- 집합은 {-_, -50, -10, 0, 10, 50, +_}가 될 수 있다. 여기서, V1의 정성값(-최대)은 정량값(-50)에 대응하고, V1의 정성값(-최소)는 정량값(-10)에 대응하고, V1의 정성값(영)은 정량값(0)에 대응하고, V1의 정성값(최소)은 정량값(10)에 대응하고, V1의 정성값(최대)은 정량값(50)에 대응한다.
상기에서 논의한 랜드마크 상관 관계를 이용하면 정성값을 정량값으로 맵핑하거나 정량값을 정성값으로 맵핑할 수 있다. 예를들면, 상기 언급한 변수(V1)에 정량치로서 15가 부여되면, 주어진 랜드마크 상관 관계에 따라, 정성값(최소, 최대)(즉 최소로 부터 최대까지의 개구간)을 V1에 부여할 수 있다. 이것은 최소는 10, 최대는 50으로 정의할 수 있기 때문이다.
더나아가, '값의 대응'을 이용하면, '값의 대응'이 없다면 그 비교가 부정이되는 경우에도 정성값이 비교될 수 있다. 예를들면, 상기 언급한 것처럼, 정성변수(V1)를 정성값-공간{-_, -거대, -대, -소, 영, 소, 대, 거대, +_}을 가지는 제2 정성변수(V2)와 비교한다고 가정하자. 만약 V1이 최소이고 V2가 '소'이면, V1과 V2에 대한 정성값-공간을 정의하는 기본적 정성값을 알지 못하는 경우에는 V1과 V2는 비교될 수 없다. 하지만, 만약 V2 값의 공간이 {-_, -100, -20, -5, 0, 5, 20, 100, +_}에 대응하는 정성값 집합이라면, V1이 최소이고 V2가 '소'인 경우, V1은 V2보다 그 값이 크다. 한편, V2 값의 공간이 {-_, -100, -60, -30, -, 30, 60, 100, +_}의 대응하는 정성값 집합이라면, V1이 최소이고 V2가 '소'인 경우, V1은 V2 보다 그 값이 작다.
상기의 연산을 수행하기 위하여, '글로벌 랜드마크 오더링'이 이용된다. '글로벌 랜드마크 오더링'은 정성적 추론을 하는동안 두 랜드마크의 상관관계를 신속하고 효율적으로 판단하기 위하여 이용될 수 있다. 이것은 모든 변수제한이 적어도 하나의 관계 연산자(예, =, <, >)를 기초로 하기 때문에, '신속한 정성/정량 혼합 추론 시스템'을 제공한다.
'글로벌 랜드마크 오더링'은 3개의 부분을 갖는다. 즉 '랜드마크-랜드마크 배열', '랜드마크가 큰 벡터' 및 '랜드마크가 작은 벡터'가 그것이다. '랜드마크-랜드마크 배열'은 기호적 랜드마크들 간의 상관 관계를 기술하는 것으로서, 그 배열에 직접적인 색인을 하여 어떤 랜드마크가 다른 랜드마크 보다 큰지의 여부를 판별한다. '랜드마크가 큰 벡터' 및 '랜드마크가 작은 벡터'는 랜드마크와 수치와의 관계를 기술한다. '랜드마크가 큰 벡터'로 색인하는 어떤 랜드마크를 이용하므로써, 랜드마크가 그보다 크게 되도록 하는 그 값중에서 최대값(즉 최대-수치하한)을 준다. 역으로, '랜드마크가 작은 벡터'로 색인하는 어떤 랜드마크를 이용하므로써, 랜드마크가 그보다 작게 되도록 하는 그 값중에서 최소값(즉 최소-수치상한)을 준다.
예를들어, 변수 X 및 Y가 각각 {-_, -임계, -최대, -양호, 영, 양호, 최대, 임계, +_} 및 {-_, -최대, -최소, 영, 최소, 최대, +_}의 정성값-공간을 가지는 경우를 고려하자. 이들 정성값 공간으로 부터, X와 Y에 대한 랜드마크가 일부 중첩되기 때문에, 이 기호적 랜드마크에 대해서 '부분 오더링'이 주어질 수 있다. 예를들면, 기호적 랜드마크(최소)는 기호적 랜드마크(임계)보다 작다고 알려진다. 왜냐하면 변수(Y)의 정성값 공간에서 '최소'는 '최대'보다 작고 변수(X)의 정성값 공간에서 '최대'는 '임계'보다 작기 때문이다. 하지만, '양호'와 '최소'의 관계는 정할 수 없다. '랜드마크-랜드마크 배열'은 각각의 기호적 랜드마크들 간의 상관관계를 포함한다. 이것은 하나의 모델에서의 표시에 대한 '글로벌 부분 오더링'을 정의하며, 신속한 검색을 가능하게 한다. 그래서, 상기 예에서, '최소'와 '임계'를 가지고 '랜드마크-랜드마크 배열'에 억세싱하면, "<" (즉 "보다 작은")을 되돌려준다. 왜냐하면 '최소'는 '임계'보다 작기 때문이다. 한편, '양호'와 '최소'를 가지고 '랜드마크-랜드마크 배열'에 억세싱하면, "?" (즉, 부정)을 되돌려준다. 왜냐하면 '양호'와 '최소'의 관계는 정할 수 없기 때문이다.
상기 예에서, '최대'에 대한 정성값을 100으로 정의한다고 가정하자. 이러한 정보는 '랜드마크가 큰 벡터' 및 '랜드마크가 작은 벡터'에 저장된다. 이러한벡터는 기호적인 랜드마크의 수치의 경계가 신속히 검색되도록 하게 한다. '랜드마크가 큰 벡터' 및 '랜드마크가 작은 벡터'는 다음 값을 포함한다.
랜드마크가 작은 벡터:
랜드마크가 큰 벡터:
래서 예를들면, 기호적 랜드마크 '양호'에 대하여 '랜드마크가 큰 벡터' 및 '랜드마크가 작은 벡터'를 참조하면 '양호'가 0보다 크고 100보다 작다는 것을 판단할 수 있다. 주목할 것은, '랜드마크가 큰 벡터' 및 '랜드마크가 작은 벡터'는 정량값과 대응하는 '랜드마크'(예, 영, 최대, -_, +_ 등)에는 억세싱할 수 없다는 것이다. 또한 '-_' 및 '+_'는 기호적 랜드마크 및 정량값으로 모두 취급될 수 있다는 것도 주목하라.
상태발생모듈(132)은 변수값을 컨플루언스를 통하여 전달한다. 정성값은 변수 및 컨플루언스에 대한 정량값과 통합될 수 있기 때문에, 다음의 상태발생모듈(132)에 대한 논의는 통합된 정성값 및 정량값의 전달에 관련된다. 주목할 것은, 상기 처럼, 변수의 정량값을 정성값으로 맵핑하는 것이 가능하다는 것이다. 정량값을 갖는 모든 변수는 대응하는 정량값을 가질 것이다. 그래서 정량값을 요구하는 연산도 정량값으로 부여된 변수에 대해서 수행될 수 있게 된다.
도 7은 상태발생모듈(132)의 동작을 상세히 나타내는 데이타플로우 다이어그램이다. '상수 검색 모듈'(142)에는 잠정가설-데이타 요소(98)로 부터 예측 테이블 및 캐싱된 컨플루언스가 제공된다. 상수검색모듈(142)은 예측 테이블을 반복적으로 검색하고 상수식으로서 변수를 정의하는 컨플루언스를 가진 에측 테이블의 변수에 대한 값을 기입하기 위하여 '캐싱된 컨플루언스'를 이용한다. 예를들면, 어떤 전지는 '전지 양단의 전압이 상수로서 양 전압이다'라는 컨플루언스로 기술될 수도 있다. 상수검색모듈(142)은 제1 부분 예측 테이블-데이타 요소(144)에게 예측 테이블의 항목에 상수를 기입한 그 결과를 출력한다.
제1 부분 예측 테이블-데이타 요소(144) 및 테스트 결과-데이타 요소(94)는 변수값 탐색 모듈(146)에 입력되도록 제공된다. 그것에는 사용자가 기입한 테스트 결과에 대응하는 제1 부분 예측 테이블의 변수에 대한 값을 기입한다. 예를들면, 만약 사용자가 저항 양단의 전압을 측정하고 그 결과를 기입하면, 저항전압에 대응하는 변수값 탐색 모듈(146)은 제1 부분 예측 테이블(144)의 변수에 대한 값을 기입한다. 변수치 탐색 모듈(146)은 제2 부분 예측 테이블-데이타 요소(148)에게 테스트 결과에 대응하는 변수값을 제1 부분 예측 테이블 (144)에 기입한 결과를 출력한다.
제2 부분 예측 테이블-데이타 요소(148)는 '제약조건 전달모듈(150)'에 입력된다. 그것은 제2 부분 예측 테이블(148)에 저장된 변수값(즉 이미 상수탐색모듈(142) 및 변수값 탐색모듈(146)에 의해 결정된 가능성 있는 변수값 및 이전의 가설 테스트로부터 결정된 변수들)을 이용하고 또한 더 많은 변수에 대한 변수값을 결정하기 위하여 잠정 가설-데이타 요소(98)로 부터의 '캐싱된 컨플루언스'를 이용한다. 제약조건 전달모듈(150)은 그 가설의 다른 변수값을 제한하기 위한 컨플루언스를 통하여 그 변수값을 전달한다. 예를들면, 밸브를 통하여 흐르는 유체의 흐름을 기술하는 컨플루언스로서 '밸브가 열린 경우 유출량과 유입량이 동일하고, 밸브가 닫힌 경우 유출량이 영이다'라고 나타낼 수 있다. 만약 사용자가 밸브가 열린 것으로 판단하고(사용자 관찰) 그 흐름이 양의 값으로 판단된다면(모델 상수), '제약조건 전달모듈(150)'은 밸브에서의 유출하는 유체의 흐름이 '양'임을 판단할 수 있다. 더나아가, 만약 밸브의 출력을 어떤 파이프에 연결한다면, 제약조건 전달모듈(150)은 파이프로의 유입과 유출을 판단한다.
제약조건 전달모듈(150) 등에 의해서 '가능한 정성변수값'이 아무것도 제거되지 않은 그러한 변수는 '비제한 변수'라고 여겨진다. 비제한 변수는 정성변수값 공간의 모든 값 중에서 그 값을 취할 수 있다. 적어도 하나의 '가능한 정성변수값'가 제거된 때의 변수는 '제한 변수'라고 여겨진다. 제한변수는 '완전제한변수' 또는 '부분제한변수'일 수 있다. 완전제한변수는 '가능한 정성변수' 중의 하나만 제외하고 나머지 모두가 제거된 변수 (즉 '기지(known)' 변수)이다. 부분제한변수는 적어도 하나의 '가능한 정성변수값'은 제거되고 적어도 두개의 가능한 정성변수값은 존재하는 변수이다.
가설의 완전제한변수 및 부분제한변수는 그 가설의 다른 변수를 더 제한하기 위하여 제약조건 전달모드(150)'를 통하여 전달된다. 제약조건 전달모듈(150)에 의해 제한된 변수는 그후 다른 변수들과 함께 제약조건을 통하여 전달된다. 제약조건 전달모듈의 출력은 제3 부분 예측 테이블(152)에 저장된다. 만약 제약조건 전달모듈(150)이 완전 제한변수 또는 부분제한변수의 가능한 값 모두에서 모순을 검출한다면, '널 테이블'이 제3 부분 예측 테이블-데이타 요소(152)에 저장된다.
제3 부분 예측 테이블(152)은 '코어 예측 모듈(154)'에 입력된다. 만약 제3 부분 예측 테이블(152)이 널 테이블이 아니면, '코어 예측 모듈(154)'은 다른 변수에 값이 주어지고 어떤 변수의 '가능한 값'이 제거될 수 있는지의 여부를 판단하기 위하여 제3 부분 예측 테이블(152) 비제한변수 및 부분제한변수에 대한 값을 반복한다. 예를들어, 스위치에 대한 컨플루언스로서 '스위치를 닫으면 스위치에서 유출하는 전류는 유입하는 전류와 같고, 스위치를 열면 스위치에서 유출하는 전류는 영이다'라고 가정할 수 있다. 더나아가, 스위치에서 유출하는 전류가 영이 아닌 양의 값으로 관찰된 경우를 가정하자. '코어 예측'은 만약에 스위치가 '열림'상태에 있다는 가정에 모순성이 존재한다면 스위치의 상태에 대하여 오직 하나의 가능한 값은 '닫힘'이라는 것을 나타낸다. (즉, 스위치는 '열림'상태에 있을 수 없고 동시에 그로 부터의 양의 전류를 갖는다.) 코어 예측 모듈(154)의 출력은 제4 부분 예측 테이블-데이타 요소(158)에 저장된다.
주목할 것은, 코어 예측 모듈(154)은 특정가설에 대한 모순을 검색할 수 있다. 를들면,상기의 스위치에서, 스위치로의 '입력전류가 음의 값'이라고 관찰된 경우를 더 가정하자. 스위치가 '열림'상태인지 '닫힘'상태의 여부와 무관하게, '스위치의 출력 전류가 양일 때 스위치의 입력 전류는 음이다'라고 하면 그것은 모순이 된다. 그래서, 대응하는 가설(즉, 스위치에 대하여 양의 출력 전압을 예측한 것)은 유효하지 않을 수도 있다. 즉 상태발생모듈(132)에 의해서 처리되는 '캐싱된 컨플루언스' 및 제3 부분 예측 테이블(152)에 대응하는 가설은 거짓일 수도 있다. 이러한 경우에, 코어 예측 모듈(154)은 제4 부분 예측 테이블(158)을 널(null)화(즉, 널로 설정)시킨다.
제4 부분 예측 테이블(158)은 가정 테스트 모듈(159)에 입력된다. 그것은 제4 부분 예측 테이블(158)에 포함된 주어진 예측(즉, 제한된 변수값)에 대해서 적어도 하나의 변수값 조합이, 완전제한되지 않은 변수로서 모순으로 결론지어지지 않는 그러한 변수에 부여될 수 있는지의 여부를 판단한다. 물론, 제4 부분 에측 테이블(158)이 널 테이블이면, 가정 테스트 모듈(159)은 그 무효 테이블을 예측 데이타 요소(134)로 넘겨진다. 그러면 가설 테스트 모듈(136)은 그 가설을 기각할 수 있다.
하지만, 제4 부분 예측 테이블(158)이 널 테이블이 아니다라고 가정하면, 가정 테스트 모듈(159)은 완전제한되지 않은 변수 각각에 대하여 변수값을 가정하고 이들 변수값으로 부터 모순없는 예측 집합이 유도될 수 있는지의 여부를 판단한다. 이 소프트웨어는 완전제한되지 않은 변수에 대한 값을 제4 부분 예측 테이블(158) 저장하고 (이것에 의해서 그 변수는 잠정적으로 '완전제한변수'로 변환됨), 모든변수값의 제한을 전달하고, 그 다음에는 다시 자신을 호출하는 일종의 재귀적 루틴을 사용한다. 만약 전달 페이즈 동안에 모순되는 예측집합이 발생되면, 가정 테스트 모듈(159)은 변수에 대해서 다른 값을 가정하기 위하여 그 재귀 루틴을 역추적한다. 만약 모든 변수에 대한 변수치 집합이 모순이 없다고 밝혀지면, 가정 테스트 모듈(159)은 원래상태로 복구된 변수를 갖는 제4 부분 예측 테이블(158)을 예측 데이타 요소(134)에게 넘겨준다. 만약 그렇지 않으면, 가정 테스트 모듈(159)은 예측 데이타 요소(134)에게 널 테이블을 제공한다.
가정 테스트 모듈(159)이 무작위적으로 변수에 그 값을 부여하는 것은 가능하지만, 그렇게 하는 것은 처리시간의 면에서 매우 비효율적이다. 왜냐하면 그 무작위 조합의 수가 매우 많기 때문이다. 예를들어, 만약 각각 세개의 '가능한 변수값'을 갖는 비제한 변수가 20개가 있다고 한다면, 무작위 조합의 수는 30억개를 넘는다. 그러므로 변수에 값을 무작위적으로 부여하는 대신에, 가정 테스트 모듈(159)은 동적 가정 오더링을 사용하여 변수에 값을 부여한다.
'동적 가정 오더링'은 '목적(target) 컨플루언스'를 지정하고, 그 최대수의 목적 컨플루언스내에서 나타나는 변수들에 그 값을 부여하고 그리고 그 '변수부여'를 전달시키는 프로세스이다. 목적 컨플루언스는 그 컨플루언스의 어떤 변수에 변수값을 부여한 것이 결과적으로 다른 변수의 제한으로 되거나 또는 모순될 가능성이 있는 컨플루언스로서 그것에 의하여 가정이 기각될 수 있는 컨플루언스이다. 목적 컨플루언스의 가장 간단한예는 '변수(V1)는 변수(V2)와 동등하다'라고 언명하는 컨플루언스이다. 만약 변수(V1)에 어떤 값이 부여되면, 변수(V2)에 대한 값이결정될 수 있다. 더나아가, V1에 값을 부여하는 것마다 모순되는 경우를 가질 수도 있고, 그것에 의하여 가정 테스트 모듈(159)이 널 테이블을 예측 테이블-데이타 요소(134)에 넘겨주도록 허락된다. 예를들어, 제1 컨플루언스가 '변수(V1)는 변수(V2)와 동등하다'이고, 제2 컨플루언스가 '변수(V1)는 변수(V2)의 음과 동등하다'이고, 그리고 제3 컨플루언스가 '변수(V1)는 변수(V2)와 양의 상수값의 합이다'라는 가정을 하자. 이 세가지 컨플루언스에 의해서 V1 및 V2에 주어지는 제약조건을 해결할 수 있는 변수값-조합은 존재하지 않는다. 만약 가정 테스트 모듈(159)이 초기에, 목적 컨플루언스에 나타내지 않는 변수를 무작위적으로 선택하기 보다는, 변수값 대체를 위하여 V1이나 V2를 선택한다면, 모순성은 곧 발견될 것이다. 주목할 것은, 선택사항으로서, 제약조건 전달모듈(150)을 상수검색모듈(142) 다음에 바로 사용하는 것은 가능하다는 것이다. 즉, 제1 부분 예측 테이블(144)은, 변수값 검색 모듈(146)에 출력을 제공할 수 있는 제약조건 전달모듈(150)에게 제공될 수 있다. 이것은 부가적으로, 변수값 검색모듈(146)과 코어 예측 모듈(154) 사이에 제약조건 전달모듈(146)을 제공하는 것이고, 그래서 제약조건전달을 2배로 효율적으로 수행한다. 또한 주목할 것은, 그 시스템에서 가정 테스트 모듈(159)을 제거하는 것도 가능하고, 그러면 제4부분 예측 테이블(158)은 상태발생모듈(132)의 출력이 된다.
도 8은 제약조건 전달모듈(150)의 동작을 상세히 나타내는 플로우차트(180)이다. 제1 단계(182)에서 제2 부분 예측 테이블(148)의 제한변수에 대한 반복이 제어된다. 제1 단계에서, 반복 카운터는 최초에 초기화되고 그다음에는 각각의후속하는 실행마다 증가된다. 주목할 것은, 플로우차트(180)의 나머지 단계는 어떤 시각에서 하나의 변수에 대해서 동작한다. 만약 반복 카운터가 제2 부분 예측 테이블(148)의 제한변수 목록의 끝에 도달하면, 실행은 완료한다. 만약 그렇지 않으면, 제어는 단계(183)로 넘어가고, 그 단계에서는 캐싱 컨플루언스 테이블로 부터의 변수에 대응하는 모든 컨플루언스가 조사되고, 다른 컨플루언스 변수는 제2 부분 예측 테이블(148)로 부터의 모든 변수치를 이용하여 제한될 가능성이 있다.어떤 변수에 대한 어떤 변수의 어떤 값은, 만약 그 변수가 그 변수의 '가능한 정성변수값'과 동등할 수 있다면, 단계(183)에서 제한될 수도 있다. 주목할 것은 제한변수의 모든 '가능한 값'은 단계(183)에서 전달되고, 그래서 다른 변수에 대한 더이상의 어떤 제한은 그 제한변수의 모든 '가능한 값'을 전달한 결과가 된다.
제는 단계(183)로 부터 단계(184)로 넘어가고, 단계(184)에서는 단계(183)에서 모순성이 발견되었는가의 여부를 판단하도록 테스트가 행하여진다. 두개의 반대되는 예측이 동일 변수에 대하여 만들어진 경우에, 모순이 나타난다(예를들면, 컨플루언스의 하나의 부분집합은 '특정변수가 양이다'라는 예측을 하고 제 2의 부분집합은 '그 동일변수가 음이다'라는 예측을 한 경우). 만약 단계(184)에서 모순이 발견되면, 제어는 제3 부분 예측 테이블(152)이 널화되는 제약조건 전달모듈(150)의 실행이 종료되는 단계(185)로 넘어간다. 주목할 것은 단계(184)에서의 모순성 테스트에 있어서 제한 변수의 모든 '가능한 값'이 모순인 경우에만 모순성이 발견된다는 것이다. 예를들어, 변수(X, Y, Z)가 각각 {음, 영}, {영, 양} 그리고 {양}의 값으로 제한된다면, 컨플루언스(X=Y+Z)를 통하여그 값이 전달될 때모순성이 발견될 것이다.
그 식의 좌변과 우변을 풀이 하면 {음, 영}={양}으로 되고, 이것은 X, Y, Z에 부여될 수 있는 어떠한 '가능한 값'에 불구하고 모순이 된다.
만약 단계(184)에 모순이 없다고 발견된다면, 제어는 단계(184)로 부터 어떤 변수의 값이 단계(183)에서 제한되었는지의 여부를 판단하기 위한 테스트가 행해지는 단계(187)로 넘어간다. 하나의 변수의 값들을 전달하는 것은 결국 그 변수를 더욱 제한하는 것 또는 다른 변수를 제한하는 것으로 될 가능성이 있다. 만약 새로운 변수제한이 발견된다면, 제어는 단계(187)로 부터 그 새로운 제한변수가 제한변수 목록에 추가되는 단계(188)로 넘어간다. 제어는 단계(188)로 부터 반복 카운터가 증가하는 단계(182)로 역으로 넘어간다. 만약 단계(183)에서 아무런 새로운 변수제한이 발견되지 않으면, 제어는 단계(187)로 부터 단계(182)로 역으로 넘어간다.
도 9a는 코어예측모듈(154)의 동작을 상세히 나타내는 플로우 차트(190)이다. 제1 단계(191)에서, '아젠다'가 연산된다. 아젠다는 '코어 예측'이 수행되는 제3 부분 예측 테이블(152)의 모든 비제한변수 및 부분제한변수의 목록이다. 가설의 모든 비제한변수 및 제한변수로 구성되는 아젠다는 단계(191)에서 연산되는 것이 가능하다. 즉, '코어 예측'은 그 가설의 모든 비제한 변수 및 제한변수에 대하여 수행된다. 하지만, 이하 상세히 설명하는 것처럼, 아젠다로 부터 어떤 변수들을 제거할 수 있고, 그래서 코어 예측을 위한 처리시간을 감소시킬 수 있다.
제1 단계(191) 다음에 오는 것은, 아젠다의 변수를 통하여 반복을 제어하는 단계(192)이다. 단계(192)에서 반복 카운터는 최초에 초기화되고 그다음에는 아젠다의 변수 각각에 대한 후속하는 실행마다 증가된다. 주목할 것은, 플로우차트(190)의 나머지 단계는 어떤 시각에서 하나의 변수에 대해서 동작한다. 만약 단계(192)에서 처리가 완료되지 아니하면, 제어는 단계(192)로 부터 그 동작이 수행되는 변수가 하나 이상의 유효 변수에 해당하는 지가 체크되는 단계(193)로 넘어간다. 주목할 것은 정성물리는 머신을 모델화하는데 사용되기 때문에, 실제의 아날로그-양을 나타내는 것을 포함하는 모든 변수는 유한수의 '가능한 정성값'를 가진다는 것이다. 단계(193)에서 변수는 나머지 단계의 실행이전에 그 변수가 가질 수 있었던 모든 '가능한 정성값' (하나의 시각에서 하나의 값)에 반복적으로 설정될 수 있다. 만약 단계(193)에서 그 변수가 모든 가능한 정성값으로 아직도 설정되지 않았다면, 제어는 단계(193)에서 변수값이 제약조건을 통하여 전달되는 단계(194)로 넘어간다. 단계(194)는 플로우차트(180)에 나타낸 단계(183)에서의 제약조건 전달과 유사한다. 제어는 단계(194)에서 단계(195)로 넘어간다. 단계(195)에서는, 컨플루언스를 통하여 변수의 가정된 값을 전달하는 것의 결과가 모순으로 되는지의 여부를 판단하기 위한 테스트가 행하여진다. 만약 그렇다면, 제어는 단계(195)로 부터 그 변수(즉 그 변수에 대하여 선택된 다른 변수값)에 대한 다른 반복을 위하여 단계(193)로 역으로 넘어간다.
만약 컨플루언스를 통하여 변수값을 전달한 것의 결과가 모순으로 되지 않으면, 제어는 단계(195)로 부터, 그 값이 그 변수의 가능한 값의 목록에 추가되는 단계(196)로 넘어가고, 단계(194)에서 제한된 다른 가설변수의 값이 저장된다. 제어는 단계(196)로부터 변수에 대한 다른 값을 테스팅 시작하기 위하여 단계(193)로 역으로 넘어간다.
그 변수에 대한 모든 가능한 값이 컨플루언스를 통하여 전달된 후에, 제어는 단계(193)로 부터 그 변수의 어떤 예측값이 모순없는 예측 집합에 속하는 지의 여부를 판단하기 위한 테스트가 수행되는 단계(197)로 넘어간다. 만약 모순없는 예측집합에 결국 속하게 될 그 변수에 대하여 아무런 값도 존재하지 아니하면, 제어는 단계(197)로 부터 예측 테이블이 널화되고 실행이 종료되는 단계(198)로 넘어간다. 어떤 변수는 모순없는 예측집합을 생성하는 값을 아무것도 가지지 않을 수도 있기 때문에, 그 가설은 참이 아니다. 만약 영으로 예측된 변수값이 존재하지 아니하면, 제어는 단계(197)로 부터 모순없는 예측집합으로 결국 속하게 될 단 하나의 변수가 존재하는 지의 여부를 판단하기 위한 테스트가 수행되는 단계(199)로 넘어간다. 만약 그러하다면, 그 변수는 완전제한변수이고, 제어는 단계(199)로 부터 그 변수와 그 값이 제4 부분 예측 테이블(158)에 추가되는 단계(200)로 넘어간다. 만약 단 하나의 변수값이 모순없는 예측 집합으로 되면, 그 변수는 참으로 테스팅될 가설에 대한 값과 동등하여 한다. 제어는 단계(200)로 부터 다음 변수가 테스팅되는 반복하는 단계(192)로 역으로 넘어간다.
만약 모순으로 되지 않는 변수에 대하여 하나 이상의 값이 존재한다면, 제어는 단계(199)로 부터, 테스트될 변수가 모순없는 예측집합으로 될 하나의 이상의 값을 포함하는목록에 설정되는 단계(202)로 넘어간다. 즉 그 변수는 단계(196)에서 구축된 변수에 대한 '가능한 값'의 목록에 설정된다. 예를들면, 만약 변수(V1)가 변수값-공간{-_, -최대, -최소, 영, 최소, 최대, +_}에서 값을 가지고, 단계(194, 195)에서 단지 '영' 및 '최대'가 결국 모순되는 것으로 되지 않으면, V1은 부분 제한되고 단계(202)에서의 목록{영, 최대}에 설정된다.
단계(202)에서 변수를 변수값 목록에 설정한 후, 다른 변수(즉, 다른 반복변수)에 대한 예측은 단계(196)에 저장된 임플리컨트(전달후의 다른 변수에 대한 결과값)의 합을 취하므로써 판단될 수 있다. 예를들면, 만약 변수(V1)가 변수값 목록{-최소, 영}에 설정되면, 다른 변수에 대한 부가적인 예측은 V1에 대한 '-최소'의 전달 및 V1에 대한 '영'의 전달 중에 판단된다. 나머지 변수에 대한 결과적인 '가능한 값' 각각의 별개의 전달 단계에서 얻어진 '가능한 값'의 합이다.
어떤 경우엔 값 목록을 제1변수에 할당하고 후속 반복에서의 제2변수에 단일 값이 할당되도록 하는 것이 가능하다는 것을 주목하라. 예를들어, 만일 컨플루언스가 X=Y+Z를 나타내고, Y가 포지티브로 판정된다면 (직접측정 또는 변수값의 이전 전달에 의해), 결과가 X인 코어 예측에 플러스의 단일 값이 할당되는 동안 Z에 값 목록(제로, 플러스)이 할당된다. 이것은 결과가 X가 되는 Z에 대한 제로 전달이 플러스가 되고 결과가 X가 되는 Z에 대한 플러스 전달이 플러스가 되고 결과가 X가 되는 X에 대한 가능 값의 합집합이 플러스만 되기 때문에 발생한다.
아젠다의 모든 변수가 단계(192)에서 동작되면, 제어는 아젠다의 임의의 변수에 대한 값이 코어 예측의 이전 반복의 결과로서(즉, 아젠다의 모든 변수를 최근 통과함) 변경되었는지를 판정하기 위해 단계(192)로 부터 테스트 단계(204)로간다. 만일 그렇지 않다면, 프로세싱은 코어 예측을 통하여 추가 변수 값을 유도하는 것이 불가능하므로 완료된다.
만일 테스트 단계(204)에서 변수값이 코어 예측의 최근 반복동안 변경된 것으로 판정된다면 제어는 아젠다를 재산정하기 위해 단계(204)로부터 단계(191)로 되돌아간다.
상기한 바와 같이, 아젠다에 모든 무제한 변수 및 부분제한 변수를 포함하는 것이 가능하다. 대안으로, 아젠다를 통한 제2 및 후속반복에서, 아젠다에 위치한 변수는, 이전 반복에서 발견된 제한값의 결과로서, 현재 반복의 새로운 값제한을 산출할 수 있는 변수들로 제한될 수 있다. 이들 변수들은 이전 반복에서 변경된 값을 갖는 무제한 변수 또는 부분제한변수(및 이들의 코베리에이트)이다. 이것은 아젠다로부터 새로운 값 제한 결과가 될 수 없는 변수를 제거함으로써 프로세싱 시간을 단축시킨다.
상기한 바와 같이, 코어 예측모듈(154)는 아젠다를 생성하여 아젠다의 변수로 코어 예측을 수행하는 교대 사이클을 사용할 수 있다. 대안으로, 코어 예측을 수행하면서 연속적으로 아젠다를 산정할 수 있다. 이 모드에서, 코어예측모듈(154)는 변수들이 아젠다로의 포함을 위한 기준을 충족시키는 것으로 판정되는 즉시 아젠다에 변수를 추가할 것이다. 코어예측모듈(154)은 그후 아젠다에 변수가 하나도 없을때 실행을 종료한다.
또한 아젠다상의 변수집합을 후보변수 집합으로서 취급할 수 있고, 컨플루언스에 후보 변수가 나타나는지를 검사함으로써 각각의 반복에서 변수를 제거할 수있다.
아젠다에 남아 있는 변수는 제한변수이거나 다음 반복에서 제한되어지는 다른 변수일 수 있는 변수이다. 3개 미만의 무제한 변수 또는 부분제한 변수를 지닌 무조건 컨플루언스에만 나타나거나 3개 미만의 무제한 변수 또는 부분제한 변수를 지닌 조건 변수의 후조건에 나타나는 변수도 아젠다로부터 제거될 수 있다.
후조건은 IF-THEN문에서 THEN부분이다. 이러한 방식으로 아젠다로부터 변수를 제거하는 것은 새로운 값 제약 결과가 되지 않을 추가변수를 아젠다로부터 제거하며, 따라서 처리시간을 더욱 감소시킨다.
도 9b는 변수에 대한 코어예측을 수행하기 위해 변수가 선택되어야 하는지를 판정하기 위해 변수를 테스팅하는 것을 나타내는 흐름도(210)이다. 제1 스텝(212)에서, 변수가 컨플루언스의 전조건에 나타나는지를 판정하기 위해 테스크가 행해진다.
전조건은 IF-THEN문의 "IF"부분이고 "THEN"부분이 참이 되게 한다.
예를들어, "IF X=0 THEN Y=2" 컨플루언스에서, 변수 X는 전조건에 나타난다.
스텝(212)에서 검사되는 변수가 컨플루언스 전조건에 나타나는 것으로 판정된다면 제어는 스텝(212)으로부터 스텝(213)으로 가고, 여기서 변수는 아젠다에 추가되도록 선택된다. 그렇지 않으면, 제어는, 변수가 두개 이상의 비제한 또는 부분제한 변수를 포함하는 무조건 컨플루언스에 나타나는지를 판정하기 위해 스텝(212)으로부터 스텝(214)으로 간다. 만일 그렇다면, 제어는 변수가 아젠다에 추가되기 위해 선택되는 스텝(215)으로 간다. 그렇지 않으면, 제어는 스텝(214)으로부터 테스트 스텝(216)으로 간다.
테스트 스텝(216)에서, 검사되는 변수가 2이상의 비제한 또는 부분제한 변수를 갖는 컨플루언스 후조건에 나타나는지가 판정된다. 변수가 2이상의 변수를 갖는 후조건에 나타난다면, 제어는 스텝(216)으로 부터 변수가 코어 예측 변수 목록에 추가 되기 위해 선택되는 스텝(217)으로 간다. 그렇지 않으면, 변수는 아젠다에 추가되지 않으며 코어 예측은 변수에 대해 수행되지 않는다.
도 10은 가설설정모듈(105)의 동작을 나타내는 데이타 흐름도(230)이다.
가설설정모듈(105)는 여러 방법으로 가설을 발생한다. 가설설정모듈(105)은 저장 가설 데이타 요소(99)로부터 기존 가설과 연관된 성분을 확장시킴으로써 새로운 가설을 생성할 수 있다. 가설설정모듈(105)는 많은 수의 동시성분 고장을 가정함으로써 새로운 가설을 생성할 수 있다. 가설설정모듈(105)은 저장 가설 데이타 요소(99)로부터의 관련예측과 기존 가설을 잠정 가설 데이타 요소(98)로 전달할 수 있다.
테스트 요구 데이타 요소(102)로부터의 데이타는 가설제어모듈(232)로 공급되고, 테스트 요구 데이타 요소(102)가 공백인 것을 검출했을때, 저장 가설 데이타 요소(99)로부터의 가설과 연관된 성분을 확장시킴으로써 서브성분으로 새로운 가설을 생성하기 위해 모델 예시 데이타 요소(106)로부터의 정보를 사용한다. 예를들어, 만일 저장 가설 데이타 요소(99)가 머신전원이 고장되었음을 가정하는 단일 가설을 포함한다면, 가설제어기(232)는 전원의 서브 성분(예를들어, 커패시터, 변압기, 브리지 정류기등)의 고장에 대응하는 다수의 가설을 생성한다. 모델예시 데이타 요소(106)가 각각의 합성성분의 서브성분을 식별하는 데이타 구조를 포함하기 때문에 성분의 서브 성분을 판정할 수 있다.
만일 저장 가설 데이타 요소(99)가 공백이면, 가설 제어기(232)는 사용자가 이전 가설 집합보다 하나 이상의 고장 성분을 더 갖는 가설집합에 고장 분리를 계속하기를 바라는지를 판정하기 위해 데이타를 연속 테스팅 질의 데이타 요소(107)에 기입한다. 사용자의 응답이 연속 테스팅 응답 데이타 요소(108)에 제공되고, 이것은 가설제어모듈 (232)로의 입력으로서 제공되고, 이것은 가설발생을 계속할 것인지를 판정하기 위해 응답을 사용한다.
만일 가설 요구 데이타 요소(102)가 공백이 아니라면(즉, 지능 테스트 선택(100)이 사용자가 테스트를 수행하도록 프롬프팅되었다면), 가설제어모듈(232)은 가설 테스트 모듈(96)로 더욱 테스팅하기 위해 가설을 저장 가설 데이타 요소(99)로부터 잠정 가설 데이타 요소(98)로 전달한다. 사용자가 공급하기 위해 프롬프팅된 변수에 대한 고유 정성값을 예측하는 가설은(즉, 테스트 요구 데이타 요소(102)에 저장된 테스트) 추가 테스팅이 가설에 대한 임의의 새로운 값을 예측할 수 없고 가설을 제거할 수 없기 때문에 전달되지 않는다. 예를들면, 저장 가설 데이타 요소(99)는 특정 관로를 통하는 포지티브 유체 흐름을 예측하는 가설(A)과 동일 관로를 통하는 유체흐름에 대한 모호한 예측을 하는 가설(B)을 포함하는 것으로 가정한다. 만일 테스트 요구 데이타 요소(102)가 관로를 통하는 유체흐름을 관측하기 위해 사용자를 위한 프롬프팅을 포함한다면, 가설제어모듈(232)은 가설(B)을 잠정 가설 데이타 요소(98)로 전달하지만 (왜냐하면 가설(B)은 유체흐름에 대해 모호한 가설을 만들므로) 가설(A)을 잠정 가설 데이타 요소에 전달하지 않는다(왜냐하면 가설(A)은 관로를 통하는 포지티브 유체흐름을 예측하기 때문에). 만일 사용자가 실질적으로 관로를 통하는 네거티브 또는 제로유체흐름을 관측한다면, 가설갱신모듈(104)는 가설(A)을 저장 가설 데이타 요소(99)로 부터 제거한다.
가설제어모듈(232)는 가설 저장 데이타 요소(234)에 가설(저장 가설 데이타 요소(99)로 부터의 가설 또는 새롭게 발생된 가설)을 저장한다. 가설 저장 데이타 요소(234)는 가설 저장 데이타 요소(234)에 저장된 각각의 가설에 대한 모델 컨플루언스를 판정하기 위해 모델 사례 데이타 요소(106)로부터 데이타를 사용하는 컨플루언스 선택 모듈(236)로의 입력으로서 제공된다. 컨플루언스 선택 모듈(236)는 컨플루언스 데이타 요소(238)에 컨플루언스를 저장한다.
컨플루언스 데이타 요소(238)는 각각의 컨플루언스집합에 대한 고유변수를 판정하고 출력을 변수데이타 요소(242)에 저장하는 변수선택모듈(240)로의 입력으로서 제공된다.
변수 데이타 요소(242) 및 컨플루언스 데이타 요소(238)는 컨플루언스 캐셔(244)로의 입력으로 제공되고, 이것은 캐시된 컨플루언스 테이블을 생성하고 테이블의 각각의 요소가 인덱스 변수가 나타나는 (예를들어, 변수(V1)는 컨플루언스(C1, C5 및 C6)에 나타나고, 변수(V2)는 컨플루언스(C2 및 C5)에 나타나고, 등등) 모든 컨플루언스를 포함하는 테이블로서 각각의 변수에 의해 인덱스될 수 있는 컨플루언스 테이블을 생성한다.
새롭게 생성된 가설을 위해, 변수 데이타 요소(242)가 공백 예측 테이블을 발생하는 예측 테이블 발생기(246)로의 입력으로서 제공된다. 저장 가설 데이타 요소(99)로 부터 획득된 가설에 대해, 이미 존재하는 예측 테이블(이미 판정된 몇몇 변수값)이 사용된다. 잠정 가설 데이타 요소(98)에 기록된 가설설정모듈(105)의 출력은 가설 집합(한번에 하나인 가설)이고, 각각의 가설에 대한 연관된 캐시 컨플루언스 테이블이고, 각각의 가설에 대한 관련 예측 테이블이다.
어떤 경우엔, 가설설정모듈(105)이 새롭게 발생된 가설의 예측 테이블의 어떤 변수값을 제공하는 것이 가능하다. 만일 새로운 가설이 기존의 가설을 서브성분으로 계층적으로 확장하는 것에 응답하여 생성된다면, 부모가설의 변수에 대응하는 새로운 가설의 변수는 부모가설에 대한 분석동안 할당될 수 있는 값과 동일한 집합으로 될 수 있다. 예를들어, 부모가설이 연료시스템의 고장에 대응한다면, 그리고 포함된 부모가설의 이전분석이 시스템 내부로의 연료의 유입구 흐름을 나타내는 변수에 값을 할당한다면, 부모가설의 유입 연료 흐름 변수에 대응하는 연료시스템 서브성분 가설 (예를 들어, 연료펌프, 유입밸브 등)의 임의의 변수에 동일한 공지값을 할당할 수 있다.
상기한 바와 같이, 코어 예측자에 의해 아젠다를 통한 제1 반복에서의 후보변수는 전부 가설의 비제한 및 부분제한 변수로서 계산될 수 있다. 대안으로, 자식가설에 의해 추가된 컨플루언스(즉, 부모가설에 있지 않은 컨플루언스)에 나타나는 비제한 및 부분 제한 변수로 더욱 한정될 수 있다. 이것은 자식가설의 임의의 조상 가설에 대한 코어 예측자에 의해 이전 이미 동작된 어떠한 변수도 포함하지 않는 작은 후보 목록을 생성한다. 실제로, 전부는 아니지만 거의 대부분의 값 제약은 작은 아젠다에 의해 산정되는 커다란 후보목록을 사용하여 코어 예측자에 의해 산정된다.
또한, 자식 가설의 조상 가설로 코어 예측자에 의해 이미 동작된 추가의 후보변수는 코어 예측자에 의해 아젠다를 통하여 제1 반복에서 작은 후보목록에 선택적으로 추가될 수 있다. 이들 변수는 코어 예측자에 입력되기 전에 제약조건 전달자에 의해 제한된 변수를 포함할 수 있으며 그것의 "재귀적 코베리에이트"이다. 변수(X)는 만일 X가 Y의 코베리에이트(즉, X가 Y를 갖는 컨플루언스에 나타남)이거나 X가 Y의 재귀적 코베리에이트의 코베리에이트이면 변수(Y)의 재귀적 코베리에이트의 변수이다. 예를들어, 3개의 등식인 X=Z, Z=W, W=Y가 주어졌을 경우에, X는 Z의 코베리에이트이고, Z는 Y의 재귀적 코베리에이트이기 때문에 X는 Y의 재귀적 코베리에이트이다. Z는 W의 코베리에이트이고 W는 Y의 코베리에이트이기 때문에 Z는 Y의 재귀 코베리에이트이다. 부가하여, 자식 가설에 의해 추가된 변수의 재귀적 코베리에이트가 부모 가설에 존재하는 변수가 아젠다에도 추가될 수 있다.
코어 예측 아젠다는 변수값과 연관된 테스트 결과를 받아들인 후 가설 테스트 모듈(96)에 의해 수행되는 산정량을 감소시키는 데에도 사용될 수 있다. 상기한 바와 같이, 코어 예측자에 의한 아젠다를 통한 제1반복에서의 후보변수는 전부 비제한 또는 부분 제한 변수인 것으로 산정될 수 있다. 대안으로, 후보변수는 테스트 결과(또는 이것의 코베리에이트)와 직접 연관된 완전히 비제한된 모든 변수또는 테스트 결과에 의거한 억제 전달자(150)에 의해 제한된 모든 변수(또는 이것의 코베리에이트)를 포함할 수 있다. 이것은 테스트 결과에 의해 영향을 받지 않으며 따라서 코어 예측자에 의해 새로운 값 제한을 산출할 가능성이 없는 대다수의 비제한 또는 부분제한 변수를 배제 하는 작은 후보목록을 생성한다.
도 11은 지능 테스트 선택(100)에 대한 상세한 동작을 예시하는 데이타 흐름도(260)이다. 저장된 가설 데이타 요소(99) 및 저장된 가설 테이블 데이타 요소(118)로부터의 입력이 테스트 분류 모듈(262)에 제공된다. 테스트 분류 모듈(262)은 각각의 테스트와 연관될 수 있는 임의의 성분 동작 평가와 함께 예측을 검사하며 I 테스트 유형, II 테스트 유형 또는 III 테스트 유형중의 하나로 모델에 대한 각각의 테스트를 분류하며, 여기서 I 테스트 유형은 사용자가 저장된 가설 데이타 요소(99)로 부터 적어도 하나의 가설이 기각되는 것이 보장되는 것을 수행할 수 있는 테스트이고, II 테스트 유형은 가설이 기각되는 것이 허용되거나 허용되지 않을 수 있는 테스트이고, III 테스트 유형은 가설이 기각되는 것이 허용되지 않는 것이 보장되는 테스트이다.
테스트 분류모듈(262)의 출력은 분류 테스트 데이타 요소(264)에 저장된다. 현재 머신 구성으로부터 다른 구성으로의 머신 구성 변경을 필요로 하는 테스트는 다른 구성에 대응하는 저장 예측 테이블(118)의 저장 예측 관점에서 평가된다는 것을 주목해야 한다.
테스트 분류의 예로서, 저장 가설 데이타 요소(99)는 가설(A) 및 가설(B)을 포함하고, 가설(A)은 특정 전류 흐름이 제로이거나 제로보다 크게 될 것이라는 것을 예측하는 반면에 가설(B)은 동일 전류흐름이 제로보다 작다는 것을 예측한다고 가정한다.
테스트 분류 모듈(262)은, 사용자로 하여금 전류 흐름의 실제값에 무관하게 가설(A) 또는 가설(B)을 제거하는 것이 보장되는 흐름을 관측(및 QRS로 입력함)하게 하기 때문에, I 테스트 유형으로 되는 전류 흐름을 추정하는 테스트로 여겨질 수 있다. 예를 계속하면, 가설(A)은 특정 포인트에서 제로보다 크거나 같은 전압을 예측하고 가설(B)은 동일 포인트에서 제로보다 작거나 같은 전압을 예측한다. 테스트 분류 모듈(262)은 사용자로 하여금 가설(A) 또는 가설(B)을 제거하거나 제거하지 않을 전압을 관측하게 하므로 전압측정은 II 테스트 유형으로 여긴다. 만일 사용자가 제로인 전압을 측정한다면, 가설(A) 및 가설(B)은 제거될 수 없지만, 만일 사용자가 비제로인 전압을 측정한다면 가설(A) 또는 가설(B)은 제거될 수 있다. 예를 더욱 계속하면, 가설(A) 및 가설(B)은 특정 유체 흐름에 대해 완전히 모호한 예측을 하는 것으로 가정한다. 그후, 테스트 분류모듈(262)은 유체흐름이 III 테스트 유형이 되는 것으로 여긴다.
저장 가설 데이타 요소(99) 및 저장 가설 테이블 데이타 요소(118)로 부터의 입력이 테스트 결과 페이오프 발생모듈(266)에 공급되고, 이것은 각각의 가능한 테스트 결과에 대해, 만일 테스트 결과가 특정값과 동일하다면 버려질 저장 가설 데이타 요소(99)로부터의 가설에 의해 가정된 특정고장에 대한 확률의 합을 판정한다. 예를들어, 저장 가설 데이타 요소(99)는 동일 가능성으로 된 10개 가설을 포함하고, 이 가설중에서 3개 가설은 특정 전류 흐름에 대해 포지티브 또는 제로가될 것임을 예측하고, 4개 가설은 동일 전류 흐름이 네거티브가 될 것임을 예측하고 나머지 3개 기설은 전류흐름에 대해 완전히 모호한 예측을 한다고 가정한다. 포지티브 전류 흐름에 대한 페이오프는 10분의 4가 되고 네거티브 전류 흐름에 대한 페이오프는 10분의 3이 될 것이다. 테스트 결과 페이오프 발생모듈(266)의 출력은 페이오프 데이타 요소(268)에 저장된다. 다수의 가설의 가능성에서 인수화하지 않고 버려질 다수의 가설만을 사용하여 테스트 결과 페이오프도 계산할 수 있음을 주목하라. 저장 가설 데이타 요소(99), 저장 예측 테이블 데이타 요소(118)로부터의 입력 및 성분 정보 데이타 요소(101)로 부터의 입력은 가설 확률 발생모듈(280)에 제공되고, 이것은 저장 데이타 요소(99)로 부터의 각각의 가설에 대한 가능한 유효성을 예측하기 위해 성분 정보 데이타 요소(101)로부터의 경험적 또는 산정된 성분 고장 비율 정보를 사용한다. 가설 확률 발생모듈(270)로 부터의 출력은 가설 확률 데이타 요소(272)에 저장된다.
가설 확률 데이타 요소(272), 저장 예측 테이블 데이타 요소(118) 및 저장 가설 데이타 요소(99)는 테스트 결과 확률 발생모듈(274)에 입력으로서 제공되고, 이것은 각각의 테스트에 대한 각각의 가능 테스트 결과의 가능성을 예측한다. 고확률을 갖는 가설에 의해 예측된 변수의 값을 측정하는 것은 낮은 확률을 갖는 가설에 의해 예측된 변수의 값을 측정하는 것은 보다 훨씬 가능성이 있다. 예를들어, 저장된 가설 데이타 요소(99)가 특정 유체흐름이 제로가 될 것이라는 것을 예측하는 가설(A)과 동일 유체 흐름이 제로가 되지 않을 것이라는 것을 예측하는 가설(B)을 포함하는 것으로 가정한다. 더우기, 가설(A)은 가설 확률 발생모듈(270)에의해 80퍼센트 확률을 갖는 것으로 여겨지고 가설(B)은 가설 확률 발생모듈(170)에 의해 20퍼센트 확률을 갖는 것으로 가정한다. 그후 테스트 결과 확률 발생모듈(274)는 유체흐름이 사용자에 의해 제로로 관측되는 80퍼센트 가능성과 유체흐름이 사용자에 의해 비제로로 관측되는 20퍼센트 가능성이 있다는 것을 판정할 것이다.
테스트 결과 확률 발생모듈(274)로 부터의 출력은 테스트 이용발생모듈(278)로의 입력으로서 제공되는 예상 확률 데이타 요소(276)에 페이오프 데이타 요소(268)와 함께 저장된다. 각각의 테스트에 대해, 테스트 유틸리티 발생모듈(278)는 테스트가 가질 수 있는 각각의 결과에 대한 페이오프 및 예상확률과의 곱의 합을 계산함으로써 사용자가 테스트를 수행하게 할 이용을 판정한다. 예를들어, 테스트는 변수(X)가 가질 수 있는 3개의 가능값 마이너스, 플러스 및 제로를 측정하는 것으로 가정한다.
또한, 변수를 마이너스로 측정하기 위한 페이오프는 10분의 1이고, 또한 변수를 제로로 측정하기 위한 페이오프는 10분의 2이고, 또한 변수를 플러스로 측정하기 위한 페이오프는 10분의 6으로 가정한다. 또한, X가 마이너스일 확률은 25퍼센트이고, X가 제로일 확률은 15퍼센트이고, X가 플러스일 확률은 60퍼센트인 것으로 변수(X) 측정의 이용은 다음 등식에 의해 판정된다.
X=(.10×.25)+(.20×.15)+(.60×.6)인 유틸리티
테스트 유틸리티 발생모듈(278)의 출력은 테스트 스코어 발생모듈(282)로의 입력으로서 제공되는 테스트 이용 데이타 요소(280)에, 성분 정보 데이타요소(101) 및 테스트 구성 데이타 요소(119)로 부터의 데이타와 함께 저장된다. 테스트 스코어 발생모듈(282)은 테스트 스코어 요소(284)에 저장된 각각의 테스트를 위한 테스트 스코어를 제공하기 위해 (성분 정보 데이타 요소(101)로부터) 각각의 테스트에 대한 테스트 이용을 각각의 테스트를 위한 테스트 시간으로 나눈다. 각각의 테스트에 대해, 테스트 스코어 발생모듈(282)는 사용자 테스트 수행을 촉진하는 것에 대한 바람직함(즉, 머신 파라미터 측정 및/또는 성분 동작 평가 산출)을 판정한다. 동일 유틸리티를 갖는 두 테스트에 대해, 측정에 대해 사용자가 더 오래 걸릴 테스트는 낮은 테스트 스코어를 가질 것이다. 더욱이, 머신부품의 내부 마찰력과 같은 테스트의 경우는 사용자가 수행하는 것이 불가능할 수 있으며 무한대에 가까운 테스트 시간이 할당될수 있다. 테스트 스코어 발생을 넘는 이론에 대한 완전한 논의는 Von Neuman씨, John and Morgensterm씨 등에 의한 Oskar "Theory of Games and Econonic Behavior", Princeton, Princeton University Press, 3rd Edition(1953)에서 찾을 수 있다.
테스트 스코어 데이타 요소(284) 및 분류 테스트 데이타 요소(264)는 테스트 선택모듈(286)로의 입력으로서 제공되고, 이것은 사용자가 수행할 최우수 테스트를 판정하려고 시도한다. 테스트 선택모듈(286)에는 또한 스레시홀드 데이타 요소(288)로 부터의 제3 입력이 제공되고, 각각의 테스트 유형에 대한 스레시홀드 값을 포함한다(현재의 실시예에서, 유형 I 및 유형 II에 대해 스레시홀드는 각각 5 및 100일 수 있더라도 I 테스트 유형에 대한 스레시홀드는 .001이고 II 테스트 유형에 대한 스레시홀드는 .001인 테스트 선택모듈(286)은 최고 테스트 스코어를 갖는 I 테스트 유형(즉, 저장된 가설 데이타 요소(99)로부터 적어도 일 가설을 제거하는 것이 보장되는)을 선택한다. 그러나, 최고 스코어링 I 테스트 유형이 I 테스트 유형에 대한 스레시홀드 보다 미만인 스코어를 갖는다면, 테스트 선택모듈(286)은 II 테스트 유형에 대한 스레시홀드 보다 높은 테스트 스코어를 갖는 최고 스코어링 II 테스트 유형을 선택한다.
만일 각각의 스레시홀드 보다 높은 테스트 스코어를 갖는 I 테스트 및 II 테스트 유형이 없다면, 테스트 선택모듈(286)는 어떠한 테스트도 선택하지 않는다. 테스트 선택모듈(286)의 출력은 테스트 요구 데이타 요소(102)에 기입된다. 만일 테스트 선택모듈(286)가 테스트 요구 데이타 요소(102)에 아무것도 기입하지 않는다면, 가설발생모듈(105)은 테스트 요구 요소(102)가 공백임을 검출하고 저장 가설 데이타 요소(99)로 부터의 가설 확장을 시작한다.
대안으로, I 테스트 유형을 선호함이 없이 최고 스코어를 갖는 I 테스트 유형 또는 II 테스트 유형을 선택함으로서 테스트를 선택하는 상기 기술을 수정하는 것이 가능하다.
즉, 최고 스코어링 I 테스트 유형이 소정 스레시홀드를 초과하는 경우에도 I 테스트 유형에 유리하게 임의의 I 테스트 유형보다 높은 스코어를 갖는 II 테스트 유형이 선택될 수 있다. 또한, 일집합의 스레시홀드가 가설과 연관된 하부구조를 갖는 가설을 위해 사용되고 (즉, 모델 계층의 최하부에 있지 않은 복합 성분을 나타내는 가설) 다른 집합이 어떠한 하부구조도 갖지 않는 가설을 위해 사용되도록(즉, 계층의 최하부에 있는 기본 성분을 나타내는 가설) I 유형 및 II 유형 스레시홀드로 된 두 집합을 갖는다.
테스트 선택모듈(286)은 저장 가설 데이타 요소(99) 및 저장 예측 테이블 데이타 요소(118)로 부터의 데이타를 검사함으로써 상이한 조건을 검출한다.
가설변수의 각각은 이들과 연관된 하나 이상의 테스트 프로시저를 가질 수 있다.
테스트 프로시저는 성분 동작의 평가 또는 하나 이상의 변수값을 판정할 수 있다.
그러므로, 제11도와 관련하여 설명된 프로세싱은 테스트 프로시저당 수행되기 보다 변수기준당 수행될 수 있다. 이 경우에, 각각의 변수는 나머지 가설에 의한 관련 테스트의 결과에 종속하여 I 유형, II 유형 또는 III 유형 변수로써 등급이 정해진다.
각각의 변수의 스코어는 각각의 테스트에 대한 스코어를 계산하는 것과 관련하여 상기한 방식으로도 계산될 수 있다.
테스트 프로시저는 또한 사용자가 머신제어입력을 변경하기 위해 또는 머신의 구성을 변경하기 위해 프롬프팅하는 단계를 더 포함할 수 있다. 이 경우에, 사용자는 QRS가 가설 예측 테이블을 저장하고 사용자가 도 4와 관련하여 상기한 방식으로 이전구성과 연관된 결과를 테스트하도록 요구스텝을 수행하고 수행된 스텝을 확인할 수 있다.
테스트를 위한 테스트 시간용 스태틱값을 사용하여 테스트 스코어를 계산하는 테스트 스코어 발생모듈(282)이 상기 예시되어 있다. 즉, 상기 설명은 특정 테스트를 수행하는 코스트가 이미 머신에서 수행된 이전 테스트와 무관한 인베리에이트임을 가정한다. 대안으로, 테스트 스코어 발생모듈은 테스트 구성 데이타 요소(119)로부터 정보를 받아 들이고 머신의 현재 테스트 구성에 의거한 특정 테스트 프로시저를 수행하는 코스트를 동적으로 계산하는 것이 가능하다. 예를들어, 머신은 제1 및 제2 액세스 패널을 가지며, 제1 패널은 이전 수행된 테스트에 대해 제거되고 제2 패널은 제거되지 않음을 가정한다. 제1 패널의 제거에 대한 이전스텝을 필요로 하는 제1 테스트와 제2 패널의 제거에 대한 이전스텝을 필요로 하는 제2 테스트가 주어지고 모든 다른 인수가 동일하다면, 제1 액세스 패널은 이미 제거되었으므로 제1 테스트를 수행하는 것이 훨씬 효율적이다. 테스트 프로시저의 코스트는 이미 수행되지 않은 테스트 프로시저의 이전스텝 및 각 스텝의 코스트를 먼저 합산함으로써 동적으로 계산된다. 그후, 테스트 구성이 테스트 구성 데이타 요소(119)로 부터 데이타를 검사함으로써 판정된다. 테스트의 현재 값에 기인하여 필요없게 되는 임의의 스텝 또는 이전스텝의 코스트는 스텝의 코스트에 대한 계산된 합에 포함되지 않는다. 예를들어, 만일 테스트 프로시저가 액세스 패널을 제거하는 스텝을 포함하고, 만일 액세스 패널이 이전 테스트 프로시저 동안 제거되어졌다면, 테스트 프로시저의 최종 코스트는 액세스 패널을 제거하는데 걸리는 시간을 포함하지 않을 것이다.
도 12a는 QRS 소프트웨어에 의해 사용되는 모델 예시 데이타 요소(106)를 산출하는 모델 빌더를 예시하는 데이타 흐름도(300)이다. 모델 예시 데이타 요소(106)는 선 마이크로 시스템즈 사에 의해 제조된 후 QRS 소프트웨어의 일부분이 되도록 PMA 30으로 변형된 SRARC 스테이션 10 모델 41과 같은 컴퓨터 워크스테이션 상에서 모델 빌더를 실행시킴으로써 오프라인으로 구축된다.
모델 빌더로의 입력은 그래픽 사용자 인더페이스(302)에 의하여, "HELIX: A Helicopter Diagnostic System Based on Qualitative Physics", Hamilton Thomas P., International Journal of Artificial Intelligence in Engineering, Vol. 3, NO. 3 July, 1988, pp 141-150에 상세히 설명되어 있다. 그래픽 사용자 인터페이스(302)로 부터의 사용자 입력은 워크스테이션의 디스크에 저장될 모델 성분 데이타 파일(306)을 산출하기 위해 사용자 입력을 처리하는 모델 구축모듈(304)에 제공된다. 모델 성분 데이타 파일(306)은 사용자가 기본 모델 성분을 상호 연결함으로써 또는 다른 복합 모델 성분을 상호 연결함으로써 사용자가 생성할 수 있는 기본 모델 성분의 정의(즉, 기본성분의 터미널 및 컨플루언스) 및 복합모델 성분의 정의를 포함한다. 모델 성분 데이타 파일(306)에 저장된 데이타는 COMMON LISP식 형태이고, 이것의 구성은 당업자에게 공지되어 있다. 성분 데이타 파일(306)의 성분의 상호연결은 계층의 최하위 레벨이 기본 성분이고 계층의 최상위 레벨이 모델로 되는 머신을 나타내는 단일 복합 성분이 되도록 모델계층을 정의한다.
사용자는 구축되는 모델의 파라미터 및/또는 성분에 대한 테스트 프로시저를 지정 하기 위해 그래픽 사용자 인터페이스(302)를 액세스한다. 사용자는 본 명세서에서 토의된, 테스트, 비용, 전조건, 전스텝 및 테스트 프로시저와 연관된 기타 정보에 대한 프롬프트 텍스트를 지정한다. 어떤 프로시저는 워크 스테이션(302)에 이미 저장된 속성 테스트 프러시저 템플릿으로 부터 구축된다. 예를들어, 와이어의 전류를 테스팅하기 위한 속성 템플릿은 특정 와이어에 대한 특정 테스트 프로서저를 제공하기 위한 기본으로서 사용될 수 있다. 또한, 적절한 곳에, 하나 이상의 머신 고장 가설이 사용자로 하여금 하나 이상의 머신성분에 대한 상태를 나타내는 정보를 검사하고 제공하는 것을 프롬프팅시킴으로써 테스트될 수 있는 성분 동작평가 평가의 형태로 테스트 프로시저가 지정될 수 있으며, 따라서 QRS를 고장분리시스템에 기초한 규칙 관점 (즉 특정 증후를 특정 성분 고장와 상관시킴으로써)으로 통합한다. 예를들어, 스위치 콘택트 조립체로의 충격에 대한 테스팅은 사용자로 하여금 스위치 콘택트 조립체가 콘택트가 소실 또는 충격을 받았는지에 대한 증후를 보여질 수 있는 지를 질문하고 사용작 "예" 또는 "아니오"를 응답하게 함으로써 실행될 수 있다.
표시 영역은 모델 형성 프로세스 동안 사용될 수 있다. 표시 영역 및 다른 표시 관계는 정성적 변수를 위한 값 공간을 구축하기 위한 템플릿으로서 작용할 수 있다.
이것은 사용자가 각각의 변수에 대한 정성값 공간을 별개로 지정하게 할 필요없이 모델을 형성하는데 걸리는 시간을 단축시킨다. 또한 표시 영역을 사용하여 유사 및/또는 연결된 변수가 정성 및 정량 값 사이에 동일 매핑 및 동일 정성 값 공간을 가지게 되는 것을 보장한다. 예를들어, 상호 연결된 두개 파이프는 거기를 통과하여 흐르는 흐름을 설명하기 위해 {-_, - 최대, - 최소, 제로, 최소, 최대, +_}로 된 값 공간을 가질 수 있다. 표시 영역을 사용하지 않고, 모델 빌더는 파이프중의 하나에 대한 최소를 무의식적으로 배제할 수 있으며, 따라서 파이프를 통하여 정성적 흐름을 표현하는 개별 변수로 비교 및 동작할 때 곤란하게 한다. 그러나, 표시 영역을 사용하여 사용자로 하여금 비교 및 계산을 용이하게 하는 방식으로 흐름 변수에 대한 값 공간을 정의할 수 있게 한다. 또한, 테스트 프로시저 템플릿은 성분 또는 파라미터의 유형에 대해 속성적으로 지정된 테스트 프로시저가 고장 분리 동안 특정 성분 또는 파라미터에 적용될 수 있도록 하기 위해 실행시간동안 사용될 수 있다.
성분 데이타 파일(306)은 모델 예시 모듈(308)로의 입력으로서 제공되고, 이것은 성분 데이타 파일(306)을 PMA(30)상의 QRS 소프트웨어에 의한 처리를 위해 최적화된 포맷으로 변환한다. 모델 예시 모듈(308)에 의한 변환결과는 사례 데이타 파일(310)로 출력되고, 이것은 워크스테이션의 디스크에 저장되고 모델 사례 데이타 요소(106)로 되기 위해 PMA상의 QRS 소프트웨어로 전달될 수 있다. 예시 모듈(308)에 의해 수행된 변환은 인픽스 표기로부터 프리픽스 표기로의 컨플루언스의 변환, 조건 컨플루언스로 부터 키워드의 추출, 신속한 액세스를 위해 각각의 컨플루언스에 사용되는 변수를 프리스토어링, 및 속성의 COMMON LISP 리스트로 부터 COMMON LISP 심볼로의 변수의 데이타 유형 변환을 포함한다.
예시 모듈(308)는 또한 제약조건감소에 의해 모델의 변수 및 제약의 수를 감소시킨다.
제약 조건 감소는 변수중의 단지 하나만이 테스트 가능 변수(즉, 테스트 프로시저와 연관된)가 되는 V1이 V2와 같거나 V1이 -V2와 같은 형태를 갖는 단순 컨플루언스를 제거하고 성분의 컨플루언스를 검사하는 것을 포함한다. 그 밖의 변수는 테스트 가능 또는 테스트 불가능한 변수일 수 있다. 일 테스트가능 변수 및 단일 컨플루언스는 성분에 대한 모든 컨플루언스의 테스트 불가능 변수를 위해 다른 변수를 대체(또는 V1이 -V2와 동일형태를 갖는 단순 컨플루언스의 경우에 다른 변수의 무효)에 의해 제거된다. 대체는 테스트 불가능 변수에 대한 가능한 정성 값이 다른 변수에 대한 가능한 정성 값의 서브집합일 때 보증된다.
제약조건감소 프로세스는 모델 계층의 최하위 레벨에서 시작한다. 최하위 레벨에서 제거된 변수는 계층의 더욱 상위 레벨로부터 제거된다. 계층의 후속레벨에서, 성분간의 상호연결과 같은 새로운 컨플루언스가 도입되기 때문에 더욱 많은 변수가 제거될 가능성이 있다.
QRS를 적절히 동작하기 위해, 예시 데이타 파일(310)은 모델로 되는 시스템의 올바른 표현을 포함해야만 한다. 예시 데이타 파일(310)은 모델 테스트 모듈(312)로의 입력으로서 제공되고, 이것은 예시 데이타 파일(310)의 성분을 활용하기 위해 그래픽 사용자 인터페이스(302)를 통하여 사용자와 상호작용한다. 모델 테스트 모듈(312)은 성분의 동작상태를 발생시키기 위한 정성적 물리를 사용하여 성분을 활용하고 그래픽 사용자 인터페이스(302)를 통하여 사용자에게 이러한 상태에 대한 정보를 제공한다. 예를들어, 예시 데이타 파일(310)에 있는 밸브에 대해, 모델 테스트 모듈(312)은 밸브가 폐쇄되어 있고 밸브로 부터의 흐름과 밸브로 들어오는 흐름이 제로인 제1 상태와, 밸브가 개방되어 있고 밸브로 부터의 흐름과 밸브로 들어오는 흐름이 네거티브인 제2 상태와, 밸브가 개방되어 있고 밸브로 부터의 흐름과 밸브로 들어오는 흐름이 네거티브인 제3 상태와, 밸브가 개방되어 있고 밸브로 부터의 흐름과 밸브로 들어오는 흐름이 제로인 제4 상태를 발생시킬 수 있다.
상태를 발생시키는 것은 사용자가 성분모델을 디버그하는 것을 허용한다. 만일 사용자가 성분에 대해 지나치게 많은 제약조건을 제공한다면, 모델 테스트 모듈(312)은 성분에 대한 모든 가능한 성태를 발생하지 못할 것이다. 예를들어, 상기의 밸브예를 이용하여, 사용자가 밸브에 대해 지나치게 많은 제약조건을 틀리게 제공한다면 모델 테스트 모듈(312)은 단지 상기 나타낸 4개 동작상태중의 3개만을 발생시킬 수 있다.
마찬가지로, 만일 사용자가 지나치게 적은 제약조건을 제공한다면, 모델 테스트 모듈(312)은 여분의 허용되지 않은 상태를 발생할 수 있다. 예를들어, 상기의 밸브예를 사용하여, 사용자가 밸브가 폐쇄되었을 때 벨브로 부터 나가고 밸브로 들어오는 흐름이 제로임을 지정하는 밸브에 대한 제약조건을 제공하지 않는다면, 모델 테스트 모듈(312)은 밸브가 폐쇄되어 있고 밸브로부터 나가고 밸브로 나가는 것이 포지티브 비제로 값인 상태를 발생시킬 수 있다.
사용자는 또한 워크스테이션이 디스크에 저장된 테스트 사례 데이타 파일(314)을 선택적으로 생성할 수 있다. 테스트 사례 데이타 파일(314)은 사례 데이타 파일(310)에 저장된 성분의 변수에 대해 할당된 값의 소정 집합을 포함한다. 예를들어, 테스트 사례 데이타 파일(314)은 제1 집합이 저항기를 통하는 전류가 포지티브이고 저항기에 걸치는 전압이 포지티브이며, 제2 집합이 저항기를 통하는 전류가 네거티브이고 저항기에 걸치는 전압이 네거티브인, 전기적 저항기에 대한 할당된 변수값의 제1 및 제2 집합을 포함할 수 있다. 테스트 사례 데이타 파일(314)은 특정 성분에 대해 모든 테스트 사례를 포함할 필요가 없다는 것을 주목하라. 상기한 저항기 예에 대해, 레지스터에 대한 전류 및 전압이 제로인 사례를 사용되지 않는다.
더우기, 테스트 사례 데이타 파일(314)은 비유효사례 즉, 성분의 컨플루언스를 위반하는 성분의 변수 값 집합을 포함할 수 있다. 예를들어, 테스트 사례 데이타 파일(314)은 저항기에 걸치는 전압이 포지티브이고 저항기를 통하는 전류가 네거티브인 저항기에 대한 사례를 포함할 수 있다. 테스트 사례 데이타 파일(314)은 모델 테스트모듈(312)로의 입력으로서 제공되고, 모델 테스트 모듈은 소정 사례 집합으로부터의 값을 테스트되는 변수로 대체한다. 모델 테스트 모듈(312)은 사용자 인터페이스(302)를 통하여 사용자에게 결과를 보고한다. 생성시에 사용자에 의해 테스트 사례 데이타 파일(314)의 각각의 사례가 제공되는 스트링은 예를들면 무효사례에 대한 스트링이 그와 같은 스트링을 식별하도록 사용자 인터페이스(302)를 통하여 사용자에게 보호된다.
QRS 커널 데이타 요소(316)는 제1도 내지 제11도와 관련하여 본 명세서에 설명된 QRS 시스템에 대한 실행시간 코드를 포함한다. QRS 커널(316) 및 예시 모델(310)은 고장 분리를 수행하기 위해 다른 적절한 처리 디바이스 또는 PMA(30)로와 같이(즉, 별개 요소로서) 포트될 수 있다. QRS 커널(316) 및 예시 모델(310)은 PMA(30)로 또는 다른 적절한 처리 디바이스로 포트되는 배달할 수 있는 실행시간시스템(318)을 제공하기 위해 응용 컴파일러(317)에 의해 조합될 수 있다. 실행시간 시스템(318)은 PMA(30) 또는 다른 적절한 컴퓨터 상에서 실행한다. 응용 컴파일러(317)는 PMA(30)에서 또는 고장분리 동안에 또는 모델을 구축하는데 사용되는 컴퓨터 상에서 실행될 수 있다. 응용 컴파일러(317)가 QRS 커널(316)의 일부를 프리컴파일하고 QRS 커널(316)의 일부와 모델 사례(310)의 일부를 조합하는 것이 가능하다. 프리컴파일링 및 조합은 융통성을 희생시켜 실행시간 시스템(318)의 응답시간을 개선시킨다.
응용 컴파일러(317)는 초기 증후의 주어진 집합에 대한 가설 및 예측을 프리컴퓨팅함으로서 QRS 커널(316)과 예시 모델(310)를 프리컴파일 및 조합할 수 있다.
제1도 내지 제11도와 관련하여 본 명세서에 설명된 방식으로, 가설의 초기 집합을 발생시키기 위해 응용 컴파일러(317)는 예시 모델(310) 및 QRS 커널(316)을 사용하며 사용자는 증후의 미리 가정된 초기 집합을 입력한다. 결과 실행시간 시스템(318)은 테스트 선택을 동적으로 수행하게 하지만, 진단은 사용자에 의해 제공된 초기 머신 상태의 고정된 집합으로 부터 개시된다.
응용 컴파일러(317)는 사용자에 의해 제공된 증후의 초기 집합을 가정하는 진단 논리 트리의 전체 집합을 프리컴퓨팅함으로서 QRS 커널과 예시 모델을 프리컴파일 및 조합할 수 있다. 결과 실행시스템(318)의 응답시간은 비교적 빠르지만, 시스템(318)은 생성시에 예견되지 않는 증후에 대한 고장분리를 제공하거나 또는 테스트를 선택하기 위한 융통성이 부족하다.
도 12b는 제1, 최상위, 레벨(322), 제2, 중간, 레벨(324) 및 제3, 최하위, 레벨(326)을 갖는 모델 계층을 도시한다. 최상위 레벨(322)은 제어패널부를 나타낸다. 제어패널부의 하위성분은 중간레벨(324)로 도시되어 있고, 스위치, 와이어 하니스 및 제어 디바이스를 포함한다. 제3 레벨(326)은 스위치, 와이어 하니스 및 제어 디바이스의 각각의 하위 성분인 스위치(1 내지 10), 와이어(1 내지 10) 및 다바이스(1 내지 10)를 나타낸다.
고장분리동안, 만일 제어패널부의 고장에 대응하는 가설이 무효로 되지 않는다면(즉, 저장 가설 데이타 요소(99)에 남아 있다면), 결과적으로 제어패널부 가설은 가설발생 모듈(105)에 의해 3개인 가설인, 스위치 고장에 대응하는 가설, 와이어 하니스의 고장에 대응하는 가설 및 제어 디바이스의 고장에 대응하는 가설로 대치된다.
즉, 제1 레벨(322)에서의 디바이스에 대응하는 제어패널 가설은 제2 레벨(324)에서의 하위구조에 대응하는 가설로 대치된다. 마찬가지로, 후속고장분리동안, 3개 가설중의 임의의 또는 모든 가설은 제3 레벨(326)에서 도시된 하위구조로 대치된다. 제3 레벨(326)에는 30개의 별개의 성분이 있음을 주목하라.
도 12c는 모델 계층이 재구성된 것을 제외하곤 제12B도의 동일 디바이스의 개략도(340)이다. 이 개략도가 제1 레벨(342), 제2 레벨(344) 및 제3 레벨(346)을 가질지라도, 제2 및 제3 레벨(344, 346)의 요소는 제12B도의 개략도(320)의 제2 및 제3 레벨(324, 326)의 요소가 상이하다. 사용자는 소망 구성이 획득될때까지 계층의 성분간의 부모/자식 관계를 파괴 또는 재형성함으로써 그래픽 사용자 인터페이스(302)로 계층을 재배열할 수 있다. 제12B도 및 제12C도에 도시된 재구성은, 모델이 되는 머신의 후속 고장 분리를 용이하게 하기 위해 성분을 새로운 복합 성분으로 재그룹하는 "재그룹핑"을 나타낸다. 새로운 성분은 머신에 존재하는 임의의 실제 계층적 레벨을 표현하는 것이 반드시 필요한 것은 아니다. 성분이 재그룹되었을때, 어떠한 기본성분도 성분의 자손중의 하나의 자식이 될 수 없다.
계층은 다른 방식으로 재구성될 수 있다. 사용자는 성분의 부모노드에 대한 연결을 제거하고 다른 노드의 자식으로서 성분을 연결함으로써 성분을 "재부모(reparent)"로 할 수 있다. 다른 기술로는 상호연결됨으로써 기능적으로 관련된 성분이 단일 기능 블록으로 그룹되어지는 자동 기능적 재그룹핑을 포함한다. 자동 재그룹핑은 또한 동일 경로상에 있게 되는 것이 아닌 통로와 관련된 성분에 대해 서도 수행될 수 있다. 다른 자동 재그룹핑 기준은 공간적 근접성, 기능적 유사성(예를들어, 성분중의 하나가 고장일 경우의 고장 허용오차를 제공하도록 의도된 두개의 유사성분) 및 신뢰성을 포함한다. 당업자에게 공지된 다양한 기능적 요인에 의거한 다른 기준도 모델의 성분을 자동으로 재그룹핑하기 위해 사용될 수 있다. 모델 계층이 재구성되었을 때, 기본 성분 사이의 연결은 모델이 연속적으로 모델로 되는 머신의 성분 사이의 실제 연결을 올바르게 반영하는 것을 보장하기 위해 자동으로 유지된다.
QRS 소프트웨어가 PMA(30)상에서 실행하는 것으로서 도시되고, 모델 구성이 선 스파크 스테이션(10), 모델(41)에서 실행하는 것으로서 예시되었을지라도, QRS 또는 모델 구성이 다양한 컴퓨팅 시스템으로 지원될 수 있음이 당업자에게 인식될 것이다. 마찬가지로, QRS 소프트웨어가 COMMON LISP로 기록된 것으로 나타내었을지라도, 본 발명은 필요한 기능성을 지원할 수 있는 임의의 컴퓨터 언어를 사용하여 실시될 수 있다.
정성적 물리가 고장 분리를 위해 그리고 모델 성분 디버깅을 위해 사용되는 것으로서 도시되었을지라도, 당업자는 정성적 물리가 본 명세서에 예시된 응용을 넘는 많은 다른 응용을 가질 수 있다. 본 발명은 정성적으로 및/또는 정량적으로 모델로 될 수 있는 임의의 시스템 유형에 대한 분리를 위해 사용될 수 있고, 머신에 제한되지 않는다. 이러한 시스템의 예로는 경제적 시스템, 재고 시스템 및 생리학적 시스템을 포함하지만 이에 한정되지는 않는다. 더우기, 정성적 물리 모델링(코어 예측, 동적 추정 오더링 및 컨플루언스 캐싱과 같은)에 대한 개량에 관련된 본 발명의 태양은 본 명세서에 예시된 이상의 응용을 갖는다. 코어 예측의 제약 전파 태양 및 동적 추정 오더링은 불일치 모델을 무효화하는데 사용될 수 있다(즉, 변수가 항상 예측의 불일치한 집합 결과가 되지 않고 임의의 가능 갑사을 치할수 없을 때마다).
마찬가지로, 정성적 물리 모델링은, 결과로 되는 고장 분리 시스템이 적절하지 못하게 수행될 수 있을지라도, 코어 예측, 동적 추정 오더링 또는 컨플루언스 캐싱을 이용하지 않고 고장 분리를 위해 사용될 수 있다. 동적 추정 오더링이 본 명세서에서 값 대체를 위한 대단히 많은 수의 목표 컨플루언스에 나타나는 변수를 선택하는 것으로서 예시되었을지라도, 두번째 또는 세번째로 많은 수의 목표 컨플루언스에 나타나는 변수를 선택하는 것과 같은 상이한 체계를 사용하는 것이 가능하며 또한 동적 추정 오더링의 몇몇 이점을 끌어낼 수 있다.
지능 테스트 선택(100)의 I 테스트 및 II 테스트 유형에 대해 본 명세서에 예시된 스레시홀드는 변경될 수 있다. 마찬가지로, 테스트 스코어를 계산하기 위해 사용된 특정 공식 도는 거기에 사용된 기준은 본 발명의 범위 및 정신으로부터 벗어나지 않고 수정될 수 있다. 본 명세서에 예시된 지능 테스트 선택(100)을 고장 분리 이외에 성분의 설계동안 성분을 테스팅하기 위하 최량 측정을 따라서 성분의 테스트 포인트의 배치를 판정하는 것과 같은 다른 응용을 가진다.
본 명세서의 예시도 다수의 동시 성분 고장(예를들면, 제로 성분 고장, 일 성분 고장, 이 동시 성분 고장등)의 추정에 대한 오더링, 따라서 가설 발생의 오더링은 본 발명의 범위 및 정신으로부터 벗어나지 않고 수정될 수 있다. 마찬가지로, 동시에 고장으로 되는 것으로 다수의 성분이 증가될 때마다 사용자를 프롬프팅하고 응답을 판정하는 단계는, 사용자에게 통지하지 않고 QRS로 하여금 자동적으로 고장분리 수를 증가시키고 고장 분리를 계속함으로써 제거될 수 있다. QRS는 전체적으로 기본성분으로 이루어진 모델로 동작하며 따라서 모델 예시 데이타 요소(106)에 포함된 모델이 계층적일 것을 필요로 하지 않는다.
모델 빌더에 대한 단일 응용이 본 명세서에 예시되었을지라도 (즉, QRS의 모델 예시 데이타 요소(106)를 구축하기 위해 모델 빌더를 사용하는), 모델 빌더는 다수의 다른 응용을 가질수 있다는 것이 당업자에게 인식될 것이다. 본 명세서에 예시된 것과는 다른 프로세스가 모델 예시 데이타 요소(106)를 생성하기 위해사용될 수 있다. 또한 QRS는 본 명세서에 예시된 최적화의 서브집합만이 (예를들어, 제약조건감소, 키워드의 추출, 변수의 데이타 유형을 속성의 COMMON LISP 리스트로부터 COMMON LISP 심볼로의 변경등) 예시 모듈(308)에 의해 모델에서 수행되는 모델로 동작할 수 있지만, 결과는 QRS의 성능의 열화가 되게할 수 있다. QRS는 또한 성분 데이타 파일(306) 상에서 직접 동작하도록 구성될 수 있지만, 이러한 시스템은 본 명세서에 예시된 실시예보다 더욱 느리게 실행할 수 있다. 모델 예시는 본 명세서에 예시된 것 이외의 방법을 사용하여 테스트될 수 있다.
본 발명이 사용자로 하여금 테스트를 수행하게 하는 것으로써 예시되었을지라도, 테스트 결과 획득 프로세스가 고장 분리가 수행되는 머신과 PMA(30)간의 데이타 연결을 제공함으로써 그리고 QRS 소프트웨어가 머신에 대해 데이타 연결을 통한 정보를 요구하게 함으로써 그리고 머신은 데이타 연결을 통하여 정보를 제공함으로써 자동화하는 것이 가능하다. 또한, 어떠한 성분 동작 평가 테스트 또는 상태 변경을 야기시키는 테스트도 사용되지 않으며 단지 제공된 테스트만이 사용자 관측으로 되는 QRS를 제공하는 것이 가능하다. 또한 QRS는, 만일 테스트 결과 데이타 요소(94)가 단일 기본 성분에 대한 머신고장을 분리시키기 위해 충분한 양의 정보를 포함하다면, 초기 증후로 초기화시 추가 입력을 위해 사용자를 프롬프팅하지 않고 고장 분리를 제공할 수 있다. 또한 수행하기 위해 사용자를 위한 테스트를 판정하기 위해 다른 방법(임의의 선택을 포함하여)을 사용하여 지능 테스트 선택(100)에 의하지 않고 고장 분리를 제공할 수 있지만 결과는 QRS로 하여금 머신고장을 분리시키기 위해 더 많은 시간이 걸리도록 야기시킬 수 있다. 해밀톤씨에게 허여된 미합중국 특허 제5,138,694호에 개시된 시스템의 특징과 본 명세서에 개시된 여러 특징을 조합하는 것은 당업자에게 가능하다.
코어 예측을 최적화하기 위한 아젠다의 사용은 머신 고장 분리를 위해 머신 파라미터로 예측하는 것에 한정되지 않는다. 향상된 코어 예측의 사용은 시스템의 정성적 모델에서 실행될 수 있는 추론을 포함하는 임의의 타스크 또는 프로세스에 응용가능하다. 예를들어, 프로세서가 시스템의 고장을 검출 및 진단하기 위해 사용되는 내재된 진단은 아젠다를 갖는 코어 예측을 사용할 수 있다. 또한, 디바이스의 설계에서, 설계의 행동을 예측하는 것은 코어 예측 및 아젠다를 사용할 수 있다. 마찬가지로, 코어 예측은 설계된 디바이스의 고장 모드 및 효과, 설계된 디바이스의 테스트 가능성 및 디바이스의 센서배치를 평가하기 위해 응용될 수 있다. 특정 시나리오와 연관된 행동을 설명하기 위해 코어 예측이 사용되는 컴퓨터를 기초로 한 트레이닝도 가능하다. 또한, 정성적 모델의 테스팅은 아젠다를 갖는 코어 예측의 사용으로 수행될 수 있다.
집적된 정성적/정량적 추론의 사용은 머신 고장 분리를 수행하는 것에 제한되지 않는다. 시스템의 행동 또는 특성을 예측하기 위해 정성적 및 정량적인 수학적 동작을 조합하기는 기능은 시스템의 설계에 응용될수 있다. 예를들어, 지배적인 정성적 분석이, 아직 정확한 수치정보를 이용할 수 없는 설계단계의 초기에 수행될 수 있다. 설계가 더욱 상세하게 됨에 따라, 더욱 정확하고 상세한 분석을 제공하기 위해 더욱 정량적인 정보가 응용된다. 또한, 집적된 정성적/정량적 추리가 시스템의 고장 모드 및 효과, 시스템의 테스트 가능성 특성과 센서 또는 검사 포인트의 배치와 같은 시스템의 특성을 평가하기 위해 사용될 수 있다. 또한, 그레인 사이즈를 변화시키는 것에 대한 정보(예를들어, 몇몇 정확한 수치값 및 정성적 값)가 고장의 존재를 검출하고 분리하기 위해 이용되는 내재된 진단에 사용될 수 있다. 집적된 정성적/정량적 추론은 제공된 응답의 상세사항에 대한 레벨을 변화시킴이 요구될 수 있는, 컴퓨터를 기초로 한 트레이닝에 응용될 수 있다. 마찬가지로, 모델 테스팅은 시스템에 대한 상세하고 개략적으로 평가하기 위해 모델러를 인에이블링시킴으로서 집적된 정성/정량 추록으로 효과적으로 실행될 수 있다. 확장 테스트 프로시저의 사용은 머신 고장 분리를 수행하는 것에 제한되지 않는다. 확장 테스트 프로시저는 설계된 디바이스의 고장 모드 및 효과를 평가할때 사용될 수 있고, 특정 고장 모드를 수립할 수 있다. 예를들어, 테스트 프로시저는 변수 값을 설정함으로서 상태를 개시시킬 수 있다. 확장 테스트 프로시저의 사용은 테스트 가능성 분석 및 센서배치와 같은 작업에 적용할 수 있다. 테스트 가능성 분석을 위해, 확장 테스트 프로시저는 성분 동작 평가 및 머신 파라미터 관측뿐만 아니라 확장 테스트 프로시저의 동적 비용을 이용하는 디바이스의 테스트 가능성을 판정하는데 도움을 주기 위해 사용될 수 있다. 확장 테스트 프로시저는 센서 판독을 통하여 획득된 추가 추정이 진단을 용이하게 할 수 있는 위치를 식별하는데 도움을 주기 위해 센서 배치를 위해 사용될 수 있다. 확장 테스트 프로시저는 머신 파라미러 측정 및/또는 성분 동작 평가의 획득이 자동화될 수 있음에 따라 내재된 진단을 위해 사용될 수 있다. 획득된 정보는 그것의 작용을 정교하게 하기 위해 내재된 진단 제어로 전달될 수 있다. 확장 테스트 프로시저는 디바이스의 고장 수리를 어떻게 할 것인가에 대해 유지보수자의 컴퓨터를 기초로 한 트레이닝에 사용될 수 있다. 또한, 적절한 동작을 보증하기 위해 모델 테스팅동안 확장 테스트 프로시저가 사용될 수 있다. 다수의 머신 구성의 추론의 사용은 머신 고장 분리를 수행하는데 제한되지 않는다. 다수의 머신 구성의 추론은 설계된 디바이스의 고장 모드 및 효과를 평가할때 사용될 수 있고, 특정 머신 구성은 상이한 고장 모드 및 효과를 수립한다. 예를들어, 테스트 프로시저는 변수 값을 수립함으로써 상태를 개시시킬 수 있고, 상태 변경은 평가동안 제어 입력을 변경함으로써 발생할 수 있다. 다수의 머신 구성의 추론은 테스트 가능성 분석 및 센서 배치에 대한 작업에 적용할 수 있다. 테스트 가능성 분석 및 센서 배치를 위해, 다수의 머신 구성의 추론은 설계된 디바이스가 그것의 모든 머신 구성에 대한 분석되어지게 한다. 이것은 특정 머신 구성을 기초로 한 적절한 센서 배치 및 모든 머신 구성의 완전한 테스트 가능성 분석을 참작한다. 다수의 머신구성의 추론은 테스트 프로시저 획득이 자동화됨에 따라 내재된 진단을 위해 사용될 수 있고 상태 변환을 야기시킨다. 획득된 정보는 그것의 작용을 정교하게 하기 위해 내재된 진단 제어로 전달될 수 있다. 다수의 머신 구성의 추론은 디바이스 고장수리를 어떻게 할 것인가에 대해 유지보수자의 컴퓨터를 기초로 한 트레이닝을 위해 사용될 수 있다. 또한, 다수의 머신 구성의 추론은 모델의 각각의 구성을 우해 적절한 동작을 보장하기 위해 모델을 테스팅할 때 적용할 수 있다.
고장 분리를 용이하게 하는 것으로서 계층 재구성이 본 명세서에 설명되었을지라도, 계층 재구성의 이점은 테스트 가능성 분석, 예비 설계, 머신동작 및 수선트레이닝과 내재된 진단을 포함하며 이에 한정되지 않는 머신 모델을 사용하는 다른 응용에 적용될 수 있음이 당업자에게 이해되어져야 한다. 테스트 가능성 분석을 위해, 계층재구성은 머신의 고장 분리를 위해 사용될 정성적 물리 모델의 상이한 구성을 위해 머신를 어떻게 테스트할 수 있는가를 판정하기 위한 수단을 제공할 수 있다.
예비 설계를 위해, 계층 재구성은 설계자가 최초 설계 모델의 그룹핑과는 상이할 수 있는, 설계자가 중요한 서분의 그룹에 더욱 중점을 두게하는 설계 모델을 재구성하기 위한 수단을 제공할 수 있다. 마찬가지로, 트레이닝 동작을 위해, 모델은 피훈련자가 머신 행동의 특정 관점에 집중하도록 재구성될 수 있다. 유지보수 트레이닝을 위해, 재구성은 고장 분리를 위해 상기한 동일 방식으로 사용될 수 있다.
내재된 진단을 위해, 계층 재구성은 개선된 내재된 진단 성능을 위해 모델을 재구성하는 수단을 제공할 수 있고 계층 에디팅의 자동적 재그룹핑 특성은 내재된 진단을 포함하는 머신의 동작 조건을 변경하는 것에 적용되도록 하기 위해 모델을 동적으로 변경하기 위한 수단을 제공할 수 있다. 본 명세서에 설명된 사용에 응용될 수 것 이외에, 계층 재구성은 필요한 테스팅에 따라 재그룹되는 성분을 허용함으로써 정성적 물리 모델의 테스팅을 가속시키는데 사용될 수 있다는 것이 당업자에 의해 이해된다.
본 명세서에서 응용 컴파일러(317)가 머신 고장 분리를 위해 사용되는 것으로 설명 되었을지라도, 응용 컴파일러(317)는 내재된 진단, 테스트 가능성 분석 및트레이닝을 포함하지만 이에 제한되지 않는 다른 목적을 위해 사용될 수 있음이 당업자에 의해 이해되어야 한다. 내재된 진단을 위해, 응용 컴파일러(317)는 전형적으로 내재된 응용을 위해 이용가능한 제한된 연산 자원이 주어졌을 경우에 흔히 내재된 진단을 위한 필요 조건인 고성능 진단 모듈을 발생시키는 것에 대한 수단을 제공할 수 있다. 테스트 가능성 분석을 위해, 응용 컴파일러(317)는 머신이 구축되기 전에 머신상에서 머신 고장 분리의 성능을 평가하는 수단을 제공할 수 있다. 응용 컴파일러(317)는 머신 고장 분리 모델을 자동적으로 구축할 수 있고 따라서 예비 설계 작업의 대화식 속성 관점에서 볼 때 유용하다. 트레이닝을 위해, 응용 컴파일러(317)는 트레이닝 환경뿐만아니라 제조환경에서 사용될 수 고장 분리 모델로 조작자를 트레이닝시키기 위한 수단을 제공할 수 있다.
본 발명이 본 발명의 바람직한 실시예에 대해 도시되고 설명되었을지라도, 본 발명의 범위 및 정신으로부터 벗어나지 않고 당업자는 다양한 변경, 생략 및 추가가 본 발명에 대해 이루어질 수 있다.

Claims (6)

  1. 프로세서를 사용하여 머신의 정성적 물리 모델을 구축하는 방법에 있어서,
    모델을 위한 머신 성분의 선택 및 상호연결을 허용하는 그래픽 사용자 인터페이스(302)를 프로세서가 사용자에게 제공하는 단계;
    사용자에 의한 프로세서로의 입력에 응답하여 정성적 물리 모델을 프로세서가 발생하고 조작(304)하는 단계;
    머신의 성분 및 매개변수를 위해 테스트 프로시저를 나타내는 데이타를 사용자가 입력하도록 프로세서가 사용자에게 프롬프팅하는 단계로 이루어지고, 여기서 사용자는 소정 속성 테스트 템플릿을 선택함으로써 특정 성분에 대한 테스트 프로시저를 지정할 수 있는 것을 특징으로 하는 방법.
  2. 프로세서를 사용하여 머신의 정성적 물리 모델을 구축하는 방법에 있어서,
    모델을 위한 머신 성분의 선택 및 상호연결을 허용하는 그래픽 사용자 인터페이스(302)를 프로세서가 사용자에게 제공하는 단계;
    사용자에 의한 프로세서로의 입력에 응답하여 정성적 물리 모델을 프로세서가 발생하고 조작(304)하는 단계;
    모델의 성분을 계층적(322, 324, 326)으로 프로세서가 그룹핑하는 단계로서, 하위구조 성분은 계층적으로 그룹핑된 특정한 상기 모델 성분의 자식으로서 계층적으로 표현되는 상기 단계; 와
    상기 그룹핑하는 단계에 뒤이어, 사용자에 의한 입력에 응답하여 모델의 성분을 프로세서가 재구축(342, 344, 346)하는 단계로 이루어지는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 상기 재구축하는 단계는 상기 적어도 하나의 자식(346)의 부모(344)를 변경하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서, 상기 재구축하는 단계는 선택된 성분(324)을 하위구조(344)로서 상기 선택된 성분을 갖는 새로운 성분으로 재그룹핑하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 2 항에 있어서, 상기 재구축하는 단계는 관련 성분(346)의 그룹을 제공하기 위해 성분을 자동적으로 재그룹핑하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 프로세서를 사용하여 머신의 정성적 물리 모델을 구축하는 방법에 있어서,
    모델을 위한 머신성분의 선택 및 상호연결을 허용하는 그래픽 사용자 인터페이스 (302)를 사용자에게 프로세서가 제공하는 단계; 와
    사용자에 의한 프로세서로의 입력에 응답하여 정성적 물리 모델을 프로세서가 발생 및 조작(304, 308)하는 단계로 이루어지고,
    사용자는 표시 영역을 정의할 수 있고 모델에 대한 컨플루언스 변수의 정성적 값 공간의 정의를 제공하기 위해 상기 표시 영역을 적용할 수 있는 것을 특징으로 하는 방법.
KR1020027008231A 1994-04-26 1995-04-04 정성물리를 이용하는 머신 고장 분리방법 KR100363337B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US08/233,466 1994-04-26
US08/233,349 1994-04-26
US08/233,280 US5522014A (en) 1994-04-26 1994-04-26 Intergrated qualitative/quantitative reasoning with enhanced core predictions and extended test procedures for machine failure isolation using qualitative physics
US08/233,466 US5537644A (en) 1994-04-26 1994-04-26 Machine failure isolation in multiple machine configurations using qualitative physics
US08/233,349 US5604841A (en) 1990-07-06 1994-04-26 Hierarchical restructuring generic test templates and reusable value spaces for machine failure isolation using qualitative physics
US08/233,280 1994-04-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1019960706029A Division KR970703017A (ko) 1994-04-26 1996-10-26 정성물리를 이용하는 머신 고장 분리방법(machine failure isolation using qualitative physics)

Publications (1)

Publication Number Publication Date
KR100363337B1 true KR100363337B1 (ko) 2002-12-05

Family

ID=27398411

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020027008231A KR100363337B1 (ko) 1994-04-26 1995-04-04 정성물리를 이용하는 머신 고장 분리방법
KR1020027008232A KR100363335B1 (ko) 1994-04-26 1995-04-04 정성물리를 이용하는 머신 고장 분리방법
KR1019960706029A KR970703017A (ko) 1994-04-26 1996-10-26 정성물리를 이용하는 머신 고장 분리방법(machine failure isolation using qualitative physics)

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020027008232A KR100363335B1 (ko) 1994-04-26 1995-04-04 정성물리를 이용하는 머신 고장 분리방법
KR1019960706029A KR970703017A (ko) 1994-04-26 1996-10-26 정성물리를 이용하는 머신 고장 분리방법(machine failure isolation using qualitative physics)

Country Status (9)

Country Link
EP (2) EP0757815B1 (ko)
JP (1) JPH09512364A (ko)
KR (3) KR100363337B1 (ko)
AU (1) AU2278695A (ko)
CA (1) CA2188023A1 (ko)
DE (2) DE69507138T2 (ko)
ES (1) ES2104519T3 (ko)
IL (1) IL113471A (ko)
WO (1) WO1995029443A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493827B1 (en) * 1999-03-17 2002-12-10 International Business Machines Corporation Method and system for monitoring configuration changes in a data processing system
GB0216858D0 (en) 2002-07-19 2002-08-28 Bae Systems Plc Fault diagnosis system
GB2406661A (en) * 2003-09-30 2005-04-06 Toshiba Res Europ Ltd Configuring a computer apparatus subject to a constraint placed upon the system
GB2406662A (en) * 2003-09-30 2005-04-06 Toshiba Res Europ Ltd Configuring a computer apparatus
GB0325560D0 (en) 2003-10-31 2003-12-03 Seebyte Ltd Intelligent integrated diagnostics
DE102005027378B3 (de) * 2005-06-14 2006-11-16 Daimlerchrysler Ag Dynamische Priorisierung von Prüfschritten in der Werkstattdiagnose
JP5266764B2 (ja) 2008-01-15 2013-08-21 富士通株式会社 支援装置、支援プログラムおよび支援方法
EP3435184B1 (en) * 2017-07-28 2024-04-17 Siemens Aktiengesellschaft System, method and control unit for controlling a technical system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161158A (en) * 1989-10-16 1992-11-03 The Boeing Company Failure analysis system
JPH05502102A (ja) * 1990-07-06 1993-04-15 ユナイテッド テクノロジーズ コーポレイション 定性的物理学を利用した機械故障分離方法

Also Published As

Publication number Publication date
ES2104519T3 (es) 1999-05-01
EP0871126A2 (en) 1998-10-14
KR100363335B1 (ko) 2002-12-05
DE757815T1 (de) 1997-07-17
CA2188023A1 (en) 1995-11-02
DE69507138T2 (de) 1999-07-22
DE69507138D1 (de) 1999-02-18
ES2104519T1 (es) 1997-10-16
EP0871126A3 (en) 1999-03-03
EP0757815A1 (en) 1997-02-12
WO1995029443A2 (en) 1995-11-02
WO1995029443A3 (en) 1996-02-15
AU2278695A (en) 1995-11-16
IL113471A (en) 1999-08-17
JPH09512364A (ja) 1997-12-09
EP0757815B1 (en) 1999-01-07
KR970703017A (ko) 1997-06-10
IL113471A0 (en) 1995-07-31

Similar Documents

Publication Publication Date Title
US5522014A (en) Intergrated qualitative/quantitative reasoning with enhanced core predictions and extended test procedures for machine failure isolation using qualitative physics
US5138694A (en) Parallel processing qualitative reasoning system
Shakeri et al. Sequential testing algorithms for multiple fault diagnosis
Fenton et al. Fault diagnosis of electronic systems using intelligent techniques: A review
Khoshgoftaar et al. Application of neural networks to software quality modeling of a very large telecommunications system
Peischl et al. Model-based diagnosis or reasoning from first principles
Ho et al. Validation coverage analysis for complex digital designs
US5537644A (en) Machine failure isolation in multiple machine configurations using qualitative physics
US5604841A (en) Hierarchical restructuring generic test templates and reusable value spaces for machine failure isolation using qualitative physics
KR100363337B1 (ko) 정성물리를 이용하는 머신 고장 분리방법
Yannakakis Testing, optimization, and games
Russomanno et al. Viewing computer-aided failure modes and effects analysis from an artificial intelligence perspective
Valueian et al. Constructing automated test oracle for low observable software
US5353381A (en) Intelligent test selection for machine failure isolation using qualitative physics
Voronin et al. Technical objects diagnostics systems organising
Hsieh et al. On application of data mining in functional debug
US5202955A (en) Dynamic assumption ordering for qualitative physics
Subramanian et al. Qualitative multiple-fault diagnosis of continuous dynamic systems using behavioral modes
Foxvog et al. Survey of real-time and on-line diagnostic expert systems
EP0491037B1 (en) Machine failure isolation using qualitative physics
KR100231958B1 (ko) 기계 고장 판별 방법 및 장치
Stracquadanio et al. VeriBug: An Attention-based Framework for Bug-Localization in Hardware Designs
Hofmann Model-based diagnosis directed by heuristic search
Shahamiri et al. Intelligent and automated software testing methods classification
Wahba et al. Automatic diagnosis may replace simulation for correcting simple design errors

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081007

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee