Моделювання роботи цеху

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати


АНОТАЦІЯ.

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

Для реалізації алгоритму програми даного курсового проекту була вибрана мова програмування Delphi версії 6.0. Існує багато різних методів і програмних засобів для створення програмного продукту. Середа візуального програмування обрано з метою швидкого створення зручного і красивого інтерфейсу. Середа Borland Delphi обрана тому, що вона дозволяє створювати досить складні проекти без високого рівня знань самого середовища. Середа візуального програмування Delphi дозволяє створювати зручний і красивий інтерфейс, не вимагаючи при цьому великих зусиль. Такий інтерфейс зрозумілий у використанні будь-якому користувачеві, навіть початківцеві. Delphi дозволяє використовувати в програмі малюнки, будувати графіки, використовувати об'єкти офісних додатків, використовувати мультимедійні ефекти.

При написанні даного курсового проекту використовувалися різні літературні джерела, які перераховані у відповідному розділі.

Дана робота написана у відповідність з даними варіанту № 2. Варіанти завдань вказані в методичному посібнику з написання курсової роботи, зазначеному в списку використаної літератури під номером 1.

ЗМІСТ.

Введення

1. Опис застосування:

1.1. Призначення та умови застосування програми

1.2. Опис завдання

2. Опис програми:

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

2.2. Опис логічної структури

2.3. Використовувані технічні засоби, виклик і завантаження

2.4. Вхідні і вихідні дані

2.5. Контрольний приклад

2.6. Інструкція користувачеві

3. Текст програми:

3.1. Модуль 1.

3.2. Модуль 2

3.3. Модуль 3.

Список використаних джерел

Додаток А.

Додаток Б.

Додаток В

Додаток Г

ВСТУП.

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

Методологічна основа моделювання - діалектико-математичний метод пізнання і наукового дослідження. Все те, на що спрямована людська діяльність, називається об'єктом (від лат. Objectum - предмет). Вибірка методології спрямована на впорядкування отримання та обробки інформації про об'єкти, які існують поза нашою свідомістю і взаємодіють між собою і зовнішнім середовищем.

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

Аналогією називають судження про будь-яке приватному схожості двох об'єктів. Причому така подібність може бути суттєвим і несуттєвим.

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

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

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

Модель - це цільове відображення. Отже, для різних цілей створюються різні моделі. Безліч моделей ділиться на типи за цільовим ознакою:

1. Пізнавальні (мета теоретична). Моделі є формою організації подання знань, засобом з'єднання нових знань зі своїми. Пізнавальні моделі наближають модель до реальності.

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

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

Елемент системи - це об'єкт, що виконує функції і не розбивається далі в рамках завдання.

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

Відповідно до першого визначення системи, система - це засіб досягнення мети. Система має такі властивості:

1. Цілісність: система має властивості, не притаманні її елементам.

2. Цілеспрямованість.

3. Множинність цілей: розбіжність мети системи та цілей окремих компонентів.

4. Відокремленість від середовища.

5. Динамічність.

6. Абстрактний характер опису: досліджувана система, так чи інакше, відрізняється від об'єкта спостереження.

7. Принцип причинності. Це властивість властива динамічним причин. Відгук системи на деякий вплив не може початися раніше, ніж саме вплив.

Система, в якій відбувається зміни з часом, називається динамічною. Виділяють два види динаміки: функціонування і розвиток. Функціонування - це процес, що відбувається в системі, стабільно реалізує фіксовану мету. Розвиток - це те, що відбувається із системою при зміні її мети.

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

1. ОПІСАHІЕ ПРІМЕHЕHІЯ.

1.1. Призначення та умови застосування програми.

Програма "Моделювання роботи цеху" представляє собою закінчений програмний продукт, який призначений для зручного і, що головне, наочного моделювання процесу роботи верстатів у цеху. Дане завдання за своєю суттю є системою масового обслуговування (СМО).

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

Вимоги програми: персональний комп'ютер на базі мікропроцесора Intel 80586 і вище, VGA сумісна відеокарта, накопичувач твердому магнітному диску.

Вимоги до операційної системи обмежені вимогами компілятора мови Delphi 6.0, тобто Windows 98 або вище.

Дана програма досить наочно показує всі основні внутрішні параметри та стану даної СМО.

