1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế mô hình quadcopter và cân bằng ứng dụng pid

82 0 0

Đ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

Thông tin cơ bản

Tiêu đề Thiết Kế Mô Hình Quadcopter Và Cân Bằng Ứng Dụng PID
Tác giả Mai Hoàng Phước, Nguyễn Trọng Nhân
Người hướng dẫn Ths. Phan Ngọc Kỳ
Trường học Đại học Đà Nẵng
Chuyên ngành Điện tử
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 82
Dung lượng 9,57 MB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (16)
    • 1.1. Máy bay không người lái (16)
    • 1.2. Lịch sử ra đời (16)
    • 1.3. Một số loại máy bay không người lái (17)
    • 1.4 Đặt vấn đề (22)
    • 1.5 Phạm vi nghiên cứu (22)
    • 1.6 Phạm vi ứng dụng (22)
    • 1.7 Kết quả đạt được và phát triển (22)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (23)
    • 2.1 Cơ sở lý thuyết (23)
    • 2.2 Phần cứng sử dụng (33)
    • 2.3 Phần mềm (47)
  • CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG (49)
    • 3.1 Mục tiêu thiết kế (49)
    • 3.2 Phần cứng (49)
    • 3.3 Thiết kế mạch (54)
    • 3.4 Lập trình (58)
    • 3.5 Chọn hệ số PID (61)
    • 3.5 Lấy hệ số chuẩn (67)
    • 1. Mô hình sản phẩm (68)
    • 2. Nhận xét (69)
  • KẾT LUẬN (70)
  • TÀI LIỆU THAM KHẢO (0)
  • PHỤ LỤC (0)
    • Chương 2:Y Hình 2. 1 Nguyên lí cân bằng của Quadcopter (0)
    • Chương 3 Hình 3. 1 Khung máy bay Quadcopter (0)

Nội dung

Trang 18 Các cơ cấu điều khiển bay của máy bay để thực hiện các chuyển động bay: cấtcánh, hạ cánh; vòng trái, phải; nghiêng cánh; nâng, hạ độ cao khi bay bằng; hướng mũibay lên trên, xuố

CƠ SỞ LÝ THUYẾT

Cơ sở lý thuyết

2.1.1 Giới thiệu tổng quan và nguyên lí hoạt động của Quadcopter

Quadcopter là máy bay sử dụng lực quay của bốn động cơ motor để đẩy dòng khí xuống dưới tạo lực nâng giúp máy bay có thể bay lên theo phương thẳng đứng, nó sẽ điều khiển tốc độ quay, lực quay của từng động cơ này để điều hướng khi di chuyển, hay bị tác động từ thiên nhiên hay con người.

Mô hình bay hoạt động dựa trên nguyên lý cân bằng góc nghiêng của từng cặp động cơ đặt đối diện nhau Vấn đề đặt ra là làm thế nào để điều khiển bốn động cơ giúp cho máy bay có thể cân bằng từng trục, kết hợp cân bằng các trục với nhau, triệt tiêu quán tính xoay tròn và điều khiển Quadcopter di chuyển ổn định. a Nguyên lí cân bằng

Máy bay quadcopter có dạng chữ thập hay dấu cộng với bốn động cơ được đặt ở bốn góc Hai trục chéo của máy bay được đặt theo hai trục X, Y của hệ trục toạn độ Descartes Bốn động cơ được chia thành hai nhóm, mỗi nhóm có chiều quay ngược nhau, hai cánh đối diện nhau thì quay cùng chiều Nếu bốn động cơ có vận tốc quay bằng nhau thì moment lực xoắn sẽ bị triệt tiêu do đó có thể giúp Quadcopter không bị xoay tròn khi bay Để cân bằng mô hình thì các động cơ phải được điều khiển sao cho mô hình có góc lệch so với trục chuẩn trong phạm vi cho phép

Hình 2 1 Nguyên lí cân bằng của Quadcopter

Quadcopter di chuyển theo hai phương pháp đó là theo hình chữ X và theo chữ thập (dấu cộng)

Trong mô hình nghiên cứu dùng phương pháp di chuyển hình chữ X để điều khiển vì tính linh hoạt của nó, khi thay đổi hướng thì sẽ thực hiện thay đổi hai động cơ vì vậy khả năng đáp ứng sẽ nhanh hơn so với việc thay đổi một động cơ theo kiểu dấu cộng.

Máy bay di chuyển bằng cách thay đổi tốc độ của động cơ, việc thay đổi tốc độ động cơ vừa giúp máy bay di chuyển vừa làm máy bay cân bằng Hướng bay khi di chuyển được quyết định bởi hai động cơ, tuỳ theo hướng di chuyển mà các động cơ này quay nhanh hay chậm để tạo ra độ nghiêng nhất định so với hệ trục cân bằng.

