Bộ điều khiển số PID điều khiển DC motor

LỜI NÓI ĐẦU Trong lĩnh vực tự động hóa ngày nay có rất nhiều giải pháp về công nghệ, nhưng để chọn một giải pháp tối ưu về mặt công nghệ mang tính hiện đại và tính hiệu quả cao trong kinh tế là một vấn đề đòi hỏi rất nhiều thời gian của các chuyên gia nghiên cứu. Và một trong những giải pháp đó là việc sử dụng thành công vi xử lí vào trong công nghiệp. Nhờ vậy mà các doanh nghiệp gia tăng sản lượng và chất lượng sản phẩm của mình ngày càng cao theo thời gian . Cũng chính vì lí do về sự phát triển vượt bậc của vi xử lí và tính năng công nghệ cao mà chúng em đã chọn đề tài nghiên cứu : “Bộ điều khiển số PID điều khiển DC motor”. Đồ án của chúng em điều khiển động cơ một chiều bằng PID viết trên nền vi điều khiển, giao tiếp với máy tính bằng giao diện Visual Basic 6.0 Nội dung của đồ án: Chương 1: Giới thiệu về động cơ một chiều Chương 2: Thiết kế bộ điều khiển số PID cho động cơ một chiều Chương 3: Giới thiệu phần mềm Visual Basic 6.0 Chương 4: Mô hình hệ thống điều khiển động cơ một chiều Chương 5: Kết luận và hướng phát triển Nội dung nghiên cứu của đồ án là thiết kế mạch, xây dựng các lưu đồ thuật toán và thi công lắp ráp để kiểm chứng tính đúng đắn của thiết kế và các lưu đồ thuật toán đã xây dựng. Vì thời gian chuẩn bị không nhiều cùng với kiến thức còn hạn hẹp, đồ án không tránh khỏi những sai sót, chúng em rất mong nhận được ý kiến đóng góp của các thầy cô trong khoa, chúng em xin chân thành cảm ơn.

