Створення програми розрахунку параметрів електричних машин за допомогою середовища Delphi

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

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

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

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

Курсовая работа

Створення програми розрахунку параметрів електричних машин за допомогою середовища Delphi

Зміст

Вступ

1. Аналітичний розділ

2. Побудова інформаційно-математичної моделі

2.1 Розрахунок генератора постійного струму

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

3. Алгоритм задачі

4. Визначення структури даних

5. Розробка інтерфейсу програми користувачем

6. Складання коду програми

7. Аналіз програми

8. Тестування програми

9. Інструкція з експлуатації програми

10. Аналіз отриманих результатів

Висновок

Список літератури

Додатки

Вступ

В наш час будь-яка сфера життєдіяльності, що зв'язана з комп'ютерною технікою та іншою високоінтелектуальною технікою стрімко розвивається. Прикладом цього є програмування, якщо в недалекому минулому створенням власних програм для Windows займалися лише професіонали, використовуючи для цього єдиний інструмент, що був орієнтований на роботу в Windows, а саме Borland C++ for Windows, то в наш час завдячуючи появі Delphi, можливість створення програм стала, більш реальною.

Delphi - це середовище розробки програм, що орієнтовані на роботу в операційній системі Windows. Основою роботи в середовищі Delphi є технологія об'єктно-орієнтованого та візуального програмування. Прикладами об'єктів можуть бути елементи керування у вікні: кнопки, списки, текстові поля. Для представлення програм в Delphi служить розроблений Borland мова Object Pascal, в основі якого лежить класичний Turbo Pascal. Слово „Object” особливо підкреслює, що мова підтримує концепцію об'єктно-орієнтованого програмування. Як що в мові Pascal структурними одиницями є дані та команди, то тут такою структурною одиницею є візуальний об'єкт, який називається компонент. Автоматизація програмування досягається завдяки можливості змінювати його властивості, не вносячи вручну змін до програмного коду.

Виконання даного курсового проекту стане фінальним етапом вивчення дисципліни "Програмування та алгоритмічні мови", та дозволить більш повно реалізувати потенціал студента в подальшому навчанні, створювати більш досконалі програмні продукти, та опанувати методи та структури високого рівня програмування з метою отримання найефективнішого використання ресурсів комп'ютера та створення таких додатків, які б полегшували роботу користувача та ефективно використовували його час.

1. Аналітичний розділ

Програма повинна використовуватись студентами на механічному відділенні ХПК. В програмі по введеним початковим даним проводяться розрахунки параметрів асинхронного двигуна та генератора постійного струму, отримані результати імпортуються в текстовий документ типу Microsoft Word для використання студентами, також результати дублюються, записуються в звичайний текстовий документ , для перевірки результатів розрахунків викладачем.

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

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

Програма повинна виконувати:

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

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

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

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

- програма повинна мати зручний інтерфейс та бути легкою в користуванні та перенесенні на інший комп'ютер;

2. Побудова інформаційно-математичної моделі

Була поставлена задача створити програму для розрахунку параметрів двох електричних машин за допомогою середовища Delphi. При розробці програми опиралися на методичні напрацювання механічного відділення по цим темам та на літературу по розрахунку електричних машин.

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

Програма складається з двох частин: "Розрахунок асинхронного двигуна" та "Розрахунок генератора постійного струму"

2.1 Розрахунок генератора постійного струму

Вхідні данні для розрахунку:

Зовнішній діаметр станини - Dя зовн (мм);

Внутрішній діаметр станини - Dя вн (мм);

Діаметр якоря - Da (мм);

Діаметр вала якоря - dвал (мм);

Довжина станини - lя (мм);

Номінальна частота обертання - n (хв-1);

Довжина якоря - la = lя - 140 ( мм);

Кількість вентиляційних каналів;

Ширина каналів - Bk (мм);

Тип каналів;

Ширина паза - Bп (мм);

Ширина зубця - hz (мм)

Тип обмотки якоря - S;

Повітряний зазор - д (мм);

Довжина головних полюсів - LT (мм);

Ширина головного полюса - ВТ (мм);

Коефіцієнт полюсного перекриття аі ;

Кількість полюсів 2р

ЕРС генератора в режимі холостого ходу Еа (В);

Матеріал сердечника якоря ;

Товщина листів (мм);

Матеріал сердечника головних полюсів;

Товщина Впл (мм);

Матеріал станини;

Коефіцієнт kc;

Коефіцієнт щс;

Коефіцієнт НТ;

Коефіцієнт На;

Формули для розрахунку:

Полюсне ділення -

(1)

Довжина якоря без вентиляційних каналів -

(мм) (2)

Розрахункова довжина якоря -

(мм) (3)

Загальний магнітний потік -

(Тл) (4)

Магнітна індукція в повітряному зазорі -

(Тл) (5)

Зубцеве ділення якоря -

(мм) (6)

Ширина коронки зуба -

(мм) (7)

Коефіцієнт повітряного зазору -

(8)

Магнітне напруження повітряного зазору -

(А) (9)

Ширина зубця в його номінальному перерізі -

(мм) (10)

Магнітна індукція в найменшому перерізі зубця -

(Тл) (11)

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

(Тл) (12)

Магнітна індукція в середньому перерізі зубця -

(Тл) (13)

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

(14)

Зубцевий коефіцієнт для мінімального перерізу зубця -

(15)

Зубцевий коефіцієнт для середнього перерізу зубця -

(16)

Розрахункове значення напруженості поля в зубці якоря -

(А/см) (17)

Магнітне напруження зубцевого шару якоря -

(А) (18)

Висота спинки якоря -

(мм) (19)

Площа перерізу спинки якоря -

(мм2) (20)

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

(Тл) (21)

Довжина середньої силової лінії -

(мм) (22)

Магнітна напруженість в спинці якоря -

(А) (23)

Коефіцієнт розсіювання -

(24)

Магнітний потік полюса -

(Вб) (25)

Поперечний переріз сердечника полюса -

(мм2) (26)

Магнітна індукція в сердечнику полюса -

(Тл) (27)

Висота сердечника полюса -

(мм) (29)

Магнітне напруження поля -

(А) (30)

Висота спинки станини -

(мм) (31)

Поперечний переріз спинки станини -

(мм2) (32)

Магнітна індукція в станині -

(Тл) (33)

Магнітне напруження станини -

(мм) (34)

Напруженість поля в станині -

(А) (35)

МРС обмотки якоря на пару полюсів в режимі холостого ходу -

(А) (36)

Коефіцієнт магнітного накопичення -

(37)

Таблиця 1 - Напруженість поля в спинці якоря

В, Тл

Hа, А/см

0

0,01

0,02

0,03

0,04

0,05

0,06

0,07

0,08

0,09

0,4

1,24

1,27

1,30

1,33

1,36

1,38

1,41

1,44

1,47

1,50

0,5

1,54

1,57

1,60

1,64

1,67

1,71

1,74

1,77

1,80

1,84

0,6

1,88

1,91

1,94

1,98

2,01

2,05

2,08

2,12

2,16

2,20

0,7

2,23

2,26

2,29

2,33

2,36

2,40

2,43

2,47

2,50

2,53

0,8

2,56

2,59

2,62

2,65

2,68

2,71

2,74

2,77

2,80

2,83

0,9

2,86

2,90

2,93

2,97

3,01

3,04

3,08

3,12

3,16

3,20

1,0

3,24

3,29

3,33

3,38

3,42

3,46

3,50

3,55

3,60

3,65

1,1

3,70

3,75

3,80

3,85

3,91

3,96

4,01

4,06

4,11

4,17

1,2

4,24

4,30

4,36

4,42

4,48

4,55

4,61

4,67

4,73

4,79

1,3

4,86

4,95

5,04

5,14

5,24

5,33

5,63

5,74

5,80

5,85

1,4