Hình 2 2 Nguyên lí di chuyển của Quadcopter

1.2 Giới thiệu về thuật toán PID

Các bộ điều khiển PID trong các thiết kế bộ điều tốc xuất hiện từ những năm

1890 Các bộ điều khiển PID sau đó được phát triển trong hệ thống lái tàu (thủy) tự động Một trong những ví dụ sớm nhất của bộ điều khiển kiểu PID được phát triển bởi Elmer Sperry năm 1911, trong khi tác phẩm phân tích lý thuyết đầu tiên về bộ điều khiển PID được kỹ sư người Mỹ gốc Nga Nicolas Minorsky xuất bản, vào năm (Minorsky 1922)

Minorsky đã thiết kế các hệ thống lái tàu tự động cho Hải quân Mỹ, và dựa trên các phân tích của ông khi quan sát người lái tàu, ông nhận thấy rằng người lái tàu điều khiển con tàu không chỉ dựa trên sai số hiện tại, mà còn dựa vào sai số quá khứ và tốc độ thay đổi hiện tại; điều này sau đó đã được ông toán học hóa Hải quân Mỹ cuối cùng đã không chấp nhận hệ thống, do sự phản đối từ nhân viên Nghiên cứu tương tự được tiến hành và xuất bản bởi nhiều người khác vào thập niên 1930. a Giới thiệu bộ điều khiển PID:

Bộ điều khiển PID là một bộ điều khiển vòng kín được sử dụng rộng rãi trong công nghiệp Sử dụng bộ điều khiển PID để điều chỉnh sai lệch giữa giá trị đo được của hệ thống (process variable) với giá trị đặt (setpoint) bằng cách tính toán và điều chỉnh giá trị điều khiển ở ngõ ra.

Sơ đồ một hệ thống điều khiển dùng PID:

Hình 2 3 Sơ đồ hệ thống PID

Một bộ điều khiển PID gồm 3 thành phần: P (proportional) – tạo tín hiệu điều khiển tỉ lệ với sai lệch (error – e), I (integral) – tạo tín hiệu điều khiển tỉ lệ với tích phân theo thời gian của sai lệch, và D (derivative) – tạo tín hiệu điều khiển tỉ lệ với vi phân theo thời gian của sai lệch.

Khâu P tạo ra tín hiệu điều khiển tỉ lệ với giá trị của sai lệch Việc này được thực hiện bằng cách nhân sai lệch e với hằng số KP – gọi là hằng số tỉ lệ.

Khâu P được tính dựa trên công thức:

Với: Pout: giá trị ngõ ra

KP: hằng số tỉ lệ e: sai lệch: e = SP – PV

Sơ đồ khối của khâu P:

Nếu chỉ có khâu P thì trong mọi trường hợp sai số tĩnh luôn xuất hiện, trừ khi giá trị đầu vào của hệ thống bằng 0 hoặc đã bằng với giá trị mong muốn Trong hình sau thể hiện sai số tĩnh xuất hiện khi thay đổi giá trị đặt.

Hình 2 4 Đáp ứng của khâu P Nếu giá trị khâu P quá lớn sẽ làm cho hệ thống mất ổn định.

Khâu I cộng thêm tổng các sai số trước đó vào giá trị điều khiển Việc tính tổng các sai số được thực hiện liên tục cho đến khi giá trị đạt được bằng với giá trị đặt, và kết quả là khi hệ cân bằng thì sai số bằng 0

Khâu I được tính theo công thức:

Với: IOUT: giá trị ngõ ra khâu I

Ki: hệ số tích phân e: sai số: e = SP – PV

Khâu I thường đi kèm với khâu P, hợp thành bộ điều khiển PI Nếu chỉ sử dụng khâu I thì đáp ứng của hệ thống sẽ chậm và thường bị dao động

Hình sau chỉ ra sự khác biệt giữa khâu I và PI:

Hình 2 5 Đáp ứng của khâu I và PI

Ta có thể nhận thấy là khâu I làm cho đáp ứng của hệ thống bị chậm đi rất nhiều, còn khâu PI giúp triệt tiêu sai số xác lập.

Khâu D cộng thêm tốc độ thay đổi sai số vào giá trị điều khiển ở ngõ ra Nếu sai số thay đổi nhanh thì sẽ tạo ra thành phần cộng thêm vào giá trị điều khiển Điều này cải thiện đáp ứng của hệ thống, giúp trạng thái của hệ thống thay đổi nhanh chóng và mau chóng đạt được giá trị mong muốn

Khâu D được tính theo công thức:

Với: DOUT: ngõ ra khâu D

