МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Інститут комп'ютерних наук та інформаційних технологій
Кафедра систем автоматизованого проектування
Контрольна робота №1, 2
з курсу: “ Моделювання систем ”
на тему: КОМП’ЮТЕРНЕ МОДЕЛЮВАННЯ ОХОРОННОЇ СИСТЕМИ ЗА ДОПОМОГОЮ МОВИ MATLAB
Варіант № 20
Львів 2011
Мета роботи: Написати на мові Matlab та відлагодити програму моделювання охоронної системи приміщення.
Короткі теоретичні відомості
Побудова та дослідження моделей систем ефективно здійснюються у середовищах сучасних програм математичного моделювання з використанням бібліотеки математичних програм Netlib. Особливо ефективним є використання мови програмування високого рівня, призначеної для виконання технічних обчислень, Matlab. Отримані при цьому моделі легко інтегруються до бібліотеки Netlib та бібліотеки пакету Matlab. У складі цих бібліотек розроблені моделі можна використовувати та досліджувати при різних формах сигналів як автономно, так і в сукупності з іншими моделями.
Мова Matlab поєднує обчислення, візуалізацію і програмування в зручному для користування середовищі, в якому задачі та їх розв’язки представляються у вигляді математичних позначень. Назва Matlab походить від скорочень англійських слів Matrix Laboratory і найкраще характеризує його сутність, де матричні операції є основою більшості розрахунків. Перша оригінальна версія Matlab написана мовою Fortran. Матричні операції Matlab грунтуються на алгоритмах, розроблених в процесі написання пакетів Unpack та Еізраск. Останні версії Matlab написані мовою С фірмою MathWorks. Найважливіші особливості Matlab:
можливість вибору та зміни платформи - програми та дані можна переносити на різні типи комп'ютерів з різними операційними системами;
відкрита архітектура з точки зору можливості створення спеціальних підпрограм, спрямованих на розв'язування певного класу задач. Такі підпрограми, які можна написати як за допомогою мови програмування самої Matlab (так звані т-файли), так і мовою програмування С, після компіляції утворюють mex-файли. Тому кожний користувач може зробити свій внесок у розширення можливостей Matlab.
Високу ефективність дослідження моделей у середовищі Matlab дозволяють забезпечувати спеціальні підпрограми або спеціалізовані професійні тулбокси (набори інструментальних засобів), пов'язані з розв'язанням певного класу задач.
Matlab допускає використання як дійсних, так і комплексних чисел, при цьому оголошення типу даних не вимагається. Для запису комплексних чисел використовуються символи і та j. Наприклад, 1.5+2.3*і. У середовищі Matlab також визначена змінна типу string. Така змінна є довільним текстовим фрагментом, записаним в апострофах, причому розрізняють верхні та нижні символи. Текст запам'ятовується у вигляді вектора, а кожний знак тексту становить окремий елемент такого вектора. Наприклад, запис s='student' є текстовою змінною s=student. Певні математичні функції можуть генерувати значення типу нескінченність, яке в Matlab визначається, як inf або Inf (результат операції - число/0) та невизначеність - пап або Nan (результат операції - 0/0). В середовищі Matlab використовуються значення змінних рі та eps, які визначає точність розрахунку (за замовчуванням eps=2~52).
Функція plot автоматично відкриває нове вікно виводу графіків, якщо до цього воно ще не було відкрите. Якщо вікно виводу графіків вже було відкрите, тоді функція plot використовує його ж, як задане. Для відкриття нового вікна для виводу необхідно виконати команду figure. Для задання поточного вікна виводу серед відкритих графічних вікон необхідно набрати команду figure(n), де п – номер вікна.
Для виводу нових залежностей у створеному вікні графіка необхідно виконати команду hold on і задати команду виводу нової залежності. При цьому Matlab не знищує вже створений графік, а тільки, якщо це необхідно, змінює параметри осей.
ЗАВДАННЯ
Ознайомитись з теоретичними відомостями
Увімкнути комп'ютер. Переконатись у наявності встановленої програми Matlab.
Запустити програму Matlab.
Написати на мові Matlab та відлагодити програму, яка моделює функціонування вищеописаної системи охорони приміщення, якщо № прізвища студента в списку групи - парний або програму, яка моделює функціонування вищеописаної системи охорони автомобіля, якщо № прізвища студента у списку групи - непарний.
Проінформувати викладача про завершення роботи.
Продемонструвати на комп’ютері та пояснити результати виконання отриманого завдання.
Оформити звіт.
ХІД РОБОТИ
Код системи реалізований у вигляді м-файлу, який написаний як опрацювання подій меню.
%стрічки головного меню
scheme_name = 'Функціональна схема системи';
img_withcar = 'Подача сигналу зображення приміщення';
img_withoutcar = 'Подача сигналу зображення приміщення з постороннім об"єктом';
timeline = 'Часова залежність сигналу фільтра';
sound_count = 'Зміна тривалості звукового сигналу';
sound_type = 'Зміна виду звукового сигналу';
sound_stop = 'Блокування звукового сигналу';
%%%
sz_n = {'1с', '2с', '3с', '4с', '5с', '6с', '7с', '8с', '9с', '10с'};
%змінні управління звуком
sound_on = 1;
sound_off = 2;
b_sound_stop = 1;
n_sound_type = 1;
n_sound_long = 4;
choice = 1;
x=0:0.1:10;
img_type = 1;
sinnal_level = 0.75;
while choice > 0
try
choice = menu('КОМП"ЮТЕРНЕ МОДЕЛЮВАННЯ СИСТЕМИ ОХОРОНИ ПРИМІЩЕННЯ', scheme_name, img_withcar, img_withoutcar, timeline, sound_count, sound_type, sound_stop);
switch lower(choice)
case 1
open_scheme()
case 2
img_type = 1;
sinnal_level = 0.75;
show_img(img_type);
case 3
img_type = 2;
sinnal_level = 1.25;
show_img(img_type);
play_sound(sinnal_level, n_sound_type, n_sound_long, b_sound_stop);
case 4
arr=sinnal_level + x*0;
show_signal(x, arr);
case 5
u_sel = select_long_sound(n_sound_long, sz_n);
if u_sel > 0
n_sound_long = u_sel;
end
case 6
u_sel = select_sound(n_sound_type);
if u_sel > 0
n_sound_type = u_sel;
end
case 7
u_sel = block_sound();
if u_sel > 0
b_sound_stop = u_sel;
end
otherwise
disp('Unknown method\Close.')
end
catch exception
disp('Критична помилка.')
rethrow(exception)
end
end
Для виконання додаткових функцій написані окремі м-файли:
відкриття функціональної схеми:
function n = open_scheme()
C = imread('scheme.jpg');
image(C);
n=0;
end
відкриття фотографій приміщення:
function n = show_img( img_type )
path = 'scheme.jpg'
if(img_type == 1)
path = '1.jpg';
else
path = '2.jpg';
end
C = imread(path);
image(C);
n = 0;
end
вивід графіків сигналу:
function r = show_signal( x,y )
plot(x,y,'-')
title('Сигнал')
xlabel('t,c')
ylabel('Uc, B')
grid
r=0
end
вибір виду звукового сигналу:
function n = select_sound(c)
%стрічки меню блокування звуку
title = 'ВИД ЗВУКОВОГО СИГНАЛУ';
gong = 'гонг';
berd = 'соловей';
down_break = 'падіння';
if (c == 1)
title = strcat(title,' (', gong, ')');
elseif (c == 2)
title = strcat(title,' (', berd, ')');
elseif (c == 3)
title = strcat(title,' (', down_break, ')');
else
title = strcat(title,'(помилка)');
end
n = menu(title, gong, berd, down_break);
end
вибір тривалості звукових сигналів:
function select = select_long_sound( cur, sz_n )
title = 'ТРИВАЛІСТЬ ЗВУКОВОГО СИГНАЛУ';
title = strcat(title, '(', sz_n(cur), ')' );
select = menu(title, sz_n);
end
блокування звукового сигналу:
function x = block_sound( )
%стрічки меню блокування звуку
sblock_on = 'Розблокувати';
sblock_off = 'Заблокувати';
x = menu('БЛОКУВАННЯ ЗВУКОВОГО СИГНАЛУ', sblock_on, sblock_off);
end
відтворення вибраного звукового сигналу задану кількість разів:
function n = play_sound( t, f, long, isOn )
if(t > 1) && (isOn == 1)
if( f == 1 )
load gong.mat;
elseif (f == 2)
load laughter;
else
load splat.mat;
end
for i = 0:long,
sound(y)
end
end
n = 0
end
ОТРИМАНІ РЕЗУЛЬТАТИ
Охоронна система приміщення реалізована в вигляді меню, представленого на рис. 1.
Рис. 1. Головне меню програмної реалізації моделі системи охорони приміщення
При натисканні кнопки меню з назвою «Функціональна схема системи» виводиться функціональна схема системи охорони приміщення, де ЄС – ємнісний сенсор, ОБ – обробляючий блок, В – відеокамера, М – монітор, КП – керований перемикач, ДЗС – джерело звукових сигналів, вс – вид сигналу, тс – тривалість сигналу, бс – блокування сигналу, uc – напруга спрацювання. Згідно з рис. 2 сигнал зображення приміщення подається на відеокамеру, з якої поступає на монітор пункту спостереження і обробляючий блок. З іншого боку, на обробляючий блок надходить сигнал з ємнісного сенсора, встановленого в приміщенні. При сигналу зміні зображення, а отже, напруги на виході обробляючого блоку і відхиленні її за задані межі, тобто перевищенні цією напругою заданого порогу, спрацьовує керований перемикач, який вмикає джерело звукового сигналу. Джерело звукового сигналу має можливість зміни виду, тривалості сигналів та їх блокування. При зменшенні величини сигналу на виході обробляючого блоку нижче заданого порогу спрацювання дія звукового сигналу припиняється. Зображення функціональної схеми можна закрити шляхом натискання на піктограму close його меню (рис. 2).
Рис. 2. Функціональна схема системи охорони приміщення
При натисканні на клавішу головного меню програми «подача сигналу зображення приміщення» з’являється зображення з місця охорони приміщення, показане на рис. 3.
Рис. 3. Зображення з місця охорони приміщення
При натисканні на клавішу головного меню програми, що має назву «подача сигналу зображення місця охорони з котом» з’являється зображення місця охорони з порушенням (рис. 4). При цьому спрацьовує заданий звуковий сигнал із заданою тривалістю.
Рис. 4. Зображення з місця охорони з порушенням
При натисканні на клавішу головного меню програми з назвою «часова залежність сигналу сенсора» після подачі сигналу зображення приміщення отримується графік, показаний на рис. 5. Якщо клавішу меню «часова залежність сигналу сенсора» натиснути після подачі сигналу зображення місця охорони з порушенням, з’являється графік, поданий на рис. 6. Як можна побачити з порівняння рис. 5 і рис. 6, після порушення величина сигналу сенсора у встановленому режимі збільшується.
Рис. 5. Часова залежність сигналу сенсора у встановленому режимі після подачі сигналу зображення приміщення
Рис. 6. Часова залежність сигналу сенсора у встановленому режимі після подачі сигналу зображення з місця охорони з котом
При натисканні на клавішу головного меню програми «зміна кількості звукових сигналів» з’являється меню вибору кількості звукових сигналів (рис. 7), де можна задавати 1, 2, 3, 4, 5, 6, 7, 8, 9 та 10 звукових сигналів. За замовчуванням встановлено 3 звукових сигнали.
Рис. 7. Меню вибору кількості звукових сигналів
При натисканні на клавішу головного меню «зміна виду звукових сигналів» з’являється меню вибору виду звукових сигналів (рис. 8), де можна вибрати один з трьох видів звукового сигналу: гонг, соловей, падіння. За замовчуванням встановлюється сигнал «гонг».
Рис. 8. Меню вибору виду звукових сигналів
При натисканні на клавішу головного меню «блокування звукового сигналу» з’являється меню, де можна заблокувати або навпаки, розблокувати звуковий сигнал (рис. 9).
Рис. 9. Меню блокування звукового сигналу
ВИСНОВКИ
В результаті виконання контрольної роботи я написав на мові Matlab та відлагодила програму моделювання охоронної системи приміщення.
Звичайно, при виконанні багатьох практичних завдань при моделюванні різноманітного виду систем виникає необхідність у представленні результатів досліджень у графічній формі, що значно полегшує розуміння результатів і сприяє їх більш ефективному використанню. MATLAB має добре розвинені графічні можливості для візуалізації даних.
Наявні готові функції для роботи з великими масивами даних, зображеннями та звуком значною мірою полегшують розробку складних систем з інтерфейсом користувача.