5,90

5,98

6,10

6,22

6,34

6,46

6,58

6,70

6,83

6,96

1,5

7,09

7,22

7,35

7,49

7,63

7,77

7,91

8,05

8,20

8,35

1,6

8,50

8,78

9,06

9,34

6,62

9,90

10,20

10,80

10,80

11,10

1,7

11,50

11,80

12,20

12,50

12,90

13,30

13,60

14,00

14,40

14,80

1,8

15,20

15,70

16,20

16,70

17,20

17,70

18,30

18,90

19,50

20,10

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

Діаметр статора - D1 (мм);

Діаметр ротора - D2 (мм);

Кількість зубів ротора - Z1;

Кількість зубів статора -Z2 ;

Довжина каналів статора - l1 (мм);

Довжина каналів статора - l2 (мм);

3. Алгоритм задачі

Процедура імпорту та збереження результатів розрахунку генератора постійного струму

Рисунок 3 - Алгоритм імпорту та збереження результатів розрахунку генератора постійного струму

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

4. Визначення структури даних

В програмі використані такі структури даних:

Генератор постійного струму - структура даних

Таблиця 2 - Змінні та константи використані в програмі

Назва

Тип даних

Призначення

d_ja_zovn,d_ja_vn,da,dval,lja,n,

la,nk,bk,z,bp,hz,S,pov_zaz,Lt,bt,ai,

p2,Ea,m_s_ja,t_l,m_s_g_p,bpl,

m_s,kc,wc,ht,hja

Real

Початкові вхідні дані введені з завдання

bzmax1,kzmin1,hzmax1,bzmin2, kzmax2,hzmin2,bzser1,kzser1,hzser1

Real

Початкові вхідні дані введені з графіка

coder1,coder2,coder3 … coder35,coder37

Integer

Для перетворення введеної символьної інформації в числовий код

Pol_dil,l,li,f,n_n,bq,ti,bz1,kq,fqbzmin,bzmax,B_Bzmin,bzser,kzmax,kzmin,

kzser,h_z,f_z,ha,sa,ba,h_a,l_a,F_a,q,Ft,st,bm,h_tt,ftt,h_ja,sja,bja,l_ja,fja,fbo,ku

Real

Для поміщення розрахованих параметрів генератора

ed1,ed2,ed3… ed45,ed46

String

Для перетворення числових значень розрахованих параметрів в символьний код

a,p,ind1,ind2

Integer

Індекси автоматично вибірки елементів з таблиць

file1,file2

Textfile

Файли для збереження розрахованих параметрів

aa [1..17,0..9]

Real

Масив елементів напруженості станини

f1,ba1

Real

Перехідні змінні для округлення

n_n_n,a_a_a

Byte

Змінні до якого знаку округлювати

line='____';

Лінія роздільник, для розділення рядків виводу перевірки результатів

Асинхронний двигун - структура даних

Таблиця 3 - Змінні та константи використані в програмі

Назва

Тип даних

Призначення

D1_zovn,D1,D2_vn,D2,z1,z2,l1,l2,hz1,bz1,bzq1,hz2,bz2,d_d,pov_zaz,mat_st,

tov_l,kc1,p2,bq,ai,bp,f_potic,bz_max,kz_min,hz_max,bz_min,kz_max,

hz_min,bz_ser,kz_ser,hz_ser

Real

Початкові вхідні дані введені з завдання

cod1,cod2,cod3… cod31,cod32

Integer

Для перетворення введеної інформації в числовий код

kq,t1,fq,bzmax,bzmin,bzser,hz_1,fz,bzmax2,t2,bzmin2,bzser2,hz_2,fz2,hc1,

bc1,pol_dil,hc_1,bc_1,lc1,fc1,hc2,bc2,hc_2,lc2,fc2,f_rush,ku

Real

Для поміщення розрахованих параметрів двигуна

ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8

Integer

Індекси автоматично вибірки елементів з таблиць

tex1,tex2,tex3… tex24,tex25

String

Для перетворення числових значень розрахованих параметрів в символьний код

f1,ba1,f2,ba2,f3,ba3,f4,ba4

Real

Перехідні змінні для округлення

A1,B2,A2,B3,A3,b4,a4,b5

Byte

Змінні до якого знаку округлювати

5. Розробка інтерфейсу програми користувачем

Початковим етапом в розробці інтерфейсу є створення нової форми. Спочатку потрібно запустити програму для цього ПУСК - Програми - Borland Delphi 7 - Delphi 7.

Після цього створюється пуста форма Form1, за допомогою команди File - New - Form. Одразу перейменовується форму за допомогою властивості Caption, яка знаходиться в вікні Object Inspector на

"E L E K T R A - Генератори та Двигуни". Після цього починається заповнення форми об'єктами з закладки Standard вибираємо дві кнопки Button1 та Button2, та змінюємо властивість Caption на "Асинхронний двигун" для кнопки Button1 та на "Генератор постійного струму" для кнопки Button2, додаємо надпис Label1 та змінюємо властивість Caption на " Виберіть тип генератора чи двигуна". З закладки Addition вибираємо два зображення Image1 та Image1, та властивістю Picture змінюємо зображення цих малюнків, також вставляємо три таймери Timer1, Timer2, Timer3, та встановлюємо властивість Interval на 1000.

Рисунок 4 - Форма з розміщеними об'єктами та зміненими властивостями

Для створення головного меню вставляється об'єкт MainMenu і надаємо йому вигляд, як зображено на Рисунку 5.

Рисунок 5 - Вікно „Form1.MainMenu1” - для створення головного меню

Об'єкт PopupMenu вставляється для створення контекстного меню. І надається йому вигляд відповідно до Рисунку 6.

Рисунок 6 - Вікно „Form1.PopupMenu1” - для створення контекстного меню

Опис наступної частини інтерфейсу стосується як і Генератора постійного струму, так і Асинхронного двигуна, так як їхні інтерфейси ідентичні.

Створюється наступна форма Form3 для Генератора постійного струму

(Form2 для Асинхронного двигуна), для введення початкових даних для розрахунку з такими об'єктами:

- 37 полів введення, від Edit1 до Edit37;

- 38 надписів, від Label1 до Label38;

- GroupBox1;

- GroupBox2;

- 3 кнопки BitBtn1 до BitBtn3;

- MainMenu1;

- Timer1;

Для створення головного меню вставляється об'єкт MainMenu1 і надаємо йому вигляд, як зображено на Рисунку 7.

Рисунок 7 - Вікно „Form3.MainMenu1” - для створення головного меню

