Пример выполнения задачи.
Проводились испытания на надёжность объектов. Испытания проводились до отказа всех объектов. При этом время выхода из строя каждого объекта исчислялось со времени начала испытания. Определить вероятности безотказной работы на каждом интервале времени, интенсивности отказов на этих интервалах, среднее время наработки на отказ (время безотказной работы), построить графики зависимости вероятности безотказной работы и интенсивности отказов во времени. Результаты вычислений привести в таблицу.
Решение.
№ интервала времени |
от начала испытаний, часов |
, часов |
, шт |
|
P(t) |
, часов | |
1 |
500 |
250 |
160 |
40 |
0,8 |
4,4 |
2105 |
2 |
1000 |
750 |
126 |
34 |
0,63 |
4,76 | |
3 |
1500 |
1250 |
106 |
20 |
0,53 |
3,45 | |
4 |
2000 |
1750 |
91 |
15 |
0,455 |
3,04 | |
5 |
2500 |
2250 |
84 |
7 |
0,42 |
1,6 | |
6 |
3000 |
2750 |
76 |
8 |
0,38 |
2 | |
7 |
3500 |
3250 |
62 |
14 |
0,31 |
4,05 | |
8 |
4000 |
3750 |
37 |
25 |
0,185 |
10 | |
9 |
4500 |
4250 |
0 |
37 |
0 |
40 |
*Жирным шрифтом выделены входные данные
Определяем средние промежутки времени: ;;;;;;;;.
Определяем количество оставшихся в строю объектов к моментам времени :;;;;;;;;
Определяем вероятности безотказной работы на каждом промежутке времени: ;;;;;;;;.
Определяем интенсивности отказов на каждом промежутке времени: ;;;;;;;;.
Определяем среднее время наработки на отказ.
Строим графики зависимости безотказной работы и интенсивности отказов во времени. График изменения интенсивности отказов во времени
Порядок выполнения работы
Запускаем программу С++.
Создаем новый файл File→New…(<Ctrl>+<N>)
В диалоговом окне «New» на вкладкеFilesвыбираемC++SourceFile, задаем имя файлу и его расположение.
Пишем код программы для расчета вычислений: Подключаем необходимые заголовочные файлы 1. #include "iostream.h" Пишем главную функцию программы 2. int main() 3. { Объявляем переменные, которые нам даны по заданию 4. int N=200; 5. const int n=9; 6. int t_i[n]={500,1000,1500,2000,2500,3000,3500,4000,4500}; 7. int delta_n_i[n]={40,34,20,15,7,8,14,25,37};
Объявляем переменные и массивы, которые нам понадобятся для расчетов и сразу обнуляем переменные 8. double T_M=0; 9. double t_i_cp[n]; 10. double n_t_i[n]; 11. double P_t[n]; 12. double lyamb_t[n];
Обнуляем значения массивов 13. for(int i=0;i<n;i++) 14. { 15. t_i_cp[i]=0; 16. n_t_i[i]=0; 17. P_t[i]=0; 18. lyamb_t[i]=0; 19. }
Зная формулы, определяющие средние промежутки времени: ; , при , где— количество объектов, над которыми проводились испытания. . запрограммируйте расчеты t_i_cp[0]=(t_i[0]+0)/2; for(i=1;i<n;i++) { t_i_cp[i]=(t_i[i]+t_i[i-1])/2; }
Определяем количество оставшихся в строю объектов к моментам времени, по формуле. int sum=0; for(i=0;i<n;i++) { for(int j=i;j<=i;j++) { sum=sum+delta_n_i[j]; } n_t_i[i]=N-sum; }
По формуле определяем вероятности безотказной работы на каждом промежутке времени: for(i=0;i<n;i++) { P_t[i]=n_t_i[i]/N; }
Определяем интенсивности отказов на каждом промежутке времени зная формулы: для первого элемента — , где,; для всех остальных элементов —, где,, при; lyamb_t[0]=delta_n_i[0]/(((N+n_t_i[0])/2)*t_i[0]); for(i=1;i<n;i++) { if(i==n-1) lyamb_t[i]=delta_n_i[i]/(((n_t_i[i-1]+n_t_i[i])/2)*(t_i[i]-t_i[i-1])); else lyamb_t[i]=delta_n_i[i]/(((n_t_i[i-1]+n_t_i[i])/2)*(t_i[i]-t_i[i-1])); }
Определяем среднее время наработки на отказ по формуле: for(i=0;i<n;i++) { T_M+=delta_n_i[i]*t_i_cp[i]; }
Выводим полученные данные на экран: cout<<"i\t"<<"t_i\t"<<"t_i_cp\t"<<"n_t_i\t"<<"d_n_i\t"<<"P_t\t"<<"lyamb_t\n"; for(i=0;i<n;i++) { cout<<i<<"\t"<<t_i[i]<<"\t"<<t_i_cp[i]<<"\t"; cout<<n_t_i[i]<<"\t"<<delta_n_i[i]<<"\t"<<P_t[i]<<"\t"<<lyamb_t[i]<<"\n"; } T_M=T_M/N; cout<<"T_M = "<<T_M<<"\n"; return 0; }
Если программа успешно выполняется, то по завершению должно вернуть ноль 25. return 0; 26. }
Откомпилируйте проект, исправьте все ошибки и предупреждения.
Создайте исполнительный файл, с возможностью вывода данных на экран.