KD: hệ số vi phân e: sai số: e = SP – PV

Khâu D thường đi kèm với khâu P thành bộ PD, hoặc với PI để thành bộ PID.

Hình 2 6 Đáp ứng của khâu D và PD

Theo hình trên, bộ PD tạo đáp ứng có thời gian tăng trưởng nhỏ hơn so với bộ P. Nếu giá trị D quá lớn sẽ làm cho hệ thống không ổn định. b Tổng hợp ba khâu – Bộ điều khiển PID:

Bộ điều khiển PID là cấu trúc ghép song song giữa 3 khâu P, I và D.

Phương trình vi phân của bộ PID lý tưởng: u(t)=K p e(t)+K i ∫ e ( t )dt + K D de(t) dt

Sơ đồ khối: Đáp ứng của bộ PID:

Hình 2 7 Đáp ứng của khâu P, PI và PID c Rời rạc hóa bộ điều khiển PID:

Phần cứng sử dụng

Hình 2 9 Board blue bill dùng vi điều khiển Stm32f103C8T6

STM32 là một trong những dòng chip phổ biến của hãng ST với nhiều họ thông dụng như F0, F1, F2, F3, F4… Stm32f103 thuộc họ F1 với lõi là ARM CORTEX M3.STM32F103 là vi điều khiển 32 bit, tốc độ tối đa là 72Mhz Giá thành cũng khá rẻ so với các loại vi điều khiển có chức năng tương tự Với nhiều cách nạp chương trình,nhiều chân kết nối ngoại vi, nhiều bộ ADC với độ phân giải 12bit.

Hình 2 10 Sơ đồ chân của board blue bill

Bảng 2 2 Tổng quan về STM32F103C8T6 [2]

Chức năng các chân của chip vi điều khiển:

T yp e I/ O L ev el Main function (after reset)

5 OSC_IN I - OSC_IN - PD0

6 OSC_OUT O - OSC_OUT - PD1

O - PA4 SPI1_ NSS/ USART2_CK/

O - PA5 SPI1_SCK/ ADC12_IN5

O - PB0 ADC12_IN8/ TIM3_CH3 TIM1_CH2N

O - PB1 ADC12_IN9/ TIM3_CH4 TIM1_CH3N

SPI2_MISO / USART3_RTS / TIM1_CH2N

O FT JTMS/SWDIO JTMS/SWDIO PA13

O FT JTDI TIM2_CH1_ETR/

TIM2_CH2 / PB3 TRACESWO SPI1_SCK

42 PB6 I/ FT PB6 I2C1_SCL/ USART1_TX

O FT PB7 I2C1_SDA/ TIM4_CH2 USART1_RX

O FT PB8 TIM4_CH3 I2C1_SCL /

O FT PB9 TIM4_CH4 I2C1_SDA/

Bảng 2 3 Chức năng các chân của chip vi điều khiển [2]

Ghi chú: FT = 5V, I = input, O = ouput, S = supply

Hình 2 11 Sơ đồ chân LQFP48

Boot mode selection pins Boot mode Aliasing

X 0 Main Flash memory Main Flash memory is selected as boot space

0 1 System memory Sestem memory is selected as boot space

1 1 Embedded SRAM Embedded SRAM is selected as boot space

Bảng 2 4 Các chế độ khởi động.

Có 3 chuẩn mode như hình ở trên:

- Main flash memory: chuẩn này là chuẩn nạp code thông thường của MCU (dùng các mạch nạp như Stlink, Jlink….) thiết kế của nó là chân BOOT0 sẽ được nối đất Vì lý do này nên chân BOOT đươc thiết kế là nối xuống GND thông qua trở kéo nguồn Không có sự kết nối này, các mạch nạp sẽ không nhận dạng được IC được nạp và sẽ bị báo lỗi không tìm thấy MCU.

- System memory: đây là chuẩn nạp code đặc biệt của MCU thông qua những nạp khác nhau như: UART, SPI, USB, I2C… Ở STM32F103C8T6 chuẩn nạp này chỉ được áp dụng ở UART1 trên chân PA9, PA10 Điều kiện là chân BOOT0 nối nguồn 3V3 và chân BOOT1(PB2) nối GND.

- Embedded SRAM: chuẩn này cho phép truy cập địa chỉ SRAM nội bên trong IC. Điều kiện là chân BOOT0 nối nguồn 3V3 và chân BOOT1(PB2) nối 3V3

MPU-6050 tích hợp 6 trục cảm biến bao gồm:

 Con quay hồi chuyển 3 trục (3-axis MEMS gyroscope).

 Cảm biến gia tốc 3 chiều (3-axis MEMS accelerometer).

