Từ những biểu đồ Bode trên, chúng ta thấy rằng độ dự trữ pha có thể đạt được lớn hơn khoảng 600 ( đáp ứng pha khoảng -1200 ) nếu tần số w < 10 rad/s. Hãy thêm một khâu tỉ lệ vào hệ thống để tần số cắt biên là 10 rad/s và trong đó sẽ cho chúng ta độ dự trữ pha khoảng 60o . Để tìm đáp ứng biên độ ở 10 rad/s bạn có thể cố gắng đọc trên biểu đồ Bode biên độ (có vẽ lớn hơn
-40 dB hoặc 0,01 về độ lớn). Lệnh Bode được gọi cùng với các đối số bên trái cũng có thể được sử dụng để cung cấp cho bạn những thông số chính xác về độ lớn:
22 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1719 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đồ án Phương pháp thiết kế bộ điều khiển tốc độ động cơ DC theo đáp ứng tần số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI NÓI ĐẦU
Lý thuyết và kỹ thuật điều khiển hệ thống tự động cho các quá trình sản xuất, các quy trình công nghệ, các đối tượng công nghiệp, quốc phòng, y tế…trong những năm gần đây đã có những bước nhảy vọt nhờ sự phát triển mạnh mẽ của kỹ thuật máy tính và công nghệ thông tin.
Vai trò của lý thuyết và kỹ thuật điều khiển hệ thống tự động đã ngày càng trở nên quan trọng cho sự phát triển của thế giới nói chung, cũng như của Việt Nam nói riêng. Đặt biệt khi sự xuất hiện liên tiếp của các dây truyền hệ thống tự động hóa ngày một hiện đại và phức tạp thì sự đòi hỏi một đội ngũ cán bộ kỹ thuật viên có đủ trình độ để am hiểu, điều khiển và vận hành… chúng trở thành vấn đề sống còn cho sự phát triển của nền kinh tế công nghiệp của đất nước ở hiện tại cũng như trong tương lai.
Vì vậy việc đào tạo đội ngũ này trở nên rất quan trọng. Nhất là ở bậc đại học lý thuyết và kỹ thuật điều khiển hệ thống tự động là học phần chiếm nhiều tiết học nhất đối với các sinh viên các ngành kỹ thuật điển hình là ngành Cơ Điện Tử .Chúng em được những môn học liên quan đến nó như: Điều Khiển Hệ Thống 1, Điều Khiển Hệ Thống 2, Điều Khiển Hệ Thống 3 và Đồ Án Điều Khiển Hệ Thống.
Đó là lý do em được giao đề tài: “Example: Frequency Design Method for DC Motor Speed Control” (Ví Dụ: Về Phương Pháp Thiết Kế Bộ Điều Khiển Cho Tốc Độ Động Cơ DC Theo Cách Đáp Ứng Tần Số) trong học phần Đồ Án Điều Khiển Hệ Thống này nhằm củng cố các kiến thức lý thuyết đã được học.
Em xin chân thành cám ơn thầy Nguyễn Chí Ngôn, các quý thầy cô trong bộ môn đã tận tình hướng dẩn, giúp đở em trong suốt quá trình thực hiện đồ án này.
Trong quá trình thực hiện đồ án không thể tránh khỏi những thiếu xót, sai lầm vì với lượng kiến thức còn khá hạn hẹp… mong quý thầy cô góp ý chỉ bảo.
SINH VIÊN THỰC HIỆN:
NGUYỄN THÀNH NAM
MỤC LỤC
FNHIỆM VỤ 1: DỊCH CÁC TRANG TÀI LIỆU TIẾNG ANH SAU SANG TIẾNG VIỆT.
Example: Frequency Design Method for DC Motor Speed Control
Drawing the original Bode plotAdding proportional gain Plotting the closed-loop response Adding a lag controller
From the main problem, the dynamic equations and the open-loop transfer function of DC Motor Speed are:
and the system schematic looks like:
For the original problem setup and the derivation of the above equations, please refer to the Modeling a DC Motor page.
With the 1 rad/sec step input, the design criteria are:
Settling time less than 2 seconds
Overshoot less than 5%
Steady-state error less than 1%
Create a new m-file and type in the following commands (refer to the main problem for the details of getting those commands).
J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
Drawing the original Bode plot
The main idea of frequency-based design is to use the Bode plot of the open-loop transfer function to estimate the closed-loop response. Adding a controller to the system changes the open-loop Bode plot, therefore changing the closed-loop response. Let's first draw the Bode plot for the original open-loop transfer function. Add the following code to the end of your m-file, and then run it in the Matlab command window.
bode (num,den)
You should get the following Bode plot:
Adding proportional gain
From the bode plot above, we see that the phase margin can be greater than about 60 degrees if w is less than 10 rad/sec. Let's add gain to the system so the bandwidth frequency is 10 rad/sec, which will give us a phase margin of about 60 degrees. To find the gain at 10 rad/sec, you can try to read it off the Bode plot (it looks to be slightly more than -40 dB, or 0.01 in magnitude). The bode command, invoked with left-hand arguments, can also be used to give you the exact magnitude:
[mag,phase,w] = bode(num,den,10)
mag =
0.0139
To have a gain of 1 at 10 rad/sec, multiply the numerator by 1/0.0139 or approximately 72.
num = 70*num
and rerun your m-file. You should have the following Bode plot:
Plotting the closed-loop response
From the plot above we see that the phase margin is now quite large. Let's see what the closed-loop response look like. Add a % in front of the bode commands and add the following code to the end of your m-file:
[numc,denc]=cloop(num, den, -1);
t=0:0.01:10;
step(numc,denc,t)
You will see the following plot:
The settling time is fast enough, but the overshoot and the steady-state error are too high. The overshoot can be reduced by reducing the gain a bit to get a higher phase margin, but this would cause the steady-state error to increase. A lag controller is probably needed.
Adding a lag controller
We can add a lag controller to reduce the steady-state error. At the same time, we should try to reduce the overshoot by reducing the gain. Let's reduce the gain to 50, and try a lag controller of
which should reduce the steady-state error by a factor of 1/0.01 = 100 (but could increase the settling time). Go back and change your m-file so it looks like the following:
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
num=50*K;
z=1;
p=0.1;
numa=[1 z];
dena=[1 p];
numb=conv(num,numa);
denb=conv(den,dena);
bode(numb,denb)
Rerun the file and you will get this plot:
The phase margin looks good. The steady-state error is predicted to be about 1/40dB or 1%, as desired. Close the loop and look at the step response. Add the following lines of code to the end of you m-file and rerun.
[numc,denc]=cloop(numb, denb, -1);
t=0:0.01:10;
step(numc,denc,t)
Now you have a step response that meets the design requirements. The steady-state error is less than 1%, the overshoot is about 5%, and the settling time is about 2 seconds.
***********************************************************************
**BẢN DỊCH TIẾNG VIỆT NHƯ SAU:
Ví Dụ: Về Phương Pháp Thiết Kế Bộ Điều Khiển Cho Tốc Độ Động Cơ DC Theo Cách Đáp Ứng Tần Số.
Những vấn đề chính:
Vẽ biểu đồ Bode.
Thêm vào khâu tỉ lệ.
Vẽ đáp ứng vòng lặp kín.
Thêm vào một khâu hiệu chỉnh trể pha.
Từ những vấn đề chính ở trên, các phương trình động lực học ta có hàm truyền vòng hở của tốc độ động cơ DC là:
(Đối với ví dụ này, chúng tôi sẽ giả định các giá trị sau cho các tham số vật lý. Những giá trị này được bắt nguồn từ thực nghiệm của một động cơ thực sự trong phòng thí nghiệm điều khiển học của Carnegie Mellon. * Mômen quán tính của rotor (J) = 0,01 kg.m ^ 2 / s ^ 2 * Hệ số ma sát của các bộ phận cơ khí (b) = 0.1 NMS *Hằng số điện động (K = Ke = Kt) = 0.01 Nm / Amp * Điện trở dây quấn (R) = 1 ohm * Hệ số tự cảm (L) = 0,5 H * (V): điện áp đặt lên cuộn dây của motor* Góc (theta): vị trí của trục quay (ngõ ra của mô hình)
*I là dòng điện chạy trong cuộn dây của motor* Các cánh quạt và trục được giả định là cứng nhắc )
Và sơ đồ khối của hệ thống như sau:
Với : Controller là bộ điều khiển, Plant là đối tượng điều khiển.
Đối với những vấn đề được thiết lập ban đầu và dẩn xuất của các phương trình trên xin tham khảo phần mô phỏng động cơ DC.
Với tín hiệu vào là hàm nấc đơn vị 1 rad/s, tiêu chuẩn cần thiết kế là:
+ Thời gian xác lập : ts< 2s
+Độ vọt lố: POT< 5%.
+Sai số xác lập: exl <1%.
Mở 1 file mới trong phần mềm matlab và gõ các lệnh sau đây vào cửa sổ lệnh (tham khảo các vấn đề chính chi tiết về việc viết các lệnh):
J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
*Bước 1: Vẽ biểu đồ Bode.
Ý tưởng chính của việc thiết kế dựa trên đáp ứng tần số là sử dụng các biểu đồ Bode của hàm truyền vòng hở để đánh giá đáp ứng vòng kín. Thêm vào hệ thống một khâu hiệu chỉnh phù hợp để thay đổi biểu đồ Bode của vòng hở, do đó làm thay đổi các đáp ứng vòng kín.Nhưng trước tiên hãy vẽ biểu đồ Bode cho hàm truyền vòng hở. Thêm lệnh sau vào cuối tập tin của bạn và sau đó cho nó chạy trong cửa sổ lệnh của Matlap:
bode(num,den)
Bạn sẽ nhận được những biểu đồ Bode sau đây:
(Phía trên là biểu đồ bode biên độ, phía dưới là biểu đồ bode pha)
*Bước 2 : Thêm vào khâu tỉ lệ.
Từ những biểu đồ Bode trên, chúng ta thấy rằng độ dự trữ pha có thể đạt được lớn hơn khoảng 600 ( đáp ứng pha khoảng -1200 ) nếu tần số w < 10 rad/s. Hãy thêm một khâu tỉ lệ vào hệ thống để tần số cắt biên là 10 rad/s và trong đó sẽ cho chúng ta độ dự trữ pha khoảng 60o . Để tìm đáp ứng biên độ ở 10 rad/s bạn có thể cố gắng đọc trên biểu đồ Bode biên độ (có vẽ lớn hơn
-40 dB hoặc 0,01 về độ lớn). Lệnh Bode được gọi cùng với các đối số bên trái cũng có thể được sử dụng để cung cấp cho bạn những thông số chính xác về độ lớn:
[mag,phase,w] = bode(num,den,10)
mag =
0.0139
Để có đáp ứng biên độ bằng 1 tại 10 rad/s (hay tần số cắt biên là 10 rad/s) ,nhân tử số hàm truyền cho 1/0,0139 gần bằng 72. Thêm lệnh sau vào cuối các dòng lệnh:
num = 70*num
và chạy tập tin Matlap của bạn sẽ có các biểu đồ Bode sau đây:
*Bước 3:Xem đáp ứng vòng kín.
Từ biểu đồ ở trên chúng ta thấy rằng độ dự trữ pha hiện nay là khá lớn. Hãy xem đáp ứng ở vòng kín như thế nào?.Thêm kí tự % vào trước các lệnh Bode và thêm đoạn lệnh sau vào cuối tập tin của bạn:
[numc,denc]=cloop(num, den, -1);
t=0:0.01:10;
step(numc,denc,t)
Bạn sẽ thấy các biểu đồ đáp ứng nấc sau :
Thời gian xác lập là đủ nhanh, nhưng độ vọt lố và sai số xác lập là quá cao . Độ vọt lố có thể giảm bằng cách hạ độ lớn khâu tỉ lệ một chút để có được độ dự trữ pha tốt hơn, nhưng điều này sẽ làm cho sai số xác lập gia tăng . Môt khâu hiệu chỉnh trể pha lúc này có thể là cần thiết .
*Bước 4 : Thêm khâu hiệu chỉnh trể pha (khâu trì hoãn).
Chúng ta có thể thêm khâu hiệu chỉnh trể pha để làm giảm sai số xác lập ,đồng thời chúng ta nên cố gắng giảm độ vọt lố bằng cách giảm độ lớn khâu tỉ lệ. Hãy giảm độ lớn khâu tỉ lệ đến 50 và thử với một khâu hiệu chỉnh trể pha là :
để làm giảm sai số xác lập bởi một hệ số 1/0,01=100 (nhưng có thể làm tăng thời gian xác lập ).Quay lại và đổi file Matlap của bạn như sau đây:
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
num=50*K;
z=1;
p=0.1;
numa=[1 z];
dena=[1 p];
numb=conv(num,numa);
denb=conv(den,dena);
bode(numb,denb)
chạy tập tin và bạn sẽ thấy biểu đồ này:
Độ dự trữ pha nhìn có vẽ rất tốt , sai số xác lập khoảng 1/40 dB hay 1%, như mong muốn. Tạo vòng lặp kín và xem đáp ứng nấc. Thêm đoạn lệnh sau vào cuối tập tin của bạn và chạy nó:
[numc,denc]=cloop(numb, denb, -1);
t=0:0.01:10;
step(numc,denc,t)
Bây giờ bạn có một đáp ứng step thoả mản các yêu cầu thiết kế : exl <1% ,POT khoảng 5% và thời gian xác lập gần bằng 2 giây.
FNHIỆM VỤ 2 (BÀI TẬP ÁP DỤNG) : ÁP DỤNG PHẦN LÝ THUYẾT ĐÃ DỊCH THIẾT KẾ BỘ ĐIỀU KHIỂN CHO ĐỐI TƯỢNG CÓ HÀM TRUYỀN HỆ HỞ NHƯ SAU:
Quy ước theo MSSV ta có:
Sơ đồ khối hệ thống như sau:
Với : Controller là bộ điều khiển, Plant là đối tượng điều khiển G(s)
Với tín hiệu vào là hàm nấc đơn vị 1 rad/s, tiêu chuẩn cần thiết kế là:
+ Thời gian xác lập : ts< 1s
+Độ vọt lố: POT< 0,05%.
+Sai số xác lập: exl <1%.
Mở 1 file mới trong phần mềm matlab ta gõ các lệnh sau đây vào cửa sổ lệnh ,ta có :
>> num=[7 0]
num =
7 0
>> den=[1 2 1]
den =
1 2 1
*Bước 1: Vẽ biểu đồ Bode.
Thêm lệnh sau vào cuối tập tin của chúng ta và sau đó cho nó chạy trong cửa sổ lệnh của Matlap:
bode(num,den)
Ta sẽ nhận được những biểu đồ Bode sau đây:
*Bước 2 : Thêm vào khâu tỉ lệ.
Từ những biểu đồ Bode trên, chúng ta thấy rằng độ dự trữ pha có thể đạt được lớn hơn khoảng 1800 (đáp ứng pha khoảng 00 ) nếu tần số w < 1 rad/s. Hãy thêm một khâu tỉ lệ vào hệ thống để tần số cắt biên là 1 rad/s và trong đó sẽ cho chúng ta độ dự trữ pha trong khoảng 0o . Để tìm đáp ứng biên độ ở 1 rad/s chúng ta có thể cố gắng đọc trên biểu đồ Bode (có vẽ l0 dB,khoảng 3,5 về độ lớn ). Lệnh Bode được gọi cùng với các đối số bên trái cũng có thể được sử dụng để cung cấp cho chúng những thông số chính xác về độ lớn:
>> [mag,phase,w]=bode(num,den,1)
mag =
3.5000
phase =
0
w =
1
Để có đáp ứng biên độ bằng 1 tại 1 rad/s ,nhân tử số hàm truyền cho 1/3,5 . Thêm lệnh sau vào cuối các dòng lệnh:
num = 0,286*num
và chạy tập tin Matlap của ta sẽ có biểu đồ Bode sau đây:
*Bước 3:Xem đáp ứng vòng kín.
Từ biểu đồ ở trên chúng ta thấy rằng giai đoạn có lợi hiện nay là khá lớn. Hãy xem những đáp ứng ở vòng kín như thế nào?.Thêm kí tự % vào trước các lệnh Bode và thêm đoạn lệnh sau vào cuối tập tin của bạn:
[numc,denc]=cloop(num, den, -1);
t=0:0.01:10;
step(numc,denc,t)
Bạn sẽ thấy các biểu đồ sau :
Thời gian xác lập là vô cùng, độ vọt lố không có và sai số xác lập là quá cao, đáp ứng step bằng 0 ở thời điểm xác lập . Độ vọt lố có thể nâng lên bằng cách tăng độ lớn khâu tỉ lệ để có độ dự trữ pha tốt hơn. Môt khâu hiệu chỉnh trể pha thông thường theo lý thuyết đã dịch lúc này là không phù hợp. Trong trường hợp này một khâu hiệu chỉnh PI hoặc PID có thể là cần thiết và phù hợp hơn (ta sử dụng trường hợp riêng của khâu hiệu chỉnh trể pha là khâu hiệu chỉnh tích phân tỉ lệ PI ,có độ lệch pha cực tiểu giữa tín hiệu vào và tín hiệu ra là -900 ứng với tần số bằng 0)
*Bước 4 : Thêm khâu hiệu chỉnh tích phân tỉ lệ PI.
Chúng ta có thể thêm khâu hiệu chỉnh tích phân tỉ lệ PI để làm giảm sai số xác lập ,đồng thời chúng ta nên cố gắng tạo độ vọt lố bằng cách tăng độ lớn khâu tỉ lệ. Hãy tăng độ lớn khâu tỉ lệ đến 10 và thử với một khâu hiệu chỉnh PI là :
K(s)=KP +KI/s= 10 +10/s
Sơ đồ thiết kế :
(KD=0)
Quay lại và đổi file Matlap của bạn như sau đây:
G=tf([7 0],[1 2 1]) ;
K=tf([10 10],[1 0]) ;
GS=G*K ;
Bode(GS)
Độ dự trữ pha nhìn có vẽ rất tốt , sai số xác lập khoảng 1%, như mong muốn. Tạo vòng lặp kín và xem đáp ứng nấc. Thêm đoạn lệnh sau vào cuối tập tin của bạn và chạy nó:
GK=feedback(GS,1);
t=0:0.01:10;
step([70 70 0],[1 72 71 0],t)
Bây giờ ta có một đáp ứng step thoả mản các yêu cầu thiết kế : exl <1% ,POT <0,05% và thời gian xác lập < 1 giây.
Các file đính kèm theo tài liệu này:
- do_an_dkhthong_nammm_3904.doc