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

bài tập lớn môn điều khiển số

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 (1.29 MB, 21 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC THỦY LỢIKHOA ĐIỆN – ĐIỆN TỬ

<b>BÀI TẬP LỚN MÔN:ĐIỀU KHIỂN SỐ</b>

<i><b> </b></i>

<b>Giảng viên hướng dẫn: Thầy Phạm Đức Đại Sinh viên: Nguyễn Đức Thắng</b>

<b>MSV: 2051215310Lớp : 62TĐH-DK1</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

A=[0 0 10 0 ; 0 0 0 10 ; 3.315 3.315 0.5882 0.5882 ; 3.315 3.315 0.5882 0.5882 ];

-B=[0 0 ; 0 0 ; 8.533 0 ; 0 8.533]; C=[0.5 0.5 0 0; -2.113 2.113 0.375 0.375]; D=0;

[Ad,Bd,Cd,Dd]=ssdata(sysY);Ad =

0.9599 0.0401 -0.4861 0.01390.0401 0.9599 -0.0139 0.48610.1566 -0.1566 0.9321 -0.06790.1566 -0.1566 -0.0679 0.9321

Bd =-0.1049 0.0017-0.0017 0.10490.4148 -0.0118-0.0118 0.4148Cd =

0.5000 0.5000 0 0-2.1130 2.1130 0.3750 0.3750

Dd =0 00 0

- Bước 2: Thay vào phương trình:X(k+1) = Ad.X(k) + Bd.UY(k) = Cd * X(K) + Dd*U

- Bước 3: Mô phỏng trên matlap simulink:

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

>> Kết quả mô phỏng: W1(k) trùng W2(k)

<b>B: Xây dựng bộ điều khiển phản hồi trạng thái.</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Bước 1: Từ nghiệm cực s => pCâu lệnh:

>> p=[0.8461 + 0.1322i; 0.8461 - 0.1322i;0.7155 + 0.3545i; 0.7155 - 0.3545i]Bước 2: Lệnh matlab:

A=[0 0 10 0;0 0 0 10;3.315 3.315 0.5882 0.5882;3.315 3.315 -0.5882 -0.5882];

-B=[0 0;0 0;8.533 0;0 8.533];

C=[0.5 0.5 0 0;-2.113 2.113 0.375 0.375];D=0;

p=[0.8461 + 0.1322i; 0.8461 - 0.1322i;0.7155 + 0.3545i;0.7155 - 0.3545i];

K=place(Ad,Bd,p)-Kết quả:>> K =

-0.5022 -0.2944 0.9240 0.1830 0.3364 -0.1639 -0.3176 0.5772

sysGz=c2d(sysGs,T);

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

-Mô phỏng Simulink:

-Kết quả:

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

B: Tìm phản hồi trạng thái đầy đủ cung cấp mặt phẳng s tương đương tại Wn =2rad/s<small>, ε</small> = 0.5

- Câu lệnh matlab:T=0.5;

a=1; b=[1 0.2 1];Gs=tf(a,b);Gz=c2d(Gs,T);s1=-1+i*sqrt(3);s2=-1-i*sqrt(3);

e1=exp((-1.0000 - 1.7321i)*0.5)e2=exp((-1.0000 + 1.7321i)*0.5)- Kết quả:

>> bai2e1 =

0.3929 - 0.4620ie2 =

<small>−</small>(<small>z+ z</small>)<small>z + zz=0</small>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<small>z−1.8 +0.82=0z</small>

{

<small>k</small><sub>2</sub><small>+</small><sup>1</sup><sub>2</sub> <small>1=0.2−k</small><sub>2</sub><small>+</small><sup>1</sup>

=> <small>k1=0.02; k2=0.19</small>

- Câu lệnh matlab:Phi=[1 1;0 1];R=[0.5;1];

z=[0.9+i*0.1;0.9-i*0.1];K=place(Phi,R,z)- Kết quả: K =

0.0200 - 0.1900

Bài 4:

Bài làm:

Từ điều kiện đề bài: <small>ξ=0,7 ;ω</small><sub>n</sub><small>=10 rad s/</small>

Tìm được nghiệm cực từ cơng thức:s1= <small>−ξ ωn+</small>

<small>(ξ ωn)2</small>

s2= <small>−ξ ωn−</small>

<small>(ξ ωn)2</small>- Câu lệnh matlab:<small>A=[0 1;0 0] ;B=[0;1];C=[1 0];D=0;sysC=ss(A,B,C,D);</small>

<small>T=0.05;sysD=c2d(sysC,T);[Ad,Bd,Cd,Dd]=ssdata(sysD); P=[0.6602+0.2463i;0.6602-0.2463i];K=place(Ad,Bd,P)</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

- Kết quả: <small>>> bai4</small>

<small>K =</small>

<small> 70.4511 11.8307</small>

<b>-Bài 8:</b>

<b>Bài làm:A: Bộ bù liên tục</b>

<b>Bước 1: Tìm thơng số Kp,Ki,Kd:</b>

- Câu lệnh matlab:<small>a=1; b=[1 1000 0 0];Gs=tf(a,b);pidTuner(Gs)</small>- Kết quả:

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Kp=1.897e+07; Ki=1.11e+08; Kd=8.1e+05

<b>Bước 2: Tìm Dz qua Kp,Ki,Kd;</b>

- Câu lệnh matlab:<small>T=0.01;</small>

<small>a=1; b=[1 1000 0 0];Gs=tf(a,b);</small>

<small>a1=[8.1e+05 1.897e+07 1.11e+08]; b1=[1 0];Ds=tf(a1,b1);</small>

<small>Dz=c2d(Ds,T,'Tustin')</small>- Kết quả:

<small>>> Dz =</small>

<small> 1.815e08 z^2 - 3.229e08 z + 1.436e08 --- z^2 - 1</small>

<b>B3: Mô phỏng trên Simulink:</b>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>Bài 9:</b>

<b>Bài 10:</b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>Bài 11:</b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>Bài 12:</b>

Bài làma)<small>G (s )=</small><sup>K</sup>

<small>s</small> <sup>=</sup><small>K</small>

<small>Ta có z:</small>

{

<small>G(s)s</small>

}

<small>=K</small> <sup>Tz</sup>

<small>(z−1)2</small> G(z)=(1 -<small>z−1</small>). <small>z</small>

{

<small>G(s )</small>

<small>s</small>

}

= <sup>z−1</sup><sub>z</sub>

[

<small>K</small> <sup>Tz</sup><small>(z−1)2</small>

]

<small>=</small><sup>KT</sup><sub>z −1</sub>

b)<small>G (s )=</small> <sup>3</sup><small>s (s+3)</small><sup>=</sup><sup>¿</sup>

