Nhận xét: Các mô hình bám theo nhau, sai lệch rất nhỏ giữa việc tính toánbằng tay và tính bằng các phương pháp trên máy tính, do cách làm tròn dẫn đến sai lệch.Kết luận: việc gián đoạn h
Trang 1BÁO CÁO THÍ NGHIỆM ĐIỀU KHIỂN SỐ
1 Xác định hàm truyền trên miền z bằng phương pháp thủ công
Vòng trong cùng điều khiển dòng phần ứng:
Trang 2Tách H s i thành các phân số tối giản ta được:
Giz2 = = Với chu kỳ trích mẫu T3 = 0,04ms ta có hàm truyền:
Trang 53.Mô phỏng các mô hình gián đoạn thu được:
Đưa 3 hàm truyền tính toán bằng tay vào bộ nhớ Matlap
>> Giz1 = tf([0.000121 0.000117],[1 -1.90421 0.90427],0.01e-3)
>> Giz2 = tf([0.009176 0.006577],[1 -1.36165 0.36559],0.1e-3) >> Giz3 = tf([0.001756 0.001536],[1 -1.66782 0.66865],0.04e-3)
Trang 7Nhận xét: Các mô hình bám theo nhau, sai lệch rất nhỏ giữa việc tính toán
bằng
tay và tính bằng các phương pháp trên máy tính, do cách làm tròn dẫn đến sai lệch.Kết
luận: việc gián đoạn hóa không làm mất đi thông tin ban đầu của mô hình liên tục
4 Xây dựng mô hình trạng thái của động cơ một chiều.
Hàm truyền đạt vòng hở của động cơ là:
h e
G G
Trang 10
Nhận xét:
Các mô hình thu được không miêu tả chính xác động cơ điện một chiều Bởi
vì chu kì trích mẫu quá lớn nên các số liệu thu được là không chính xác dẫn đên saisót trong mô hình trạng thái, điều này có thể khắc phục nếu chúng ta tiến hành lập
mô hình trạng thái với những chu kì nhỏ hơn
Bài tập thực hành số 2: Tổng hợp vòng điều chỉnh dòng phần ứng
Hàm truyền đạt:
A Thiết kế theo phương pháp Dead-Beat
Trang 11Thiết kế bộ điều khiển theo phương pháp Dead-Beat với 1 1
Chương trình Matlab tìm bộ điều khiển:
>> b0=5.951e-05 ; b1=0.000119;b2=5.951e-05; a0=1; a1=-1.904; a2=0.9042
Trang 12>> GR1 = L1*A/(1 – L1*B)
>> Giz= B/A
>> Gk1 = feedback(GR1*Giz,1)Gk1 =
>> step(Gk1)
Kết quả đáp ứng bước nhảy đơn vị:
Trang 13Thiết kế bộ điều khiển theo phương pháp Dead-Beat với 1 1 2
Trang 14>>b0=5.951e-05; b1=0.000119; b2=5.951e-05; a0=1; a1=-1.904; a2=0.9042
Trang 16Mô phỏng bộ điều khiển Dead-Beat trên Simulink( final value: 2185 là 4 số cuối
mã số sinh viên và sample time: 0.01e-3)
Đồ thị của phương pháp Dead-Beat
Trang 17Đồ thị của phương pháp Dead-Beat
B Thiết kế bộ điều khiển bằng phương pháp cân bằng mô hình
Giả sử sau 2 bước, giá trị của đối tượng điều khiển sẽ đuổi kịp giá trị đặt của đạilượng chủ đạo
Chương trình Matlab tìm bộ điều khiển
>>b0=5.951e-05 ; b1=0.000119;b2=5.951e-05; a0=1; a1=-1.904; a2=0.9042
Trang 18>> A = filt ([a0 a1 a2],[1],0.01e-3);
Trang 19Giả sử sau 3 bước, giá trị của đối tượng điều khiển sẽ đuổi kịp giá trị đặt của đại lượng chủ đạo.
Chương trình Matlab tìm bộ điều khiển
>> b0=5.951e-05 ; b1=0.000119;b2=5.951e-05; a0=1; a1=-1.904; a2=0.9042;
>> A = filt ([a0 a1 a2],[1],0.01e-3);
>> B = filt ([b0 b1 b2],[1],0.01e-3);
>> Giz = B/A;
Trang 20Kết quả đáp ứng bước nhảy đơn vị:
Mô phỏng bộ điều khiển theo phương pháp cân bằng mô hình trên Simulink:
Trang 21Sau 2 bước đạt được giá trị đặt
Sau 3 bước đạt được giá trị đặt
Trang 23Bài tập thực hành số 3: Tổng hợp vòng điều chỉnh tốc độ quay
1.Hàm truyền đạt của đối tượng điều khiển vòng điều chỉnh tốc độ là:
Chọn a = 3 ta có:
Đáp ứng bước nhảy H s n( ) là:
Tách H s n( ) thành các phân thức tối giản ta được:
Áp dụng công thức mực 1.3.2 slide bài giảng ta có:
1 1.
Thay số T1 = 0,01ms ta được
Trang 24Mô phỏng đáp ứng bước nhảy của mô hình vừa thu được:
Trang 26Nhận xét:
Hai mô hình thu được ở câu 1 và câu 2 đều gần với Gn(s) Suy ra hai phương pháp đều cho kết quả chính xác Tuy nhiên còn có sai số do làm tròn khi tính toán
3 Tổng hợp bộ điều khiển.
3.1 Tổng hợp bộ điều khiển theo phương pháp gán điểm cực.
Hàm truyền đạt của đối tượng có dạng:
( ) ( ) ( ) ( )
( ) ( )
Trang 28>> grn=tf([X(1) X(2)],[1 p1],0.01e-3)Hàm truyền bộ điều khiển
Trang 29Ta thấy độ quá điều chỉnh 16% <25% thỏa mãn yêu cầu bài toán
- Bộ điều khiển có thành phần (z-1) ở mẫu => có thể triệt tiêu sai lệch tĩnh
- Độ quá điều chỉnh là 16% nhỏ hơn so với yêu cầu là 25%
Trang 303.2 Tổng hợp bộ điều khiển theo tiêu chuẩn tích phân bình phương.
Đối tượng điều khiển có dạng:
P A E
B R
Trang 31 2 0 2 0
min min
Sử dụng Optimization Toolbox của Matlab
Nội dung của M-File:
e(1) = (1/a0)*(a0 + (a0*p1 + a1) - m1*e0);
e(2) = (1/a0)*(a0 + (a0*p1 + a1) + a1*p1 + a2 -m1*e(1) -m2*e0);
e(3) = (1/a0)*(a0 + (a0*p1 + a1) + a1*p1 + a2 +p1*a2 - m1*e(2) - m2*e(1)
- Trên của sổ lệnh Matlab gõ optimtool
Xuất hiện của sổ của tool trên ta lựa chọn như sau:
- Solver: fminunc – Unconstrained nonlinear minimization
- Objective function: @tndks (trùng tên với hàm m-file ta đã thiết lập và lưu ởtrên)
- Start poin [4 13]
Trang 32Kết quả thu được:
R0=441.312 R1=-437.705 thỏa mãn r0 r1 .
Kiểm tra lại bộ điều khiển bằng Matlab:
>>Tt=100e-6; Ra=250e-3; La=4e-3;
>>Ta=La/Ra; T1=0.01e-3; phi=0.04;J=0.012;ke=236.8; km=38.2;
Trang 33Hàm truyền của hệ kíngk=
Giá trị điểm cực hệ kín:
>> pole(gk)
ans =
>> step(gk)
Trang 35Kiểm chứng phương pháp gán điểm cực bằng Simulink
- Giá trị đặt thay đổi dạng bước nhảy: 4 số cuối MSSV: 2185
Kết quả mô phỏng:
Trang 36Nhận xét: Khi ta thay đổi giá trị đặt bộ điều khiển vẫn nhanh chóng đưa hệ thống
về trạng thái xác lập mới
- Phụ tải thay đổi dưới dạng bước nhảy với giá trị là 4 chữ số cuối MSSV :2185
Kết quả mô phỏng:
Trang 38Nhận xét: Khi có tác động của nhiễu đầu ra, đáp ứng đầu ra của hệ thống xuất hiện
sai lệch nhưng bộ điều khiển vẫn nhanh chóng ổn định đưa đáp ứng hệ thống ở thờiđiểm xác lập về đúng giá trị đặt
B Kiểm chứng tiêu chuẩn bình phương bằng Simulink.
- Giá trị đặt thay đổi dạng bước nhảy: 4 số cuối MSSV: 2185
Kết quả mô phỏng:
Nhận xét: Độ quá điều chỉnh nhỏ hơn so với yêu cầu là 25% Khi giá trị đặt thay đổi, bộ điều khiển nhanh chóng tác động, giá trị ra nhanh chóng bám theo giá trị đặt
Trang 39- Đáp ứng với nhiễu đầu ra dưới dạng bước nhảy với giá trị là 4 chữ số cuối MSSV:2185.
Kết quả mô phỏng:
Trang 40Nhận xét: Khi có tác động của nhiễu đầu ra, đáp ứng đầu ra của hệ thống xuất hiện sai lệch nhưng bộ điều khiển vẫn nhanh chóng đưa đáp ứng hệ thống về lại giá trị đúng ban đầu.
Bài số 4: Tổng hợp bộ ĐC tốc độ quay trên KGTT A.Tổng hợp bộ điều khiển tốc độ quay theo 2 phương pháp:
Phản hồi trạng thái sao cho đáp ứng có dạng PT1 ( điểm cực nhận giá trị thựcdương trên miền z)
Trang 42>> step(Gkin1) %kiemtraket qua
Trang 43Nhậnxét: Ta thấy hệ đi đến ổn định sau 1 khoảng thời gian, tuy nhiên chưa đi tới
giá trị 1 vì vậy ta cần có 1 khâu để bù lại
>>kvf1=inv(C*(eye(2)+Bk1*R1-Ak1)^-1*Bk1)
kvf1=
Mô phỏngvới kết quả vừa thu được trên Simulink( với chu kỳtríchmẫulà 0.01s ):
Trang 44Kết quả mô phỏng:
Ta thu được kết quả như hình:
Với chu kỳ trích mẫu T5=0.1s
>> [Ak2 Bk2]=c2d(A,B,T5)
Trang 45>> R2=acker(Ak2,Bk2,p)
R2 =
>>Gkin2=ss(Ak2-Bk2*R2,Bk2,C,D,T5)
Gkin2 =
Trang 46>> step(Gkin2)
Trang 47Nhận xét: Ta thấy hệ đi đến ổn định sau 1 khoảng thời gian, tuy nhiên chưa đi tới
giá trị 1 vì vậy ta cầncó 1 khâu để bù lại
>>kvf2=inv(C*(eye(2)+Bk2*R2-Ak2)^-1*Bk2)
Kvf2 =
Mô phỏng kiểm chứng với bộ điều khiển vừa tìm được trên Simulink ( với chu kỳ trích mẫu là 0.1s) :
Trang 48Ta thu được kết quả:
Đáp ứng hữu hạn( Dead-Beat: gán điểm cực tại gốc tọa độ trên miền ảnh Z) +Với chu kì trích mẫu T4=0.01s
>> p0=[0 0];
>> [Ak1 Bk1]=c2d(A,B,T4)
Trang 49>> R3=acker(Ak1,Bk1,p0)
R3 =
>>Gkin3=ss(Ak1-Bk1*R3,Bk1,C,D,T4)
Gkin3 =
Trang 50>> step(Gkin3)
Trang 51kvf 3=
Mô phỏng sơ đồ Simulink
Ta có kết quả:
Trang 52+Với chu kỳtríchmẫu T5=0.1s
>> [Ak2 Bk2]=c2d(A,B,T5)
>> R4=acker(Ak2,Bk2,p0)
R4 =
Trang 53Gkin4 =
>> step(Gkin4)
Trang 54>>kvf4=inv(C*(eye(2)+Bk2*R4-Ak2)^-1*Bk2)Kvf4 =
Mô phỏng kiểm chứng bằng sơ đồ Simulink