Оригінальний текст програми знаходиться в декількох файлах під ім'ям kurs.s і займає 15 кілобайт, а виконуваний модуль під ім'ям K urs.exe - 228 кілобайт.

1.2 Опис завдання.

На обробляє ділянку цеху надходять деталі в середньому через 50 хв. Первинна обробка проводиться на одному з двох верстатів. Перший верстат обробляє деталь в середньому 40 хв. і має до 4% браку, а другий верстат обробляє деталь в середньому 60 хв. і має до 8% браку. Всі деталі повертаються на повторну обробку на другий верстат. Деталі, який потрапили в розряд бракованих двічі, вважаються відходами. Повторну обробку проводять також два верстати в середньому 100 хв. кожен. При цьому перший верстат обробляє присутні в накопичувачі після первинної обробки деталі, а другий верстат підключається при створенні в накопичувачі черзі понад трьох деталей. Всі інтервали часу розподілені за експоненціальним законом.

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

K 11 K 21

ст11 ст21

Н 0 Н 1

K 12 K 22

ст12 ст22

Схема імітаційної моделі системи

Для формалізації процесів обслуговування у цьому цеху використовується апарат Q-схем, так як дані процеси є, по суті, процесами обслуговування потоків даних.

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

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

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

У будь-якому елементарному акті обслуговування можна виділити дві основні складові: очікування обслуговування заявкою і власне обслуговування заявки.

Пристрій, здатне в будь-який момент часу обслуговувати лише одна вимога, називається каналом обслуговування. У даному випадку каналами обслуговування є влаштування підготовки даних і два ЕОМ.

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

а) довжина черги в різні моменти часу;

б) загальна тривалість перебування вимоги в системі обслуговування;

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

Для отримання математичної моделі СМО необхідно мати:

а) опис вхідного потоку вимог;

б) опис способу, яким виконується обслуговування;

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

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

{Tn} = {0 <= t1 <= t2 <= ... <= Ti <= ... },

де ti - момент появи i-ого події - невід'ємне дійсне число. Однорідний потік може бути заданий так само послідовністю відрізків часу між i-им і (i-1)-им подією {tn}. У даному випадку потік заявок, що надходить на обслуговування в систему (потік партій деталей), є однорідним і задається описаним способом.

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

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

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

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

Час обслуговування має випадковий характер.

У практиці моделювання систем для формалізації використовуються не окремі прилади обслуговування, а композиції багатьох елементарних приладів обслуговування Пi. Якщо канали Кi різних приладів обслуговування з'єднані паралельно, то має місце багатоканальне обслуговування (багатоканальна Q-схема), а якщо прилади Пi та їх паралельні композиції з'єднані послідовно, то має місце багатофазні обслуговування (багатофазна Q-схема). Т.ч. для завдання Q-схеми необхідно використовувати оператор сполучення R, що відображає взаємозв'язок елементів структури (каналів і накопичувачів) між собою.

У даній роботі представлена ​​багатоканальна Q-схема, яка має 3 каналу (див. Додаток В): складається з накопичувача Н1, і каналів обслуговування. Вхідними потоками для цієї схеми є потік деталей, кожна з яких надходить через проміжки часу, задані з середнім значенням 50 хвилин, а також до 12% оброблюваних деталей повертаються для повторної обробки. Оператор поведінки заявок А: деталь надходить в машинний зал з черги Н0, якщо потрібний канал обслуговування вільний, інакше стає в чергу (Н 0-накопичувач з очікуванням); після обслуговування, якщо перший верстат вторинної обробки зайнятий, то стає в чергу, якщо в накопичувачі накопичується більше трьох заявок, то підключається другий верстат вторинної обробки.

Власними (внутрішніми) параметрами Q-схеми будуть: кількість фаз L ф; кількість каналів в кожній фазі L kj, j = 1, L ф; ємність i-го накопичувача L i. Позначимо як підмножина H сукупність власних параметрів Q-схеми:

H = {L ф = 2, L k 1 = 2, L k 2 = 2, L 1 = , L 2 = ,}

Т.ч. Q-схема, що описує процес функціонування системи масового обслуговування будь-якої складності задається у вигляді:

Q = <W, U, H, Z, R, A>, де

W - підмножина некерованих змінних - підмножина вхідних потоків заявок на обслуговування;

U - підмножина керованих змінних - підмножина потоків обслуговування;