<small>G (s)s</small> <sup>=</sup>

<small>1s+3Tacó z:</small>

{

<small>G(s)</small>

<small>s</small>

}

<small>=</small> <sup>Tz</sup><small>z −1</small><sup>−</sup>

<small>z3( z−1)</small><sup>+</sup>

<small>zz−e−3 T</small>

<small>13G (z )=</small><sup>z −1</sup>

<b>Bài 13:</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Bài làm

- Câu lệnh matlab:numD=3;denD=[1 4 3];

[F,G,H,J]=tf2ss(numD,denD)- Kết quả:

F = -4 -3 1 0G = 1 0H = 0 3J = 0- Sơ đồ khối :

<b>Bài 14:</b>

Bài làm.

<small>Gs=</small><sup>10(s +1)</sup><small>s2</small>

<small>(s+10)</small> = <sub>s (s+10)</sub><sup>10</sup> <small>+</small> <sup>10</sup><small>s2(s+10)</small>

- Tính tay:

B1: Chuyển qua miền thời gian

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>T</small>{<small>G</small><sub>s</sub>}<small>=1−e−10 kT</small>

<small>+</small><sup>1</sup><sub>10</sub><small>(10 kT −1∗e−10 kT</small> B2: Chuyển qua miền Z

<small>Z</small>{<small>Gs</small>}<small>=</small> <sup>z (1−e</sup>

<small>−10 T)(z−1)(z −e−10T</small>

<small>z</small>

[

(<small>10 T −1+e−10 T</small>)<small>z +</small>(<small>1−e−10T−10 T e−10T</small>)

]

<small>10∗ (z−1 )2</small>(<small>z−e−10T</small>)

numC=[0 0 10 10];denC=[1 10 0 0];sysC=tf(numC,denC);sysD=c2d(sysC,T);

sysD- Kết quả:sysD =

<small> 0.0004854 z^2 - 9.514e-06 z - 0.0004663 --- z^3 - 2.905 z^2 + 2.81 z - 0.9048</small>

<b>Bài 15:</b>

Bài làm.- Câu lệnh matlab:

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

numGs=[0 10 10];denGs=[1 1 10];Gs=tf(numGs,denGs);T=0.01;

- Kết quả:Gz =

0.09998 z - 0.09899 --- z^2 - 1.989 z + 0.99

- Mô phỏng trên Matlap Simulink

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>Bài 16:</b>

<b>B1: Tìm hệ số Kp,Ki,Kd của bộ PID:</b>

- Câu lệnh matlab:a=1000; b=[1 0 0];Gs=tf(a,b);pidTuner(Gs)- Kết quả:

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

>> Sau khi điều chỉnh Bandwidth=100Hz => 2.pi.f=628(rad/s) và Phase margin=50<small>o</small>theo yêu cầu đề bài ta thu được các hệ số Kp=87.7844, Ki=3106.6805,Kd=0.62012.

<b>B2: Từ các hệ số Kp, Ki, Kd => Dz:</b>

- Câu lệnh matlab:T=1/6e+03;a=1000; b=[1 0 0];Gs=tf(a,b);

numDs=[0.62012 87.7844 3106.6805]; denDs=[1 0];Ds=tf(numDs,denDs);

>> bai16Dz =

7529 z^2 - 1.488e04 z + 7354---

z^2 – 1

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>B3: Mơ phỏng trên Simulink:</b>

Với thời gian trích mẫu là: T = 1/f = 1/(6e+03).- Kết quả:

<b>Bài 17:</b>

<b>Bài làm.</b>

<b>B1: Tìm hệ số Kp,Ki,Kd của bộ PID:</b>

- Câu lệnh matlab:a=1000; b=[1 0 0];Gs=tf(a,b);pidTuner(Gs)

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

>> Sau khi điều chỉnh Bandwidth=100Hz => 2.pi.f=628(rad/s) và Phase margin=50<small>o</small>theo yêu cầu đề bài ta thu được các hệ số Kp=87.7844, Ki=3106.6805,Kd=0.62012<small>.</small>

<b>B2: Từ các hệ số Kp, Kd => Dz:</b>

- Câu lệnh matlab:T=1/6000;Kp=253.3Td=0.001898

numG=1000;denG=[ 1 0 0]; sysG=tf(numG,denG);numD=[Kp*Td Kp]; denD=[1]; sysD=tf(numD,denD));

- Kết quả:sysDz =

6022 z - 5516---

z + 1

sysGz =

1.389e-05 z + 1.389e-05---

z^2 - 2 z + 1

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>B3: Mô phỏng trên Simulink:</b>

Với thời gian trích mẫu là: T = 1/f = 1/(6e+03).

- Kết quả:

</div>

×