Thiết bị bay cất cánh tiếp cận đám cháy

Một phần của tài liệu Kỹ thuật dẫn đường và truyền thông thời gian thực cho thiết bị bay không người lái phục vụ cứu hộ chữa cháy nhà cao tầng (Trang 88)

87

Hình 8.3: Hình ảnh đám cháy truyền về từ thiết bị bay (quan sát tại trạm mặt đất) Sau khi thiết bị bay cất cánh, tăng dần độ cao, thiết bị bay bắt đầu thực hiện nhiệm vụ trinh sát, thu thập tình hình thực tế, hình ảnh video và gửi trực tiếp và trạm mặt đất. Nhƣ trong hình 7.8 hình ảnh thu đƣợc tại trạm mặt đất thấy các nạn nhân của đám cháy đang chạy lên tầng thƣợng và đang tìm cách thốt xuống mặt đất trong khi khói do đám cháy sinh ra đã bao phủ hồn tồn tồ nhà.

Hình 8.4: Trinh sát tình hình thực tế của đám cháy

Phát hiện nạn nhân đang đứng trên sân thƣợng tòa nhà, ngƣời điều khiển cho thiết bị bay tiến vào. Camera đƣợc điều khiển nhìn xuống dƣới để xác định vị trí thả vật cứu hộ thuận lợi.

88

Sau khi quan sát đã đến điểm thả đồ từ trạm mặt đất, thiết bị bay bắt đầu thả đồ cứu hộ cứu nạn.

Hình 8.5: Hình ảnh quan sát đã tới vị trí thả đồ( khoanh trịn màu đỏ)

89

KẾT LUẬN

Trong tình hình cơng tác PCCC đang đƣợc đẩy mạnh và nâng cao cả vể chất lƣợng lẫn số lƣợng các phƣơng tiện PCCC luận văn đã đóng góp một sản phẩm hữu ích, đƣợc kiểm nghiệm và đánh giá qua thực tế triển khai tại Sơn Tây- Hà Nội

Trên cơ sở vận dụng các phƣơng pháp nghiên cứu, luận văn đạt đƣợc những kết quả chủ yếu nhƣ sau:

Thứ nhất, hoàn thành mạch điều khiển cho thiết bị bay, đây là thiết bị điện tử quan trọng nhất trên thiết bị bay

Thứ hai, đƣa ra và kiểm nghiệm bộ điều khiển PID hai lớp cùng các hệ số phù hợp cho thiết bị bay. Xác định và đánh giá các thông số truyền thông thời gian thực

Thứ ba, luận văn đề xuất kết hợp hệ thống định vị vệ tinh GPS với hệ thống định vị quán tính INS nhằm tăng cƣờng chất lƣợng tín hiệu đầu vào cho thiết bị bay. Đây là bƣớc quan trọng để thiết bị bay có thể hoạt động với độ tin cậy cao.

90

TÀI LIỆU THAM KHẢO

[1] Đỗ Trọng Tuấn et al. (2013). “Nghiên cứu, thiết kế, chế tạo phƣơng tiện bay hỗ trợ cơng tác phịng cháy chữa cháy trên địa bàn thành phố Hà Nội”, mã số

01C – 02/04/2013 – 2, Sở KHCN thành phố Hà Nội.

[2] Eric N. Johnson, Michael A. Turbe, Allen D. Wu, Suresh K. Kannan and James C. Neidhoefer, “Flight Test Results of Autonomous Fixed-Wing UAV Transitions to and from Stationary Hover”, AIAA Guidance, Navigation, and

Control Conference and Exhibit 21 - 24 August 2006, Keystone, Colorado.

[3] Francois Hugon, Robert F. Hartley, Brian DeRosa, Christopher Carvalho, (2012), “ArduPilot 2.0 Simulink Block Set”, Embry-Riddle Aeronautical University Savannah, Georgia, Embry-Riddle Aeronautical University Daytona Beach, Floria.

[4] Guillaume J. J. D., (2009). Fault-tolerant Flight Control and Guidance Systems: Practical Methods for Small Unmanned Aerial Vehicles. Springer.

[5] Harbick, K., Montgomery, J. F., and Sukhatme, G. S., (2004), “Planar Spline Trajectory Following for an Autonomous Helicopter”, Journal of Advanced Computational Intelligence – Computational Intelligence in Robotics and Automation, Vol. 8, No. 3, 2004, pp. 237–242.

[6] Randal Beard, Derek Kingston, Morgan Quigley, Deryl Snyder, Reed Christiansen, Walt Johnson, Timothy McLain,and Michael A. Goodrich, “Autonomous Vehicle Technologies for Small Fixed-Wing UAVs”, Journal of

