Главная              Рефераты - Информатика

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

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

Створення програми розрахунку параметрів електричних машин за допомогою середовища 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. Алгоритм задачі

Рисунок 1 – алгоритм розрахунку асинхронного двигуна

Рисунок – 2 алгоритм розрахунку генератора постійного струму



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


Рисунок 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;

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.Digitkey(Sender: TObject; var Key: Char);

begin

if not (key in['0'..'9',#8,'.']) then begin

messagedlg('Помилка - Дозволено вводити тільки додатні цифри',mterror,[mbok],0);

key:=#0;

beep;

end;;

end;

end.

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

unit Unit3;

interface

uses

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

Dialogs, Menus, StdCtrls, ExtCtrls, Buttons;

type

TForm3 = class(TForm)

MainMenu1: TMainMenu;

Timer1: TTimer;

Label1: TLabel;

N3: TMenuItem;

N2: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

Label2: TLabel;

Edit1: TEdit;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

Edit3: TEdit;

Label5: TLabel;

Edit4: TEdit;

Label6: TLabel;

Edit5: TEdit;

Label7: TLabel;

Edit6: TEdit;

Label8: TLabel;

Edit7: TEdit;

Label9: TLabel;

Edit8: TEdit;

Label10: TLabel;

Edit9: TEdit;

Label11: TLabel;

Edit10: TEdit;

Label12: TLabel;

Edit11: TEdit;

Label13: TLabel;

Edit12: TEdit;

Label14: TLabel;

Edit13: TEdit;

GroupBox1: TGroupBox;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Label15: TLabel;

Edit14: TEdit;

Label16: TLabel;

Edit15: TEdit;

Label17: TLabel;

Edit16: TEdit;

Label18: TLabel;

Edit17: TEdit;

Label19: TLabel;

Edit18: TEdit;

Label20: TLabel;

Edit19: TEdit;

Label21: TLabel;

Edit20: TEdit;

Label22: TLabel;

Edit21: TEdit;

Label23: TLabel;

Edit22: TEdit;

Label24: TLabel;

Edit23: TEdit;

Label25: TLabel;

Edit24: TEdit;

Label26: TLabel;

Edit25: TEdit;

Label27: TLabel;

Edit26: TEdit;

Label28: TLabel;

Edit27: TEdit;

Label29: TLabel;

Edit28: TEdit;

BitBtn1: TBitBtn;

GroupBox2: TGroupBox;

Edit29: TEdit;

Label30: TLabel;

Label31: TLabel;

Edit30: TEdit;

Label32: TLabel;

Edit31: TEdit;

Label33: TLabel;

Edit32: TEdit;

Label34: TLabel;

Edit33: TEdit;

Label35: TLabel;

Edit34: TEdit;

Label36: TLabel;

Edit35: TEdit;

Label37: TLabel;

Edit36: TEdit;

Label38: TLabel;

Edit37: TEdit;

procedure N2Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(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

Form3: TForm3;

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

d_ja_zovn,d_ja_vn,da,dval,lja,n,la,nk,bk,z:real;

bp,hz,S,pov_zaz,Lt,bt,ai,p2,Ea,m_s_ja:real;

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,coder4,coder5,coder6,coder7,coder8,coder9,coder10:integer;

coder11,coder12,coder13,coder14,coder15,coder16,coder17,coder18,coder19,coder20:integer;

coder21,coder22,coder23,coder24,coder25,coder26,coder27,coder28,coder29,coder30:integer;

coder31,coder32,coder33,coder34,coder35,coder36,coder37:integer;

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

Pol_dil,l,li,f,n_n,bq,ti,bz1,kq,fq:real;

bzmin,bzmax,B_Bzmin,bzser,kzmax,kzmin,kzser:real;

h_z,f_z,ha,sa,ba,h_a, l_a,F_a,q,Ft,st,bm:real;

h_tt,ftt,h_ja,sja,bja,l_ja,fja,fbo,ku:real;

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

ed1,ed2,ed3,ed4,ed5,ed6,ed7,ed8,ed9,ed10:string;

ed11,ed12,ed13,ed14,ed15,ed16,ed17,ed18,ed19,ed20:string;

ed21,ed22,ed23,ed24,ed25,ed26,ed27,ed28,ed29,ed30:string;

ed31,ed32,ed33,ed34,ed35,ed36,ed37,ed38,ed39,ed40:string;

ed41,ed42,ed43,ed44,ed45,ed46:string;

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

a,p,ind1,ind2:integer;

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

file1:textfile;

file2:textfile;

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

f1,ba1:real;

n_n_n,a_a_a:byte;

const line='___________________________________________________';

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

implementation

uses Unit1, Unit4, Unit5;

{$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 TForm3.N2Click(Sender: TObject);

begin

form1.Show;

form3.Visible:=false;

end;

procedure TForm3.Timer1Timer(Sender: TObject);

begin

if label1.Visible=true then

label1.Visible:=false

else label1.Visible:=true;

end;

procedure TForm3.N5Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

form1.Show;

form3.visible:=false;

end;

procedure TForm3.BitBtn3Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm3.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,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(edit7.Text,la,coder7);

val(edit8.Text,nk,coder8);

val(edit9.Text,bk,coder9);

val(edit10.Text,z,coder10);

val(edit11.Text,bp,coder11);

val(edit12.Text,hz,coder12);

val(edit13.Text,S,coder13);

val(edit14.Text,pov_zaz,coder14);

val(edit15.Text,lt,coder15);

val(edit16.Text,bt,coder16);

val(edit17.Text,ai,coder17);

val(edit18.Text,p2,coder18);

val(edit19.Text,ea,coder19);

val(edit20.Text,m_s_ja,coder20);

val(edit21.Text,t_l,coder21);

val(edit22.Text,m_s_g_p,coder22);

val(edit23.Text,bpl,coder23);

val(edit24.Text,m_s,coder24);

val(edit25.Text,kc,coder25);

val(edit26.Text,wc,coder26);

val(edit27.Text,ht,coder27);

val(edit28.Text,hja,coder28);

val(edit29.Text,bzmax1,coder29);

val(edit30.Text,kzmin1,coder30);

val(edit31.Text,hzmax1,coder31);

val(edit32.Text,bzmin2,coder32);

val(edit33.Text,kzmax2,coder33);

val(edit34.Text,hzmin2,coder34);

val(edit35.Text,bzser1,coder35);

val(edit36.Text,kzser1,coder36);

val(edit37.Text,hzser1,coder37);

form5.show;

form3.Visible:=false;

form5.Memo1.Clear;

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);

li:=0.5*(lt+l);

str(li:8:4,ed3);

form5.Memo1.Lines.Add('Розрахункова довжина якоря - мм');

form5.Memo1.Lines.Add(ed3);

form5.Memo1.Lines.Add(line);

a:=1; p:=2;

n_n:=2*wc*s;

f:=(60*a*Ea)/(p*N_n*n);

str(f:8:4,ed4);

form5.Memo1.Lines.Add('Загальний магнітний потік - Вб ');

form5.Memo1.Lines.Add(ed4);

form5.Memo1.Lines.Add(line);

bq:=f/(ai*li*pol_dil*0.000001);

str(bq:8:4,ed5);

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

form5.Memo1.Lines.Add(ed5);

form5.Memo1.Lines.Add(line);

ti:=(pi*da)/z;

str(ti:8:4,ed6);

form5.Memo1.Lines.Add('Зубцеве ділення якоря - мм ');

form5.Memo1.Lines.Add(ed6);

form5.Memo1.Lines.Add(line);

bz1:=ti-bp;

str(bz1:8:4,ed7);

form5.Memo1.Lines.Add('Ширина коронки зуба - мм ');

form5.Memo1.Lines.Add(ed7);

form5.Memo1.Lines.Add(line);

kq:=((10*pov_zaz)+ti)/(10*pov_zaz+bz1);

str(kq:8:4,ed8);

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

form5.Memo1.Lines.Add(ed8);

form5.Memo1.Lines.Add(line);

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

str(fq:8:4,ed9);

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

form5.Memo1.Lines.Add(ed9);

form5.Memo1.Lines.Add(line);

bzmin:=((pi*(da-2*hz))/z)-bp;

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);

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(line);

kzmax:=ti/(bzmin*kc);

str(kzmax:8:4,ed14);

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

form5.Memo1.Lines.Add(ed14);

form5.Memo1.Lines.Add(line);

kzmin:=(pi*(da-2*hz))/(bzmin*kc*z);

str(kzmin:8:4,ed15);

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

form5.Memo1.Lines.Add(ed15);

form5.Memo1.Lines.Add(line);

kzser:=0.5*(kzmax+kzmin);

str(kzser:8:4,ed16);

form5.Memo1.Lines.Add('Для середнього перерізу зубця');

form5.Memo1.Lines.Add(ed16);

form5.Memo1.Lines.Add(line);

form5.Memo1.Lines.Add(' Дані введені з графіка');

form5.Memo1.Lines.Add(line);

str(bzmax1:8:1,ed17);

str(kzmin1:8:1,ed18);

str(hzmax1:8:0,ed19);

str(bzmin2:8:1,ed20);

str(kzmax2:8:1,ed21);

str(hzmin2:8:0,ed22);

str(bzser1:8:1,ed23);

str(kzser1:8:1,ed24);

str(hzser1:8:0,ed25);

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

form5.Memo1.Lines.Add('Bz max = '+ed17+' Тл ');

form5.Memo1.Lines.Add('kz min = '+ed18);

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

form5.Memo1.Lines.Add(line);

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

form5.Memo1.Lines.Add('Bz min = '+ed20+' Тл ');

form5.Memo1.Lines.Add('kz max = '+ed21);

form5.Memo1.Lines.Add('Hz min = '+ed22);

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);

f_z:=0.1*h_z*hz;

str(f_z:8:4,ed27);

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

form5.Memo1.Lines.Add(ed27);

form5.Memo1.Lines.Add(line);

ha:=(da/2)-(dval/2)-hz;

str(ha:8:4,ed28);

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

form5.Memo1.Lines.Add(ed28);

form5.Memo1.Lines.Add(line);

sa:=((la-nk*bk)*ha*kc);

str(sa:8:4,ed29);

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

form5.Memo1.Lines.Add(ed29);

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];

