BO GIAO DUC & DAO TAO
TRUONG DAI HOC DAN LAP HAI PHONG
THIET KE BO DIEU KHIEN LUAT PID DIEU KHIEN
DONG CO DC
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngụnh : ĐIỆN TỬ - VIỄN THÔNG
HAI PHONG - 2009
Trang 2MUC LUC
Lời mở đầnu - sưng 1
PHẢN A : CƠ SỞ LÝ THUYÉT VÀ THIẾT KẾ MẠCH 2
CHƯƠNG 1: ĐỘNG CƠ ĐIỆN MỘT CHIẾU . 5- 2
1.1 Cấu tạo của động cơ một ChiỀU - c cc St Sex St SE re Eveseereereeeo 2 1.2 Phân loại động cơ một ChiỀU St 3S S3 E2E E1 E SE reesereei 3 1.2.1 Động cơ một chiều,kích từ vĩnh cửu - se se ccsssz sa 3 1.2.2 Động cơ một chiêu không chối than - 5 + +£+£es+ 3 1.3 Các phương trình quan trọng . -<<<<c<ceeeeeeeeeeerrrrrs 4 1.4 Nguyên tắc hoạt động - sec chư cưng ch rkc 4 1.5 Đáp ứng của motor một chiễu + 2 + se £e£z£z£exzrerzrerxe 5
CHƯƠNG 2 : PHƯƠNG PHÁP ĐIÊU CHẾ ĐỘ RỘNG XUNG 8
2.1 Phương pháp điều chế độ rộng xung - 5 se cxcxcxcevxẻ 8 2.2 Phương pháp tạo ra PWM2 - cccecccccecceceeeeceeeeeeeeeeeeeeeeeeeeeeees 9
2.3 Ghép nỗi PWM với động cơ một te 10
CHUONG 3 : BO DIEU KHIEN TY LE - TICH PHAN - VI PHAN .11
3.1 Bộ Điều Khién PID Liên Tục + 5 << +xe£zxztererererree 11 3.1.1 Sử Dụng Mô Hình Xấp Xi Bậc Nhất Có Trễ Của Đối Tugng 13
3.1.2 Xác định tham số bằng thực nghiệm . -«<<<- 15 3.1.3 Phương pháp Chien — Hrones — Reswick . -«- ló 3.1.4 Phương pháp tổng Kuhn - 5-5 sec £E£EeEeEreeereeerereeed 18 3.2 Bộ Điều khiến PID sỐ -. 5< S333 SE E115 1111k 21 3.2.1 Nguyên lý điều khiển PID sỐ G2 + SE k cv vevzreeeed 21 3.2.2 Xác định tham số cho PID số bằng thực nghiệm 23 3.2.2.1 Xác định hàm quá độ của đối tượng -.- - << c«- 23
3.2.2.2 Xác định từ giá trỊ tới hạn . -cccSSssssssss 24
CHƯƠNG 4 : THIẾT KẾ MẠCH ĐIÊU KHIẾN ĐỘNG CƠ 25 4.1 Khối vi điều khin + =ESsxx+ SE ExTvcvck kg rrrryc, 25 4.2 Khối hiển thị + + + << SEEE E2 1113131311131 te 25
4.3 Khối mạch động CƠ . tt SE 1c net 26
4.4 Khơi n8đ << sctstvx tt TH 1 1130011111111 ree 27
4.5 Khối Jump và bàn phím - + SE cv re reeeed 28
4.6 Lưu đồ thuật toán và chương chình điều khiến .-. 29
Trang 3PHẢN B: PHỤ LỤCC << £ 5 «<< 9S xxx xS.ESEeSxxxe 39
** GOI THIEU VI DIEU KHIEN PIC16F877A -s- «5-52 39
+ Téng quan vé thiét Di ececececessecececececeseseseecececacecceseseeeevevavaceeeees 39 +Tổ chức bộ n"hớ 2-2-2 + + 2+ +E+E+E£E£E+E+E2EEEEEEEECEEEEEEEEEEEErrrec 44 + Công \C UÊv 44} 51
m©:‹›9 áo v n 57
+ Bộ chuyên đổi tương tự sang 86 oo eccesesesesesesesesesesesesestseseseees 66 + Cdc ngat cia PICIGE877A .o.cccccccsccsesecesesesesessececacecceseseevevevavaceceees 69 +So sdnh voi vi diéu khién 8051 eececeeeseeeeseseseeeeeeseseseeseseeeeees 70
** GIỚI THIỆU VẺ THIẾT BỊ HIỄN THỊ LCD - 71
Trang 4LOI MO DAU
Động cơ một chiều được ứng dụng rất rộng rãi trong nhiều lĩnh vực thực tiễn, vì vậy có rất nhiều đề tài thiết kế bộ điêu khiến cho động cơ một
chiều và được đề cập rất nhiều trên các sách báo , tạp trí và Internet Việc ứng dụng động cơ DC vào sản xuất cũng như nghiên cứu khoa học đã mang lại những thành tựu nhất định
Tuy nhiên để động cơ DC hoạt động tốt thì ta phải thiết kế cho nó một bộ điều khiển giúp cho động cơ hoạt động một cách linh hoạt Hiện nay có
rất nhiều bộ điều khiển có thể làm tốt việc đó , tuy nhiên cá nhân em nhận
thấy bộ điều khiến PID có thể đáp ứng tốt các yêu câu của việc điều khiến động cơ DC, bộ điều khiển này được ứng dụng rất rộng rãi vi nó là một điều khiển đơn giản nhưng lại rất linh hoạt có thê áp dụng được cho rất nhiêu loại
động cơ, vì vậy em đã nhận đề tài này nhằm tìm hiểu kĩ hơn về bộ điều khiến đó
Trong quá trình làm đồ án tốt nghiệp, do sự hạn chế về thời gian, tài liệu và trình độ có hạn nên không tránh khỏi có thiêu sót Em rât mong được sự đóng góp ý kiên của thây cô trong hội đông và các bạn đê đô án tôt nghiệp của em được hoàn thiện hơn
Em xin gửi lời cảm ơn chân thành đên các thây cô trong Khoa Dién-
Trang 5CO SO LY THUYET VA THIET KE MACH CHUONG 1: DONG CO DIEN MOT CHIEU 1.1 Câu tạo của động cơ một chiều
Một động cơ một chiều có 6 phân cơ bản: + Phân ứng hay Rotor (Armature)
+ Cé gdp (Commutat) + Chéi than (Brushes) + Truc motor (Axle) + Nam cham từ trường + Bộ phận cung cấp dòng điện DC w Commutator © e *— Brushes z Axle > Armature _ = Magnet 2001 HosSuffWons
1.2 Phân loại động cơ một chiêu
Trang 6Động cơ một chiều có thể chia làm một số loại cơ bản
- Động cơ một chiều,kích từ độc lập - Động cơ một chiều, kích từ nối tiếp
- Động cơ một chiều, kích từ song song - Động cơ một chiều, không chỗi than
1.2.1 Động cơ một chiều,kích từ vĩnh cửu
+ Là trường hợp đặt biệt của động cơ một chiều kích thích độc lập Cuộn dây kích từ trên stator được loại bỏ và thay bằng một cặp nam châm vĩnh cửu
+ Điện áp nuôi được đưa vào qua cô góp cơ khí.Dòng điện chạy qua cuộn dây tạo ra một từ trường và bị từ trường nam châm cỗ định hấp han khiến rotor quay cho tới khi cực được nam châm hóa thắng với cực nam châm Đúng lúc ấy, chỗi than và vành góp chuyên điện áp cung cấp sang cặp Cực tiếp theo
+ Chiều quay của động cơ một chiều do chiều dòng điện cấp vào phân ứng, đề đáo chiều chỉ cần đáo điện áp phần ứng
1.2.2 Động cơ một chiều không chỗi than
+ Động cơ một chiều không chối than không được cấp liên tục một
điện áp một chiều.Rotor của động cơ là một nam châm vĩnh cửu.Stator gôm các cực dây cuốn, khi được cấp điện, các cực này hoạt động giống như một nam châm điện
+ Động cơ một chiêu không chổi than không sử dụng chỗi than và cô góp Việc cấp điện áp lần lượt cho các cực từ thực hiện bằng mạch điện tử cua driver
+ Việc loại bỏ chối than cỗ góp tránh được đánh lửa cô góp, tăng công suất, tăng tốc độ maximum Tuy nhiên luôn đòi hỏi phải có một bộ điều
khiển điện tử
1.3 Các phương trình quan trọng
Trang 7Phương trình cơ bán của động cơ 1 chiều
E=K®.omega (1.1)
V=E+Ru_ Iu (1.2)
M=KOlu (1.3)
Với:
®: Từ thơng trên mỗi cuc (Wb) Iư:Dòng điện phân ứng (A)
V: Điện áp phân ứng (V) Rư : Điện trở phần ứng (Ohm) Omega : Tốc độ động cơ (rad/s) M : moment déng co (Nm) K: Hang s6 phu thudc cầu trúc động cơ + Phương trình tốc độ U ng R, +R, K K i ¢ é +Phuong trinh moment M=K,1
Ung Di€én áp nguồn nuoi Re Dién tro phu
K Hệ số động cơ œ Từ thông cực từ
R¿ Điện trở mạch phân ung
1.4 Nguyên tắc hoạt động
Dé cho motor 1 chiều hoạt động,chúng ta cần đặt 1 điện ap 1 chiéu vao motor va 1 dong dién 1 chiéu sé chay qua motor, motor sé chay theo chiều nào đó Nếu chúng ta đảo chiều của điện áp một chiều này, mofor sẽ quay ngược lại
1.5 Đáp ứng của motor một chiều
Trang 8Các thông số của motor một chiều DC cảm ứng gồm: - _ R;: điện trở cuộn dây cảm tng [ohm]
- - Lạ: điện cảm cuộn dây [Henrry] - _ vạ: thé dat trên cuộn đây [V]
- _ vụ: sức điện động cảm ứng phán hồi ngược [V] - @: gdc quay truc motor [radian]
- —T: lực xoắn [N.m]
- _ Jr: mômen quán tính của tải [kg.m']
- _ J: mômen tương đương của quán tính motor và tải tác độ lên trục motor: J = ]ựn + Jin [kg.m7]
- _n: tỷ số truyền bánh răng
- —B: hệ số nhớt ma sát tương đương của motor và tải tác động lên trục quay [N.m/rad/sec]
- K;: hằng số sức điện động phản hồi ngược [V/rad/s]
- _ K¿ hệ số khuếch đại của cảm biến tốc độ ( tachometer)
- Km: hằng số motor [N.m/A]
Như vậy, môtơ một chiều dùng cuộn dây cảm ứng tự nó đã là một hệ điều khiển có phán hồi Trong đó sức điện động phản hồi ngược (back — emf voltage ) tỷ lệ với tốc độ của môtơ Sơ đồ khối của một môtơ một chiều được trình bày trên hình vẽ Trong đó đã bao gồm cả tác dụng của tải ngoại như lực xoắn nhiễu Tt V;(s) là lượng vào (thế đặt) và O(s) là lượng ra (tốc độ trục quay môt0)
Trang 9L Họ ‘\i, R, L K_K,+R pe) ast 4) 7 4 Bt |p + —m bh a R, R,J, a K, J Hay O(s)=—*_V,(s)-—*—T,(s) T s+ 7„#+l (1.4) m m
Vol: Kepe= Ky/(R2B +KpKy) là hang số khuếch đại điện của môtơ Tm = RiJm/ (RaB +KmKy) là hang số cơ của môtơ
Nếu kết hợp quán tính tải và tý số bánh răng giảm tốc thì có thể thay thế J„ trong các biểu thức bằng J Ta có thê viết:
O(s) = O(s)|T, (s) =0 + O(s)|V„(s) =0 (1.5)
Đề tính đáp ứng w(), cho Tụ = 0 ( không có can nhiễu và B = 0 ) và
thé V,(t) = A, nhu vay V,(s) = A/s, ta có:
w(t) ==q etl) (1.6)
Trong trường hợp này lưu rằng hằng số cơ tạ phản ánh khả năng của môtơ khi thắng độ quản tính J„ nhanh bao nhiêu dé đạt tới trạng thái xác lập với tốc độ không đôi ở thế V„ Từ đẳng thức trên tính được giá trị cuỗi cùng
của tốc độ 1a w(t) = A/Kg Khi tăng tạ lên dẫn đến tăng thời gian đạt tới
trạng thái xác lập
Trang 11CHUONG 2 : PHUONG PHAP DIEU CHE DO RONG XUNG 2.1 Phương pháp điều chế độ rộng xung
Phương pháp điều chế độ rộng xung — Pulse Width Modulation (PWM) là phương pháp điều chế dựa trên sự thay đổi của độ rộng xung của chuỗi vuông dẫn đến thay đôi giá trị trung bình của điện áp ra 20% i š = = V1 s R_Tai PWM source R M1 METER VOLT 50% 80% =
Hinh 2 la: Dang xung PWM Hinh 2.1b: Mach dién PWM
Ta gọi : Độ rộng xung của chuỗi xung là D
Biên độ điện áp của chuỗi xung là U„a„ Thì Giá trị hiệu dụng của chuỗi xung vuông là
u= Ua„.D
Nếu giả sử nguồn phát xung ở ìwj2 7.b phát ra các chuỗi xung có độ rộng xung lần lượt như hình2.1I.a thì điện áp hiệu dụng đo được trên R_ Tai lần lượt sẽ là :
u¡ = 12.20% = 2.4V thì D = 20% ua=12.50%=6V thì D= 50% u3 = 12.80% = 9.6V thi D = 80%
Thông thường, tốc độ động cơ một chiều (DC-Motor) sẽ thay đôi khi chúng ta thay đổi điện áp cấp cho động cơ Như vậy, nếu chúng ta thay R Tải bằng một chiếc động cơ một chiều thì tốc độ của nó sẽ thay đôi tuỳ vào độ rộng xung D của chuỗi xung
Trang 12V2 — MO1 PWM source DC-MOTOR L= Hình 2 2: Mạch điện mắc Động cơ với PWM 2.2 Phương pháp tạo ra PWM?
+ Vậy câu hỏi đặt ra là : Làm thé nao dé tao PWM?
Đề trả lời cho câu hỏi này, ta hay phân tích hình dưới đây: Ref KTN Saw ! ¿ | SAW 3 [> | : 4 Output REF 2 |_ Output Comparator
Hinh 2 3: Phuong phap tao ra PWM
Chúng ta sử dụng một bộ so sánh điện áp và đưa vào 2 đầu so sánh một xung răng cưa Szw và một điện áp một chiều Ref
Khi Saw < Ref thi Output = 0V Khi Saw > Ref thi Output = Uranax
Và cứ như vậy mỗi khi chúng ta thay đổi Reƒ thì Output lai cé chudi xung độ rộng D thay đối với tần số xung vuGng Output = tan sé xung rang cua Saw
+ Vi điều khiển tạo ra chuỗi xung nhờ việc thay đổi mức điện áp xuất ra ở công theo khoảng thời gian khác nhau
Trang 13Muc 0 =0V Muc 1=5V
Khoảng thời gian giữ chậm khi xuất các mức điện áp này sẽ tạo ra tần số của xung Như vậy ta có thể tạo ra chuỗi xung điều khiến động cơ bằng vi
điều khiển
2.3 Ghép nối PWM với động cơ một chiều
Mạch điều khiến mô tơ bằng phương pháp PWM hoạt động dựa theo nguyên tắc cấp nguồn cho mô tơ bằng chuỗi xung đóng mở với tốc độ nhanh Nguồn DC được chuyền đổi thành tín hiệu xung vuông (chỉ gồm hai mức 0 volt va x4p xi 12 volt) Tín hiệu xung vuông này sẽ được cấp cho mô tơ
Nếu tần số chuyền mạch đủ lớn thì mô tơ sẽ chạy với một tốc độ đều đặn phụ thuộc vào mô men của trục quay Với phương pháp PWM, chúng ta điều chỉnh tốc độ của mô tơ thông qua việc điều chế độ rộng của xung, tức là thời gian "đầy xung" ("on") của chuỗi xung vuông cấp cho mô tơ Việc điều chỉnh này sẽ tác động đến công suất trung bình cấp cho mô tơ và do đó sẽ
thay đối tốc độ của mô tơ cần điều khiển Nếu tần số bật tat ma cao, motor sé
chạy ở một tốc độ ôn định nhờ mômen quay của bánh xe Bằng cách thay đổi chu kỳ hoạt động của tín hiệu (thay đổi độ rộng xung — PWM) tức là khoảng thời gian “bật”, nguồn điện trung bình đặt lên motor sẽ thay đổi và dẫn đến thay đổi tốc độ động
cơ +12
Giả sử chúng ta đã có $
PWM ở đầu ra Output Tuy nhiên, do công suât của động
cơ khá lớn nên chúng ta không ce
thể nối trực tiếp lối ra Output THnNn6 †
vào động cơ được Để có thể S 10K
dùng được PWM trong trường I
hợp này, chúng ta mắc như
hình dưới đây Hinh 2.4 Mach ghép noi PWM vao dang ca
Trang 14CHUONG 3 : BO DIEU KHIEN TY LE - TICH PHAN - VI PHAN (PID )
Tên gọi PID là chữ viết tắt của ba thành phần cơ bản có trong bộ điều khiển đó là: khuếch đại tỷ lệ P (Proportional), tích phân I (Integral) và vi
phân D (Derivative) như hình 3.1.a Người ta vẫn thường ví von rằng bộ điều khiển PID là một tập thể hoàn hảo bao gồm ba tính cách khác nhau:
- Phuc tùng và thực hiện chính xác nhiệm vụ được giao (tý lệ);
- Lầm việc và có tích luỹ kinh nghiệm để thực hiện tốt nhiệm vụ (tích phân); - Luôn có sáng kiến và phản ứng nhanh nhạy với sự thay đổi tình
huống trong quá trình thực hiện nhiệm vụ (v1 phân) [+ t uư /⁄2Nu@ x(Œ—¬£@@O[ PID | ut) | seit-ing YO 4 ] }@9 SƠ Up a | a) b)
Hình 3.1 Điều khiển với bộ điều khiển PID
3.1 Bộ điều khiến PID liên tục
Bộ điều khiến PID được sử dụng rộng rãi để điều khiển các hệ thống SISO theo nguyên lý điều khiển bù trừ hồi tiếp như hình 3.1.b Lý do bộ PID được sử dụng rộng rãi bởi tính đơn giản của nó cả về cấu trúc và nguyên lý
làm việc Bộ PID có nhiệm vụ đưa sai lệch e(t) của hệ thống về giá trị 0 sao cho quá trình quá độ thoả mãn các yêu cầu cơ bản về chất lượng:
- Nếu sai lệch e() càng lớn thì thông qua thành phần tỷ lệ u,(), tín hiệu điều chỉnh u() càng lớn
- Nếu sai lệch e(t) chưa bằng 0 thì qua thành phần tích phân u,(t), tín hiệu điều chỉnh vẫn được bộ PID tạo ra
- Nếu sự thay đổi của sai lệch e(t) càng lớn thì thông qua thành phan vi phan u,(t), phan ứng thích hợp cua u(t) sé cang nhanh
Trang 15Bộ điều khiển PID được mô ta bằng hình toán học vào ra như sau:
u(t) =k, [e(t) + 1 feteyar +1, = }\ (3.1)
T0
Trong đó e() là tín hiệu đầu vào và u() là tín hiệu đầu ra, k, được gọi
là hệ số khuếch dai, T, 14 hang số tích phân và T; là hằng số vi phân
Từ đó có ảnh Laplace của bộ điều khiến PID như sau:
R(s)=k, 0 + Ta + mm) (3.2)
Điều khiển tỷ lệ P với hệ số khuếch đại K, có tác dụng làm giảm thời
gian đáp ứng quá độ của hệ thống và giảm độ lệch nh (so với điểm đặt) đến
mức cực tiểu nhưng không thể loại trừ
Điều khiển tích phân I với hệ số K, cho phép loại trừ độ lệch tĩnh, nhưng lại làm cho đáp ứng quá độ xấu ởi
Điều khiển vi phân D với hệ số K; làm tăng tính ổn định của hệ thống,
giảm hiệu ứng quá điều chỉnh (overshoot) và cải thiện đáp quá độ
Chất lượng của hệ thống phụ thuộc vào các tham số K; T; và Tp
Muốn hệ thống có được chất lượng tốt như mong muốn thì phải phân tích đối
tượng rồi trên cơ sở đó chọn các tham số đó cho phù hợp Có nhiều phương
pháp xác định các tham số trên cho bộ điều khiển PID, được sử dụng nhiều hơn cả là các phương pháp:
- Phương pháp sử dụng mô hình xấp xi bậc nhất của đối tượng
- Phương pháp thực nghiệm
- Phương pháp xác định tham số theo tổng T
Một điều cần quan tâm là không phải tất cả các trường hợp đều phải
xác định các tham số trên Chẳng hạn nếu bản thân đối tượng đã có khâu tích
phân thì trong bộ điều khiển không cần phải thêm khâu tích phân mới triệt được sai số tĩnh, hay nói khác đi là ta chỉ cần sử dụng bộ điều khiển PD có:
R(s) = k,(1 + Tp8) (3.3a)
là di (T, = ©) Hoặc khi tín hiệu trong hệ thống có sự thay đổi chậm
và bản thân bộ điều khiển không cần phải có phản ứng thật nhanh với sự thay đổi của sai lệch e(t) thì ta có thể chỉ cần sử dụng bộ điều khiển PI
Trang 16(Tp = 0) có hàm truyền đạt như sau:
1
R(s)=k, 0 + rd (3.3b)
3.1.1 Sử dụng mô hình xấp xỉ bậc nhất có trễ của dối tượng
Phương pháp xác định tham số sử dụng mô hình xấp xỉ bậc nhất có trễ của đối tượng được trình bày dưới đây còn có tên gọi là phương pháp thứ
nhất Ziegler - Nichols Phương pháp này có nhiệm vụ xác định tham số k„,
T, va T, cho bộ điều khiển PID trên cơ sở đối tượng có thể được mô tả xấp xỉ bởi hàm truyền đạt dạng:
ke ?*
= 1+7, (3.4) 4
S(s)
sao cho hệ thống nhanh chóng về chế độ xác định và độ quá diéu chinh Ah,,,,
không được vượt quá một giá trị cho phép, khoảng 40% so với h„ co = lim = h(t) f œ Ah <0.4 (hình minh họa) oO Ba tham số L (hằng số thời gian trễ), k (hệ số khuéch dai) va T wqCy@| pID |wÐ[ se jy yp | Y
Hình 3.2 Nhiệm vụ của bộ điều khiển PID
(hằng số thời gian quán tính) của mô hình xấp xỉ (3.4) có thể được xác
định gần đúng từ đồ thị hàm quá độ của đối tượng Nếu đối tượng có hàm quá độ dạng như hình 3.2 mô tả thì từ đồ thị ham h(t) dé ta có thể đọc ra
được ngay:
Trang 17a L là khoảng thời gian đầu ra h(() chưa có đáp ứng ngay với kích
thích 1() tại đầu vào
b k là giá trị giới hạn ”s = 3m, = “ữ),
c Gọi A là điểm kết thúc khoảng thời gian trễ, tức điểm trên trục
hoành có hoành độ bằng L Khi đó T là khoảng thời gian cần thiết sau L để
tiếp tuyến cua h(t) tại A đạt được giá trị k
Trường hợp hàm quá độ h(t) không có dạng lý tưởng như hình trên song có dạng gần giống hình chữ S của khâu quán tính bậc 2 hoặc bậc n thì
ba tham số k, L, T của mô hình được xác định xấp xỉ như sau:
d klà giá trị giới hạn ”= = 9 = “ữ),
e Kẻ đường tiếp tuyến của h(t) tại điểm uốn của nó Khi đó L sẽ là hoành độ giao điểm của tiếp tuyến với trục hoành và T là khoảng thời gian cần thiết để đường tiếp tuyến đi được từ giá trị 0 tới được giá trị k t 'E' T
Hình 3 3 Xác định tham số cho mô hình xấp xỉ biểu thức (3.4) của đối tượng
Như vậy, có thể thấy là điều kiện để áp dụng được phương pháp xấp xỉ
mô hình bậc nhất có trễ của đối tượng là đối tượng đã phải ổn định, không có
đao động và ít nhất hàm quá độ của nó phải có dạng hình chữ S Sau khi đã
có các tham số cho mô hình xấp xỉ của đối tượng, Ziegler - Nichols đã dé nghị sử dụng các tham số k., Tị, Tp sau cho bộ điêu khiển:
_ Nếu chỉ sử dụng bộ điều khiển khuếch đại R(s) = k,, chon k, = T/kL
_ Nếu sử dụng bộ PI với R(s) = at + Z| thi chon k, = 0.9T/kL va
I
T, = 10L/3
Trang 18_ Nếu su dung PID cé6 R(s) =k, h + mẻ + mm) thi chon k, =1.2T/KL,
ys
T, = 2L, va Tp = L⁄2
3.1.2 Xác định tham số bằng thực nghiệm
Phương pháp xác định tham số K., Tị, Tp cho bộ điều khiển PID theo
phương pháp thực nghiệm còn được gọi là phương pháp Ziegler - Nichols tht
hai Điều đặc biệt của phương pháp này là nó không sử dụng mơ hình tốn
học của đối tượng, ngay cả mô hình xấp xỉ gần đúng
Nguyên lý của phương pháp như sau:
_ Thay bộ điều khiển PID trong hệ kín bởi một bộ khuếch đại Sau đó
tăng hệ số khuếch đại tới giá trị giới hạn k,„ để hệ kín ở chế độ biên giới ổn
định, tức là h(t) có dạng dao động điều hoà Xác định chu kỳ T„ dao động
_ Xác định tham số bộ điều khiển P, PI hay PID như sau:
+ Nếu sử dụng bộ điều khiển khuếch đại R(s) = k, thì chọn k_ = k„/2 + Nếu sử dụng PI với R(s) = tt mr) thì chọn k, = 0.45 kụ và Tị = I 0.85 Tụ + Chon k, = 0.6k,,, T, = 0.5 T,, va Tp = 0.12T,, cho bd PID x(t) ~e(O} ky | uŒ | Đối tượng [YO + () điều khiển Hình 3.4 Xác định hằng số khuếch đại hạn
Ưu điểm của phương pháp này cho phép chọn các tham số của bộ điều khiển làm hệ kín tốt hơn về mặt độ quá điều chỉnh so với phương pháp thứ nhất (xấp xỉ mô hình) Thực tế, phương pháp pháp xác định thực nghiệm
tham số PID đưa ra được một hệ kín có độ quá điều chỉnh Ah, không vượt
=lim = A(t) Mesa
qué 25% so voi ’= = 1m , tttc 1a <0.25 như đang xét eo
Trang 19Nhược điểm của phương pháp thứ hai nay là chỉ áp dụng được cho
những đối tượng có được chế độ biên giới ổn định khi hiệu chỉnh hằng số
khuếch đại trong hệ kín
3.1.3 Phuong phap Chien — Hrones - Reswick
Về nguyên lý, phương pháp Chien - Hrones - Reswick gần giống với phương pháp thứ nhất của Z1egler - Nichols, tuy nhiên nó không sử dụng mô hình tham số gần đúng dạng quán tính bậc nhất có trễ cho đối tượng mà thay vào đó là trực tiếp dạng hàm quá độ của đối tượng
Phương pháp Chien - Hrones - Reswick cũng phải giả thiết rằng đối tượng là ổn định, hàm quá độ không dao động và có dạng hình chữ S Tuy nhiên phương pháp này thích ứng với những đối tượng bậc rất cao như quán tính bậc n
5%) = k1 + sI?" (3.5)
cụ thể là những đối tượng với hàm quá độ h(t) thoả mãn: b/a>3
Trong đó a là hoành độ giao điểm tiếp tuyén cia h(t) tai điểm uốn U
với trục thời gian và b là khoảng thời gian cần thiết để tiếp tuyến đó đi được
từ Ö tới giá trị = Em, = “ữ),
Hình 3.5 Hàm quá độ đối tượng thích hợp cho phương pháp Chien - Hrones - Reswick
Từ dạng hàm quá độ h(t) đối tượng với hai tham số a và b thoả mãn,
Chien- Hrones - Reswick đã đưa bốn cách xác định tham số bộ điều khiển cho bốn yêu cầu chất lượng khác nhau như sau:
Trang 20Yéu cau 1:
Yêu cầu tối ưu theo nhiễu (giảm ảnh hưởng nhiễu) và hệ kín không có độ quá điều chỉnh:
a Bộ điều khiển P: Chọn k, = 3b/(10ak)
b Bộ điều khién PI: Chon k, = 6b/(10ak) và T, = 4a
c Bộ điều khiển PID: Chọn k, = 19b/(20ak), T, = 12a/5 va Ty = 21a/59
Yêu cầu 2:
Yêu cầu tối ưu theo nhiễu (giảm ảnh hưởng nhiễu) và hệ kín có độ
quá điều chỉnh Ah, không vượt quá 20% so với ”z = #m, = #Œ)
a Bộ điều khiển P: Chọn k, = 7b/(10ak)
b Bộ điều khiển PI: Chọn k„ = 7b/(10ak) và T¡ = 23a/10
c Bộ điều khiển PID: Chọn k, = 6b/(Sak), T¡ = 2a và Tp = 21a/50 Yêu câu 3:
Yêu cầu tối ưu theo tín hiệu đặt trước (giảm sai lệch bám) và hệ kín không có độ quá điều chỉnh Ah, „
a Bộ điều khiển P: Chọn k, = 3b/(10ak)
b Bộ điêu khién PI: Chon k, = 7b/(10ak) va T, = 6a/5
c B6 diéu khién PID: Chon k, = 3b/(Sak), T, = b và Tp = a/2 Yéu cau 4:
Yêu cầu tối ưu theo tín hiệu đặt trước (giảm sai lệch bám) và hệ kín không có độ quá điều chỉnh Ah, không vượt quá 20% so với
h„ = lim = hŒ)
a Bộ điều khiển P: Chọn k, = 7b/(10ak)
b Bộ điêu khiển PI: Chọn k, = 6b/(10ak) và T, = b
c Bộ điều khiển PID: Chọn k, = 19b/(20ak), T, = 27b/20 va T, =
47a/100
Trang 213.1.4 Phuong phap tong Kuhn
Lại xét đối tượng ổn định, không có độ quá điều chỉnh, ham quá độ
h() của nó đi từ điểm 0 và có dạng chữ S Nếu vậy, đối tượng có thể được mô tả một cách tổng quát bởi hàm truyền đạt: -k (+77s)q+7;s) (I+ 7s) c,vớim<n (3.6) d+7;”s)qd+7”s) (I+ 7s) Trong đó các hằng số thời gian ở tử số T;t phải nhỏ hơn hằng số thời S(s) gian tương ứng của nó ở mẫu số T,” Nói cách khác, nếu đã có sự sắp xếp: T//>T¿'> >T„' và Th> TT" > > Tm thì phải có: T¿<T/",T; < 1;", Tụ < Tự”
Chú ý rằng các chữ cái t và m trong các biểu thức trên không phải
Trang 22Chứng minh:
Theo khái niệm về điện tích thì : 4 = [[x- z)J#
0
Chuyển hai vế đẳng thức trên sang miền phức nhờ toán tử Laplace, đặc biệt là tín chất ảnh tích phân của phép biến đổi này Gọi A(s) là ảnh của A, H(s) 1a anh cua h(t) ta cé:
A(s) = 1 # — HG)
s| Ss
Vi A là hằng số nên nó có giới hạn A = lim A khi t 0 Do d6 néu áp
dụng định lý về giới hạn thứ nhất của toán tử Laplace sẽ đi đến: A= im * -H@)| = im £5) s0] @ s—0 Ss ~ klim (1+7,"s)\1+T,"s) 0+T7."s)-(1+ T/s)Q4+Tjs) +Tis)e* s0 sq4+7¡”s)q+7;”s) (I+ 7s) 1— —sT = Klin) OG? +2 +8 TP) = (Ef TE Ta) : | so S Suy ra: A=K YT" YT! +7) = My VOI Fy => 7" -D°T! +7) jal ¡=1 j=l i=1
Ví dụ 3.1 Xét hệ hồi tiếp cho wit) ¬£( y(t)
trén hinh bén dugc kich thich béi w(t) 9o R(S) S(s) = 1(t) va co: 2(1+3s) 0.5 Hinh 3.7 Minh hoa vi du 3.1 R(s)= ,»(8)=———— (s) (s) 24s? +2354+9 Hàm truyền đạt của hệ kín sẽ: _ (1+3s) (+s) + 2s)(1+ 5s) G(s)
Do G@) có: k =1, T'; = 3, T”, = 5, T”; = 2 và T”, = 1 thoa man điều kiện T”, > T', nên ta áp dụng được định lý 3.1 để xác định sai lệch
Trang 23[sœ#= ftw) — y(t) dt = [te — act = A=(54+241)-3=5
Dinh lý 3.1 chỉ rằng tổng T có thể dễ dàng được xác định từ hàm quá
độ h(t) dang chi S va đi từ 0 của đối tượng ổn định không dao động, bằng
cách ước lượng diện tích A cũng như hệ số khuếch đại k rồi tính Ty =A/k Trên cơ sở giá trị k, Ty đã có của đối tượng, Kuhn đã đề ra phương pháp tổng T xác định tham s6 k,, T, va T, cho b6 điều khiển PID sao cho hệ hồi tiếp có quá trình độ quá độ ngắn hơn và độ quá điều chỉnh không vượt
quá 25% Phương pháp này của Kuhn khá thích hợp với những đối tượng có thể xấp xỉ được bởi hàm truyền đạt dạng khâu quán tính bậc n:
—K&
56)“ (3.8)
Mặc dù được xây dựng cho đối tượng được giả thiết là có mô hình hàm truyền đạt dạng (3.8) song trong thực tế phương pháp tổng T vẫn được
áp dụng hiệu quả cho cả những đối tượng có hàm truyền không giống (3.8), miễn là nó ổn định, không có dao động, hàm quá độ h(£) của nó đi từ 0 và có dạng hình chữ S Phương pháp tổng T của Kuhn bao gồm hai bước sau:
Bước 1: Xác định k, Ty có thể từ ham truyén dat S(s) cho trong (3.3) nếu như đã biết trước S(s) hoặc bằng thực nghiệm từ hàm quá độ h() đi từ 0 và có dạng hình chữ S của đối tượng
Bước2: Xác định tham số:
a Nếu sử dụng bộ điều khiển PI: Chọn k, = 1/2k và T, = Ts /2
b Nếu sử dụng bộ điều khiển PID: Chon k, = 1/2k, T, = 27s /3 và Tp
= 0.167 Ty
Trang 243.2 Bộ Điều khiến PID sé
3.2.1 Nguyên lý điều khiến PID số
Hình 3.8 biểu diễn một hệ thống điều khiển có sử dụng bộ điều khiển
PID số, tức là bộ điều khiển PID có tín hiệu vào ra dạng số (không liên tục và rời rạc) Tín hiệu đầu ra của bộ PID số là một dãy {u,} được đưa đến điều
khiển đối tượng có hàm truyền đạt liên tục S(s) Do {u,} là tín hiệu không liên tục rời rạc nên để có thể làm tín hiệu điều khiển cho đối tượng liên tục ta cần phải liên tục hoá nó ( trong miền thời gian) bằng bộ chuyển đổi số - tương tự ZOH với hàm truyền đạt G„ou(s) Xem G„ou(s) chung với S(s) như đối tượng điều khiển không liên tục thì đối tượng này sẽ có hàm truyền đạt:
wit) °Œ lei Lag yt) | Pip số | Z4 JG;o;/(s)| „| S(s) * XS —” - Đối tượng điều khiển của PID
Hình 3.8 Điều khiển với bộ PID số
Để xác định mô hình không liên tục của bộ PID số ta sẽ đi từ mô hình
liên tục của nó trong miền thời gian:
u(t) =k, Let) tre +7, 20 de(t) at |= k,e(t) +=" [e@)dr+k,T, k, | ~_—’ IQ u(t) VY : u, (t) ug (t) Lý do cho việc không sử dụng biến đổi Z để chuyển trực tiếp 1 RO)= KO + + Ts)
sang mién Z 1a vi R(s) cé chita thanh phan vi phan D
Trang 25` k 5 _ Thanh phan tich phan w,(f) = —* [z(4z được thay bằng (hình 3.9) T0 + Xấp xỉ tích phân loại 1: u/ = 7 : de I it - 9 kT, 2 + Xấp xỉ tích phân loại 2: u/ = 7 Tớ, T i=l aoe k„T, ‡¬ |
+ Xap xi tich phan loại 3: uj =— T G 2 fia T4
_ Thành phần vi phân z„ () = k„7„ = duoc thay bang kT
Uy = 7 (e, —&4)
Thay các công thức xấp xi trên vào:
Uy, = Uy? + 0y! + uy”
Trang 263.2.2 Xác định tham số cho PID số bằng thực nghiệm
Tương tự như ở phương pháp thực nghiệm của Ziegler -
Nichols, Takahaski cũng đưa ra một phương pháp xác định ba tham số k,, Tị, và Tạ, cho mô hình biểu thức (3.9) của PID số hoặc từ đường quá độ h(£) của đối tượng S(s) hoặc từ giá trị tới hạn k„ và Tụ
Thiết bí điểu khiển uu ¥ PID số L2.2| Gz„¡(s) ¥ Sis)
Hình 3.10 Xác định tham số cho bộ PID số để điều khiển đối tượng liên tục 3.2.2.1 Xác định hàm quá độ của đối tượng
Điều kiện để áp dụng được phương pháp Takahashi là đối tượng phải
ồn định, có hàm quá độ h(t) đi từ 0 và có dạng hình chữ S (không có độ quá điều chỉnh)
Từ biểu diễn của dạng h(£) chung cho những đối tượng có thể áp dụng
được phương pháp TakahaskI Từ đường h(t) ta lấy được các giá trị:
_ k là hệ số khuếch đại của đối tượng được xác định từ hŒ) theo: k = lim h(t)
_ L là giá trị xấp xỉ thời gian trễ Nó là giao điểm đường tiếp tuyến với h() tại điểm uốn với trục thời gian
_ T 1a gia tri dac trưng cho quá trình quá độ Nó là thời gian cần thiết
để đường tiếp tuyến với h(t) tại điểm uốn di được từ 0 tới k
_ Tạz„ là điểm thời gian mà h(£) đạt được giá tri 0.95k + hớ) Wskbzsrcaczse 2 Sịg dgigtJSEnEuE g2 cIE Le !0,95E ! Ị + x > i! or | 96
Hình 3.11 Xác định tham số của PID số theo phương pháp Takahashi
Trang 27Thời gian lấy mẫu T, có thé được chọn từ các thông s6 ctia h(t) cho déi twong] liên tục có h() như ở hình 2.14 như sau: _ Xác định từ L: Nếu T/L <12 thì L/5<7, <1/2 _ Xác định từ T: 7, <7/10 Z ` T 5 T _ Xác định từ Tđgzạ: _?“ < T,< 95% 20 10
Nói chung nếu như thời gian lấy mẫu T, được thoả mãn 7, < 2¿ thì ba
tham sé k,, T,, va Tp cua PID s6 sẽ được xác định từ k, L và T theo phương pháp Takahaski như sau: T _ Nếu chỉ sử dụng riêng bé P sé: k, = tŒ+TF) + a 0.97 _ Néu su dung bộ PI SỐ: k, = £Œ.+0:5T.) va T, = 3.33(L + 0.5T,) _ Nếu sử dụng bộ PID số: 1.27 2(L+0.5T,)ˆ L+T, p = „Í} =———- ,Ïp = K(L+T,) L+T, 2 3.2.2.2 Xác định từ giá trị tới hạn
Bên cạch phương pháp xác định tham số như trên và nếu không có
được đồ thị hàm quá độ hŒ) của đối tượng thì ta có thể xác định k,, T, va T, của PID số như sau:
_ Thay bộ điêu khiển số trong hệ kín bằng bộ khuếch đại k Sau đó
tăng k tới giá trị tới hạn kạ„ để hệ kín có đao động điều hoà, tức y(t) = h(t) có
Trang 28CHUONG 4: THIET KE MACH DIEU KHIEN DONG CO 4.1 Khoi vi diéu khién U1 RESISTOR SIP 8 mem 44 MCLR/VPP reveco bs weer 2 iv Ấ—| R.20/ANh RBB/PBC % = X-| RA122NI RBs +22 $ Re 5] RARANZVREF-/CVREF — RB4 : RA =) RAGHANS/UR EF + F:B3/P EM „ ae >—| RAMTOCKVCTOUT RB? 5 RE E—| R.Ađ/AN4/35/2UT RBI | — “1 s—| R.BI/ED2^NS REu/INT [33 2V Em St RE SVR ANB VOD 34 aH a TỊ RE?/CS/AN7 WSS Fay Ta E23 SH | VDD RD7/PSP? dt
ara 5 ves RD8/PSP6 [Se ao Sui PUSHBUTTON See ni — XIAL2 4 | 05E1/CLRI | OS CHELKD RH/PSPS [27 RD4/PSP4 Ất DB? 1; ae a] RCDTIOSOICK! RCRD [3s E4 Rế TP TẾ |REITI05ICEF2 RC8/DUEK L$3 Kế
C10 438 RE? Esc a RC23/CCPI RC5/sptq 23 RC4
+I rad 4 EBb— UP 8 |RE3/5EK/4EL RC4/5D1/30A P53 a sli RD1/PSP † ED2/PSP2 1] T3 E1133P 207 — 3 MIALG pic 168877 a GND Khoi VDKE
Hình 4.1 khỗi vi điều khiển PIC16F877A
Khối vi điều khiển là trung tâm điều khiển các chế độ làm việc của
động cơ và toàn bộ mọi hoạt động khác :điều khiến động cơ chạy ở tốc độ mong muôn, đảo chiêu , hãm ngược, điêu khiên hoạt động của mạch hiên thị LCD, đo tốc độ
Khối gôm cé : IC PIC16f877A , mach tao xung va mach reset
4.2 Khoi hién thi 1ñE R7 j5 LCH1E02 Ti Z1 6 xẻ
Hinh 4.2 Khoi hiển thị
Khối này hiển thị các giá trị đặt, tốc độ thực đo được bằng encoder
Khối có LCD1620
Trang 294.3 Khối mạch động cơ 1?V ñNñ7 4 R28 |šđ0ãnÿ4 ~~ k“Àlš l§ ota) Hi hquonDE L54 RELAY 0322 lqi4 8 be ‘ IEFã40 # 1 ñ4_nũ3 5 ¥ 26 { 7 +: Zz } a) T C411 Ũ ee 104 45090C41 O34 2 a histor 3 R281 KET cn bis R LED Mach luc Hình 4.3 Khối mạch động cơ Nguyên lý hoạt động phần công suất điều khiến tốc độ và đảo chiều động cơ:
Opto dùng đê cách ly điện giữa mạch điêu khiên và mạch lực
Khi có dòng điện chạy từ chân I sang 2 thì làm thông 4 và 3, chân 3 lên 12V
Tín hiệu qua opto chỉ liên quan về mặt quang, nên tránh được xung đột về áp giữa mạch lực và mạch điều khiến
Khi chân PWM đưa xuống mức thấp, opto thứ nhất có dòng từ 1 sang 2, opto thông, chân 3 có điện, tín hiệu này được đưa và cực Gate (chân 1) lam Mosfet mở ở đây là I[RFz44, chân Dramn (chân2) được thông với GND Làm cho động cơ chạy
Trang 30Ta dua tin hiéu “diéu ché rộng xung” vao chan PWM thi chan Drain cua IRFz44 cing duoc diéu ché rộng xung, tức la điều khiến tốc độ động cơ
băng PWM
Trang 314.5 Khoi Jump va ban phim C12 Suit | | || GNO _—= up C13 CAP NP SWU2 | | =TL¬ eee j_— DDWM || CAP NP #2 || ˆ“—* [iƑ———4 _| [CAP NP ESC eo ENTER ** su Ban Phim J2g 4 ai 3 encoder 2 1 * BND CON4 J30 d#1 CONG CONN FLEX 11 CONG Juan
Khối này dung nhập các lệnh từ bàn phím và dùng để liên kết các
khôi với nhau
Trang 324.6 Lưu đồ thuật toán và chương chình điều khiến
Khởi tạo các thông sô ban đâu Khởi tạo đâu vào ra, các ngắt Kiểm tra phím ấn? Phím được ân Yes Thay đổi tăng giảm các giá trị tại các vị trí con trỏ trên LCD Tính các thông số: Sailech1=sailech2; Sallech2=vtoc-vtoc_ dat Del_sailech=sailech2-sailech] ; Sum sailech=sailechl+sailech2; Duty=duty+kp*sailech2+ki*sum_sailech +kd*del_sailech //Hé thu tinh PID roi rac Lay xung do tir encoder, Suy ra tôc độ thực Cho phép chạy No Yes No PIN D2=0 Yes Role tác động PIN D2=I1 Quay tiên
Lẫy thông số vtoc_ dat, kp, ki, kd
Trang 33/*
Chuong trinh dieu khien dong co DC, dung thuan toan PID PWM CCPI
dieu khien role: RD2
phim bam: RCO, RC1, RC3, RD1 hien thi LCD 4bit RS RB3 RW RB2 EN RBI DB4 RD7 DB5 RD6 DB6 RDS5 DB7 RD4 encoder RBO */ #include <16f877a.h> #include <defs_16f877a.h> #fuses HS,NOWDT,PUT,NODEBUG,NOPROTECT, BROWNOUT,NOLVP,NOC PD,NOWRT #use delay(clock=20000000) #include "Icd1602.c" #define UP Pressed 1 #define DOWN Pressed 2 #define ENTER Pressed 3 #define ESC Pressed 4 #define Role RD2
// khai bao cac phim bam #define UP PIN Cl #define DOWN PIN_D1 #define ENTER PIN CO #define ESC PIN C3 float kp,ki,kd;// cac he so
signed int16 sailech1=0,sailech2=0,del_sailech,sum_sailech; signed intl16 duty;
signed intl6 xung=0; signed int16 vtoc,vtoc_ dat; intl trichmau=1;
void tanggiatri(intl6 *bienthaydoi,int16 nguongduoi, int16 nguongtren)
Trang 34{ if(*bienthaydoi==nguongtren) *bienthaydoi=nguongduoti; else *bienthaydoi=*bienthaydot+ 1; j void giamgiatri(intl6 “bienthaydoi,int16 nguongduoi, intl 6 nguongtren) { if(*bienthaydoi==nguongduoi) *bienthaydoi=nguongtren; else *bienthaydoi=*bienthaydoi-1; j
#int TIMER1 //Ham phuc vu ngat timer 1 void TIMER1 tocdo(void)
{
// disable_interrupts(INT_TIMER1);
set_timer1(3036);//nhay vao ngat sau moi 100ms enable interrupts(INT_TIMER1);
vtoc=3*xung/2; // chuyen doi tu xung doc duoc sang toc do thuc, o day vtoc=1,5*xung, ung voi thoi gian lay mau la 100ms
xung=0;// xoa bo dem xung, chuan bi cho lan dem tiep theo trichmau=1;//bao viec trich mau da hoan thanh j #int EXT //Ham phuc vu ngat ngoai void EXT_isr(void) { static intl flag;// them bien nay de lay ngat ca suon len va suon xuong xung=xung+t1; if(flag==0) flag=1; else flag=0; if(flag==1) ext _int_edge(H_TO _L);//lay ngat theo suon xuong else
ext int edge(L_TO_H);//lay ngat theo suon len //encoder thuc co 200xung/vong
//ta lay ca 2 suon ngat, tuong duong voi encoder 400xung/vong
}
Trang 36if(!input(ENTER)) first_press=0; } else delay_ms(100); return ENTER _ Pressed; j if(!input(ESC)) { if(first_press==1) { dem=255; while((dem )&&(!input(ESC))) delay_ms(2); 1f(Hnput(ESC)) first_press=0; } else delay_ms(100); return ESC_ Pressed; j j return 0; j
void Menu_dieukhienPID_display(int8 id,int16 giatri)// ham hien thi cac gia
Trang 37LCD_gotoxy(5,2); LCDwrite_float((float)giatri/100,2); break; case 6:// vi tri Kd LCD_ gotoxy(10,2); LCDwrite_float((float)giatri/100,2); break; j j void main(void) { int8 phimbam; int8 luachon=1; int8 kp t=1,ki t=1,kd_t=5; int8 run=0; int8 chieu=1; set_tris B(1); set tris C(255); set tris D(0x02); PORTB=255; PORTC=255; PORTD=255;
setup _adc( ADC_OFF );
enable _interrupts(INT_EXT);//cho phep ngat ngoai ext int edge(H_TO L);
setup_ccpl(CCP_PWM);// chon chan PWM
setup timer 2(T2 DIV BY 4,255,1);//4.98Khz, timer2 cho bo PWM set PWM1 _ duty(255);
setup _timer_1(T1_INTERNAL|T1 DIV_BY_§8);//timer 1 chia 8, tuc la tang bo dem sau moi 1.6us
set_timer1(3036);//tran sau moi 100ms
enable _interrupts(INT_TIMER1);//cho phep ngat timer] enable interrupts(GLOBAL);//cho phep ngat toan cuc LCDinit(Q);// khoi tao LCD
Trang 38vtoc_dat=1000;//vong/phut //hien thi thong tin ban dau
LCDwrite("DO AN TOT NGHIEP"); Icd_ gotoxy(0,2); LCDwrite("Thuat toan PID"); delay_ms(2000); Icd_ gotoxy(0,1); LCDwrite(" MAI THACH DUY "); Icd_ gotoxy(0,2); LCDwrite("| DT901 "); delay_ms(2000); LCDcontrol(1); //vao menu chinh
Menu dieukhienPID_ display(1,vtoc dat); Menu dieukhienPID_ display(2,run); Menu dieukhienPID_ display(3,chieu); Menu _dieukhienPID display(4,kp _t); Menu dieukhienPID_ display(S,k1 t); Menu _dieukhienPID display(6,kd_t);
LCD_gotoxy(4,1);LCDwrite(255);// dua con tro ve vi tri dau tien while(1) { phimbam=keyscan();// kiem tra phim an if(phimbam==UP_Pressed) { switch(luachon) { case |: tanggiatri(&vtoc_dat,0,3500); Menu_dieukhienPID_ display(luachon,vtoc_dat);break; case 2: tanggiatri(&run,0, 1); if(run==0) t set PWMI_ duty(255); j
Menu dieukhienPID_ display(luachon,run);break;
Trang 40Menu_dieukhienPID_display(luachon,ki_t);break; case 6: giamgiatri(&kd_t,0,99);kd=(float)kd_ 1/100; Menu_dieukhienPID_ display(luachon,kd _t);break; j } if((phimbam==ENTER _Pressed)||(phimbam==ESC _Pressed)) { if(phimbam==ESC_Pressed) tanggiatri(&luachon, 1,6); else giamgiatri(&luachon, 1,6); lcdcontrol(1);