Дослідження математичних моделей оптимізації обслуговування складних систем

Створення системи експериментального дослідження математичних моделей оптимізації обслуговування складних систем. Визначення критеріїв оптимізації обслуговуваних систем та надання рекомендацій щодо часу проведення попереджувальної профілактики.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 22.10.2012
Размер файла 3,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

(3.9)

Тому у момент відмови починається позаплановий аварійно-профілактичний ремонт, який триває час Тапаппп). Після проведення будь-якої з перерахованих відновних робіт система повністю оновлюється. У момент закінчення відновних робіт подальша попереджувальна профілактика перепланується, і далі весь процес обслуговування повторюється.

Визначимо випадковий процес що характеризує стан досліджуваної систему. Хай Z >0, тоді x(t):

· E0, якщо в момент t система працездатна і повністю пропрацює час, більший або рівний z;

· E1, якщо у момент t система працездатна і повністю пропрацює час, менший z;

· E2, якщо у момент t в системі проводиться позаплановий аварійно-профілактичний ремонт z;

· E3, якщо у момент t в системі проводиться попереджувальна профілактика.

Размещено на http://www.allbest.ru/

Рис. 3.2 Діаграма переходів процесу x(t) (Стратегія В)

Певний випадковий процес є таким, що регенерує, якщо припустити, що хоч би одна з випадкових величин в час безвідмовної роботи, в період попереджувальні профілактик або у час відновлення є безперервною випадковою величиною.

Проведемо розрахунок за статистичними даними. Методика визначення мінімаксних періодів проведення планових попереджувальних профілактик гарантованих значень показників якості функціонування наступна.

Початкові дані для розрахунку :

· вектор у = (y0=0,y1,y2,.,yn) і вектор р = (р0=0, р1, р2,., рn);

· середня тривалість планової попереджувальної профілактики Тpp;

· середня тривалість позапланового аварійно-профілактичного ремонту Тap;

· втрати за одиницю часу при проведенні планової попереджувальної профілактики Сpp;

· втрати за одиницю часу при проведенні позапланового аварійно-профілактичного ремонту Сap;

· прибуток C0, одержуваний за одиницю часу безвідмовної роботи системи;

· оперативний час Z роботи системи, необхідний для виконання завдання.

Наведемо математичні формули для розрахунку мінімаксних періодів профілактик і гарантованих значень показників якості функціонування.

Коефіцієнт готовності. Визначаємо номер k0 при якому досягає максимуму вираз:

де k = 0,1,2..., n.

Якщо максимум Ak досягається при k0<n, то планові попереджувальні профілактики слід проводити у момент ф0 = yk0+1-0. Якщо k0 = n, то ф0 = , тобто планові попереджувальні профілактики проводити недоцільно.

Розрахунок вірогідності виконання завдання.

Визначається номер k0 (0 ? k0 ? n), для якого yk0 - z ?0, yk0+1 - z > 0.

Визначається максимальне значення відношення виразів (3.6) до (3.7).

при ф [0 , yk+1 - z],

(3.11)

при ф [ym - z , ym+1 - z].

Точка, при якій досягається максимум вираз визначає мінімаксний період проведення попереджувальних профілактик.

Проведемо розрахунок по функції розподілу часу безвідмовної роботи системи. Початкові дані для розрахунку:

· функція розподілу часу безвідмовної роботи системи F(t);

· середня тривалість планової попереджувальної профілактики Тpp;

· середня тривалість позапланового аварійно-профілактичного ремонту Тap;

· втрати за одиницю часу при проведенні планової попереджувальної профілактики Сpp;

· втрати за одиницю часу при проведенні позапланового аварійно-профілактичного ремонту Сap;

· прибуток C0, одержуваний за одиницю часу безвідмовної роботи системи;

· оперативний час Z роботи системи, необхідний для виконання завдання.

· коефіцієнт готовності:

·

(3.12)

· середні питомі витрати :

(3.13)

· середній питомий прибуток :

(3.14)

· вірогідність виконання завдання :

(3.15)

Визначимо гарантовані значення показників якості функціонування і терміни проведення планових попереджувальних профілактик системи, для якої задані наступні початкові характеристики:

Tpp = 1 ч; Тap = 2 ч; сpp=1 од/г; сap=2 од/г; z = 25 ч; с0 = 5 од/г;

y = (y0 = 0;.y1 = l0; у2 = 20; у3 = 30; у4 = 40),

р = (р0 = 0; р1 = 0,1; р2 = 0.15; р3 = 0,3; р4 = 0,5).

Обчислимо величини Ak - коефіцієнта готовності.

Таблиця 3.3

Величини коефіцієнта готовності

А0

А1

А2

A3

А4

0,891

0,938

0,950

0,852

0,952

Отже, набуваємо гарантоване значення коефіцієнта готовності, рівного 0,952, якщо попереджувальні профілактики проводити через час ф0=40 год.

Вірогідність виконання завдання.

Визначаємо величину k0. Для даних, приведених в таблиці 3.4, k0=2 (y2 - z < 0, y3 - z > 0).

Таблиця 3.4

Величини вірогідності виконання завдання

y = 0

y = 5 - О

y = 5 + О

y = 10 - О

y = 10 + О

у = 15

0

0,924

0,76

0,594

0,581

0,600

Максимум досягається при у = 5 - О і рівний 0,924. Отже, профілактики потрібно проводити через 5 - О год. і гарантоване значення вірогідності виконання завдання буде рівне 0,924.

Обчислюємо величини середніх питомих витрат. Результати зведені в таблицю 3.5:

Таблиця 3.5

Величини середніх питомих витрат

k = 0

k = 1

k = 2

k = 3

k = 4

0,144

0,0829

0,0775

0,0847

0,1333

Таким чином, одержуємо, що профілактику необхідно проводити через час, що дорівнює 30 год. і при цьому гарантоване значення питомих витрат рівне 0,0775 од/год.

Обчислюємо величини середнього питомого прибутку. Результати зведені в таблицю 3.6:

Таблиця 3.6

Величини середнього питомого прибутку

k = 0

k = 1

k = 2

k = 3

k = 4

4,37

4,61

4,674

4,677

4,55

Остаточно одержуємо, що профілактику необхідно проводити через час, що дорівнює 40 год., при цьому гарантоване значення середнього питомого прибутку рівне 0,4677 од/год.

Результати інших обчислень представлені в таблицях 3.7 і 3.8.

Таблиця 3.7

Розрахунок по функції розподілу

Стратегія

Kг

Pвик

Cпр

Cпот

Стратегія B

0,95

0,92

0,46

0,07

Таблиця 3.8

Розрахунок за статистичними даними

Стратегія

Kг

Pвик

Cпр

Cпот

Стратегія B

0,94

0,92

0,48

0,07

3.4 Стратегія С - стратегія зберігання

Стратегія С - відновлення системи проводиться тільки в наперед призначені моменти часу незалежно від відмов системи.

Для досліджуваної системи передбачається, що час самостійного прояву відмови дорівнює нескінченністі, тобто відмова, що з'явилася в системі, самостійно не виявляється. Для такої системи планується проведення різних відновних робіт (планових), при яких відмови виявляються, усуваються і попереджаються.

