Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Министерство Образования Российской Федерации
Новосибирский Государственный Технический Университет
Лабораторная работа №3
по дисциплине
Моделирование
«Имитационное моделирование случайных событий»
Вариант 5
Факультет АВТ Преподаватель Альсова О.К.
Группа АП-319
Студент Устюжанин И.В.
Новосибирск
2006
1. Цели работы
2. Задание к лабораторной работ
Задача 1.2.
Оценить надежность изделия, состоящего из трех узлов и устройств A, B, C, D, E, F. Узел выходит из строя, когда выходят из строя все устройства, входящие в узел. Изделие выходит из строя, когда отказывает хотя бы один из его узлов. Вероятности безотказной работы всех устройств равны соответственно: P(A)=0,8; P(B)=0,7; P(C)=0,95; P(D)=0,85; P(E)=0,9; P(F)=0,7. Рассчитать вероятность безотказной работы всей системы.
Алгоритм работы программы имитации:
Оценка характеристик, рассчитанных на основе применения метода имитационного моделирования:
Значение вероятности, рассчитанной аналитическим методом, статистически близко с оценкой вероятности, рассчитанной на основе применения метода имитационного моделирования. Программная реализация метода оказывается достаточно простой. Увеличение количества экспериментов улучшает эту оценку, хотя и приводит к увеличению длительности вычислительного процесса. Т.о., применение метода имитационного моделирования оказывается достаточно эффективным, поэтому его можно применять для решения трудоемких задач, решение которых (аналитическим методом) может занять достаточно большое время.
Задача 10.
Техническое устройство, состоящее из 3 узлов работало в течение времени Т. За это время первый узел оказывается неисправным с вероятностью второй с вероятностью и третий с вероятностью . Оценить вероятность того, что оказался неисправен только один узел; что оказался неисправным только второй узел.
p1 = 0.15
p2 = 0.1
p3 = 0.2
А устройство проработало
H1 не отказал ни один узел
H2 отказал 1 узел
H3 отказал 2 узел
H4 отказал 3 узел
H5 отказали 1 и 2 узлы
H6 отказали 1 и 3 узлы
H7 отказали 2 и 3 узлы
H8 отказали все узлы
Алгоритм работы программы имитации:
Оценка вероятностей, рассчитанных на основе применения метода имитационного моделирования:
Значения вероятностей, рассчитанных аналитическим методом, статистически близки с оценками вероятностей, рассчитанных на основе применения метода имитационного моделирования. Программная реализация метода оказывается достаточно простой. Однако для получения более точной оценки приходится увеличивать количество экспериментов, что приводит к увеличению времени моделирования и трудоемкости алгоритма. Поэтому 10-100 тыс. экспериментов оказывается достаточно для довольно эффективной оценки вероятностей.
function varargout = main(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @main_OpeningFcn, ...
'gui_OutputFcn', @main_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function main_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = main_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pushbutton1_Callback(hObject, eventdata, handles)
lab3_1;
function pushbutton2_Callback(hObject, eventdata, handles)
lab3_2;
function pushbutton3_Callback(hObject, eventdata, handles)
close;
%Задача 1.2
function varargout = lab3_1(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @lab3_1_OpeningFcn, ...
'gui_OutputFcn', @lab3_1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function lab3_1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = lab3_1_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit1_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit2_Callback(hObject, eventdata, handles)
function pushbutton1_Callback(hObject, eventdata, handles)
n=str2num(get(handles.edit1,'String'));
p=[.8 .7 .95 .85 .9 .7];
l=0;
for i=1:n
for j=1:100
a=rand(1,6);
for k=1:6
if a(k)<=p(k) b(k)=1;
else b(k)=0;
end
end
if (b(1)&(b(2)|b(3)|b(4))&(b(5)|b(6))) l=l+1; end
end
end
set(handles.edit2, 'String', num2str(l/(100*n)));
function pushbutton2_Callback(hObject, eventdata, handles)
close;
%Задача 10
function varargout = lab3_2(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @lab3_2_OpeningFcn, ...
'gui_OutputFcn', @lab3_2_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function lab3_2_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = lab3_2_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit1_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit2_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit3_Callback(hObject, eventdata, handles)
function pushbutton1_Callback(hObject, eventdata, handles)
n=str2num(get(handles.edit1,'String'));
if n<1 break; end
a=[.15 .1 .2];k1=0;k2=0;
for i=1:n
for j=1:100
u1=rand;
u2=rand;
u3=rand;
while (u1<a(1))&&(u2<a(2))&&(u3<a(3))
u1=rand;
u2=rand;
u3=rand;
end
if (u1<=a(1))&&(u2>a(2))&&(u3>a(3))||...
(u1>a(1))&&(u2<=a(2))&&(u3>a(3))||...
(u1>a(1))&&(u2>a(2))&&(u3<=a(3))
k1=k1+1;
end
if (u1>a(1))&&(u2<=a(2))&&(u3>a(3))
k2=k2+1;
end
end
end
set(handles.edit2, 'String', num2str(k1/(100*n)));
set(handles.edit3, 'String', num2str(k2/(100*n)));
function pushbutton2_Callback(hObject, eventdata, handles)
close;
F
E
C
B
A