str(h_a:8:4,ed31);

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);

f_a:=0.1*H_a*l_a;

str(f_a:8:4,ed33);

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

form5.Memo1.Lines.Add(ed33);

form5.Memo1.Lines.Add(line);

q:=(10*pov_zaz)/pol_dil;

str(q:8:4,ed34);

form5.Memo1.Lines.Add('Коефіцієнт розсіювання');

form5.Memo1.Lines.Add(ed34);

form5.Memo1.Lines.Add(line);

ft:=f*(1+q);

str(ft:8:4,ed35);

form5.Memo1.Lines.Add('Магнітний потік полюса - Вб');

form5.Memo1.Lines.Add(ed35);

form5.Memo1.Lines.Add(line);

st:=(bt*lt*kc);

str(st:8:4,ed36);

form5.Memo1.Lines.Add('Поперечний переріз сердечника полюса - мм.квад');

form5.Memo1.Lines.Add(ed36);

form5.Memo1.Lines.Add(line);

bm:=ft/(st*0.000001);

str(bm:8:4,ed37);

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

form5.Memo1.Lines.Add(ed37);

form5.Memo1.Lines.Add(line);

h_tt:=(0.5*(d_ja_vn-da))-pov_zaz;

str(h_tt:8:4,ed38);

form5.Memo1.Lines.Add('Висота сердечника полюса - мм');