Форма Form3 (або Form2) матиме такий вигляд(після зміни властивостей об'єктів) - Рисунок 8.

Рисунок 8 - Форма введення початкових даних для розрахунку з розміщеними об'єктами та зміненими властивостями

Створюється наступна форма Form5 для Генератора постійного струму

(Form7 для Асинхронного двигуна) для перевірки отриманих результатів розрахунків, з такими об'єктами:

- Label1;

- GroupBox1;

- 3 кнопки від BitBtn1 до BitBtn3;

- MainMenu1;

- Timer1;

- Memo1;

Для створення головного меню вставляється об'єкт MainMenu1 і надаємо йому вигляд, як зображено на Рисунку 9.

Рисунок 9 - Вікно „Form5.MainMenu1” - для створення головного меню

Форма Form5 (або Form7) матиме такий вигляд(після зміни властивостей об'єктів) - Рисунок 10.

Рисунок 10 - Форма для перевірки результатів розрахунку з розміщеними об'єктами та зміненими властивостями

Створюється наступна форма Form6 для Генератора постійного струму

(Form9 для Асинхронного двигуна) для вибору типу збереження чи імпорту розрахованих параметрів , з такими об'єктами:

- Label1;

- GroupBox1;

- 3 кнопки від BitBtn1 до BitBtn3;

- MainMenu1;

- Timer1;

- CheckBox1 та CheckBox2;

- Panel1;

Для створення головного меню вставляється об'єкт MainMenu1 і надаємо йому вигляд, як зображено на Рисунку 11.

Рисунок 11 - Вікно „Form6.MainMenu1” - для створення головного меню

Форма Form6 (або Form9) матиме такий вигляд(після зміни властивостей об'єктів) - Рисунок 12.

Рисунок 12 - для вибору типу збереження чи імпорту розрахованих параметрів з розміщеними об'єктами та зміненими властивостями

В програмі також створюється форма про програму (AboutBox), і задається вигляд, змінюючи властивості об'єктів, як зображено на Рисунку 13

Рисунок 13 - Вікно “Про програму”

Розробка інтерфейсу на цьому завершується

6. Складання коду програми

Основні частини тексту модуля Unit1.pas, який відповідає за вибір типу двигуна чи генератора приведені нижче:

- анімація лівої картинки

if image1.Visible=true then image1.Visible:=false

else image1.Visible:=true;

- анімація правої картинки

if image2.Visible=true then image2.Visible:=false

else image2.Visible:=true;

- анімація надпису

if label1.Visible=true then

label1.Visible:=false

else label1.Visible:=true;

{вихід з програми}

close;

- перехід по формах

form2.show;

form1.Visible:=false;

- показ інформації про програму

aboutbox.show;

form1.Visible:=false;

Основні частини тексту модуля Unit2.pas чи Unit3.pas , ідентичні тому опис однієї з них приведений нижче

- функція округлення до заданого знаку

function RoundTo(num:real; r:byte):real;

var

rt:longint;

i:byte;

begin

rt:=1;

for i:=1 to r do rt:=rt*10;

RoundTo:=round(num*rt)/rt;

end;

- вихід з програми

form1.close;

- повернення на попередню форму

form1.Show;

form3.visible:=false;

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

aa[1,0]:=0.52;aa[1,1]:=0.53;aa[1,2]:=0.54;aa[1,3]:=0.55;aa[1,4]:=0.56;

aa[1,5]:=0.58;aa[1,6]:=0.59;aa[1,7]:=0.60;aa[1,8]:=0.61;aa[1,9]:=0.62;

aa[2,0]:=0.64;aa[2,1]:=0.65;aa[2,2]:=0.66;aa[2,3]:=0.67;aa[2,4]:=0.69;

aa[2,5]:=0.70;aa[2,6]:=0.71;aa[2,7]:=0.72;aa[2,8]:=0.74;aa[2,9]:=0.77;

aa[3,0]:=0.80;aa[3,1]:=0.81;aa[3,2]:=0.83;aa[3,3]:=0.85;aa[3,4]:=0.87;

aa[3,5]:=0.89;aa[3,6]:=0.91;aa[3,7]:=0.93;aa[3,8]:=0.95;aa[3,9]:=0.97;

aa[16,5]:=47.2;aa[16,6]:=49.3;aa[16,7]:=51.4;aa[16,8]:=53.5;aa[16,9]:=55.6;

aa[17,0]:=57.7;aa[17,1]:=60.0;aa[17,2]:=63.0;aa[17,3]:=66.0;aa[17,4]:=70.0;

aa[17,5]:=74.0;aa[17,6]:=79.0;aa[17,7]:=84.0;aa[17,8]:=90.0;aa[17,9]:=97.0;

- отримання числових значень введених даних

val(edit1.Text,d_ja_zovn,coder1);

val(edit2.Text,d_ja_vn,coder2);

val(edit3.Text,da,coder3);

val(edit4.Text,dval,coder4);

val(edit5.Text,lja,coder5);

val(edit6.Text,n,coder6);

val(edit37.Text,hzser1,coder37);

- розрахунок параметрів та виведення їх в поле виведення

pol_dil:=pi*da/p2;

str(pol_dil:8:4,ed1);

form5.Memo1.Lines.Add('Полюсне ділення - мм ');

form5.Memo1.Lines.Add(ed1);

form5.Memo1.Lines.Add(line);

l:=la-nk*bk;

str(l:8:4,ed2);

form5.Memo1.Lines.Add('Довжина якоря без вентиляційних каналів - мм');

form5.Memo1.Lines.Add(ed2);

form5.Memo1.Lines.Add(line);

str(bzmin:8:4,ed10);

form5.Memo1.Lines.Add('Ширина зубця в номінальному перерізі - мм ');

form5.Memo1.Lines.Add(ed10);

form5.Memo1.Lines.Add(line);

bzmax:=(bq*ti)/(kc*bzmin);

str(bzmax:8:4,ed11);

form5.Memo1.Lines.Add('Індукція в найменшому пеперізі зубця - Тл ');

form5.Memo1.Lines.Add(ed11);

form5.Memo1.Lines.Add(line);

- якщо bzmax>1.8 Тл, то рахувати додаткові параметри

if bzmax>1.8 then begin

MessageDlg('Велечина Bz max > 1.8 Тл - Беруться дані з графіків та розраховуються додаткові параметри Генератора. ',

mtInformation,[mbOk], 0);

form5.Memo1.Lines.Add(' Результати розрахунку додаткових параметрів ');

form5.Memo1.Lines.Add(line);

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

B_Bzmin:=(bq*ti)/(kc*(ti-bp));

str(B_Bzmin:8:4,ed12);

form5.Memo1.Lines.Add('Магнітна індукція в максимальному перерізі зубця - Тл');

form5.Memo1.Lines.Add(ed12);

form5.Memo1.Lines.Add(line);

bzser:=0.5*(bzmax+b_bzmin);

str(bzser:8:4,ed13);

form5.Memo1.Lines.Add('Магнітна індукція в середньому перерізі зубця - Тл');

form5.Memo1.Lines.Add(ed13);

form5.Memo1.Lines.Add(line);

form5.Memo1.Lines.Add(' Напруженість поля в середньому перерізі зубця');

form5.Memo1.Lines.Add('Bz ser = '+ed23+' Тл ');

form5.Memo1.Lines.Add('kz ser = '+ed24);

form5.Memo1.Lines.Add('Hz ser = '+ed25+' А/см ');

form5.Memo1.Lines.Add(line);

end

- інакше

else MessageDlg('Велечина Bz max < 1.8 Тл - Не розраховуються додаткові параметри Генератора. ',

mtInformation,[mbOk], 0);

form5.Memo1.Lines.Add(' Продовження розрахунку основних параметрів ');

form5.Memo1.Lines.Add(line);

- розрахунок основних параметрів

h_z:=(hzmax1+4*ht+hzmin2)/6;

str(h_z:8:4,ed26);

form5.Memo1.Lines.Add('Значення напруженості поля в зубці якоря - А/см');

form5.Memo1.Lines.Add(ed26);

form5.Memo1.Lines.Add(line);

ba:=F/(2*(sa*0.000001));

str(ba:8:4,ed30);

form5.Memo1.Lines.Add('Магнітна індукція в спинці якоря - Тл');

form5.Memo1.Lines.Add(ed30);

form5.Memo1.Lines.Add(line);

- округлення до заданого знаку

n_n_n:=2; a_a_a:=4;

f1:=roundto(f,a_a_a);

ba1:=roundto(ba,n_n_n);

- отримання індексів елементів масиву

ind1:=trunc(f1/0.01+1);

ind2:=trunc((ba1-0.3)/0.1);

- вибірка елементів з масиву

H_a:=aa[ind2,ind1];

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

form5.Memo1.Lines.Add('Напруженість поля в спинці якоря - А/см');

form5.Memo1.Lines.Add(ed31);

form5.Memo1.Lines.Add(line);

l_a:=((pi)*(da-(2*hz)-ha))/p2;

str(l_a:8:4,ed32);

form5.Memo1.Lines.Add('Довжина середньої силової лінії в спинці якоря - мм');

form5.Memo1.Lines.Add(ed32);

form5.Memo1.Lines.Add(line);

ku:=fbo/(2*fq);

str(ku:8:4,ed46);

form5.Memo1.Lines.Add('Коефіцієнт магнітного накопичення ');

form5.Memo1.Lines.Add(ed46);

form5.Memo1.Lines.Add(line);

form5.Memo1.Lines.Add(' Розрахунок закінчено ');

end;

Основні частини тексту модуля Unit5.pas чи Unit7.pas , ідентичні тому опис однієї з них приведений нижче:

- очистка поля виведення

begin

memo1.Clear;

- закриття форми

begin

form1.close;

- перехід на попередню форму

begin

form3.show;

form5.Visible:=false;

Основні частини тексту модуля Unit6.pas чи Unit9.pas , ідентичні тому опис однієї з них приведений нижче:

- збереження даних

if checkbox1.Checked=true then begin {якщо встановлений, то запис до файлу}

assignfile(file1,'Import files\TXT\Generation.txt');

rewrite(file1);

writeln(File1,'Результати розрахунків основних параметрів генератора постійного струму ');

writeln(file1,' ');

writeln(file1,'Полюсне ділення - мм');

writeln(file1,ed1);

writeln(file1,' ');

writeln(file1,'Довжина якоря без вентиляційних каналів - мм');

writeln(file1,ed2);

writeln(file1,' ');

writeln(file1,'МРС обмотки якоря збудження на пару полюсів в режимі холостого ходу - А');

writeln(file1,ed45);

writeln(file1,' ');

writeln(file1,'Коефіціент магнітного накопичення ');

writeln(file1,ed46);

writeln(file1,' ');

writeln(file1,' Розрахунки завершено успішно ');

closefile(file1);

end;

- якщо встановлений, то імпорт в документ Word

if checkbox2.Checked=true then {якщо встановлений, то імпорт в документ Word}

- перевірка чи можна запустити Word

begin

try

Word := CreateOleObject('Word.Application');

except

ShowMessage('Cannot start Word !');

Exit;

end;

- параметри тексту верхнього колонтитула

Word.Selection.Font.Name := 'Palatino linotype';

Word.Selection.Font.Size := 14;

Word.Selection.Font.Bold := True;

Word.Selection.Font.color := 0111;

Word.Selection.ParagraphFormat.Alignment := 1;

- записати текст в колонтитул

Word.Selection.TypeText(

'Розрахунок параметрів генератора постійного струму ');

- параметри тексту імпортованих параметрів

Word.ActiveWindow.ActivePane.View.SeekView := 0;

Word.Selection.Font.Name := 'palatino linotype';

Word.Selection.Font.Size := 12;

Word.Selection.Font.Bold := false;

- імпортовані параметри

Word.Selection.TypeText('Полюсне ділення мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed1);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Довжина якоря без вентиляційних каналів - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed2);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Розрахункова довжина якоря - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed3);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Загальний потік - Вб');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed4);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітне напруження станини - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed43);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітна індукція в станині - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed44);

