数字式DCDC降压开关电源_第1页
数字式DCDC降压开关电源_第2页
数字式DCDC降压开关电源_第3页
数字式DCDC降压开关电源_第4页
数字式DCDC降压开关电源_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、word数字式直流开关稳压电源A题2017年5月1日.word摘 要 关键字:BUCK同步整流,PID,蓝牙通讯,电源管理APP摘要:本系统是基于BUCK同步整流拓扑结构,以STM32为控制核心,蓝牙传输与 端APP相配合,从而形成了整个无线数字式开关电源。 APP开启电源,STM32通过电压采样将采集到的数据送入PID算法进行处理后,实时动态调整输出的PWM的占空比,进而实现可控稳压。同时可通过 APP端设置输出电压和上限电流,并实时显示当前电压和电流值,当电流超过设定值时, 端会语音报警,并点亮APP中的过流指示灯,并立即关断电压。Keywords: BUCK synchronous re

2、ctifier, PID, Bluetooth communication, power management APPAbstract: this system is based on the BUCK synchronous rectifier topology, with STM32 as the control core, the Bluetooth transmission and mobile phone end APP match, thus forming the entire wireless digital switching power supply. First, the

3、 mobile phone APP to open the power supply, STM32 through the voltage sampling will be collected into the PID algorithm for data processing, real-time dynamic adjustment of the output of the PWM duty cycle, and thus achieve a regulated voltage. At the same time through the mobile phone terminal APP

4、to set the output voltage and current limit, and display the current voltage and current value, when the current exceeds the set value, the mobile phone terminal can voice alarm, and light in APP flow indicator, and immediately turn off voltage.word目 录1系统方案11.1 DC-DC结构的论证与选择11.2 MOS管驱动电路的论证与选择11.3电压

5、采样电路的论证与选择11.4电流采样电路的论证与选择11.5控制系统的论证与选择21.6无线模块的论证与选择22.1 BUCK电路的分析22.1.1 占空比22.1.2 电感22.1.3 电容22.2 驱动电路的计算32.2.1 自举电容的选取32.2.2 自举二极管的选取32.3 电流采样电路的计算33电路与程序设计43.1电路的设计4系统总体框图4电源43.2程序的设计4程序功能描述与设计思路4程序流程图64测试方案与测试结果74.1测试方案74.2 测试条件与仪器84.3 测试结果及分析8测试结果(数据)8测试分析与结论8附录1:电路原理图9附录2:PCB图10附录3: 控制端源程序11

6、main.c11delay.c16adc.c17timer.c21usart3.c24hc05.c27附录4:APP端源程序27.word数字式直流开关稳压电源1系统方案本系统主要由DC-DC结构、MOS管驱动电路、电压采样电路、电流采样电路、控制系统、无线模块组成,下面分别论证这几个模块的选择。1.1 DC-DC结构的论证与选择方案一:半桥隔离式开关电源。半桥隔离式开关电源由两个开关管交替工作,相当于两个开关电源同时输出功率,因此其输出功率很大,当电源利用率比拟低,不宜用在工作电压较低的场合。另外,半桥电路的两个开关器件没有公共地,与驱动信号的连接比拟麻烦。方案二:BUCK同步整流降压斩波式

7、开关电源。BUCK电路是一种降压斩波器,属于非隔离式的开关电源,降压变换器输出电压平均值Uo总是小于输入电压Uin,通常电感中的电流是否连续,取决于开关频率、滤波电感L和电容C的数值。输出电压取决于占空比的大小,电路简单易于实现,。BUCK同步整流是在金典BUCK电路的根底上改良而来,用MOS管代替二极管续流,这样可以大大降低功率损耗。综合以上两种方案,选择方案二。1.2 MOS管驱动电路的论证与选择方案一:光耦隔离驱动。使用光耦进行隔离驱动是最常用的一种驱动方式,但是由于光耦工作频率很低,响应速度慢,而开关电源工作在较高频率,且要求响应速度快,所以我们不采用这种方案。方案二:变压器隔离驱动。