Ngoài ra, MPU-6050 còn có 1 đơn vị tăng tốc phần cứng chuyên xử lý tín hiệu (Digital Motion Processor - DSP) do cảm biến thu thập và thực hiện các tính toán cần thiết Điều này giúp giảm bớt đáng kể phần xử lý tính toán của vi điều khiển, cải thiện tốc độ xử lý và cho ra phản hồi nhanh hơn Đây chính là 1 điểm khác biệt đáng kể của MPU-6050 so với các cảm biến gia tốc và gyro khác.

- Các cảm biến bên trong MPU-6050 sử dụng bộ chuyển đổi tương tự - số (Anolog to Digital Converter - ADC) 16-bit cho ra kết quả chi tiết về góc quay, tọa độ Với 16-bit bạn sẽ có 2^16 = 65536 giá trị cho 1 cảm biến.

- Cảm biến MPU-6050 có thể hoạt động ở chế độ tốc độ xử lý cao hoặc chế độ đo góc quay chính xác (chậm hơn).

Thông số kỹ thuật của module:

- Chip: MPU-6050 tích hợp 6 trục cảm biến (3 trục góc + 3 trục gia tốc)

- Dộ phân giải góc: ±250 ±500 ±1000 ±2000 dps

- Độ phân giải gia tốc: ±2 ±4 ±8 ±16g

Hình 2 12 1 Sơ đồ chân MPU6050

Hình 2 13 Hình ảnh thực tế của MPU6050

Hình 2 14 Trục quay của cảm biến MPU6056

PARAMETER CONDITIONS MIN TYP MAX UNITS

Full-Scale Range FS_SEL=0 ±250 º/s

Gyroscope ADC Word Length 16 bits

Sensitivity Scale Factor FS_SEL=0 131 LSB/(º/s)

Nonlinearity Best fit straight line; 0.2 %

Gyroscope zero-rate output (zro)

ZRO Variation Over Temperature -40°C to +85°C ±20 º/s

Power-Supply Sensitivity (1-10Hz) Sine wave, 100mVpp;

Gyroscope noise performance FS_SEL=0

Total RMS Noise DLPFCFG=2 (100Hz) 0.05 º/s-rms

Low-frequency RMS noise Bandwidth 1Hz to10Hz 0.033 º/s-rms

Rate Noise Spectral Density At 10Hz 0.005 º/s/√Hz

Low pass filter response Programmable Range 5 256 Hz

Output data rate Programmable 4 8,000 Hz

Gyroscope start-up time DLPFCFG=0

ZRO Settling (from power-on) to ±1º/s of Final

Bảng 2 5 Thông số kĩ thuật Con quay hồi chuyển

PARAMETER CONDITIONS MIN TYP MAX UNITS

Full-Scale Range AFS_SEL=0 ±2 g

ADC Word Length Output in two’s complement format

Sensitivity Scale Factor AFS_SEL=0 16,384 LSB/g

Sensitivity Change vs Temperature AFS_SEL=0, -40°C to +85°C ±0.02 %/°C

Nonlinearity Best Fit Straight Line 0.5 %

Initial Calibration Tolerance X and Y axes ±50 mg

Change from factory trim -14 14 % Relative

Low pass filter response Programmable Range 5 260 Hz

Output data rate Programmable Range 4 1,000 Hz

Bảng 2 6 Thông số kĩ thuật Gia tốc kế[1]

Register (Decimal) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

Bảng 2 7 Địa chỉ các bit dữ liệu của con quay hồi chuyển

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

Bảng 2 8 Địa chỉ các bit dữ liệu trả về của gia tốc kế Giao tiếp:

MPU6050 giao tiếp với vi điều khiển thông qua giao tiếp I2C với 2 dây là SCL và SDA

Bảng 2 9 Giản đồ ghi 1byte I2C

Master S AD+W RA S AD+R NAC

Slave ACK ACK ACK DATA

Bảng 2 10 Giản đồ đọc 1byte I2C

S:Start Condition: SDA goes from high to low while SCL is high

ACK: Acknowledge: SDA line is low while the SCL line is high at the 9th clock cycle

NACK:Not-Acknowledge: SDA line stays high at the 9th clock cycle

RA:MPU-60X0 internal register address

DATA:Transmit or received data

P:Stop condition: SDA going from low to high while SCL is high

Hình 2 15 Sơ đồ chân của module NRF24L01 NRF24L01 là bộ thu phát vô tuyến chip đơn cho ISM 2,4 -2,5 GHz.

Bộ thu phát bao gồm một bộ tổng hợp tần số tích hợp đầy đủ, một bộ nguồn bộ khuếch đại, bộ tạo dao động tinh thể, bộ giải điều chế và ShockBurst TM nâng cao động cơ giao thức Có thể lập trình thông qua giao thức SPI.