Word.Selection.TypeParagraph;

word.Selection.TypeText('МРС обмотки якоря збудження на пару полюсів в режимі холостого ходу - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed45);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Коефіцієнт магнітного накопичення ');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed46);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

word.Selection.TypeText('Розрахунок завершено успішно. ');

Основні частини тексту модуля Unit4.pas (про програму ) приведено нижче:

- перехід на основну форму

close;

form1.visible:=true;

- показувати час

label5.Caption:=timetostr(time);

7. Аналіз програми

Кожна подія обробляється окремою процедурою і спричиняє різні дії.

При натисненні на кнопку "Асинхронний двигун" відбувається перехід на форму введення початкових вхідних даних, ця подія опрацьовується процедурою Button1Click, цю ж саму дію можна конати з пункта "Розрахувати - Асинхронний двигун" головного меню, ця подія опрацьовується процедурою N8Click. При натисненні на кнопку "Генератор постійного струму" відбувається перехід на форму введення початкових вхідних даних, ця подія опрацьовується процедурою Button2Click, цю ж саму дію можна конати з пункта "Розрахувати - Генератор постійного струму" головного меню, ця подія опрацьовується процедурою N7Click.

При запуску програми виконується анімація надпису "Виберіть тип генератора чи двигуна" та анімація зображення, ці події опрацьовуються такими процедурами, Timer1Timer, Timer2Timer, Timer3Timer.

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

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

При натисненні кнопки "Назад" виконується повернення на попередню форму, ця подія опрацьовується процедурою BitBtn1Click.

При натисненні кнопки "Далі" виконується перехід на наступну форму, ця подія опрацьовується процедурою BitBtn2Click.

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

В інформаційній формі "Про Програму " передбачена додаткова функція показу поточного часу, яка опрацьовується процедурою

AboutBox. Timer1Timer.

8. Тестування програми

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

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

Перевіряємо правильність роботи навігації з допомогою кнопок чи з допомогою головного меню.

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

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

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

Виконуємо перевірку форми Про програму, запускаємо з головного меню, переглядаємо інформацію та перевіряємо роботу кнопки повернення ОК та роботу функції показу часу.

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

Перевіривши всі можливі дії було виявлено, що помилок в роботі програми немає.

Програма була протестована на різних моделях персональних комп'ютерів та з різними встановленими операційними системами, включаючи такі Windows 95/98/XP/Me/2000.

9. Інструкція з експлуатації програми

1. Завантажити програму запустивши E L E K T R A.exe;

2. Вибрати тип генератора чи двигуна, натиснувши на одній з кнопок чи вибрати пункт головного меню;

3. Ввести початкові данні для розрахунку, для зручного переходу по полям введення використовується клавіша Tab;

4. Натискаємо Далі та виконуємо перевірку розрахованих параметрів.

5. Виконавши перевірку натискаємо Далі та переходимо до вибору типу імпорту чи збереження.

6. Встановлюємо прапорці коли необхідних дій та натискаємо Готово;

7. Переглядаємо результати розрахунків в Word або в текстовому файлі;

8. В головному меню головної форми вибираємо пункт меню "вихід" та виходимо з програми;

9. Для даної програми рекомендовані такі системні вимоги:

Windows 95/98/XP/Me/2000; процесор з частотою 100 МГц; оперативна пам'ять 32 Мб; CD-ROM; клавіатура; миша; звукова карта.

10. Аналіз отриманих результатів

Рисунок 14 - Головна форма програми з вибором розрахунку генератора постійного струму кнопкою.

На Рисунку 14 показана головна форма програми, де вибираємо тип Генератор постійного струму кнопкою, або Рисунок 15, пунктом головного меню.

Рисунок 15 - Вибір генератора пунктом головного меню.

Рисунок 16 - Форма вводу початкових даних з введеними даними.

Рисунок 17 - Форма перевірки розрахованих параметрів з розрахованими параметрами

Рисунок 18 - Форма вибору типу імпорту чи збереження результатів розрахунку

Рисунок 19 - Імпортовані результати розрахунків в Word

Рисунок 20 - Збережені результати розрахунків в текстовому файлі.

Висновок

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

В процесі виконання завдання було виконано:

ь Була створена аналітична модель програми, процес аналізу завдання розглядається в аналітичному розділі;

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

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

ь Була визначена структура даних, з'ясовані ті змінні, які необхідні для виконання поставленої задачі;

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

ь Був складений код програми, відповідно до якого програма повинна виконувати всі поставлені перед нею завдання;

ь Був проведений аналіз програми, з'ясовані основні події роботи програми та процедури які їх опрацьовують;

ь Було проведено тестування програми на наявність помилок та недоліків роботи, при тестуванні помилок та недоліків не виявлено"

ь Була складена інструкція до використання програми та встановленні системні вимоги до персонального комп'ютера.

