Thiết kế bộ điều khiển số sử dụng phương pháp gán điểm cực điều chỉnh tốc độ động cơ DC servo Harmonic R113001 Chương 1. Khái quát chung về động cơ DC servo Harmonic R113001 Chương 2. Xây dựng bộ điều khiển động cơ DC servo Harmonic R113001 Chương 3. Mô phỏng hệ thống trên MatlabSimulink Chương 4. Thực thi bộ điều khiển trên vi điều khiển Atmega16
BÀI TẬP LỚN MÔN ĐIỀU KHIỂN SỐ Đề 11: Thiết kế điều khiển số sử dụng phương pháp gán điểm cực điều chỉnh tốc độ động DC servo Harmonic R11-3001 MỤC LỤC Chương Khái quát chung động DC servo Harmonic R113001 1.1 Giới thiệu động DC servo Harmonic R11-3001 1.2 Mơ hình tốn động DC servo Harmonic R11-3001 Chương Xây dựng điều khiển động DC servo Harmonic R11-3001 2.1 Xây dựng đối tượng điều khiển 2.2 Xây dựng điều khiển số cho động DC servo Harmonic R113001 Chương Mô hệ thống Matlab-Simulink 3.1 Sơ đồ mô kết 3.2 Nhận xét kết luận Chương Thực thi điều khiển vi điều khiển Atmega16 4.1 Thực thi điều khiển 4.2 Thuật toán 4.3 Cấu trúc điều khiển số chương trình Hải phòng ngày 16/12/2019 GVHD SVTH NGUYỄN VĂN TIẾN Chương Khái quát chung động DC servo Harmonic RHS14-6003 1.1 Giới thiệu động DC servo Harmonic RH-11D 3001 Hình 1.1: Động RH-11D 3001trong thực tế * Cấu tạo động servo: Hình 1.2: Cấu tạo động servo 1, Động cơ; 2, Bản mạch; 3, dây dương nguồn; 4, Dây tín hiệu 5, Dây âm nguồn; 6, Điện kế 7, Đầu (bánh răng); 8, Cơ cấu chấp hành; 9, Vỏ ;10, Chíp điều khiển Động RH-11D 3001 động chiều hãng Harmonic Nhật sản xuất Đây động thiết kế nhỏ gọn, truyền động xác, momen lớn có gắn sẵn encoder * Nguyên lý hoạt động: - Động servo thiết kế để quay có giới hạn mà quay liên tục động DC hay động bước * Các tham số động trình bày bảng 1.1 Kiểu chạy: Liên tục Kích thích: Nam châm vĩnh cửu Cách điện: lớp F Điện trở cách điện: 100M Ω Nhiệt độ môi trường: -10 ~ +40oC Nhiệt độ lưu trữ: -20 ~ +60 oC Độ ẩm môi trường: 20 ~ 80 % (không ngưng tụ) Độ rung: 2.5g (5 ~ 400HZ) Shock: 30g (11ms) Bôi trơn: Dầu nhờn (SK-1A) Đầu ra: Mặt bích Bảng 1.1: Thơng số động RH-11D 3001 Thông số Công suất đầu (sau hộp số) Điện áp định mức Dòng điện định mức Mơmen định mức TN Tốc độ định mức nN Mômen hãm liên tục Dòng đỉnh Mơmen cực đại đầu Tm Tốc độ cực đại Hằng số mômen (KT) Hằng số điện B.E.M.F (ảnh hưởng tốc độ đến sđđ phần ứng)(Kb) Đơn vị W V A In-lb ĐC RH-11D 3001 12.3 24 1.3 34 Nm rpm In-lb Nm A In-lb Nm rpm In-lb/A Nm/A v/rpm 3.9 30 39 4.4 2.1 69 7.8 50 43 4.91 0.5 In-lb –sec2 0.38 Kgm2 43 Hằng số thời gian khí ms 8.5 Độ dốc đặc tính In-lb/rpm 4.6 Nm/rpm 5.2.10-4 Hệ số momen nhớt (Bf) In-lb/rpm 0.62 Nm/rpm 1.7*10-2 Tỷ số truyền 1:R 100 Tải trọng hướng tâm lb 55 N 245 Tải trọng hướng trục lb 44 N 196 Công suất động W 20 Tốc độ định mức động rpm 3000 Điện trở phần ứng Ω 4.7 Điện cảm phần ứng mH 1.6 Dòng khởi động A 0.31 Dòng khơng tải A 0.55 1.2 Mơ hình tốn động DC servo Harmonic RHS14-6003 Mơ men qn tính (J) Các tham số động sau: Ra = 4.7 (Ω), La = 1.6 (mH) Kt = 4.91 (Nm/A); Kb = 0.5 (V/rpm) Bf = 1.7*10-2J = 0.0043 Ta có: ua – ea = ia.Ra +La = (Mđc – Mc) Mđc= Kt.ia ea = Kb.n Chuyển sang Laplace ta được: - = + s.� = ( = = s - ) - = �= n + s ( = = - ) n Với Ta = ta có: Ia = (Ua – Ea) ω = (Mđc – Mc) Mđc = Kt.Ia Ea = Kb.n Cấu trúc động sau: Hình 1.3: Cấu trúc động RH-11D 3001 Mơ matlab: Hình 1.4: Mơ hình động matlab Chương Xây dựng điều khiển động DC servo Harmonic RHS14-6003 2.1 Xây dựng đội tượng điều khiển Mơ hình mơ Simulink: Hình 2.1 Mơ hình tốn dối tượng cần tổng hợp bđk Để tổng hợp điều khiển theo phương pháp gán điểm cực nhập tham số matlab workspace sau: Ra=4.7 La=1.6.10^-3 kt=4.91 ke=0.5 bf=0.017 J=43e-3 Ta=La/Ra s=tf(‘s’) G1 = 1/(J*s+bf) G2=(1/Ra)/((La/Ra)*s+1) G3=kt G4=ke Gh=g1*g2*g3 Gs=Gh/(1+Gh*G4) Gz=c2d(Gs,0.01,’zoh’) Step(Gz) bbd=(2.4)/(10^-4*s+1) Gs2=Gs*bbd*(10/3000)/(10^-3*s+1))*100 Gz2=c2d(Gs2,0.01,’zoh’) Rltool(gz2) 2.2 Xây dựng điều khiển số cho động DC servo Harmonic R11-3001 Sau chạy mfile ta được: Với điều kiện động đạt trạng thái xác lập 0.7s ta tìm điều khiển sau: GR(z) = Chương 3: Mô matlab 3.1 Sơ đồ mô a Sơ đồ mô động chưa có điều khiển Hình 3.1 Mơ hình động simulink Khi chưa có tải điện áp đặt 24v: Đặc tính tốc độ động Hình 3.2 Tốc độ động khơng tải Đặc tính dòng điện khơng tải Hình 3.3 Dòng khơng tải động Khi có tải Mc=9N/m điện áp đặt 24v: Đặc tính tốc độ có tải Hình 3.4 Tốc độ động có tải 10 Đặc tính dòng điện động có tải Hình 3.5 Đặc tính dòng điện đơng có tải b Mơ hình điều khiển tốc độ động servo Hình 3.6 Mơ hình điều khiển số điều khiển tốc độ động servo Đặc tính động khơng tải với U=10v: Đặc tính tốc độ: 11 Hình 3.7 Đặc tính tốc độ động có bđk Đặc tính dòng điện phần ứng: Hình 3.8 Đặc tính dòng phần ứng khơng tải có điều khiển Đặc tính động có điều khiển Mc=9N/m 12 Hình 3.9 Đặc tính tốc độ động có tải Đặc tính dòng phần ứng có tải Mc=9N/m Hình 3.10 Đặc tính dòng phần ứng động có tải 13 3.2 Nhận xét kết luận Khi chưa có tải: - Khi khơng có điều khiển dòng điện phần ứng tăng mạnh giai đoạn đầu gần 2.5Idm có điều khiển dòng điện phần ứng giai đoạn đầu giảm mạnh (1A) - Khi có điều khiển động chạy với giá trị tốc độ đặt trước Khi có tải: - Khi khơng có điều khiển động bị sụt tốc mạnh đạt tốc độ định mức Khi có điều khiển động bị sụt tốc khoảng nhỏ 0.5s sau tăng lên giá trị tốc độ đặt KẾT LUẬN: Bộ điều khiển điều khiển tốc độ động theo giá trị đặt trước thỏa mãn yêu cầu đề 14 Chương 4: Thực thi điều khiển số vi điều khiển atmega16 4.1 Thực thi điều khiển số Bộ điều khiển tổng hợp R(z)= Áp dụng cấu trúc trực tiếp dạng tắt: rk = ek + rk-1 uk = 0.01rk – 0.05rk-2 Cấu trúc thực thi đks theo dạng tắt: Hình 4.1 Bộ điều khiển số theo dạng tắt 4.2 Thuật tốn 15 Thuật tốn chương trình Bắt đầu Khởi tạo ADC Khơi tạo I/O Khơi tạo Timer ngắt sau 10ms Khai báo biến sk,yk,ek,rk,rk-1,M1,M2 Chờ ngắt 16 Thuật toán ngắt timer: Tính Sk, yk ek = sk - yk rk = ek + M1 uk = rk + M2 rk-1 = rk M1 = rk-1 M2 = -0.05rk-1 PORTC=uk Quay lại chương trình 17 4.3 Cấu trúc điều khiển chương trình 8MHZ C1 R1 C2 5k 10uF U? 10uF CRYSTAL 13 12 RV? 50% 40 39 38 37 36 35 34 33 1k Yk RESET XTAL1 XTAL2 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK U? PC0/SCL PC1/SDA PC2/TCK PC3/TMS PC4/TDO PC5/TDI PC6/TOSC1 PC7/TOSC2 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2 AREF AVCC 22 23 24 25 26 27 28 29 14 15 16 17 18 19 20 21 10 11 12 A1 A2 A3 A4 A5 A6 A7 A8 VREF+ VREFIOUT COMP VEE 14 15 R2 R4 5k 5k U? 16 C3 DAC0808 OP1P 1nF -15k 32 30 ATMEGA16 Chương trình vi điều khiển #include #include // Declare your global variables here char sk=0, yk=0, rk=0, rk-1=0, M1=0, M2=0; // Timer1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) { // Reinitialize Timer1 value TCNT1H=0xD8F0 >> 8; TCNT1L=0xD8F0 & 0xff; sk=read_adc(0); yk=read_adc(1); 18 ek=sk-yk; rk=ek+M1; uk=rk+M2; rk-1=rk; M1=rk-1; M2=-0.05*rk-1; if(uk>255) {uk=255;}; else if(uk