Phương pháp khai triển Taylor : tìm chuỗi gần đúng hàm tại xtn.. Phương pháp đa thức hóa : tìm đa thức gần đúng giá trị xtn theo p giá trị trước đó.. Phương trình trạng thái thường đượ
Trang 19.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(tn).
2 Phương pháp đa thức hóa : tìm đa
thức gần đúng giá trị x(tn) 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) , x0 = x(t0) , hay nếu có n biến :
Các biến trạng thái : Tụ điện: Chọn uC hay qC Cuộn dây: Chọn iL 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.
'
1 1 1 2 '
2 2 1 2
'
1 2
( , , , , ) ( , , , , )
( , , , , )
n n
°
°
®
°
°
¯
Trang 29.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(tn+1) theo
giá trị tại bước tính thứ (n) :
x(tn) 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(tn+1)
2 1
'( )
1!
''( )
2!
n
n
n n
x t
x t
x x h f x nh
x x h f x n h
Trang 3 Giải thuật Euler thuận : ví dụ 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 ========
Trang 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
d t
( ) 1 2 0 2 s in (1 0 0 9 0 )o
Trang 5 Giải thuật Euler thuận : ví dụ 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)' );
Trang 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.
Trang 73 Giải thuật Runge-Kutta
Gỉai Thuật R-K bậc 2 :
GT R-K bậc 3 (k1 như trên) :
GT R-K bậc 4 (k1 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ớ
2
h
x x k k
k f x hk t
4
h
1 ,
h
k f § x k t h ·
,
h
k f x § k t h ·
6
h
x x k k k k
1 ,
h
k f x § k t h ·
1 ,
h
k f x § k t h ·
k f x hk t h
Trang 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.103t) V
Giải a) Thiết lập pt trạng thái : Viết KCL
Lưu ý: Đặc tuyến i(e-uC) 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
C
du e u
u(V)
i(mA) 4
_
10 PF
-u(t)
+ uC
-e(t)
Trang 9 GT Runge-Kutta bậc 2 : Ví dụ 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
Trang 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
1
250
120
5, 2
i
250 V
i
1
120 :
0,2 :
5 :
t = 0
K
i
\
1
0, 2
0, 08( )
5, 2
2
250 125 250 62,5
d
i dt
Trang 11 GT Runge-Kutta bậc 4 : Ví dụ 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
% 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
Trang 129.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 :
x a x a x h b f x ª ¬ t b f x t b f x t º ¼
2
h
x x ª ¬ f x t f x t º ¼
x x h ª f x t f x t º
x x h ª f x t f x t f x t º
Trang 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(800St)-750\ 5 = f(\,t)
i
e(t)
_
500 :
\ e(t) =1200sin(800 St) V
i = 1,5\5
t=0
K
x x h ª f x t f x t f x t º
d t
\
\
Trang 14 GT Adams-Bashforth bậc 2 : Ví dụ 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(k1) + 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)');
... data-page="10"> GT Runge-Kutta bậc : Ví dụ
Khóa K mở t = 0, biết đặc tuyến cảm phi tuyến :
a) Viết phương trình trạng thái theo từ thơng cuộn dây ? Xác định... độ mạch (thời gian độ thay đổi từ thơng móc vịng sau bước tính bé 0,01% ).
Giải a) Xác định : Khi t < : cuộn dây xem ngắn mạch :
Khi t > : phương trình mơ tả mạch. .. ; hay
http.see.deis.unical.it/ita/
Kizilcay /pdf/ chap2 .pdf.
Trang 7