form5.Memo1.Lines.Add(ed38);

form5.Memo1.Lines.Add(line);

ftt:=0.1*ht*h_tt;

str(ftt:8:4,ed39);

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

form5.Memo1.Lines.Add(ed39);

form5.Memo1.Lines.Add(line);

h_ja:=0.5*(d_ja_zovn-d_ja_vn);

str(h_ja:8:4,ed40);

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

form5.Memo1.Lines.Add(ed40);

form5.Memo1.Lines.Add(line);

sja:=(h_ja*lja);

str(sja:8:4,ed41);

form5.Memo1.Lines.Add('Поперечний переріз спинки станини - мм.квад');

form5.Memo1.Lines.Add(ed41);

form5.Memo1.Lines.Add(line);

bja:=ft/(2*(sja*0.000001));

str(bja:8:4,ed42);

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

form5.Memo1.Lines.Add(ed42);

form5.Memo1.Lines.Add(line);

l_ja:=((pi*(d_ja_zovn-d_ja_vn))/(4*p))+h_ja;

str(l_ja:8:4,ed43);

form5.Memo1.Lines.Add('Магнітне напруження станини - мм');

form5.Memo1.Lines.Add(ed43);

form5.Memo1.Lines.Add(line);

fja:=hja*l_ja;

str(fja:8:4,ed44);

form5.Memo1.Lines.Add('Магнітна індукція станини - А');

form5.Memo1.Lines.Add(ed44);

form5.Memo1.Lines.Add(line);

fbo:=(2*fq)+(2*f_z)+(2*ft)+f_a+fja;

str(fbo:8:4,ed45);

form5.Memo1.Lines.Add('МРС обмотки якоря збудження на пару полюсів в режимі');

form5.Memo1.Lines.Add('холостого ходу - А');

form5.Memo1.Lines.Add(ed45);

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;

procedure TForm3.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;

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(edit7.Text,la,coder7);

val(edit8.Text,nk,coder8);

val(edit9.Text,bk,coder9);

val(edit10.Text,z,coder10);

val(edit11.Text,bp,coder11);

val(edit12.Text,hz,coder12);

val(edit13.Text,S,coder13);

val(edit14.Text,pov_zaz,coder14);

val(edit15.Text,lt,coder15);

val(edit16.Text,bt,coder16);

val(edit17.Text,ai,coder17);

val(edit18.Text,p2,coder18);

val(edit19.Text,ea,coder19);

val(edit20.Text,m_s_ja,coder20);

val(edit21.Text,t_l,coder21);

val(edit22.Text,m_s_g_p,coder22);

val(edit23.Text,bpl,coder23);

val(edit24.Text,m_s,coder24);

val(edit25.Text,kc,coder25);

val(edit26.Text,wc,coder26);

val(edit27.Text,ht,coder27);

val(edit28.Text,hja,coder28);

val(edit29.Text,bzmax1,coder29);

val(edit30.Text,kzmin1,coder30);

val(edit31.Text,hzmax1,coder31);

val(edit32.Text,bzmin2,coder32);

val(edit33.Text,kzmax2,coder33);

val(edit34.Text,hzmin2,coder34);

val(edit35.Text,bzser1,coder35);

val(edit36.Text,kzser1,coder36);

val(edit37.Text,hzser1,coder37);

form5.show;

form3.Visible:=false;

form5.Memo1.Clear;

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);

li:=0.5*(lt+l);

str(li:8:4,ed3);

form5.Memo1.Lines.Add('Розрахункова довжина якоря - мм');

form5.Memo1.Lines.Add(ed3);

form5.Memo1.Lines.Add(line);

a:=1; p:=2;

n_n:=2*wc*s;

f:=(60*a*Ea)/(p*N_n*n);

str(f:8:4,ed4);

form5.Memo1.Lines.Add('Загальний магнітний потік - Вб ');

form5.Memo1.Lines.Add(ed4);

form5.Memo1.Lines.Add(line);

bq:=f/(ai*li*pol_dil*0.000001);

str(bq:8:4,ed5);

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

form5.Memo1.Lines.Add(ed5);

form5.Memo1.Lines.Add(line);

ti:=(pi*da)/z;

str(ti:8:4,ed6);

form5.Memo1.Lines.Add('Зубцеве ділення якоря - мм ');

form5.Memo1.Lines.Add(ed6);

form5.Memo1.Lines.Add(line);

bz1:=ti-bp;

str(bz1:8:4,ed7);