Aerospace computing, inormation and communication, Vol. 2, January 2005.

[7] Samir B., Roland S., (2007). “Full Control of a Quadrotor”. Proc. of the 2007

IEEE/RSI International Conference on IROS, San Diego, CA, USA, ISBN 1-

4244-0912-8, pp. 153-158.

[8] Vikas Kumar N, (2004), “Intergration of Inertial Navigation System and Global Positioning System Using Kalman Filtering”, Department of Aerospace engineering indian institite of Technology, Bombay, Mumbai.

91

PHỤ LỤC

Code thuật tốn PID mơ phỏng

float CalcPitchPID(float dt ,float *Total_Error_Pitch , float Setpoint , float Input , float Gyros_OutputPitch , float KpPitch , float KiPitch , float KdPitch )

{

float Output;

float Error_Pitch;

/*Compute all the working error variables*/ Error_Pitch = Setpoint - Input;

*(Total_Error_Pitch)=*(Total_Error_Pitch)+Error_Pitch; Output = KpPitch*Error_Pitch + *(Total_Error_Pitch)* KiPitch*dt+ KdPitch*Gyros_OutputPitch*(-1);

return Output; }

float CalcRollPID(float dt ,float *Total_Error_Roll , float Setpoint , float Input , float Gyros_OutputRoll , float KpRoll , float KiRoll , float KdRoll )

{

float Output; float Error_Roll;

/*Compute all the working error variables*/ Error_Roll = Setpoint - Input;

*(Total_Error_Roll)=*(Total_Error_Roll)+Error_Roll; Output = KpRoll*Error_Roll + *(Total_Error_Roll)* KiRoll*dt+ KdRoll*Gyros_OutputRoll*(-1);

return Output; }

float CalcYawPID(float dt ,float *Total_Error_Yaw , float Setpoint , float Input , float KpYaw , float KiYaw , float KdYaw )

{

float Output; float Error_Yaw;

/*Compute all the working error variables*/ Error_Yaw = Setpoint - Input;

*(Total_Error_Yaw)=*(Total_Error_Yaw)+Error_Yaw; Output = KpYaw*Error_Yaw + *(Total_Error_Yaw)* KiYaw*dt+ KdYaw*Error_Yaw/dt;

return Output; }

92

float CalcRollGyroPID(float dt ,float *Total_Error_GyroRoll , float Setpoint , float Input , float KpGyroRoll , float KiGyroRoll , float KdGyroRoll )

{

float Output;

float Error_GyroRoll;

/*Compute all the working error variables*/ Error_GyroRoll = Setpoint - Input;

*(Total_Error_GyroRoll)=*(Total_Error_GyroRoll)+Error_G yroRoll; Output = KpGyroRoll*Error_GyroRoll + *(Total_Error_GyroRoll)* KiGyroRoll*dt+ KdGyroRoll*Error_GyroRoll/dt; return Output; }

float CalcPitchGyroPID(float dt ,float

*Total_Error_GyroPitch , float Setpoint , float Input , float KpGyroPitch , float KiGyroPitch , float KdGyroPitch ) {

float Output;

float Error_GyroPitch;

/*Compute all the working error variables*/ Error_GyroPitch = Setpoint - Input;

*(Total_Error_GyroPitch)=*(Total_Error_GyroPitch)+Error _GyroPitch; Output = KpGyroPitch*Error_GyroPitch + *(Total_Error_GyroPitch)* KiGyroPitch*dt+ KdGyroPitch*Error_GyroPitch/dt; return Output; }

output_pitch = CalcPitchPID(t, &total_error_pitch ,

setpointPitch , angles[2] ,-gyro[0] , KpPitch , KiPitch , KdPitch );

output_roll = CalcRollPID(t, &total_error_roll ,

setpointRoll , angles[1] ,gyro[1] , KpRoll , KiRoll , KdRoll );

output_pitch = CalcPitchGyroPID(t ,&total_error_gyropitch , output_pitch , gyro[0] , KpGyroPitch , KiGyroPitch , KdGyroPitch );

output_roll = CalcRollGyroPID(t,&total_error_gyroroll, output_roll, -gyro[1] , KpGyroRoll , KiGyroRoll , KdGyroRoll

Một phần của tài liệu Kỹ thuật dẫn đường và truyền thông thời gian thực cho thiết bị bay không người lái phục vụ cứu hộ chữa cháy nhà cao tầng (Trang 88)

Tải bản đầy đủ (PDF)

(94 trang)