Автор работы: Пользователь скрыл имя, 25 Декабря 2012 в 21:03, курсовая работа
Целью данного курсового проекта является получение законов изменения электрических величин во времени, расчет машин в режиме двигателя и генератора, а так же асинхронных двигателей. Для этого необходимо изучить методику расчета электрических цепей и расчетов двигателей. Решение должно быть получено в результате выполнения соответствующей программы для ЭВМ, составленной самим студентом.
ВВЕДЕНИЕ 4
1. ПОСТАНОВКА ЗАДАЧИ 5
2. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ 6
3. ВЫБОР АЛГОРИТМА И МЕТОДОВ РЕШЕНИЯ ЗАДАЧ ПРОЕКТИРОВАНИЯ 7
3.1 МЕТОД РАСЧЕТА ИНТЕГРАЛА ДЮАМЕЛЯ 7
3.2 ЭЛЕКТРИЧЕСКИЕ МАШИНЫ ПОСТОЯННОГО ТОКА 11
3.3 ТРЕХФАЗНЫЕ АСИНХРОННЫЕ ДВИГАТЕЛИ 15
4. ПРОГРАМНАЯ РЕАЛИЗАЦИЯ 19
4.1 C++BUILDER 6 19
4.2ОПИСАНИЕФУНКЦИЙ 22
4.3 КОД ПРОГРАММЫ. 23
4.4 БЛОК – СХЕМА ВЫВОДА ГРАФИКОВ 51
ЗАКЛЮЧЕНИЕ 52
ЛИТЕРАТУРА. 53
Критическое скольжение может быть найдено на основании уравнения (15) по известным параметрам обмотки ротора или из уравнения (17) по известным значениям моментов и скольжения для какого-либо характерного режима работы АД (пуск, номинальный режим). Например, критическое скольжение, соответствующее естественной механической характеристике, может быть найдено по известным для номинального режима скольжению sиом и вращающему моменту М* = 1
Рабочие характеристики двигателя — это зависимости n2 (Р2), s (P2), М2 (Р2), р1 (P2), (Р2), I1 (Р2), соs (Р2). Или в относительных единицах: n2* (Р2*), s (P2*), М2* (Р2*), р1* (P2*), (Р2*), I1* (Р2*), соs (Р2*) при U = const и f = const.
C++Builder — одна из самых мощных систем, позволяющих на самом современном уровне создавать как отдельные прикладные программы Windows, так и разветвленные комплексы, предназначенные для работы в корпоративных сетях и в Интернете. С++Builder – это среда объектно-ориентированного программирования.
Объектно-ориентированное программирование.
Объектно-ориентированное программирование (сокращенно ООП) — это в наше время совершенно естественный подход, к построению сложных (и не очень сложных) программ и систем.
Приложение, построенное по принципам объектной ориентации — это не последовательность каких-то операторов, не некий жесткий алгоритм. Объектно-ориентрованная программа — это совокупность объектов и способов их взаимодействия. Отдельным (и главным) объектом при таком подходе во многих случаях можно считать пользователя программы. Он же служит и основным, но не единственным, источником событий, управляющих приложением.
Помимо методов, работающих с отдельными данными, в объекте имеются методы, работающие со всей их совокупностью, меняющие их структуру. Таким об- / разом, объект является совокупностью свойств и методов. Но это пока нельзя считать законченным определением объекта, поскольку прежде, чем дать полное определение, надо еще рассмотреть взаимодействие объектов друг с другом.
Средой взаимодействия объектов (как бы силовым полем, в котором существуют объекты) являются сообщения, генерируемые в результате различных событий. События наступают, прежде всего, вследствие действий пользователя — перемещения курсора мыши, нажатия кнопок мыши или клавиш клавиатуры. Но события могут наступать и в результате работы самих объектов. В каждом объекте определено множество событий, на которые он может реагировать. В конкретных экземплярах объекта могут быть определены обработчики каких-то из этих событий, которые и определяют реакцию данного экземпляра объекта. К написанию этих обработчиков, часто весьма простых, и сводится, как будет видно далее, основное программирование при разработке графического интерфейса пользователя с помощью C++Builder.
Теперь можно окончательно определить объект как совокупность свойств и методов, а также событий, на которые он может реагировать.
С
целью организации
Основы визуального программирования интерфейса.
Сколько существует программирование, столько существуют в нем и тупики, в которые оно постоянно попадает и из которых, в конце концов, доблестно выходит. Один из таких тупиков или кризисов когда-то был связан с разработкой графического интерфейса пользователя. Программирование вручную всяких привычных пользователю окон, кнопок, меню, обработка событий мыши и клавиатуры, включение в программы изображений и звука требовало все больше и больше времени программиста. В ряде случаев весь этот сервис начинал занимать до 80-90% объема программных кодов. Причем весь этот труд нередко пропадал почти впустую, поскольку через год — другой менялся общепринятый стиль графического интерфейса, и все приходилось начинать заново. Среда предоставляет формы (в приложении их может быть несколько), на которых размещаются компоненты. Обычно это оконные формы, хотя они могут быть сделаны невидимыми. На форму с помощью мыши переносятся и размещаются пиктограммы компонентов, имеющихся в библиотеках C++Builder. С помощью простых манипуляций можно изменять размеры и расположение этих компонентов.
Но
достоинства визуального
Компоненты могут быть визуальные, видимые при работе приложения, и невизуальные, выполняющие те или иные служебные функции. Визуальные компоненты сразу видны на экране в процессе проектирования в таком же виде, в каком их увидит пользователь во время выполнения приложения. Это позволяет очень легко выбрать место их расположения и их дизайн — форму, размер, оформление, текст, цвет и т.д. Невизуальные компоненты видны на форме в процессе проектирования в виде пиктограмм, но пользователю во время выполнения они не видны, хотя и выполняют для него за кадром весьма полезную работу. В библиотеки визуальных компонентов C++Builder включено множество типов компонентов, и их номенклатура очень быстро расширяется от версии к версии. Имеющегося уже сейчас вполне достаточно, чтобы построить практически любое самое замысловатое приложение, не прибегая к созданию новых компонентов. При этом даже неопытный программист, делающий свои первые шаги на этом поприще, может создавать приложения, которые выглядят совершенно профессионально.
Типы объектов и, в частности, компонентов библиотек C++Builder оформляются в виде классов. Классы — это типы, определяемые пользователем. В классах описываются свойства объекта, его методы и события, на которые он может реагировать.
Новый
класс может наследовать
1. __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
Главная функция приложения. В ней происходит запуск базы данных и ini файла.
2. void __fastcall TForm1::ColorButton1Click(
Функция для расчёта асинхронных двигателей
3. void __fastcall TForm1::ColorButton2Click(
Функция для вывода значений расчёта асинхронных двигателей по умолчанию
4. void __fastcall TForm1::ColorButton3Click(
Функция для вывода дополнительных графиков для асинхронных двигателей
5. void __fastcall TForm1::BitmapButton6Click(
Функция для вывода выходных параметров МПТ в режиме генератора
6. void __fastcall TForm1::ColorButton4Click(
Функция для вывода выходных параметров МПТ в режиме генератора по умолчанию
7. void __fastcall TForm1::BitmapButton5Click(
Функия для вывода выходных параметров МПТ в режиме двигателя
8. void __fastcall TForm1::ColorButton5Click(
Функия для вывода выходных параметров МПТ в режиме двигателя по умолчанию
9. void __fastcall TForm1::BitmapButton7Click(
Функция вывода выходных параметров четырёхполюсника
10. void __fastcall TForm1::ColorButton6Click(
Функция вывода выходных параметров четырёхполюсника по умолчанию
11. void __fastcall TForm1::ColorButton7Click(
Функция для вывода графиков четырёхполюсника
UNIT1.CPP
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Unit7.h"
#include "Unit8.h"
#include "Unit9.h"
//#include <parametru.h>;
//----------------------------
#pragma package(smart_init)
#pragma link "BitmapButton"
#pragma link "ColorButton"
#pragma link "AdvProgressBar"
#pragma link "GradientLabel"
#pragma link "AdvPageControl"
#pragma resource "*.dfm"
#include <IniFiles.hpp>
#include <bass.h>
#include <math.h>
#include <System.hpp>
//#include <jpeg.hpp>
//#include<complex>
HSTREAM chan;
HSAMPLE samp;
TForm1 *Form1;
//----------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//----------------------------
//Забивание значений в ini файлы;
char WinDirChar[255];
GetWindowsDirectory(
String IniFile = (String)WinDirChar +"\\INIin1.ini";
if (FileExists(IniFile))
{
TIniFile *Ini = new TIniFile(IniFile);
//Для асинхронных двигателей;
Edit1->Text = Ini->ReadString("Edits","
Edit2->Text = Ini->ReadString("Edits","
Edit8->Text = Ini->ReadString("Edits","
Edit9->Text = Ini->ReadString("Edits","
Edit10->Text = Ini->ReadString("Edits","
//Для МПТ в режиме генератора;
Edit11->Text = Ini->ReadString("Edits","
Edit12->Text = Ini->ReadString("Edits","
Edit13->Text = Ini->ReadString("Edits","
Edit14->Text = Ini->ReadString("Edits","
Edit15->Text = Ini->ReadString("Edits","
//Для МПТ в режиме двигателя;
Edit21->Text = Ini->ReadString("Edits","
Edit22->Text = Ini->ReadString("Edits","
Edit23->Text = Ini->ReadString("Edits","
Edit24->Text = Ini->ReadString("Edits","
Edit25->Text = Ini->ReadString("Edits","
//Для четырехполюсников;
Edit31->Text = Ini->ReadString("Edits","
Edit32->Text = Ini->ReadString("Edits","
Edit33->Text = Ini->ReadString("Edits","
Edit34->Text = Ini->ReadString("Edits","
// Для самой формы;
Form1->Left = Ini->ReadInteger("Position","
Form1->Top = Ini->ReadInteger("Position","
Form1->Height = Ini->ReadInteger("Size","
Form1->Width = Ini->ReadInteger("Size","
}
//К заданию асинхроные двигатели таблица;
TStringList *list = new TStringList;
list->LoadFromFile("d://1.txt"
for(int i=0;i<list->Count;i++)
{
StringGrid1->Rows[i]->
StringGrid1->Rows[i]->
}
//
проверка корректности
if (HIWORD(BASS_GetVersion()) != BASSVERSION)
{
Application->MessageBoxA(0,"Не корректная версия BASS.DLL",MB_ICONERROR);
}
else
return ;
//Инициализвция аудио - по умолчанию ,44100 hz,stereo 16 bits;
if (!BASS_Init( -1,44100, BASS_DEVICE_3D,0,NULL))
{
Application->MessageBoxA(0,"
}
BASS_ChannelGetData(chan,fft,
}
//----------------------------
void
__fastcall TForm1::BitmapButton1Click(
{
//Освобождаем объекты перед закрытием;
BASS_Stop();//останавливаем проигрывание;
BASS_StreamFree(chan);//
BASS_Free();//освобождаем ресурсы используемые BASS;
Close();
}
//----------------------------
void
__fastcall TForm1::Image1MouseDown(
TMouseButton Button, TShiftState Shift, int X, int Y)
{
//Передвижение картинки по экрану;
const int SC_DRAGMOVE = 0xF012;
if (WindowState!=wsMaximized)
{
ReleaseCapture();
Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
}
}
//----------------------------
void
__fastcall TForm1::BitmapButton2Click(
{
flag==0;
povtor=0;
if(flag==2)
{
povtor=1;
//
BASS_ChannelSetPosition(chan,
BASS_ChannelPlay(chan,FALSE);
flag=1;
}
else
{
if
(OpenDialog1->Execute())//
{
//povtor++;
if(povtor==2)
{
ShowMessage("Вы не можете два раза подряд нажимать плей!!!");
}
AnsiString
b=OpenDialog1->FileName;//
char *a=b.c_str();//переводим тип AnsiString в char
//создаем поток для нашего MP3 файла
chan=BASS_StreamCreateFile(
//Запускаем звучание песни
BASS_ChannelPlay(chan,FALSE);
povtor++;
}
}
flag=1;
}
//----------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
BASS_Init( -1,44100, BASS_DEVICE_3D,0,NULL);
}
//----------------------------
void
__fastcall TForm1::BitmapButton4Click(
{
if(flag==1)
{
BASS_ChannelPause(chan);
flag=2;
}
else
ShowMessage("Нажмите Play!!!");
//return;
}
//----------------------------
void
__fastcall TForm1::BitmapButton3Click(
{
if(flag==1)
{
BASS_ChannelStop(chan); // останавливаем звучание
BASS_StreamFree(chan); // освобождаем ресурсы
flag=1;
}
else
ShowMessage("Нажмите Play!!!");
//return;
}
//----------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
Информация о работе Современные методы программирования и теоретические основы электротехники