8、使用变压器隔离驱动虽然解决了光耦驱动的缺乏,但是绕制变压器非常复杂,如果制作不是很标准,就容易导致驱动波形失真,所以,我们不采取这种方案。方案三:驱动芯片驱动。由于BUCK同步整流的上管属于高端悬浮驱动,电压是浮动的,如果采用分立结构,这样就造成了电路结构复杂,所以我们选择使用驱动芯片,可以大大提升驱动稳定度,减小开关损耗,而且可以产生带死区时间的互补PWM波,与驱动信号隔离。综合以上三种方案,选择方案三。1.3电压采样电路的论证与选择 方案一:直接采样。由于使用电阻分压之后可以到达控制芯片的I/O上限电压以下,而且要求采样电路响应速度快,所以直接采样是最简单可靠的方法。1.4电流采样电路的论

9、证与选择方案一:使用电流采样芯片。TI的电流检测芯片INA282,是一款高精度、宽共模范围、双向电流并联监视器。不过电阻在大电流通过时发热造成阻值升高均会使结果出现误差。方案二:使用运算计放大器采样。LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。综合考虑电流采样选用LM358 芯片1.5控制系统的论证与选择方案一:STC89C52。传统的51单片机为8位单片机,价格廉价,控制简单,但是处理速度较慢,片内资源少,存储容量小,难以存储大体积的程序和快速计算。并且I/O口资源

10、偏少,扩展起来也较为麻烦。ADC精度达不到我们想要的结果。方案二:STM32F103。STM32F103系列微处理器是首款基于ARMv7-M体系结构的32位标准RISC(精简指令集)处理器,具有执行代码效率高,外设资源丰富等众多优点。该系列微处理器工作频率设定在72MHZ,具有执行代码效率高,外设资源丰富等众多优点。综合考虑采用STM32F103系列芯片1.6无线模块的论证与选择方案一:基于蓝牙传输的无线模块采用无线数据采集传输蓝牙模块,蓝牙模块具有功耗低,可靠性高和高平安性的优点,可以用作无线数据传输系统的数据收发端。2系统理论分析与计算2.1 BUCK电路的分析 占空比根据BUCK电路的特

11、性可以得出:Uo=D*Uin;我们可以计算得出,占空比D=Uo/Uin=60%。 电感通过buck电路结构和原理分析可以得到电感的计算公式为: 其中Dmax为Buck电路最大占空比,k:0.05 0.1,fs为开关管的开关频率,Imax为最大输出电流,Ui为输入电压。 电容而关于滤波电容的选择,电容需要滤掉主要的开关纹波,选择电容C足够大,以使开关频率时的电容值阻抗远小于负载阻抗R,因此几乎所有的电感电流纹波流经电容,而流经负载电阻阻抗R的纹波非常小,电容电流波形ic(t)等于电感电流波形去掉直流成分后的交流成分。输出滤波电容的选取决定了输出纹波电压,纹波电压与电容的等效的串联电阻ESR有关,

12、电容的纹波电流要大于电路中的纹波电流。这里选取两个470uf/35V的电容并联,这样就可以降低了等效的串联电阻。2.2 驱动电路的计算 自举电容的选取以下公式列出了自举电容应该提供的最小电荷要求:其中: Qg:高端器件栅极电荷 f: 工作频率Icbs(leak):自举电容漏电流Iqbs :高端驱动电路静态电流。 Qls:每个周期内,电平转换电路中的电荷要求500V/600V IC 为 5nc 1200V IC 为 20nc自举电容必须能够提供这些电荷,并且保持其电压。否那么 Vbs 将会有很大的电压纹波,并且可能会低于欠压值 Vbsuv,使高端无输出并停止工作。因此Cbs电容的电荷应是最小值的

13、二倍,最小电容值可以由下式计算:其中:Vf :自举二极管正向压降VLS:低端器件压降或高端负载压降由上式计算的 Cbs 电容值是最小的要求,由于自举电路的固有工作原理,低容值可能引起过充电,从而导致 IC 损坏。为了防止过充电和进一步减小Vbs纹波,由上式计算的容值应乘一个系数 15。2.2.2 自举二极管的选取在高端器件开通时,自举二极管必须能够阻止高压,并且应是快恢复二极管,以减小从自举电容向电源 Vcc 的回馈电荷。如果电容需要长期贮存电荷时,高温反向漏电流指标也很重要。二极管的额定电流值式1和工作频率的乘积得到。其中:二极管特性VRRM=功率端电压最大 trr = 100nsI F =

