Tải bản đầy đủ (.pdf) (14 trang)

Tài liệu Mạch phi tuyến động và các PP số pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (121.76 KB, 14 trang )

Chapter-94
1
9.5 Mạch phi tuyến động và các PP số

Các bài toán có 2 phần :
1. Viết phương trình trạng thái.
2. Sử dụng thuật toán lặp.

Các thuật toán lặp :
Có hai nhóm :
1. Phương pháp khai triển Taylor : tìm
chuỗi gần đúng hàm tại x(t
n
).
2. Phương pháp đa thức hóa : tìm đa
thức gần đúng giá trò x(t
n
) theo p giá
trò trước đó .
9.5.1 Phương trình trạng thái :

Phương trình trạng thái có dạng :
x’ = f(x,t) , x
0
= x(t
0
) , hay nếu có n biến :

Các biến trạng thái :
Tụ điện: Chọn u
C


hay q
C
.
Cuộn dây: Chọn i
L
hay
\
L
.

Phương trình trạng thái
thường được thiết lập theo
các phương pháp : dòng
nhánh , thế nút hay mắc
lưới.
'
1112
'
2212
'
12
( , , , , )
( , , , , )

( , , , , )
n
n
nn n
xf
xx xt

xf
xx xt
xf
xx xt


°

°
®
°
°

¯
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
2
9.5.2 Phương pháp khai triển Taylor

Khai triển giá trò tại bước
tính thứ (n+1) : x(t
n+1
) theo
giá trò tại bước tính thứ (n) :
x(t
n
) bằng chuỗi Taylor và
chọn đến bậc p thích hợp (sai
số h

(p+1)
) , với h là bước tính :

Thuật toán khai triển Taylor
là thuật toán đơn bước : giá
trò được tìm khi chỉ cần biết
một giá trò của bước trước đó
.
1. Giải thuật Euler thuận :
2. Giải thuật Euler ngược :
Giải ra x
(n+1)
và lặp.
3. Giải thuật Runge-Kutta : xấp xỉ tiếp
tục các đạo hàm bậc cao và thiết lập
công thức lặp cho giá trò : x(t
n+1
) .


11
2
1
'( )
() ()
1!
''( )

2!
n

nn nn
n
nn
xt
x
txt tt
xt
tt


 


1
.,
nn n
x
xhfxnh



11
.,(1)
nn n
xxhfxnh

 
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94

3
Giaỷi thuaọt Euler thuaọn : vớ duù 1
function vidu1=pplap()% Euler thuan
% e(t) = 200*i(
\
) + d
\
/dt
t0=0;tf=0.002;delta = 1*10^(-6);
y0 = 0;% bien tu thong
\
y=linspace(0,1,round(tf/delta)+1);
y(1) = y0;
for k=2:round(tf/delta)+1
et = 19*sin(10^4*(k-1)*delta);
iL = 50*y(k-1)+ 4*10^7*y(k-1)^3;
y(k) = y(k-1)+delta*(et-200*iL);
end
% Ve dang dong dien
t=0:delta:delta*round(tf/delta);
plot(t*1000,y*1000);
ylabel('Dang tu thong (mWb)');
% ==== End of Program ========
%ơ,*,1*0é10&+,1%
&/r0LQK&QJ
Chapter-94
4
 Giải thuật Euler thuận : ví dụ 2
Xác đònh dạng từ thông và dòng điện trên cảm phi
tuyến .

Biết :
Giải

Phương trình trạng thái :

Chương trình MATLAB:
Wb_dt=[-5.3375 -0.5625 -0.45 0 0.45 0.5625 5.3375] ;
dong_dt=[-10 -0.45 -0.225 0 0.225 0.45 10];
% A
chuky = 1/50;
t0 = 0;
% gia tri ban dau
tf = 75*chuky ;%gia tri cuoi cua thoi gian toi da
delta = chuky/100; % buoc thoi gian tinh
Wb=linspace(0,1,round(tf/delta)+1); % Tao mang tu thong
iL=linspace(0,1,round(tf/delta)+1); % Tao mang luu dong
% Gan gia tri so kien vao mang
Wb(1) = 0;
iL(1) = 0;
e(t)
0
+
_
+
_
5
:
i(A)
\
(Wb)

0,225 0,45
-0,225-0,45
0,45
0,5625
-0,45
-0,5625
1 V
i
\

() 1 5.
d
et i
dt
\
\

( ) 120 2 sin(100 90 )
o
et t
S

%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
5
Giaỷi thuaọt Euler thuaọn : vớ duù 2 (tt)
for k=2:round(tf/delta)+1
% Tinh toan cac gia tri dong theo tu thong
gt_hdt= interp1(Wb_dt,dong_dt,Wb(k-1));

