四旋翼飛行器程序

上傳人:仙*** 文檔編號:36157613 上傳時間:2021-10-29 格式:DOC 頁數(shù):16 大?。?29.50KB
收藏 版權(quán)申訴 舉報 下載
四旋翼飛行器程序_第1頁
第1頁 / 共16頁
四旋翼飛行器程序_第2頁
第2頁 / 共16頁
四旋翼飛行器程序_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《四旋翼飛行器程序》由會員分享,可在線閱讀,更多相關(guān)《四旋翼飛行器程序(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、四旋翼自主飛行器(B題) 摘要 系統(tǒng)以R5F100LE作為四旋翼自主飛行器控制的核心,由電源模塊、電機(jī)調(diào)速控制模塊、傳感器檢測模塊、飛行器控制模塊等構(gòu)成。飛行控制模塊包括角度傳感器、陀螺儀,傳感器檢測模塊包括紅外障礙傳感器、超聲波測距模塊、TLS1401-LF模塊,瑞薩MCU綜合飛行器模塊和傳感器檢測模塊的信息,通過控制4個直流無刷電機(jī)轉(zhuǎn)速來實現(xiàn)飛行器的欠驅(qū)動系統(tǒng)飛行。在動力學(xué)模型的基礎(chǔ)上,將小型四旋翼飛行器實時控制算法分為兩個PID控制回路,即位置控制回路和姿態(tài)控制回路。測試結(jié)果表明系統(tǒng)可通過各個模塊的配合實現(xiàn)對電機(jī)的精確控制,具有平均速度快、定位誤差小、運(yùn)行較為穩(wěn)定等特點。

2、 目 錄 1 系統(tǒng)方案論證與控制方案的選擇 - 2 - 1.1 地面黑線檢測傳感器 - 2 - 1.2 電機(jī)的選擇與論證 - 2 - 1.3 電機(jī)驅(qū)動方案的選擇與論證 - 3 - 2 四旋翼自主飛行器控制算法設(shè)計 - 3 - 2.1 四旋翼飛行器動力學(xué)模型 - 3 - 2.2 PID控制算法結(jié)構(gòu)分析 - 3 - 3 硬件電路設(shè)計與實現(xiàn) - 5 - 3.1飛行控制電路設(shè)計 - 5 - 3.2 電源模塊 - 6 - 3.3 電機(jī)驅(qū)動模塊 - 6 - 3.4 傳感器檢測模塊 - 7 - 4 系統(tǒng)的程序設(shè)計 - 8 - 5 測試

3、與結(jié)果分析 - 9 - 5.1 測試設(shè)備 - 9 - 5.2 測試結(jié)果 - 9 - 6 總結(jié) - 10 - 附錄A 部分程序清單 - 11 - 1 系統(tǒng)方案論證與控制方案的選擇 根據(jù)題目要求,對該系統(tǒng)的特點及其控制特性進(jìn)行了分析,進(jìn)行了幾種不同設(shè)計方案的比較。 1.1 地面黑線檢測傳感器 探測地面黑線的基本原理是:光線照射到路面并反射,由于黑線和白色地面對光的反射系數(shù)不同,所以可以根據(jù)接收到的反射光強(qiáng)弱來判斷黑線??蓪崿F(xiàn)的方案有: 方案一:采用普通發(fā)光二極管及光敏電阻組成的發(fā)射接收方案。該方案在實際使用時,容易受到外界光源的干擾,有時甚至檢測不到。主要是因為

4、可見光的反射效果跟地表的平坦程度、地表材料的反射情況均對檢測效果產(chǎn)生直接影響。雖然可采取超高高度發(fā)光二極管降低一定的干擾,但這又增加額外的功率損耗。 方案二:紅外避障傳感器E18-D80NK。這是一種集發(fā)射與接收于一體的光電傳感器,發(fā)射光經(jīng)過調(diào)制后發(fā)出,接收頭對反射光進(jìn)行解調(diào)輸出,有效的避免了可見光的干擾。透鏡的使用,也使得這款傳感器最遠(yuǎn)可以檢測80厘米距離。檢測障礙物的距離可以根據(jù)要求通過尾部的電位器旋鈕進(jìn)行調(diào)節(jié)。并且具有探測距離遠(yuǎn)、受可見光干擾小、價格便宜、易于裝配、使用方便等特點。 比較以上二種方案,方案二占有很大優(yōu)勢,不但能準(zhǔn)確完成測量,而且能避免電路的復(fù)雜性,因此選擇方案二。

5、1.2 電機(jī)的選擇與論證 四旋翼無人飛行器是通過控制四個不同無刷直流電機(jī)的轉(zhuǎn)速,達(dá)到控制四旋翼無人飛行器的飛行姿態(tài)和位置,與傳統(tǒng)直升機(jī)通過控制舵機(jī)來改變螺旋槳的槳距角,達(dá)到控制直升機(jī)的目的不同。在電機(jī)的選型上,主要有直流有刷電機(jī)和直流無刷電機(jī)兩種。 方案一:直流有刷電機(jī)是當(dāng)前普遍使用的一種直流電機(jī),它的驅(qū)動電路簡單、控制方法成熟,但是直流有刷電機(jī)使用電刷進(jìn)行換向,換向時電刷與線圈觸電存在機(jī)械接觸,電機(jī)長時間高速轉(zhuǎn)動使極易因磨損導(dǎo)致電氣接觸不良等問題,而且有刷電機(jī)效率低、力矩小、重量大,不適合對功率重量比敏感的電動小型飛行器。 方案二:直流無刷電機(jī)能量密度高、力矩大、重量輕,采用非接觸式的

6、電子換向方法,消除了電刷磨損,較好地解決了直流有刷電機(jī)的缺點,適用于對功率重量比敏感的用途,同時增強(qiáng)了電機(jī)的可靠性。 所以選擇直流無刷電機(jī)作為動力源。 1.3 電機(jī)驅(qū)動方案的選擇與論證 方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機(jī)的分壓,從而達(dá)到調(diào)速的目的。但是電阻網(wǎng)絡(luò)只能實現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價格比較昂貴。更主要的問題在于一般電動機(jī)的電阻很小,但電流很大;分壓不僅會降低效率,而且實現(xiàn)很困難。 方案二:采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整。這個方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)時間慢、機(jī)械結(jié)構(gòu)易損壞、壽命較 短、可靠性不高。