R - оператор сполучення елементів структури (каналів і накопичувачів);

H - підмножина власних параметрів (фаз, каналів, накопичувачів, ємностей);

Z - підмножина станів елементів структури (Z i, Z i);

A - оператор алгоритмів обслуговування заявок (оператор поведінки заявок).

Великими можливостями мають імітаційні моделі, що дозволяють обстежувати Q-схему, що задається без обмежень у вигляді:

Q = <W, U, H, Z, Y, R, A>,

де Y - підмножина вихідних змінних.

На роботу з Q-схемою при машинної реалізації моделей орієнтовані багато мов імітаційного моделювання: SIMULA, SIMSCRIPT, GPSS та ін, або використовуються пакети прикладних програм, створених на базі алгоритмічних мов загального призначення ALGOL, FORTRAN, PL / 1 та ін

У даній роботі розглядається випадок двох каналів, на які надходять потоки вимог з інтенсивністю L 1, L 2. Інтенсивність обслуговування дорівнює М.

Середнє число вимог, що знаходяться в системі обслуговування,

(1.2.1)

Враховуючи, що

(1.2.2)

знаходимо:

, (1.2.3)

де

, (1.2.4)

Можна також знайти середнє число заявок До s проходять обслуговування. Оскільки число заявок, що знаходяться на обслуговуванні, дорівнює нулю, якщо канал вільний, і одиниці, у всіх інших випадках, то

(1.2.5)

Різниця між К і Кs дає середню довжину черги

(1.2.6)

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

(1.2.7)

Ще одним поширеним загальним підходом до формального опису процесів функціонування систем є підхід, запропонований Н.П. Бусленко. Цей підхід дозволяє описувати поведінку безперервних і дискретних, детермінованих і стохастичних систем, тобто є узагальненим (універсальним) і базується на понятті агрегативної системи (від англ. aggregate system), що представляє собою формальну схему загального вигляду, яку будемо називати А-схемою. (А-схема програми даного проекту знаходиться в Додатку Г.)

А-схема повинна одночасно виконувати кілька функцій:

  • бути адекватним математичним описом об'єкта моделювання, тобто системи S;

  • служити основою для побудови алгоритмів і програм при машинної реалізації моделі M;

  • дозволяти у спрощеному варіанті проводити аналітичні дослідження.

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

В якості елементів А-схеми виступає агрегат, а зв'язок між агрегатами (усередині системи S і з зовнішнім середовищем E) здійснюється за допомогою оператора сполучення R. Очевидно, що агрегат сам може розглядатися як А-схема, тобто може розбиватися на елементи (агрегати) наступного рівня. Будь-який агрегат характеризується наступними множинами: моментів часу Т, вхідних Х і вихідних Y сигналів, станів Z у кожен момент часу t. Стан агрегату в момент часу позначається як , А вхідні і вихідні сигнали, як і відповідно.

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

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

(1.2.8)

Позначимо полуінтервал часу як , А полуінтервал як . Якщо інтервал часу не містить жодного моменту надходження сигналів, то для стан агрегату визначається випадковим оператором відповідно до співвідношення

(1.2.9)

Сукупність випадкових операторів і розглядається як оператор переходів агрегату в нові стани. При цьому процес функціонування агрегату складається з стрибків станів в моменти надходження вхідних сигналів (Оператор ) І змін станів між цими моментами і (Оператор ).

Послідовність вхідних сигналів, розташованих порядку їх надходження в А-схему, будемо називати вхідним повідомленням або x-повідомленням. Послідовність вихідних сигналів, упорядковану щодо часу видачі, назвемо вихідним повідомленням або y-повідомленням.

Ряд припущень про закономірності функціонування А-схем:

  1. взаємодія між А-схемою та зовнішнім середовищем Е, а також між окремими агрегатами всередині системи S здійснюється при передачі сигналів, причому взаємні впливи, що мають місце поза механізму обміну сигналами;

  2. для опису сигналу досить деякого кінцевого набору характеристик;

  3. елементарні сигнали миттєво передаються в А-схемі незалежно один від одного по елементарним каналах;

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

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

. (1.2.10)

Сигнал, що поступає в А-схему із зовнішнього середовища Е, є вихідним сигналом елемента і складається з елементарних сигналів

(1.2.11)