% Noi suy theo MATLAB
et=120*sqrt(2)*
sin(100*pi*(k-1)*delta+pi/2);
fn = et + 1 -5*gt_hdt;
Wb(k)=Wb(k-1)+delta*fn;
% Euler thuan
iL(k)=interp1(Wb_dt,dong_dt,Wb(k));
end
% Ve dang dong dien : chi khao sat
50 ms cuoi cung
N = round(tf/delta);
t=0:delta:delta*N;
subplot(211);
plot(t(N-250:N),Wb(N-250:N));
ylabel(
'Tu thong (Wb)');
subplot(212);
plot(t(N-250:N),iL(N-250:N));
ylabel(
'Dong dien (A)');
%ơ,*,1*0é10&+,1%
&/r0LQK&QJ
Chapter-94
6
 So sánh kết quả do Simulink tính

Hình bên là kết quả do
Simulink của MATLAB
tính toán và vẽ .Có thể
tham khảo tại trang web

của MathWorks-
>Documentation->
SimpowerSystems ; hay
http.see.deis.unical.it/ita/
Kizilcay/pdf/chap2.pdf.
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
7
3. Giải thuật Runge-Kutta

Gỉai Thuật R-K bậc 2 :

GT R-K bậc 3 (k
1
như trên) :

GT R-K bậc 4 (k
1
tính như trên) :

Giải thuật R-K tính nhiều các kết
quả trung gian và lưu chúng -> tốn
bộnhớ.

112
2
nn
h
x

xkk

 

1
,
nn
kfxt


211
,
nn
kfxhkt



123
3
4
nn
h
x
xkk

 
21
1
,
33

nn
h
k
f
xkth
§·
 
¨¸
©¹
32
22
,
33
nn
h
kfx kt h
§·
 
¨¸
©¹

11234
22
6
nn
h
x
xkkkk

   

21
1
,
22
nn
h
k
f
xkth
§·
 
¨¸
©¹
32
1
,
22
nn
h
kfx kt h
§·
 
¨¸
©¹


43
,
nn
kfxhkth  

%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
8
 GT Runge-Kutta bậc 2 : Ví dụ 1
Tìm áp ra của mạch kẹp dương (đỉnh âm)
biết e(t) = 2sin(2
S
.10
3
t) V.
Giải
a) Thiết lập pt trạng thái : Viết KCL
Lưu ý:
Đặc tuyến i(e-u
C
) nhận được khi lấy đối
xứng qua gốc tọa độ đặc tuyến u-i của diode đã cho .
b) Chương trình MATLAB:
% Thuat toan Runge-Kutta bac 2
% x(n+1) = x(n) + h/2*(k1 + k2)
% k1 = f(xn,tn) ; k2 = f(xn+h*k1,tn+1)
% Cho phuong trình phi tuyen - Dac tuyen dang bang-do thi
% duc/dt = (e -uc) + 10^5*hdt(e-uc) ; e = 2sin(2*pi*f*t)
% u = e - uc
% Ve dang dac tuyen : dong = hdt(u)
ap_dt = [-10 -5 -0.6 -0.4 0 5 10 ];% V
dong_dt = [-40 -20 -0.004 0 0 0 0 ];% A
()
CC

C
du e u
Cieu
dt R


0 0,4 0,6
u(V)
i(mA)
4
+
_
10
P
F
100 K
:
+
-
u(t)
+-
u
C
e(t)
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
9
 GT Runge-Kutta baäc 2 : Ví duï 1 (tt)
for k=2:round(tf/delta)+1

% Tinh toan cac gia tri ap
e = 2*sin(2*pi*f*(k-1)*delta);% tn
gt_hdt = interp1(ap_dt,dong_dt,
e - uc(k-1));
% Noi suy
k1 = e - uc(k-1) + 10^5*gt_hdt;
e = 2*sin(2*pi*f*(k)*delta);
% tn+1
gt_hdt = interp1(ap_dt,dong_dt,
e-(uc(k-1)+ delta*k1));
% Noi suy
k2 = e - (uc(k-1) + delta*k1) + 10^5*gt_hdt;
uc(k) = uc(k-1) + (delta/2)*(k1 + k2);
% bien trang thai
ap(k) = e - uc(k);% tin hieu ra
end
% Ve dang dien ap ra
t=0:delta:delta*round(tf/delta);
plot(t*1000,ap);
% don vi ms
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
10
 GT Runge-Kutta bậc 4 : Ví dụ 1
Khóa K mở ra tại t = 0, biết đặc tuyến của cảm phi tuyến :
a) Viết phương trình trạng thái theo từ thông trên cuộn dây ? Xác đònh giá trò từ
thông tại t = 0
-
.

b) Viết chương trình tính từ thông khi 0 < t < 50(ms) , với bước tính h = 1(ms) theo
thuật toán Runge-Kutta bậc 4. Từ đó xác đònh thời gian quá độ của mạch (thời
gian khi độ thay đổi từ thông móc vòng sau một bước tính bé hơn 0,01% ).
Giải
a) Xác đònh : Khi t < 0 : cuộn dây xem như ngắn mạch :
Khi t > 0 : phương trình mô tả mạch :
b) Chương trình MATLAB:
function vidu11=pplap()
t0 = 0 ; tf = 0.05; delta = 0.001;
x0 = 0.4;
x = linspace(0,1,round(tf/delta)+1);
x(1) = x0;
2
() 0,5i
\
\

1
250 5,2
250
1
625
120
5, 2
i

250 V
i
1
120