Với 3 tuỳ chọn Datarate: 2Mbps,1Mbps,250Kbps.

Với các chế độ: RX mode, TX mode, Power Down, Standby-I, Standby-II. Đặc điểm:

- Khoảng cách thu phát khoảng 100m (với điều kiện trống trải), khoảng 30-50m (trong nhà) Với một số phiên bản đặc biệt ví dụ như loại NRF24L01+ thì khoảng cách có thể lên tới 1km Khá thích hợp cho các bộ điều khiển cầm tay.

- Có khả năng truyền tín hiệu 2 chiều Tức là một module vừa có thể là transmitter vừa có thể là receiver Khác biệt so với loại 433Mhz là phải có 2 module riêng biệt.

Tham số Giá trị Đơn vị Điện áp cung cấp tối thiểu 1,9 V

Công suất đầu ra tối đa 0 dBm

Tốc độ dữ liệu tối đa 2000 Kbps

Dòng điện cung cấp ở chế độ Tx – công suất đầu ra

Dòng điện cung cấp ở chế độ Rx 2000kbps 12,3 mA

Phạm vi nhiệt độ -40 – 85 o C o C Độ nhạy 1000kbps -85 dBm

Dòng điện cung cấp ở chế độ tắt nguồn (Power

Bảng 2 11 Thông số kĩ thuật NRF24L01+

Hình 2 17 Sơ đồ chân của chip NRF24L01+

Chân Tên Chức năng Mô tả

1 CE Digital Input Chip enable activates RX or TX mode

2 CSN Digital Input SPI chip Select

3 CSK Digital Input SPI clock

4 MOSI Digital Input SPI slave data input

5 MISO Digital Output SPI Slave data output, with tri-state option

6 IRQ Digital Output Maskable interrup pin

7 VDD Power Power supply +3V DC

9 XC2 Analog Output Crystal Pin 2

10 XC1 Analog Input Crystal Pin 1

11 VDD_PA Power Output Power supply +1.8V to power amplifier

15 VDD Power Power supply +3V DC

16 IREF Analog Input Reference current

18 VDD Power Power supply +3V DC

19 DVDD Power Output Positive digital supply output for de- coupling purposes

Bảng 2 12 Chức năng của các chân của NRF24L01+

Giao tiếp: NRF24l01 giao tiếp với vi điều khiển thông qua giao tiếp SPI thông qua các chân:

- CE (this signal is active high and is used to activate the chip in RX or TX mode)

Hình 2 18 Giản đồ xung khi đọc SPI

Hình 2 19 Giản đồ xung khi ghi SPI

Hình 2 20 Sơ đồ nguyên lí của module NRF24L01

Vì chọn chế độ hiệu suất cao nên cần 1 nguồn điện cung cấp cho module

NRF24L01 đủ lớn và ổn định nên em chọn module ổn áp 3,3v sử dụng IC AMS1117.

- Điện áp vào: DC4.5-7V (Vin)

Vì Quadcopter dùng pin 3s 12.5 khi được sạc đầy nên cần module hạ áp 5v để cấp nguồn cho mạch điều khiển hoạt động nên em chọn module DC-DC MP1584.

Hình 2 22 Module nguồn 5V Thông số kĩ thuật:

- Tần số chuyển đổi: 1MHz (bình thường), 1.5Mhz (tối đa)

- Hiệu suất chuyển đổi: 96% (tối đa)

Phần mềm

MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.

Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phát minh vào cuối thập niên 1970, và sau đó là chủ nhiệm khoa máy tính tại Đại học New Mexico.

Trong đề tài này, chúng em sử dụng phần mềm matlab để mô phỏng thuật toán PID, tìm hiểu các thông số và lấy dạng sóng.

2.3.2 Phần mềm công cụ EasyEDA

Hình 2 24 Phần mềm công cụ EasyEDA

EasyEDA viết tắt của Easy Electronics Design Automation là một công cụ thiết kế vi mạch (EDA) miễn phí, không cần cài đặt, trên nền tảng điện toán đám mây, được thiết kế để mang đến cho kỹ sư điện, giảng viên, sinh viên kỹ thuật và những người yêu thích điện tử một trải nghiệm thiết kế mạch dễ dàng hơn Phần mềm cho phép người dùng vẽ thư viện linh kiện cũng như có thể được dùng thư viện người dùng chung giúp việc tìm kiếm linh kiện dễ dàng, đa dạng hơn.

- Khả năng dễ dàng và hiệu quả trong thiết kế mạch.

- Chia sẻ trực tuyến các dự án

- Tạo và chỉnh sửa footprint

- Thư viện linh kiện đa dạng. Đây cũng là phần mềm chính để thiết kế mạch nguyên lí, layout trong đề tài này.

Arduino IDE là một phần mềm với một mã nguồn mở, được sử dụng chủ yếu để viết và biên dịch code Nó bao gồm phần cứng và phần mềm Phần cứng chứa đến 300,000 board mạch được thiết kế sẵn với các cảm biến, linh kiện Phần mềm giúp bạn có thể sử dụng các cảm biến, linh kiện ấy của Arduino một cách linh hoạt phù hợp với mục đích sử dụng

Hình 2 25 Phần mềm Arduino IDE

Chúng em lựa chọn phần mềm arduino để thực hiện viết chương trình cho vi điều khiển bởi các ưu điểm nổi bật:

- Sử dụng ngôn ngữ lập trình C/C++ thân thiện với các lập trình viên

- Hỗ trợ lập trình tốt cho bo mạch

- Thư viện hỗ trợ phong phú

- Giao diện đơn giản, dễ sử dụng.

THIẾT KẾ VÀ THI CÔNG

Mục tiêu thiết kế

Mục tiêu của đề tài:

Xây dựng thuật toán PID để có thể cân bằng được máy bay Quadcopter bằng cách đọc giá trị của cảm biến bao gồm 3 trục của gia tốc và 3 trục con quay hồi chuyển, sau đó thông qua các bộ lọc tín hiệu để giảm nhiễu và tính toán các giá trị góc của các trục yaw, pitch, roll từ đó điều chỉnh tốc độ cho 4 động cơ để cân bằngQuadcopter.

Phần cứng

Hình 3 1 Khung máy bay Quadcopter F450

- Để Quadcopter hoạt động ổn định nên chọn cánh quạt phù hợp với động cơ. Động cơ không chổi than 2212/920v và ESC 40A:

Hình 3 3 ESC 40A và động cơ không chổi than

ESC1 Phía trước, bên phải Ngược chiều kim đồng hồ

ESC2 Phía sau, bên phải Chiều kim đồng hồ

ESC3 Phía sau, bên trái Ngược chiều kim đồng hồ

ESC4 Phía trước, bên trái Chiều kim đồng hồ

Bảng 3 1 Vị trí và hướng quay của ESCNếu động cơ xoay ngược chiều thì cần đổi chiều lại bằng cách đảo 2/3 dây của động cơ với ESC.

ESC là bộ driver dùng để điều khiển động cơ không chổi than thông qua các xung điều khiển đầu vào bằng cách thay đổi thời gian phát xung từng pha để thay đổi tốc độ của động cơ.

Phải chọn ESC có công suất phù hợp với ESC để phát huy tối đa động cơ tránh lãng phí.

Là nguồn điện cung cấp năng lượng cho toàn bộ hệ thống bao gồm hệ thống điều khiển và động cơ.

Khi chọn pin cần chú ý dung lượng (dung lượng càng lớn thì bay càng lâu nhưng khối lượng càng nặng) vì vậy cần cân đối giữa dung lượng và khối lượng để phù hợp với phần cứng, dòng xả của pin dòng xả của pin phải đáp ứng công suất bốn động cơ.

Hình 3 5 Lắp ráp mô hình

3.2.2 Cân bằng cánh và calibration ESC a) Calibration Esc Để sử dụng esc đầu tiên cần cài đặt giá trị điểm đầu và điểm cuối, nó được hướng dẫn trong tài liệu sử dụng của esc.