Нехай при t=0, коли починається експлуатація системи, призначається проведення планових відновних робіт через випадковий час t, розподілений за законом G(x). Якщо до призначеного моменту з система не відмовила (О>t, де О -- час безвідмовної роботи, розподілений за законом F(x)), то у цей момент проводиться планова попереджувальна профілактика, яка повністю оновлює систему і середня тривалість якої рівна Тpp. Якщо до призначеного моменту система відмовила (О<t), то у цей момент проводиться плановий аварійно-профілактичний ремонт, який повністю оновлює систему і триває в середньому час Тap. Після закінчення планових робіт весь процес обслуговування повністю повторюється.

Визначимо випадковий процес x(t), що характеризує стан системи у момент t, x(t):

· E0, якщо у момент t система працездатна і пропрацює ще час, більший z?0;

· E1, якщо у момент t система працездатна, але повністю пропрацює час, менший z;

· E2, якщо у момент t система простоює в непрацездатному стані (прихована відмова);

· E3, якщо у момент t в системі проводиться плановий аварійно-профілактичний ремонт;

· E4, якщо у момент t в системі проводиться планова попереджувальна профілактика.

Размещено на http://www.allbest.ru/

Рис. 3.3 Діаграма переходів процесу x(t) (Стратегія С)

Описаний процес є таким, що регенерує (наприклад, моментами регенерації є моменти попадання в стан Т0), а в припущенні, що час, ремонту - безперервна випадкова величина, і аперіодичним. При тривалій експлуатації системи характеристики якості функціонування виражаються лінійним для дробу функціоналом.

Розрахунок за статистичними даними. Методика визначення мінімаксних періодів проведення планових попереджувальних профілактик і гарантованих значень показників якості функціонування.

Початкові дані для розрахунку:

· вектор у = (y0=0,y1,y2,.,yn) і вектор р = (р0=0, р1, р2,., рn);

· середня тривалість планової попереджувальної профілактики Тpp;

· середня тривалість позапланового аварійно-профілактичного ремонту Тap;

· втрати за одиницю часу при проведенні планової попереджувальної профілактики Сpp;

· втрати за одиницю часу при проведенні позапланового аварійно-профілактичного ремонту Сap;

· прибуток C0, одержуваний за одиницю часу безвідмовної роботи системи;

· оперативний час Z роботи системи, необхідний для виконання завдання;

· втрати за одиницю часу за наявності в системі прихованої відмови Сp.

Формули для розрахунку мінімаксних періодів і гарантованих значень показників якості функціонування.

Коефіцієнт готовності.

Визначається номер k0, при якому досягається максимум виразів:

при k = 0,1,2,..., n.

Якщо вираз (3.16) більший (3.17 ), то профілактики доцільно проводити через час ф = yk0 + О і гарантоване значення коефіцієнта готовності рівне (3.16). Якщо вираз (3.16) менший (3.17 ), то профілактики доцільно проводити через час ф = yk0+1 - О і гарантоване значення коефіцієнта готовності рівне (3.17).

Розрахунок по функції розподілу часу безвідмовної роботи системи.

Коефіцієнт готовності:

(3.18)

Середні питомі витрати:

(3.19)

Середній питомий прибуток:

(3.20)

Вірогідність виконання завдання:

(3.21)

Визначимо гарантовані значення показників якості функціонування і терміни проведення планових попереджувальних профілактик системи, для якої задані наступні початкові характеристики:

Tpp = 1 год; Тap = 2 год; Сpp=1 од/год; Сap=2 од/год; z = 25 ч; С0 = 5 од/год;

Сp = 2 од/год;

у = (y0 = 0;.y1 =10; у2 = 20; у3 = 30; у4 = 40),

р = (р0 = 0; р1 = 0,1; р2 = 0.15; р3 = 0,3; р4 = 0,5).

Таблиця 3.9

Величини коефіцієнта готовності

k = 0

k = 1

k = 2

k = 3

k = 4

0,818

0,822

0,783

0,736

0,702

Отже, одержали, що попереджувальну профілактику доцільно проводити через час ф =20 - О год і гарантоване значення коефіцієнта готовності рівне 0,822.

Вірогідність виконання завдання.

Визначимо величину k0. У даному випадку k0=2.

Далі визначаємо величини відносин в точках виду уk ± О, уk - z. Результати зведені в таблицю 3.10.

Таблиця 3.10

Величини вірогідності виконання завдання

y=0

y=5 - О

y=5 + О

у=10 - О

у =10 + О

у=20 - О

y=20+О

0

0.70

0.57

0.54

0,53

0,52

0,40

Максимум вірогідності 0,7 досягається при ф =5 - О год.

Середні питомі витрати.

Обчислюємо величини середніх питомих витрат при різних. Результати зведені в таблицю 3.11.

Таблиця 3.11

Величини середніх питомих витрат

k = 0

k = 1

k = 2

k = 3

k = 4

0,378

0,383

0,394

0,630

0,833

Таким чином, результати розрахунку показують, що попереджувальну планову профілактику доцільно проводити через час ф = 20 - О год. і при цьому гарантоване значення середніх питомих втрат буде рівне 0,369 од/год.

Середній питомий прибуток.

Обчислюємо значення середнього питомого прибутку для різних. Результати зведені в таблицю 3.12.

Таблиця 3.12

Величини середнього питомого прибутку

k = 0

k = 1

k = 2

k = 3

k = 4

<0

3,72

3,70

3,84

3,80

8,48

3,48

0,30

0,29

<0

Отже, результати розрахунку показують, що попереджувальні профілактики доцільно проводити через час ф = 20 - О год. і при цьому гарантоване значення середнього питомого прибутку рівне 3,84 од/год.

3.5 Стратегія D - обслуговування при довільному розподілі часу індикації відмов

Стратегія D -- повне відновлення системи проводиться або у момент самостійного прояву відмови, або в наперед призначений календарний момент часу.

Хай в початковий момент t=0 починається експлуатація нової системи, у якої час безвідмовної роботи про розподілено по деякому закону F(x). В момент t=О планується проведення планової попереджувальної профілактики через випадковий час , розподілений по деякому закону G(x). Якщо до призначеного моменту система не відмовила, то проводиться планова, попереджувальна профілактика, яка триває в середньому час Тап і яка повністю оновлює систему. Якщо до призначеного моменту система відмовила, але відмова не виявилася, то факт відмови виявляється в призначений момент і починається плановий аварійно-профілактичний ремонт, середня тривалість якого рівна Тап і який також повністю оновлює систему.

Нарешті, якщо система відмовила, і відмова виявилася до призначеного моменту , то у момент виявлення відмови починається позаплановий аварійно-профілактичний ремонт, середня тривалість якого рівна Тап і після проведення, якого система оновлюється повністю. Після закінчення будь-якої відновної роботи система оновлена, і весь процес обслуговування повторюється незалежно від минулого.

Визначимо випадковий процес х(t), що характеризує стан системи у момент t:

· E0, якщо у момент t система працездатна і ще пропрацює час, більший z;

· E1, якщо у момент t система працездатна, але повністю пропрацює час, менший z;

· E2, якщо у момент t система простоює в непрацездатному стані (прихована відмова);

