상태기반검사의최적주기분석을위한시뮬레이션 2009. 4. ( 주 ) 한국신뢰성기술서비스
목차 상태기반검사의최적주기분석을위한시뮬레이션... 1 1. 개요... 1 2. 상태기반과업의배경... 1 3. RENO를이용한최적검사주기분석... 2 3.1 한개의과업에대한최적검사주기분석예제... 2 3.1.1 추가로고려할사항... 12 3.2 과업의일괄처리예제... 12 4. 결론... 16 5. 참고문헌... 16 ii http://www.korts.co.kr
상태기반검사의최적주기분석을위한시뮬레이션 1. 개요 본자료에서는 RENO 소프트웨어를활용하여어떤한개품목에대한상태기반검사 (Oncondition Inspection) 의최적주기를결정하는방법에대해소개한다. RCM(Reliability Centered Maintenance) 분석의주된결과물은해당품목에필요한일련의유지보수과업에대한내용일것이다. 또한유지보수에필요한과업의계획이나일괄처리를최적화하는것은중요한일이다. RENO는의사결정이나위험도분석을위한전용시뮬레이션소프트웨어이다. 2. 상태기반과업의배경 대다수의품목들은시간이흘러감에따라마모가발생한다는생각은점차감소하고있다. 이로인해상태를기반으로한검사기법의적용이증가하게되었고, 고가부품에대한정밀검사나교체와같은 Hard Time( 또는 High Time) 과업의적용은감소하게되었다. 그결과상태기반과업은 RCM 분석의필수부분으로점차중요하게인식되고있다. 상태기반과업은주기적또는연속적인검사를통해기능고장이발생하기전에잠재된고장상태를찾고자하는데그목적이있다. 검사로잠재된고장상태가발견되면사후보전 ( 또는예방보전 ) 활동이수행되며, 발견하지못하면아무런조치없이계속운용된다. 상태기반검사를수행하게되면아직수명이다되지않은품목을교체하는데소요되는적지않은비용을절약할수있는효과가있다. RCM 관련기준서에는안전성과연관된상태기반검사는고장발생확률을허용수준으로저 감하기위해주기적으로검사를수행해야한다고언급하고있다. 주기를결정하기위해서는 다음과같은인자들이필요하다. - 허용고장확률 ( 고장의심각도에따라 ) - 검출확률 ( 검사종류에따라 ) - PF(Potential failure to Functional failure) 주기 http://www.korts.co.kr 1
하지만안전성과관련이없는검사의경우에는기기의수명을최대로하기위해비용기반으로주기를결정하게된다. 검사를하거나필요한사후보전활동을수행하는데소요되는비용은고장이발생한후소요되는비용과비교하여평가해야한다. 검사주기가길어지면검사비용은감소하게되지만검사횟수가줄기때문에더많은고장이발생할수있다. 다른한편, 검사횟수가많아지면고장발생은줄겠지만검사비용이더증가하게된다. 그러므로총기대비용을최소로하는최적검사주기를결정하는것이필요하다. 3. RENO 를이용한최적검사주기분석 3.1 한개의과업에대한최적검사주기분석예제 ReliaSoft 사의 RENO 소프트웨어는어떤형태의확률론적또는결정론적인시나리오를분석및시뮬레이션을하기위한편리한환경을제공한다. RENO는어떤문제를분석하기위해코딩을하는방식대신에순서도를이용하여간단히모델을만들고모델에대한변수나함수등을정의한후시뮬레이션을수행하여결과를얻는방식을사용한다. RENO를이용하여어떤품목에대한최적상태기반검사주기를분석하기위해서는여러변수와상수에대한정의가필요하다. 예를들면, 상수에는잠재된고장의수리를위한고정된예방보전비용, 시간당고장비용, 고정된검사비용, PF 주기등이해당된다. 방정식의변수에는기능고장의수리를위한사후보전비용, 최종검사를수행한시간, 총검사비용등이해당된다. 확률변수에는사후보전활동에대한수리시간의분포, 고장분포등이해당된다. 일부방정식변수와확률변수는상황에따라상수 ( 또는반대로도가능 ) 로정의될수있음에유의한다. 2 http://www.korts.co.kr
[ 그림 1] 최적주기분석을위한 RENO 순서도 [ 그림 1] 은어떤한개품목 A에대한최적검사주기를구하기위해만든순서도이다. RENO 에서이모형을만들려면, 우선그품목의마모 ( 즉, PF의시작 ) 의시작을나타내기위해 Standard Block을순서도에추가한다. [ 그림 2] 의블록은고장분포 ( 확률변수로정의 : [ 그림 3]) 로부터고장시간을생성한다. 생성한고장시간이 PF 주기 ( 상수로정의 : [ 그림 4]) 보다클경우마모의시작을결정하기위해고장시간에서 PF 주기를뺀다. 생성한고장시간이 PF 주기보다작을경우에는고장시간만사용한다. http://www.korts.co.kr 3
[ 그림 2] 마모시작블록의속성정의 [ 그림 3] 확률변수정의 [ 그림 4] PF 주기정의 4 http://www.korts.co.kr
그런다음, 고장발생전의최종검사가잠재된고장상태를발견했는지에대한여부를결정하기위해순서도에 Conditional Block([ 그림 5]) 를추가한다. 방정식 Last_Inspection_A ([ 그림 6]) 은고장발생전에얼마나많은검사가수행되었는지를계산하는변수로계산을수행한후그값을정수로변환하고검사주기 (InspectionInterval 상수로정의 : [ 그림 7]) 를곱한다. 이는고장전에최종검사가언제이루어질것인지를구하기위한것이다. 예를들면, 500 시간 ( 확률변수 FailureA : [ 그림 3]) 에서고장이일어나고검사주기가매 200 시간마다이루어진다면 "Last_Inspection_A" 방정식 ([ 그림 6]) 의계산결과는 400 시간이된다. ("InspectionInterval" 상수로입력한초기값은관계가없으며최적화과정을수행하는동안에값이변하게된다.) [ 그림 5] 조건부 (Conditional) 블록속성정의 [ 그림 6] Last_Inspection_A 방정식정의 http://www.korts.co.kr 5
[ 그림 7] InspectionInterval 상수정의 조건부블록의입력은마모가시작되는시간이라는점을상기하자. 조건부블록은마모의시작이최종검사전또는후에일어나는지를결정한다. 마모가최종검사전에발생한다면잠재된고장상태가존재한다는것을의미하며검사하는동안에검출될것으로판단할수있다. 이경우그품목의기능고장을막기위해예방보전을수행하게될것이다. 그러므로잠재적고장을예방하는비용이발생하게되고, 순서도의위에있는 True 경로를따라시뮬레이션을수행하게된다. [ 그림 8] 은예방보전 (PM) 수행에대한 Standard Block 의속성을나타낸것으로각각의수리 활동비용 ("PMCost_A" 상수 : [ 그림 9]) 를구해서단위시간당예방보전비용을계산하고, 이를최종검사가수행된시간으로나눈다. [ 그림 8] 예방보전 (PM) 수행에대한속성정의 6 http://www.korts.co.kr
[ 그림 9] PMCost_A 상수정의 다음단계는 Standard Block( 일반블록 ), Function( 함수 ) 및 Constant( 상수 ) 를이용하여모든검사비용에대한정보를추가한다. "InspectionCostA_PUT" 함수 ([ 그림 10]) 은고장전에얼마나많은검사가수행되었는지를결정한다. 그런다음고정된각검사비용 ( 상수 : [ 그림 11]) 에검사횟수를곱해총검사비용을구한다. 이전방정식과동일하게검사주기 ([ 그림 12]) 로나누어단위시간당비용을구한다. 이방정식은최소한번의검사가있을경우에만유효하다. 반면검사가한번도없을경우에는비용이 0이므로 IF 구문을사용하여나타낸다. "A의검사비용추가 " 블록은총검사비용에이전블록에서계산된 PM 비용을추가하게되며시뮬레이션을하는동안순서도의 True 경로를따라총비용을산출한다. [ 그림 10] InspectionCostA_PUT 함수정의 http://www.korts.co.kr 7
[ 그림 11] InspectionCostA 상수정의 [ 그림 12] A 의검사비용추가 블록의속성 조건부블록 ([ 그림 5]) 에서마모가최종검사후에발생했다고결정되면검사하는동안에잠 재된고장상태를찾지못했다는것을의미한다. 결과적으로그품목은기능고장이일어날 것이므로수리비용을구해야한다. 이럴경우 False 경로를따라시뮬레이션이진행된다. 다음은기능고장에대해수리하는비용을추가하기위해사용될 Standard Block, 확률변수및상수에대한것이다. "A의고장비용 " 블록 ([ 그림 13]) 에서정의된방정식에따라수리비용을구하게되며, 수리시간 ([ 그림 14] x [ 그림 15]) 에영향을받는다. 그런다음검사주기로나누어단위시간당비용을구한다. 8 http://www.korts.co.kr
[ 그림 13] A 의고장비용 블록의속성 [ 그림 14] 수리시간에대한확률변수정의 [ 그림 15] DowntimeCostPerHourA 상수정의 검사로향후발생할고장을찾지못했을지라도, 검사가수행되었기때문에모든검사비용을추가해야한다. 이는순서도의 PM( True ) 경로에대해위에서언급한것과같이처리된다. 반면에순서도에서 CM( False ) 경로에대한주기는고장시간이된다. 순서도모형을완성하 http://www.korts.co.kr 9
려면조건부블록의두경로를 [ 그림 1] 에서와같이 Summing Gate 로결합해야한다. Result Storage 블록 ([ 그림 1] 에서단위시간당비용블록 ) 을추가하면총비용에대한값과그에 대한결과를화면에서볼수있다. 시뮬레이션을한번수행하면 "InspectionInterval" 상수로입력한초기값의검사주기에대한기대비용을산출하게된다. 하지만분석목적은검사주기를변화시켜어떤주기가기대비용을최소로하는지를구하는것이다. RENO의 Simulation Console 창에서 Sensitivity Analysis 옵션을사용하면검사구간을상한과하한뿐만아니라증가분을명시하여검사구간을가변적으로설정할수있다. 이예에대한시뮬레이션설정은 [ 그림 16] 과 [ 그림 17] 과같다. [ 그림 16] Simulation Console 창의 General 탭 10 http://www.korts.co.kr
단위시간당비용 [ 그림 17] Simulation Console 창의 Sensitivity Analysis 탭 시뮬레이션이수행되면 단위시간당비용 vs. 검사주기 에대한결과플롯이 [ 그림 18] 과 같이나타난다. 최적검사주기는단위시간당비용을최소로하는시점이최적검사주기가 된다. 여기서는매 60 시간이며이때단위시간당기대비용은 0.093 이된다. ReliaSoft RENO - www.reliasoft.com 0.400 단위시간당비용 vs. 검사주기 Optimum Inspection Interval for Single Task 단위시간당비용 0.336 0.272 0.208 0.144 0.080 38.000 46.000 54.000 62.000 30.000 70.000 검사주기 Flowchart: Optimum Inspection Interval for Single Task - Simulations per run: 20000 - Sensitivity Analysis (One Way ): InspectionInterval - Multiple Analyses Disabled User's Name Company 2009-03-04 오후 7:01:58 [ 그림 18] 단위시간당비용 vs. 검사주기플롯 http://www.korts.co.kr 11
3.1.1 추가로고려할사항 2.1 절에서언급한예제는 RENO를이용하여유지보수에대한최적주기를구한것이다. 비교적간단한예제였지만동일한원리를이용해좀더복잡한형태의순서도나의사결정로직에적용이가능하다. 예를들면, 잠재적고장상태가있을경우항상검출이가능한경우나주어진과업에대한특정검출확률로추정될경우라면검사형태에대해좀더자세하게순서도를만들어야할것이다. 잠재적고장상태의검출확률이 90% 라면 90% 는검출이되어사후보전활동이수행되지만나머지 10% 는고장날때까지동작하게된다. 이러한분석은순서도내에조건부블록을하나추가하면된다. 모형에추가로고려할수있는것은비용에관한요소이다. 예를들면, 검사와사후활동에대한고정된비용대신에복잡한방정식을사용한시간에종속적인변수로만드는것이다. 또한방정식대신비용에대한분포를사용할수도있다. 3.2 과업의일괄처리예제과업의일괄처리 (Packaging) 란여러개별작업을효율적이면서이행가능한유지보수프로그램으로만드는프로세스를말한다. 이를적절하게사용한다면고장이나수리로인한정지시간을줄일수있으며자원을효과적으로활용할수있다. 이번예제는두개이상의유지보수과업을일괄적으로처리하는방법에관한것이다. [ 그림 19] 는두가지과업에대한순서도이다. 이순서도에서각과업은고장분포, 수리시간, 비용, PF 주기등과같은자체의특성이각각정의되어있다. 여기서는하나의검사주기만으로두개의과업에대해일괄처리를하려고한다. 각과업에대한순서도를하나의 Summing Gate로결합하면두개의과업을함께수행할때의단위시간당기대비용을최소화하게된다. 12 http://www.korts.co.kr
[ 그림 19] 두개과업의최적화를위한순서도 여러과업의일괄처리를위한더효율적인방법은각과업의특성을파악하기위해일반적인모형을만들고 RENO 프로젝트내에서표로통합하는것이다. [ 그림 22] 는이에대한순서도를보여준다. 일반적인모형은 Start Flag 블록으로시작하고, 현재시뮬레이션을수행하고있는과업에대해기록하는 Counter 블록 ([ 그림 20]) 을그다음에연결한다. 시뮬레이션을할때마다 Counter 블록은 1씩증가한다. 다음은 Conditional 블록 ([ 그림 21]) 으로시뮬레이션이모형내의모든과업을분석했는지를확인한다. 이것은카운터블록의값과모형내에있는과업의총수를비교하게된다. [ 그림 20] Counter 블록의속성 http://www.korts.co.kr 13
[ 그림 21] Conditional 블록의속성 모든과업에대해분석했다면모든비용의합계는 Storage 블록을이용하여얻을수있다. 모든과업에대해분석하지않았다면순서도를기반으로시뮬레이션을하게된다. 몇번의검사가수행되었는지와최종검사시간에대한정보를저장하기위해몇개의블록을추가한다. 순서도의끝에는 Start Flag에다시연결하기위해 Go to Flag를추가한다. [ 그림 22] 여러과업을위한일반적인순서도 14 http://www.korts.co.kr
각과업의특성을파악할수있도록 Table 을만들어각데이터를저장한다. 이표를이용하여 사용자는확률변수나상수를추가할수있으며이를모형에추가할수도있다. [ 그림 23] 은 일괄처리를위한두가지과업의입력정보를갖고있는표이다. [ 그림 23] Table 속성 위표는함수에대한변수를만들때사용된다. 예를들면, [ 그림 24] 의 Failure_Function 함수는해당품목이와이블분포를따르며 [ 그림 23] 의 Input_Data 표에서모수에대한정보를가져온것이다. 순서도에서 "Get Failure" 블록은함수를참조하는것으로고장시간을얻기위한것이다. 수리시간을얻기위한함수에서도동일한로직이사용된다. [ 그림 24] Failure_Function 함수정의 http://www.korts.co.kr 15
[ 그림 25] Get Failure 블록정의 순서도내의대다수블록은동일한방법으로그표를참조한다. 예를들어, 새로운과업을추 가해야한다면, 새블록을추가할필요가없으며, 변수나상수를새로추가할필요도없다. 단 지표에추가해야할과업의특성을추가하면된다. 4. 결론 3절에서는한개의유지보수과업에대한최적주기와과업의일괄처리를최적화하기위해 RENO 소프트웨어를이용한예제를보여주었다. 유지보수에대한효율성과유연성에대한요구가점차증가하고있기때문에이러한형태의모델링방법은유지보수를계획하는사람들에게현상황을변경하거나적합한계획을새로수립하는데유용하게이용될수있다. 게다가 RENO의시뮬레이션기법을이용하면복잡한유지보수문제를해결하는데소요되는비용과시간을절약할수있다. 또한여러과업을한번에분석할때많은연산이필요하지만짧은시간내에해결할수있다. 5. 참고문헌 [1] Moubray, John, Reliability-Centered Maintenance II, New York: Industrial Press, 1997. [2] SAE JA1011, Evaluation Criteria for Reliability-Centered Maintenance Processes, 1999. [3] SAE JA1012, A Guide to the Reliability-Centered Maintenance Standard, 2002. [4] ReliaSoft, Reliability Edge, http://www.reliasoft.com/newsletter/v9i2/index.htm 16 http://www.korts.co.kr
주소 : 서울시송파구오금동 80-7 큐빗빌딩 3 층 전화 :02-409-6701 팩스 :02-409-6721 Email: info@korts.co.kr Web site: www.korts.co.kr http://www.korts.co.kr 17