Файл: Отчет защищен с оценкой преподаватель доцент, канд техн наук, доцент.docx
Добавлен: 12.01.2024
Просмотров: 105
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИфедеральное государственное автономное образовательное учреждение высшего образования«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ» КАФЕДРА № 52ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ__________________ПРЕПОДАВАТЕЛЬ
Санкт-Петербург2022
Теоретическая функция надежности:Теоретическая функция интенсивности отказа:В результате моделирования системы получаем следующие графики:Рис.5 Теоретический и практический графики функции надежностиРис.6 Теоретический и практический графики интенсивности отказов
#include
#include
using namespace std;
double p[] = { 0.6, 0.4 };
double lambda[] = { 0.7, 1.3 };
int N = 10000;
void write(string filename, vector Ti, int num)
{
vector R;
vector Lambda;
vector R_T;
vector Lambda_T;
int Nt = 0;
int Ntdt = 0;
fstream outR(filename + "_Pr_R.txt", ios::out);
fstream outL(filename + "_Pr_L.txt", ios::out);
for (double t = 0; t < 3; t += 0.01)
{
for (int i = 0; i < N; ++i)
{
if (Ti[i] >= t)
{
Nt++;
}
if (Ti[i] >= (t + 0.001))
{
Ntdt++;
}
}
R.push_back((double)Nt / (double)N);
Lambda.push_back(((double)Nt - (double)Ntdt) / ((double)Nt * 0.001));
outR << t << " " << R[R.size() - 1] << endl;
outL << t << " " << Lambda[Lambda.size() - 1] << endl;
Nt = 0;
Ntdt = 0;
}
outR.close();
outL.close();
outR.open(filename + "_Te_R.txt", ios::out);
outL.open(filename + "_Te_L.txt", ios::out);
for (double t = 0; t < 3; t += 0.01)
{
if (num == 1)
{
R_T.push_back(exp(-lambda[0] * t) * p[0] + exp(-lambda[1] * t) * p[1]);
Lambda_T.push_back(-((exp(-lambda[0] * t) * p[0] * (-lambda[0]) + exp(-lambda[1] * t) * p[1] * (-lambda[1])) / R_T[R_T.size() - 1]));
}
if (num == 2)
{
R_T.push_back(exp(-lambda[0] * t) * exp(-lambda[1] * t));
Lambda_T.push_back(lambda[0] + lambda[1]);
}
if (num == 3)
{
R_T.push_back(exp(-lambda[0] * t) + exp(-lambda[1] * t) - exp(-(lambda[0] + lambda[1]) * t));
Lambda_T.push_back(-(((-lambda[0] * exp(-lambda[0] * t)) - (lambda[1] * exp(-lambda[1] * t)) + (lambda[0] + lambda[1]) * exp(-(lambda[0] + lambda[1]) * t)) / (R_T[R_T.size() - 1])));
}
outR << t << " " << R_T[R_T.size() - 1] << endl;
outL << t << " " << Lambda_T[Lambda_T.size() - 1] << endl;
}
outR.close();
outL.close();
}
void model1()
{
vector Ti;
srand(time(0));
for (int i = 0; i < N; ++i)
{
double tmp = ((double)rand() + 1) / RAND_MAX;
if ((rand() / RAND_MAX) > p[0])
{
Ti.push_back(-log(tmp) / lambda[1]);
}
else
{
Ti.push_back(-log(tmp) / lambda[0]);
}
}
write("m1", Ti, 1);
}
void model2()
{
vector Ti;
for (int i = 0; i < N; ++i)
{
double first = -log((double)rand() / RAND_MAX) / lambda[0];
double second = -log((double)rand() / RAND_MAX) / lambda[1];
Ti.push_back(min(first, second));
}
write("m2", Ti, 2);
}
void model3()
{
vector Ti;
double first = 0, second = 0;
for (int i = 0; i < N; ++i)
{
double tmp = ((double)rand() + 1) / RAND_MAX;
first = -log(tmp) / lambda[0];
tmp = ((double)rand() + 1) / RAND_MAX;
second = -log(tmp) / lambda[1];
Ti.push_back(max(first, second));
}
write("m3", Ti, 3);
}
int main()
{
model1();
model2();
model3();
}
| Доцент, канд.техн.наук, доцент | | | | Н.В. Марковская |
| должность, уч. степень, звание | | подпись, дата | | инициалы, фамилия |
| ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №3 |
ИССЛЕДОВАНИЕ ИНТЕНСИВНОСТИ ОТКАЗОВ ДЛЯ НЕВОССТАНАВЛИВАЕМЫХ СИСТЕМ |
| по курсу: НАДЕЖОСТЬ ИНФОКОММУНИКАЦИОННЫХ СИСТЕМ |
| |
| |
| СТУДЕНТ ГР. № | 5922 | | | | К. Д. Камышников | |
| | номер группы | | подпись, дата | | инициалы, фамилия | |
-
Цели работы:
-
Выбор периода жизни системы и соответствующей ему статистической модели; -
Имитационное моделирование процесса функционирования невосстанавливаемой системы для выбранного периода жизни системы; -
Построение зависимости ????̂(????) оценки интенсивности отказов от времени.
-
Ход работы
-
Период приработки
-
Период нормального функционирования
-
Период старения
Теоретическая функция надежности:Теоретическая функция интенсивности отказа:В результате моделирования системы получаем следующие графики:Рис.5 Теоретический и практический графики функции надежностиРис.6 Теоретический и практический графики интенсивности отказов
-
Вывод
-
Листинг
#include
#include
using namespace std;
double p[] = { 0.6, 0.4 };
double lambda[] = { 0.7, 1.3 };
int N = 10000;
void write(string filename, vector
{
vector
vector
vector
vector
int Nt = 0;
int Ntdt = 0;
fstream outR(filename + "_Pr_R.txt", ios::out);
fstream outL(filename + "_Pr_L.txt", ios::out);
for (double t = 0; t < 3; t += 0.01)
{
for (int i = 0; i < N; ++i)
{
if (Ti[i] >= t)
{
Nt++;
}
if (Ti[i] >= (t + 0.001))
{
Ntdt++;
}
}
R.push_back((double)Nt / (double)N);
Lambda.push_back(((double)Nt - (double)Ntdt) / ((double)Nt * 0.001));
outR << t << " " << R[R.size() - 1] << endl;
outL << t << " " << Lambda[Lambda.size() - 1] << endl;
Nt = 0;
Ntdt = 0;
}
outR.close();
outL.close();
outR.open(filename + "_Te_R.txt", ios::out);
outL.open(filename + "_Te_L.txt", ios::out);
for (double t = 0; t < 3; t += 0.01)
{
if (num == 1)
{
R_T.push_back(exp(-lambda[0] * t) * p[0] + exp(-lambda[1] * t) * p[1]);
Lambda_T.push_back(-((exp(-lambda[0] * t) * p[0] * (-lambda[0]) + exp(-lambda[1] * t) * p[1] * (-lambda[1])) / R_T[R_T.size() - 1]));
}
if (num == 2)
{
R_T.push_back(exp(-lambda[0] * t) * exp(-lambda[1] * t));
Lambda_T.push_back(lambda[0] + lambda[1]);
}
if (num == 3)
{
R_T.push_back(exp(-lambda[0] * t) + exp(-lambda[1] * t) - exp(-(lambda[0] + lambda[1]) * t));
Lambda_T.push_back(-(((-lambda[0] * exp(-lambda[0] * t)) - (lambda[1] * exp(-lambda[1] * t)) + (lambda[0] + lambda[1]) * exp(-(lambda[0] + lambda[1]) * t)) / (R_T[R_T.size() - 1])));
}
outR << t << " " << R_T[R_T.size() - 1] << endl;
outL << t << " " << Lambda_T[Lambda_T.size() - 1] << endl;
}
outR.close();
outL.close();
}
void model1()
{
vector
srand(time(0));
for (int i = 0; i < N; ++i)
{
double tmp = ((double)rand() + 1) / RAND_MAX;
if ((rand() / RAND_MAX) > p[0])
{
Ti.push_back(-log(tmp) / lambda[1]);
}
else
{
Ti.push_back(-log(tmp) / lambda[0]);
}
}
write("m1", Ti, 1);
}
void model2()
{
vector
for (int i = 0; i < N; ++i)
{
double first = -log((double)rand() / RAND_MAX) / lambda[0];
double second = -log((double)rand() / RAND_MAX) / lambda[1];
Ti.push_back(min(first, second));
}
write("m2", Ti, 2);
}
void model3()
{
vector
double first = 0, second = 0;
for (int i = 0; i < N; ++i)
{
double tmp = ((double)rand() + 1) / RAND_MAX;
first = -log(tmp) / lambda[0];
tmp = ((double)rand() + 1) / RAND_MAX;
second = -log(tmp) / lambda[1];
Ti.push_back(max(first, second));
}
write("m3", Ti, 3);
}
int main()
{
model1();
model2();
model3();
}