· E3, якщо у момент t в системі проводиться позаплановий аварійно-профілактичний ремонт;

· E4, якщо у момент t в системі проводиться плановий аварійно-профілактичний ремонт;

· E5, якщо у момент t в системі проводяться планова попереджувальна профілактика.

Розрахунок по функції розподілу часу безвідмовної роботи системи.

Початкові дані для розрахунку:

· функція розподілу часу безвідмовної роботи системи F(x);

· середня тривалість планової попереджувальної профілактики Тpp;

· середня тривалість позапланового аварійно-профілактичного ремонту Тap;

· втрати за одиницю часу при проведенні планової попереджувальної профілактики Сpp;

· втрати за одиницю часу при проведенні позапланового аварійно-профілактичного ремонту Сap;

· прибуток C0, одержувана за одиницю часу безвідмовної роботи системи;

· оперативний час Z роботи системи, необхідне для виконання завдання;

· втрати за одиницю часу за наявності в системі прихованої відмови Сp.

Коефіцієнт готовності:

(3.22)

Середні питомі витрати:

(3.23)

Середній питомий прибуток:

(3.24)

Вірогідність виконання завдання:

(3.25)

Визначимо гарантовані значення показників якості функціонування і терміни проведення планових попереджувальних профілактик системи, для якої задані наступні початкові характеристики:

Tpp = 1 год.; Тap = 2 год.;Сpp=1 од/год; Сap=2 од/год; z = 25 год.;

С0 = 5 од/год; Сp = 2 од/год;

у = (y0 = 0; y1 =10; у2 = 20; у3 = 30; у4 = 40),

р = (р0 = 0; р1 = 0,1; р2 = 0.15; р3 = 0,3; р4 = 0,5).

Коефіцієнт готовності.

Таблиця 3.13

Величини коефіцієнта готовності

k = 0

k = 1

k = 2

k = 3

k = 4

0,818

0,822

0,783

0,71

0,702

Отже, одержали, що попереджувальну профілактику доцільно проводити через час ф =20 - О год. і гарантоване значення коефіцієнта готовності рівне 0,822.

Вірогідність виконання завдання.

Визначимо величину k0. У даному випадку k0=2.

Далі визначаємо величини відносин в точках виду уk ± О, уk - z. Результати зведені в таблицю 3.14.

Таблиця 3.14

Величини середніх питомих витрат

k = 0

k = 1

k = 2

k = 3

k = 4

?

0,378

0,383 0.369

0,394

0.526

0,630 0,783

0,833

?

Таким чином, результати розрахунку показують, що попереджувальну планову профілактику доцільно проводити через час ф = 20 - О год. і при цьому гарантоване значення середніх питомих втрат буде рівне 0,369 од/год.

4. Опис функціональних можливостей та програмної реалізації проектованої системи

4.1 Предметна область і задачі, покладені на проектовану систему

Розроблене в результаті виконання дипломної роботи програмне забезпечення призначене для розрахунку оптимізації за наступними критеріями:

· коефіцієнт готовності;

· середні питомі втрати;

· середній питомий прибуток;

· вірогідність виконання завдання.

Також система дозволяє проводити розрахунок часу проведення попереджувальної профілактики для чотирьох стратегій обслуговування.

Розроблене програмне забезпечення створено в середовищі Delphi, що дозволяє наочно продемонструвати результати проведених досліджень. Вибір середовища реалізації пов'язаний з можливістю створення максимально гнучкого і привабливого інтерфейсу користувача.

Розрахунок проводився з використанням непараметричного методу, що заснований на статистичних даних.

У програмі реалізований вибір стратегій обслуговування, демонстрація теоретичних відомостей, ввід початкових даних та виведення результатів обчислень.

Система також дозволяє зберегти звіт про проведені дослідження в файл формату MS Word.

4.2 Логіко-функціональна схема роботи системи

В результаті аналізу вимог до системи, що розробляється, була розроблена наступна логіко-функціональна схема (рис.4.1).

Рис. 4.1 Логіко-функціональні схема роботи системи

4.3 Розробка алгоритмів та програмна реалізація

Далі наведемо алгоритми та лістінг основних функцій, що реалізують математичну модель системи.

Стратегії мають схожі алгоритми обчислення використовуваних функцій. Нижче представлені блок-схеми алгоритмів для стратегії В та стратегії С для розрахунку за статистичними даними.

Рис. 4.2 Алгоритм розрахунку коефіцієнту готовності. Стратегія В

Функція розрахунку коефіцієнту готовності. Стратегія В.

function b_got(k:integer):real;

var Sum1,Sum2,Sum3,Sum4:real;

i:integer;

begin

Sum1:=0;

for i:=0 to k do

Sum1:=Sum1+yb[i]*(pb[i+1]-pb[i]);

Sum2:=0;

for i:=k+1 to n do

Sum2:=Sum2+(pb[i+1]-pb[i]);

Sum3:=0;

for i:=0 to k do

Sum3:=Sum3+(yb[i]+Tap)*(pb[i+1]-pb[i]);

Sum4:=0;

for i:=k+1 to n do

Sum4:=Sum4+(yb[k+1]+Tpp)*(pb[i+1]-pb[i]);

b_got:=(Sum1+yb[k+1]*Sum2)/(Sum3+Sum4);

end;

Рис. 4.3 Алгоритм розрахунку середніх питомих втрат. Стратегія В

Функція розрахунку середніх питомих втрат. Стратегія В.

function b_sr_up(k:integer):real;

var Sum:real;

i:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+yb[i]*(pb[i+1]-pb[i]);

b_sr_up:=(Cap*Tap*pb[k+1]+Cpp*Tpp*(1-pb[k+1]))/

(Sum+yb[k+1]*(1-pb[k+1]));

end;

Рис. 4.4 Алгоритм розрахунку середнього питомого прибутку. Стратегія В.

Функція розрахунку середнього питомого прибутку. Стратегія В.

function b_sr_upri(k:integer):real;

var Sum:real;

i,m:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+yb[i]*(pb[i+1]-pb[i]);

b_sr_upri:=(C0*(1-pb[k+1])*yb[k+1]+(C0*Sum-Cap*Tap*pb[k+1]-

Cpp*Tpp*(1-pb[k+1])))/(yb[k+1]*(1-

pb[k+1])+Sum+Tap*pb[k+1]+Tpp*(1-pb[k+1]));

end;

Рис. 4.5 Алгоритм розрахунку вірогідності виконання завдання. Стратегія В.

Функція розрахунку вірогідності виконання завдання. Стратегія В.

function b_ver(t:integer):real;

var Sum1,Sum2,Sum3,Sum4,Sum5:real;

i,k0,m:integer;

begin

k0:=-1;

for i:=0 to n do

if (yb[i]-z<=0) and (yb[i+1]-z>0) then k0:=i;

m:=k0+1;

Sum1:=0;

for i:=k0+1 to n do

Sum1:=Sum1+(pb[i+1]-pb[i]);

Sum2:=0;

for i:=k0+1 to m do

Sum2:=Sum2+(pb[i+1]-pb[i])*(yb[i]-z);

Sum3:=0;

for i:=m+1 to n do

