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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡ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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡ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% http://www.khvt.com &/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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡ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% http://www.khvt.com &/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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡ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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡ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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡ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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡ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Ð10Ҥ&+Ĉ,ӊ1% http://www.khvt.com &/r0LQK&ѭӡQJ [...]... 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 : xn 1 a0xn ap xn p h b 1 f xn 1,tn 1 b0 f xn,tn bp f xn p ,tn p Để 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ố. .. (hiển do b-1 = 0) bậc 2 và 3 như sau : xn 1 xn 1 3 1 xn h f xn , tn f xn 1, tn 1 2 2 23 16 xn h f xn , tn f xn 1 , tn 12 12 http://www.khvt.com Chapter-94 1 5 f xn 2 , tn 12 2 12 Giải Thuật Adams-Moulton 3 GT Adams-Moulton (ẩn do b-1 xn xn 1 1 0) bậc 2 và 3 như sau : 1 1 xn h f xn 1 , tn 1 f xn , tn 2 2 5 8 1 xn h f xn 1 , tn 1 f xn , tn f xn 1 , tn 12 12 12 Ví dụ : Vẽ dạng dòng và từ thông ? K 500 i... h f xn 1 , tn 1 f xn , tn 2 2 5 8 1 xn h f xn 1 , tn 1 f xn , tn f xn 1 , tn 12 12 12 Ví dụ : Vẽ dạng dòng và từ thông ? K 500 i Giải ) t=0 e (t ) + 500i( d dt 1 i = 1,5 5 e(t) _ function vidu16=pplap() % PP Adams-Bashforth bac 2 e(t) =1200sin(800 % Khoi dong theo Euler thuan % d /dt = 1200sin(800 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; http://www.khvt.com . 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. 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.