form5.Memo1.Lines.Add('Ширина коронки зуба - мм ');

form5.Memo1.Lines.Add(ed7);

form5.Memo1.Lines.Add(line);

kq:=((10*pov_zaz)+ti)/(10*pov_zaz+bz1);

str(kq:8:4,ed8);

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

form5.Memo1.Lines.Add(ed8);

form5.Memo1.Lines.Add(line);

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

str(fq:8:4,ed9);

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

form5.Memo1.Lines.Add(ed9);

form5.Memo1.Lines.Add(line);

bzmin:=((pi*(da-2*hz))/z)-bp;

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);

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(line);

kzmax:=ti/(bzmin*kc);

str(kzmax:8:4,ed14);

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

form5.Memo1.Lines.Add(ed14);

form5.Memo1.Lines.Add(line);

kzmin:=(pi*(da-2*hz))/(bzmin*kc*z);

str(kzmin:8:4,ed15);

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

form5.Memo1.Lines.Add(ed15);

form5.Memo1.Lines.Add(line);

kzser:=0.5*(kzmax+kzmin);

str(kzser:8:4,ed16);

form5.Memo1.Lines.Add('Для середнього перерізу зубця');

form5.Memo1.Lines.Add(ed16);

form5.Memo1.Lines.Add(line);

form5.Memo1.Lines.Add(' Дані введені з графіка');

form5.Memo1.Lines.Add(line);

str(bzmax1:8:1,ed17);

str(kzmin1:8:1,ed18);

str(hzmax1:8:0,ed19);

str(bzmin2:8:1,ed20);

str(kzmax2:8:1,ed21);

str(hzmin2:8:0,ed22);

str(bzser1:8:1,ed23);

str(kzser1:8:1,ed24);

str(hzser1:8:0,ed25);

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

form5.Memo1.Lines.Add('Bz max = '+ed17+' Тл ');

form5.Memo1.Lines.Add('kz min = '+ed18);

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

form5.Memo1.Lines.Add(line);

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

form5.Memo1.Lines.Add('Bz min = '+ed20+' Тл ');

form5.Memo1.Lines.Add('kz max = '+ed21);

form5.Memo1.Lines.Add('Hz min = '+ed22);

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);

f_z:=0.1*h_z*hz;

str(f_z:8:4,ed27);

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

form5.Memo1.Lines.Add(ed27);

form5.Memo1.Lines.Add(line);

ha:=(da/2)-(dval/2)-hz;

str(ha:8:4,ed28);

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

form5.Memo1.Lines.Add(ed28);

form5.Memo1.Lines.Add(line);

sa:=((la-nk*bk)*ha*kc);

str(sa:8:4,ed29);

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

form5.Memo1.Lines.Add(ed29);

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];

str(h_a:8:4,ed31);

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);

f_a:=0.1*H_a*l_a;

str(f_a:8:4,ed33);

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

form5.Memo1.Lines.Add(ed33);

form5.Memo1.Lines.Add(line);

q:=(10*pov_zaz)/pol_dil;

str(q:8:4,ed34);

form5.Memo1.Lines.Add('Коефіцієнт розсіювання');

form5.Memo1.Lines.Add(ed34);

form5.Memo1.Lines.Add(line);

ft:=f*(1+q);

str(ft:8:4,ed35);

form5.Memo1.Lines.Add('Магнітний потік полюса - Вб');

form5.Memo1.Lines.Add(ed35);

form5.Memo1.Lines.Add(line);

st:=(bt*lt*kc);

str(st:8:4,ed36);

form5.Memo1.Lines.Add('Поперечний переріз сердечника полюса - мм.квад');

form5.Memo1.Lines.Add(ed36);

form5.Memo1.Lines.Add(line);

bm:=ft/(st*0.000001);

str(bm:8:4,ed37);

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

form5.Memo1.Lines.Add(ed37);

form5.Memo1.Lines.Add(line);

h_tt:=(0.5*(d_ja_vn-da))-pov_zaz;

str(h_tt:8:4,ed38);

form5.Memo1.Lines.Add('Висота сердечника полюса - мм');

form5.Memo1.Lines.Add(ed38);

form5.Memo1.Lines.Add(line);

ftt:=0.1*ht*h_tt;

str(ftt:8:4,ed39);

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

form5.Memo1.Lines.Add(ed39);

form5.Memo1.Lines.Add(line);

h_ja:=0.5*(d_ja_zovn-d_ja_vn);

str(h_ja:8:4,ed40);

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

form5.Memo1.Lines.Add(ed40);

form5.Memo1.Lines.Add(line);

sja:=(h_ja*lja);

str(sja:8:4,ed41);

form5.Memo1.Lines.Add('Поперечний переріз спинки станини - мм.квад');

form5.Memo1.Lines.Add(ed41);

form5.Memo1.Lines.Add(line);

bja:=ft/(2*(sja*0.000001));

str(bja:8:4,ed42);

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

form5.Memo1.Lines.Add(ed42);

form5.Memo1.Lines.Add(line);

l_ja:=((pi*(d_ja_zovn-d_ja_vn))/(4*p))+h_ja;

str(l_ja:8:4,ed43);

form5.Memo1.Lines.Add('Магнітне напруження станини - мм');

form5.Memo1.Lines.Add(ed43);

form5.Memo1.Lines.Add(line);

fja:=hja*l_ja;

str(fja:8:4,ed44);