14、 Qbs f由上式计算得知,自举电容C=0.22uF,自举二极管选取快恢复二极管HER308。2.3 电流采样电路的计算采样电阻为0.02R,对于STM32的ADC采样来说,就算电流到达了2A,那么采集到康铜丝的电压才0.04V,ADC精度是达不到的,所以电流采集我们采用运放构成差动放大电路对采样信号进行放大, 然后通过软件来处理电压到电流的转换关系。3电路与程序设计3.1电路的设计系统总体框图系统总体框图如下图,BUCK同步整流UoutUin12VMOS管驱动电路采样电路控制系统电源3.3V3.3VSTM32控制电路电压、电流无线通信无线模块图 系统总体框图电源控制系统的电源是由LM2596

15、 DC-DC模块经过降压给STM32F103和蓝牙模块提供3.3V的电压,给驱动芯片提供12.0V的电压。3.2程序的设计程序功能描述与设计思路1、程序功能描述软件局部分为电源控制端和 APP端。控制端选用STM32F103系列控制芯片,控制端做好PWM、定时器、ADC、蓝牙等初始化后,等待 端APP通过蓝牙进行连接通讯。在 端发出开始工作命令后,开始ADC采样,一路ADC采集输出端电压,另两路ADC通过采集康铜丝两端电压做差后转化为输出端电流数据。通过PID控制算法将输出端电压Pv和设定电压Sv传入PID算法进行相应算法处理,最终来控制PWM输出占空比,从而到达动态调整和稳定电压的作用。AD

16、C采样,PID算法,PWM输出构成一个闭环控制系统。与此同时,通过定时器设定每500ms向APP发送一次数据,数据包含实时电压、电流、是否过载等信息。APP端也可动态调整输出电压和上限电流值。除了满足发挥局部一二项要求外,还额外增加了控制输出开关、上限电流设定和过流保护报警功能,一旦电流值超过上限电流,控制端自动关闭电压输出,APP端过流保护指示灯亮红灯,同时语音报警。APP端采用易语言进行编写,进行了美观大方的界面设计。1 控制端实现功能:动态调节电压和稳定电压,接收APP端命令,回传电流、电压、过载信息2 APP端:显示实时电压、电流、是否过流等信息,设定输出电压、上限电流,紧急关闭电压输

17、出和恢复输出功能2、程序设计思路1 控制端程序设计 ADC采样ADC采样使用STM32F103芯片内部自带的12位ADC,为了减小ADC的误差,在软件上使用了滤波算法并进行了ADC校准。滤波算法采用防脉冲干扰平均滤波算法,又称中位值平均滤波算法,其实际上相当于中位值滤波法与算数平均滤波法的融合,方法是连续采集N个数据,去掉一个最大值和最小值,然后计算N-2个数据的算数平均值。为了能够更加快速的找到N个数据的最大最小值,舍弃了常用的冒泡排序算法,采用快速排序算法,即通过一趟排序将要排序的数据分割成独立的两局部,其中一局部的所有数据都比另外一局部的所有数据都要小,然后再按此方法对这两局部数据分别进

18、行快速排序,整个排序过程可以递归进行,以此到达整个数据变成有序序列。 PID算法为了控制电压的精准舍弃了一般的算法而采用PID算法。PID算法是由比例算法P和积分算法I和微分算法D构成,比例算法反映的是当前状态的情况,也就是设定电压Sv与输出电压Pv的差值Ek=Sv-Pv,Pout=Kp*(Sv-Pv) ,Kp为比例系数,在本系统最正确比例系数Kp=0.2 。积分算法反映的是过去状态的情况,也就是所有设定电压与输出电压差值的和的情况,Iout=Kp*Ti*SEK 。微分算法反映的对未来情况的预测,即Dout=Kp*Td*DelEk(DelEk=Ek-Ek_1)考虑到当仅存在比例算法时假设调节到

19、达了预设值将会失去比例调节的作用,此时应该有其它的调节局部来弥补,故本系统最终采用的是比例加上积分及微分的算法模式,使三种算法优缺互补。 蓝牙通讯协议蓝牙采用HC-05,为了防止发送过程中信息的丧失或错误,对蓝牙通讯双方进行了简单的通讯协议规定,规定控制端向 APP端发送实时数据的协议为:引导码EF+引导码EE+电压信息+电流信息+是否过流+结束码FF。规定 端APP向控制端发送控制数据的协议为:引导码EF+引导码EE+控制命令+结束码FF 。2 端程序设计 端APP程序设计采用的是易语言,易语言同其他面向对象的高级语言如JAVA一致,在 端APP编程时都只需要对某一个对象,如按钮等进行这个对