docx58 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3007 | Lượt tải: 9download
Bạn đang xem trước 20 trang tài liệu Bộ điều khiển số PID điều khiển DC motor, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
của truyền động một chiều kích từ độc lập là tuyến tính. Khi điều chỉnh điện áp phần ứng thì độ cứng các đặc tính cơ trong toàn dải điều chỉnh là như nhau, do đó độ sụt dốc tương đối sẽ đạt giá trị lớn nhất tại đặc tính cơ thấp nhất của dải điều chỉnh. Sai số tương đối của tốc độ ở đặc tính cơ thấp nhất là : S= ωomin_ωminωmin=∆ωωomin S=Mđmβ.ωomin≤Scp Vì các giá trị Mđm, ωomin, Scp là xác định nên có thể tính được giá trị tối thiểu của độ cứng đặc tính cơ sao cho sai số không vượt quá giá trị cho phép. Trong suốt quá trình điều chỉnh điện áp phần ứng thì từ thông kích từ được giữ nguyên do đó momen tải cho phép của hệ sẽ không đổi: Mc.cp = K Φđm .Iđm =Mđm Phạm vi điều chỉnh tốc độ và momen nằm trong hình chữ nhật bao bởi các đường thẳng ω= ωđm, M= Mđm và các trục tọa độ. Tổn hao năng lượng trong mạch chính là tổn hao trong mạch phần ứng nếu bỏ qua các tổn hao không đổi trong hệ. Hiệu suất biến đổi năng lượng của hệ là : ηư=ω' Μ∙R+ω' Hình 1.8 Phạm vi điều chỉnh tốc độ và mômen Vậy điều chỉnh tốc độ bằng cách thay đổi điện áp phần ứng là rất thích hợp trong trường hợp mômen tải là hằng số trong toàn dải điều chỉnh. 1.2.2 Phương pháp điều chỉnh từ thông Điều chỉnh từ thông kích thích của động cơ điện một chiều là điều chỉnh mômen điện từ của động cơ M = KΦIư và sức điện động quay của động cơ Eư = KΦω. Mạch kích từ của động cơ là mạch phi tuyến nên hệ điều chỉnh từ thông cũng là phi tuyến : ik = ekrb+rk+ωkdΦdt Trong đó : rk : điện trở dây quấn kích thích. rb : điện trở của nguồn điện áp kích thích. ωk : số vòng dây của dây quấn kích thích. Trong chế độ xác lập: ik= ekrb+rk ; = f[ik] Khi điều chỉnh từ thông thì điện áp phần ứng được giữ nguyên bằng giá trị định mức, do đó đặc tính cơ thấp nhất trong vùng điều chỉnh từ thông chính là đặc tính có điện áp phần ứng định mức, từ thông định mức và được gọi là đặc tính cơ bản. Tốc độ lớn nhất của dải điều chỉnh từ thông bị hạn chế bởi khả năng chuyển mạch của cổ góp điện. Khi giảm từ thông để tăng tốc độ quay của động cơ thì đồng thời điều kiện chuyển mạch của cổ góp cũng bị xấu đi, vì vậy để đảm bảo điều kiện chuyển mạch bình thường thì phải giảm dòng điện phần ứng cho phép, kết quả là mômen cho phép trên trục động cơ cũng giảm rất nhanh. Khi giữ nguyên dòng điện phần ứng thì độ cứng đặc tính cơ cũng giảm rất nhanh khi giảm từ thông kích thích: β = (KΦ)2Rư Hình 1.9 Đặc tính điều chỉnh khi điều chỉnh từ thông động cơ. Do điều chỉnh tốc độ bằng cách giảm từ thông nên đối với các động cơ mà từ thông định mức nằm ở chỗ tiếp giáp giữa vùng tuyến tính và vùng bão hòa của đặc tính từ hóa thì có thể coi việc điều chỉnh là tuyến tính và hằng số C phụ thuộc vào thông số kết cấu của máy điện : 𝛷 = C.ik = Crb+rkek 1.2.3 Phương pháp điều chỉnh điện trở phụ Rf trên mạch phần ứng. Đặc điểm của phương pháp: - Điện trở mạch phần ứng càng tăng, độ dốc đặc tính cơ càng lớn, đặc tính cơ càng mềm và độ ổn định tốc độ càng kém, sai số tốc độ càng lớn. - Phương pháp chỉ cho phép điều chỉnh thay đổi tốc độ về phía giảm (do chỉ có thể tăng thêm điện trở). - Tổn hao công suất dưới dạng nhiệt điện trở lớn. - Dải điều chỉnh phụ thuộc vào mômen tải. Tải càng nhỏ thì dải điều chỉnh càng nhỏ. Hình 1.10 Đặc tính điều chỉnh khi điều chỉnh điện trở phụ trên mạch phần ứng. Với những ưu và nhược điểm của từng phương pháp trên nên ta sử dụng phương pháp điều chỉnh tốc độ động cơ bằng cách thay đổi điện áp phần ứng. Một trong những phương pháp để thay đổi điện áp phần ứng là điều chỉnh độ rộng xung (PWM). Định nghĩa : Phương pháp điều chế PWM (Pulse Width Modulation) là phương pháp điều chỉnh điện áp ra tải hay nói cách khác là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông dẫn đến sự thay đổi điện áp ra. Hình 1.11 Điều chỉnh độ rộng xung PWM Phương pháp điều chỉnh độ rộng xung giữ tần số không đổi nên điều chỉnh độ rộng xung để thay đổi điện áp trung bình đặt lên động cơ. Điện áp trung bình : Uđk = TonT.Uin Do đặc tính cảm kháng của động cơ, dòng qua động cơ là dòng liên tục nên ta có dạng sóng dòng và áp của động cơ như sau: Hình 1.12 Dạng sóng dòng và áp trên động cơ Chương 2: THIẾT KẾ BỘ ĐIỀU KHIỂN SỐ PID CHO ĐỘNG CƠ DC 2.1 Mô hình hóa động cơ Phương trình điện : Uưt=Rư .iưt+Lưdiưtdt+Eưt (1) Với : Eưt=kTωt (2) Mà: ke=kT∙2π60 (3) Phương trình cơ: dωtdt=Tt-bωtJ (4) Mà Tt=kiưt∙ϕ Đặt: kT=k.ϕ nên Tt=kTiưt (5) Trong đó : Uư: là điện áp phần ứng (V) Rư : là điện trở phần ứng (Ω) Eư: sức điện động phần ứng (V) ωt: là momem cản tỉ lệ với hệ số ma sát và tốc độ (rad/s). : là momen cản thuận b: là hệ số ma sát (rad/s) kT: là hằng số mômen (Nm/A) ke: là hằng số sức điện động (Vs/rad) Từ các công thức (1), (2), (4), (5) ta biến đổi qua miền s (biến đổi lapce) ta được : Uưs=Rư.Iưs+Lư.s.Iưs+Eư(s)Ts=K T.IưsTs=b.ns+J.s.nsEưs=KT.ns (6) Từ hệ phương trình (6) trên ta có sơ đồ cấu trúc sau : Aaa 1b+Js Ass kT D 1Rư+Lưs Uư(s) Iưs Ws(rad/s) - Aa kT Hình 2.1 Mô hình hệ thống động cơ điện DC Từ sơ đồ cấu trúc trên ta tìm được hàm truyền đạt : Wsmotor=kTRư+Lưsb+Js1+kT2Rư+Lưsb+Js=kTRư+Lưsb+Js+kT2 Wsmotor=kTRư∙b1+LưRưs1+Jbs+kT2Rư∙b Đặt : Tư=LưRư ( Hằng số thời gian của mạch phần ứng) Tm=Jb (Hằng số thời gian phần cơ) Vậy hàm truyền lý tưởng của động cơ lúc này là: Wsmotor=nsUưs=kTRư∙b1+Tưs1+Tms+kT2Rư∙b Do điện cảm của phần ứng (Lư) rất nhỏ nên thường bỏ qua, khi đó ta có: Wsmotor≈kTRư∙b1+Jbs+kT2Rư∙b+1≈kTkT2+Rư∙bJRưkT2+Rư∙bs+1≈kT1+Ts Khi ta tính bằng đơn vị rpm thì ta có sơ đồ khối như sau: Ass ke 602π Aaa 1b+Js D 1Ra+Las Ua(s) Ias Ws(rpm) - Aa ke Biến đổi tương tự như trên ta cũng có hàm truyền: Wsmotor=keRư+Lưsb+Js1+ke2Rư+Lưsb+Js∙602π=keRư∙b1+Tưs1+Tms+ke2Rư∙b∙602π Wsmotor≈602π∙keRư∙b1+Jbs+ke2Rư∙b+1≈602π∙keke2+Rư∙bJRưke2+Rư∙bs+1≈602π∙ke1+Ts Ta đặt K=kT=ke∙602π lúc này hàm truyền của động cơ là: Wsmotor≈K1+Ts Trong thực tế việc xác định các thông số là rất khó do vậy để tìm hàm truyền động cơ từ các thông số mà nhà sản xuất đưa ra là rất khó khăn nên ta sử dụng phương pháp thực nghiệm dựa trên đáp ứng quá độ động cơ. Cách nhận dạng thực nghiệm. Giả sử cấp một giá trị điện áp vào động cơ là a(V). Điện áp mạch điện phần ứng là : Uư(t) = a.1(t) Biến đổi Laplace được: Uư(s) = as Do W(s) = n(s)U(s) nên tốc độ động cơ là: n(s) = W(s).Uư(s) = W(s). as = K'as(Ts+1) Biến đổi Laplace ngược ta có: n(t) = aK'.1(t) – aK'.e-t/T Đồ thị: Hình 2.2: Đặc tính của khâu quán tính bậc nhất. 2.2 Luật điều khiển PID 2.2.1 Giới thiệu PID Bộ điều khiển PID (Proportional Integral Derivative controller) là bộ điều khiển sử dụng kỹ thuât điều khiển theo vòng lặp có hồi tiếp được sử dụng rộng rãi trong các hệ thống điều khiển tự động ,nó hiệu chỉnh sai lệch giữa tín hiệu ra và vào sau đó đưa ra một một tín hiệu điều khiển để điều chỉnh quá trình cho phù hợp. Bộ điều khiển PID (vi tích phân tỉ lệ) rất hay dùng trong các hệ thống điều khiển. Vì nó tăng chất lượng đáp ứng của hệ thống với các ưu điểm sau: PID là sự kết hợp ưu điểm của hai khâu PD và PI, nó làm giảm thời gian xác lập, tăng tốc độ đáp ứng của hệ thống, giảm sai số xác lập, giảm độ vọt lố,… Theo loại tín hiệu làm việc mà chia thành ba loại chính là bộ điều chỉnh liên tục, bộ điều chỉnh on-off và bộ điều chỉnh số. Bộ điều chỉnh liên tục có thể thực hiện bằng các cơ cấu cơ khí, thiết bị khí nén, mạch điện RC, mạch khuếch đại thuật toán. Các bộ điều chỉnh liên tục gồm bộ P, I, PI, PD, PID: Bộ điều chỉnh tỉ lệ P (Proportional): Bộ điều chỉnh tỉ lệ tạo tín hiệu điều khiển upt tỉ lệ với tín hiệu sai lệch et Hình 2.4 Sơ đồ khối bộ điều chỉnh tỉ lệ Phương trình vi phân: upt=Kp.et (9) Trong đó Kp gọi là hệ số khuếch đại Hàm truyền trong miền Laplace: Gps=Kp. Bộ điều chỉnh tích phân I (Integration): Bộ điều chỉnh tích phân tạo tín hiệu điều khiển uIt tỉ lệ với tích phân của tín hiệu sai lệch et Hình 2.5 Sơ đồ khối bộ điều chỉnh tích phân Phương trình vi phân: uIt=KI.etdt (10) Hàm truyền trong miền Laplace: GIs=UsEs=KIS Trong đó: KI là hằng số tích phân Bộ điều chỉnh tỉ lệ - tích phân (PI) Bộ điều chỉnh PI là cấu trúc ghép song song của khâu P và khâu I. Tín hiệu ra của bộ PI là tổng tín hiệu ra của hai khâu thành phần. Hình 2.6 Sơ đồ khối của bộ điều chỉnh tỉ lệ - tích phân Phương trình vi phân:ut=Kp.et+KI.etdt=Kpet+1TIetdt Đặt : hằng số thời gian tích phân. Hàm truyền trong miền Laplace: GPIs=Kp1+1TIS Bộ điều chỉnh tỉ lệ - vi phân (bộ PD) Bộ điều chỉnh PD lý tưởng là cấu trúc ghép song song của khâu P và khâu D. Tín hiệu ra của bộ PD là tổng tín hiệu ra của hai thành phần. Hình 2.7 Sơ đồ khối bộ điều chỉnh tỉ lệ - vi phân Phương trình vi phân: ut=KP.et+KD∙detdt=KP.et+Td∙detdt Đặt Td = KD /Kp là hằng số thời gian vi phân. Hàm truyền đạt trong miền Laplace: GPDs=KP1+Tds Bộ điều chỉnh tỉ lệ - vi tích phân (bộ PID) Bộ điều chỉnh PID lý tưởng là cấu trúc ghép song song của ba khâu: P, I và D. Hình 2.8 Sơ đồ khối của bộ điều chỉnh tỉ lệ - vi tích phân Phương trình vi phân của bộ PID lý tưởng: ut=KP.et+KD∙detdt+KI.etdt=KP.et+Td∙detdt+1TIetdt Hàm truyền đạt trong miền Laplace: GPIDs=KP1+Tds+1TIS Trong thực tế có nhiều sơ đồ điều khiển khác nhau có thể áp dụng cho hệ rời rạc, nhưng sơ đồ thường được sử dụng là hiệu chỉnh nối tiếp với bộ điều khiển PID số. Ta có sơ đồ điều khiển với bộ PID số: Xuất phát từ mô tả toán học của bộ PID liên tục ở trên ta có: ut=upt+uDt+uIt ut=Kp.et+KI.etdt+KD.detdt Khi chuyển sang mô hình rời rạc của bộ PID số thì u(t) thay bằng uk= u(k). uk=ukp+ukI+ukD (11) Khâu tỉ lệ upt=Kp.et được thay bằng: ukp=Kpek Suy ra hàm truyền: Gpz=UpzEz=Kp Khâu vi phân uDt=KD.detdt được thay bằng sai phân lùi: ukD=KDek-ek-1T Biến đổi Z hai vế ta được: UDz=KDEz-z-1EzT=KDT1-z-1Ez=KDTz-1zEz Þ Hàm truyền: GDz=UDzEz=KDTz-1z (12) Khâu tích phân uIt=KI.0tetdt có nhiều cách tính: Thứ nhất là tính tích phân chữ nhật lùi: ukI=KIi=1kTei=uk-1I+KITek Thứ hai là tính tích phân chữ nhật tới:ukI=KIi=1kTei-1=uk-1I+KITek-1 Thứ ba là tính tích phân hình thang: ukI=KIi=1kTei-1+ei2=uk-1I+Tek-1+ek2 Hình 2.9 Minh họa ba cách tính tích phân Trong ba cách tính tích phân trình bày ở trên, thì cách tính tích phân hình thang cho kết quả chính xác nhất, do đó thực tế người ta thường sử dụng công thức: ukI=uk-1I+Tek-1+ek2 biến đổi Z hai vế ta có: UIz=z-1Uz+KIT2z-1Ez+ Ez Þ Hàm truyền: GIz=UIzEz=KIT21+z-11-z-1=KIT2z+1z-1 (13) Từ các hàm truyền cơ bản vừa phân tích ở trên, ta rút ra được hàm truyền của bộ PI, PD, PID số như sau: GPIz=Kp+KIT2z+1z-1 (14) GPDz=Kp+KDTz-1z (15) GPIDz=Kp+KIT2z+1z-1+KDTz-1z (16) Từ đó ta có sơ đồ khối bộ PID số: Hình 2.10 Sơ đồ khối bộ PID số 2.2.2 Phương pháp hiệu chỉnh PID bằng thực nghiệm Phương pháp Zeigle – Nichols là phương pháp thực nghiệm để thiết kế bộ điều khiển P , PI hoặc PID bằng cách dựa vào đáp ứng quá độ của đối tượng điều khiển . Bộ điều khiển PID cần thiết kế có hàm truyền là : GPID=Kp+KIs+KDs=KP1+1TIs+Tds Zeigle – Nichols đưa ra 2 phương pháp lựa chọn thông số bộ điều khiển PID tùy đối tượng . Phương pháp Zeigle – Nichols 1 Phương pháp này sử dụng mô hình xấp xỉ quán tính bậc nhất có trễ của đối tượng điều khiển: WĐTs=k.e-T1s1+T2s Phương pháp thực nghiệm này có nhiệm vụ xác định tham số kp, TI, Td cho bộ điều khiển PID trên cơ sở xấp xỉ hàm truyền đạt S(s) của đối tượng thành dạng (1.1), để hệ kín nhanh chóng trở về chế độ xác lập và độ quá điều chỉnh Δh không vượt quá một giới hạn cho phép, khoảng 40% so với , tức là có Ba tham số T1 (hằng số thời gian), K (hệ số khuyếch đại) và T2 (hằng số thời gian quán tính) của mô hình xấp xỉ quán tính bậc nhất có thể được xác định gần đúng từ đồ thị hàm quá độ h(t) của đối tượng. Nếu đối tượng có hàm quá độ dạng như hình 2.10 mô tả thì từ đồ thị h(t) đó ta đọc ra được: - T1 là khoảng thời gian tín hiệu ra h(t) chưa có phản ứng ngay với tín hiệu kích thích 1(t) tại đầu vào. - K là giá trị tới hạn h∞=limt→∞ht. - Gọi A là điểm kết thúc khoảng thời gian trễ, tức là điểm trên trục hoành có hoành độ bằng T1. Khi đó T2 là khoảng cần thiết sau T1 để tiếp tuyến của h(t) tại đầu vào. Như vậy đ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ó dao động và ít nhất hàm quá độ của nó phải có dạng chữ S. Hình 2.9 Xác định tham số cho mô hình xấp xỉ của đối tượng Sau khi đã xác định các tham số cho mô hình xấp xỉ của đối tượng, Ziegler-Nichols đã đề nghị sử dụng các tham số kp, TI, TD cho bộ điều khiển như sau: K là giá trị giới hạn h∞. - Kẻ đường tiếp tuyến của h(t) tại điểm uốn của nó. Khi đó T1sẽ là hoành độ giao điểm của tiếp tuyến với trục hoành và T2 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. Như vậy ta thấy điều kiện để áp dụng được phương pháp xấp xỉ mô hình bậc nhất hàm quá độ của nó phải có dạng chữ S. Sau khi đã có tham số cho mô hình xấp xỉ của đối tượng, ta chọn các thông số của bộ điều chỉnh theo bảng: Bảng 2.1: Bảng chọn thông số PID phương pháp Ziegler-Nichols thứ nhất. Bộ ĐK/ Tham số Kp TI Td P T2/(T1.K) ∞ 0 PI 0.9 T2/(T1.K) 10T1/3 0 PID 1,2 T2/(T1.K) 2T1 0,5 T1 Phương pháp Zeigle – Nichols 2 Phương pháp thứ hai này không sử dụng mô hình toán học của đối tượng. Phương pháp thực nghiệm thứ hai này 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ố khuyếch đại trong hệ kín. Trước tiên, sử dụng bộ P lắp vào hệ kín (hoặc dùng bộ PID và chỉnh các thành phầnKIvà Kd về giá trị 0). Khởi động quá trình với hệ số khuếch đại Kp thấp, sau đó tăng dần Kp tới giá trị tới hạn Kgh để hệ kín ở chế độ giới hạn ổn định, tức là tín hiệu ra h(t) có dạng dao động điều hòa. Xác định chu kỳ tới hạn Tgh của dao động. Hình 2.10. Xác định hệ số khuếch đại tới hạn Thông số bộ điều chỉnh như sau: Bảng 2.2: Bảng chọn thông số PID phương pháp Ziegler-Nichols thứ hai. Bộ điều khiển (Thông số) Kp KI Td P 0.5Kgh ∞ 0 PI 0.45Kgh 0.93Tgh 0 PID 0.6Kgh 0.5Tgh 0.125Tgh 2.3 Bộ điều khiển PID cho động cơ một chiều Do động cơ DC có hàm truyền dạng quán tính bậc nhất có trễ nên ta sử dụng phương pháp hiệu chỉnh phương pháp Zeigle – Nichols 1. Bộ điều khiển PID có hàm truyền: GPID=Kp+KIs+KDs=KP1+1TIs+Tds Với các tham số KP,TI,Td chỉnh định được. Đối tượng là khâu trễ và khâu quán tính bậc nhất có hàm truyền: WĐTs= e-Ls1+Ts Hệ thống có sơ đồ như hình vẽ: WĐTs D WPIDs Từ công thức thực nghiêm Zeigle – Nichols: Bộ ĐK/ Tham số Kp TI Td P T2/(T1.K) ∞ 0 PI 0.9 T2/(T1.K) 10T1/3 0 PID 1,2 T2/(T1.K) 2T1 0,5 T1 (thay số cụ thể vào phần này) Chương 3: GIỚI THIỆU PHẦN MỀM VISUAL BASIC 6.0 3.1 Giới thiệu về Visual Basic 6.0 Visual Basic 6.0 (VB6) là một phiên bản của bộ công cụ lập trình Visual Basic (VB), cho phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows. Với VB6, chúng ta có thể : Khai thác thế mạnh của các điều khiển mở rộng. Làm việc với các điều khiển mới (ngày tháng với điều khiển MonthView và DataTimePicker, các thanh công cụ có thể di chuyển được CoolBar, sử dụng đồ họa với ImageCombo, thanh cuộn FlatScrollBar,…). Làm việc với các tính năng ngôn ngữ mới. Làm việc với cơ sở dữ liệu. Các bổ sung về lập trình hướng đối tượng. 3.2 Tổng quan lập trình Visual Basic 3.2.1 Môi trường lập trình a. Soạn thảo chương trình Trong Visual Basic IDE, cửa sổ mã lệnh (Code) cho phép soạn thảo chương trình. Cửa sổ này có một số chức năng nổi bật: Đánh dấu (Bookmarks): Chức năng này cho phép đánh dấu các dòng lệnh của chương trình trong cửa sổ mã lệnh để dễ dàng xem lại về sau này. Để bật tắt khả năng này, chọn Bookmarks từ menu Edit, hoặc chọn từ thanh công cụ Edit. Các phím tắt trong cửa sổ mã lệnh: Chức năng Phím tắt Xem cửa sổ Code F7 Xem cửa sổ Object Browser F2 Tìm kiếm CTRL+F Thay thế CTRL+H Tìm tiếp SHIFT+F4 Tìm ngược SHIFT+F3 Chuyển đến thủ tục kế tiếp CTRL+DOWN ARROW Chuyển đến thủ tục trước đó CTRL+UP ARROW Xem định nghĩa SHIFT+F2 Cuộn xuống một màn hình CTRL+PAGE DOWN Cuộn lên một màn hình CTRL+PAGE UP Nhảy về vị trí trước đó CTRL+SHIFT+F2 Trở về đầu của mô-đun CTRL+HOME Đến cuối mô-đun CTRL+END b. Các chức năng tự động: Tự động kiểm tra cú pháp (Auto Syntax Check). Nếu chức năng này không được bật thì khi ta viết một dòng mã có chứa lỗi, VB chỉ hiển thị dòng chương trình sai với màu đỏ nhưng không kèm theo chú thích gì và tất nhiên ta có thể viết tiếp các dòng lệnh khác. Còn khi chức năng này được bật, VB sẽ cho ta biết một số thông tin về lỗi và hiển thị con trỏ ngay dòng chương trình lỗi để chờ ta sửa. Yêu cầu khai báo biến (Require Variable Declaration) VB sẽ thông báo lỗi khi một biến được dùng mà không khai báo và sẽ chỉ ra vị trí của biến đó. Hình3.1: Cửa sổ Options Gợi nhớ mã lệnh (Code): Khả năng Auto List Members: Tự động hiển thị danh sách các thuộc tính và phương thức của 1 điều khiển hay một đối tượng khi ta gõ vào tên của chúng. Chọn thuộc tính hay phương thức cần thao tác và nhấn phím Tab hoặc Space để đưa nó vào chương trình. Hình 3.2 Cửa sổ Code với khả năng gợi nhớ Code 3.2.2 Các kiểu dữ liệu cơ sở trong Visual Basic Kiểu dữ liệu Mô tả Boolean Gồm 2 giá trị: TRUE & FALSE. Byte Các giá trị số nguyên từ 0 – 255 Integer Các giá trị số nguyên từ -32768 – 32767 Long Các giá trị số nguyên từ -2147483648 – 2147483647. Kiểu dữ liệu này thường được gọi là số nguyên dài. Single Các giá trị số thực từ -3.402823E+38 – 3.402823E+38. Kiểu dữ liệu này còn được gọi là độ chính xác đơn. Double Các giá trị số thực từ -1.79769313486232E+308 - 1.79769313486232E+308. Kiểu dữ liệu này được gọi là độ chính xác kép. Currency Dữ liệu tiền tệ chứa các giá trị số từ -922.337.203.685.477,5808 - 922.337.203.685.477,5807. String Chuỗi dữ liệu từ 0 đến 65.500 ký tự hay ký số, thậm chí là các giá trị đặc biệt như ^%@. Giá trị kiểu chuỗi được đặt giữa 2 dấu ngoặc kép (“”). Date Dữ liệu kiểu ngày tháng, giá trị được đặt giữa cặp dấu ##. Việc định dạng hiển thị tùy thuộc vào việc thiết lập trong Control Panel. Variant Chứa mọi giá trị của các kiểu dữ liệu khác, kể cả mảng. 3.2.3 Hằng số Hằng số (Constant) là giá trị dữ liệu không thay đổi. Cách khai báo hằng : [Public|Private] Const [As ] = Trong đó: tên hằng được đặt giống theo quy tắc đặt tên của điều khiển. 3.2.4 Biến Định nghĩa : Biến (Variable) là vùng lưu trữ được đặt tên để chứa dữ liệu tạm thời trong quá trình tính toán, so sánh và các công việc khác. Biến có 2 đăc điểm: Mỗi biến có một tên. Mỗi biến có thể chứa duy nhất một loại dữ liệu. Cách khai báo: `[Public|Private|Static|Dim] [ As ] Trong đó, tên biến: là một tên được đặt giống quy tắc đặt tên điều khiển. Nếu cần khai báo nhiều biến trên một dòng thì mỗi khai báo cách nhau dấu phẩy (,). Nếu khai báo biến không xác định kiểu dữ liệu thì biến đó có kiểu Variant. Khai báo ngầm: Đây là hình thức không cần phải khai báo một biến trước khi sử dụng. Cách dùng này có vẻ thuận tiện nhưng sẽ gây một số sai sót, chẳng hạn khi ta đánh nhầm tên biến, VB sẽ hiểu đó là một biến mới dẫn đến kết quả chương trình sai mà rất khó phát hiện. Khai báo tường minh: Để tránh rắc rối như đã nêu ở trên, ta nên quy định rằng VB sẽ báo lỗi khi gặp biến chưa được khai báo bằng dòng lệnh: Option Explicit trong phần Declaration (khai báo) của mô-đun. 3.2.5 Biểu thức Định nghĩa : Toán tử hay phép toán (Operator): là từ hay ký hiệu nhằm thực hiện phép tính và xử lý dữ liệu. Toán hạng: là giá trị dữ liệu (biến, hằng…). Biểu thức: là tập hợp các toán hạng và các toán tử kết hợp lại với nhau theo quy tắc nhất định để tính toán ra một giá trị nào đó. Các phép toán số học: Thao tác trên các giá trị có kiểu dữ liệu số. Phép toán Ý nghĩa Kiểu của đối số Kiểu của kết quả - Phép lấy số đối Kiểu số (Integer, Single…) Như kiểu đối số + Phép cộng hai số Kiểu số (Integer, Single…) Như kiểu đối số - Phép trừ hai số Kiểu số (Integer, Single…) Như kiểu đối số * Phép nhân hai số Kiểu số (Integer, Single…) Như kiểu đối số / Phép chia hai số Kiểu số (Integer, Single…) Single hay Double \ Phép chia lấy phần nguyên Integer, Long Integer, Long Mod Phép chia lấy phần dư Integer, Long Integer, Long ^ Tính lũy thừa Kiểu số (Integer, Single…) Như kiểu đối số Các phép toán quan hệ: Đây là các phép toán mà giá trị trả về của chúng là một giá trị kiểu Boolean (TRUE hay FALSE). Phép toán Ý nghĩa = So sánh bằng nhau So sánh khác nhau > So sánh lớn hơn < So sánh nhỏ hơn >= So sánh lớn hơn hoặc bằng <= So sánh nhỏ hơn hoặc bằng 3.2.6 Các câu lệnh a. Lệnh gán Cú pháp: = b. Lệnh rẽ nhánh If o Một dòng lệnh: If Then o Nhiều dòng lệnh: If Then Các dòng lệnh End If Lưu đồ cú pháp: Trong đó, : biểu thức mà kết quả trả về kiểu Boolean. Ý nghĩa câu lệnh: Các dòng lệnh hay dòng lệnh sẽ được thi hành nếu như điều kiện là đúng. Còn nếu như điều kiện là sai thì câu lệnh tiếp theo sau cấu trúc If ... Then được thi hành. o Dạng đầy đủ: If ... Then ... Else If Then [Khối lệnh 1] ElseIf Then [Khối lệnh 2]... [Else [Khối lệnh n]] End If VB sẽ kiểm tra các điều kiện, nếu điều kiện nào đúng thì khối lệnh tương ứng sẽ được thi hành. Ngược lại nếu không có điều kiện nào đúng thì khối lệnh sau từ khóa Else sẽ được thi hành. c. Lệnh lựa chọn Select Case Trong trường hợp có quá nhiều các điều kiện cần phải kiểm tra, nếu ta dùng cấu trúc rẽ nhánh If…Then thì đoạn lệnh không được trong sáng, khó kiểm tra, sửa đổi khi có sai sót. Ngược lại với cấu trúc Select…Case, biểu thức điều kiện sẽ được tính toán một lần vào đầu cấu trúc, sau đó VB sẽ so sánh kết quả với từng trường hợp (Case). Nếu bằng nó thi hành khối lệnh trong trường hợp (Case) đó. Select Case Case [Khối lệnh 1] Case [Khối lệnh 2] . . . [Case Else [Khối lệnh n]] End Select Mỗi danh sách kết quả biểu thức sẽ chứa một hoặc nhiều giá trị. Trong trường hợp có nhiều giá trị thì mỗi giá trị cách nhau bởi dấu phẩy (,). Nếu có nhiều Case cùng thỏa điều kiện thì khối lệnh của Case đầu tiên sẽ được thực hiện. Toán tử Is & To Toán tử Is: Được dùng để so sánh với một biểu thức nào đó. Toán tử To: Dùng để xác lập miền giá trị của . d. Cấu trúc lặp Các cấu trúc lặp cho phép thi hành một khối lệnh nào đó nhiều lần. Lặp không biết trước số lần lặp : Do ... Loop: Đây là cấu trúc lặp không xác định trước số lần lặp, trong đó, số lần lặp sẽ được quyết định bởi một biểu thức điều kiện. Biểu thức điều kiện phải có kết quả là True hoặc False. Cấu trúc này có 4 kiểu: Kiểu 1: Do While Lo op Kiểu 2: Do Loop While Kiểu 3: Do Until Loop Kiểu 4: Do Loop Until Lặp biết trước số lần lặp For ... Next Đây là cấu trúc biết trước số lần lặp, ta dùng biến đếm tăng dần hoặc giảm dần để xác định số lần lặp. For = To [Step ] [khối lệnh] Next Biến đếm, điểm đầu, điểm cuối, bước nhảy là những giá trị số (Integer, Single,…). Bước nhảy có thể là âm hoặc dương. Nếu bước nhảy là số âm thì điểm đầu phải lớn hơn điểm cuối, nếu không khối lệnh sẽ không được thi hành. Khi Step không được chỉ ra, VB sẽ dùng bước nhảy mặc định là một. 3.2.7 Chương trình con Trong Visual Basic, chương trình con có hai dạng là hàm (Function) và thủ tục (Sub). Hàm khác thủ tục ở chỗ hàm trả về cho lệnh gọi một giá trị thông qua tên của nó còn thủ tục thì không. Do vậy ta chỉ dùng hàm khi và chỉ khi thoả mãn đồng thời các yêu cầu sau đây: - Ta muốn nhận lại một kết quả (chỉ một mà thôi) khi gọi chương trình con. - Ta cần dùng tên chương trình con (có chứa kết quả) để viết trong các biểu thức. Nếu không thỏa mãn hai điều kiện ấy thì dừng thủ tục. a. Thủ tục Định nghĩa : Thủ tục là một chương trình con thực hiện một hay một số tác vụ nào đó. Thủ tục có thể có hay không có tham số. Cách khai báo thủ tục [Private | Public] [Static] Sub [([As ])] hay End Sub Trong đó: - : Đây là một tên được đặt giống quy tắc tên biến, hằng,… - [: ]: có thể có hay không? Nếu có nhiều tham số thì mỗi tham số phân cách nhau dấu phẩy. Nếu không xác định kiểu tham số thì tham số có kiểu Variant. Để gọi thủ tục để thực thi, ta có 2 cách: [] Call ([]) b. Cách khai báo hàm [Private | Public | Static] Function [([As ])] _ [As ] hay End Function Sau khi xây dựng chương trình, ta có giao diện điều khiển : Chương 4: TỔNG QUAN THIẾT KẾ 4.1 Thiết kế phần cứng Sơ đồ khối mạch phần cứng được mô tả như hình dưới: Khối điều khiển trung tâm (Atmega16) Khối hiển thị LCD 16x2 Máy tính (PC) Khối giao tiếp Mạch công suất (Mạch cầu H) Khối nguồn 5V Khối nguồn 12V Động cơ Encoder Hình 4.1 : Sơ đồ khối của mạch Khối điều khiển trung tâm được cấp nguồn 5V từ khối nguồn và kết nối với khối điều khiển công suất để điều khiển tốc độ và đảo chiều động cơ. Mạch công suất nhận tín hiệu điều khiển từ khối điều khiển trung tâm để điều khiển công suất cung cấp cho động cơ và thay đổi chiều quay. Khối Encoder đọc tốc độ động cơ và xuất ra các xung đếm, các xung này được sửa thành xung vuông và đưa vào chân ngắt của vi điều khiển ATmega16 cho phép Atmega16 giám sát được tốc độ và xác định chiều quay của động cơ. Khối hiển thị LCD 2 hàng 16 cột, để hiển thị vận tốc thực và vận tốc đặt của động cơ do vi điều khiển xử lý tín hiệu gửi về từ encoder. Khối giao tiếp UART giao tiếp giữa máy tính và vi điều khiển, để truyền thông số được cái đặt từ máy tính xuống vi điều khiển và truyền dữ liệu từ vi điều khiển lên máy tính. Sử dụng IC chuyển đổi điện áp MAX232. 4.1.1 Khối điều khiển trung tâm Hình 4.2: Sơ đồ khối điều khiển trung tâm Tổng quan về AVR và Atmega16 +Vi điều khiển AVR Vi điều khiển AVR (Atmel Norway Design) thuộc họ vi điều khiển Atmel, nó là họ vi điều khiển khá mới trên thị trường cũng như đối với người sử dụng. Đây là họ vi điều khiển được chế tạo theo kiến trúc RISC (Reduced Intruction Set Computer) có cấu trúc khá phức tạp. Ngoài các tính năng như các họ VĐK khác, nó còn tích hợp nhiều tính năng mới rất tiện lợi cho người thiết kế và lập trình. Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu hết khi cần lập trình cho vi điều khiển, chúng ta thường dùng những ngôn ngữ bậc cao HLL (Hight Level Language) để lập trình ngay cả với loại chip xử lí 8 bit trong đó ngôn ngữ C là ngôn ngữ phổ biến nhất. Tuy nhiên khi biên dịch thì kích thước đoạn mã sẽ tăng nhiều so với dùng ngôn ngữ Assembly. Hãng Atmel nhận thấy rằng cần phải phát triển một cấu trúc đặc biệt cho ngôn ngữ C để giảm thiểu sự chênh lệch kích thước mã đã nói trên. Và kết quả là họ vi điều khiển AVR ra đời với việc làm giảm kích thước đoạn mã khi biên dịch và thêm vào đó là thực hiện lệnh đúng đơn chu kỳ máy với 32 thanh ghi tích lũy và đạt tốc độ nhanh hơn các họ vi điều khiển khác từ 4 đến 12 lần. Vì thế nghiên cứu AVR là một đề tài khá lý thú và giúp cho sinh viên biết thêm một họ vi điều khiển vào loại mạnh nhất hiện nay. + Phân loại AVR - AT90S8535: Không có lệnh nhân hoặc chia trên thanh ghi. - ATMEGA 8, 16, 32 (AVR loại 8 bit, 16 bit, 32 bit): Là loại AVR tốc độ cao, tích hợp sẵn ADC 10 bit. - AVR tích hợp sẵn LCD driver : Atmega169, 329. - AVR có tích hợp SC (power stage controller): AT90PWM thường dùng trong các ứng dụng điều khiển động cơ hay chiếu sáng nên còn gọi là lighting AVR. - Attiny11, 12, 15: AVR loại nhỏ. + Các tính năng của Atmega16 : - Hiệu xuất cao ( high performance ), là loại vi điều khiển AVR 8 bit công suất thấp - Cấu trúc lệnh đơn giản, thời gian thực thi lệnh như nhau (thật ra là Advanced RISC Architecture) + 130 lệnh thực thi trong vòng 1 chu kì chip. + 32 x 8 thanh ghi công dụng chung ( chắc là 32 thanh ghi công dụng chung 8 bit) + Đầy đủ các sử lí tĩnh + Hỗ trợ 16 MIPS khi hoạt động ở tần số 16 MHz + Tích hợp bộ nhân 2 thực hiện trong 2 chu kì chip. - Bộ nhớ chương trình và dữ liệu không bay hơi ( nonvolatile ). + 16k byte trong hệ thống flash khả trình có thể nạp và xóa 1,000 lần. + Tùy chọn khởi động phần mã với các bit nhìn độc lập trong hệ thống bằng cách vào chương trình khởi động chip. + 512 byte EEPROM có thể ghi và xóa 100,000 lần. + 1k byte ram nhớ tĩnh trong ( internal SRAM ). + Lập trình khóa cho phần mềm bảo mập. - Tính năng ngoại vi. + 2 bộ định thời/bộ đếm ( timers/counters ) 8 bit với các chế độ đếm riêng rẽ và kiểu so sánh. + 1 bộ định thời/bộ đếm ( timer/counter ) 16 bit với các chế độ đếm riêng rẽ, kiểu so sánh và kiểu bắt sự kiện. + Bộ đếm thời gian thực với máy giao động riêng rẽ. + 4 kênh băm xung PWM. + 8 kênh ADC 10 bit. + Byte định hướng 2 đường giao tiếp nối tiếp. + Giao tiếp USART nối tiếp khả trình. + Giao tiếp SPI nối tiếp chủ/tớ ( master/slave ). + Bộ định thời khả trình giám sát xung nhịp của chip 1 cách riêng rẽ. + Tích hợp bộ so sánh tín hiệu tương tự. - Giao tiếp JTAG. - Các tính năng đặt biệt của vi điều khiển. + Chế độ bật nguồn reset và phát hiện Brown-out khả trình. + Tích hợp mạch dao động RC bên trong. + Các ngắt trong và ngoài. + 6 chế độ nghỉ : rảnh rỗi,giảm nhiễu ADC, Tiết kiệm năng lượng, nguồn thấp, Standby và Extended Standby. - Vào/ra và các gói dữ liệu. + 32 chân vào ra khả trình. - 40-pin PDIP and 44-lead TQFP. - Điện áp sử dụng. + 2.7 – 5.5V dùng với atmega16L. + 4.5 – 5.5V dùng với atmega16. - Tốc độ xung nhịp dùng cho chip. + 0 – 8 MHz cho atmega16L. + 0 – 16 MHz cho atmega16 a. Hình ảnh thực tế và sơ đồ chân Atmega16: Hình 4.3 Hình ảnh thực tế của Atmega16 Hình 4.4 Sơ đồ chân của Atmega16 Hình 4.5 Sơ đồ cấu trúc của AVR ATmega16 +Atmega16 gồm có 40 chân: - Chân 1 đến 8 : Cổng nhập xuất dữ liệu song song B ( PORTB ) nó có thể đc sử dụng các chức năng đặc biệt thay vì nhập xuất dữ liệu. - Chân 9 : RESET để đưa chip về trạng thái ban đầu. - Chân 10 : VCC cấp nguồn nuôi cho vi điều khiển. - Chân 11,31 : GND 2 chân này đc nối với nhau và nối đất. - Chân 12,13 : 2 chân XTAL2 và XTAL1 dùng để đưa xung nhịp từ bên ngoài vào chip. - Chân 14 đến 21: Cổng nhập xuất dữ liệu song song D ( PORTD ) nó có thể được sử dụng các chức năng đặc biệt thay vì nhập xuất dữ liệu. - Chân 22 đến 29 : Cổng nhập xuất dữ liệu song song C ( PORTC ) nó có thể được sử dụng các chức năng đặc biệt thay vì nhập xuất dữ liệu. - Chân 30 : AVCC cấp điện áp so sánh cho bộ ADC. - Chân 32 : AREF điện áp so sánh tín hiệu vào ADC. - Chân 33 đến 40 : Cổng vào ra dữ liệu song song A ( PORTA ) ngoài ra nó còn được tích hợp bộ chuyển đổi tín hiệu tương tự sang tín hiệu số ADC ( analog to digital converter) b. Vào ra của vi điều khiển PORTA ( PA7 … PA0 ) : là các chân số 33 đến 40. Là cổng vào ra song song 8 bít khi không dùng ở chế độ ADC. Bên trong có sẵn các điện trở kéo, khi PORTA là output thì các điện trở kéo không hoạt động, khi PORTA là input thì các điện trở kéo được kích hoạt. PORTB ( PB7 ... PB0 ) : là các chân số 1 đến 8. Nó tương tự như PORTA khi sử dụng vào ra song song. Ngoài ra các chân của PORTB còn có các chức năng đặt biệt sẽ được nhắc đến sau. PORTC ( PC7 ... PC0 ) : là các chân 22 đến 30. Cũng giống PORTA và PORTB khi là cổng vào ra song song. Nếu giao tiếp JTAG được bật, các trở treo ở các chân PC5(TDI), PC3(TMS), PC2(TCK) sẽ hoạt động khi sự kiện reset sảy ra. Chức năng giao tiếp JTAG và 1 số chức năng đặc biệt khác sẽ được nghiên cứu sau. PORTD ( PD7 ... PD0 ) : là các chân 13 đến 21. Cũng là 1 cổng vào ra song song giống các PORT khác, ngoài ra nó còn có 1 số tính năng đặc biệt sẽ đc nghiên cứu sau. c. Mạch cấp nguồn nuôi cho vi điều khiển Hình 4.6 Sơ đồ nguyên lý mạch nguồn 5V Khối này là mạch điện dùng để ổn áp điện thế 5V, cấp nguồn ổn định cho vi điều khiển hoat động. Sử dụng IC ổn áp 7805 để giữ đầu ra ổn định trong khoảng 5V, đầu ra này chính là nguồn AVCC cung cấp cho mạch vi điều khiển hoạt động. Sử dụng IC 7805 chuyển điện áp 12V đầu vào thành điện áp 5V đầu ra, cho dòng điện ra định danh 1A nhưng thực tế thì dòng ra khoảng 500mA. Nên để tạo ra nguồn cung cấp 3A ta sử dụng mạch nâng dòng dùng BJT TIP42. Điện trở R5=10Ω để phân cực cho BJT dẫn ở chế độ khuếch đại. Tụ CAP-P7 dung lượng lớn lọc điện áp gợn tránh ảnh hưởng của tín hiệu cao tầng chạy vào IC nguồn và tụ CAP –P6 lọc xung điện áp nhọn về. Điện trở R6 hạn dòng cho Led1LED báo. Điện trở R5 làm nhiệm vụ giới hạn dòng cho 7805 ở giá trị Ik nào đó. Khi I tải Ik thì có thể coi: transistor cấp dòng cho tải là: Itải - Ik, còn 7805 cấp dòng là Ik.R được tính cỡ (Uin-7.5)/Ik, trong đó 7.5V là điện áp min nhất Hình 4.7 IC LM7805 lối vào 7805 để đảm bảo 7805 hoạt động tốt. d. Mạch cấp dao động ngoài cho vi điều khiển Mạch dao động là mạch sử dụng các linh kiện để phát ra các tín hiệu xung dao động cụ thể để điều khiển các thiết bị điện tử. Có nhiều dạng tín hiệu xung được phát ra từ mạch dao động như xung hình sin, xung vuông, xung tam giác… Trong mạch tạo dao động này gồm có: - X1: là thạch anh dao động, tần số dao động được ghi trên thân của thạch anh, ta sử dụng thạch anh có tần số dao động là 8Mhz. Khi thạch anh dao động thì nó tự dao động ra sóng hình sin. Thạch anh thường có tần số dao động từ vài trăm KHz tới vài chục MHz. - Tụ Cap2, Cap3 có giá trị 33p Bên dưới là mạch tạo dao động sử dụng thạch anh Hình 4.4 Mạch tạo dao động dùng thạch anh e. Khối reset vi điều khiển Trong mạch Reset này gồm có 3 linh kiện: - Nút ấn thường mở - Tụ Cap-p có giá trị 10u - Điện trở R4 có giá trị 10k Hình 4.5 Mạch reset vi điều khiển Trong quá trình hoạt động bất kỳ lúc nào cũng có thể ấn nút ấn Reset. Sau khi ấn nút này thì mọi trạng thái làm việc đều trở lại vị trí ban đầu. 4.1.2 Khối hiển thị LCD Module hiển thị là một trong những module rất quan trọng, ngày nay nó đã được tích hợp bên trong các bộ điều khiển công nghiệp. Hình 4.8 : Hình ảnh thực tế LCD Nhờ có module hiển thị mà giúp cho người điều khiển có thể hiển thị được các thông số cần điều khiển cũng như biết được các giá trị mà bộ điều khiển đo được. Không chỉ dừng lại ở đó, module hiển thị còn được ứng dụng rất rộng rãi trong đời sống hàng ngày mà ở bất kì đâu ta cũng có thể bắt gặp như: Bảng quảng cáo, đồng hồ điện tử, bộ điều khiển…Trong bản đồ án của chúng em cũng sử dụng module hiển thị LCD 16x2 để hiển thị tốc độ đặt và tốc độ thực của động cơ. LCD được nối với PORTA Hình 4.6 Sơ đồ chân của LCD 16x2 Chức năng của LCD trong hầu hết các mạch, các bộ điều khiển đảm nhân vai trò hiển thị các thông số, các thông tin mà chúng ta muốn nhập vào hay các thông tin xử lý mà bộ điều khiển đang hoạt động được hiển thị ra màn hình, giúp chúng ta giao tiếp gần hơn với quá trình hoạt động của hệ thống. Loại LCD mà chúng ta sử dụng là loại SD-DM1602A 2 dòng mỗi dòng 16 kí tự, loại này do Trung Quốc sản xuất. Nó có 16 chân như hình vẽ. Trong đó chúng ta có thể thấy 2 chân 1,2 được cấp nguồn cho LCD hoạt động, chân thứ 3 (chân VSS) được nối vào đầu ra của biến trở dùng để điều chỉnh độ tương phản (phải điều chỉnh VSS hợp lý thì LCD mới hiển thị được) 2 chân 15, 16 đây là 2 chân cấp nguồn dùng để bật đèn của LCD từ chân 4->14 là các chân điều khiển được nối với vi điều khiển, các chân 4, 5, 6 dùng để điều khiển hoạt động của LCD, các chân còn lại là 8 bit Data dùng để truyền nhận dữ liệu. Chúng ta có thể giao tiếp Data 8 bit hoặc 4 bit như trong mạch của chúng ta truyền Data dưới dạng 4 bit. Việc truyền dưới dạng 4bit hoặc 8 bit phải được thiết lập cả phần cứng và phần mềm. Khối giao tiếp máy tính qua cổng nối tiếp Cổng nối tiếp của máy tính là cổng COM (Comunication Port) để giao tiếp dữ liệu hai chiều giữa máy tính PC và ngoại vi với nhiều ưu điểm. Ngày nay, mỗi máy tính cá nhân đều có một hoặc một vài cổng nối tiếp theo chuẩn RS-232 (cổng COM), có thể sử dụng để kết nối với các thiết bị ngoại vi hoặc các máy tính khác. Cấu tạo cổng COM: - TxD (Transmit Data) : Đường gửi dữ liệu - RxD (Receive Data) : Đường nhận dữ liệu - RTS (Request To Send) : Yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu. - CTS (Clear To Send): Xoá để gửi, bộ nhận đặt đường này lên mức hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận dữ liệu Hình 4.7 Cấu tạo cổng COM - DSR (Data Set Ready) : Dữ liệu sẵn sàng; tính hoạt động giống với CT nhưng được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu. - SG (Signal Ground) : Đất của tín hiệu. - DCD (Data Carrier Detect) : Phát hiện tín hiệu mang dữ liệu. - DTR (Data Terminal Ready) : Đầu cuối dữ liệu sẵn sàng; tính hoạt động giống với RTS nhưng được kích hoạt bởi bộ nhận khi muốn truyền dữ liệu. - RI (Ring Indicate) : Báo chuông, cho biết là bộ nhận đang nhận tín hiệu rung chuông. Đáng chú ý nhất trong các chân của cổng COM là 3 chân 0V SG (signal ground), chân phát dữ liệu TxD và chân nhận dữ liệu RxD. Đây là 3 chân cơ bản phục vụ truyền thông theo chuẩn RS232 và tương thích với UART trên AVR. Các chân còn lại cũng có thể được sử dụng nếu người dùng có 1 ít kiến thức về tổ chức thanh ghi của PC. Tuy nhiên, trong đa số trường hợp giao tiếp qua cổng COM thì chỉ 3 chân trên được sử dụng. Cổng nối tiếp có nhiều ưu điểm và đặc điểm nổi trội: - Tính chống nhiễu tương đối tốt, khoảng cách truyền xa hơn cổng song song. - Số lượng dây kết nối ít tối thiểu 3 dây: TxD, RxD , GND. - Ghép nối dễ dàng vi điều khiển hoặc PLC. - Có khả năng kết nối mạng… Trong sơ đồ mạch giao tiếp máy tính này chúng ta sử dụng 3 dây truyền nhận dừ liệu TxD, RxD, GND không dùng chế độ bắt tay phần cứng, nếu khi cần bắt tay chúng ta có thể sử dụng phần mềm. Ngày nay vi xử lý và máy tính tốc độ hoạt độngcao không nư trước lên thuận lợi khi chúng ta truyền nhận . Trên vi điều khiển chúng ta sử dụng modul USART giao tiếp bất đồng bộ máy tính cài đặt thông số: tốc độ 9600 baud, 1bit start, 1 bit stop, 8 bit dữ liệu không sử dụng bit Parity. Hình 4.11 Cấu trúc mạch chuyển đổi tín hiệu 4.1.4 IC RS232 Sơ đồ mạch điện : Hình 4.12: Cấu tạo và hình ảnh bên ngoài của vi mạch Max232 Giải thích hoạt động của mạch Do sự khác biệt mức tín hiệu 0 và 1 ở hai điểm: máy tính và vi điều khiển. Vì vậy muốn thực hiện ghép nối giữa hai điểm này ta cần phải sử dụng một mạch chuyển đổi tín hiệu để hai bên có thể “hiểu” được nhau.Có thể nói một cách rõ ràng hơn , trên cổng COM của máy tính sử dụng hai mức điện áp 0 ứng với 12V và 1 ứng với -12V . Trong khi đó tại cổng nối tiếp của vi điều khiển thì lại khác biệt hoàn toàn . Ứng với mực điện áp 0V sec quy định đó là mức 0 , còn ở mức điện áp 5V sẽ quy định mức 1 . Yêu cầu này nên em chọn IC MAX232 là một IC chuyên dụng cho việc chuyển đổi mức tín hiệu cho hai điểm này . MAX232 có chức năng là một bộ điều khiển đường truyền (bộ chuyển đổi điện áp ) để chuyển các tín hiệu RS232 (-12V ÷ +12V ) về các mức điện áp TTL (0V ÷ 5V ) được các chân RxD và TxD của Atmega16 chấp nhận và ngược lại chuyển tín hiệu từ Atmega 16 về RS232 . Để có thể hoạt động bình thường và ít sai số thì MAX 232 cần mắc thêm tụ ở các chân 1,2,4,5,6,15,16 có giá trị từ 1 uF đến 22uF. Ở mạch trên dung tụ với giá trị 10uF. MAX 232 có hai đôi chân truyền và hai đôi chân nhận .Ở mạch này cặp chân truyền nhận sử dụng là T2IN và R2OUT. Mạch chuyển đổi USB-RS232 Hình 4.13 : Khối truyền thông USB-RS232 4.1.4 Khối xử lý tín hiệu encoder Sơ đồ Hình 4.14 Xử lý tín hiệu encoder Giải thích sơ đồ Tín hiệu từ encoder về có thể bị nhiễu và chưa “vuông” nên có thể gây ra việc đọc sai số xung ở vi điều khiển. Chính vì vậy qua mạch đảo tín hiệu xung này tín hiệu sẽ “vuông ” hơn tạo điều kiện thuận lợi cho vi điều khiển xử lý. Khi đảo, tín hiệu xung sẽ bị đảo lại trạng thái khi đó tín hiệu ra có trạng thái ngược với trạng thái trước khi đưa vào các bộ đảo. Ngoài ra trước khi đưa vào vi điều khiển ta treo các tín hiệu này lên điện áp nguồn (5V) mục đích là : khi tín hiệu vào có thể ở dưới mức 5V và có thể rơi vào mức điện áp mà vi điều khiển không thể nhận biết đó là mức “1” hay “0” . Vì vậy khi tín hiệu có điện áp nhỏ hơn sẽ được bù điện áp để vi điều khiển có thể nhận biết được mức tín hiệu. 4.1.4 Mạch công suất Mạch công suất chúng em sử dụng mạch cầu H để đảo chiều động cơ DC. Mạch cầu H là được gọi là mạch cầu H vì nó được cấu tạo bởi 4 transitor hay là Fet. Đôi khi mạch cầu H cũng được cấu tạo bởi 2 transitor hay Fet. Tác dụng của transitor và Fet là các van đóng mở dẫn dòng điện từ nguồn xuống tải với công suất lớn. Tìn hiệu điều khiển các van là tín hiệu nhỏ (điện áp hay dòng điện) và cho dẫn dòng và điện áp lớn để cung cấp cho tải. Thành phần chính của mạch cầu H chính là các “khóa”, việc chọn linh kiện để làm các khóa này phụ thuộc vào mục đích sử dụng mạch cầu, loại đối tượng cần điều khiển, công suất tiêu thụ của đối tượng và cả hiểu biết, điều kiện của người thiết kế. Nhìn chung, các khóa của mạch cầu H thường được chế tạo bằng rờ le (relay), BJT (Bipolar Junction Transistor) hay MOSFET (Metal Oxide Semiconductor Field-Effect Transistor). - Mạch cầu H dùng rờ le có ưu điểm là dễ chế tạo, chịu dòng cao, đặc biệt nếu thay rờ le bằng các linh kiện tương đương như contactor, dòng điện tải có thể lên đến hàng trăm ampere. Tuy nhiên, do là thiết bị “cơ khí” nên tốc độ đóng/mở của rờ le rất chậm, nếu đóng mở quá nhanh có thể dẫn đến hiện tượng “dính” tiếp điểm và hư hỏng. Vì vậy, mạch cầu H bằng rờ le không được dùng trong phương pháp điều khiển tốc độ động cơ bằng PWM. Trong phần tiếp theo chúng ta sẽ tìm hiểu các linh điện có thể thay thế rờ le trong mạch cầu H, gọi là các “khóa điện tử” với khả năng đóng/mở lên đến hàng nghìn hoặc triệu lần trên mỗi giây. - Mạch cầu dùng MOSFET thường được dùng thay các BJT trong các mạch cầu H vì dòng mà linh kiện bán dẫn này có thể dẫn rất cao, thích hợp cho các mạch công suất lớn. Do cách thức hoạt động, có thể hình dùng MOSFET kênh N tương đương một BJT loại npn và MOSFET kênh P tương đương BJT loại pnp. Ở đây ta dùng mạch cầu H sử dụng BJT - Mạch cầu dùng BJT có thể được kích ở tốc độ rất cao nên ngoài chức năng đảo chiều, mạch cầu H dùng BJT có thể dùng điều khiển tốc độ motor bằng cách áp tín hiệu PWM vào các đường kích. Hình 4.15 Sơ đồ nguyên lý mạch công suất Nhược điểm lớn nhất của mạch cầu H dùng BJT là công suất của BJT thường nhỏ, vì vậy với motor công suất lớn thì BJT ít được sử dụng. Mạch điện kích cho BJT cần tính toán rất kỹ để đưa BJT vào trạng thái bão hòa, nếu không sẽ hỏng BJT. Mặt khác, điện trở CE của BJT khi bão hòa cũng tương đối lớn, BJT vì vậy có thể bị nóng… BJT là viết tắt của từ Bipolar Junction Transistor là một linh kiện bán dẫn (semiconductor device) có 3 cực tương ứng với 3 lớp bán dẫn trong cấu tạo. Trong tất cả các tài liệu về điện tử cơ bản đều giải thích về bán dẫn và BJT, trong tài liệu này tôi chỉ giới thiệu khái quát cấu tạo của transistor và chủ yếu là các chế độ hoạt động của transistor.      Bán dẫn là các nguyên tố thuộc nhóm IV trong bảng tuần hoàn hóa học, Silic (Si) là một ví dụ điển hình, các nguyên tố này có 4 electron ở lớp ngoài cùng. Ở trạng thái thường, Si là chất dẫn điện kém (gần như không dẫn điện), khi nhiệt độ tăng, các electron dao động mạnh và dễ dàng bị “bứt” ra khỏi tinh thể và do đó tính dẫn điện của bán dẫn sẽ tăng. Tuy nhiên, bán dẫn được dùng để chế tạo linh kiện điện tử không phải là các tinh thể thuần khiết mà có pha “tạp chất”. Nếu pha nguyên tố nhóm V (như Photpho) vào Si, 4 electron lớp ngoài cùng của P tạo liên kết công hóa trị với Si và có 1 electron của P bị “thừa” (vì P có 5 electron lớp ngoài cùng). Chất bán dẫn có pha Photpho vì thế rất dễ dẫn điện và có tính chất “âm” nên gọi là bán dẫn loại n (Negative), “hạt dẫn” trong bán dẫn loại n là electron (e thừa). Trường hợp nguyên tố nhóm III, như Bo (Boron), được pha vào Si, 3 electron lớp ngoài cùng của Bo kết hợp với 4 electron của Si tuy nhiên vẫn còn 1 “chỗ trống” sẵn sàng nhận electron. “Chỗ  trống” này được gọi là “lỗ trống” và có tính chất như 1 loại hạt dẫn dương. Bán dẫn loại này vì thế gọi là bán dẫn loại p (Positive). Mức độ pha tạp chất quyết định độ dẫn của bán dẫn. Tuy nhiên, bán dẫn có pha tạp chất dù đã cải thiện tính dẫn điện vẫn không có nhiều tác dụng, “điều kỳ diệu” chỉ xảy ra khi ghép chúng lại với nhau. Khi ghép bán dẫn loại p và loại n với nhau tạo thành tiếp xúc p-n (p-n junction), đây chính là các diode. Đặc điểm của tiếp xúc p-n là chỉ có dòng điện chạy qua theo 1 chiều từ p sang n. Khi ghép 3 lớp bán dẫn sẽ tạo thành transistor, phụ thuộc vào thứ tự bán dẫn được ghép chúng ta có transistor npn hay pnp. Tôi sẽ chọn transistor npn để giải thích hoạt động của transistor vì loại này được dùng phổ biến trong các ứng dụng điều khiển (và cả trong mạch cầu H). Hình 5 là mô hình và ký kiệu của transistor npn. Ba lớp bán dẫn n, p và n kết hợp tạo thành 3 cực C (cực thu-Collector), cực B (nền – Base) và cực E (phát – Emitter). Tùy theo cách mắc transistor mà người ta có các loại phân cực khác nhau, trong hình 6 tôi trình bày cách phân cực rất cơ bản mà chúng ta sẽ dùng sau này, phân cực E chung (CE- Common Emitter). Tuy là được tạo nên từ các bán dẫn tạp chất nhưng nồng độ tạp chất của các lớp trong npn BJT rất khác nhau. Lớp E rất “giàu” hạt dẫn, kế đến là lớp C và lớp B thì lại rất ít hạt dẫn và rất mỏng. Khi điện áp cực B lớn hơn điện áp cực E, tiếp xúc p-n giữa B và E được phân cực thuận. Dòng electron từ E (vốn có rất nhiều do cách pha tạp chất) ào ạt “chảy” về B, trong khi lớp B (bán dẫn loại p) vốn rất mỏng và nghèo hạt dẫn (lỗ trống), nên phần lớn electron từ E sẽ “tràn” qua cực C và đi về nguồn Vc như mô tả trên hình 6. Chú ý trên hình 6 tôi vẽ chiều di chuyển là chiều của dòng electron, chiều dòng điện sẽ ngược lại (vì theo định nghĩa chiều dòng điện ngược chiều electron). Diễn giải đơn giản, dòng diện từ cực B đã gây ra dòng điện từ cực C về E. Quan hệ của các dòng điện như sau : IE=IB+IC. Một đặc điểm thú vị là dòng electron tràn qua cực C sẽ tỉ lệ với dòng electron đến cực B. Mối quan hệ như sau : IC=hfeIB     Thông số hfe gọi là hệ số khuyếch đại tĩnh (DC Current Gain) của BJT và là hằng số được ghi bởi các nhà sản xuất, nó chính là đặc tính để phân biệt từng loại BJT, gái trị của thường rất lớn, từ vài chục đến vài trăm. Chính vì đặc điểm này mà transistor được dùng như là một linh kiện “khuyếch đại”. Tác dụng của các linh kiện : - T1,T2,T7,T8: là Transistor loại nhỏ chịu được dòng nhỏ và áp nhỏ (đặc điểm của loại Transistor này khi hoạt động ở chế độ bão hòa thì IBE ,UBE nhỏ ). Dòng tải cho động cơ không phụ thuộc trên những Transistor này. Nó chỉ có tác dụng điều khiển đóng mở các tran loại to ( TIP). - T3, T4, T5,T6: Là Transistor loại lớn – chịu được dòng lớn và áp lớn (đặc điểm của loại transistor này khi hoạt động ở chế độ bão hòa thì IBE ,UBE lớn ). Dòng tải cho động cơ phụ thuộc trên những Transistor này. Nó chịu nhiệm vụ chính cho việc dẫn dòng cho động cơ làm việc. - Sử dụng 2 OPTO để cách ly quang giữa mạch điều khiển và mạch công suất, bảo vệ mạch điều khiển. - Mục đích cần lắp thêm Transistor nhỏ cho các Transistor lớn: đặc điểm của motor là gồm nhiều cuộn dây chính vì vậy khi hoạt động nó sẽ hút dòng cực lớn. Chúng ta cần lắp thêm Transistor nhỏ để tránh việc hút dòng của động cơ ảnh hưởng đến tín hiệu điều khiển. Nguyên lý hoạt động . - Khi chưa có tín hiệu hoặc tín hiệu 0 tại đầu control 1 và control 2 : lúc này Transistor T7, T8 đều đóng (T7, T8 là Transistor ngược). Lúc này điện áp tại chân B của 2 Transistor T5 và T6 là (+) nên T5 và T6 đóng. T1,T2 mở dẫn đến T3, T4 mở . - Khi kích tín hiệu 1 vào control 1 hoặc control 2 (vào control 1): khi kích vào control 1 tín hiệu (+) sẽ vào chân B của Transistor T7, kích hoạt T7 mở. Khi T7 mở sẽ đưa (-) vào chân B của T5 và chân B của T2, T5 mở, T2 đóng. Khi T2 đóng dẫn đến T3 đóng và dòng điện sẽ đi theo chiều (+)àCT4 à ET4 à động cơ àET5 àCT5à(-) –động cơ quay ngược. - Khi kích tín hiệu 1 vào control 2: dòng điện sẽ chạy theo chiều ngược lại (+)àCT3 à ET3 à động cơ àET6 àCT6à(-) động cơ quay theo chiều ngược lại. - Khối dalington (T2, T3 & T1, T4) : khối này khi hoạt động không sảy ra tình trạng sụt áp trên động cơ tại 2 cực ET1 và ET3 vì dòng cấp trực tiếp cho động cơ là dòng UCE(T3) chứ không phải dòng U BE (T3) nên không bao giờ sảy ra tình trạng sụt áp 2 lần tại khối Dalington T2, T3. Tương tự T1,T4 cũng như vậy . - Trường hợp dòng chạy từ T3àT6 chỉ sảy ra sụt áp 1 lần tại cực E của T3 mà không xảy ra sụt áp tại cực E của T6 vì T6 dẫn (-) nên không có sự chênh lệch điện áp. 4.2 Thiết kế phần mềm Chương trình trên vi điều khiển bao gồm: chương trình chính (main program), và các trình phục vụ ngắt (Interrupt Service Routine) Lưu đồ giải thuật của chương trình chính Toàn bộ phần highlight dưới viết linh tinh viết lại theo hướng dẫn ban đầu Trình phục vụ ngắt Timer2 tính tốc độ: Ngắt ngoài 1 xử lý xung và tốc độ Lưu đồ thuật chương trình trên Visual Basic CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Qua thời gian thực hiện, chúng em đã có dịp được kiểm chứng lý thuyết qua nhiều thực nghiệm và đã hoàn thành đồ án này đúng theo yêu cầu và thời gian quy định. Trong đồ án này chúng em đã thực hiện được những công việc sau. Lý thuyết + Tìm hiểu về cấu tạo, phương pháp điều khiển tốc độ của động cơ điện một chiều. + Tìm hiểu luật điều khiển PID và tìm bộ điều khiển cho động cơ điện môt chiều. + Tìm hiểu về phần mềm Visual Basic Mô hình thực nghiệm + Thiết kế mạch công suất cho động cơ điện môt chiều sử dụng BJT (mạch cầu H). + Thiết kế mạch hỗ trợ giao tiếp thu thâp tốc độ sử dụng vi điều khiển ATmega16. + Thiết kế bộ điền khiển PID số. Mặc dù chúng em đã rất cố gắng nhưng do kiến thức, khả năng thực hành có hạn nên không tránh khỏi thiếu sót nhầm lẫn kính mong thầy cô và các bạn đóng góp ý kiến thêm để đồ án được hoàn thiện hơn nữa đáp ứng với yêu cầu thực tế. 5.2 Hướng phát triển Với sự phát triển nhanh chóng của Khoa học kỹ thuật nói chung và ngành Tự động hoá nói riêng hiện nay. Do đó muốn đáp ứng được nhu cầu thực tế thì đề tài này phải tiếp tục nghiên cứu để phát triển thêm. Có thể điều khiển được nhiều đối tượng khác nhau. Nâng cấp giao tiếp (card PCI,RS485,USB)để điều khiển chính xác hơn. Sử dụng nhiều thuật toán điều khiển nâng cao trên vi điều khiển để đề tài tối ưu hơn.

Các file đính kèm theo tài liệu này:

  • docxBộ điều khiển số PID điều khiển DC motor.docx