Смекни!
smekni.com

Системы контроля состояния подсистем танкера с использованием современной элементной базы (стр. 19 из 19)

17. Рябов И. В. Современные средства тушения пожаров пенами. М., Изд. МКХ РСФСР, 1987.

18. Смольников С. Пожар на танкере.— «Пожарное дело», 1969.

19. www.asutp.ru

20. www.advantech.ru

21. www.adastra.ru

22. Т.Н. Бакаева, А.В. Непомнящий, И.И. Ткачев. В помощь дипломнику: Методическая разработка к разделу "Безопасность и экологичность" в дипломном проекте (работе) для студентов всех специальностей. Таганрог: Изд-во ТРТУ, 2001.

23. Т.А. Пьявченко. Автоматизированные системы управления технологическими процессами и техническими объектами: Учебное пособие. Таганрог: ТРТУ, 1997.

ПРИЛОЖЕНИЯ

Приложение 1

Листинг MatLab-программы для моделирования сигналов с датчиков.

F = 500;

Ngroup = 21;

Nvar =9;

mox = 21;

sigma = sqrt( 0.01 * (9+5)^2 );

Apom = 20*mox;

Akz = 25*mox;

Aobr = 0;

x = mox + sigma*randn(1, F);

D0 = cov(x);

subplot(5, 1, 1)

plot(x)

grid on

ylim([mox-sigma*10 mox+sigma*10])

text(1, mox-sigma*10+1, strcat('Дисперсия погрешности измерений:', num2str(D0)))

legend('Сигнал датчика');

pomnum = F/50; %кол-во импульсных помех с амплитудой Apom

for m = 1:pomnum

t = round(3 + (F-3) * rand(1)); %индекс элемента массива, где будет помеха. Лежит в интервале [3;F];

x(t) = Apom;

end

t = round(3 + (F-5) * rand(1)); %индекс элемента массива, где будет короткое замыкание. Лежит в интервале [3;F-2];

x(t) = Akz;

x(t+1) = Akz;

x(t+2) = Akz;

t = round(3 + (F-5) * rand(1)); %индекс элемента массива, где будет обрыв. Лежит в интервале [3;F-2];

x(t) = Aobr;

x(t+1) = Aobr;

x(t+2) = Aobr;

%D1 = cov(x);

subplot(5, 1, 2)

plot(x)

grid on

ylim([mox-sigma*10 mox+sigma*10])

legend('Сигнал в канале измерений');

%проверка на достоверность

errorcount = 0; %счетчик нарушений

j = 3;

XB = mox + (Nvar+2);

XH = mox - (Nvar+2);

last = x(1); %последнее достоверное значение

for k = j:F

if x(k)<XH | x(k)>XB

errorcount = errorcount + 1;

if errorcount == 3

razn = x(k)-x(k-j);

if razn < 0

obr = k;

else

kz = k;

end

errorcount = 0; %так как программа продолжает выполнение

x(k)=last;

else

x(k) = last;

end

else

errorcount = 0;

last = x(k);

end

end

D2 = cov(x);

subplot(5, 1, 3)

plot(x)

grid on

ylim([mox-sigma*10 mox+sigma*10])

text(1, mox-sigma*10+1, strcat('Дисперсия:', num2str(D2), '; КЗ на отсчете:', int2str(kz), '; Обрыв в канале на отсчете:', int2str(obr)))

legend('Сигнал после проверки на достоверность');

% Algoritmi sglajivaniya

Nzad = 10;

sigmazad = 0.00001;

% Sglajivaniye "skolzashego srednego"

M = ceil(Nzad);

for t = 1:M

xc(t) = x(t);

end

for k = M:F

sum = 0;

for j = k-M+1:k-M+M

sum = sum + x(j);

end

sum = sum / M;

xc(k) = sum;

end

xcd = xc(M:F);

D3 = cov(xcd);

subplot(5, 1, 4)

plot(xc)

grid on

ylim([mox-sigma*10 mox+sigma*10])

text(1, mox-sigma*10+1, strcat('Дисперсия:', num2str(D3), '; Коэфф. ослабления :', num2str(D2/D3), '; Тск.ср.=', int2str(M), '*Tопр'))

legend('Скользящее сглаживание');

% Exponencialnoye sglajivaniye

alpha = 2/(Nzad+1);

xe(1)=alpha*x(1);

for k = 2:F

xe(k) = xe(k-1) + alpha*(x(k)-xe(k-1));

end

Teks = 0.5*log(sigmazad)/log(1-alpha);

xed = xe(ceil(Teks):F);

D4 = cov(xed);

subplot(5, 1, 5)

plot(xe)

grid on

ylim([mox-sigma*10 mox+sigma*10])

text(1, mox-sigma*10+1, strcat('Дисперсия:', num2str(D4), '; Коэфф. ослабления :', num2str(D2/D4), '; Тэкс.сгл.=', num2str(Teks), '*Tопр'))

legend('Экспоненциальное сглаживание');

Программный модуль для реализации функции аналогового ввода сигналов от датчиков.

//измерение температуры

begin

open "com1: 9600, n, 8, 1, rs, cs, cd, ds" as #1;

writeln "конфигурация, ждите";

cmd: = "%01020е0600";

writeln #1,cmd;

result:=input(4,#1);

temp:=mid(result,1,3);

if temp<>"102" then goto ent;

delay = 7 goto dela;

vver:

cmd:= "@02lo+140.00";

writeln #1,cmd;

results:=inputs (4, #1);

temps:= mto(result,1,3);

if tempo"102" then goto vver;

delay:= 2 goto dela;

cmd:= "@02еам";

vver2:

writeln #1,cmd;

results:=inputs (4, #1);

temp:= mid(temp,1,3);

if temp<>"102" then goto vver2

delay = 2: goto dela

writeln " температура: °";

writeln " *контрольная температура:";

writeln " * сигнал управления:";

writeln " текущее время:";

while true do

begin

cmd:= "#02";

writeln #1,cmd;

temps;= inputs (9, #1);

temps:= mid(temp,2,7);

writeln temps;

writeln times;

cmos:= "@02d1";

writeln #1,cmd;

alarms:= inputs (9, #1);

alarms:= mid( alarm,6,1);

if (alarms ="2" or alarms ="3") then writeln "on"

else writeln "off";

end;

dela:

//"процедура временной задержки"

begin

start:= int(timer)

while delay>-1 do

begin

if (startoint(timer)) then delay = delay-1

end;

end;

end;

Приложение 2

Вместимость танков и цистерн нефтеналивного танкера

Группа танков, цистерны № танков и цистерн Вместимость(нетто) м3
Грузовые танки Отстойные танки Балластные цистерны общая
1 группа 1ПрБ,1ЛБ,5ПрБ 5ЛБ 4155,4010, 5460,5315 18940
2 группа 2ПрБ, 2ЛБ, 6ПрБ, 2ЛБ 5460,5315, 5460, 5315 21550
3 группа 3ПрБ, 3ЛБ 7ПрБ, 7ЛБ 5460,5315 3800, 3700 18275
4 группа 4ПрБ, 4ЛБ 8ПрБ, 8ЛБ 5460,5315 870,705 12350
1-4 группа 71100
Балластные цистерны Б-1,Б-2,Б-3, Б-4 ,Б-5, Б-6, Б-7, Б-8, Б-9, Б10 2*3110 2*1525 2*3050 2*1525 2*1330 6220 3050 6100 3050 2660
Форпик Ахтерпик 1635 535 1635 535
Балластные цистерны и пики 23250

Приложение 3

Принципиальная схема системы.

Приложение 4

Функциональная схема системы.