20、象相应的编程控制即可,调用相应的API函数即可完成对蓝牙的控制。此处仅对蓝牙接收关键代码进行简要分析,蓝牙接收到数据后,首先判断发送过来的数据是否是完整的12位数据,假设是那么进行下一步验证,即提取数据中的前四位与EFEE进行比拟,最后两位与FF进行比拟,假设正确那么说明收到的数据完整那么调用解析数据的过程。此处附上 APP端蓝牙接收数据时对引导码解析的截图:程序流程图总体程序流程图 图3.2.1 程序流程图4测试方案与测试结果4.1测试方案1、硬件测试 焊好电路,确认电路连接无误,无虚焊,漏焊。2、软件仿真测试采用Proteus进行简单的功能仿真分析,检查设计的理论可行性,并采用keil进行

21、断点调试,确保程序逻辑正确。3、硬件软件联调、无法下载程序:检查时钟电路是否正常:晶振是否起振,起振电容是否正确。、某个芯片无法使用:首先检查硬件电路,其次检查程序逻辑,必要时可以采用示波器、逻辑分析仪等仪器抓取芯片引脚波形,然后进行分析处理。、后期界面优化、用户体验、容错处理等。4.2 测试条件与仪器测试条件:检查屡次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:高精度学生电源,高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表,指针式万用表,大功率负载。4.3 测试结果及分析测试结果(数据)6负载测试结果好下表所示: 单位:电压/V 电流/A

22、输入电压018.619.020.021.021.6输入电流0.011.471.381.321.261.21输出电压011.9811.9811.9811.9511.95输出电流01.981.922.031.991.98输出纹波mV0510510520534510测试分析与结论根据上述测试数据,输出电压误差在100mV之内,负载和电源变化时,电压不会有太大的波动,由此可以得出以下结论:1、输出电压误差很小,控制系统响应速度快。2、电源调整率和负载调整率得到很好的表现3、电源效率比预期要求要高。综上所述,本设计到达设计要求。.word附录1:电路原理图.word附录2:PCB图附录3: 控制端源程序

23、main.c#include delay.h#include adc.h#include timer.h#include string.h #include usart3.h#include hc05.h#includetypedef struct PID unsigned int Sv; unsigned int Pv; int Ek; int Ek_1; int DelEk; int SEK; float Kp; float Ti; float Td; int OUT; unsigned int OUTput; unsigned int Proutput; PID_Define; PID_

24、Define PID_Value; void PID_Init(void) PID_Value.Sv=2478; PID_Value.Ek_1=0; PID_Value.DelEk=0; PID_Value.SEK=0; PID_Value.Kp=0.2; PID_Value.Ti=0; PID_Value.Td=0; PID_Value.Proutput=2160; void PID_Caculate(void) PID_Value.Ek=PID_Value.Sv-PID_Value.Pv; PID_Value.SEK+=PID_Value.Ek; PID_Value.DelEk=PID_V

