Tổng quan hệ thí nghiệm động cơ DC
Bài thí nghiệm tập trung vào nguyên lý hoạt động của động cơ một chiều, thiết lập ba phương thức điều khiển: vòng hở không quan sát, vòng hở có quan sát và hồi tiếp âm; triển khai giải thuật điều khiển PID trên bộ vi điều khiển; phân tích ảnh hưởng của thông số bộ điều khiển PID đến hiệu suất điều khiển hệ thống.
Yêu cầu chuẩn bị
Bộ mã hóa quay (encoder) là thiết bị cơ điện chuyển đổi vị trí góc hoặc chuyển động trục thành tín hiệu đầu ra dạng analog hoặc kỹ thuật số Thiết bị này được sử dụng rộng rãi trong nhiều hệ thống điều khiển chuyển động để phát hiện vị trí, hướng di chuyển và tốc độ của động cơ thông qua việc đếm số vòng quay của trục.
- Có 2 loại encoder : Incremental encoder (Tương đối) và Absolute encoder (Tuyệt đối)
Incremental encoder (Tương đối): Tương ứng đĩa 2bit, cho ngõ ra dạng xung vuông pha AB, hoặc ABZ hoặc ABZA|B|Z| (đọc là A đảo, B đảo, Z đảo) Loại Encoder có
2 tín hiệu xung A và B là phổ biến nhất Tín hiệu khe Z là tín hiệu để xác định động cơ quay được một vòng.
Absolute encoder (Tuyệt đối): Tương ứng đĩa quay 8bit hay 8 dãy rãnh, cho ngõ ra dạng mã kỹ thuật số(BCD), Binary (nhị phân), Gray code
Xác định chiều quay của Encoder : Để xác định chiều quay của Encoder, Ta dựa vào xung(pha) A và B theo như hình vẽ sau:
Hình 1.1 Cấu trúc 2 kênh A,B của Encoder
Người ta sẽ quy định, nếu xung A xuất tín hiệu trước xung B là quay theo chiều kim đồng hồ CW(Clockwise) Tức là, khi ta quay trục Encoder theo chiều kim đồng hồ thì xung A sẽ lệch pha với xung B một góc 90 độ Ngược lại, nếu ta quay trục Encoder ngược chiều kim đồng hồ CCW( Couter Clockwise), thì xung B sẽ xuất tín hiệu trước xung A. Lúc này, xung B sẽ lệch pha xung A góc 90 độ
Dựa vào cách xác định Xung nào xuất tín hiệu trước, ta xác định chiều quay của Encoder
Ta có thể sử dụng ba loại mã hóa: x1, x2 và x4 Sự khác biệt giữa các loại mã hóa này là số lượng cạnh xung được tính trong quá trình di chuyển Chế độ mã hóa khác nhau dẫn đến độ phân giải của bộ mã hóa có hiệu suất khác nhau.
Với chế độ X1, cạnh tăng (còn gọi là dẫn đầu) hoặc cạnh giảm (còn gọi là theo sau) của kênh A đều được tính Nếu kênh A dẫn kênh B, cạnh tăng sẽ được tính và chuyển động tiến về phía trước hoặc theo chiều kim đồng hồ Ngược lại, nếu kênh B dẫn trước kênh A thì cạnh rơi sẽ được tính và chuyển động lùi hoặc ngược chiều kim đồng hồ.
Hình 1.2 : Chế độ mã hóa x1
Sử dụng chế độ nhân đôi (x2) sẽ tính cả cạnh lên và cạnh xuống của kênh A Nhờ đó, số lượng xung tính cho mỗi vòng quay hoặc khoảng cách tuyến tính tăng gấp đôi, dẫn đến độ phân giải bộ mã hóa cao gấp đôi.
Hình 1.3 : Chế độ mã hóa x2
Mã hóa chế độ x4 sẽ đếm cả cạnh lên và cạnh xuống của cả hai kênh A và B, giúp tăng gấp bốn lần số xung và tăng độ phân giải lên bốn lần.
Hình 1.4 : Chế độ mã hóa x4 b) Cách tính góc quay của động cơ từ số xung Encoder : read 360 round
Với là góc xoay, Pulse read là số xung đọc được, Pulse round là số xung mỗi vòng của động cơ sau khi qua hộp số.
Trong đó : round mod read
Với Pulse là số xung mỗi vòng của động cơ khi chưa có hộp số, n là tỉ số truyền giữa trục động cơ và hộp số, mod read là chế độ đọc c) Tìm hiểu về mạch cầu H :
L298 là một loại mạch cầu H - mạch điện được sử dụng để điều khiển động cơ điện
DC theo hai hướng khác nhau: tiến và lùi Mạch này được gọi là "H-Bridge" vì cấu trúc của nó gồm bốn chân kết nối giống như chữ "H".
Cấu trúc mạch cầu H cơ bản bao gồm bốn chân nối đối xứng tạo thành hình chữ "H" Mỗi cặp chân đối diện của "H" kết nối với cặp công tắc hoặc transistor điều khiển Khi kích hoạt những công tắc hoặc transistor này theo cách nhất định, dòng điện sẽ chạy qua động cơ theo một hướng cụ thể, dẫn đến chuyển động theo hướng đó Bằng cách kích hoạt chúng theo cách khác, động cơ có thể được đảo ngược hướng quay.
L298 chịu được điện áp 12V-3A được thiết kế để chấp nhận các mức logic TTL tiêu chuẩn và điều khiển tải cuộn dây như relay, solenoid, động cơ DC và bước Hai đầu vào kích hoạt được cung cấp để kích hoạt hoặc vô hiệu hóa thiết bị độc lập với tín hiệu đầu vào d) Tìm hiểu động cơ : Động cơ giảm tốc GA25-370 có encoder cấu tạo thực tế là động cơ giảm tốc
DC bình thường có gắn thêm phần Encoder để có thể trả xung về vi điều khiển giúp xác định vị trí, vận tốc, từ đó vi điều khiển tác động lại động cơ qua mạch công suất, sử dụng các thuật toán để điều khiển ngược lại động cơ.
Bảng 1 : Thông số kỹ thuật động cơ GA25-370
Tốc độ quay 130 rpm Điện áp định mức 12 V dc Điện áp hoạt động 6-12 V dc
Loại Có chổi than Đường kính trục 4mm
Chiều dài động cơ 55mm Đường kính động cơ 25mm
Tỉ số truyền trong hộp số :
Dựa vào Bảng 1, ta có tỉ số truyền của động cơ giảm tốc GA25-370 là 1:45, có nghĩa là với
45 vòng quay của trục đầu vào của động cơ, trục đầu ra của nó sẽ quay 1 vòng Điều này thường được sử dụng để mô tả tỉ số giữa số vòng quay của trục đầu vào và trục đầu ra của một hệ thống truyền động.
Sơ đồ kết nối chân :
Hình 1.5 : Sơ đồ kết nối chân L298N
Bảng 2: Chức năng các chân
Tên các chân Chức năng
IN1 và IN2: Các chân đầu vào điều khiển hướng quay của động cơ A IN3 và IN4: Các chân đầu vào điều khiển hướng quay của động cơ B ENA: Chân kích hoạt chế độ PWM cho động cơ A.
ENB Kích hoạt tín hiệu PWM cho Động cơ B
OUT1 & OUT2 Chân đầu ra cho động cơ A e) Các tiêu chuẩn đánh giá hệ thống :
Sai số: là sai lệch giữa tín hiệu đặt và tín hiệu hồi tiếp.
Sai số xác lập: là sai số của hệ thống khi thời gian tiến đến vô cùng lim ( ) lim ( )0 xl t s e e t s E s
Hiện tượng vọt lố: là hiện tượng đáp ứng của hệ thống vượt quá giá trị xác lập của nó. max xl 100% xl c c
Độ vọt lố phần trăm POT (Percent of Overshoot): là đại lượng đánh giá mức độ vọt lố của hệ thống.
Thời gian xác lập: là thời gian cần thiết để sai lệch giữa đáp ứng của hệ thống và giá trị xác lập của nó không vượt quá % (thường chọn là % = 2% hoặc % = 5%)
Thời gian lên tr : là thời gian cần thiết để để đáp ứng của hệ thống tăng từ 10% đến
90% giá trị xác lập của nó
Hình 1.7 : Tính toán thời gian lên của đáp ứng ngõ ra
Các bước thực hiện
Sơ đồ tổng quan
Khối điều khiển Động cơ Encoder
Hình 1.8 : Sơ đồ tổng quan
Sơ đồ tổng quan động cơ được mô tả trong Hình 1 8 Chương trình từ máy tính thông qua khối điều khiển để điều khiển động cơ.Encoder đọc số xung và phản hồi về khối điều khiển để điều chỉnh công suất động cơ phù hợp.
Hình 1.9 : Sơ đồ nối dây mô hình động cơ DC
Trong Error: Reference source not found là sơ đồ nối dây của mô hình động cơ, trong đó sử dụng vi điều khiển trung tâm là Arduino mega 2560 Mega 2560 sẽ điều khiển mạch công suất
L298H để điều khiển động cơ sau đó nhận tín hiệu phản hồi về từ encoder Nguồn tổ ong 12V cấp điện áp cho mạch công suất L298N.
Mô hình thực tế
Hình 1.10: Mô hình điều khiển động cơ DC thực tế
Tổng quan mô hình động cơ, bao gồm :
- Động cơ DC servo có gắn encoder.
Kết Nối Và Chương Trình Sử Dụng
Hình 1.11 : Cổng kết nối với Arduino
Thư viện
- Bước 1: Ở thẻ Home trong giao diện Matlab ta chọn vào Add-Ons Cửa sổ Add-On
Hình 1.12 : Cửa sổ Add-On Explorer
- Bước 2: Trong phần Search của cửa số Add-On Explorer ta nhập từ khóa “Simulink support package for arduino hardware” Thông tin về tool ta cần sẽ hiện ra.
Hình 1.13 : Package for Arduino Hardware
- Bước 3: Nhấn vào tool đó và nhấn Install để cài đặt
Hình 1.14 Cài đặt Simulink support package for arduino hardware b) Thư viện cho động cơ :
- Bước 1: Vào Matlab Simulink để tải Device Driver, nhấn Add-Ons dưới đây:
Hình 1.15: Thư viện Device Drivers Đối với các trường hợp không tải được, ta sẽ tải bằng cách 2 : Truy cập vào Link sau : https://www.mathworks.com/matlabcentral/fileexchange/39354 devicedrivers?s_tid=srchtitle_device%20driver_1:
Thực hiện kiểm tra hoạt động của động cơ DC
a) Khối Constant : Đầu tiên, ta kiểm tra động cơ chạy 1 chiều với đầu vào là khối Constant.
Hình 1.16 : Kiểm tra động cơ với đầu vào là khối Constant
Chương trình Matlab hàm L298 : function [ENA,INT1,INT2] = L298(in1)
Thiết lập trong khối Saturation : Upper Limit : 240, Lower Limit : -240 để giới hạn đầu vào cho động cơ DC.
Hình 1.17 : Dạng sóng ngõ ra khối Constant = 200
- Khi cấp tín hiệu đặt là 200, động cơ sẽ chạy theo chiều thuận với tốc độ 200 Ngược lại, khi ta cấp tín hiệu đặt là -200 thì động cơ sẽ chạy theo chiều nghịch với tốc độ 200. b) Sau khi động cơ đã hoạt động, tiếp tục kiểm tra với đầu vào là khối Sin Wave :
Hình 1.18 : Tín hiệu đầu vào là sóng Sine
Ta thu được dạng sóng ra như sau :
Hình 1.19 : Dạng sóng sine đầu vào
Xây dựng bộ điều khiển vòng hở có tín hiệu đọc về từ Encoder
Trường hợp 1 : Xét tín hiệu đặt là khối Constant = 200 :
Hình 1.20 : Sơ đồ bộ điều khiển vòng hở với đầu vào là khối Constant = 200
Chương trình Matlab hàm Calib : function out = cal(in)
%che do doc : x4 out = (in*2*180)/(45*11*4);
Sử dụng hàm Calib để chuyển đổi số xung đọc được từ Encoder thành góc quay của động cơ DC Mỗi động cơ sẽ có số xung Encoder và tỉ số truyền của hộp số khác nhau, chế độ đọc Encoder cũng ảnh hưởng nhiều đến tính toán độ chính xác góc quay động cơ.
Ta thu được dạng sóng như sau :
Hình 1.21 : Dạng sóng đầu ra khi tín hiệu đầu vào là khối Constant = 200
Dạng sóng đầu ra khi có tín hiệu đọc về từ Encoder có dạng như trên tại t = 9.2s là do kiểu dữ liệu của biến đọc Encoder là kiểu Short Int (-32768 đến 32768) Do đó khi biến đọc Encoder bị tràn thì biến đọc sẽ trở về giá trị -32768 và tiếp tục đếm.
Trường hợp 2 : Xét tín hiệu đặt là hàm sóng Sine với biên độ = 200, tần số 2*pi/10
Hình 1.22 : Sơ đồ bộ điều khiển vòng hở với đầu vào là sóng Sine có biên độ = 200
Ta thu được dạng sóng như sau :
Hình 1.23 : Dạng sóng đầu ra khi tín hiệu đầu vào là sóng Sine với biên độ = 200
Khảo sát bộ điều khiển PID
Khảo sát đáp ứng ngõ ra của hệ thống với Ki=0, Kd=0, thay đổi Kp
- Tín hiệu đặt là hàm Step với biên độ là 200, thời gian mô phỏng là
10s, thời gian lấy mẫu là 0.01s, chương trình mô phỏng là MATLAB 2019a.
- Vẽ các đáp ứng của ngõ ra động cơ DC ứng với các thông số bộ điều khiển khác nhau.
- Vẽ các đáp ứng của tín hiệu điều khiển ứng với các thông số bộ điều khiển khác nhau.
- Lập bảng xác định các thông số chất lượng bộ điều khiển ứng với các thông số bộ điều khiển khác nhau.
Ta tiến hành vẽ đồ thị ở 6 trường hợp Kp trên Scope và đọc các giá trị để đánh giá chất lượng của hệ thống thông qua : Thời gian lên, thời gian xác lập, sai số xác lập, độ vọt lố.
Chương trình Matlab hiển thị đồ thị đáp ứng ngõ ra : clc; close all; figure(); plot(Kp1_out.time,Kp1_out.signals.values,' ','LineWidth',1.5,
The plot shows the time responses of PID controllers (P, PI, and PID) with different gains (Kp2, Kp3, and Kp4) The blue, green, and red lines represent the responses of P, PI, and PID controllers, respectively The black line represents the reference input.
; hold on; plot(Kp5_out.time,Kp5_out.signals.values,'-','LineWidth',1.5,'Color','b')
; hold on; plot(Kp6_out.time,Kp6_out.signals.values,'-','LineWidth',1.5,'Color','r')
; hold on; legend('Kp=0.5','Kp=1','Kp=2','Kp=4','Kp=5','Kp') hold on; title('Output Respone'); xlabel('Times (s)'); grid on ylabel('Position '); fontsize(11);
Kp=0.5 Kp=1 Kp=2 Kp=4 Kp=5 Kp
Hình 1.25 : Đáp ứng ngõ ra khi Ki=0, Kd=0, thay đổi Kp
Chương trình Matlab hiển thị sai số ngõ ra : clc; close all; figure(); plot(Kp1_err.time,Kp1_err.signals.values,' ','LineWidth',1.5,
'Color','k'); hold on; plot(Kp2_err.time,Kp2_err.signals.values,' ','LineWidth',1.5,'Color','b' ); hold on; plot(Kp3_err.time,Kp3_err.signals.values,' ','LineWidth',1.5,'Color','r' ); hold on; plot(Kp4_err.time,Kp4_err.signals.values,'-','LineWidth',1.5,'Color','k')
; hold on; plot(Kp5_err.time,Kp5_err.signals.values,'-','LineWidth',1.5,'Color','b')
; hold on; plot(Kp6_err.time,Kp6_err.signals.values,'-','LineWidth',1.5,'Color','r')
; hold on; legend('Kp=0.5','Kp=1','Kp=2','Kp=4','Kp=5','Kp') hold on; title('Error'); xlabel('Times (s)'); grid on ylabel('Position '); fontsize(11);
200 Error kp=0.5 kp=1 kp=2 kp=4 kp=5 kp
Hình 1.26 : Sai số ngõ ra khi Ki=0, Kd=0, thay đổi Kp
Chương trình Matlab hiển thị tín hiệu điều khiển : clc; close all; figure(); plot(Kp1_ctrl.time,Kp1_ctrl.signals.values,' ','LineWidth',1.5,
'Color','k'); hold on; plot(Kp2_ctrl.time,Kp2_ctrl.signals.values,' ','LineWidth',1.5,'Color',' b'); hold on; plot(Kp3_ctrl.time,Kp3_ctrl.signals.values,' ','LineWidth',1.5,'Color',' r'); hold on; plot(Kp4_ctrl.time,Kp4_ctrl.signals.values,'-','LineWidth',1.5,'Color','k '); hold on; plot(Kp5_ctrl.time,Kp5_ctrl.signals.values,'-','LineWidth',1.5,'Color','b '); hold on; plot(Kp6_ctrl.time,Kp6_ctrl.signals.values,'-','LineWidth',1.5,'Color','r '); hold on; legend('Kp=0.5','Kp=1','Kp=2','Kp=4','Kp=5','Kp') hold on; title('Control Signal'); xlabel('Times (s)'); grid on ylabel('Amplitude '); fontsize(11);
300 Control Signal kp=0.5 kp=1 kp=2 kp=4 kp=5 kp
Hình 1.27 : Tín hiệu điều khiển khi Ki=0, Kd=0, thay đổi Kp
Lập bảng xác định các thông số chất lượng bộ điều khiển ứng với các trường hợp Kp :
Bảng 3 : Thông số chất lượng bộ điều khiển khi Kp thay đổi
Khi Kp tăng dần, độ vọt lố lớn dần đến khi Kp đủ lớn độ vọt lố sẽ giảm nhẹ.
Sai số xác lập có xu hướng giảm dần về 0 bám tín hiệu đặt khi Kp tăng dần.
Thời gian lên nhanh dần khi ta tăng Kp.
Thời gian xác lập chậm dần thể hiện việc hệ thống đáp ứng chậm.
Khảo sát đáp ứng ngõ ra của hệ thống với Kp=4, Kd=0, thay đổi Ki
Vẽ các đáp ứng của ngõ ra động cơ DC ứng với các thông số bộ điều khiển khác nhau.
Vẽ các đáp ứng của tín hiệu điều khiển ứng với các thông số bộ điều khiển khác nhau.
Lập bảng xác định các thông số chất lượng bộ điều khiển ứng với các thông số bộ điều khiển khác nhau.
Để đánh giá chất lượng hệ thống, ta tiến hành vẽ đồ thị ở 6 trường hợp Ki trên Scope Đọc các giá trị thời gian lên, thời gian xác lập, sai số xác lập, độ vọt lố từ đồ thị để đưa ra đánh giá chính xác.
Chương trình Matlab hiển thị đồ thị đáp ứng ngõ ra : clc; close all; figure(); plot(Ki1_out.time,Ki1_out.signals.values,' ','LineWidth',1.5,
'Color','k'); hold on; plot(Ki2_out.time,Ki2_out.signals.values,' ','LineWidth',1.5,'Color','b' ); hold on; plot(Ki3_out.time,Ki3_out.signals.values,' ','LineWidth',1.5,'Color','r' ); hold on; plot(Ki4_out.time,Ki4_out.signals.values,'-','LineWidth',1.5,'Color','k')
; hold on; plot(Ki5_out.time,Ki5_out.signals.values,'-','LineWidth',1.5,'Color','b')
; hold on; plot(Ki6_out.time,Ki6_out.signals.values,'-','LineWidth',1.5,'Color','r')
; hold on; legend('Ki=0.1','Ki=0.2','Ki=0.5','Ki=1','Ki=1.5','Ki=2') hold on; title('Output Respone'); xlabel('Times (s)'); grid on ylabel('Position '); fontsize(11);
Output Respone ki=0.1 ki=0.2 ki=0.5 ki=1 ki=1.5 ki=2
Hình 1.28 : Đáp ứng ngõ ra khi Kp=4, Kd=0, thay đổi Ki
Chương trình Matlab hiển thị sai số ngõ ra : clc; close all; figure(); plot(Ki1_err.time,Ki1_err.signals.values,' ','LineWidth',1.5,
'Color','k'); hold on; plot(Ki2_err.time,Ki2_err.signals.values,' ','LineWidth',1.5,'Color','b' ); hold on; plot(Ki3_err.time,Ki3_err.signals.values,' ','LineWidth',1.5,'Color','r' ); hold on; plot(Ki4_err.time,Ki4_err.signals.values,'-','LineWidth',1.5,'Color','k')
; hold on; plot(Ki5_err.time,Ki5_err.signals.values,'-','LineWidth',1.5,'Color','b')
; hold on; plot(Ki6_err.time,Ki6_err.signals.values,'-','LineWidth',1.5,'Color','r')
; hold on; legend('Ki=0.1','Ki=0.2','Ki=0.5','Ki=1','Ki=1.5','Ki=2') hold on; title('Error'); xlabel('Times (s)'); grid on ylabel('Position '); fontsize(11);
200 Error ki=0.1 ki=0.2 ki=0.5 ki=1 ki=1.5 ki=2
Hình 1.29 : Sai số ngõ ra khi Kp=4, Kd=0, thay đổi Ki
Chương trình Matlab hiển thị tín hiệu điều khiển : clc; close all; figure(); plot(Ki1_ctrl.time,Ki1_ctrl.signals.values,' ',
'LineWidth',1.5, 'Color','k'); hold on; plot(Ki2_ctrl.time,Ki2_ctrl.signals.values,' ',
'LineWidth',1.5,'Color','b'); hold on; plot(Ki3_ctrl.time,Ki3_ctrl.signals.values,' ',
'LineWidth',1.5,'Color','r'); hold on; plot(Ki4_ctrl.time,Ki4_ctrl.signals.values,'-',
'LineWidth',1.5,'Color','k'); hold on; plot(Ki5_ctrl.time,Ki5_ctrl.signals.values,'-',
'LineWidth',1.5,'Color','b'); hold on; plot(Ki6_ctrl.time,Ki6_ctrl.signals.values,'-',
'LineWidth',1.5,'Color','r'); hold on; legend('Ki=0.1','Ki=0.2','Ki=0.5','Ki=1','Ki=1.5','Ki=2') hold on; title('Control Signal'); xlabel('Times (s)'); grid on ylabel('Amplitude '); fontsize(11);
300 Control Signal ki=0.1 ki=0.2 ki=0.5 ki=1 ki=1.5 ki=2
Hình 1.30 : Tín hiệu điều khiển khi Kp=4, Kd=0, thay đổi Ki
Lập bảng xác định các thông số chất lượng bộ điều khiển ứng với các trường hợp Ki
Bảng 4 : Thông số chất lượng bộ điều khiển khi Ki thay đổi
Khi có tác động của hệ số Ki, hệ thống có độ vọt lố cao và tăng dần khi Ki tăng.
Sai số xác lập rất nhỏ có xu hướng giảm dần về 0 bám tín hiệu đặt khi Ki tăng dần.
Thời gian lên ngắn và ít thay đổi khi ta tăng Ki.
Thời gian xác lập tăng dần, tuy nhiên rất ngắn thể hiện hệ thống đáp ứng nhanh.
Khảo sát đáp ứng ngõ ra của hệ thống với Kp=4, Ki=0.2, thay đổi Kd
Vẽ các đáp ứng của ngõ ra động cơ DC ứng với các thông số bộ điều khiển khác nhau.
Vẽ các đáp ứng của tín hiệu điều khiển ứng với các thông số bộ điều khiển khác nhau.
Lập bảng xác định các thông số chất lượng bộ điều khiển ứng với các thông số bộ điều khiển khác nhau.
Ta tiến hành vẽ đồ thị ở 6 trường hợp Kd trên Scope và đọc các giá trị để đánh giá chất lượng của hệ thống thông qua : Thời gian lên, thời gian xác lập, sai số xác lập, độ vọt lố.
Chương trình Matlab hiển thị đồ thị đáp ứng ngõ ra : clc; close all; figure(); plot(Kd1_out.time,Kd1_out.signals.values,' ','LineWidth',1.5,
The three additional plots in the figure correspond to the signals Kd2_out, Kd3_out, and Kd4_out, shown in blue, red, and black, respectively The plotted lines are dashed for Kd2_out and Kd3_out, indicating that these are intermediate signals in the diagram, while Kd4_out is a solid line, indicating its final output.
; hold on; plot(Kd5_out.time,Kd5_out.signals.values,'-','LineWidth',1.5,'Color','b')
; hold on; plot(Kd6_out.time,Kd6_out.signals.values,'-','LineWidth',1.5,'Color','r')
; hold on; legend('Kd=0.1','Kd=0.2','Kd=0.5','Kd=1','Kd=1.5','Kd=2') hold on; title('Output Respone'); xlabel('Times (s)'); grid on ylabel('Position '); fontsize(11);
250 Output Respone kd=0.1 kd=0.2 kd=0.5 kd=1 kd=1.5 kd=2
Hình 1.31 : Đáp ứng ngõ ra khi Kp=4, Ki=0.2, thay đổi Kd
Chương trình Matlab hiển thị sai số ngõ ra : clc; close all;figure(); plot(Kd1_err.time,Kd1_err.signals.values,' ','LineWidth',1.5,
'Color','k'); hold on; plot(Kd2_err.time,Kd2_err.signals.values,' ','LineWidth',1.5,'Color','b' ); hold on; plot(Kd3_err.time,Kd3_err.signals.values,' ','LineWidth',1.5,'Color','r' ); hold on; plot(Kd4_err.time,Kd4_err.signals.values,'-','LineWidth',1.5,'Color','k')
; hold on; plot(Kd5_err.time,Kd5_err.signals.values,'-','LineWidth',1.5,'Color','b')
; hold on; plot(Kd6_err.time,Kd6_err.signals.values,'-','LineWidth',1.5,'Color','r')
; hold on; legend('Kd=0.1','Kd=0.2','Kd=0.5','Kd=1','Kd=1.5','Kd=2') hold on;title('Error');xlabel('Times (s)'); grid on ylabel('Position ');fontsize(11);
200 Error kd=0.1 kd=0.2 kd=0.5 kd=1 kd=1.5 kd=2
Hình 1.32 : Sai số ngõ ra khi Kp=4, Ki=0.2, thay đổi Kd
Chương trình Matlab hiển thị tín hiệu điều khiển : clc; close all; figure(); plot(Kd1_ctrl.time,Kd1_ctrl.signals.values,' ',
'Color','k'); hold on; plot(Kd2_ctrl.time,Kd2_ctrl.signals.values,' ',
'Color','b'); hold on; plot(Kd3_ctrl.time,Kd3_ctrl.signals.values,' ',
'Color','r'); hold on; plot(Kd4_ctrl.time,Kd4_ctrl.signals.values,'-',
'Color','k'); hold on; plot(Kd5_ctrl.time,Kd5_ctrl.signals.values,'-',
'LineWidth',1.5,'Color','b'); hold on; plot(Kd6_ctrl.time,Kd6_ctrl.signals.values,'-','LineWidth',1.5,'Color','r'); hold on; legend('Kd=0.1','Kd=0.2','Kd=0.5','Kd=1','Kd=1.5','Kd=2') hold on; title('Control Signal'); xlabel('Times (s)'); grid on ylabel('Amplitude '); fontsize(11);
300 Control Signal kd=0.1 kd=0.2 kd=0.5 kd=1 kd=1.5 kd=2
Hình 1.33 : Tín hiệu điều khiển khi Kp=4, Ki=0.2, thay đổi Kd
Lập bảng xác định các thông số chất lượng bộ điều khiển ứng với các trường hợp Kd
Bảng 5 : Thông số chất lượng bộ điều khiển khi Kd thay đổi
Khi có tác động của hệ số Kd, độ vọt lố của hệ thống giảm về 0.
Sai số xác lập có xu hướng giảm dần khi Kd tăng dần.
Thời gian lên ngắn và tăng dần khi ta tăng Kd.
Thời gian xác lập tăng dần.
Thiết kế bộ điều khiển PID
Trường hợp 1
Yêu cầu : POT (%) < 5%, Ess(Deg/s) < 1, Tr(s) < 1.1 , Tss(s) < 1.4
Sau quá trình lựa chọn các hệ số Kp, Ki, Kd dựa trên ảnh hưởng của từng hệ số lên hệ thống, ta tìm được các hệ số như sau : Kp = 8.8, Ki = 0.14, 0.308
Hình 1.34 : Đáp ứng ngõ ra khi Kp=8.8, Ki=0.14, Kd = 0.235
Hình 1.35 : Tín hiệu điều khiển khi Kp=8.8, Ki=0.14, Kd = 0.308
Dựa vào Hình 1 34, ta xác định được thông số chất lượng bộ điều khiển như sau :
Như vậy, ta đã thiết kế bộ điều khiển PID theo yêu cầu.
Trường hợp 2
Yêu cầu : POT (%) = 0% , Ess(Deg/s) < 0.5, Tr(s) < 1.5 , Tss(s) < 2Sau quá trình lựa chọn các hệ số Kp, Ki, Kd dựa trên ảnh hưởng của từng hệ số lên hệ thống, ta tìm được các hệ số như sau : Kp = 8.51, Ki = 0.1, Kd = 0.6.
Hình 1.36 : Đáp ứng ngõ ra khi Kp = 8.55, Ki = 0.105, Kd = 0.51
Hình 1.37 : Tín hiệu điều khiển khi Kp = 8.55, Ki = 0.105, Kd = 0.51
Dựa vào Hình 1 36Hình 1 34, ta xác định được thông số chất lượng bộ điều khiển như sau :
Như vậy, ta đã thiết kế bộ điều khiển PID theo yêu cầu.