Need Help in Monte Carlo and comparing operational sequence
2 ビュー (過去 30 日間)
古いコメントを表示
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
r2=rand(n,1);
r3=rand(n,1);
r4=rand(n,1);
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: <http://books.google.no/books?id=b6I4MdiVgn8C&printsec=frontcover&dq=roy+billinton&hl=no&ei=IoS1TcDmE8XBswaJjMHgDA&sa=X&oi=book_result&ct=result&resnum=2&ved=0CDAQ6AEwAQ#v=onepage&q=monte%20carlo&f=false>
Thanks
4 件のコメント
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: http://www.mathworks.com/matlabcentral/fileexchange/47758-sensitivity-analysis-in-simulink-models-with-monte-carlo-method
採用された回答
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 件のコメント
その他の回答 (1 件)
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 件のコメント
Richard Willey
2011 年 4 月 25 日
Markov chains are the standard way to model this type of problem (so long as the right assumptions hold). Is there a specific reason why you can't use a Markov chain?
参考
カテゴリ
Help Center および File Exchange で Markov Chain Models についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!