25、alue.Ek-PID_Value.Ek_1; if(PID_Value.Ek-15) if(PID_Value.Ek0) PID_Value.OUT=PID_Value.Proutput+2; else PID_Value.OUT=PID_Value.Proutput-2; if(PID_Value.OUT1170) PID_Value.OUTput=1170; else if(PID_Value.OUT25) PID_Value.OUTput=25; elsePID_Value.OUTput=PID_Value.OUT; else if(PID_Value.Ek-35) if(PID_Va

26、lue.Ek0) PID_Value.OUT=PID_Value.Proutput+20; else PID_Value.OUT=PID_Value.Proutput-20; if(PID_Value.OUT1170) PID_Value.OUTput=1170; else if(PID_Value.OUT1170) PID_Value.OUTput=1170; else if(PID_Value.OUTLOAD=nus*fac_us; /时间加载 SysTick-VAL=0x00; /清空计数器SysTick-CTRL|=SysTick_CTRL_ENABLE_Msk ;/开始倒数 dote

27、mp=SysTick-CTRL;while(temp&0x01)&!(temp&(1CTRL&=SysTick_CTRL_ENABLE_Msk;/关闭计数器SysTick-VAL =0X00; /清空计数器 void delay_ms(u16 nms) u32 temp; SysTick-LOAD=(u32)nms*fac_ms;/时间加载(SysTick-LOAD为24bit)SysTick-VAL =0x00;/清空计数器SysTick-CTRL|=SysTick_CTRL_ENABLE_Msk ;/开始倒数 dotemp=SysTick-CTRL;while(temp&0x01)&!(t

28、emp&(1CTRL&=SysTick_CTRL_ENABLE_Msk;/关闭计数器SysTick-VAL =0X00; /清空计数器 adc.c#include adc.h void Adc1_Init(void) ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1,ENABLE ); RCC_ADCCLKConfig(RCC_PCLK2_Div6); GPIO_InitSt

29、ructure.GPIO_Pin = GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOA, &GPIO_InitStructure);ADC_DeInit(ADC1); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;ADC_InitStructure.ADC_E

30、xternalTrigConv = ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel = 1;ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE);ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1);ADC_StartCalibration(ADC1); while(A

31、DC_GetCalibrationStatus(ADC1);void Adc2_Init(void) ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC2,ENABLE ); RCC_ADCCLKConfig(RCC_PCLK2_Div6); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode

32、 = GPIO_Mode_AIN;GPIO_Init(GPIOA, &GPIO_InitStructure);ADC_DeInit(ADC2); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;ADC_InitStruct

33、ure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel = 1;ADC_Init(ADC2, &ADC_InitStructure); ADC_Cmd(ADC2, ENABLE);ADC_ResetCalibration(ADC2); while(ADC_GetResetCalibrationStatus(ADC2);ADC_StartCalibration(ADC2); while(ADC_GetCalibrationStatus(ADC2); void Adc3_Init(void) ADC_In

34、itTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC3,ENABLE ); RCC_ADCCLKConfig(RCC_PCLK2_Div6); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOA, &GPIO_InitStructure);AD

35、C_DeInit(ADC3); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure

36、.ADC_NbrOfChannel = 1;ADC_Init(ADC3, &ADC_InitStructure); ADC_Cmd(ADC3, ENABLE);ADC_ResetCalibration(ADC3); while(ADC_GetResetCalibrationStatus(ADC3);ADC_StartCalibration(ADC3); while(ADC_GetCalibrationStatus(ADC3);u16 Get_Adc1(u8 ch) ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 )

37、; ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC );return ADC_GetConversionValue(ADC1);u16 Get_Adc2(u8 ch) ADC_RegularChannelConfig(ADC2, ch, 1, ADC_SampleTime_239Cycles5 ); ADC_SoftwareStartConvCmd(ADC2, ENABLE); while(!ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC );ret

38、urn ADC_GetConversionValue(ADC2);u16 Get_Adc3(u8 ch) ADC_RegularChannelConfig(ADC3, ch, 1, ADC_SampleTime_239Cycles5 ); ADC_SoftwareStartConvCmd(ADC3, ENABLE); while(!ADC_GetFlagStatus(ADC3, ADC_FLAG_EOC );return ADC_GetConversionValue(ADC3);void quickSort(int s, int l, int r)if (l r)int i = l, j =

39、r, x = sl;while (i j)while (i = x) / 从右向左找第一个小于x的数 j-;if (i j)si+ = sj;while (i j & si x) / 从左向右找第一个大于等于x的数 i+;if (i j)sj- = si;si = x;quickSort(s, l, i - 1); / 递归调用 quickSort(s, i + 1, r);u16 Get_Adc1_Average(u8 ch) int adc10;u8 t;for(t=0;t10;t+)adct=Get_Adc1(ch);quickSort(adc,0,9);return (adc2+adc

40、3+adc4+adc5+adc6+adc7)/6; u16 Get_Adc2_Average(u8 ch) int adc10;u8 t;for(t=0;t10;t+)adct=Get_Adc2(ch);quickSort(adc,0,9);return (adc2+adc3+adc4+adc5+adc6+adc7)/6; u16 Get_Adc3_Average(u8 ch) int adc10;u8 t;for(t=0;t10;t+)adct=Get_Adc3(ch);quickSort(adc,0,9);return (adc2+adc3+adc4+adc5+adc6+adc7)/6; timer.c#include timer.hunsigned char flag=0;void TIM1_PWM_Init(u16 arr,u16 psc) GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论