:
0,2
:
5
:
t =
0
K
i
\
1
0, 2
0, 08( )
5, 2
ii A
0
0, 4( )Wb
\

2
250 125 250 62,5
d
i
dt
\
\
 
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94

11
 GT Runge-Kutta baäc 4 : Ví duï 1 (tt)
saiso = 1; flag = 0; k = 1;
while (saiso > 0.0001) & (flag == 0)
k = k + 1;
% Tinh gia tri bien theo Runge-
Kutta bac 4
k1 = 250-62.5*x(k-1)^2;
k2 = 250-62.5*(x(k-
1)+(delta/2)*k1)^2;
k3 = 250-62.5*(x(k-
1)+(delta/2)*k2)^2;
k4 = 250-62.5*(x(k-1)+(delta)*k3)^2;
x(k) = x(k-
1)+(delta/6)*(k1+2*k2+2*k3+k4);
% Tinh sai so
saiso = abs((x(k)-x(k-1))/x(k));
% Kiem tra thoi gian tinh
if k > round(tf/delta) flag = 1;
end
end
% == end of main ======
% So sanh va bao ket qua
if flag == 1
disp('Vout qua tmax cho tinh toan');
t=0:delta:(k-1)*delta;
plot(t,x(1:k)); % ve cac so lieu da tinh
else
disp('Thoi gian qua do la :');
disp((k-1)*delta);

disp('Gia tri tu thong khi do la :');
disp(x(k));
t=0:delta:(k-1)*delta;
plot(t,x(1:k)); % ve cac so lieu da tinh
end
%
Thoi gian qua do la : 0.0330
Gia tri tu thong khi do la : 1.9993
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
12
9.5.3 Phương pháp đa thức hóa

Xấp xỉ hàm và đạo hàm bằng đa thức bậc k, có đại lượng ở bước tính
(n+1) theo p giá trò ở p bước trước đó (gọi là giải thuật đa bước) . Nghiệm
tổng quát của giải thuật có dạng :

Để tính được x
(n+1)
, phải có các giá trò ở p bước trước đó. Dùng giải
thuật đơn bước (kiểu Taylor) để khởi động , sau đó dùng các giải thuật
đa bước để dễ kiểm soát sai số.
1. Giải thuật hình thang :
2. GT Adams-Bashforth (hiển do b
-1
= 0) bậc 2 và 3 như sau :


10 1 11 0

, , ,
n n p np n n n n p np np
xax axhbfxt bfxt bfxt
 
ªº
   
¬¼

111
,,
2
nn nn nn
h
x
xfxtfxt

 
ªº
¬¼
 
111
31
,,
22
nn nn nn
xxhfxt fxt

ªº
 
«»

¬¼
 
11122
23 16 5
,, ,
12 12 12
nn nn nn nn
xxhfxt fxt fxt

ªº
  
«»
¬¼
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94
13
 Giải Thuật Adams-Moulton
3. GT Adams-Moulton (ẩn do b
-1
z
0) bậc 2 và 3 như sau :

Ví dụ :
Vẽ dạng dòng và từ thông ?
Giải
function vidu16=pplap()
% PP Adams-Bashforth bac 2
% Khoi dong theo Euler thuan
% d

\
/dt = 1200sin(800
S
t)-750
\
5
= f(
\
,t)
% x(n+1) = x(n) +h((3/2)fn - (1/2)fn_1)
T = 1/400;t0 = 0; tf = 4*T; delta = T/50;
i
e(t)
+
_
500
:
\
e(t) =1200sin(800
S
t) V
i = 1,5
\
5
t=0
K

111
11
,,

22
nn nn nn
xxhfxt fxt

ªº
 
«»
¬¼
 
111 11
581
,,,
12 12 12
nn nn nn nn
xxhfxt fxt fxt
 
ªº
  
«»
¬¼
500 ( ) ( )
d
iet
dt
\
\

%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ
Chapter-94

14
 GT Adams-Bashforth baäc 2 : Ví duï 1
Wb = linspace(0,1,round(tf/delta)+1);
iL = linspace(0,1,round(tf/delta)+1);
Wb(1) = Wb0; iL(1) = 1.5*Wb(1)^5;
% gia tri tiep theo Euler thuan
Wb(2) = Wb(1) + delta*(-750*Wb(1)^5
+1200*sin(0));
iL(2) = 1.5*Wb(2)^5;
for k=3:round(tf/delta)+1
fn = -750*Wb(k-1)^5
+1200*sin((2*pi/T)*(k-1)*delta);
fn_1 = -750*Wb(k-2)^5
+1200*sin((2*pi/T)*(k-2)*delta);
Wb(k) = Wb(k-1) + delta*((3/2)*fn -
(1/2)*fn_1);
iL(k) = 1.5*Wb(k)^5;
end
%=== end of main =========
t=0:delta:delta*round(tf/delta);
subplot(211); plot(t*1000,Wb);
ylabel('Tu thong (Wb)');
subplot(212); plot(t*1000,iL);
ylabel('Dong dien (A)');
% == End of Program ======
%¬,*,Ҧ1*0Ð10Ҥ&+Ĉ,ӊ1%
&/r0LQK&ѭӡQJ

×