form5.Memo1.Lines.Add('Магнітна індукція станини - А');

form5.Memo1.Lines.Add(ed44);

form5.Memo1.Lines.Add(line);

fbo:=(2*fq)+(2*f_z)+(2*ft)+f_a+fja;

str(fbo:8:4,ed45);

form5.Memo1.Lines.Add('МРС обмотки якоря збудження на пару полюсів в режимі');

form5.Memo1.Lines.Add('холостого ходу - А');

form5.Memo1.Lines.Add(ed45);

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;

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

begin

if not (key in['0'..'9',#8,'.']) then begin

messagedlg('Помилка - Дозволено вводити тільки додатні цифри',mterror,[mbok],0);

key:=#0;

beep;

end;

end;

end.

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

unit Unit4;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls, jpeg;

type

TAboutBox = class(TForm)

Panel1: TPanel;

ProgramIcon: TImage;

OKButton: TButton;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Timer1: TTimer;

Label1: TLabel;

GroupBox1: TGroupBox;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

procedure OKButtonClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox: TAboutBox;

implementation

uses Unit1;

{$R *.dfm}

procedure TAboutBox.OKButtonClick(Sender: TObject);

begin

close;

form1.visible:=true;

end;

procedure TAboutBox.FormCreate(Sender: TObject);

begin

label5.Caption:='';

end;

procedure TAboutBox.Timer1Timer(Sender: TObject);

begin

label5.Caption:=timetostr(time)

end;

end.

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

unit Unit5;

interface

uses

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

Dialogs, StdCtrls, Menus, Buttons, ExtCtrls;

type

TForm5 = class(TForm)

Memo1: TMemo;

GroupBox1: TGroupBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

Label1: TLabel;

Timer1: TTimer;

procedure FormCreate(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit4, Unit1, Unit3, Unit6;

{$R *.dfm}

procedure TForm5.FormCreate(Sender: TObject);

begin

memo1.Clear;

end;

procedure TForm5.N6Click(Sender: TObject);

begin

form1.close;

end;

procedure TForm5.N3Click(Sender: TObject);

begin

form3.show;

form5.Visible:=false;

end;

procedure TForm5.Timer1Timer(Sender: TObject);

begin

if label1.Visible=true then

label1.Visible:=false

else label1.Visible:=true;

end;

procedure TForm5.BitBtn1Click(Sender: TObject);

begin

form3.show;

form5.Visible:=false;

end;

procedure TForm5.BitBtn3Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm5.BitBtn2Click(Sender: TObject);

begin

form6.show;

form3.Visible:=false;

form5.Visible:=false;

end;

procedure TForm5.N4Click(Sender: TObject);

begin

form6.Show;

form3.Visible:=false;

form5.Visible:=false;

end;

end.

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

unit Unit6;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Menus,comobj, Buttons;

type

TForm6 = class(TForm)

Panel1: TPanel;

Label1: TLabel;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

GroupBox1: TGroupBox;

Timer1: TTimer;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

procedure Timer1Timer(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Unit4, Unit1, Unit5, Unit3;

{$R *.dfm}

procedure TForm6.Timer1Timer(Sender: TObject);

begin

if label1.Visible=true then

label1.Visible:=false

else label1.Visible:=true;

end;

procedure TForm6.N5Click(Sender: TObject);

begin

form1.close;

end;

procedure TForm6.N2Click(Sender: TObject);

begin

form6.Visible:=false;

form5.visible:=true;

end;

procedure TForm6.BitBtn1Click(Sender: TObject);

begin

form6.Visible:=false;

form5.Visible:=true;

end;

procedure TForm6.BitBtn3Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm6.BitBtn2Click(Sender: TObject);

var word:olevariant;

begin

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,ed3);

writeln(file1,' ');

writeln(file1,'Загальний магнітний потік - Вб');

writeln(file1,ed4);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в повітряному зазорі - Тл');

writeln(file1,ed5);

writeln(file1,' ');

writeln(file1,'Зубцеве ділення якоря - мм');

writeln(file1,ed6);

writeln(file1,' ');

writeln(file1,'Ширина коронки зуба - мм');

writeln(file1,ed7);

writeln(file1,' ');

writeln(file1,'Коефіцієнт повітряного зазору');

writeln(file1,ed8);

writeln(file1,' ');

writeln(file1,'Магнітне напруження повітряного зазору - А');

writeln(file1,ed9);

writeln(file1,' ');

writeln(file1,'Ширина зубця в його момінальному перерізі - мм');

writeln(file1,ed10);

writeln(file1,' ');

writeln(file1,'Індукція в найменшому перерізі зубця - Тл');

writeln(file1,ed11);

writeln(file1,' ');

if bzmax>1.8 then begin

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

writeln(file1,' ');

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

writeln(file1,' ');

writeln(file1,'Магнітна індукція в максимальному перерізі зубця - Тл');

writeln(file1,ed12);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в середньому перерізі зубця - Тл');

writeln(file1,ed13);

writeln(file1,' ');

writeln(file1,' Зубцеві коефіцієнти');

writeln(file1,' ');

writeln(file1,'Для максимального перерізу зубця');

writeln(file1,ed14);

writeln(file1,' ');

writeln(file1,'Для мінімального перерізу зубця');

writeln(file1,ed15);

writeln(file1,' ');

writeln(file1,'Для середнього перерізу зубця');

writeln(file1,ed16);

writeln(file1,' ');

writeln(file1,' Дані введені з графіка');

writeln(file1,' ');

writeln(file1,'Напруженість поля в найменшому перерізі зубця');

writeln(file1,'Bz max = '+ed17+' Тл ');

writeln(file1,'kz min = '+ed18);

writeln(file1,'Hz max = '+ed19+' А/см');

writeln(file1,' ');

writeln(file1,'Напруженість поля в максимальному перерізі зубця');

writeln(file1,'Bz min = '+ed20+' Тл ');

writeln(file1,'kz max = '+ed21);

writeln(file1,'Hz min = '+ed22+' А/см');

writeln(file1,' ');

writeln(file1,'Напруженість поля в середньому перерізі зубця');

writeln(file1,'Bz ser = '+ed23+' Тл ');

writeln(file1,'kz ser = '+ed24);

writeln(file1,'Hz ser = '+ed25+' А/см');

writeln(file1,' ');

end

else

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

writeln(file1,' ');

writeln(file1,'Продовження розрахунку основних параметрів генератора постійного струму');

writeln(file1,' ');

writeln(file1,'Значення напруженості поля в зубці якоря - А/см');

writeln(file1,ed26);

writeln(file1,' ');

writeln(file1,'Магнітне напруження зубцевого шару якоря - А');

writeln(file1,ed27);

writeln(file1,' ');

writeln(file1,'Висота спинки якоря - мм');

writeln(file1,ed28);

writeln(file1,' ');

writeln(file1,'Площа перерізу спинки якоря - мм.квад');

writeln(file1,ed29);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в спинці якоря - Тл');

writeln(file1,ed30);

writeln(file1,' ');

writeln(file1,'Напруженість поля в спинці якоря - А/см');

writeln(file1,ed31);

writeln(file1,' ');

writeln(file1,'Довжина середньої силової лінії в спинці якоря - мм');

writeln(file1,ed32);

writeln(file1,' ');

writeln(file1,'Магнітна напруженість в спинці якоря - А');

writeln(file1,ed33);

writeln(file1,' ');

writeln(file1,'Коефіцієнт розсіювання');

writeln(file1,ed34);

writeln(file1,' ');

writeln(file1,'Магнітний потік полюса - Вб');

writeln(file1,ed35);

writeln(file1,' ');

writeln(file1,'Поперечний переріз сердечника полюса - мм.квад');

writeln(file1,ed36);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в сердечнику полюса - Тл');

writeln(file1,ed37);

writeln(file1,' ');

writeln(file1,'Висота сердечника полюса - мм');

writeln(file1,ed38);

writeln(file1,' ');

writeln(file1,'Магнітне напруження поля - А');

writeln(file1,ed39);

writeln(file1,' ');

writeln(file1,'Висота спинки станини - мм');

writeln(file1,ed40);

writeln(file1,' ');

writeln(file1,'Поперечний переріз спинки станини - мм.квад');

writeln(file1,ed41);

writeln(file1,' ');

writeln(file1,'Магнітна індукція станини - Тл');

writeln(file1,ed42);

writeln(file1,' ');

writeln(file1,'Магнітне напруження станини - мм');

writeln(file1,ed43);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в станині - А');

writeln(file1,ed44);

writeln(file1,' ');

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

writeln(file1,ed45);

writeln(file1,' ');

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

writeln(file1,ed46);

writeln(file1,' ');

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

closefile(file1);

end;

if checkbox2.Checked=true then

begin

try

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

except

ShowMessage('Cannot start Word !');

Exit;

end;

// Show Word

Word.Visible := True;

// Add a new Document

Word.Documents.Add;

if Word.ActiveWindow.View.SplitSpecial <> 0 then

Word.ActiveWindow.Panes[2].Close;

if (Word.ActiveWindow.ActivePane.View.type = 1) or

(Word.ActiveWindow.ActivePane.View.type = 2) or

(Word.ActiveWindow.ActivePane.View.type = 5) then

Word.ActiveWindow.ActivePane.View.type := 3;

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

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('Розрахунок параметрів генератора постійного струму');

if Word.Selection.HeaderFooter.IsHeader = True then

Word.ActiveWindow.ActivePane.View.SeekView := 10

else

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

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

Word.Selection.Font.Size := 10;

Word.Selection.Font.Bold := True;

Word.Selection.Font.color := 0111;

Word.Selection.TypeText('Звіт по розрахунках. ELEКTRA - Програма для розрахунку Двигунів та Генераторів');

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(ed5);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Зубцеве ділення якоря - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed6);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Ширина коронки зуба - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed7);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Коефіціент повітряного зазору');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed8);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Магнітне напруження повітряного зазору - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed9);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Ширина зубця в його номінальному перерізі - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed10);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Індукція в найменшому перерізі зубця - Тл');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed11);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