Таким чином, кожен (У тому числі і ), Як елемент А-схеми в рамках прийнятих припущень про механізм обміну сигналами досить охарактеризувати безліччю вхідних контактів

, (1.2.12)

яке позначимо , І безліччю вихідних контактів

, (1.2.13)

де .

Отримана пара множин є математичною моделлю елемента , Використовуваного для формального опису сполучення його з іншими елементами А-схеми і зовнішнім середовищем Е.

Якщо в А-схемі до контакту не підключений ніякої елементарний канал, то оператор не визначений на цьому контакті.

Оператор називається оператором сполучення елементів (агрегатів) в А-схему. Сукупність множин

, і оператор утворюють схему сполучення елементів в систему S.

Оператор сполучення можна задати у вигляді таблиці, в якій на перетині рядків з номерами елементів (агрегатів) і стовпців за номерами контактів розташовуються пари чисел , , Що вказують номер елемента і номер контакту , З яким з'єднаний контакт .

Якщо стовпці і рядки такої таблиці пронумерувати подвійними індексами , і , відповідно і на перетині поміщати для контактів , і , , З'єднаних елементарним каналом і в іншому випадку, то отримаємо матрицю суміжності орієнтованого графа, вершинами якого є контакти агрегатів, а дугами - елементарні канали А-схеми.

Розглянута схема поєднання в А-схему, задана сукупністю множин і оператором R, є однорівневої схемою сполучення.

Узагальнений підхід до моделювання складних систем базується на агрегативно системах - А-схемах.

Елементом А-схеми є агрегат. Агрегат задається впорядкованої сукупністю:

тобто множинами:

- Моментів часу;

- Вхідних сигналів;

- Вихідних сигналів;

- Власних параметрів;

та операторами:

і - Переходу агрегату в новий стан;

- Стрибків станів;

- Видачі вихідного сигналу.

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

Кожен агрегат , Де А-схеми має вхідні контакти, на які надходять сигнали , і вихідні контакти, з яких знімаються сигнали , . Під агрегатом мається на увазі вплив зовнішнього середовища.

2. ОПІСАHІЕ ПРОГРАМИ.

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

Програма "Моделювання роботи цеху" необхідна для зручного і наочного моделювання процесу обробки деталей в цеху. Час моделювання залежить від часу надходження 500 заявок (така умова завершення роботи).

Особливості функціонування систем масового обслуговування були детально розглянуті в п.1.2.

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

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

- Поділ деякої загальної проблеми на кілька менших за обсягом та складністю частин;

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

- Полегшення читання тексту програми;

- Полегшення роботи з програмою, з огляду на її наочності;

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

Завдяки операторам, процедур і функцій мови можливе написання ряду складних і різноманітних за структурою, застосування і виконуваних функцій програм.

2.2. Опис логічної структури.

У даній програмі був використаний метод об'єктного програмування. Суть його полягає в оформленні послідовностей команд як замкнутих функцій та / або процедур і в об'єднанні даних, пов'язаних за змістом, у складні структури даних. Розглянемо коротко процедури і функції, які використовувалися при написання програми:

  • procedure TForm1.FormCreate - здійснює ініціалізацію модельованої системи, тобто відбувається ініціалізація всіх змінних;

  • procedure TForm1.Timer2Timer - генерує в довільні (розподілені за експоненціальним законом) моменти часу надходження нових деталей (заявок);

  • procedure TForm1.Timer1Timer - основна процедура програми - моделює обробку деталей на верстатах і забезпечує в певні моменти часу виклик процедур переведення деталей з накопичувача у верстат і навпаки;

  • procedure TForm1.N3Click - призупиняє моделювання;

  • procedure TForm1.N11Click - обнуління всіх змінних і всіх значень (кількість всіх деталей, бракованих і т.д.);

  • procedure TForm1.N10Click - виводить на екран форму "Параметри", в якій можна змінювати різні системні значення (максимально можлива кількість шлюбу, час обробки деталей на кожному верстаті і т.д.);

  • procedure TForm1.Q1Click - виводить на екран форму з Q-схеми;

  • procedure TForm1.N5Click-виводить на екран форму з А-схеми;

  • procedure TForm1.N7Click-показує на екрані завдання курсового проекту;

  • procedure TForm1.N8Click - виводить на екран форму з довідкою про програму;

  • procedure TForm4.FormClose - використовується для ініціалізації всіх змін на формі "Параметри";

  • procedure TForm1.N9Click - вихід з програми.