7、 方案三:采用全橋驅(qū)動PWM電路。這種驅(qū)動的優(yōu)點是使管子工作在占空比可調(diào)的開關(guān)狀態(tài),提高使用效率實現(xiàn)電機(jī)轉(zhuǎn)速的微調(diào)。并且保證了可以簡單的方式實現(xiàn)方向控制。 基于上述理論分析,選擇方案三。 2 四旋翼自主飛行器控制算法設(shè)計 2.1 四旋翼飛行器動力學(xué)模型 設(shè)計的小型四旋翼飛行器適用于室內(nèi)低速飛行,因此忽略空氣阻力的影響。因此,簡化后的飛行器動力學(xué)模型為 式1-1 式中為四旋翼飛行器在導(dǎo)航坐標(biāo)系下的線位移,為運(yùn)動加速度,m為飛行器質(zhì)量,分別為機(jī)體的偏航角、俯仰角和橫滾角,為旋翼面中心到四旋翼飛行器質(zhì)心的距離, 為軸向慣性主矩。該動力學(xué)模型對

8、四旋翼飛行器的真實飛行狀態(tài)進(jìn)行了合理的簡化,忽略了空氣阻力等對系統(tǒng)運(yùn)行影響較小的參數(shù),使得飛行控制算法更加簡潔。 2.2 PID控制算法結(jié)構(gòu)分析 在動力學(xué)模型的基礎(chǔ)上,將小型四旋翼飛行器實時控制算法分為兩個控制回路,即位置控制回路和姿態(tài)控制回路。算法結(jié)構(gòu)如圖B-1所示。 給定位置 位置控制 姿 態(tài) 控 制 電機(jī)控制 飛行器機(jī)體 姿態(tài)控制回路 位置控制回路 圖2-1 四旋翼飛行器控制算法結(jié)構(gòu)圖 使用經(jīng)典PID控制算法實現(xiàn)位置控制回路和姿態(tài)控制回路。PID算法簡單可靠,理論體系完備,而且在長期的應(yīng)用過程中積攢了大量的使用經(jīng)