if bzmax>1.8 then begin

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

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Результати розрахунку додаткових параметрів');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed12);

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed13);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Зубцеві коефіціенти');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Для максимального перерізу зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed14);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Для мінімального перерізу зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed15);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Для середнього перерізу зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed16);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Дані введені з графіка');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Напруженість поля в найменшому перерізі зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Bz max = '+ed17+' Тл ');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('kz min = '+ed18);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Hz max = '+ed19+' А/см');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Напруженість поля в максимальному перерізі зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Bz min = '+ed20+' Тл ');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('kz max = '+ed21);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Hz min = '+ed22+' А/см');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Напруженість поля в середньому перерізі зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Bz ser = '+ed23+' Тл ');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('kz ser = '+ed24);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Hz ser = '+ed25+' А/см');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

end

else

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

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Продовження розрахунку основних параметрів генератора');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed26);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітне напруження зубцевого шару якоря - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed27);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Висота спинки якоря - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed28);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Площа перерізу спинки якоря - мм.квад');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed29);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітна індукція в спинці якоря - Тл');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed30);

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed31);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Довжина середньої силової лінії в спинці якоря - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed32);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітна напруженість в спинці якоря - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed33);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Коефіцієнт розсіювання');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed34);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітний потік полюса - Вб');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed35);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Поперечний переріз сердечника полюса - мм.квад');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed36);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітна індукція в сердечнику полюса - Тл');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed37);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Висота сердечника полюса - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed38);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітне напруження поля - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed39);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Висота спинки станини - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed40);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Поперечний переріз спинки станини - мм.квад');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed41);

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed42);

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('Розрахунок завершено успішно.');

