1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án nghiên cứu thiết kế hệ thống điều khiển số động cơ không đồng bộ 3 pha

66 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 1,01 MB

Nội dung

Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha MỤC LỤC LỜI MỞ ĐẦU………………………………………………………….…… CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB PHA ………………………… …………………… GIỚI THIỆU HỆ THỐNG ĐIỀU KHIỂN SỐ ĐCKĐB PHA… 1.1 1.2 S đồ cấu trúc thống điều khiển số ……………………… Các phƣơng pháp điều khiển động không đồng … 1.2.1 P hƣơng pháp điều chỉnh điện áp ĐCKĐB pha ( giữ nguyên tần số) Đ 1.2.2 iều chỉnh tốc độ ĐCKĐB điều chỉnh điện trở mạch roto …….… 1.2.3 P hƣơng pháp điều chỉnh tần số ……………………………………… ….8 PHÂN TÍCH HỆ THỐNG ĐIỀU KHIỂN SỐ.………… … … 12 2.1 H àm truyền đạt phƣơng trình trạng thài đối tƣợng……………… … 12 2.2 K iểm tra tính điều khiển đƣợc tính quan sát đƣợc đối tƣợng….… 13 2.3 X ét ổn định đối tƣợng…………………………………………….… 14 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha 2.4 X ét ổn định hệ thống kín chua có điều khiển……………… 14 2.5 Q trình q độ hệ thống kín chua có điều khiển……….… 15 2.6 S o sánh kết với Matlab / Simulink……………………………………18 TỔNG HỢP HỆ THỐNG………………………… …………… 20 3.1 T hợp hệ thống dung điều khiển PID………………………… …20 3.1.1 Bộ điều khiển PID việc tìm thơng số cho điều khiển PID… 20 3.1.2 Chọn thông số cho điều khiển PID……………………………………22 3.2 Tổng hợp hệ thống dung hồi tiếp trạng thái……………………… ….….26 3.2.1.Nhắc lại mơ hình đối tƣợng………………………………… … 26 3.2.2.Các phƣơng pháp tìm hồi tiếp trạng thái………………………… 27 3.2.3 Phƣơng pháp chọn điểm cực Bassel…………………………… … 28 3.2.4 Xây dựng ƣớc lƣợng trạng thái ( quan sát trạng thái ) … … …29 3.2.5 Tổng hợp hế thống dung hồi tiếp trạng thái………………………… ….31 3.2.6 So sánh hai điều khiển tìm đƣợc………………………………… … 36 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha CHƯƠNG II THIẾT KẾ PHẦN CỨNG HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB PHA… 37 SƠ ĐỒ KHỐI VẦ Ý TƢỞNG THIẾT KẾ …….…………….… 37 Ơ ĐỒ MẠCH GÉP NỐI VÀO / RA S ………….……………… 40 G IẢI THÍCH SƠ ĐỒ MẠCH NGUYÊN LÝ……………… 40 CHƯƠNG III THIẾT KẾ PHẦN MỀM HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB PHA …………… ………………… 46 PHƢƠNG THÌNH SAI PHÂN CỦA BỘ ĐIỀU KHIỂN……… 46 P HƢƠNG ÁN XÂY DỰNG CHƢƠNG TRÌNH ĐIỀU KHIỂN 47 CHỌN CƠNG CỤ LẬP TRÌNH………………………………….…48 Mà NGUỒN CHƢƠNG TRÌNH…………………………… ….…48 KẾT LUẬN………………………………………………….…………….… 65 TÀI LIỆU THAM KHẢO………………………………… ………….… 66 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha Ch-¬ng I TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB PHA GIỚI THIỆU HỆ THỐNG ĐIỀU KHIỂN SỐ ĐCKĐB PHA 1.1 Sơ đồ cấu trúc hệ thống điều khiển số Các hệ thống điều khiển máy tính (điều khiển số) ngày đ-ợc sử dụng rộng rÃi công nghiệp Chúng đóng vai trò quan trọng việc điều khiển trình công nghệ, nơi đòi hỏi kết hợp máy tính với cấu chấp hành để thực loạt nhiệm vụ khác Việc sử dụng máy tính số nh- thiết bị bù (compensator) hay thiết bị điều khiển (controller) đà phát triển suốt hai thập kỷ qua hiệu độ tin cậy ngày cao Hình d-ới ví dụ cho sơ đồ khối hệ thống điều khiển số mạch đơn Máy tính số hệ thống có nhiệm vụ nhận sai khác tín hiệu đặt với tín hiệu phản hồi dạng số thực việc tính toán để đ-a tín hiệu điều khiển dạng số Máy tính đ-ợc lập trình để với đầu đó, chất l-ợng hệ thống đạt đ-ợc gần đạt đ-ợc chất l-ợng mong muốn Nhiều máy tính nhận thao tác với số đầu vào, hệ thống ®iỊu khiĨn sè th-êng cã thĨ lµ mét hƯ thèng đa biến Máy tính nhận xử lý tín hiệu dạng số, trái ng-ợc với tín hiệu liên tơc Mét hƯ thèng ®iỊu khiĨn sè sư dơng tÝn hiệu số máy tính để điều khiển trình Do số liệu đo đ-ợc chuyển đổi từ dạng t-ơng tự sang dạng số biến ®ỉi t-¬ng tù - sè (ADC - Analog to Digital Converter) nh- đ-ợc hình Sau xử lý đầu vào, máy tính đ-a đầu dạng số sau tín hiệu đ-ợc chuyển đổi sang dạng t-ơng tự nhờ biến ®ỉi sè - t-¬ng tù (DAC - Digital to Analog Converter) Reference Input (digital) Output (analog) Digital computer (digital) DAC (digital) (analog) Actuator (analog) ADC Sensors H×nh 1: VÝ dơ sơ đồ khối hệ thống điều khiển sè Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha Mét c¸ch tỉng quát, ta có sơ đồ khối hệ thống điều khiển số (HTĐKS) nh- hình Interface out Power Amplifier Object Interface in PreAmplifier Sensor PC Hình 2: Sơ đồ khối tổng quát hệ thống điều khiển 1.2 Các ph-ơng pháp điều khiển động cơsố không đồng ba pha Động không đồng (ĐCKĐB) ba pha đ-ợc sư dơng réng r·i c«ng nghiƯp, tõ c«ng st nhỏ đến công suất trung bình chiếm tỷ lệ lớn so với động khác Ưu điểm dễ chế tạo, vận hành an toàn, sử dụng nguồn áp trực tiếp từ l-ới điện xoay chiều pha Tuy nhiên, tr-ớc đây, hệ thống truyền động ĐCKĐB có điều chỉnh tốc độ lại chiếm tû lƯ rÊt nhá viƯc ®iỊu chØnh tèc ®é ĐCKĐB khó khăn ĐC chiều Trong thời gian gần đây, việc phát triển mạnh công nghiệp chế tạo bán dẫn công suất kỹ thuật điện tử tin học, ĐCKĐB khai thác đ-ợc -u điểm dần có xu h-ớng thay cho ĐC chiều hệ truyền động Để điều chỉnh tốc độ ĐCKĐB pha, tr-ớc hết ta viết lại ph-ơng trình đặc tính : 3U12 R2 M (1) s R1 R2 s X nm ®ã : _tèc ®é gãc cđa tõ tr-êng quay ff p víi f _ tÇn số điện áp stator p _ số đôi cực từ U _ trị số hiệu dụng điện áp pha stator R1 _ điện trở cuộn dây stator R2' _ ®iƯn trë rotor ®· quy ®ỉi vỊ stator X nm _ điện kháng ngắn mạch s_ hệ số tr-ợt động Nghiờn cu, thit k hệ thống điều khiển số cho động KĐB pha s với tốc độ góc động Ph-ơng trình (1) cho thấy M=f(s) phụ thuộc vào đại l-ợng U 1, 1, R2 T-ơng ứng với đại l-ợng ta có ph-ơng pháp điều chỉnh điện áp động cơ, ph-ơng pháp điều chỉnh điện trở mạch rotor ph-ơng pháp điều chỉnh tần số Sau xem xét lần l-ợt ph-ơng pháp ý t-ởng thực chúng HTĐKS 1.2.1 Ph-ơng pháp điều chỉnh điện áp ĐCKĐB ba pha (giữ nguyên tần số) Nh- đà trình bày phần trên, momen ĐCKĐB ba pha tỷ lệ với bình ph-ơng điện áp đặt lên stator Điều có nghĩa thay đổi điện áp stator mô men động thay đổi bình ph-ơng lần Dựa vào điều khiển đ-ợc tốc độ ĐCKĐB ba pha Sơ đồ khối nguyên lí đặc tính điều chỉnh ph-ơng pháp đ-ợc hình a) b) Ul,fl ĐAXCC fl ®ttn,U®m,Rf=0 U®k ®tgh,U®m,Rf Ub sth Rf Ub2 Ub1 Mc Mth M Hình 3: Điều chỉnh điện áp ĐCKĐB: a) Sơ đồ khối nguyên lý b) Đặc tính điều chỉnh Để điều chỉnh điện áp ĐCKĐB, phải dùng biến đổi điện áp xoay chiều Bộ biến ®ỉi ®iƯn ¸p xoay chiỊu phỉ biÕn nhÊt hiƯn sử dụng van bán dẫn có cực điều khiển (hình 4) Bằng cách thay đổi tín hiệu điều khiển đóng mở van bán dẫn, ta điều chỉnh đ-ợc điện áp stator, từ thay đổi đ-ợc tốc độ động Việc phát xung điều khiển hoàn toàn thực đ-ợc máy tÝnh TÝn hiƯu tõ vi xư lý qua c¸c bé biÕn ®ỉi Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha cã thÓ ®-a tíi khèi ®iỊu khiĨn Thyristor §ång thêi tÝn hiƯu phản hồi dòng phản hồi tốc độ động đ-ợc đ-a vi xử lý thông qua biến đổi để vi xử lý tính toán đ-a tín hiệu điều khiển Hình sau minh hoạ cho diễn giải Hình 4: ĐAXC dùng van bán dẫn ĐAXC Data Buffer Latch ADC Mạch giải mà Latch DAC > VXL KĐ BĐ Hình 5: Sơ đồ khối ph-ơng pháp điều chỉnh điện áp stator Nghiên cứu, thiết kế hệ thống điều khiển số cho ng c KB pha Ph-ơng pháp điều chỉnh điện áp stator có nh-ợc điểm gây tổn thất l-ợng, điện áp không sin sinh dòng Fucô làm nóng động 1.2.2 Điều chỉnh tốc độ động không đồng điều chỉnh điện trở mạch rotor a Sơ đồ mạch nguyên lý b Nguyên lý điều chỉnh Điều chỉnh điện trở rotor ph-ơng pháp xung Khi điện áp đ-ợc chỉnh l-u cầu diode, đ-ợc cấp vào mạch điều chØnh gåm cã ®iƯn trë R0 nèi song song víi khoá bán dẫn T1 Khoá đ-ợc đóng cắt theo chu kỳ để điều chỉnh giá trị trung bình điện trở toàn mạch c Ph-ơng pháp điều chỉnh Khi khoá T1 đóng, điện trở R0 bị loại khỏi mạch, dòng rotor tăng lên, khoá T1 mở điện trở R0 lại đ-ợc đ-a vào mạch, dòng điện rotor giảm Nhờ có điện cảm L mà dòng rotor coi nh- không đổi Với tần số đóng ngắt định, ta có giá trị điện trở t-ơng đ-ơng R e mạch 10 Nghiờn cu, thit k hệ thống điều khiển số cho động KĐB pha Ph-ơng pháp điều chỉnh rõ ràng áp dụng đ-ợc với động không đồng rotor dây quấn, động không đồng rotor lồng sóc đ-ợc dùng phổ biến cấu tạo đơn giản, độ tin cậy cao không cần bảo d-ỡng Vì ta không cần quan tâm đến ph-ơng pháp 1.2.3 Ph-ơng pháp điều chỉnh tần số Ph-ơng pháp điều chỉnh điện áp stator điều chỉnh điện trở rotor áp dụng chủ yếu cho việc điều khiển ĐCKĐB ba pha rotor dây quấn Việc điều khiển ĐCKĐB pha rotor lồng sóc tr-ớc khó thực Ngày nay, phát triển mạnh mẽ điện tử công suất lớn kỹ thuật vi xử lý đà mở khả ứng dụng có hiệu ph-ơng pháp điều khiển động lồng sóc thiết bị biến tần Ph-ơng pháp cho phép điều chỉnh tốc độ động phạm vi rộng với độ xác cao Khi điều chỉnh tần số, để trì chế độ làm việc tốt nhất, phải điều chỉnh điện áp stator Đối với hệ thống biến tần nguồn áp th-ờng có yêu cầu giữ cho khả tải momen không đổi: M th M const đó: _ hệ số tải mô men Mth _ mô men tới hạn Với đặc tính dạng gần máy sản xuất : 11 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha x Mc M dm dm Mc _ mô men ứng với tốc độ Mdm _ mô men ứng với tốc độ định mức x_ hệ số tuỳ thuộc vào loại máy sản xuất dm Ta có luật điều chỉnh điện áp : U1 U 1dm f1 x f 1dm hay ë d¹ng đơn vị không tên: u1 f1 x Sơ đồ khối nguyên lý đặc tính đ-ợc cho h×nh d-íi Udm , fdm 0dm U,f Mc M Mth Mthdm FG _ máy phát hàm Ru _ điều chỉnh điện áp Rf _ điều chỉnh tần số ta xét đến biến tần nguồn áp làm việc theo nguyên lý điều chÕ ®é réng xung (PWM –Pulse Width Modulation) Bé biÕn tần cho phép điều chỉnh đồng thời tần số điện áp Mặt khác, tạo đ-ợc điện áp dòng điện gần nh- hình sin (h×nh 6) 12 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha TButton *SetNewSpeed; void fastcall FormCreate(TObject *Sender); void fastcall btnAboutClick(TObject *Sender); void fastcall btnExitClick(TObject *Sender); void fastcall FormDestroy(TObject *Sender); void fastcall btnControlClick(TObject *Sender); void fastcall timSpeedUpdateTimer(TObject *Sender); void fastcall PControllerClick(TObject *Sender); void fastcall btnDefaultClick(TObject *Sender); void fastcall btnSettingsClick(TObject *Sender); void fastcall SetNewSpeedClick(TObject *Sender); private: TControlThread *CtrlThread; public: // User declarations TGraphScope *SpeedScope; fastcall TfrmMain(TComponent* Owner); void fastcall ChangeControlState(); fastcall ~TfrmMain(); protected: }; // extern PACKAGE TfrmMain *frmMain; #endif File UMain.cpp // #include #pragma hdrstop #include #include #include #include #include #include "UMain.h" "UAbout.h" "common.h" "USettings.h" // #pragma package(smart_init) #pragma resource "*.dfm" TfrmMain *frmMain; 54 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha // fastcall TfrmMain::TfrmMain(TComponent* Owner) : TForm(Owner) { ::randomize(); ThreadProtect = new TCriticalSection; } // void fastcall TfrmMain::FormCreate(TObject *Sender) { btnDefault->Caption = "D\nE\nF\nA\nU\nL\nT"; SpeedScope = new TGraphScope(this); SpeedScope->Parent = pnlGraph; SpeedScope->Align = alClient; } // void fastcall TfrmMain::btnAboutClick(TObject *Sender) { AboutBox->Show(); } // -void fastcall TfrmMain::btnExitClick(TObject *Sender) { if (bControlling) { CtrlThread->Terminate(); timSpeedUpdate->Enabled = false; lblTitle->Caption = "Terminating "; Cursor = crHourGlass; CtrlThread->WaitFor(); } Close(); } // void fastcall TfrmMain::FormDestroy(TObject *Sender) { delete SpeedScope; } 55 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha // void fastcall TfrmMain::ChangeControlState() { if (!bControlling) btnControl->Caption = "&Control"; else btnControl->Caption = "Stop &Control"; btnControl->Enabled = true; } void fastcall TfrmMain::btnControlClick(TObject *Sender) { if (bControlling) { CtrlThread->Terminate(); timSpeedUpdate->Enabled = false; pnlParams->Enabled = true; btnSettings->Enabled = true; btnDefault->Enabled = true; } else { SpeedScope->NumValue = 0; SpeedScope->AddValue(0.0, 0.0); Kp = StrToFloat(KpEdit->Text); Ki = StrToFloat(TiEdit->Text); Kd = StrToFloat(TdEdit->Text); CtrlThread = new TControlThread(false); StartControlTime = time(NULL); timSpeedUpdate->Enabled = true; pnlParams->Enabled = false; btnSettings->Enabled = false; btnDefault->Enabled = false; } btnControl->Enabled = false; } // void fastcall TfrmMain::timSpeedUpdateTimer(TObject *Sender) { double myspeed; 56 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha ThreadProtect->Acquire(); myspeed = dSpeed; ThreadProtect->Release(); SpeedScope->AddValue(difftime(time(NULL), StartControlTime), myspeed); curSpeed->Caption = FloatToStr(dSpeed); } // fastcall TfrmMain::~TfrmMain() { delete ThreadProtect; } void fastcall TfrmMain::PControllerClick(TObject *Sender) { TiEdit->Enabled = false; TdEdit->Enabled = false; if (PIDController->Checked || PIController->Checked) TiEdit->Enabled = true; if (PIDController->Checked || PDController->Checked) TdEdit->Enabled = true; } // void fastcall TfrmMain::btnDefaultClick(TObject *Sender) { if (PIDController->Checked) { KpEdit->Text = "0.01767"; TiEdit->Text = "0.15"; TdEdit->Text = "0.00026"; } else if (PIController->Checked) { KpEdit->Text = "1"; TiEdit->Text = "0.1"; } else if (PDController->Checked) { KpEdit->Text = "1"; 57 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha TdEdit->Text = "0.01"; } else KpEdit->Text = "1"; } // void fastcall TfrmMain::btnSettingsClick(TObject *Sender) { if (dlgSettings->ShowModal() == mrOk) { NumPulse = StrToInt(dlgSettings->EncNumPulse->Text); TSamp = dlgSettings->SampTime->Value / 1000.0; } } // void fastcall TfrmMain::SetNewSpeedClick(TObject *Sender) { AnsiString value; double newSpeed, oldSpeed; ThreadProtect->Acquire(); oldSpeed = desSpeed; ThreadProtect->Release(); value = FloatToStr(oldSpeed); if (InputQuery("Set Desired Speed", "Enter the desired speed", value)) { newSpeed = StrToFloat(value); if (newSpeed >= && newSpeed Acquire(); desSpeed = newSpeed; ThreadProtect->Release(); desiredSpeed->Caption = FloatToStr(newSpeed); } } } 58 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha c Module cđa hép tho¹i About: File UAbout.h #ifndef UAboutH #define UAboutH // #include #include #include #include #include #include #include #include #include #include // class TAboutBox : public TForm { published: TPanel *Panel1; TLabel *ProductName; TLabel *Copyright; TButton *OKButton; TMemo *Memo1; TLabel *Notice; void fastcall FormClose(TObject *Sender, TCloseAction &Action); void fastcall OKButtonClick(TObject *Sender); private: public: virtual fastcall TAboutBox(TComponent* AOwner); }; // extern PACKAGE TAboutBox *AboutBox; // #endif File UAbout.cpp // 59 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha -#include #pragma hdrstop #include "UAbout.h" // #pragma resource "*.dfm" TAboutBox *AboutBox; // fastcall TAboutBox::TAboutBox(TComponent* AOwner) : TForm(AOwner) { } // void fastcall TAboutBox::FormClose(TObject *Sender, TCloseAction &Action) { Action = caHide; } // void fastcall TAboutBox::OKButtonClick(TObject *Sender) { Close(); } // - d Module chøa Thread Class ®iỊu khiĨn: File UControl.h // #ifndef UControlH #define UControlH // 60 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha -#include #include "GraphScope.h" // class TControlThread : public TThread { private: int64 SmplCnt; //Sampling Time Count Value protected: void fastcall Execute(); void fastcall RunWhenTerminate(TObject *Sender); void fastcall ChangebControlling(); public: fastcall TControlThread(bool CreateSuspended); }; // #endif File UControl.cpp // #include #pragma hdrstop #include #include #include #include "UControl.h" "common.h" "UMain.h" #pragma package(smart_init) // // Important: Methods and properties of objects in VCL can only // be // used in a method called using Synchronize, for example: // // Synchronize(UpdateCaption); // 61 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha // where UpdateCaption could look like: // // void fastcall Unit1::UpdateCaption() // { // Form1->Caption = "Updated in a thread"; // } // fastcall TControlThread::TControlThread(bool CreateSuspended) : TThread(CreateSuspended) { Priority = tpHighest; FreeOnTerminate = true; OnTerminate = RunWhenTerminate; //Khoi tao phan cung //So dem cho 8254 unsigned short int Count8254 = TSamp * 20000; asm { MOV DX, 0x313 MOV AL, 0xB6 OUT DX, AL MOV MOV OUT DX, 0x312 AX, Count8254 DX, AL XCHG AH, AL OUT DX, AL //Counter0: mode 2, 16bit, value=FFFF MOV DX, 0x313 MOV AL, 0x34 OUT DX, AL MOV DX, 0x310 MOV AL, 0xFF OUT DX, AL NOP //delay OUT DX, AL //Counter1: mode 2, 16bit, value=FFFF MOV DX, 0x313 MOV AL, 0x74 OUT DX, AL MOV DX, 0x311 62 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha MOV OUT NOP OUT AL, 0xFF DX, AL //delay DX, AL } } // void fastcall TControlThread::Execute() { double u_old, e_old[2]; double y, w, u, e; double A,B,C; Synchronize(ChangebControlling); u_old = 0.0; e_old[0] = e_old[1] = 0.0; A = (Ki*TSamp*TSamp + 2*Kd + 2*Kp*TSamp)/2/TSamp; B = (Ki*TSamp*TSamp - 2*Kp*TSamp - 4*Kd)/2/TSamp; C = Kd/TSamp; _LARGE_INTEGER freq; if (!(::QueryPerformanceFrequency(&freq))) { MessageDlg("No high-accuracy timer found.", mtError, TMsgDlgButtons() Acquire(); dSpeed = y; w = desSpeed; ThreadProtect->Release(); //Thuat toan dieu khien e = w - y; u = u_old + A*e + B*e_old[0] + C*e_old[1]; //Va xuat tin hieu dieu khien u_dk = u*heso_u; asm { MOV DX, 0x314 MOV AL, u_dk OUT DX, AL } 64 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha u_old = u; e_old[1] = e_old[0]; e_old[0] = e; lastTime = curTime; } } // void fastcall TControlThread::RunWhenTerminate(TObject *Sender) { Synchronize(ChangebControlling); } void fastcall TControlThread::ChangebControlling() { bControlling = !bControlling; frmMain->ChangeControlState(); } e Module cđa hép tho¹i Settings: File USettings.h // #ifndef USettingsH #define USettingsH // #include #include #include #include #include #include #include #include #include #include #include "CSPIN.h" // class TdlgSettings : public TForm 65 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha { published: TButton *OKBtn; TButton *CancelBtn; TGroupBox *GroupBox1; TLabel *Label1; TEdit *EncNumPulse; TButton *Button1; TGroupBox *GroupBox2; TLabel *Label4; TCSpinEdit *SampTime; TButton *Button2; void fastcall Button1Click(TObject *Sender); void fastcall Button2Click(TObject *Sender); private: public: virtual fastcall TdlgSettings(TComponent* AOwner); }; // extern PACKAGE TdlgSettings *dlgSettings; // #endif File USettings.cpp // #include #pragma hdrstop #include "USettings.h" // #pragma link "CSPIN" #pragma resource "*.dfm" TdlgSettings *dlgSettings; // fastcall TdlgSettings::TdlgSettings(TComponent* AOwner) : TForm(AOwner) { } 66 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha // void fastcall TdlgSettings::Button1Click(TObject *Sender) { EncNumPulse->Text = "2000"; } // void fastcall TdlgSettings::Button2Click(TObject *Sender) { SampTime->Value = 5; } // f Module chứa định nghĩa biến chung: File common.h #ifndef COMMONH #define COMMONH #include #include //bControlling: is the computer controlling the Motor ? extern bool bControlling; //dSpeed: current speed (rpm) extern double dSpeed; //StartControlTime: the time at which controlling starts extern time_t StartControlTime; //ThreadProtect: protect thread crisis extern TCriticalSection *ThreadProtect; //NumPulse: Number of Pulse per Rotate extern unsigned int NumPulse; //TSamp: Sampling Time extern double TSamp; //desSpeed: desired speed extern double desSpeed; //Kp, Ki, Kd: parameters of PID controller extern double Kp, Ki, Kd; #endif COMMONH 67 Nghiên cứu, thiết kế hệ thống điều khiển số cho động KĐB pha File common.cpp #include "common.h" bool bControlling = false; double dSpeed = 0.0; double desSpeed = 0.0; //desired speed time_t StartControlTime; TCriticalSection *ThreadProtect; unsigned int NumPulse = 2000; double TSamp = 0.005; double Kp, Ki, Kd; 68

Ngày đăng: 27/06/2023, 22:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w