9、驗,在飛行器位置和姿態(tài)控制應(yīng)用中具有良好的控制效果和較強(qiáng)的魯棒性,能提供控制量的較優(yōu)解。 控制回路包含了三個控制量,因此設(shè)計3個獨立的PID控制器對位移進(jìn)行控制。根據(jù)PID控制器的原理,設(shè)分別為比例項、積分項和微分項系數(shù),有 式1-2 其中,為航姿參考系統(tǒng)測量到的加速度積分得到的位移量。 姿態(tài)控制回路的作用是控制四旋翼飛行器的飛行姿態(tài),使其實際姿態(tài)與設(shè)定的姿態(tài)一致。姿態(tài)控制回路有偏航角、俯仰角和橫滾角三個控制量,在此忽略三個通道之間的耦合效應(yīng),設(shè)計3個獨立的PID控制器對每個量進(jìn)行獨立控制。

10、 式1-3 根據(jù)PID控制器的原理,設(shè)分別為比例項、積分項和微分項系數(shù),有控制器方程如B-4。 式1-4 其中比例項系數(shù)為3.3積分項系數(shù)為0.14微分項系數(shù)為3.2。 3 硬件電路設(shè)計與實現(xiàn) 系統(tǒng)以R5F100LE單片機(jī)為核心,主要包括電源模塊、電機(jī)驅(qū)動模塊、飛行控制模塊、傳感器檢測等功能模塊,該系統(tǒng)硬件結(jié)構(gòu)框圖如圖2-2所示。 飛 行 控 制 模 塊 電源模塊 數(shù)據(jù)轉(zhuǎn)發(fā)控制器 陀螺儀 角度傳感器 紅外避障傳感器 超聲波傳感器 電子調(diào)速器 無

11、刷直流電機(jī)1 電子調(diào)速器 無刷直流電機(jī)2 電子調(diào)速器 無刷直流電機(jī)3 電子調(diào)速器 無刷直流電機(jī)4 鍵盤 羅盤 圖 2-2 系統(tǒng)硬件結(jié)構(gòu)圖 3.1飛行控制電路設(shè)計 飛行控制模塊是控制系統(tǒng)的核心部分。它在每個控制周期內(nèi)實時處理傳感器采集的數(shù)據(jù)和飛行器的姿態(tài)信息,完成PID控制的算法,得到四旋翼飛行器的姿態(tài)和位置信息,計算出控制量,轉(zhuǎn)化為相應(yīng)的控制信號經(jīng)驅(qū)動電路后驅(qū)動四個電機(jī)工作,保持四旋翼飛行器穩(wěn)定飛行。電路圖如圖2-3所示。 圖2-3 飛行控制器電路原理圖 3.2 電源模塊 電源由一塊11.1V 2200ma的鋰電池(重量約為166克)供電,在由電調(diào)降壓給系統(tǒng)

12、中的各個模塊供5v電壓并給電機(jī)提供電流,這樣可滿足可滿足各個小系統(tǒng)的電源要求。 3.3 電機(jī)驅(qū)動模塊 四電機(jī)驅(qū)動模塊根據(jù)中心控制模塊指令驅(qū)動各個電機(jī)到達(dá)指定轉(zhuǎn)速,將電機(jī)的速度通過測速反饋裝置反饋給飛行姿態(tài)控制模塊,控制無刷直流電機(jī)閉環(huán)控制轉(zhuǎn)速,從而控制飛行狀態(tài),達(dá)到預(yù)期位置和姿態(tài)。通過電子調(diào)速器給電機(jī)提供電流,電子調(diào)速器模塊電路圖如圖2-4所示。 圖2-4 電子調(diào)速器電流圖 3.4 傳感器檢測模塊 傳感器模塊是為四旋翼飛行器的飛行控制提供各種飛行參數(shù)的裝置,包括測量機(jī)身三軸角速率的陀螺儀、測量機(jī)身三軸線加速度的加速度傳感器、測量機(jī)身航向及姿態(tài)信息的羅盤,電機(jī)轉(zhuǎn)速檢測的測速傳感

