Need Help in Monte Carlo and comparing operational sequence

15 ビュー (過去 30 日間)
Hammad Awan
Hammad Awan 2011 年 4 月 22 日
コメント済み: YASIR YAQOOB 2019 年 12 月 18 日
I need help to run a Monte Carlo Simulation. Consider a system which has two components, working in parallel such that system fails when both the components fail. Each component can be either operational or failed. So far I have been successful in generating random numbers and arrays (n by 1) which represents operational sequence of components. The first and second element of matrix B & D represents time to failure and repair respectively and so forth. Now I need to compare the operational sequence of components in order to find out when and how long actually system failed (overlapping failures).
lam1=0.01; %failure rate of component 1
meu1=0.003; %repair rate of component 1
lam2=0.0024; %failure rate of component 2
meu2=0.003; %repair rate of component 2
n=10000; %number of simulations
r1=rand(n,1); %random numbers
TTF1 = (-1/lam1)*log(r1); %time to failure of component 1
TTR1 = (-1/meu1)*log(r2); %time to repair of component 1
A = [TTF1 TTR1];
B = reshape(A',n*2,1); %component 1 operational sequence
TTF2 = (-1/lam2)*log(r3); %time to failure of component 2
TTR2 = (-1/meu2)*log(r4); %time to repair of component 2
C = [TTF2 TTR2];
D = reshape(C',n*2,1); %component 2 operational sequence
Please guide me how this be accomplished in Matlab. Needs a AND logic but since the Times are based on random numbers therefore its difficult to compare the two sequences. Reference to figure 12.21, page 429. Link: <>
  4 件のコメント
Carlos M. Velez S.
Carlos M. Velez S. 2014 年 9 月 5 日
I recommend you this Matlab code for implementation of Monte Carlo method for sensitivity analysis of Simulink models:



Simulink Dude
Simulink Dude 2011 年 4 月 23 日
I would use SimEvents to do this-create two queues where I would model the entity in the two parallel paths as representing a failure. A server that services each of those entities would function as the repair man on the two lines. Each time an entity departs the server on either queue, simply generate a STEP signal in Simulink. Disable this when a new entity is generated. AND them as someone suggested to get the times you so desire.
  2 件のコメント
YASIR YAQOOB 2019 年 12 月 18 日
have you got answer?


その他の回答 (1 件)

Richard Willey
Richard Willey 2011 年 4 月 25 日
Hi Hammad
It's difficult to answer this without more information about your model.
The easiest way to implement this would be to create a Markov Chain. However, this involves some explicit assumptions about independence.
The following MATLAB Central submission has sample code that might prove useful
  3 件のコメント
Hammad Awan
Hammad Awan 2011 年 4 月 25 日
There is a book by Roy Billinton:
Page 429 and Figure 12.21
He has not used Markov chain, and simulated and calculated the system unavailability. Although I think its more or less Markov Chain.



Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by