Về cơ bản được thực hiện như sau:

- Xuất xung mức max cho esc.

- Kết nối pin cho esc sau khi nghe 2 tiếng thông báo (“tick, tick”) từ esc.

- Xuất xung mức min sau khi nghe 3 tiếng thông báo (“tick, tick, tick”) từ esc là đã calibration thành công

- Rút pin để hoàn tất Để biết thông tin chi tiết cần đọc kỹ hướng dẫn sử dụng khi mua esc. b) Cân bằng cánh

Vì khi hoạt động các động cơ quay dẫn đến rung động có thể làm cho MPU đọc sai nên để giảm thiệu độ rung đầu tiên cần đặt MPU tại trung tâm Quadcopter để triệt tiêu và cân bằng cánh.

Cho cánh xoay tự do quanh trục để làm điều này, chúng em làm bộ cân cánh đơn giản Bên nào nặng thì dán băng dính bên còn lại cho đến khi hai bên cánh cân bằng.

Thiết kế mạch

Hình 3 8 Sơ đồ nguyên lí mạch điều khiển bay

Hình 3 9 Mạch PCB của mạch điều khiển bay

Hình 3 10 Hình 3D của mạch điều khiển bay

Hình 3 11 Mạch điều khiển bay trong thực tế

Mạch gửi tín hiệu điều khiển:

Hình 3 12 Sơ đồ nguyên lí mạch gửi tín hiệu điều khiển

Hình 3 13 Mạch PCB của mạch gửi tín hiệu điều khiển

Hình 3 14 Hình 3D của mạch gửi tín hiệu điều khiển

Hình 3 15 Mạch gửi tín hiệu trong thực tế

Lập trình

Trước khi lập trình cần cài các phần mềm cần thiết, có rất nhiều phần mềm để lập trình STM32F103C8T6 như các phần mềm STM32CubeIDE để vừa lập trình vừa nạp hoặc dùng keil C để lập trình nạp code …., nhưng 2 cách trên debug khá bất tiện nên mình chọn cách dễ hơn là sử dụng Arduino Ide sau đó cài đặt gói cho chip STM32F103 do chính hãng ST phát hành và cài STM32CubeProgrammer để có thể nạp chương trình trực tiếp trên ArduinoIDE và debug khá dễ dàng.

Sơ đồ khối của mạch truyền và mạch nhận.

Hình 3 16 Sơ đồ khối Transmitter: là bộ điều khiển từ xa 4 channel: throutle, roll, pitch, yaw Bao gồm:

- Biến trở: để làm cần điều khiển

- STM32:vi điều khiển để đọc ADC từ biến trở và gửi tín hiệu đi thông qua RF24

- NRF24L01: để gửi tín hiệu điều khiển

Receiver: là bộ điều khiển bay chính bao gồm:

- NRF24L01: để nhận tín hiệu từ bộ transmitter

- MPU6050: trả về 3 giá trị con quay hồi chuyển và 3 giá trị gia tốc kế

- STM32: nhận tín hiệu từ RF24 và MPU6050 sau đó tính toán và xuất xungPPM tới ESC để điều khiển tốc độ động cơ

Hình 3 17 Lưu đồ thuật toán mạch điều khiển bay

Hình 3 18 Lưu đồ thuật toán mạch gửi tín hiệu điều khiển

Chọn hệ số PID

Các phương pháp chọn hệ số PID:

- Chỉnh định dùng phần mền

Trong đề tài nghiên cứu này chúng em dò hệ số PID bằng phương pháp dò thủ công:

Cách thực hiện: Đầu tiên ta dùng phần mềm matlab để mô phỏng PID, để tìm hiểu

Hình 3 19 Sơ đồ mô phỏng thuật toán PID trên matlab Đặt Ki = Kd = 0 Sau đó thay đổi Kp cho đến khi hệ thống giao động tuần hoànKhi P=1.0, I, D = 0:

Ta thấy khi Kp càng lớn thì tốc độ đáp ứng càng cao đồng thời sẽ làm hệ thống mất ổn định.

Tiếp đó, ta treo máy bay lên một giá cố định rồi dùng excel để thu thập dữ liệu thực tế khi bay của Quadcopter đồng thời điều chỉnh hệ số cho phù hợp.

Hình 3 20 Giá thử nghiệm hệ số PID

Ta thấy khi chỉ có Kp nếu có yếu tố tác động vào máy bay thì thời gian trả về vị trí cân bằng chậm

Khi Kp quá lớn máy bay sẽ giao động liên tục không thể trả về điểm cân bằng Nhận xét:

- Kp càng lớn thì tốc độ đáp ứng càng nhanh

- Kp càng lớn thì máy bay sẽ dao động càng lớn và độ lệch càng nhiều.

- Nếu Kp tăng quá giá trị giới hạn thì máy bay sẽ dao động không tắt dần khiến máy bay không thể cân bằng.

Sóng khi tác đ ng m t l c vào ộng một lực vào ộng một lực vào ực vào máy bay

Ta thử cho thêm Kd

Khi thêm Kd ta thấy khi có yếu tố tác động vào máy bay thì thời gian trả về so với khi chỉ có Kp nhanh hơn rất nhiều.

Giữ Kp = 1.3, Ki = 0, tăng Kd = 35

- Kd càng lớn thì tốc độ đáp ứng quá độ càng nhanh

- Kd càng lớn thì độ lệch càng nhỏ (nhưng hầu như không thể về điểm cân bằng)

- Nếu chỉ có khâu P và D thì máy bay không thể bay ổn định được ta thử thêm khâu I.

Sóng khi tác đ ng m t l c vào ộng một lực vào ộng một lực vào ực vào máy bay

Sóng khi tác đ ng m t l c vào ộng một lực vào ộng một lực vào ực vào máy bay

Ta thấy độ lệch rất lớn và máy bay dao động liên tục không thể trả về điểm cân bằng.

Máy bay rất ổn định, khi có yếu tố ảnh hưởng tốc độ trả về nhanh.