Sum3:=Sum3+(pb[i+1]-pb[i]);

Sum4:=0;

for i:=0 to k0 do

Sum4:=Sum4+(pb[i+1]-pb[i])*(yb[i]+Tap);

Sum5:=0;

for i:=k0+1 to n do

Sum5:=Sum5+(pb[i+1]-pb[i])*(t+Tpp);

if (t>=0)and(t<yb[k0+1]-z) then

b_ver:=(Sum1*t)/(Sum4+Sum5)

else b_ver:=(Sum2+Sum3*t)/(Sum4+Sum5);

end;

Рис. 4.6 Алгоритм розрахунку коефіцієнту готовності. Стратегія С.

Функція розрахунку коефіцієнту готовності. Стратегія С.

function c_got(k:integer):real;

var Sum:real;

i:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+yb[i]*(pb[i+1]-pb[i]);

c_got:=(Sum+yb[k]*(1-pb[k+1]))/(yb[k]+Tap*pb[k+1]+Tpp*(1-pb[k+1]));

end;

Рис. 4.7 Алгоритм розрахунку середніх питомих втрат. Стратегія С.

Функція розрахунку середніх питомих втрат. Стратегія С.

function c_sr_up(k:integer):real;

var Sum1,Sum2:real;

i:integer;

begin

Sum1:=0;

for i:=0 to k do

Sum1:=Sum1+Cp*(yb[k]-yb[i])*(pb[i+1]-pb[i]);

Sum2:=0;

for i:=0 to k do

Sum2:=Sum2+yb[i]*(pb[i+1]-pb[i]);

c_sr_up:=(Cap*Tap*pb[k+1]+Cpp*Tpp*

(1-pb[k+1])+Sum1)/(Sum2+yb[k]*(1-pb[k+1]));

end;

Рис. 4.8 Алгоритм розрахунку середнього питомого прибутку. Стратегія С.

Функція розрахунку середнього питомого прибутку. Стратегія С.

function c_sr_upri(k:integer):real;

var Sum:real;

i,m:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+yb[i]*(pb[i+1]-pb[i]);

c_sr_upri:=((C0*(1-pb[k+1])-Cp*pb[k+1])*yb[k+1]+((C0+Cp)*

Sum-Cap*Tap*pb[k+1]-Cpp*Tpp*(1-pb[k+1])))/

(yb[k]+Tap*pb[k+1]+Tpp*(1-pb[k+1]));

end;

Функція розрахунку вірогідності виконання завдання. Стратегія В.

function c_ver(t:integer):real; // Вероятность выполнения задачи. Стратегия С.

var Sum1,Sum2,Sum3,Sum4,Sum5:real;

i,k0,m:integer;

begin

k0:=-1;

for i:=0 to n do

if (yb[i]-z<=0)and(yb[i+1]-z>0) then k0:=i;

m:=k0+1;

Sum1:=0;

for i:=k0+2 to n do

Sum1:=Sum1+(pb[i+1]-pb[i]);

Sum2:=0;

for i:=k0+1 to m do

Sum2:=Sum2+(pb[i+1]-pb[i])*(yb[i]-z);

Sum3:=0;

for i:=m+1 to n do

Sum3:=Sum3+(pb[i+1]-pb[i]);

Sum4:=0;

for i:=0 to k0 do

Sum4:=Sum4+(pb[i+1]-pb[i])*(t+Tap);

Sum5:=0;

for i:=k0+1 to n do

Sum5:=Sum5+(pb[i+1]-pb[i])*(t+Tpp);

if (t>=0)and(t<yb[k0+1]-z) then

c_ver:=(Sum1*t)/(Sum4+Sum5)

else c_ver:=(Sum2+Sum3*t)/(Sum4+Sum5);

end;

Розглянемо фрагменти програмного коду, що дозволяють реалізувати інтерфейс користувача системи.

Наступна процедура регламентує процес вибору режиму, в якому будуть введені початкові дані.

procedure Tmain.cxRadioGroup1Click(Sender: TObject);

begin

if cxRadioGroup1.ItemIndex=0 then //якщо обраний перший варіант - використовувати значення за замовченням

cxTextEdit1.Enabled:=false //вікно редагування кількості спостережень

є недоступним

else

cxTextEdit1.Enabled:=true;

end;

Розглянемо фрагменти процедури, що відбувається при натисненні кнопки „Сформувати” (рис. 4.11).

procedure Tmain.BitBtn1Click(Sender: TObject);

var i:integer;

begin

if cxRadioGroup1.ItemIndex=-1 then // якщо режим не обраний

exit; // процедура завершуеється

if cxRadioGroup1.ItemIndex=0 then // якщо обраний режим „за замовченням”

begin

n:=5; //кількість спостережень

StringGrid1.ColCount:=6;StringGrid2.ColCount:=6;

StringGrid3.ColCount:=6; StringGrid4.ColCount:=6;

StringGrid5.ColCount:=6; // задаємо кількість стовпців таблиці

StringGrid1.Options:=StringGrid1.Options-[goEditing];// таблиця недоступна для редагування

for i:=1 to 5 do //перебираємо стовпці таблиці, що формується

begin

StringGrid1.ColWidths[i]:=40; StringGrid2.ColWidths[i]:=40;

StringGrid3.ColWidths[i]:=40; StringGrid4.ColWidths[i]:=40;

StringGrid5.ColWidths[i]:=40; // встановлюємо ширину стовпця

StringGrid1.Cells[i,0]:=inttostr(i);StringGrid2.Cells[i,0]:=inttostr(i);

StringGrid3.Cells[i,0]:=inttostr(i); StringGrid4.Cells[i,0]:=inttostr(i);

StringGrid5.Cells[i,0]:=inttostr(i); // формуємо заголовки стовпців

StringGrid1.Cells[i,1]:=floattostr(b[1,i]);

StringGrid2.Cells[i,1]:=floattostr(b[1,i]);

StringGrid1.Cells[i,2]:=floattostr(b[2,i]); // зчитуємо дані із

масиву констант

end;

cxTextEdit2.Text:='1'; cxTextEdit3.Text:='1,5';

cxTextEdit4.Text:='1'; cxTextEdit5.Text:='5';

cxTextEdit6.Text:='5'; cxTextEdit7.Text:='15';

// формуємо значення інших, нетабличних вхідних параметрів

end

else // якщо дані заносяться уручну

begin

if cxTextEdit1.Text='' then exit; // якщо кількість спостережень не визначена - вихід із процедури

StringGrid1.ColCount:=strtoint(cxTextEdit1.Text)+1;

StringGrid2.ColCount:=strtoint(cxTextEdit1.Text)+1;

StringGrid3.ColCount:=strtoint(cxTextEdit1.Text)+1;

StringGrid4.ColCount:=strtoint(cxTextEdit1.Text)+1;

StringGrid5.ColCount:=strtoint(cxTextEdit1.Text)+1;

// визначаємо кількість стовпців вхідної таблиці

n:= strtoint(cxTextEdit1.Text);

StringGrid1.Options:=StringGrid1.Options+[goEditing]; // робимо вхідну таблицю параметрів доступною для редагування користувачем