13、器、飛行高度傳感器和黑線檢測傳感器。其中角度傳感器和陀螺儀電路圖如圖2-5和2-6所示。 圖B-5 角度傳感器電路圖 圖2-6 陀螺儀電路圖 4 系統(tǒng)的程序設(shè)計 本系統(tǒng)以瑞薩MCU為核心,采用C語言對單片機(jī)進(jìn)行編程。主程序主要起導(dǎo)向和決策的作用,系統(tǒng)的控制總流程圖如圖所示。系統(tǒng)包括延時子程序,電機(jī)轉(zhuǎn)速控制子程序,檢測子程序,副翼子程序。系統(tǒng)控制的總流程圖如圖2-7所示。部分程序清單見附錄A。 按鍵開始 系統(tǒng)初始化 上升定高 校正姿態(tài) 前行 紅外傳感器1是否檢測到黑線? 計黑線值 減速降落 Y N 紅外傳感器2是否檢測到黑線? 黑線值=3?

14、 尋點 Y N Y 圖2-7 系統(tǒng)主程序流程圖 5 測試與結(jié)果分析 5.1 測試設(shè)備 模擬區(qū)域:按題目要求設(shè)計。 設(shè)備:秒表、卷尺。 測試環(huán)境為室內(nèi)。 5.2 測試結(jié)果 使系統(tǒng)運(yùn)行,參照題目的各項要求進(jìn)行多次實際定量測量,得到該系統(tǒng)的測量結(jié)果如表表B-1所示。 表B-1 測試功能、測試工具及實現(xiàn)的情況表 具體功能要求 實際測試結(jié)果 基本部分 四旋翼自主飛行器一鍵式啟動,從A區(qū)飛向B區(qū),在B區(qū)降落并停機(jī);飛行時間不大于45s 可以滿足,飛行時間為15s 四旋翼自主飛行器一鍵式啟動,從B區(qū)飛向A區(qū),在A區(qū)降落并停機(jī);飛行時間不大于45

15、s 可以滿足要求,飛行時間為17s 發(fā)揮部分 飛行器擺放在A區(qū),飛行器下面擺放一薄鐵片,一鍵式啟動,飛行器拾取薄鐵片并起飛 飛行器攜帶薄鐵片從示高線上方飛向B區(qū),并在空中將薄鐵片投放到B區(qū);飛行器從示高線上方返回A區(qū),在A區(qū)降落并停機(jī) 以上往返飛行時間不大于30s 其他 最為完成發(fā)揮部分但以實現(xiàn)其在一個水平高度前行 經(jīng)測試,系統(tǒng)可以滿足基本要求和部分發(fā)揮部分,并具有穩(wěn)定前行的特點。 6 總結(jié) 本次設(shè)計按照題目要求,采用模塊化的硬件和軟件設(shè)計方法,運(yùn)用PID控制算法,成功地實現(xiàn)了飛行器尋黑帶自主飛行并定點降落的要求。具有飛行穩(wěn)定、運(yùn)動迅速、接收信號靈敏等特點。完成

16、了題目基本部分和部分發(fā)揮部分的要求。 附錄A 部分程序清單 /*********************************************************************************************************************** * DISCLAIMER * This software is supplied by Renesas Electronics Corporation and is only * intended for use with Renesas products. No other

17、 uses are authorized. This * software is owned by Renesas Electronics Corporation and is protected under * all applicable laws, including copyright laws. * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLU

18、DING BUT NOT * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANI

19、ES SHALL BE LIABLE * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * Renesas reserves the right, without notice, to make changes to thi

20、s software * and to discontinue the availability of this software. By using this software, * you agree to the additional terms and conditions found by accessing the * following link: * * * Copyright (C) 2011, 2013 Renesas Electronics Corporation. All rights reserved. ********************

21、***************************************************************************************************/ /*********************************************************************************************************************** * File Name : r_cg_timer_user.c * Version : CodeGenerator for RL7

22、8/G13 V2.00.00.07 [22 Feb 2013] * Device(s) : R5F100LE * Tool-Chain : CA78K0R * Description : This file implements device driver for TAU module. * Creation Date: 2013/9/7 **********************************************************************************************************************

23、*/ /*********************************************************************************************************************** Pragma directive ***********************************************************************************************************************/ #pragma interrupt INTTM00 r_tau0