- Ki càng lớn thì giao động càng lớn, độ lệch càng cao.

- Ki càng lớn thì đáp ứng quá độ càng chậm.

Sóng khi tác đ ng m t l c vào ộng một lực vào ộng một lực vào ực vào máy bay

Lấy hệ số chuẩn

Trước khi bay chúng ta cần lấy các thông số góc chuẩn khi quadcopter nằm trên mặt phẳng vì mỗi phần cứng ra những số khác nhau.

B1 Đầu tiên cần đặt Quadcopter trên mặt phẳng (nên dùng thước thuỷ để đo cho chính xác).

B2 Nạp chương trình “settup Quadcopter” vào mạch trên Quadcopter.

Mở cổng Serial moniter sẽ được như hình dưới:

Nhấn gửi các kí tự ta sẽ thực kiện kiểm tra các thông số tương ứng, ở đây chúng ta nhấn “h” để tính toán các gốc ban đầu.

B3 Sau khi nhấn “h” ta sẽ được như hình dưới:

Sau đó ta tiến hành lấy 5 giá trị trên điền vào trong chương trình điều khiển chính, nạp chương trình chính vào mạch và bay.

Mô hình sản phẩm

Hình 4 1 Mô hình Quadcopter hoàn thiện

Hình 4 3 Bay thử nghiệm ở độ cao thấp

Hình 4 4 Bay thử nghiệm lên cao

Nhận xét

Trong quá trình bay thử nghiệm mô hình Quadcopter đã có thể cân bằng trong khi bay và đã có thể điều khiển tới, lui, trái, phải và xoay, nhưng vẫn còn nhiều hạn chế là không giữ cố định một vị trí mà bị trôi theo phương ngang và khi lên ga đủ lớn để thắng được trọng lực thì máy bay sẽ bay lên mãi nếu người điều khiển không hạ ga xuống. Để khắc phục thì cần phải thêm cảm biến áp suất khí quyển để nhận biết độ cao và một bộ PID để điều khiển ga duy trì độ cao mong muốn và GPS để có toạ độ để giữ vị trí trong không gian, nhưng đề tài của tụi em chỉ dùng một IMU là MPU6050 nên khi bay cần phải điều khiển để được như ý muốn.

Ngày đăng: 08/03/2024, 14:04

HÌNH ẢNH LIÊN QUAN

Hình 1. 2 Máy bay không người lái dạng cánh bằng - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 1. 2 Máy bay không người lái dạng cánh bằng (Trang 17)
Hình 1. 3 Máy bay không người lái helicopter - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 1. 3 Máy bay không người lái helicopter (Trang 19)
Hình 1. 4 Máy bay Quadcopter - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 1. 4 Máy bay Quadcopter (Trang 21)
Hình 2. 2  Nguyên lí di chuyển của Quadcopter - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 2. 2 Nguyên lí di chuyển của Quadcopter (Trang 24)
Sơ đồ một hệ thống điều khiển dùng PID: - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Sơ đồ m ột hệ thống điều khiển dùng PID: (Trang 25)
Hình 2. 4  Đáp ứng của khâu P Nếu giá trị khâu P quá lớn sẽ làm cho hệ thống mất ổn định. - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 2. 4 Đáp ứng của khâu P Nếu giá trị khâu P quá lớn sẽ làm cho hệ thống mất ổn định (Trang 26)
Hình sau chỉ ra sự khác biệt giữa khâu I và PI: - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình sau chỉ ra sự khác biệt giữa khâu I và PI: (Trang 27)
Hình 2. 8 Xác định hệ số khuếch đại tới hạn - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 2. 8 Xác định hệ số khuếch đại tới hạn (Trang 32)
Hình 2. 9 Board blue bill dùng vi điều khiển Stm32f103C8T6 - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 2. 9 Board blue bill dùng vi điều khiển Stm32f103C8T6 (Trang 33)
Hình 2. 10   Sơ đồ chân của board blue bill - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 2. 10 Sơ đồ chân của board blue bill (Trang 34)
Hình 2. 16 Sơ dồ khối - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 2. 16 Sơ dồ khối (Trang 44)
Hình 2. 19 Giản đồ xung khi ghi SPI - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 2. 19 Giản đồ xung khi ghi SPI (Trang 46)
Hình 3. 5 Lắp ráp mô hình - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 3. 5 Lắp ráp mô hình (Trang 51)
Hình 3. 6 Giá cân cánh - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 3. 6 Giá cân cánh (Trang 52)
Hình 3. 7 Cân bằng cánh - Thiết kế mô hình quadcopter và cân bằng ứng dụng pid
Hình 3. 7 Cân bằng cánh (Trang 53)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w