Список літератури

1. Н. Культин. Самоучитель. Программирование в Turbo Pascal 7.0 и Delphi. - СПб.: БХВ-Петербург, 2002.

2. Глинський Я.М. Паскаль. Turbo Pascal&Delphi. - 3-є вид. - Львів: „Деол”, 2002.

3. Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. -Харків, 1995.

4. За редакцією О.І. Пушкаря. Інформатика. Комп`ютерна техніка. Комп'ютерні технології. Київ. Видавничий центр „Академія”. 2003.

5. Фараонов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. Издание 7-е, переработанное. - М.: „Нолидж”. 2000.

6. А.Б. Ставровский. Турбо Паскаль 7.0. Учебник. - К.: Издательская группа BHV, 2002.

Додаток А

Вихідний текст програми:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {AboutBox},

Unit5 in 'Unit5.pas' {Form5},

Unit6 in 'Unit6.pas' {Form6},

Unit7 in 'Unit7.pas' {Form7},

Unit9 in 'Unit9.pas' {Form9};

{$R *.res}

begin

Application.Initialize;

Application.Title := 'E L E K T R A - Генератори та Двигуни';

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TAboutBox, AboutBox);

Application.CreateForm(TForm5, Form5);

Application.CreateForm(TForm6, Form6);

Application.CreateForm(TForm7, Form7);

Application.CreateForm(TForm9, Form9);

Application.Run;

end.

Текст модуля Unit1.pas

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, jpeg, ExtCtrls, Menus;

type

TForm1 = class(TForm)

Timer1: TTimer;

Image1: TImage;

Image2: TImage;

Button1: TButton;

Button2: TButton;

Timer2: TTimer;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

Timer3: TTimer;

Label1: TLabel;

N5: TMenuItem;

N6: TMenuItem;

PopupMenu1: TPopupMenu;

N9: TMenuItem;

N10: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N11: TMenuItem;

procedure Timer1Timer(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Timer3Timer(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N10Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4;

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if image1.Visible=true then image1.Visible:=false

else image1.Visible:=true;

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

if image2.Visible=true then image2.Visible:=false

else image2.Visible:=true;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

image1.Visible:=false;

image2.Visible:=true;

end;

procedure TForm1.Timer3Timer(Sender: TObject);

begin

if label1.Visible=true then

label1.Visible:=false

else label1.Visible:=true;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

form2.show;

form1.Visible:=false;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

form2.Show;

form1.Visible:=false;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

form3.show;

form1.Visible:=false;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

form3.Show;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

aboutbox.show;

form1.Visible:=false;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

form2.show;

form1.Visible:=false;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

form3.show;

form1.Visible:=false;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

form1.Close;

end;

end.

Текст модуля Unit2.pas

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, ExtCtrls, Buttons;

type

TForm2 = class(TForm)

MainMenu1: TMainMenu;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

Label1: TLabel;

Timer1: TTimer;

GroupBox1: TGroupBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Edit13: TEdit;

Edit14: TEdit;

Edit15: TEdit;

Edit16: TEdit;

Edit17: TEdit;

Edit18: TEdit;

Edit19: TEdit;

Edit20: TEdit;

Edit21: TEdit;

Edit22: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Edit23: TEdit;

Label23: TLabel;

Label24: TLabel;

GroupBox2: TGroupBox;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label36: TLabel;

Label37: TLabel;

Label38: TLabel;

Edit29: TEdit;

Edit30: TEdit;

Edit31: TEdit;

Edit32: TEdit;

Edit33: TEdit;

Edit34: TEdit;

Edit35: TEdit;

Edit36: TEdit;

Edit37: TEdit;

procedure N2Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Digitkey(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

{-------------------------------------------------}

D1_zovn,D1,D2_vn,D2,z1,z2,l1,l2,hz1,bz1:real;

bzq1,hz2,bz2,d_d,pov_zaz,mat_st,tov_l,kc1:real;

p2,bq,ai,bp,f_potic:real;

{-------------------------------------------------}

bz_max,kz_min,hz_max,bz_min,kz_max,hz_min,bz_ser,kz_ser,hz_ser:real;

{-------------------------------------------------}

cod1,cod2,cod3,cod4,cod5,cod6,cod7,cod8,cod9,cod10:integer;

cod11,cod12,cod13,cod14,cod15,cod16,cod17,cod18,cod19,cod20:integer;

cod21,cod22,cod23,cod24,cod25,cod26,cod27,cod28,cod29,cod30:integer;

cod31,cod32:integer;

{-------------------------------------------------}

kq,t1,fq,bzmax,bzmin,bzser,hz_1,fz,bzmax2,t2,bzmin2:real;

bzser2,hz_2,fz2,hc1,bc1,pol_dil,hc_1,bc_1:real;

lc1,fc1,hc2,bc2,hc_2,lc2,fc2,f_rush,ku:real;

{-------------------------------------------------}

ind1,ind2,ind3,ind4,ind5,ind6,ind7,ind8:integer;

{-------------------------------------------------}

tex1,tex2,tex3,tex4,tex5,tex6,tex7,tex8,tex9,tex10:string;

tex11,tex12,tex13,tex14,tex15,tex16,tex17,tex18,tex19,tex20:string;

tex21,tex22,tex23,tex24,tex25:string;

{-------------------------------------------------}

aa:array[1..17,0..9] of real;

f1,ba1,f2,ba2,f3,ba3,f4,ba4:real;

A1,B2,A2,B3,A3,b4,a4,b5:byte;

{-------------------------------------------------}

const line='___________________________________________________';

implementation

uses Unit1, Unit4, Unit7;

{$R *.dfm}

function RoundTo(num:real; r:byte):real;

var

rt:longint;

i:byte;

begin

rt:=1;

for i:=1 to r do rt:=rt*10;

RoundTo:=round(num*rt)/rt;

end;

procedure TForm2.N2Click(Sender: TObject);

begin

form1.close;

end;

procedure TForm2.N6Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm2.Timer1Timer(Sender: TObject);

begin

if label1.Visible=true then

label1.Visible:=false

else label1.Visible:=true;

end;

procedure TForm2.BitBtn3Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

form1.Show;

form2.Visible:=false;

end;

procedure TForm2.N3Click(Sender: TObject);

begin

form1.Show;

form2.Visible:=false;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

aa[1,0]:=0.52;aa[1,1]:=0.53;aa[1,2]:=0.54;aa[1,3]:=0.55;aa[1,4]:=0.56;

aa[1,5]:=0.58;aa[1,6]:=0.59;aa[1,7]:=0.60;aa[1,8]:=0.61;aa[1,9]:=0.62;

aa[2,0]:=0.64;aa[2,1]:=0.65;aa[2,2]:=0.66;aa[2,3]:=0.67;aa[2,4]:=0.69;

aa[2,5]:=0.70;aa[2,6]:=0.71;aa[2,7]:=0.72;aa[2,8]:=0.74;aa[2,9]:=0.77;

aa[3,0]:=0.80;aa[3,1]:=0.81;aa[3,2]:=0.83;aa[3,3]:=0.85;aa[3,4]:=0.87;

aa[3,5]:=0.89;aa[3,6]:=0.91;aa[3,7]:=0.93;aa[3,8]:=0.95;aa[3,9]:=0.97;

aa[4,0]:=1.00;aa[4,1]:=1.02;aa[4,2]:=1.04;aa[4,3]:=1.06;aa[4,4]:=1.08;

aa[4,5]:=1.11;aa[4,6]:=1.13;aa[4,7]:=1.15;aa[4,8]:=1.18;aa[4,9]:=1.21;

aa[5,0]:=1.24;aa[5,1]:=1.26;aa[5,2]:=1.29;aa[5,3]:=1.32;aa[5,4]:=1.35;

aa[5,5]:=1.38;aa[5,6]:=1.40;aa[5,7]:=1.43;aa[5,8]:=1.46;aa[5,9]:=1.49;

aa[6,0]:=1.52;aa[6,1]:=1.55;aa[6,2]:=1.58;aa[6,3]:=1.61;aa[6,4]:=1.64;

aa[6,5]:=1.68;aa[6,6]:=1.71;aa[6,7]:=1.74;aa[6,8]:=1.77;aa[6,9]:=1.81;

aa[7,0]:=1.85;aa[7,1]:=1.88;aa[7,2]:=1.91;aa[7,3]:=1.95;aa[7,4]:=1.99;

aa[7,5]:=2.03;aa[7,6]:=2.06;aa[7,7]:=2.09;aa[7,8]:=2.13;aa[7,9]:=2.17;

aa[8,0]:=2.21;aa[8,1]:=2.25;aa[8,2]:=2.29;aa[8,3]:=2.33;aa[8,4]:=2.37;

aa[8,5]:=2.41;aa[8,6]:=2.45;aa[8,7]:=2.49;aa[8,8]:=2.53;aa[8,9]:=2.57;

aa[9,0]:=2.62;aa[9,1]:=2.67;aa[9,2]:=2.72;aa[9,3]:=2.77;aa[9,4]:=2.83;

aa[9,5]:=2.89;aa[9,6]:=2.95;aa[9,7]:=2.99;aa[9,8]:=3.06;aa[9,9]:=3.13;

aa[10,0]:=3.20;aa[10,1]:=3.27;aa[10,2]:=3.34;aa[10,3]:=3.41;aa[10,4]:=3.49;

aa[10,5]:=3.57;aa[10,6]:=3.65;aa[10,7]:=3.73;aa[10,8]:=3.82;aa[10,9]:=3.91;

aa[11,0]:=4.00;aa[11,1]:=4.10;aa[11,2]:=4.20;aa[11,3]:=4.30;aa[11,4]:=4.40;

aa[11,5]:=4.50;aa[11,6]:=4.63;aa[11,7]:=4.78;aa[11,8]:=4.92;aa[11,9]:=5.06;

aa[12,0]:=5.20;aa[12,1]:=5.42;aa[12,2]:=5.64;aa[12,3]:=5.86;aa[12,4]:=6.08;

aa[12,5]:=6.30;aa[12,6]:=6.54;aa[12,7]:=6.78;aa[12,8]:=7.02;aa[12,9]:=7.26;

aa[13,0]:=7.50;aa[13,1]:=7.88;aa[13,2]:=8.26;aa[13,3]:=8.64;aa[13,4]:=9.02;

aa[13,5]:=9.40;aa[13,6]:=9.82;aa[13,7]:=10.2;aa[13,8]:=10.7;aa[13,9]:=11.1;

aa[14,0]:=11.5;aa[14,1]:=12.2;aa[14,2]:=12.9;aa[14,3]:=13.6;aa[14,4]:=14.3;

aa[14,5]:=15.0;aa[14,6]:=16.0;aa[14,7]:=17.0;aa[14,8]:=18.0;aa[14,9]:=19.0;

aa[15,0]:=20.0;aa[15,1]:=21.6;aa[15,2]:=23.2;aa[15,3]:=24.9;aa[15,4]:=26.5;

aa[15,5]:=28.1;aa[15,6]:=29.6;aa[15,7]:=31.1;aa[15,8]:=32.7;aa[15,9]:=34.2;

aa[16,0]:=35.7;aa[16,1]:=38.0;aa[16,2]:=40.3;aa[16,3]:=42.6;aa[16,4]:=44.9;

aa[16,5]:=47.2;aa[16,6]:=49.3;aa[16,7]:=51.4;aa[16,8]:=53.5;aa[16,9]:=55.6;

aa[17,0]:=57.7;aa[17,1]:=60.0;aa[17,2]:=63.0;aa[17,3]:=66.0;aa[17,4]:=70.0;

aa[17,5]:=74.0;aa[17,6]:=79.0;aa[17,7]:=84.0;aa[17,8]:=90.0;aa[17,9]:=97.0;

val(edit1.Text,d1_zovn,cod1);

val(edit2.Text,d1,cod2);

val(edit3.Text,d2_vn,cod3);

val(edit4.Text,d2,cod4);

val(edit5.Text,pov_zaz,cod5);

val(edit6.Text,z1,cod6);

val(edit7.Text,z2,cod7);

val(edit8.Text,l1,cod8);

val(edit9.Text,l2,cod9);

val(edit10.Text,mat_st,cod10);

val(edit11.Text,tov_l,cod11);

val(edit12.Text,hz1,cod12);

val(edit13.Text,bz1,cod13);

val(edit14.Text,bzq1,cod14);

val(edit15.Text,hz2,cod15);

val(edit16.Text,bz2,cod16);

val(edit17.Text,d_d,cod17);

val(edit18.Text,f_potic,cod18);

val(edit19.Text,kc1,cod19);

val(edit20.Text,p2,cod20);

val(edit21.Text,bq,cod21);

val(edit22.Text,ai,cod22);

val(edit23.Text,bp,cod23);

val(edit29.Text,bz_max,cod24);

val(edit30.Text,kz_min,cod25);

val(edit31.Text,hz_max,cod26);

val(edit32.Text,bz_min,cod27);

val(edit33.Text,kz_max,cod28);

val(edit34.Text,hz_min,cod29);

val(edit35.Text,bz_ser,cod30);

val(edit36.Text,kz_ser,cod31);

val(edit37.Text,Hz_ser,cod24);

Form7.show;

form2.Visible:=false;

form7.Memo1.Clear;

t1:=(pi*d1)/z1;

kq:=((10*pov_zaz)+t1)/((10*pov_zaz)+bzq1);

str(kq:8:4,tex1);

form7.Memo1.Lines.Add('Коефіцієнт повітряного зазору');

form7.Memo1.Lines.Add(tex1);

form7.Memo1.Lines.Add(line);

fq:=(0.8*1000)*bq*pov_zaz*kq;

str(fq:8:4,tex2);

form7.Memo1.Lines.Add('Магнітне напруження повітряного зазору - А');

form7.Memo1.Lines.Add(tex2);

form7.Memo1.Lines.Add(line);

Bzmax:=(bq*t1)/(kc1*bz1);

str(bzmax:8:4,tex3);

form7.Memo1.Lines.Add(' Максимальна магнітна індукція в зубці статора - Тл');

form7.Memo1.Lines.Add(tex3);

form7.Memo1.Lines.Add(line);

if bzmax>1.8 then

begin

form7.Memo1.Lines.Add('Велечина Bz1 > 1.8 Тл - Ведемо розрахунки мінімального та');

form7.Memo1.Lines.Add('середнього значення магнітної індукції в зубці статора');

form7.Memo1.Lines.Add(line);

bzmin:=abs((bq*t1)/(kc1*(t1-bp)));

str(bzmin:8:4,tex4);

form7.Memo1.Lines.Add(' Мінімальна магнітна індукція в зубці статора - Тл');

form7.Memo1.Lines.Add(tex4);

form7.Memo1.Lines.Add(line);

bzser:=0.5*(bzmax+bzmin);

str(bzser:8:4,tex5);

form7.Memo1.Lines.Add(' Середня магнітна індукція в зубці статора - Тл');

form7.Memo1.Lines.Add(tex5);

form7.Memo1.Lines.Add(line);

hz_1:=(hz_max+(4*Hz_ser)+Hz_min)/6;

str(hz_1:8:4,tex6);

form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');

form7.Memo1.Lines.Add(tex6);

form7.Memo1.Lines.Add(line);

end

else begin

form7.Memo1.Lines.Add('Велечина Bz1 < 1.8 Тл - Напруженість поля в зубці');

form7.Memo1.Lines.Add('статора Hz1 визначаємо по таблиці');

form7.Memo1.Lines.Add(line);

end;

b2:=2; a1:=4;

f1:=roundto(f_potic,a1);

ba1:=roundto(bzmax,b2);

ind1:=trunc(f1/0.01+1);

ind2:=trunc((ba1-0.3)/0.1);

Hz_1:=aa[ind2,ind1];

str(hz_1:8:4,tex6);

form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');

form7.Memo1.Lines.Add(tex6);

form7.Memo1.Lines.Add(line);

form7.Memo1.Lines.Add(' Продовження розранунків');

form7.Memo1.Lines.Add(line);

fz:=0.1*hz_1*hz1;

str(fz:8:4,tex7);

form7.Memo1.Lines.Add(' Магнітне напруження зубцевого шару статора - А');

form7.Memo1.Lines.Add(tex7);

form7.Memo1.Lines.Add(line);

t2:=(pi*d2)/z2;

bzmax2:=(bq*t2)/(kc1*bz2);

str(bzmax2:8:4,tex8);

form7.Memo1.Lines.Add('Максимальна магнітна індукція в зубці ротора - Тл');

form7.Memo1.Lines.Add(tex8);

form7.Memo1.Lines.Add(line);

if bzmax2>1.8 then begin

form7.Memo1.Lines.Add('Велечина Bz2 > 1.8 Тл - Ведемо розрахунки мінімального та');

form7.Memo1.Lines.Add('середнього значення магнітної індукції в зубці ротора');

form7.Memo1.Lines.Add(line);

bzmin2:=(bq*t2)/(kc1*(t2-bp));

str(bzmin2:8:4,tex9);

form7.Memo1.Lines.Add(' Мінімальна магнітна індукція в зубці ротора - Тл');

form7.Memo1.Lines.Add(tex9);

form7.Memo1.Lines.Add(line);

bzser2:=0.5*(bzmax2+bzmin2);

str(bzser2:8:4,tex10);

form7.Memo1.Lines.Add(' Середня магнітна індукція в зубці ротора - Тл');

form7.Memo1.Lines.Add(tex10);

form7.Memo1.Lines.Add(line);

hz_2:=(hz_max+(4*hz_ser)+hz_min)/6;

str(hz_2:8:4,tex11);

form7.Memo1.Lines.Add(' Значення напруженості поля в зубці ротора - А/см');

form7.Memo1.Lines.Add(tex11);

form7.Memo1.Lines.Add(line);

end

else begin

form7.Memo1.Lines.Add('Велечина Bz2 < 1.8 Тл - Напруженість поля в зубці');

form7.Memo1.Lines.Add('ротора Hz2 визначаємо по таблиці');

form7.Memo1.Lines.Add(line);

end;

b3:=2; a2:=4;

f2:=roundto(f_potic,a2);

ba2:=roundto(bzmax2,b3);

ind3:=trunc(f2/0.01+1);

ind4:=trunc((ba2-0.3)/0.1);

Hz_2:=aa[ind4,ind3];

str(hz_2:8:4,tex12);

form7.Memo1.Lines.Add(' Значення напруженості поля в зубці ротора - А/см');

form7.Memo1.Lines.Add(tex12);

form7.Memo1.Lines.Add(line);

fz2:=0.1*(hz_2*(hz2-(0.4*d2)));

str(fz2:8:4,tex13);

form7.Memo1.Lines.Add(' Магнітне напруження зубцевого шару ротора - А');

form7.Memo1.Lines.Add(tex13);

form7.Memo1.Lines.Add(line);

hc1:=(d1_zovn-d1-(2*hz1))/2;

str(hc1:8:4,tex14);

form7.Memo1.Lines.Add(' Висота спинки статора - мм');

form7.Memo1.Lines.Add(tex14);

form7.Memo1.Lines.Add(line);

pol_dil:=(pi*d1)/p2;

bc1:=(0.5*ai*pol_dil*bq)/(kc1*hc1);

str(bc1:8:4,tex15);

form7.Memo1.Lines.Add(' Магнітна індукція в спинці статора - Тл');

form7.Memo1.Lines.Add(tex15);

form7.Memo1.Lines.Add(line);

if bc1<1.4 then begin

b4:=2; a3:=4;

f3:=roundto(f_potic,a3);

ba3:=roundto(bc1,b4);

ind5:=trunc(f3/0.01+1);

ind6:=trunc((ba3-0.3)/0.1);

Hc_1:=aa[ind6,ind5];

str(hc_1:8:4,tex16);

form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');

form7.Memo1.Lines.Add(tex16);

form7.Memo1.Lines.Add(line);

end

else begin

bc_1:=bc1*0.4;

b4:=2; a3:=4;

f3:=roundto(f_potic,a3);

ba3:=roundto(bc_1,b4);

ind5:=trunc(f3/0.01+1);

ind6:=trunc((ba3-0.3)/0.1);

Hc_1:=aa[ind6,ind5];

str(hc_1:8:4,tex16);

form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');

form7.Memo1.Lines.Add(tex16);

form7.Memo1.Lines.Add(line);

end;

lc1:=(pi/p2)*(d1_zovn-hc1);

str(lc1:8:4,tex17);

form7.Memo1.Lines.Add(' Довжина силової лінії в спинці статора - мм');

form7.Memo1.Lines.Add(tex17);

form7.Memo1.Lines.Add(line);

fc1:=0.1*hc_1*lc1;

str(fc1:8:4,tex18);

form7.Memo1.Lines.Add(' Магнітне напруження спинки статора - А');

form7.Memo1.Lines.Add(tex18);

form7.Memo1.Lines.Add(line);

hc2:=abs((d2-d2_vn-(2*hz2))/2);

str(hc2:8:4,tex19);

form7.Memo1.Lines.Add(' Висота спинки ротора - мм');

form7.Memo1.Lines.Add(tex19);

form7.Memo1.Lines.Add(line);

bc2:=(0.5*ai*pol_dil*bq)/(kc1*hc2);

str(bc2:8:4,tex20);

form7.Memo1.Lines.Add(' Магнітна індукція в спинці ротора - Тл');

form7.Memo1.Lines.Add(tex20);

form7.Memo1.Lines.Add(line);

b5:=2; a4:=4;

f4:=roundto(f_potic,a4);

ba4:=roundto(bc2,b5);

ind7:=trunc(f4/0.01+1);

ind8:=trunc((ba4-0.3)/0.1);

Hc_2:=aa[ind8,ind7];

str(hc_2:8:4,tex21);

form7.Memo1.Lines.Add(' Значення напруженості поля в спинці ротора - А/см');

form7.Memo1.Lines.Add(tex21);

form7.Memo1.Lines.Add(line);

lc2:=(pi/p2)*(d2_vn-hz2-hc2);

str(lc2:8:4,tex22);

form7.Memo1.Lines.Add(' Довжина силової лінії в спинці ротора ротора - мм');

form7.Memo1.Lines.Add(tex22);

form7.Memo1.Lines.Add(line);

fc2:=0.1*hc_2*lc2;

str(fc2:8:4,tex23);

form7.Memo1.Lines.Add(' Магнітне напруження спинки ротора - А');

form7.Memo1.Lines.Add(tex23);

form7.Memo1.Lines.Add(line);

f_rush:=(2*fq)+(2*fz)+(2*fz2)+fc1+fc2;

str(f_rush:8:4,tex24);

form7.Memo1.Lines.Add(' Магнітно-рушійна сила на пару полюсів - А');

form7.Memo1.Lines.Add(tex24);

form7.Memo1.Lines.Add(line);

ku:=f_rush/(2*fq);

str(ku:8:4,tex25);

form7.Memo1.Lines.Add(' Коефіцієнт магнітного накопичення');

form7.Memo1.Lines.Add(tex25);

form7.Memo1.Lines.Add(line);

form7.Memo1.Lines.Add(' Розрахунок закінчено');

end;

procedure TForm2.N4Click(Sender: TObject);

begin

aa[1,0]:=0.52;aa[1,1]:=0.53;aa[1,2]:=0.54;aa[1,3]:=0.55;aa[1,4]:=0.56;

aa[1,5]:=0.58;aa[1,6]:=0.59;aa[1,7]:=0.60;aa[1,8]:=0.61;aa[1,9]:=0.62;

aa[2,0]:=0.64;aa[2,1]:=0.65;aa[2,2]:=0.66;aa[2,3]:=0.67;aa[2,4]:=0.69;

aa[2,5]:=0.70;aa[2,6]:=0.71;aa[2,7]:=0.72;aa[2,8]:=0.74;aa[2,9]:=0.77;

aa[3,0]:=0.80;aa[3,1]:=0.81;aa[3,2]:=0.83;aa[3,3]:=0.85;aa[3,4]:=0.87;

aa[3,5]:=0.89;aa[3,6]:=0.91;aa[3,7]:=0.93;aa[3,8]:=0.95;aa[3,9]:=0.97;

aa[4,0]:=1.00;aa[4,1]:=1.02;aa[4,2]:=1.04;aa[4,3]:=1.06;aa[4,4]:=1.08;

aa[4,5]:=1.11;aa[4,6]:=1.13;aa[4,7]:=1.15;aa[4,8]:=1.18;aa[4,9]:=1.21;

aa[5,0]:=1.24;aa[5,1]:=1.26;aa[5,2]:=1.29;aa[5,3]:=1.32;aa[5,4]:=1.35;

aa[5,5]:=1.38;aa[5,6]:=1.40;aa[5,7]:=1.43;aa[5,8]:=1.46;aa[5,9]:=1.49;

aa[6,0]:=1.52;aa[6,1]:=1.55;aa[6,2]:=1.58;aa[6,3]:=1.61;aa[6,4]:=1.64;

aa[6,5]:=1.68;aa[6,6]:=1.71;aa[6,7]:=1.74;aa[6,8]:=1.77;aa[6,9]:=1.81;

aa[7,0]:=1.85;aa[7,1]:=1.88;aa[7,2]:=1.91;aa[7,3]:=1.95;aa[7,4]:=1.99;

aa[7,5]:=2.03;aa[7,6]:=2.06;aa[7,7]:=2.09;aa[7,8]:=2.13;aa[7,9]:=2.17;

aa[8,0]:=2.21;aa[8,1]:=2.25;aa[8,2]:=2.29;aa[8,3]:=2.33;aa[8,4]:=2.37;

aa[8,5]:=2.41;aa[8,6]:=2.45;aa[8,7]:=2.49;aa[8,8]:=2.53;aa[8,9]:=2.57;

aa[9,0]:=2.62;aa[9,1]:=2.67;aa[9,2]:=2.72;aa[9,3]:=2.77;aa[9,4]:=2.83;

aa[9,5]:=2.89;aa[9,6]:=2.95;aa[9,7]:=2.99;aa[9,8]:=3.06;aa[9,9]:=3.13;

aa[10,0]:=3.20;aa[10,1]:=3.27;aa[10,2]:=3.34;aa[10,3]:=3.41;aa[10,4]:=3.49;

aa[10,5]:=3.57;aa[10,6]:=3.65;aa[10,7]:=3.73;aa[10,8]:=3.82;aa[10,9]:=3.91;

aa[11,0]:=4.00;aa[11,1]:=4.10;aa[11,2]:=4.20;aa[11,3]:=4.30;aa[11,4]:=4.40;

aa[11,5]:=4.50;aa[11,6]:=4.63;aa[11,7]:=4.78;aa[11,8]:=4.92;aa[11,9]:=5.06;

aa[12,0]:=5.20;aa[12,1]:=5.42;aa[12,2]:=5.64;aa[12,3]:=5.86;aa[12,4]:=6.08;

aa[12,5]:=6.30;aa[12,6]:=6.54;aa[12,7]:=6.78;aa[12,8]:=7.02;aa[12,9]:=7.26;

aa[13,0]:=7.50;aa[13,1]:=7.88;aa[13,2]:=8.26;aa[13,3]:=8.64;aa[13,4]:=9.02;

aa[13,5]:=9.40;aa[13,6]:=9.82;aa[13,7]:=10.2;aa[13,8]:=10.7;aa[13,9]:=11.1;

aa[14,0]:=11.5;aa[14,1]:=12.2;aa[14,2]:=12.9;aa[14,3]:=13.6;aa[14,4]:=14.3;

aa[14,5]:=15.0;aa[14,6]:=16.0;aa[14,7]:=17.0;aa[14,8]:=18.0;aa[14,9]:=19.0;

aa[15,0]:=20.0;aa[15,1]:=21.6;aa[15,2]:=23.2;aa[15,3]:=24.9;aa[15,4]:=26.5;

aa[15,5]:=28.1;aa[15,6]:=29.6;aa[15,7]:=31.1;aa[15,8]:=32.7;aa[15,9]:=34.2;

aa[16,0]:=35.7;aa[16,1]:=38.0;aa[16,2]:=40.3;aa[16,3]:=42.6;aa[16,4]:=44.9;

aa[16,5]:=47.2;aa[16,6]:=49.3;aa[16,7]:=51.4;aa[16,8]:=53.5;aa[16,9]:=55.6;

aa[17,0]:=57.7;aa[17,1]:=60.0;aa[17,2]:=63.0;aa[17,3]:=66.0;aa[17,4]:=70.0;


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

  • Демонстрація базової функції та функції в загальному вигляді з можливістю зміни параметрів A, B, C, D. Збереження поточних параметрів у файлі з наступним завантаженням. Підписи шкали осей координат і точки центру осей координат; друк отриманого графіка.

    курсовая работа [549,8 K], добавлен 18.12.2013

  • Основні можливості створення та редагування документів в текстовому редакторі Microsoft Word. Вставка спеціальних символів, табуляція, створення списків, колонок та буквиці за допомогою програми. Особливості та правила оформлення текстових документів.

    курсовая работа [795,8 K], добавлен 06.07.2011

  • Поняття та класифікація комп’ютерних ігор. Відтворення гри "Морський бій" у вигляді комп’ютерної програми. Компоненти програмного середовища Delphi, що були використані під час її створення. Алгоритм реалізації ігрового процесу та скріншоти з програми.

    дипломная работа [418,2 K], добавлен 12.07.2013

  • Елементарні властивості, які утворюють прийнятну для користувача якість ПЗ. Забезпечення стійкості програмних засобів за допомогою захисного програмування. Установка пакета Delphi. Розробка програми для автоматичного розрахунку значень складної функції.

    контрольная работа [32,8 K], добавлен 22.09.2009

  • Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.

    курсовая работа [762,8 K], добавлен 03.05.2015

  • Розробка таблиці для збереження даних у текстовому файлі про фільми в середовищі програмування Visual Studio C++ та їх сортування за країною виробництва. Реалізація таблиці за допомогою компонента dataGridView. Опис і контрольний приклад роботи програми.

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

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

    курсовая работа [510,2 K], добавлен 03.06.2011

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

    курсовая работа [19,4 K], добавлен 07.10.2010

  • Дослідження середовища візуального програмування Delphi. Вивчення процесу створення навчальної програми "Електронний словник". Опис графічного інтерфейсу. Характеристика структури та основних процедур даної програми. Аналіз роботи з програмним кодом.

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

  • Принципи роботи команд мікросхеми 24LC08: читання, запису даних. Опис і блок-схеми програми і підпрограм, що обслуговує пристрій. Вибір середовища програмування і розробка програми, яка забезпечує можливість демонстрації команд. Проведення тестування.

    курсовая работа [114,2 K], добавлен 08.12.2011

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