for i:=1 to strtoint(cxTextEdit1.Text) do // перебираємо усі стовпці

begin

StringGrid1.ColWidths[i]:=40; StringGrid2.ColWidths[i]:=40;

StringGrid3.ColWidths[i]:=40; StringGrid4.ColWidths[i]:=40;

StringGrid5.ColWidths[i]:=40; // встановлюємо ширину

StringGrid1.Cells[i,0]:=inttostr(i); StringGrid2.Cells[i,0]:=inttostr(i);

StringGrid3.Cells[i,0]:=inttostr(i); // формуємо заголовки

StringGrid1.Cells[i,1]:=''; StringGrid1.Cells[i,2]:='';

end;

cxTextEdit2.Text:=''; cxTextEdit3.Text:=''; cxTextEdit4.Text:='';

cxTextEdit5.Text:=''; cxTextEdit6.Text:=''; cxTextEdit7.Text:='';

// очищуємо поля вводу нетабличних параметрів

end;

end;

Розглянемо фрагменти процедури, що відбувається при натисненні кнопки „Розрахувати” (рис. 4.11).

procedure Tmain.BitBtn2Click(Sender: TObject);

var i:integer;max:real;

begin

if (cxTextEdit2.Text='') or (cxTextEdit3.Text='')

or (cxTextEdit4.Text='') or (cxTextEdit5.Text='')

or (cxTextEdit6.Text='') or (cxTextEdit7.Text='')

then exit; // якщо введено вхідні параметри розрахунку - вихід із процедури

tpp:=strtofloat(cxTextEdit2.Text); // середня тривалість планової попереджувальної профілактики

tap:=strtofloat(cxTextEdit3.Text); // середня тривалість позапланового аварійно-профілактичного ремонту

cpp:=strtofloat(cxTextEdit4.Text); // втрати за одиницю часу при проведенні планової попереджувальної профілактики

cap:=strtofloat(cxTextEdit5.Text); // втрати за одиницю часу при проведенні позапланового аварійно-профілактичного ремонту

c0:=strtofloat(cxTextEdit6.Text); // прибуток, що одержується за одиницю часу безвідмовної роботи системи

z:=strtofloat(cxTextEdit7.Text); // оперативний час роботи системи

// очищуємо розрахункові масиви

for i:=0 to 99 do

begin

yb[i]:=0; pb[i]:=0; kb[i]:=0;

s_up[i]:=0; s_upri[i]:=0; b_v[i]:=0;

end;

// формуємо масиви вхідних даних на основі таблиці

for i:=0 to n-1 do

begin

try

yb[i]:=strtofloat(StringGrid1.Cells[i+1,1]);

pb[i]:=strtofloat(StringGrid1.Cells[i+1,2]);

except

ShowMessage('Исходные данные не заданы!');

exit;

end;

end;

// далі наведений блок розрахунку та виводу параметрів

// розрахунок коефіцієнту готовності

max:=0; imax:=0;

for i:=0 to n do

begin

k:=i;

kb[i]:=b_got(k); // викликаємо функцію розрахунку коефіцієнту з параметром, що дорівнює k

if (i=0) or (max<kb[i]) then // шукаємо максимальне значення коефіцієнту

begin max:=kb[i];

imax:=i; // номер максимального значення

end;

// формуємо таблицю розрахунків

StringGrid2.Cells[i+1,2]:=floattostrf(kb[i],fffixed,5,2); // обчислені коефіцієнти

StringGrid2.Cells[i+1,1]:=floattostr(yb[i]); // значення часових інтервалів

end;

kb0:=max;

if imax<>n then

begin

ymax:=yb[imax+1];

// виводяться рекомендації про вибір моменту проведення попереджувальної профілактики.

Label4.Caption:= 'y[k0+1]='+floattostrf(ymax,fffixed,5,2);

end else

// якщо k0 = n, то планові попереджувальні профілактики проводити недоцільно.

Label4.Caption:='Профилактики проводить нецелесообразно';

// виводимо значення коефіцієнту готовності

Label2.Caption:= 'Kг='+floattostrf(kb0,fffixed,5,2);

// блок обчислення середніх питомих втрат

ymin:=0;

for i:=0 to n do

begin

k:=i;

s_up[i]:=b_sr_up(k); // викликаємо функцію розрахунку середніх питомих втрат ту з параметром, що дорівнює k

if (i=0) or (ymin>(s_up[i])) then // шукаємо мінімальне значення

ymin:=abs(s_up[i]);

// формуємо таблицю розрахунків

StringGrid3.Cells[i+1,1]:=floattostrf(abs(s_up[i]),fffixed,5,2);

end;

// виводимо обчислене значення

Label6.Caption:='Ср_уп = '+ floattostrf(abs(ymin),fffixed,5,2);

// блок обчислення середнього питомого прибутку

max:=0;

for i:=0 to n do

begin

k:=i;

s_upri[i]:=b_sr_upri(k); // викликаємо функцію розрахунку середнього питомого прибутку з параметром, що дорівнює k

if (i=0) or (max<(s_upri[i])) then

max:=s_upri[i]; // визначаємо максимальне значення

// формуємо таблицю розрахунків

StringGrid4.Cells[i+1,1]:=floattostrf(s_upri[i],fffixed,5,2);

end;

// виводимо обчислене значення

Label8.Caption:= ' Ср_уприб='+floattostrf(max,fffixed,5,2);

// блок обчислення гарантованого значення вірогідності виконання завдання

max:=0;

for i:=1 to n do

begin

k:=i;

b_v[i]:=b_ver(k); // викликаємо функцію розрахунку значення вірогідності з параметром, що дорівнює k

if (i=0) or (max<(b_v[i])) then

max:=b_v[i]; // визначаємо максимальне значення

// формуємо таблицю розрахунків

StringGrid5.Cells[i,1]:=floattostrf(abs(b_v[i]),fffixed,5,2);

end;

// виводимо обчислене значення

Label10.Caption:= 'Р_вып='+floattostrf(abs(max),fffixed,5,2);

end;

Наведемо опис процедури, що дозволяє експортувати вихідні дані та розрахункові значенні в MS Word.

procedure Tmain.BitBtn3Click(Sender: TObject);

const wdalignPageNumberRight=1;

var j,i:integer;

begin

w:=CreateOleObject('word.application'); // створюємо об'єкт MS Word

w.documents.add; // додаємо пустий документ

w.activewindow.activepane.view.zoom.percentage:=100; // масштаб відображення вікна документу - 100%

mysection:=w.activedocument.range.sections.item(1); // встановлення поточного розділу документу

mypagenumbers:=mysection.headers.item(1).pagenumbers; // автоматична нумерація сторінок звіту

mypagenumber:=mysection.headers.item(1).

pagenumbers.add(pagenumberalignment:=wdalignPageNumberRight,firstpage:=true);

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=1; //вирівнювання текnсу абзацу по центhу

myrange.select; // виділення поточного абзацу

w.selection.font.bold:=1; // текст "жирний"

w.selection.font.underline:=1; // текст підкреслений

w.activedocument.range.insertafter('Стратегия В');