form1.show;

form6.Close;

end

else

form1.show;

form6.Close;

end;

procedure TForm6.N3Click(Sender: TObject);

var word:olevariant;

begin

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,ed3);

writeln(file1,' ');

writeln(file1,'Загальний магнітний потік - Вб');

writeln(file1,ed4);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в повітряному зазорі - Тл');

writeln(file1,ed5);

writeln(file1,' ');

writeln(file1,'Зубцеве ділення якоря - мм');

writeln(file1,ed6);

writeln(file1,' ');

writeln(file1,'Ширина коронки зуба - мм');

writeln(file1,ed7);

writeln(file1,' ');

writeln(file1,'Коефіцієнт повітряного зазору');

writeln(file1,ed8);

writeln(file1,' ');

writeln(file1,'Магнітне напруження повітряного зазору - А');

writeln(file1,ed9);

writeln(file1,' ');

writeln(file1,'Ширина зубця в його момінальному перерізі - мм');

writeln(file1,ed10);

writeln(file1,' ');

writeln(file1,'Індукція в найменшому перерізі зубця - Тл');

writeln(file1,ed11);

writeln(file1,' ');

if bzmax>1.8 then begin

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

writeln(file1,' ');

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

writeln(file1,' ');

writeln(file1,'Магнітна індукція в максимальному перерізі зубця - Тл');

writeln(file1,ed12);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в середньому перерізі зубця - Тл');

writeln(file1,ed13);

writeln(file1,' ');

writeln(file1,' Зубцеві коефіцієнти');

writeln(file1,' ');

writeln(file1,'Для максимального перерізу зубця');

writeln(file1,ed14);

writeln(file1,' ');

writeln(file1,'Для мінімального перерізу зубця');

writeln(file1,ed15);

writeln(file1,' ');

writeln(file1,'Для середнього перерізу зубця');

writeln(file1,ed16);

writeln(file1,' ');

writeln(file1,' Дані введені з графіка');

writeln(file1,' ');

writeln(file1,'Напруженість поля в найменшому перерізі зубця');

writeln(file1,'Bz max = '+ed17+' Тл ');

writeln(file1,'kz min = '+ed18);

writeln(file1,'Hz max = '+ed19+' А/см');

writeln(file1,' ');

writeln(file1,'Напруженість поля в максимальному перерізі зубця');

writeln(file1,'Bz min = '+ed20+' Тл ');

writeln(file1,'kz max = '+ed21);

writeln(file1,'Hz min = '+ed22+' А/см');

writeln(file1,' ');

writeln(file1,'Напруженість поля в середньому перерізі зубця');

writeln(file1,'Bz ser = '+ed23+' Тл ');

writeln(file1,'kz ser = '+ed24);

writeln(file1,'Hz ser = '+ed25+' А/см');

writeln(file1,' ');

end

else

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

writeln(file1,' ');

writeln(file1,'Продовження розрахунку основних параметрів генератора постійного струму');

writeln(file1,' ');

writeln(file1,'Значення напруженості поля в зубці якоря - А/см');

writeln(file1,ed26);

writeln(file1,' ');

writeln(file1,'Магнітне напруження зубцевого шару якоря - А');

writeln(file1,ed27);

writeln(file1,' ');

writeln(file1,'Висота спинки якоря - мм');

writeln(file1,ed28);

writeln(file1,' ');

writeln(file1,'Площа перерізу спинки якоря - мм.квад');

writeln(file1,ed29);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в спинці якоря - Тл');

writeln(file1,ed30);

writeln(file1,' ');

writeln(file1,'Напруженість поля в спинці якоря - А/см');

writeln(file1,ed31);

writeln(file1,' ');

writeln(file1,'Довжина середньої силової лінії в спинці якоря - мм');

writeln(file1,ed32);

writeln(file1,' ');

writeln(file1,'Магнітна напруженість в спинці якоря - А');

writeln(file1,ed33);

writeln(file1,' ');

writeln(file1,'Коефіцієнт розсіювання');

writeln(file1,ed34);

writeln(file1,' ');

writeln(file1,'Магнітний потік полюса - Вб');

writeln(file1,ed35);

writeln(file1,' ');

writeln(file1,'Поперечний переріз сердечника полюса - мм.квад');

writeln(file1,ed36);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в сердечнику полюса - Тл');

writeln(file1,ed37);

