Моделирование систем с разным распределением времени безотказной работы

Лабораторная работа, 03 Июня 2013, автор: пользователь скрыл имя

Описание работы


Задание. Разработать программу, моделирующую работу систем, описанных экспоненциальным распределением и распределением Релея. Приложение должно обеспечивать следующие функции:
Переключение вида распределения;
Задание параметра распределения;
Задание количества испытаний

Файлы: 1 файл

Отчёт.docx

— 186.43 Кб (Скачать файл)

    Button1: TButton;

    Series1: TBarSeries;

    Series2: TFastLineSeries;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  mas1 :array of integer;

  mas2 : array of real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Clear;Edit2.Clear;Edit3.Clear;

end;

{Функция вычисления факториала}

function factorial (n : integer) : real;

begin

if (n < 1) then

result := 1

else

if (n = 1) then

result := 1

else

result := n * factorial(n - 1);

end;

procedure TForm1.Button1Click(Sender: TObject);

var

x, t, sum, pSys, counter : real;

m, i, max, j, p, count : integer;

begin

SetLength(mas1, StrToInt(Edit3.Text));

SetLength(mas2, StrToInt(Edit3.Text));

count := StrToInt(Edit3.Text);

for i := 0 to count - 1 do

begin

mas1[i] := 0;

mas2[i] := 0;end;

randomize;

counter := StrToFloat(Edit2.Text);

for i := 0 to count - 1 do

begin

sum := 0;

m := 0;

while (sum < counter) do

begin

x := random;

t := (-ln(1 - x) / StrToFloat(Edit1.Text));

sum := sum + t;

inc(m); //подсчёт числа отказов

end;

mas1[i] := m; //занесение в массив экспериментальных значений

end;

max := mas1[1]; //поиск максимального значения

for i := 0 to count - 1 do

begin

if (mas1[i] > max) then

max := mas1[i];

end;

{Испытания с равным количеством отказов}

for i := 0 to max do

for j := 0 to count - 1 do

if (mas1[j] = i) then

mas2[i] := mas2[i] + 1;

for i := 1 to max do

mas2[i] := mas2[i] / count;

{Построение гистограммы}

Series2.Clear;

p := 1;

while (p < (max + 0.1)) do

begin

Series2.AddXY(p, mas2[p]);

inc(p);

end;

{Построение расчётного графика}

Series1.Clear;

p := 0;

while (p < (max + 0.1)) do

begin

pSys := Math.Power((StrToFloat(Edit1.Text) * StrToFloat(Edit2.Text)), p) * exp((-1) * StrToFloat(Edit1.Text) * StrToFloat(Edit2.Text)) / factorial(p);

Series1.AddXY(p + 1, pSys);

inc(p);end;end;end.

 

 

Вывод: В ходе лабораторной работы были проведены исследования  в результате которых было выявлено, что с увеличением числа испытаний экспериментальные значения частот количеств отказов приближаются к расчётным.


Информация о работе Моделирование систем с разным распределением времени безотказной работы