Điều khiển động cơ 1 chiều DC sử dụng vi xử lí arduino

80 3.3K 21
Điều khiển động cơ 1 chiều DC sử dụng vi xử lí arduino

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Điều khiển động cơ 1 chiều DC sử dụng vi xử lí arduino

Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- MỤC LỤC LỜI MỞ ĐẦU…………………………………………………………………………… Chương 1: TỔNG QUAN……………………………………………………………… 1. Giới thiệu chung Arduino………………………………………………………… .4 1.1. Tổng quan Arduino Uno………………………………………………………… 1.2. Sơ đồ chân Arduino………………………………………………………………… 2. Giới thiệu phần mền Proteus……………………………………………………… .7 3.Các phần mềm sử dụng………………………………………………………………….9 4. Chi phí thực đề tài…………………………………………………………………9 Chương 2: Nhận dạng động DC………………………………………………………11 1. Xác định thông số động ………………………………………………………… .11 1.1 Xác định dạng hàm truyền ………………………………………………………… 11 1.2. Xác định hàm truyền thông số PID …………………………………………… .11 1.3. Kiểm nghiệm thông số PID…………………………………………………………21 2. Nhận dạng động thực………………………………………………………………24 Chương 3: Thiết kế mô mạch điều khiển động DC- Encoder…………… .30 1. Thiết kế mạch điều khiển động DC-Encoder………………………………………30 1.1. Cách băm xung Arduino………………………………………………………30 1.2. Đọc Encoder phương pháp ngắt ……………………………………… 31 1.2.1. Giới thiệu Encoder…………………………………………………………… 31 1.2.2. Ngắt Arduino…………………………………………………………33 1.3. Ngắt Timer………………………………………………………………………… 35 1.4. Nguyên tắc điều khiển động …………………………………………………… 36 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- 1.5. Thiết kế mạch Proteus….………………………………………………………39 2. Thiết kế giao diện điều khiển Megunolink…………………………………… .41 2.1. Giới thiệu Megunolink………………………………………………………… 41 2.2. Các bước thiết kế giao diện Megunolink……………………………………………42 2.3. Kết toán…………………………………………………………………… 49 Chương 4: Mô tay máy 1DOF……………………………………………………52 1. Thiết lập hệ phương trình vi phân…………………………………………………… 52 2. Mô Simulink…………………………………………………………… 54 3. Mô Matlab……………………………………………………………… 59 Chương 5: Ý tưởng phát triển……………………………………………………………66 Kết luận………………………………………………………………………………… 72 Tài liệu tham khảo……………………………………………………………………….73 Phụ lục………………………………………………………………………………… .74 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- LỜI MỞ ĐẦU Hiện khoa học kỹ thuật phát triển nhanh, mang lại lợi ích cho người tất lĩnh vực sống. Để nâng cao đời sống nhân dân hòa nhập với phát triển chung giới, Đảng nhà nước ta đề mục tiêu đưa đất nước lên thành nước công nghiệp hóa đại hóa. Để thực điều ngành cần quan tâm phát triển ngành khí nói chung điện tử nói riêng đóng vai trò quan trọng việc sản xuất thiết bị công cụ ( máy móc, robot…) ngành kinh tế. Sự xuất Arduino tạo sóng giới việc lập trình thiết kế mạch vi điều khiển mà không đòi hỏi nhiều kiến thức lập trình. Hiện việc sử dụng Arduino Việt Nam trở nên phổ biến sử dụng rộng rãi trường đại học công nghệ Việt Nam, người đam mê lập trình vi điều khiển. Việc sử dụng Arduino để điều khiển động cho thấy khả Arduino, góp phần điều khiển cấu, Robot trở nên linh hoạt dễ dàng hơn. Vì việc điều khiển động Arduino sử dụng rộng rãi công nghiệp . phòng thí nghiệm nay. Bài viết không tránh khỏi sai sót, mong giúp đỡ bảo thầy cô để chúng em làm tốt lần tiếp theo. Cuối em xin trân thành cảm ơn bảo tận tình thầy cô môn Cơ Ứng Dụng đặc biệt hướng dẫn thầy Đỗ Đăng Khoa giúp chúng em học nhiều điều hoàn thành môn thực tập kỹ thuật này. Trân trọng cảm ơn Hà Nội, ngày tháng năm 2015 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Chương 1: Tổng quan 1. Giới thiệu Arudino Arduino đời thị trấn Ivrea thuộc nước Italia. Được đặt tên theo vị vua vào kỉ thứ King Arduin. Arduino thức giới thiệu vào năm 2005 công cụ khiêm tốn dành cho sinh viên giáo sư Massimo Banzi người phát triển Arduino trường IDII. Mặc dù không tiếp thị cả, tin tức Arduino lan truyền với tốc độ chóng mặt nhờ lời truyền miệng tốt đẹp người dùng đầu tiên. Hiện Arduino tiếng tới nỗi có người đến thị trấn Ivrea để thăm quan nơi sinh Arduino. Arduino thực bo mạch vi xử lý, dùng để lập trình tương tác với thiết bị phần cứng cảm biến, động cơ, đèn, thiết bị khác. Đặc điểm bật Arduino môi trường phát triển ứng dụng dễ sử dụng, với ngôn ngữ lập trình học cách nhanh chóng với người am hiểu điện tử lập trình. Và điều làm nen tượng Arduino mức giá thấp tính chất nguồn mở từ phần cứng tới phần mền. Chỉ với 200.000 VND , ta sở hữu board Arduino có 14 ngõ I/O thoa điều khiển thiết bị. 1.1. Tổng quan Arduino Uno Arduino Uno bo mạch thiết kế với xử lý trung tâm vi điều khiển AVR Atmega328. Nó có 14 chân digital I/O, chân đầu vào (input) analog, thạch anh dao động 16Mhz. Một số thông số kỹ thuật sau : Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Bảng 1.1: Bảng thông số Arduino Uno Chip ATMega328 Điện áp cấp nguồn 5V Điện áp đầu vào 7-12V Điện áp đầu vào giới hạn 6-20V Số chân Digital I/O 14(có chân điều chế độ rộng xung PWM) Số chân Ânlog DC Current per I/O Pin 40mA DC Current for 3.3V Pin 50mA Flash Memory 32KB (ATMega328) với 0,5KB sử dụng bootloader SRAM 2KB (ATMega328) EEPROM 1KB (ATMega328) Xung nhịp 16 MHz 1.2. Sơ đồ chân Arduino Hình 1.1: Sơ đồ Arduino Uno Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- a) USB (1). Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua cáp USB Upload chương trình cho Arduino hoạt động, USB nguồn cho Arduino. b) Nguồn ( ). Khi không sử dụng USB làm nguồn sử dụng nguồn thông qua jack cắm 2.1mm ( cực dương giửa ) sử dụng chân Vin GND để cấp nguồn cho Arduino. Bo mạch hoạt động với nguồn điện áp từ – 20 volt. Chúng ta cấp áp lớn nhiên chân 5V có mực điện áp lớn volt. Và sử dụng nguồn lớn 12 volt có tượng nóng làm hỏng bo mạch. Khuyết cáo bạn nên dùng nguồn ổn định đến 12 volt. Chân 5V chân 3.3V (Output voltage) : chân dùng để lấy nguồn từ nguồn mà cung cấp cho Arduino. Lưu ý : không cấp nguồn vào chân làm hỏng Arduino. Dòng điện mạch Arduino vào khoảng 50mA GND: chân mass. c) Chip Atmega328. Chip Atmega328 Có 32K nhớ flash 0.5k sử dụng cho bootloader. Ngoài có 2K SRAM, 1K EEPROM. d) Input Output ( 4, 6). Arduino Uno có 14 chân digital với chức input output sử dụng hàm pinMode(), digitalWrite() digitalRead() để điều khiển chân đề cập chúng phần sau. Cũng 14 chân digital số chân chức là: Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Serial : chân (Rx ), chân ( Tx). Hai chân dùng để truyền (Tx) nhận (Rx) liêu nối tiếp TTL. Chúng ta sử dụng để giao tiếp với cổng COM số thiết bị linh kiện có chuẩn giao tiếp nối tiếp. PWM (pulse width modulation): chân 3, 5, 6, 9, 10, 11 bo mạch có dấu “~” chân PWM sử dụng để điều khiển tốc độ động cơ, độ sáng đèn… SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), chân hỗ trợ giao chuẩn SPI. I2C: Arduino hỗ trợ giao chuẩn I2C. Các chân A4 (SDA) A5 (SCL) cho phép chúng tao giao tiếp giửa Arduino với linh kiện có chuẩn giao tiếp I2C. e) Reset (7): dùng để reset Arduino. 2. Giới thiệu phần mền Proteus Phần mền Proteus phần mền cho phép mô pohngr hoạt động mạch điện tử bảo gồm phần thiết kế mạch viết chương trình điều khiển cho họ vi điều khiển MCS-51, PIC, AVR, Proteus phần mền mô mạch điện tử Lanccenter Electronics, mô cho hầu hết linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho MCU PIC, 8051, AVR Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Hình 1.2: Giao diện khởi động Proteus 8.0 Phần mền bao gồm chương trình ISIS cho phép mô phngr mạch ARES dùng đễ vẽ mạch in. Proteus công cụ mô cho lại vi điều khiển tốt, hỗ trợ dòng vi điều khiển PIC, 8051, AVR, .vv giao tiếp I2C, SPI, CAN, USB, Ethenet .ngoài mô mạch số, mạch tương tự cách hiệu quả. Để mô Arduino proteus cần phải download thư viện arduino cho proteus. Để có thư viên bạn cần truy cập vào trang web: http://blogembarcado.blogspot.com/search/label/Proteus Hình 1.3: Thư viện mô Arduino Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Sau download bạn chép file ARDUINO.IDX ARDUINO.LIB vào thư mục: Proteus 7: C:\Program Files (hoặc x86) \Labcenter Electronics\Proteus Professional\LIBRARY Proteus 8: C:\Program Files (hoặc x86) \Labcenter Electronics\Proteus professional\Data\LIBRARY Trong thư viện hổ trợ loại board Arduino khác gồm có Arduino Uno, MEGA, NANO, LILYPAD UNO SMD cảm biến siêu âm Untrasonic. Sau chép xong khởi động Proteus lên vào thư viện linh kiện cách bấm phím P gõ từ khoá ARDUINO chúng danh sách board có chọn Arduino Uno. Hình 1.4: Mô Arduino Proteus. Lưu ý cần phải cấp nguồn vào chân 5V Gnd mạch hình trên. 3.Các phần mềm sử dụng: Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- -Matlab-simulink:mô hoạt động, tìm hàm truyền -Arduino IDE: biên dịch code C sang file HEX -Meguno link: Thiết kế giao diện -Proteus: Mô mạch Arduino 4. Chi phí thực đề tài Sau bảng chi tiết linh kiện sử dụng thực tập sau: Bảng 1.2: Báo giá linh kiện sử dụng STT Tên linh kiện Số lượng Báo giá Thành tiền Arduino Uno 250.000 250.000 LCD L016M 75.000 75.000 L293D 25.000 25.000 Biến trở 10K 2.500 5.000 Board trắng 45.000 45.000 DC - Encoder 100.000 200.000 Các linh kiện phụ 10.000 10.000 Tổng 610.000 10 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- xdot=zeros(2,1); xdot(1)=x(2); xdot(2)=(1/(J+Jm*r^2))*((Km*r/Ra)*V-((b+Km*Ke/Ra)*r^2)*x(2)+m*g*l*cos(x(1))); end Hình 4.15: Kết vận tốc *Bám quỹ đạo: function xdot=bai6jj(t,x); %dong co Ke=1;Km=1;Ra=1;Jm=0.001; 65 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- %tay may m=2;J=1;l=0.4;g=9.81; b=0.001; %hop giam toc r=2; Kp=6000;Kd=50; V=-Kp*(x(1)-1.57*sin(10*t))-Kd*(x(2)-15.7*cos(10*t)); xdot=zeros(2,1); xdot(1)=x(2); xdot(2)=(1/(J+Jm*r^2))*((Km*r/Ra)*V- ((b+Km*Ke/Ra)*r^2)*x(2)+m*g*l*cos(x(1))); end Hình 4.16: Kết bám quỹ đạo 66 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Chương 5: Ý tưởng phát triển Một hệ thống Arduino cung cấp cho bạn nhiều tương tác với môi trường xung quanh với:  Hệ thống cảm biến đa dạng chủng loại (đo đạc nhiệt độ, độ ẩm, gia tốc, vận tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát chuyển động, phát kim loại, khí độc,…),…  Các thiết bị hiển thị (màn hình LCD, đèn LED,…).  Các module chức (shield) hỗ trợ kêt nối có dây với thiết bị khác kết nối không dây thông dụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,…), …  Định vị GPS, nhắn tin SMS,… Arduino giúp bạn làm dãy LED chớp tắt, xe tự động tránh vật cản, cánh tay robot gắp hay thứ bạn muốn điều khiển cách tự động. Hình 5.1: Xe tự động tránh vật cản sử dụng mạch arduno. 67 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Hình 5.2: Cánh tay robot viết chữ Hình 5.3: Mô hình máy bay Fly Cam 68 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Nếu bạn muốn điều khiển động cơ, có mạch công suất tương thích hoàn toàn với Arduino. Nếu bạn muốn điều khiển qua mạng Internet, có mạch Ethernet/Wifi tương thích hoàn toàn với Arduino. Và nhiều thứ khác nữa. Mấy mạch gắn thêm nói đến extension shield (mạch mở rộng). Các shield giúp tăng tính linh hoạt Arduino. Các shield chồng lên Arduino trông này: Hình 5.4: Các shield Arduino đơn giản, dễ sử dụng, dễ code (ngôn ngữ tương tự C++). Một hay Arduino hỗ trợ nhiều thư viện, tiện lợi. Bạn muốn điều khiển động servo, đơn giản, cắm dây servo vào lỗ Arduino, mở chương trình lên, open thư viện có sẵn, sửa lại theo ý xong. Bạn muốn điều khiển động bước, nối dây vào, open thư viện, sửa dòng code sau để điều khiển động bước: Stepper1.step(100, FORWARD, DOUBLE), 100 số bước bạn muốn, FORWARD hướng quay, DOUBLE quay full step. Hãy nghĩ đến việc bạn điều khiển động bước MPLAB nào. Arduino có nhiều kích thước khác nhau, phù hợp cho nhiều mục đích sử dụng. Thông dụng Arduino Uno. 69 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- 2. Ứng dụng tảng Arduino số sản phẩm. Cột đèn tiết kiệm lượng. Ta sử dụng bo mạch Arduino Mega 2560 để điều khiển toàn phần điện tử. Tín hiệu từ cảm biến ánh sáng truyền vào bo mạch Arduino. Thông qua thuật toán xử lý chống nhiễu, hệ thống biết thời điểm phù hợp để định bật đèn tắt đèn, giúp tiết kiệm lượng cách thông minh. Ngoài ra, bo mạch Arduino nhận tín hiệu điện áp từ Ắc quy, tín hiệu vận tốc gió từ encoder gắn trục turbine xuất tín hiệu bảng LED để thị tức thời vận tốc gió điện dự trữ Ắc quy. Hình 5.5. Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm lượng hiển thị thông tin tốc độ gió, điện ắc quy. Việc sử dụng bo mạch sẵn Arduino sản phẩm đảm bảo phần vi điều khiển hoạt động ổn định, không bị ảnh hưởng chấn động rung lắc học gió gây nên. Số hóa sách giấy Ta sử dụng bo mạch Arduino Mega 2560 thiết bị slave cho phần điều khiển trung tâm. Các tín hiệu từ cảm biến đọc qua chân Arduino truyền phần điều khiển trung tâm thông qua cổng COM (theo chuẩn RS232). Các lệnh điều khiển từ phần điều khiển trung tâm truyền thông qua cổng COM tới bo mạch Arduino để điều khiển động (thông qua kết nối với module L298), điều khiển quạt hút trang, quạt thổi trang đèn LED chiếu sáng thông qua đóng ngắt (bằng modul relay). 70 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Hình 5.7. Sử dụng bo mạch Arduino giao tiếp máy tính điều khiển thiết bị ngoại vi . Ngoài việc xây dựng giao diện điều khiển, chúng em nghĩ them cách thiết kế giao diện C#. Công cụ thiết kế C# phổ biến sử dụng rộng rãi giới 71 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Hình 5.8: Thiết kế giao diện C# C# có khó khăn Megunolink nhiều. Nó đòi hỏi người thiết kế phải có kiến thức lập trình C#. Và thao tác lập trình C#. Không giống Megunolink lập trình làm Arduino IDE. 72 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- KẾT LUẬN Để thiết kế chế tạo sản phẩm công nghệ đòi hỏi tìm hiểu nhiều lĩnh vực khác nhau. Arduino sử dụng rộng rãi khắp giới để giúp việc dễ dàng nhiều. Qua viết môn học thực tập kĩ thuật chúng em đạt điều sau: - Xây dựng mô hình điện điều khiển động DC- Encoder - Thực mô hệ điện Matlab - Thiết kế giao diện điều khiển máy tính Megunolink Em xin chân thành cảm ơn thầy Đỗ Đăng Khoa giúp đỡ chúng em học nhiều điều. Bài viết không tránh khỏi thiết sót, mong góp ý thầy bạn để chúng em làm tốt hơn. 73 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Tài liệu tham khảo 1. Michael Margolis and Nicholas Weldin, Arduino Cookbook, O’Reilly Media, Inc, 2011. 2. Michael McRoberts, Beginning Arduino, O’Reilly Media, 2013. 3. Lý thuyết điều khiển tuyến tính -Nguyễn Doãn Phước 4. Bài giảng phần mềm mô hệ động lực có điều khiển- Nguyễn Quang Hoàng 5. Nguyễn Trung Tín, Hướng dẫn sử dụng Arduino, 2014 6. http://arduino.cc/ truy nhập ngày cuối 1/6/2015 7. http://hocavr.com/ truy nhập ngày cuối 1/6/2015 8. http://megunolink.com/ truy nhập ngày cuối 1/6/2015 9. http://youtube.com truy nhập ngày cuối 1/6/2015 74 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- Phụ lục Code Arduino IDE: #include "MegunoLink.h" // khai bao thu vien giao dien #include "CommandHandler.h" int menu = 3; // mode (vi tri, toc do,tat dong co) int x=0,y=0,z=0,w=0; CommandHandler SerialCommandHandler; void datmenu(CommandParameter &Parameters) { menu=Parameters.NextParameterAsInteger(); } void gocbandau(CommandParameter &Parameters) { w=Parameters.NextParameterAsInteger(); } void gocdat(CommandParameter &Parameters) { x=Parameters.NextParameterAsInteger(); x=x/0.8; // doi tu don vi tu giao dien dat } void tanso(CommandParameter &Parameters) { y=Parameters.NextParameterAsInteger(); 75 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- y=y/57.3; // doi don vi } void vantoc(CommandParameter &Parameters) { z=Parameters.NextParameterAsInteger(); z=z/5.357; // doi don vi } TimePlot Plot("vantoc"); // ve thi van toc TimePlot MyPlot("goc"); // ve thi goc #include LiquidCrystal lcd(12, 11, 6,5, 4, 3); #include Timer t0; // khai bao timer // dung timer t0 #define motorPin1 // L293D Input (chan dieu khien chieu quay) #define motorPin2 // L293D Input (chan dieu khien chieu quay) #define speedPin // L293D enable chân ( bam xung dieu khien toc ) int dau=0,dem=0; float v=0,time=0.025,inv=40,U = 0,t=0; // time=0.025 thoi gian lay mau , inv =40 ngich dao time long int a=0,b=0,c=0,qold=0,qnew=0,eold=0,enew=0,ipart=0; // q vi tri , e sai so , ipart tinh ki void setup() { lcd.begin(16, 2); Serial.begin(9600); 76 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- SerialCommandHandler.AddCommand(F("setmenu"), datmenu); // khai bao goi chuong trinh SerialCommandHandler.AddCommand(F("setgocbandau"), gocbandau); SerialCommandHandler.AddCommand(F("setgocdat"), gocdat); SerialCommandHandler.AddCommand(F("settanso"), tanso); SerialCommandHandler.AddCommand(F("setvantoc"), vantoc); MyPlot.SetTitle("goc"); // khai bao thi MyPlot.SetXlabel("thoigian"); MyPlot.SetYlabel("goc"); MyPlot.SetSeriesProperties("goc", Plot::Blue, Plot::Solid, 2, Plot::Square); Plot.SetTitle("vantoc"); Plot.SetXlabel("thoigian"); Plot.SetYlabel("vantocgoc"); Plot.SetSeriesProperties("vantoc", Plot::Blue, Plot::Solid, 2, Plot::Square); pinMode(2, INPUT_PULLUP); // dung kenh A cua encoder pinMode(13, INPUT); // dung kenh B cua encoder attachInterrupt(0, dao, FALLING); // khai bao ngat ngoai xung di xuong goi chuong trinh "dao" (ngat) pinMode(motorPin1, OUTPUT); // du lieu chan dieu khien chieu quay 77 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ------------------------------------------------------------------------------------------------------------------------------- pinMode(motorPin2, OUTPUT); // du lieu chan dieu khien chieu quay pinMode(speedPin, OUTPUT); // du lieu chan bam xung t0.every(time*1000, pid); // sau 25 ms thuc hien lan vong pid } void loop() { SerialCommandHandler.Process(); // kiem tra giao tiep voi mat tinh t0.update(); if(menu==3) U=0; if(w==0) {a=0;w=1;} analogWrite (speedPin, U); // viet gia tri chan bam xung if (dau) { // u>0 dau = 0, u[...]... (s)   U (s) 1  0,0446.s U (s) s (1  0,0446.s) -Phương pháp tối ưu độ lớn: G (s)  K k 1  GPID (s)  i , K i  1  Ts s 2kT -Phương pháp tối ưu đối xứng: K(s)  k 1 1  K PID (s)  K P (1  ), K p  ,T1  4T s (1  Ts) T1s 2kT -Áp dụng: +Điều khiển góc K(s): PI: K p  K 1  0, 21K i  p  1, 14 2kT 4T Để giảm quá điều chỉnh chọn Ki=0.05 +Điều khiển vận tốc góc G(s): I: Ki  1  0, 21 2kT 1. 3 Kiểm nghiệm... - Chương 3: Thiết kế và mô phỏng mạch điều khiển động cơ DC- Encoder 1 Thiết kế mạch điều khiển động cơ DC- Encoder 1. 1 Cách băm xung trong Arduino Để tạo ra được PWM trên Arduino thì chúng ta sử dụng lệnh analogWrite(Pin, Value); Trong đó: -Pin: là vị trí chân, đối với Arduino Uno thì chỉ có các chân 3, 5, 6, 9, 10 & 11 mới có chức năng tạo PWM Vậy chúng ta có thể trả lời được... - Chương 2: Nhận dạng động cơ 1 Xác định thông số động cơ 1. 1 Xác định dạng hàm truyền Hàm truyền động cơ 1 chiều đầu vào điện áp; đầu ra vận tốc góc: Hình 2 .1 : Sơ đồ điện cơ -Động cơ DC: Điện trở Ra ; cuộn cảm L; hằng số phản sức điện động K e ; hằng số momen K m ; Momen quán tính rôto Jm ; -Tải: Momen quán tính J ( J  J )  (b  K K R 1)   K R 1U m e m a m a Laplace 2 vế=> G ( s... đứng Kết quả đo Bảng 2.3: Kết quả đo Dòng điện (A) Số xung 1. 39 44 1. 39 43 1. 39 42 1. 38 43 1. 38 41 1.36 40 1. 38 42 1. 39 45 1. 37 43 1. 37 43 - Từ bảng số lệu trên ta tính Giá trị trung bình của dòng điện Itb  I i 10  1. 38  A Giá trị trung bình của góc quay là xung 360  10 o o 360  42.6  17 , 27 o 888 888 Momen tĩnh tác dụng lên trục động cơ là 28 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa ... void setup() { t0.every(time *10 00, pid); } The call void loop() { t0.update(); } void pid() { .} t0.update() // cập nhật thời gian t0.every sẽ gọi hàm pid sau mỗi 25ms 1. 4 Nguyên tắc điều khiển động cơ Nguyên tắc chung: Hình 3.7: Nguyên tắc điều khiển động cơ Công thức tính PID: u  K p e  K D k (ek  ek 1 )  K I  ek h h 0 Trong đó: u là đại lượng output từ bộ điều khiển 36 ... - Hình 2 .15 : Sai lệch giữa lượng đặt và thực tế  Kp=0. 21; Ki=0.05;Lượng đặt: d  15 0sin(250 t  ) 2 Hình 2 .16 : Sơ đồ kiểm tra độ bám quỹ đạo 23 Thực tập kỹ thuật GVHD: TS Đỗ Đăng Khoa - Hình 2 .17 : Sai lệch giữa lượng đặt và thực tế 2 Nhận dạng động cơ thực Trong mô hình của ta sử dụng động cơ một chiều các thông số R (điện... s )  k 1  Ts Gọi U là kích thích đầu vào U=255V; b xung/s là giá trị  khi xác lập kích thích U không đổi trong thời gian t U(t) Kích thích 1( t): G (s)  Y1 (s) k   y1 (t )  k (1  e  t /T ) h(s) 1  Ts Kích thích U(t); G (s)  Y2 (s) k   y2 (t )  b (1  e  t /T ) U(s) 1  Ts Y1 ( s )  G ( s )h( s ); Y2 ( s )  G ( s )U ( s ) U (t )  U 1( t )  U ( s )  U h( s )  Y2 ( s )  U Y1 ( s )... thông số R (điện trở phần ứng), Ke (hệ số phản sức điện động) , Km (hệ số momen) của động cơ không có sẵn, do đó trong mục nhận dạng hệ thật sẽ nói về vi c nhận dạng động cơ DC Ta có các phương trình cơ điện của động cơ có dạng như sau: La dia  t   Raia  t   ea (t )  U (t ) dt ea  t   Ke0  t  Jr d0  t  dt  M e  Tx M e  K mia  t  (2 .1) (2.2) (2.3) (2.4) Xác định Ra và Ke 24 Thực tập kỹ... đó điện áp, dòng điện và vận tốc của động cơ với 2 mức điện áp khác nhau Dụng cụ đo gồm có : Hình 2 .18 Đồng hồ đo điện vạn năng Hình 2 .19 Điện trở 0.47 ohm Encoder nối sẵn với động cơ có độ phân dải 448 xung/vòng Phương pháp đo Tiến hành đo với 2 mức điện áp nguồi AC /DC ADAPTER 5V và 24V Với các bước đo như sau: Bước 1: Lắp mạch Ghép nối tiếp điện trở với động cơ với từng nguồn điện trên 25 Thực tập... Khoa Tx  mmau g sin lc  0 .16 x 9. 81 x sin 17 , 27o  x 0 .12 5  0.06  Nm  Cuối xùng ta xác định được Km bằng Km  Tx 0.06   0.04  Nm / A ia  t  1. 38 Vậy ta đã xác định xong các tham số động cơ với kết quả là : Bảng 2. 21: Tham số của động cơ Ra 3.7657    Ke 0.0276 Vs  Km 0.04  Nm / A 29 Thực tập kỹ thuật GVHD: TS Đỗ Đăng . tài…………………………………………………………………9 Chương 2: Nhận dạng động cơ DC ………………………………………………… 11 1. Xác định thông số động cơ ………………………………………………………… 11 1. 1 Xác định dạng hàm truyền ………………………………………………………… 11 1. 2. Xác định hàm truyền. sử dụng rộng rãi trong các trường đại học công nghệ của Vi t Nam, cũng như những người đam mê về lập trình vi điều khiển. Vi c sử dụng Arduino để điều khiển động cơ cho thấy khả năng của Arduino, . board Arduino có 14 ngõ I/O thoa các điều khiển thiết bị. 1. 1. Tổng quan về Arduino Uno Arduino Uno là 1 bo mạch thiết kế với bộ xử lý trung tâm là vi điều khiển AVR Atmega328. Nó có 14 chân

Ngày đăng: 25/09/2015, 21:41

Tài liệu cùng người dùng

Tài liệu liên quan