Процедури і функції користувача:

  • function where_go - визначається куди піде деталь після обробки на верстатах первинної обробки - у накопичувач Н 1 або повернеться назад у накопичувач Н 0 якщо шлюб);

  • procedure prov_nak - процедура перевірки наявності деталей в накопичувачах;

  • procedure add_new - процедура створення та ініціалізації нової деталі (заявки);

  • procedure run - переводить деталі (заявки) з верстатів (приладів) у накопичувачі і навпаки.

Розглянемо більш детально основний цикл програми. У цьому циклі здійснюються наступні дії:

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

б) Якщо черга не порожня і верстат № 1 або станок № 2 вільний, то зменшується лічильник черги і обчислюється час обробки деталі. У цей час верстат знаходиться в стані зайнятий.

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

г) Якщо деталь надійшла в накопичувач Н 1, то збільшується лічильник елементів черги.

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

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

2.3. Використовувані технічні засоби, виклик і завантаження.

Для успішної роботи з представленою програмою "Моделювання роботи цеху" необхідний персональний комп'ютер на базі мікропроцесора Intel 80586 і вище, VGA сумісна відеокарта, накопичувач на жорсткому чи гнучкому магнітному диску. Вимоги до операційної системи обмежені вимогами компілятора мови Delphi версії 6.0, тобто Windows 98 і вище.

Оригінальний текст програми знаходиться у файлах під іменами Progr 1. Pas, Progr 2. Pas, Progr 3. Pas, Progr 4. Pas, які займають відповідно 10 938, 622, 788, 2 383 байт, а виконуваний модуль під ім'ям Kurs_project.exe - 1067088 байт.

Для запуску програми необхідно завантажити Windows і запустити вказаний виконуваний файл Kurs_project.exe.

2.4. Вхідні і вихідні дані.

До вхідних даних належать дані, які можуть змінюватися користувачем - час обробки заявок на кожному верстаті, максимально можливий відсоток браку і загальна швидкість моделювання.

До вихідних даних слід віднести інформацію, виведену в процесі функціонування процесу моделювання:

- Загальна кількість заявок;

- Кількість заявок, повернутих на повторну обробку (первинний шлюб);

- Кількість деталей, які потрапили в розряд бракованих двічі.

Слід зазначити, що виконання даної програми можливо лише у разі наявності на комп'ютері всіх необхідних технічних засобів.

2.5. Контрольний приклад.

Для часу моделювання, рівному надходженню 500 заявок, стан системи (усі параметри - за умовчанням):

- Загальна кількість заявок - 500;

- Кількість деталей, повернутих на повторну обробку - 31;

- Кількість бракованих деталей - 3.

2.6. Інструкція користувачеві.

Робота з програмою не представляє особливої ​​складності навіть для користувача, що не має великого досвіду роботи з персональним комп'ютером. Після запуску програми на екрані з'являється головне вікно програми.

Дана програма являє собою модель процесу обробки 500 деталей в цеху з використанням чотирьох верстатів, два з яких ведуть первинну обробку деталей, інші два - вторинну.

Програма запускається за допомогою виклику виконуваного файлу Kurs_project.exe в операційній системі Windows 98 або вище. На екрані з'явиться вікно із зображенням моделі цеху.

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

Для того, щоб переглянути інформацію про програму, необхідно виконати команду Про програму меню Довідка. У цьому ж меню можна переглянути завдання, вибравши відповідну команду.

У меню Схеми знаходяться команди, що дозволяють виводити на екран відповідно Q-схему і A-схему програми.

3. ТЕКСТ ПРОГРАМИ.

3.1. Модуль 1.

unit Progr 1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, StdCtrls, Spin, Menus;

type

TForm1 = class (TForm)

P1_4: TPanel;

P2_4: TPanel;

P2_3: TPanel;

P1_3: TPanel;

P1_1: TPanel;

pb1: TProgressBar;

pb2: TProgressBar;

Panel8: TPanel;

Panel9: TPanel;

Panel10: TPanel;

Panel11: TPanel;

pb3: TProgressBar;

Panel14: TPanel;

pb4: TProgressBar;

Panel15: TPanel;

Panel16: TPanel;

Panel17: TPanel;

Panel18: TPanel;

Memo2: TMemo;