writeln(file1,' ');

writeln(file1,'Висота сердечника полюса - мм');

writeln(file1,ed38);

writeln(file1,' ');

writeln(file1,'Магнітне напруження поля - А');

writeln(file1,ed39);

writeln(file1,' ');

writeln(file1,'Висота спинки станини - мм');

writeln(file1,ed40);

writeln(file1,' ');

writeln(file1,'Поперечний переріз спинки станини - мм.квад');

writeln(file1,ed41);

writeln(file1,' ');

writeln(file1,'Магнітна індукція станини - Тл');

writeln(file1,ed42);

writeln(file1,' ');

writeln(file1,'Магнітне напруження станини - мм');

writeln(file1,ed43);

writeln(file1,' ');

writeln(file1,'Магнітна індукція в станині - А');

writeln(file1,ed44);

writeln(file1,' ');

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

writeln(file1,ed45);

writeln(file1,' ');

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

writeln(file1,ed46);

writeln(file1,' ');

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

closefile(file1);

end;

if checkbox2.Checked=true then

begin

try

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

except

ShowMessage('Cannot start Word !');

Exit;

end;

// Show Word

Word.Visible := True;

// Add a new Document

Word.Documents.Add;

if Word.ActiveWindow.View.SplitSpecial <> 0 then

Word.ActiveWindow.Panes[2].Close;

if (Word.ActiveWindow.ActivePane.View.type = 1) or

(Word.ActiveWindow.ActivePane.View.type = 2) or

(Word.ActiveWindow.ActivePane.View.type = 5) then

Word.ActiveWindow.ActivePane.View.type := 3;

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

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('Розрахунок параметрів генератора постійного струму');

if Word.Selection.HeaderFooter.IsHeader = True then

Word.ActiveWindow.ActivePane.View.SeekView := 10

else

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

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

Word.Selection.Font.Size := 10;

Word.Selection.Font.Bold := True;

Word.Selection.Font.color := 0111;

Word.Selection.TypeText('Звіт по розрахунках. ELEКTRA - Програма для розрахунку Двигунів та Генераторів');

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(ed5);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Зубцеве ділення якоря - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed6);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Ширина коронки зуба - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed7);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Коефіціент повітряного зазору');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed8);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Магнітне напруження повітряного зазору - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed9);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Ширина зубця в його номінальному перерізі - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed10);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Індукція в найменшому перерізі зубця - Тл');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed11);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

if bzmax>1.8 then begin

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

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Результати розрахунку додаткових параметрів');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed12);

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed13);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Зубцеві коефіціенти');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Для максимального перерізу зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed14);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Для мінімального перерізу зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed15);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Для середнього перерізу зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed16);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Дані введені з графіка');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Напруженість поля в найменшому перерізі зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Bz max = '+ed17+' Тл ');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('kz min = '+ed18);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Hz max = '+ed19+' А/см');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Напруженість поля в максимальному перерізі зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Bz min = '+ed20+' Тл ');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('kz max = '+ed21);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Hz min = '+ed22+' А/см');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Напруженість поля в середньому перерізі зубця');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Bz ser = '+ed23+' Тл ');

Word.Selection.TypeParagraph;

Word.Selection.TypeText('kz ser = '+ed24);

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Hz ser = '+ed25+' А/см');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

end

else

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

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

Word.Selection.TypeText('Продовження розрахунку основних параметрів генератора');

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed26);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітне напруження зубцевого шару якоря - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed27);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Висота спинки якоря - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed28);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Площа перерізу спинки якоря - мм.квад');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed29);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітна індукція в спинці якоря - Тл');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed30);

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed31);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Довжина середньої силової лінії в спинці якоря - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed32);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітна напруженість в спинці якоря - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed33);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Коефіцієнт розсіювання');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed34);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітний потік полюса - Вб');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed35);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Поперечний переріз сердечника полюса - мм.квад');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed36);

Word.Selection.TypeParagraph;

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітна індукція в сердечнику полюса - Тл');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed37);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Висота сердечника полюса - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed38);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Магнітне напруження поля - А');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed39);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Висота спинки станини - мм');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed40);

Word.Selection.TypeParagraph;

word.Selection.TypeText('Поперечний переріз спинки станини - мм.квад');

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed41);

Word.Selection.TypeParagraph;

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

Word.Selection.TypeParagraph;

Word.Selection.TypeText(ed42);

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('Розрахунок завершено успішно.');

form1.show;

form6.Close;

end

else

form1.show;

form6.Close;

end;

end.

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

unit Unit7;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Menus, Buttons;

type

TForm7 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Label1: TLabel;

Timer1: TTimer;

Memo1: TMemo;

GroupBox1: TGroupBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

procedure Timer1Timer(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

uses Unit2, Unit1, Unit9;

{$R *.dfm}

procedure TForm7.Timer1Timer(Sender: TObject);

begin

if label1.Visible=true then

label1.Visible:=false

else label1.Visible:=true;

end;

procedure TForm7.N2Click(Sender: TObject);

begin

form2.show;

form7.Visible:=false;

end;

procedure TForm7.N5Click(Sender: TObject);

begin

form1.close;

end;

procedure TForm7.BitBtn1Click(Sender: TObject);

begin

form2.Show;

form7.Visible:=false;

end;

procedure TForm7.BitBtn3Click(Sender: TObject);