Bộ điều khiển PID tương tự Bây giờ ta tiếp tục với phần thiết kế bộ điều khiển tương tự.. Bây giờ chúng ta bắt đầu với bộ điều khiển dòng vòng lặp trong Ở đây ta chưa cần quan tâm đến tố
Trang 1Bộ điều khiển PID tương tự
Bây giờ ta tiếp tục với phần thiết kế bộ điều khiển tương tự
Chúng ta có hai lựa chọn:
- Thiết kế bằng Simulink : Có thể coi là phương pháp thực nghiệm Phương pháp thiết kế đơn giản, nhanh chóng, mọi thứ đều có sẵn, cứ nối vào nhau rồi xem kết quả -> chọn kết quả tốt nhất
- Thiết kế bằng Matlab : Đòi hỏi phải hiểu bài toán, lý thuyết và phải biết lập trình một chút -> khó hơn một chút nhưng sẽ hiểu sâu hơn về lý thuyết và cách thực hiện Cho phép khảo sát nhiều đặc tính hơn ngay trong quá trình thiết kế cũng như hiểu thêm về các lệnh Matlab dùng trong thiết kế
Hướng thứ hai sẽ có ích cho những người cần hiểu sâu thêm về cách thiết kế bộ điều khiển Tuy nhiên, khi làm thì ta nên kết hợp cả hai hướng trên để vừa thiết kế theo lý thuyết vừa có cái để kiểm chứng ngay
Bây giờ chúng ta bắt đầu với bộ điều khiển dòng (vòng lặp trong)
Ở đây ta chưa cần quan tâm đến tốc độ vội, kệ nó, muốn bằng bao nhiêu cũng được, miễn là ta đặt dòng bằng bao nhiêu thì nó phải ra bấy nhiêu!
Để sử dụng hàm connect ta vẽ lại sơ đồ điều khiển, trong đó đánh số thứ tự các đầu vào của các khối trong hình tròn, số thứ tự của các đầu ra của các khối trong hình vuông như hình sau
Trong đó khối là khối ta sẽ đặt hàm truyền bằng 1 Khối này được vào để tiện khai báo đầu vào ra cho cả hệ mà lệnh connect yêu cầu thôi Trong thuật toán điều khiển vì hàm truyền của
nó bằng 1 nên có nó cũng không ảnh hưởng gì đến cấu trúc của cả hệ
Ta khai báo khối bằng lệnh
Trang 2sys1 = tf(1, 1, 'inputname', 'in');
Với khối điều khiển PID thì tạm thời ta chỉ dùng PI và khai báo như sau:
Kd = 1;
Kp = 100;
Ki = 10;
numpid = [Kp Ki];
denpid = [1 0];
sys2 = tf(numpid, denpid, 'inputname', 'ei', 'outputname','uaref');
Cuối cùng là mô hình động cơ, khai báo như sau:
sys3 = ss(A_m, B_m, C_m, D_m, 'inputname', {'ua', 'TL'}, 'outputname',{'ia', 'n'});
Sau đó sử dụng lệnh append để báo cho Matlab biết các khối cần kết hợp và thứ tự của chúng như sau:
sys = append(sys1, sys2, sys3);
Tiếp theo ta phải khai báo các điểm nối của các khâu Nếu các bạn để ý sẽ thấy, đầu vào của khối
là có số thứ tự là 2, nó là hiệu của đầu ra số 1 của khối và đầu ra số 3 của DCM Vậy nên khi khai báo ma trận ta sẽ phải có dòng:
[đầu vào số 2 = đầu ra số 1 - đầu ra số 3]
Tương tự, đầu vào của khối DCM có số thứ tự là 3 được nối với đầu ra số 2 của khối Vậy nên khi khai báo ma trận ta sẽ phải có dòng:
[đầu vào số 3 = đầu ra số 2]
Tóm lại, ta khai báo ma trận như sau:
Q = [2 1 -3
3 2 0];
Bây giờ khai báo các đầu vào và đầu ra của hệ sau khi đã nối với nhau:
inputs = [1 4];
outputs = [3 4];
Cuối cùng là dùng lệnh connnect :
Trang 3sysc = connect(sys,Q,inputs,outputs);
Đến đây ta đã có được mô hình không gian trạng thái tổng hợp của hệ kín gồm cả bộ điều khiển
và đối tượng điều khiển Đầu vào là dòng điện đặt (vì ) và mômen tải , đầu
ra là dòng điện thực phần ứng và tốc độ
Bây giờ ta có thể vẽ thử đồ thị Bode và step như sau:
figure(3);
bodemag(sysc(1,1),'r ', sysc(1,2),'b ', sysc(2,1),'g ', sysc(2,2),'m ', logspace(-1,5,500));
title('Bieu do Bode - Dieu khien dong tuong tu');
legend('i_a^{ref} - i_a', 'T_L - i_a', 'i_a^{ref} - n', 'T_L - n', 3);
grid on;
[yc, tc] = step(sysc, 0.05);
figure(4);
plot(tc, yc(:, 1, 1),'r ', tc, yc(:, 2, 1),'g ', tc, yc(:, 1, 2),'b ', tc, yc(:, 2, 2),'k '),
title('Dap ung buoc nhay cua vong lap dieu khien dong');
legend('i_a^{ref} - i_a', 'i_a^{ref} - n', 'T_L - i_a', 'T_L - n', 2);
axis([0, 0.001, -0.2, 1.25]);
grid on;
Có thể download m-file này tại đây
Trang 4Hình 3: Biểu đồ Bode điều khiển dòng tương tự
Trang 5Hình 4: Đáp ứng bước nhảy vòng lặp điều khiển dòng
Bây giờ là lúc ta cần phân tích các đáp ứng thu được Từ đó có thể đưa ra một số kết luận sơ bộ
về việc chọn các hệ số và
Để đỡ nhầm lẫn ta có thể thay sysc bằng một cái tên khác, chẳng hạn -hekindcd- (hệ kín với bộ điều chỉnh dòng) Khi đó lệnh dùng là
hekindcd = connect(sys,Q,inputs,outputs);
Sau đó tính [yc, tc] để vẽ như sau
[yc, tc] = step(hekindcd, 0.05);
Lưu ý rằng đối với biểu đồ Bode thì trục tung biểu thị cho logarit của biên độ Cụ thể, nếu gọi
là biên độ của tín hiệu đầu ra thì giá trị ghi trên trục tung là Vì vậy:
- Giá trị 0 trên trục tung ứng với
Trang 6- Giá trị 20 trên trục tung ứng với
- Giá trị 40 trên trục tung ứng với
Bây giờ ta quay lại từ biểu đồ Bode của mô hình DCM (hệ hở, vẽ ở figure(1) trong m-file)
Hãy chú ý đến đường màu đỏ, thể hiện quan hệ giữa (chính là điện áp cần có để sinh ra dòng ) và Bạn có nhận xét gì trong trường hợp này không? Bạn thấy biên độ của nó thế nào?