24、_channel0_interrupt #pragma interrupt INTTM01 r_tau0_channel1_interrupt #pragma interrupt INTTM02 r_tau0_channel2_interrupt #pragma interrupt INTTM03 r_tau0_channel3_interrupt #pragma interrupt INTTM04 r_tau0_channel4_interrupt #pragma interrupt INTTM05 r_tau0_channel5_interrupt #pragma interr

25、upt INTTM06 r_tau0_channel6_interrupt #pragma interrupt INTTM07 r_tau0_channel7_interrupt /* Start user code for pragma. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ /******************************************************************************

26、***************************************** Includes ***********************************************************************************************************************/ #include "r_cg_macrodriver.h" #include "r_cg_timer.h" /* Start user code for include. Do not edit comment generated here */

27、 /* End user code. Do not edit comment generated here */ #include "r_cg_userdefine.h" #include "r_cg_kongzhi.h" #include "r_cg_lcd.h" /*********************************************************************************************************************** Global variables and functions *******

28、****************************************************************************************************************/ /* For TAU0_ch0 pulse measurement */ volatile uint32_t g_tau0_ch0_width = 0U; /* Start user code for global. Do not edit comment generated here */ uint32_t oko=0; /* End user code.

29、Do not edit comment generated here */ /*********************************************************************************************************************** * Function Name: r_tau0_channel0_interrupt * Description : This function is INTTM00 interrupt service routine. * Arguments : None

30、* Return Value : None ***********************************************************************************************************************/ __interrupt static void r_tau0_channel0_interrupt(void) { if ((TSR00 & _0001_TAU_OVERFLOW_OCCURS) == 1U) /* overflow occurs */ {

31、 g_tau0_ch0_width = (uint32_t)(TDR00 + 1U) + 0x10000U; } else { g_tau0_ch0_width = (uint32_t)(TDR00 + 1U); } /* Start user code. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ } /*********************

32、************************************************************************************************** * Function Name: r_tau0_channel1_interrupt * Description : This function is INTTM01 interrupt service routine. * Arguments : None * Return Value : None ****************************************

33、*******************************************************************************/ __interrupt static void r_tau0_channel1_interrupt(void) { /* Start user code. Do not edit comment generated here */ TDR05=2980; delayms(500); TDR05=3025; dela

34、yms(100); TDR05=2980; delayms(500); TDR05=3040; delayms(50); oko++; if(oko++>=10){R_TAU0_Channel1_Stop();z(2040);} //xianshi(); /* End user code. Do not edit comment generated here */

35、 } /*********************************************************************************************************************** * Function Name: r_tau0_channel2_interrupt * Description : This function is INTTM02 interrupt service routine. * Arguments : None * Return Value : None ***********

36、************************************************************************************************************/ __interrupt static void r_tau0_channel2_interrupt(void) { /* Start user code. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ }

37、/*********************************************************************************************************************** * Function Name: r_tau0_channel3_interrupt * Description : This function is INTTM03 interrupt service routine. * Arguments : None * Return Value : None ******************

38、*****************************************************************************************************/ __interrupt static void r_tau0_channel3_interrupt(void) { /* Start user code. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ } /******

39、***************************************************************************************************************** * Function Name: r_tau0_channel4_interrupt * Description : This function is INTTM04 interrupt service routine. * Arguments : None * Return Value : None *************************

40、**********************************************************************************************/ __interrupt static void r_tau0_channel4_interrupt(void) { /* Start user code. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ } /*************

41、********************************************************************************************************** * Function Name: r_tau0_channel5_interrupt * Description : This function is INTTM05 interrupt service routine. * Arguments : None * Return Value : None ********************************

42、***************************************************************************************/ __interrupt static void r_tau0_channel5_interrupt(void) { /* Start user code. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ } /********************

43、*************************************************************************************************** * Function Name: r_tau0_channel6_interrupt * Description : This function is INTTM06 interrupt service routine. * Arguments : None * Return Value : None ***************************************

44、********************************************************************************/ __interrupt static void r_tau0_channel6_interrupt(void) { /* Start user code. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ } /***************************

45、******************************************************************************************** * Function Name: r_tau0_channel7_interrupt * Description : This function is INTTM07 interrupt service routine. * Arguments : None * Return Value : None **********************************************

46、*************************************************************************/ __interrupt static void r_tau0_channel7_interrupt(void) { /* Start user code. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ } /* Start user code for adding. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ - 15 -

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!