Memo3: TMemo;

Memo4: TMemo;

Memo5: TMemo;

Timer1: TTimer;

pb_start: TProgressBar;

Timer2: TTimer;

P1_2: TPanel;

P2_1: TPanel;

P2_2: TPanel;

Panel5: TPanel;

Panel21: TPanel;

Panel24: TPanel;

Panel25: TPanel;

Panel26: TPanel;

Panel27: TPanel;

Panel28: TPanel;

Panel31: TPanel;

Label1: TLabel;

Label3: TLabel;

Label2: TLabel;

Label4: TLabel;

p1: TPanel;

p2: TPanel;

Panel34: TPanel;

Panel35: TPanel;

Panel36: TPanel;

Panel38: TPanel;

Panel40: TPanel;

Panel41: TPanel;

Panel42: TPanel;

Panel44: TPanel;

Panel45: TPanel;

Panel12: TPanel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

indicator1: TProgressBar;

indicator2: TProgressBar;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

Q1: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Bevel1: TBevel;

Panel1: TPanel;

procedure Timer2Timer (Sender: TObject);

procedure add_new (ad: byte);

procedure FormCreate (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure N11Click (Sender: TObject);

procedure N9Click (Sender: TObject);

procedure Q1Click (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure N7Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure N8Click (Sender: TObject);

private {Private declarations}

public {Public declarations}

end;

var

Form1: TForm1;

t1, t2: byte;

ustanov, zapusk, ripit,

zanyat1, zanyat2, zanyat3, zanyat4: boolean;

have1, have2, have_povtor: boolean;

TotalTime, TotalMessages,

LostMessages, RepeatMessages: longint;

brak1, brak2, time1, time2, time3, time4, zadergka: byte;

implementation

uses Progr2, progr3, Progr4;

{$ R *. DFM}

function where_go (w: byte): boolean;

var x: integer;

begin if (w = 1) then begin

x: = trunc (random (100));

if (x> brak1) and (RepeatMessages <(5 * (brak1 + brak2))) then where_go: = true; end;

if (w = 2) then begin

x: = trunc (random (100)); if (x> brak2) and (RepeatMessages <(5 * (brak1 + brak2))) then where_go: = true; end;

end;

procedure prov_nak; {процедура перевірки порожнечі накопичувачів}

begin

have1: = false; have2: = false; have_povtor: = FALSE;

if strtoint (form1.label6.caption)> = 1 then have1: = true;

if strtoint (form1.label8.caption)> = 1 then have2: = true;

if strtoint (form1.label10.caption)> = 1 then have_povtor: = true;

end;

procedure Tform1.add_new (ad: byte);

begin

if ad = 1 then begin

label6.caption: = inttostr (strtoint (label6.caption) +1);

indicator1.Position: = strtoint (label6.caption) * 10;

end

else begin

label8.Caption: = inttostr (strtoint (label8.Caption) +1);

indicator2.Position: = strtoint (label8.Caption) +2;

end;

end;

procedure run;

{Переводить заявки з приладів в накопичувачі і навпаки}

begin

if have1 then

if not (zanyat1) then

begin

form1.pb1.Max: = time1 + round (random (80)); {час обробки завдання}

form1.pb1.Position: = 2;

form1.label6.Caption: = inttostr (strtoint (form1.label6.Caption) -1);

form1.indicator1.Position: = strtoint (form1.label6.Caption) * 10;

zanyat1: = true; prov_nak; end;

if have_povtor then if not (zanyat2) then

begin form1.pb2.Max: = time2 + round (random (80));

form1.pb2.Position: = 2; form1.label10.Caption: = inttostr (strtoint (form1.label10.Caption) -1);

zanyat2: = true; ripit: = true; prov_nak; end;

if have1 then

if not (zanyat2) then

begin

form1.pb2.Max: = time2 + round (random (80)); form1.pb2.Position: = 2;

form1.label6.Caption: = inttostr (strtoint (form1.label6.Caption) -1);

form1.indicator1.Position: = strtoint (form1.label6.Caption) * 10;

zanyat2: = true;

prov_nak; end;

if (have2) and (not (zanyat3)) then

begin

form1.pb3.Max: = time3 + round (random (80)); form1.pb3.Position: = 2;

form1.label8.Caption: = inttostr (strtoint (form1.label8.Caption) -1);

form1.indicator2.Position: = form1.indicator2.Position-2;

zanyat3: = true; prov_nak; end;

if (strtoint (form1.label8.caption)> 3) and (not (zanyat4)) then

begin

form1.pb4.Max: = time4 + round (random (80)); form1.pb4.Position: = 2;

form1.label8.Caption: = inttostr (strtoint (form1.label8.Caption) -1);

form1.indicator2.Position: = form1.indicator2.Position-2;

zanyat4: = true;

prov_nak;

end;

end;

procedure TForm1.Timer2Timer (Sender: TObject);

var t: real;

i: integer;

begin

if (zapusk) and (TotalMessages <500) then

begin

if not (ustanov) then

begin

t1: = 5 + trunc (random (10));

ustanov: = true;

zapusk: = ustanov;

t2: = 0;

end

else

if t2 = t1 then

begin

t: = 0;

for i: = 1 to 1000 do

begin

pb_start.Position: = (pb_start.Position + trunc (t));

t: = t +0.01;

end;

add_new (1);

inc (TotalMessages); {кількість всіх повідомлень прийшли в систему}

pb_start.Position: = 0;

t2: = 0;

ustanov: = false;

end

else inc (t2);

prov_nak;

end;

end;

procedure TForm1.FormCreate (Sender: TObject);

begin

randomize;

label1.Caption: = 'Чекає'; label2.Caption: = 'Чекає';

label3.Caption: = 'Чекає'; label4.Caption: = 'Чекає';

zanyat1: = false; zanyat2: = false; zanyat3: = false;

zanyat4: = false;

brak1: = 4; brak2: = 8; time1: = 40; time2: = 60;

time3: = 100; time4: = 100;

end;

procedure TForm1.Timer1Timer (Sender: TObject);

begin

if zapusk then begin

if pb1.Position = pb1.max then begin

pb1.Position: = 0; zanyat1: = false;

label1.Caption: = 'Чекає';

if where_go (1) then add_new (2)

else

if RepeatMessages <((brak1 + brak2) * 5) then

begin

label10.Caption: = inttostr (strtoint (label10.Caption) +1);

inc (RepeatMessages);

end

else add_new (2);

end;

if pb2.Position = pb2.max then

begin

pb2.Position: = 0; zanyat2: = false; label2.Caption: = 'Чекає';

if where_go (2) then add_new (2)

else

if (ripit) and (LostMessages <trunc (RepeatMessages * brak2) / 100) then

begin

p1.Color: = clred; p2.Color: = clred;

p1.Color: = $ 00400040; p2.Color: = $ 00400040;

ripit: = false;

inc (LostMessages);

end

else

if RepeatMessages <((brak1 + brak2) * 5) then

begin

label10.Caption: = inttostr (strtoint (label10.Caption) +1);

inc (RepeatMessages);

end

else add_new (2);

end;

if pb3.Position = pb3.max then

begin pb3.Position: = 0; zanyat3: = false; label3.Caption: = 'Чекає'; end;

if pb4.Position = pb4.max then

begin pb4.Position: = 0; zanyat4: = false; label4.Caption: = 'Чекає'; end;

if pb1.Position> 0 then

begin pb1.Position: = pb1.Position +7; label1.Caption: = 'Виконує'; end;

if pb2.Position> 0 then

begin pb2.Position: = pb2.Position +7; label2.Caption: = 'Виконує'; end;

if pb3.Position> 0 then

begin pb3.Position: = pb3.Position +7; label3.Caption: = 'Виконує'; end;

if pb4.Position> 0 then

begin pb4.Position: = pb4.Position +7; label4.Caption: = 'Виконує'; end;

run;

label12.Caption: = inttostr (TotalMessages);

label14.Caption: = inttostr (RepeatMessages);

label16.Caption: = inttostr (LostMessages);

end;

label17.Caption: = timetostr (time);

end;

procedure TForm1.N2Click (Sender: TObject);

begin

zapusk: = true;

n2.enabled: = false;

n3.enabled: = true;

end;

procedure TForm1.N3Click (Sender: TObject);

begin

zapusk: = false;

n2.enabled: = true;

n3.enabled: = false;

end;

procedure TForm1.N11Click (Sender: TObject);

begin

n2.Enabled: = true;

TotalMessages: = 0;

LostMessages: = 0;

RepeatMessages: = 0;

label6.Caption: = '0 ';

label8.Caption: = '0 ';

label10.Caption: = '0 ';

indicator1.Position: = 0;

indicator2.Position: = 0;

pb1.Position: = 0; pb2.Position: = 0;

pb3.Position: = 0; pb4.Position: = 0;

have1: = false; have2: = false; ripit: = false;

zanyat1: = false; zanyat2: = false;

zanyat3: = false; zanyat4: = false;

TotalTime: = 0; TotalMessages: = 0;

randomize;

end;

procedure TForm1.N9Click (Sender: TObject);

var c: integer;

begin

c: = application.MessageBox (pchar ('Ви впевнені в тому що хочете завершити роботу ???'), pchar ('Попередження'), 4);

if c = 6 then halt;

end;

procedure TForm1.Q1Click (Sender: TObject);

begin

form2.PageControl1.ActivePage: = form2.PageControl1.Pages [0];

form2.ShowModal;

end;

procedure TForm1.N5Click (Sender: TObject);

begin

form2.PageControl1.ActivePage: = form2.PageControl1.Pages [1];

form2.ShowModal;

end;

procedure TForm1.N7Click (Sender: TObject);

begin

form3.PageControl1.ActivePage: = form3.PageControl1.Pages [0];

form3.showmodal;

end;

procedure TForm1.N10Click (Sender: TObject);

begin

form4.showmodal;

end;

procedure TForm1.N8Click (Sender: TObject);

begin

form3.PageControl1.ActivePage: = form3.PageControl1.Pages [1];

form3.showmodal;

end;

end.

3.2. Модуль 2.

unit Progr2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type

TForm2 = class (TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

Image1: TImage;

Image2: TImage;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

public

end;

var

Form2: TForm2;

implementation

{$ R *. DFM}

procedure TForm2.Button1Click (Sender: TObject);

begin

form2.Close;

end;

end.

3.3. Модуль 3.

unit Progr3;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;

type

TForm3 = class (TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

Memo1: TMemo;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

public

end;

var Form3: TForm3;

implementation

{$ R *. DFM}

procedure TForm3.Button1Click (Sender: TObject);

begin form3.Close;

end;

end.

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ.

1. Курс лекцій з дисципліни "Основи теорії систем і системного аналізу" / Викладач - В. О. Костін /: ХДТУ: вересень - грудень 2004

2. Костін В.О. Методичні вказівкі до виконання курсового проекту з дісціпліні "Основи системного аналізу об'єктів І процесів комп'ютерізації". - Херсон: ХДТУ, 2004. - 26 с.

3. Костін В.О., Ходаков В. Є. Навчальний термінологічний російсько-українсько-англійський словник. - Херсон: ХДТУ, 200 2.

4. Рад В.Я., Яковлев С.А. Моделювання систем. - М.: Вища школа, 1988.

5. Рад В.Я., Яковлев С.А. Моделювання систем: Курсове проектування. - М.: Вища школа, 1988.

6. Рад В.Я., Яковлев С.А. Моделювання систем: Лабораторний практикум. - М.: Вища школа, 1988.

7. Івахненко А. Г., Лапа В.Г. Передбачення випадкових процесів. К.: "Наукова думка", 1971.

8. Маміконов А.Г. Основи побудови АСУ: Підручник для вузів. - М.: Вищ. школа, 1981.

9. Рубенкінг Нейл Дж. Програмування в Delphi для "чайників". 2-е видання - К.: "Діалектика", 1996. - 368с.

Додаток А.

Екранна форма програми.

Додаток Б.

Блок-схема програми.


















Рисунок Б.1.

Додаток В.

Q-схема програми.

Рисунок В.1.

Додаток Г.

А-схема програми.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
198.4кб. | скачати


Схожі роботи:
Моделювання м`ясного цеху
Організація роботи доменного цеху
Організація роботи холодного цеху ресторану першого класу на 75 місць
Розрахунок основних техніко економічних показників роботи дільниці цеху машинобудівного підприємства
Програма імітаційного моделювання роботи банку
Імітаційне моделювання роботи обчислювального центру
Моделювання роботи системи управління запасами
Моделювання роботи двох касирів у банку
Розр т техніко економічних показників роботи цеху з виробництва підсилювача низької частоти з програмою
© Усі права захищені
написати до нас