1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo Sử dụng công cụ MATLAB simulink để mô phỏng máy điện đồng bộ ở chế độ máy phát

14 1,2K 10

Đ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 14
Dung lượng 5,8 MB

Nội dung

Đề tài: ‘Sử dụng công cụ MATLAB + Simulink để mô phỏng máy điện đồng bộ ở chế độ máy phát” Nội dung • Tìm hiểu chung về thiết bị phát điện chạy bằng sức gió, đặc biệt là loại thiết bị sử dụng máy điện đồng bộ kích thích vĩnh cửu • Tìm hiểu các phương pháp thực hiện khối (Block) trên nền MATLAB + Simulink • Tìm hiều phát hiện và sửa lỗi của mô hình động cơ đồng bộ kích thích vĩnh cửu (do sinh viên khoá trước thực hiện) Trên cơ sở đó tạo mô hình riêng để sử dụng ở chế độ máy phát

Trang 1

Báo cáo thực tập

Đề tài: ‘Sử dụng công cụ MATLAB + Simulink để mô phỏng máy điện đồng bộ ở chế độ máy phát”

Nội dung

loại thiết bị sử dụng máy điện đồng bộ kích thích vĩnh cửu

+ Simulink

vĩnh cửu (do sinh viên khoá trước thực hiện) Trên cơ sở đó tạo mô hình riêng để sử dụng ở chế độ máy phát

I.Tìm hiểu chung về thiết bị phát điện bằng sức gió

1 Lời mở đầu

Theo thời gian, những nguồn năng lượng truyền thống sẽ ngày càng hạn hẹp và có nguy cơ cạn kiệt Mặt khác phần lớn nững nguồn năng lượng đó gây ô nhiễm môi trường và tạo hiệu ứng nhà kính Chính

Trang 2

vì thế loài người phải tìm ra những nguồn năng lượng mới để phục vụ cho nhu cầu phát triển của mình Những nguồn năng lượng mới như địa nhiệt, năng lượng sóng, năng lượng mặt trời, năng lượng gió… vừa rẻ lại vừa sạch sẽ đáp ứng được những yêu cầu đó Trong đó năng lượng gió rất lớn đồng thời lại rất thuận lợi trong việc ứng dụng Sở dĩ nói như vậy

vì việc đầu tư nhỏ, thuận tiện trong lắp đặt, hơn nữa lại rất thiết thực cho những địa bàn như vùng sâu, vùng xa, hải đảo… những nơi nhiều gió mà việc truyền tải năng lượng gặp nhiều khó khăn

Với ý tưởng đó tôi đã tìm hiểu nghiên cứu đề tài “Điều khiển máy phát điện chạy bắng sức gió sử dụng động cơ đồng bộ kích thích vĩnh cửu”

2 Tổng quan về máy phát điện chạy bằng sức gió

Nguyên lý chung của máy phát điện là biến đổi các dạng năng lượng khác thành năng lượng điện Máy phát điện chạy bằng sức gió cũng tuân theo nguyên lý chung đó Hiện nay trên thế giới đã có nhiều nơi sử dụng máy phát điện chạy bằng sức gió hoặc sử dụng động cơ di bộ nguồn kép hoặc sử dụng đồng bộ kích thích vĩnh cửu, động cơ đồng bộ rôto dây quấn Tuỳ theo từng vùng, điều kiện mà có thể sử dụng loại nào cho phù hợp Dải công suất của loại máy này là rất rộng, từ vài kw đến vài trăm kw, hiện nay với loại động cơ đồng bộ kích thích vĩnh cửu có thể lên tới 600kw

Hình1: Cấu trúc chung của hệ thống điều khiển máy phát điện

chạy bằng sức gió

Gió làm quay cánh quạt, qua trục quay gắn với Rotor làm Rotor quay Rotor quay tạo ra từ trường quay, từ trường này chuyển động tương đối so với các cuộn dây Stator làm xuất hiện trong chúng sức điện động cảm ứng Sức điện động cảm ứng này có tần số và biên độ hoàn toàn phụ thuộc vào tốc độ quay của Rotor tức là hoàn toàn phụ thuộc vào sức gió Do đó ở các đầu dây cuộn Stator ta thu được dòng điện ba pha có tần số và biên độ không ổn định

G

3 ~

3 ~

=

Filter