w.activedocument.range.insertafter(#13); // перехід на наступну строку

w.activedocument.range.insertafter(#13); // додавання пустих строк

w.activedocument.range.insertafter('Исходные данные'); // вивід заголовку звіту

w.activedocument.range.insertafter(#13);

w.activedocument.range.insertafter(#13);

// далі наведений фрагмент коду, за допомогою якого відбувається експорт вихідних даних, що представлені в табличному вигляді

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

j:=j+1; // номер таблиці в звіті

w.activedocument.tables.add(range:=myrange,numrows:=3,numcolumns:=n+1); // додаємо таблицю в кінець документа, кількість строк дорівнює 3, кількість рядків - число спостережень

table:=w.activedocument.tables.item(j); // посилання на створену таблицю

table.AutoFormat(Format:=20,

ApplyBorders:=true,

ApplyShading:=false,

ApplyFont:=false,

ApplyColor:=false,

ApplyHeadingRows:= false,

ApplyLastRow:=false,

ApplyFirstColumn:= false,

ApplyLastColumn:=false,

AutoFit:=false); //форматування таблиці за основі заданого типу автоформату

table.rows.item(1).range.paragraphformat.alignment:=1; // вирівнювання посередині

table.rows.item(1).shading.backgroundpatterncolorindex:=16; //заливка ко-мірки таблиці

table.rows.item(1).select; // обираємо 1-й рядок

w.selection.font.bold:=1;

w.selection.font.underline:=0;

table.rows.item(2).select; // обираємо 2-й рядок

w.selection.font.bold:=0;

w.selection.font.underline:=0;

table.rows.item(3).select; // обираємо 2-й рядок

w.selection.font.bold:=0;

w.selection.font.underline:=0;

for i:=1 to table.columns.count do //формування заголовків

begin

case i of // i - порядковий номер стовпця

1: begin // якщо це перший стовпець, що містить заголовки

table.columns.item(i).width:=90; //встановлюємо ширину стовпця

table.cell(2,1).range.text:='y[k]'; // заносимо текст заголовків в таблицю

table.cell(3,1).range.text:='p[k]';

end else // інші стовпці, що містять дані

begin

table.columns.item(i).width:=70;

w.selection.font.bold:=1;

table.cell(1,i).range.text:=inttostr(i-1); // нумерація стовпців

w.selection.font.bold:=0;

w.selection.font.underline:=0;

table.cell(2,i).range.text:=floattostrf(yb[i-2],fffixed,5,2); // виводимо вихідні дані на основі сформованих масивів

table.cell(3,i).range.text:=floattostrf(pb[i-2],fffixed,5,2);

end;

end;

end;

w.activedocument.range.insertafter(#13);

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=0; // вирівнювання тексту абзацу по центру

myrange.select; //виділення поточного абзацу

w.selection.font.bold:=0; //текст "жирний"

w.selection.font.underline:=0; //текст підкреслений

// далі виводимо у звіт інші вихідні дані, що використовувалися в процесі розрахунку

w.activedocument.range.insertafter(cxlabel2.caption+' = '+cxtextedit2.text);

w.activedocument.range.insertafter(#13); //додавання пустих строк

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=0; //вирівнювання тексту абзацу по центру

w.activedocument.range.insertafter(cxlabel3.caption+' = '+cxtextedit3.text);

w.activedocument.range.insertafter(#13); // додавання пустих строк

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=0; //вирівнювання тексту абзацу по центру

// вивід середньої тривалості планової попереджувальної профілактики

w.activedocument.range.insertafter(cxlabel4.caption+' = '+cxtextedit4.text);

w.activedocument.range.insertafter(#13); // додавання пустих строк

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=0; //вирівнювання тексту абзацу по центру

// вивід середньої тривалості позапланового аварійно-профілактичного ремонту

w.activedocument.range.insertafter(cxlabel5.caption+' = '+cxtextedit5.text);

w.activedocument.range.insertafter(#13); //додавання пустих строк

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=0; // вирівнювання тексту абзацу по центру

// вивід втрат за одиницю часу при проведенні планової попереджувальної профілактики

w.activedocument.range.insertafter(cxlabel6.caption+' = '+cxtextedit6.text);

w.activedocument.range.insertafter(#13); //додавання пустих строк

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=0; //вирівнювання тексту абзацу по центру

// вивід втрат за одиницю часу при проведенні позапланового аварійно-профілактичного ремонту

w.activedocument.range.insertafter(cxlabel7.caption+' = '+cxtextedit7.text);

w.activedocument.range.insertafter(#13); // додавання пустих строк

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=1; // вирівнювання тексу абзацу по центу

myrange.select; // виділення поточного абзацу

w.selection.font.bold:=1; // текст "жирний"

w.selection.font.underline:=1; // текст підкреслений

// Розрахункові дані виводяться за допомогою окремих таблиць

// фрагмент коду, що ілюструє вивід розрахункових даних коефіцієнту готовності

// вивід заголовку таблиці

w.activedocument.range.insertafter('Расчет коэффициента готовности');

w.activedocument.range.insertafter(#13); // додавання пустих строк

// вивід таблиці

for i:=1 to table.columns.count do //формування заголовків

begin

case i of // i - порядковий номер стовпця

1: begin

table.columns.item(i).width:=90; //встановлюємо ширину стовпця

table.cell(2,1).range.text:='y[k]';

table.cell(3,1).range.text:='A[k]';

end else

begin

table.columns.item(i).width:=70;

w.selection.font.bold:=1;

table.cell(1,i).range.text:=inttostr(i-1);

w.selection.font.bold:=0;

w.selection.font.underline:=0;

table.cell(2,i).range.text:=floattostrf(yb[i-2],fffixed,5,2); // вивід значень моментів спостережень

table.cell(3,i).range.text:=floattostrf(kb[i-2],fffixed,5,2);

end;

end; end;

// вивід розрахункового значення коефіцієнту готовності

w.activedocument.range.insertafter(label1.caption+' '+label2.caption );

// вивід рекомендації про вибір моменту проведення попереджувальної профілактики

w.activedocument.range.insertafter(label3.caption+' '+label7.caption +' '+label4.caption);

... // аналогічним чином виводимо інші розрахункові параметри

w.visible:=true; // відображення сформованого документу на екрані

end;

4.4 Опис інтерфейсу користувача

Робоче вікно системи розділене на чотири вкладки, кожна з якої відповідає вибраній стратегії. У свою чергу кожна з вкладок також розбита на чотири розділи. Перший з них (рис. 4.9) відповідає опису даної стратегії.

Рис. 4.9 Робоче вікно системи в режимі демонстрації опису стратегії

Текст цього опису міститься в зовнішніх файлах формату rtf, які повинні знаходиться в тому ж каталозі, що і здійснимий файл (Стратегія А.rtf, Стратегія B.rtf, Стратегія C.rtf, Стратегія D.rtf). При установки прапорця показати діаграму переходів, на екрані з'являється її зображення (рис. 4.10).

Рис. 4.10 Відображення діаграми переходів

Вкладка „Вхідні данні” (рис. 4.11) дозволяє ввести всі необхідні для розрахунків параметри. На вибір користувачу представлені два варіанти дій - ввести дані уручну або використовувати значення за умовчанням. Якщо вибраний варіант введення значень, стає доступним поле «Кількість спостережень», що визначає розмірність таблиці параметрів.

Після натиснення кнопки «Сформувати» ми одержуємо таблицю введення вхідних параметрів. Перший рядок таблиці відповідає вектору часових моментів спостереження, другий - вірогідності відмов.

Якщо вибраний режим значень за умовчанням, дані в таблицю заносяться автоматично. Також автоматично заповнюються всі поля вхідних даних. Вид робочого вікна в цьому режимі наведений на рис. 4.12.

Рис. 4.11 Початковий вид вікна вводу даних

Для стратегії В передбачене введення наступних параметрів:

· середня тривалість планової попереджувальної профілактики;

· середня тривалість позапланового аварійно-профілактичного ремонту;

· втрати за одиницю часу при проведенні планової попереджувальної профілактики;

· втрати за одиницю часу при проведенні позапланового аварійно-профілактичного ремонту;

· прибуток, що одержується за одиницю часу безвідмовної роботи системи;

· оперативний час роботи системи.

Рис. 4.12 Вікно вводу даних в режимі використання значень за замовченням

Після введення вхідних параметрів необхідно натиснути кнопку «Розрахувати».

На вкладці «Розрахунок-1» (рис. 4.13) ми бачимо розрахункові таблиці, що дозволяють визначити коефіцієнт готовності середні питомі втрати. Коефіцієнт готовності є максимальним значенням в рядку, гарантоване середнє значення втрат - мінімальним. Також виводяться рекомендації про вибір моменту проведення попереджувальної профілактики.

Рис. 4.13 Вікно виводу розрахунків коефіцієнту готовності та середніх питомих втрат

Вкладка «Розрахунок-2» відповідає за обчислення гарантованого значення середніх питомих втрат, а також гарантованого значення вірогідності виконання завдання. У обох випадках значення є максимальним в рядку.

Розроблена нами система передбачає можливість збереження початкових даних і одержаних в результаті розрахунків показників у вигляді звіту. При натисненні кнопки «Зберегти звіт» дані будуть експортовані в MS Word. Приклад звіту представлений в Додатку А.

Рис. 4.14 Вікно виводу розрахунків значень середнього питомого прибутку та вірогідності виконання завдання

5 Економічне обгрунтовання доцільності розробки програмного продукту

Метою даної дипломної роботи є створення системи експериментального дослідження математичних моделей оптимізації обслуговування складних систем. Тема диплома є науковою та дослідницькою.

Розроблений програмний продукт може бути застосований для визначення критеріїв оптимізації обслуговуваних систем та надання рекомендацій щодо часу проведення попереджувальної профілактики.

В ході розробки програмного продукту було використане програмне забезпечення Turbo Delphi 2006 Explorer, яке є безкоштовним.

Визначення витрат на створення програмного продукту

Оскільки середа розробки є безкоштовною, витрати на створення програмного продукту складаються з витрат по оплаті праці розробника програми і витрат по оплаті машинного часу при відладці програми:

Зсппзпспп мвспп

де

Зспп - витрати на створення програмного продукту;

Ззпспп - витрати на оплату праці розробника програми;

Змвспп - витрати на оплату машинного часу.

Витрати на оплату праці розробника програми (Ззпспп) визначаються шляхом множення трудомісткості створення програмного продукту на середню годинну оплату програміста (з урахуванням коефіцієнта відрахувань на соціальні потреби):

Ззпспп=t*Tчас

Розрахунок трудомісткості створення програмного продукту.

Трудомісткість розробки програмного продукту можна визначити таким чином:

t= to+ tа+ tб+ tп+ tд+ tот,

де

to - витрати праці на підготовку опису завдання;

tа - витрати праці на розробку алгоритму рішення задачі;

tб - витрати праці на розробку блок-схеми алгоритму рішення задачі;

tп - витрати праці на складання програми по готовій блок-схемі;

tд - витрати праці на підготовку документації завдання;

tот - витрати праці на відладку програми на ЕОМ при комплексній відладці завдання.

Складові витрат можна виразити через умовне число операторів Q. У нашому випадку число операторів у відлагодженій програмі Q=1300.

Розрахунок витрат праці на підготовку опису завдань.

Оцінити витрати праці на підготовку опису завдання не можливо, оскільки це пов'язано з творчим характером роботи, натомість оцінимо витрати праці на вивчення опису завдання з урахуванням уточнення опису і кваліфікації програміста:

to= Q*B/(75…85*K),

де:

B - коефіцієнт збільшення витрат праці унаслідок недостатнього опису завдання, уточнень і деякої недоробки, B=1,2…5;

K - коефіцієнт кваліфікації розробника, для тих, що працюють до 2 років K=0.8;

Коефіцієнт В приймаємо рівним 3.

Таким чином отримаємо:

to= 1300*3/(78*0,8) = 62.5 (люд-год).

Розрахунок витрат праці на розробку алгоритму.

Витрати праці на розробку алгоритму рішення задачі:

tа = Q/(60…75*K)

tа = 1300/(70*0,8)=23.21 (люд-год).

Розрахунок витрат праці на розробку блок-схеми.

Витрати праці на розробку блок-схеми алгоритму рішення задачі обчислимо таким чином:

tб= Q/(60…75*K)

tб = 1300/(65*0,8)=25(люд-год).

Розрахунок витрат праці на складання програми.

Витрати праці на складання програми по готовій блок-схемі обчислимо таким чином:

tп= Q/(60…75*K)

tп = 1300/(72*0,8)=22.57 (люд-год).

Розрахунок витрат праці на відладку програми.

Витрати праці на відладку програми на ЕОМ при комплексній відладці завдання:

tот=1.5* tAот,

де tAот - витрати праці на відладку програми на ЕОМ при автономній відладці одного завдання;

tAот= Q/(40…50*K)

tAот = 1300/(45*0,8)=36.11 (люд-год)

Звідси tот=1.5*36.11=54.17 (люд-год).

Розрахунок витрат праці на підготовку документації.

Витрати праці на підготовку документації по завданню визначаються:

tд= tдр+ tдо,

де

tдр - витрати праці на підготовку матеріалів в рукопису;

tдо - витрати на редагування, друк і оформлення документації;

tдр= Q/(150…200*K)

tдр = 1300/(180*0,8) = 9.03 (люд-год)

tдо=0.75*tдр

tдо =0.75*9.03=6,77 (люд-год)

Звідси

tд=9.03+6.77 =15.8 (люд-год).

Отже, загальну трудомісткість розробки програмного продукту можна розрахувати:

t= to+ tа+ tб+ tп+ tд+ tот,

t = 62.5+23.21+25+22.57+15.8+54.17 = 203.25 (люд-год).

Розрахунок середньої зарплати програміста.

Середня зарплата програміста в сучасних ринкових умовах може варіюватися в широкому діапазоні. Для розрахунку візьмемо середню годинну оплату праці програміста, яка складає Тчас=10 грн/година. Це означає, що вартість розробки буде становитиму 2032.5 грн.

Витрати на оплату праці програміста складаються із зарплати програміста і нарахувань на соціальні потреби.

Єдине соціальне нарахування становить 37,2%.

Тобто 2032.5грн*37,2%=756.09 грн

Звідси витрати на оплату праці програміста складають:

Ззпспп= 2032.5+756.09 = 2788.59 грн.

Витрати на оплату машинного часу.

Витрати на оплату машинного часу при відладці програми визначаються шляхом множення фактичного часу відладки програми на ціну машино-години орендного часу:

Змвспп час*tЕОМ,

де

Счас - ціна машино-години, грн/год;

tЕОМ - фактичний час відладки програми на ЕОМ;

Розрахунок фактичного часу відладки.

Фактичний час відладки обчислимо за формулою:

tеом = tп + tдо + tот ;

tеом =22.57 +6.77 +54.17 = 83.51 години

Розрахунок ціни машино-години.

Ціну машино-години знайдемо по формулі:

Сгод = Зеомеом,

де

Зеом - повні витрати на експлуатацію ЕОМ на протязі року;

Теом - дійсний річний фонд часу ЕОМ, год/рік.

Розрахунок річного фонду часу роботи ПЕОМ.

Загальна кількість днів в році - 365. Число святкових і вихідних днів - 114(10 святкових і 52*2- вихідні).

Час простою в профілактичних роботах визначається як щотижнева профілактика по 3 години.

Разом річний фонд робочого часу ПЕОМ складає:

Теом = 8*(365-114)-52*3=1852 год.

Розрахунок повних витрат на експлуатацію ЕОМ.

Повні витрати на експлуатацію можна визначити по формулі:

Зеом = (Ззп+ Зам+ ЗЕЛ+ Здм+ Зпр+ Зін),

де:

Ззп - річні витрати на заробітну плату обслуговуючого персоналу, грн/рік;

Зам - річні витрати на амортизацію, грн/рік;

ЗЕЛ - річні витрати на електроенергію, споживану ЕОМ, грн/рік;

Здм - річні витрати на допоміжні матеріали, грн/рік;

Зпр - витрати на поточний ремонт комп'ютера, грн/рік;

Зін - річні витрати на інші і накладні витрати, грн/рік.

Амортизаційні відрахування.

Річні амортизаційні відрахування визначаються по формулі:

Замбал*Нам,

де: Сбал - балансова вартість комп'ютера, грн/шт.;

Нам - норма амортизації, %;

Нам =25%.

Балансова вартість ПЕОМ включає відпускну ціну, витрати на транспортування, монтаж устаткування і його відладку:

Сбал = Срин +Зуст ;

де:

Срин - ринкова вартість комп'ютеру, грн/шт.,

Зуст - витрати на доставку і установку комп'ютера, грн/шт;

Комп'ютер, на якому велася робота, був придбаний за ціною Срин =5000 грн, витрати на установку і наладку склали приблизно 10% від вартості комп'ютера.

Зуст = 10%* Срин

Зуст =0.1*5000=500 грн.

Звідси, Сбал = 5000 +500 =5500 грн./шт.,

а Зам=5500*0.25= 1375 грн/год.

Розрахунок витрат на електроенергію.

Вартість електроенергії, споживаної за рік, визначається по формулі:

Зел = Реом * Теом * Сел * А,

де:

Реом - сумарна потужність ЕОМ,

Теом - дійсний річний фонд часу ЕОМ, год/рік;

Сел - вартість 1кВт*год електроенергії;

А - коефіцієнт інтенсивного використання потужності машини.

Згідно технічному паспорту ЕОМ Реом =0.22 кВт, вартість 1кВт*год електроенергії для споживачів Сел =0.2436 грн., інтенсивність використання машини А=0.98.

Тоді розрахункове значення витрат на електроенергію:

Зел = 0.22 * 1852* 0.2436* 0.30 = 29.78 грн.

Розрахунок витрат на поточний ремонт.

Витрати на поточний і профілактичний ремонт приймаються рівними 5% від вартості ЕОМ:

Зтр = 0.05* Сбал

Зтр = 0.05* 5500 = 275 грн.

Розрахунок витрат на допоміжні матеріали.

Витрати на матеріали, необхідні для забезпечення нормальної роботи ПЕОМ, складають близько 1 % від вартості ЕОМ:


Подобные документы

  • Моделювання в області системотехніки та системного аналізу. Імітація випадкових величин, використання систем масового обслуговування, дискретних і дискретно-безперервних марковських процесів, імовірнісних автоматів для моделювання складних систем.

    методичка [753,5 K], добавлен 24.04.2011

  • Практичні прийоми відтворення на ЕОМ математичних моделей типових нелінійностей. Параметри блоків Sine Wave, XY Graph та Saturation. Побудова статичних і динамічних характеристик математичних моделей. Визначення кроку та інтервалу часу моделювання.

    лабораторная работа [1,5 M], добавлен 17.05.2012

  • Засоби візуального моделювання об'єктно-орієнтованих інформаційних систем. Принципи прикладного системного аналізу. Принцип ієрархічної побудови моделей складних систем. Основні вимоги до системи. Розробка моделі програмної системи засобами UML.

    курсовая работа [546,6 K], добавлен 28.02.2012

  • Задачі створення основ системного підходу в фізіології за допомогою кібернетики. Розробки та дослідження математичних моделей систем управління життєвими функціями в організмах людини та тварин. Об'єкти вивчення теорії автоматичного регулювання.

    презентация [3,5 M], добавлен 02.04.2011

  • Дослідження складної системи "Велосипед" з елементами, з'єднаними детермінованим зв'язком. Побудова цільової функції для оптимізації системи, визначення її надійності та вартості приросту надійності її елементів. Блок-схема процесу функціонування системи.

    курсовая работа [99,0 K], добавлен 01.03.2014

  • Дослідження проблеми пошуку автомобілів та постановка задачі створення автокаталогу з використанням мови програмування PHP і JаvаScrіpt. Дослідження моделей прецедентів системи та їх класової архітектури. Моделювання розподіленої конфігурації систем.

    курсовая работа [3,7 M], добавлен 11.10.2010

  • Склад і зміст робіт на стадії впровадження інформаційних систем. Технологія проектування систем за CASE-методом. Порівняльні характеристики інформаційних систем в менеджменті та СППР. Створення бази моделей. Визначення інформаційних систем управління.

    реферат [44,5 K], добавлен 09.03.2009

  • Дослідження компонентів ноутбуку. Огляд моделей ноутбуків, особливостей їх будови та доступних аксесуарів. Принципи ремонту ноутбуків. Методи активного профілактичного обслуговування. Пристрої зберігання даних. Визначення собівартості одиниці ремонту.

    курсовая работа [6,1 M], добавлен 10.06.2013

  • Методика обґрунтування раціональної сукупності методів і засобів технічного діагностування складних систем озброєння, що задовольняє задані вимоги до систем технічного діагностування в цілому. Пошук дефекту при мінімальних витратах на реалізацію методів.

    статья [28,2 K], добавлен 14.12.2010

  • Розробка іспитового стенда для лабораторії, визначення тривалості робіт, ресурсів на її виконання. Характеристика параметрів моделі до оптимізації. Очікувана тривалість робіт за проектом. Причини та критерії оптимізації моделі. Розрахунок бюджету проекту.

    контрольная работа [1,1 M], добавлен 09.11.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.