Для того, чтобы определить сценарий с наибольшим ущербом, необходимо нажать кнопку "9. Поиск сценария с наибольшим ущербом". Результаты поиска отобразятся в окне "Ход выполнения" (рис.4.18).
Рисунок 4.18 - Поиск сценария с наибольшим ущербом
Для окончания работы с программой необходимо нажать кнопку "Выход".
Программа функционирует на универсальной ПЭВМ. ПЭВМ имеют небольшие габариты, обладают большой мощностью и быстродействием.
Для реализации программного обеспечения "МАГ" необходим набор аппаратных средств со следующими минимальными техническими характеристиками:
процессор INTEL Pentium IV с тактовой частотой 1,5 ГГц,
объем оперативной памяти не менее 128 Мб;
жесткий диск объемом 2 Гб;
видеоадаптер SVGA;
клавиатура;
манипулятор мышь;
17" SVGA монитор.
Выбор данного комплекса технических средств обусловлен требованиями, предъявляемыми к надежному обеспечению безопасности магистральных газопроводов, а именно:
оперативность и качество принимаемых управленческих решений,
необходимость наличия обширной информации о возможных ситуациях, возникающих при предаварийной и аварийной работе магистрального газопровода.
Кроме того, выбранный комплекс технических средств отвечает требованиям программного обеспечения "МАГ" - требованиям выбранного языка Delphi 7.
В данной выпускной квалификационной работе были рассмотрены принципы обеспечения безопасности магистральных газопроводов.
В частности, в ходе выполнения работы выделены основные характеристики и поражающие факторы аварий на объектах нефтегазового профиля. Кроме того, выделены причины возникновения аварий на объектах транспорта газа и причины роста числа таких аварий. Это позволило определить основные направления обеспечения безопасности магистральных газопроводов.
В работе были рассмотрены существующие методы анализа риска. В результате было установлено, что для реализации процесса управления безопасностью объектов транспорта газа целесообразно использовать логико-графические методы построения и анализа "дерева отказов" и "дерева событий".
Кроме того, проведен анализ риска, включающий следующие стадии:
идентификация опасностей - выделены основные присущие системе транспорта газа опасности;
анализ частоты аварий - построены "дерево отказов" и "дерево событий", рассчитаны вероятности и частоты реализации возможных сценариев;
анализ последствий аварий - оценено воздействие опасных факторов на имущество, людей, окружающую среду.
Для управления безопасностью магистральных газопроводов использован ситуационный подход, предполагающий выявление проблемных ситуаций и выполнение различных преобразований имеющейся информации в управленческие решения, приводящие к их разрешению.
На основе обработанной информации построен алгоритм поиска возможного пути развития аварийной ситуации на магистральном газопроводе.
Выбраны технические средства реализации процесса поиска возможного пути развития аварийной ситуации на магистральном газопроводе.
На базе выбранного комплекса технических средств данный алгоритм реализован программно. Корректность работы программы проверена на контрольном примере.
Правила пользования разработанным программным средством приведены в инструкции по эксплуатации программы.
Разработанная программа позволяет оперативно прослеживать ход развития аварийной ситуации на магистральном газопроводе, определять вероятности достижения системой интересующих оператора состояний.
1. Анализ аварий и несчастных случаев на трубопроводном транспорте России: учеб. пособие для вузов/ Под ред. Б.Е. Прусенко, В.Ф. Мартынюка. - М.: Анализ опасностей, 2003. - 351 с.
2. Андриянова М.А. Управление риском эксплуатации потенциально опасных объектов. Автореферат диссертации на соискание ученой степени кандидата технических наук. Тулу, ТулГУ, 1999.
3. Арсеньев Ю.Н., Бушинский В.И., Фатуев В.А. Принципы техногенной безопасности производств и построения систем управления риском. ТулГУ, Тула, 1994. - 111 с.
4. Бушинский В.И., Охинько В.А., Смолин С.А., Кузьмина Н.В. Исследование влияния управления персоналом на безопасность жизнедеятельности человека. Монография. Воронеж, 1999. - 310 с.
5. Гражданкин А.И., Дегтярев Д.В., Лисанов М.В., Печеркин А.С. Основные показатели риска аварии в терминах теории вероятностей // Безопасность труда в промышленности. - 2002. - №7. - с.35-39
6. Захаров В. Интеллектуальные технологии в современных системах управления // Проблемы теории и практики управления. - 2005. - №4. - с.2-10
7. Кульечев В.М., Иванов Е.А., Дадонов Ю.А., Мокроусов С.Н. Трубопроводный транспорт природного газа, нефти и нефтепродуктов и его роль в обеспечении развития и стабильности топливно-энергетического комплекса // Безопасность труда в промышленности. - 2002. - №7. - с.4-10
8. Мартынюк В.Ф., Прусенко Б.Е. Защита окружающей среды в чрезвычайных ситуациях. Москва, 2003.
9. Мокроусов С.Н. Пути повышения безопасности работы нефтегазового комплекса и систем магистрального трубопроводного транспорта // Безопасность труда в промышленности. - 2005. - №1. - с.18-20
10. Поспелов Д.А. Ситуационное управление: теория и практика. - М.: Наука, 1986. - 288 с.
11. Саати Т., Кернс К. Аналитическое планирование. Организация систем. М.: Радио и связь, 1991. - 216 с.
12. Управление безопасностью магистральных газопроводов / В.А. Фатуев, С.А. Васин, В.И. Бушинский, В.М. Митин, К.А. Морозов; Под ред. д. т. н., проф., академика МАНЭБ В.А. Фатуева; изд.2-е; ТулГУ, М.: Недра, 2000. - 144 с.
13. Фатуев В.А., Митин В.М., Морозов К.А., Югфельд А.С. Теоретические основы построения систем управления риском опасных производств. - Учебное пособие. Тула, Тульский государственный университет, 2000. - 179 с.
14. Фатуев В.А., Морозов К.А., Югфельд А.С., Шадрин А.А. Обеспечение надежности магистральных газопроводов. - Тула: Гриф и К, 2003. - 130 с.
15. Чекинов Г.П., Чекинов С.Г. Ситуационное управление: состояние и перспективы // Информационные технологии. - 2004. - №2. -Приложение
Текст программы управления безопасностью магистральных газопроводов:
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Spin, ComCtrls;
const
word_max=100;
line_max=255;
colon=': ';
period='. ';
comma=',';
spase='';
equals='=';
nextrow=#13#10;
definite=100;
type
TMainForm = class (TForm)
Memo_Report: TMemo;
LE_Crash_Name: TLabeledEdit;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
Label1: TLabel;
Label2: TLabel;
Bevel9: TBevel;
B_AddFact: TButton;
LE_AddFact_Frime: TLabeledEdit;
LE_AddFact_Value: TLabeledEdit;
LE_AddFact_Cf: TLabeledEdit;
B_TestFact: TButton;
LE_TestFact_Frime: TLabeledEdit;
LE_TestFact_Value: TLabeledEdit;
B_SeeFacts: TButton;
B_MakeFrimeMultivalid: TButton;
LE_MakeMulti_Frime: TLabeledEdit;
B_MakeLegal: TButton;
LE_MakeLegal_Frime: TLabeledEdit;
B_AddQuestion: TButton;
LE_AddQuestion_Frime: TLabeledEdit;
B_Answer: TButton;
LE_Answer_Frime: TLabeledEdit;
B_GetQuestion: TButton;
SE_Answer: TSpinEdit;
LE_Answer_Value: TLabeledEdit;
B_Answer_GetNumVals: TButton;
M_MakeLegal_Value: TMemo;
LE_AddQuestion_Value: TLabeledEdit;
LE_GetQuestion: TLabeledEdit;
B_GetTarget: TButton;
LE_GetTarget: TLabeledEdit;
Button1: TButton;
Bevel8: TBevel;
Button2: TButton;
Label3: TLabel;
procedure FormCreate (Sender: TObject);
procedure B_AddFactClick (Sender: TObject);
procedure B_TestFactClick (Sender: TObject);
procedure B_SeeFactsClick (Sender: TObject);
procedure B_MakeFrimeMultivalidClick (Sender: TObject);
procedure B_MakeLegalClick (Sender: TObject);
procedure B_AddQuestionClick (Sender: TObject);
procedure B_AnswerClick (Sender: TObject);
procedure B_GetQuestionClick (Sender: TObject);
procedure B_Answer_GetNumValsClick (Sender: TObject);
procedure LE_OnExit (Sender: TObject);
procedure M_MakeLegal_ValueExit (Sender: TObject);
procedure B_GetTargetClick (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
word_string=string [word_max] ;
line_string=string [line_max] ;
value_ptr=^value;
legal_ptr=^legal_value;
frime_ptr=^frime;
value=record // значение
name: word_string; // Имя
cert: integer; // коэффициент доверия
next: value_ptr; // указатель на след. значение
end;
legal_value=record // Допустимое значение
name: word_string; // Имя
next: legal_ptr; // Указатель на следующее допуст. значение
end;
frime=record // Фрейм
name: word_string; // имя
question: line_string; // атрибут ("вопрос")
question: line_string; // атрибут ("вопрос")
multivald: boolean; // флаг многозначности
legal_list: legal_ptr; // указатель на 1ый элемент списка допустимых значений
sought: boolean; // флаг "найденности"
value_list: value_ptr; // указатель на 1ый элемент списка значений ("ответ (ы)")
next: frime_ptr // указатель на следующий фрейм
end;
prem_ptr=^prem;
con_ptr=^con;
rule_ptr=^rule;
prem=record // Предпосылка
frime: word_string; // имя фрейма
value: word_string; // имя значение
next: prem_ptr; // указатель на следующую
end;
con=record // заключение
frime: word_string; // имя фрейма
value: word_string; // имя значения
cert: integer; // коэффициент доверия
next: con_ptr; // указатель на следующее
end;
rule=record // правило
name: word_string; // имя
prem: prem_ptr; // указатель на предпосылку
con: con_ptr; // указатель на заключение
next: rule_ptr; // указатель на следующее
end;
var
MainForm: TMainForm;
last_try, // результат последнего поиска
top_fact: frime_ptr; // указатель на начало списка фреймов-объктов
top_rule: rule_ptr; // указатель на начало списка правил
rulesFile: TextFile;
explain: boolean;
procedure make_node (var curr_frime: frime_ptr);
function find_frime (f_frime: word_string): frime_ptr;
procedure split (f_line: line_string; var f_frime,f_value: word_string);
function test (f_frime,f_value: word_string): value_ptr;
procedure add_frime (f_frime,f_value: word_string);
procedure see_vals (curr_frime: frime_ptr; cf_on: boolean);
procedure see_frimes (cf_on: boolean);
function get_cf (f_line: line_string): integer;
function blend (cf1,cf2: integer): integer;
procedure add_cf (f_frime,f_value: word_string; cf2: integer);
function ok_add (f_frime: word_string; cf: integer): boolean;
procedure make_multi (f_frime: word_string);
function find_word (f_line: line_string; n: integer; var _word: word_string): boolean;
procedure add_legal (f_legal: word_string; curr_frime: frime_ptr);
function find_legal (f_frime: word_string; n: integer; var _word: word_string): boolean;
procedure make_legals (m_line: word_string);
procedure make_legals_from_form (f_frime: word_string);
procedure add_question (f_frime,s_value: word_string);
function p_question (f_frime: word_string): line_string;