Trang 3

bảo được chất lượng điện tức là phải đảm bảo được tần số, biên độ và góc pha.

Vì vậy ta phải đưa dòng điện ở đầu ra của máy phát qua bộ phận chỉnh lưu Đầu

ra của chỉnh lưu đưa vào bộ phận nghịch lưu Tại bộ phận nghịch lưu ta dùng

muốn Tuy nhiên dòng điện này vẫn tồn tại nhiễu, do đó cần phải có bộ lọc để triệt tiêu chúng Nếu hoà vào lưới ta cần thêm khâu đồng bộ hoá nhằm tránh xung đột

Để hiểu rõ hơn nguyên tắc điều khiển hệ thống theo mô hình 1 ta có thể chia mô hình đó làm hai phần:

toán như hình vẽ, thuật toán này có nhiệm vụ điều chỉnh điện trên tụ luôn ổn định

UMC

Usd Usα tu

i*sd = 0

Usq Usβ tv

tw

i*sq

isd

is α

isq is β

sau

S M

=

3 ∼

2

3

dq

αβ

§C VT KG dq

αβ

Kh©u

®iÒu chØnh dßng -1

or +1

Trang 4

RL LL

UMC

Như vậy nhiệm vụ chính của đề tài này là xây dựng thuật toán điều khiển khâu nghịch lưu để tạo ra điện áp XCBP có tần số, biên độ và góc pha sao cho hoà được vào lưới điện sử dụng Thuật toán này được thực hiện trên cơ sở “phương pháp điều chế vector không gian” sử dụng vi điều khiển điều khiển các van bán dẫn Các van bán dẫn sử dụng chủ yếu ở đây là các transistor (IBGT, MOSFET) Biến tần được nuôi bởi điện áp một chiều UMC hoạt động theo kiểu cắt xung với tần số cắt cao

II Tìm hiểu các phương pháp thực hiện khối (Block) mới trên nền Matlab + Simulink :

1 Các bước cần thiết để tạo một block mới:

- Tạo mét S –function dưới dạng mô hình đồ họa SIMULINK hay mét M – file, Mex- file

- Biến đổi S –function thành khối

- Thực hiện thao tác masking cho S –function block để tạo cho nó biểu tượng, hộp hội thoại và các lệnh của khối

Tiếp theo, chọn sơ đồ vừa tạo dùng lệnh Ctrl+G (hoặc kích vào thanh Creat Subsystem trên menu Edit) để tạo nó thành một subsystem, dùng lệnh Edit Mask để thực hiện thao tác masking cho subsystem vừa tạo.Các trang của hộp hội thoại Edit Mask lần lượt được khai báo theo các hình dưới đây:

- Icon page là trang cho phép ta tạo biểu tượng cho khối mô phỏng Tuy khả năng đồ họa của Matlab là rất phong phó song các lệnh cho phép để vẽ biểu tượng cho khối trong Edit Mask rất hạn chế (chỉ có một vài lệnh là plot, disp, text, fprintf, dpoly, droots) nên các biểu tượng chỉ nên vẽ đơn giản và mang tính đặc trưng cho khối mô phỏng

3∼

=

Trang 5

Hình 2: Khai báo trên trang icon page của Edit Mask Cần nói thêm về toạ độ mặc định của khung vẽ: nếu coi khung vẽ là một hình vuông thì góc dưới của khung có toạ độ là (0,0) và góc trên bên phải có tọa độ

là (1,1) Điều này cần lưu ý khi sử dụng lệnh vẽ vì các điểm vẽ không thể lớn hơn 1 Có nhiều cách để định dạng khung vẽ mà người sử dụng có thể tham khảo trong các sổ tay hướng dẫn sử dụng

- Initialization Page là trang cho phép người dùng khai báo các thông số của khối cần nhập vào trước khi chạy mô phỏng Tại trường Promt nên ghi vài thuyết minh ngắn về thông số để cho người dùng biết được mình đang nhập

Trang 6

vào thông số gì và như vậy họ có thể nhập thông số theo đúng đơn vị trong trường hợp cần quan tâm

Hình 3 Khai báo trên trang Initialization page -Documentation Page: Block description là mô tả ngắn gọn nhất của khối về chức năng hàm, các thông số Mô tả này hiện ra ở phần đầu của hộp hội thoại thông số Block help là phần trợ giúp người sử dụng khi lúng túng trong việc thực hiện mô phỏng hoặc thao tác với khối Nội dung trợ giúp hiển thị chung trên nền help của Matlab + Simulink

Trang 7

Hình 4: Khai báo trên trang Documentation Sau khi thực hiện đầy đủ các thao tác trên ta sẽ thu được khối mô phỏng mới mong muốn có dạng như sau:

Hình 5: Khối mô phỏng mới Khối mô phỏng này đã hoàn thiện và có thể sử dụng như bất kì một khối nào khác của Simulink khi được ghép nối vào hệ thống Trước khi chạy mô phỏng cần kích đúp vào khối để hiện ra hộp hội thoại thông số

Trang 8

Hình 6: Phần hộp thoại thông số sau khi kích kép vào Tạo một S_function như thế nào?

S_function chính là một công cụ mạnh để người sử dụng mở rộng và phát triển các khả năng của Simulink Trong phần này tôi sẽ nói cụ thể S_function là gì, khi nào và tại sao bạn có thể sử dụng nó:

S_function là một mô tả mang tính lập trình của một hệ thống động học S_function được viết bằng ngôn ngữ Matlab hoặc C.S_function viết bằng ngôn ngữ C sẽ được dịch sang Mex_file bằng lệnh Cmex của Matlab, tất cả các mex file đều có thể kết nối động với Matlab khi cần thiết

Khi tạo một mô hình Simulink, một hàm mới có tên gọi là S_function sẽ hình thành trong Matlab Hàm này xác định đặc tính dộng học của mô hình, nó

sử dụng phương pháp tích phân, tuyến tính hoá… để xác định đặc tính động học của hệ thống Các thuộc tính của S_function cũng giống như bất kì một hàm nào khác của Matlab S_function sử dụng một cú pháp gọi đặc biệt cho phép bạn tương tác với các phương pháp giải phương trình vi phân thường (ODE solver odinari deffrential equation) Cú pháp gọi hàm của nó là:

sys= model(t,x,u,flag)

Trang 9

trong đó: model là tên của mô hình, Flag là cờ điều khiển các thông tin được trả

về trong biến sys Ví dụ như khi cờ được lập lên 1 thì sẽ trả về vi phân trạng thái trong biến sys tại thời điểm hoạt động xác định bởi thời gian t, vector trạng thái x, vector đầu vào u

Bằng việc sao chép các thuộc tính của các S_function vào trong mét M_file hoặc Mex_file ta có thể tạo một mô hình riêng mà không swr dụng trình soạn thảo sơ đồ khối Các S_function có thể được kết nối với nhau, có nghĩa là

ta có thể gắn một S_function này vào trong mét S_function khác Một khối đặc biệt được gọi là S_function Block (trong thư viện Function and Tables của Simulink) được sử dụng để gắn một S_function vào một sơ đồ khối

Một đặc điểm khác gọi là masking, cho phép định nghĩa lại một khối tại các phần bên trong hộp hội thoại của nó, biểu tượng của khối và các lệnh thi hành Bằng các khối masking S_function ta có thể tạo một lớp mới các khối Khi ta tạo một mô hình Simulink bằng cách vẽ một sơ đồ khối, Simulink sử dụng các thông tin trong sơ đồ khối để tạo ra các S_function như đã biết S_function là phần chủ yếu của Simulink Mỗi một sơ đồ khối mà ta vẽ sẽ có một S_function tương ứng cùng với một tên như tên của mô hình S_function này như một tác nhân ảnh hưởng qua lại giữa việc mô phỏng và phân tích

Tóm lại S_function đơn giản là các hàm của Matlab với một cú pháp gọi hàm đặc biệt cho phép truy cập tới phương trình động học của mô hình và chúng có các thuộc tính dưới đây:

+ Có thể tạo một mô hình tuyến tính hay phi tuyến với nhiều ngôn ngữ (Ví dụ như sơ đồ khối hay các M_file)

+ Có thể tạo ra các loại khối mới mà có thể sử dụng trong bất cứ một mô hình nào

+ Có thể viết một chương trình mô phỏng và phân tích riêng cho hệ thống của mình

3 Ví dô minh hoạ:

Mô hình liên tục của ĐCĐB có kích thích vĩnh cửu trên hệ toạ độ từ thông rotor:

So với động cơ KĐB là sự khác nhau trong việc sinh từ thông rotor Từ

của dòng stator Từ thông rotor của ĐCĐB hoặc được tạo nên bởi một cuộn kích thích biệt lập với các cuộn dây stator, hoặc bởi các phiến nam châm vĩnh cửu bố trí đều trên mặt stator, vì thế dòng stator chỉ còn chứa dòng

dụng cuộn kích thích độc lập : ĐCĐB cực lồi, ĐCĐB cực Èn Việc xây dựng mô hình điều khiển/điều chỉnh động cơ cũng khác so với ĐCKĐB, ở ĐCKĐB ta phải tìm cách ước lượng biên độ từ thông rotor, ở ĐCĐB biên độ

Trang 10

và góc pha ban đầu đã biết trước Do đặc điểm trên, hệ toạ độ dq của ĐCĐB

có thể được coi là đã xác định, điều đó cho phép áp dụng ngay một cách thuận lợi các phương pháp điều chỉnh trên hệ tọa độ dq mà không cần quan

cửu có thể thay thế trong tính toán bằng cuộn kích và dòng kích tương ứng nào đó, điều đó cho phép ta chỉ cần xét đến loại ĐCĐB có kích thích vĩnh cửu kiểu cực Èn là đủ

Hệ phương trình cơ bản của động cơ:

Phương trình điện áp stator của ĐCĐB:

dt

d

i

R

u

s s s

s

s

s

s

ψ +

=

Chuyển sang quan sát trên hệ tọa độ dq có trục thực d trùng với trục của từ thông rotor có dạng:

f s s

f s f

s

s

f

dt

d i

R

p

p

ψ .

p

f

ψ =

s

p

f p

f

s

s

f

ψ = +

để mô tả đầy đủ cần hai phương trình cơ sau đây:

-Phương trình mômen:

) (

2

3

s s

-Phương trình chuyển động:

dt

p

jd

m

m

c

T

M

ω

+

=

+Với ĐCĐB ta chỉ sử dụng phương thức mô tả toán học thu được trên cơ sở các quan sát trên hệ tọa độ dq, do luôn tồn tại một hướng xác định của từ thông rotor

Trang 11

độ góc ωs của các vector điện áp và tốc độ góc cơ học ω luôn được đảm

bảo trong mọi chế độ của động cơ, đây là ưu điểm so với truyền động cổ điển (tính đồng bộ chỉ đạt sau quá trình khởi động nhờ cuộn dây khởi động) +Khe từ giữa rotor và stator tại đỉnh cực( vị trí trục d) bé hơn rất nhiều so với khe tại vị trí trục q Điều đó dẫn đến các trị số điện cảm khác nhau khi

đo ở vị trí khác nhau của rotor

sd

sq

Đối với loại cực Èn cũng vậy: các phiến nam châm vĩnh cửu được bố trí đều đặn trên bề mặt rotor, do giá thành và công nghệ mà nhà chế tạo chỉ bố trí một lượng hữu hạn phiến, điều đó dẫn đến khe từ ở vị trí giữa phiến (vị trí đỉnh cực, vị trí trục d) bé hơn ở vị trí tiếp giáp giữa hai phiến(vị trí trục q) Tuy nhiên sự chênh lệch của loại cực Èn không lớn như loại cực lồi, kinh nghiệm thực tiễn cho thấy chất lượng truyền động được nâng lên rất nhiều nếu sự chênh lệch Êy được tính đến một cách đầy đủ

Sau khi xét sự khác biệt của điện cảm stator trên hai trục d và q ta có thể viết lại như sau:



=

+

=

sq

sq

sq

p sd

sd

sd

L

i

L

i

ψ

ψ ψ

Thay các phương trình 1 vào 2 và viết lại dưới dạng phương trình các phần

tử ta thu được:

sq sq s

sd sd sd

s

dt

di L

i

R

p s sq sq s

sq sq sq

s

dt

di L

i

R

Từ hệ phương trình trên ta có thể viết lại dưới dạng hệ phương trình trạng thái:

sd sd

sq sd

sq s sq

sd

L

i L

L i

T

dt

sq

p s sq

sq sq

sd sq

sd

s

sq

L L

i T

i L

L

dt

ω

Trong đó

s

sd sd

R L

Trang 12

[ ] 

− +

=

− +

=

=

sq sd sq sq sd sd sd

p c sq

sd sq sd sq p c

M

sd sq sq sd c

M

i i L i L i L p L

L i i i p

m

i i

p

m

) (

2

3 ) (

2

3

) (

2

3

ψ ψ

ψ ψ

s

sq

sq

R

L

T = là hằng số thời gian trục q của mạch stator.

Đến đây ta đã xây dựng xong các phương trình cần thiết để mô tả ĐCĐB

Sử dụng công cụ đồ họa Matlab Simulink ta xây dựng mô hình ĐCĐB như sau:

Từ hệ phương trình trạng thái ta có thể mô phỏng ĐCĐB bằng M_file

Nội dung M_file

Function [sys,x0,str,ts] = SMDQM(t,x,u,flag,Rs,Lsd,J,In,mN,pc)

%S -Function return isd,isq,M with 3 variable input ud,uq % and w (speed

rad/s)

%Parameter :

% Rs : Armature resistance

% Lsd : Armature inductance (d axis)

% Lsq : Armature inductance (q axis)

5 n

4

om e ga

3

m M

2

i sq

1

i sd

ab dq

ad -> dq

T sq

T sq s+1

h s

T sd

T sd s+1

s

1

In teg ra tor1

c

1 /b b

l f

m

P h ip e

d

3

2

3 -> 2

4

m T

3

usw

2

u sv

1

usu

Trang 13

% mN : Normal moment

%

Tsd=Lsd/Rs; % Stator time constant (d axis)

Tsq=Lsq/Rs; % Stator time constant (q axis)

IsqN=sqrt(2)*In; % Nornal current Isq

Fip=(2/3)*(mN/(pc*IsqN)); % flux

% Dispatch the flag The switch function controls the calls

% to S-function routines at each simulation stage, switch flag

% Initialization

case 0

[sys,x0,str,ts] = mdlInitializeSizes(t,x,u);

case 1

% Calculate state derivatives

sys = mdlDerivatives(t,x,u,Rs,Lsd,Lsq,J,In,mN,pc,Tsd,Tsq,Fip); case 3

% Calculate outputs

sys = mdlOutputs(t,x,u,Rs,Lsd,Lsq,J,In,mN,pc,Tsd,Tsq,Fip);

% Unused flag

case {2,4,9}

sys = [];

% Error

otherwise

error(['Error,unknow flag =',num2str(flag)]);

end

% End of SMDQM

%

%mdlInitializeSizes

%Return the sizes, initial conditions, sample time, state

%odering strings (str) for the S_function

%

function [sys,x0,str,ts]=mdlInitializeSizes(t,x,u)

sizes=simsizes;

sizes.NumContstetes=2; %isd, isq

sizes.NumdiscStates=0;

sizes.NumOputs=3; %isd, isq, M

sizes.NumInput=3; % usd, usq, w

sizs.Dirfeedthrough=0;

sizes.NumSampleTimes=1;

sys=simsizes(size);

x0=zeros(2,1);

Trang 14

ts=[0 0];

% End mdlInitializeSizes

% ==================================================

% mdlDerivatives

% Return the derivatives for the continous states

%(2.3.8a, b)

%================================================== function sys=mdlDerivatives(t,x,u,Rs,LsdLsq,J,In,mN,pc,Tsd,Tsq,Fip); sys(1)=(-1/Tsd)*x(1)+(1/Lsq)*u(1)+(Lsq/Lsd)*u(3)*x(2);

sys(2)=(-1/Tsq)*x(2)+(1/Lsq)*u(2)+(-Lsd/Lsq)*u(3)*x(1)+

(-1/Lsq)*Fip*u(3);

% End Derivatives

%==================================================

%mdloutput

% Return the block outputs

%================================================== function sys=mdlOutputs(t,x,u,Rs,Lsd,Lsq,J,In,mN,pc,Tsd,Tsq,Fip) sys(1)=x(1);

sys(2)=x(2);

sys(3)=(3/2)*pc*((Fip/Lsd+x(1)*Lsd*x(2)-Lsq*x(1)*x(2));

% End mdloutputs

usu usv usw mT

isd isq mM omega n

SM_dq 2

Ngày đăng: 02/05/2015, 10:37

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w