车式移动机器人系统的轨迹跟踪控制毕业作品.docx

上传人:b****3 文档编号:11679400 上传时间:2023-06-02 格式:DOCX 页数:33 大小:233.43KB
下载 相关 举报
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第1页
第1页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第2页
第2页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第3页
第3页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第4页
第4页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第5页
第5页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第6页
第6页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第7页
第7页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第8页
第8页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第9页
第9页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第10页
第10页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第11页
第11页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第12页
第12页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第13页
第13页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第14页
第14页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第15页
第15页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第16页
第16页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第17页
第17页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第18页
第18页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第19页
第19页 / 共33页
车式移动机器人系统的轨迹跟踪控制毕业作品.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

车式移动机器人系统的轨迹跟踪控制毕业作品.docx

《车式移动机器人系统的轨迹跟踪控制毕业作品.docx》由会员分享,可在线阅读,更多相关《车式移动机器人系统的轨迹跟踪控制毕业作品.docx(33页珍藏版)》请在冰点文库上搜索。

车式移动机器人系统的轨迹跟踪控制毕业作品.docx

车式移动机器人系统的轨迹跟踪控制毕业作品

毕-设

业-计

(20届)

车式移动机器人系统的轨迹跟踪控制

 

所在学院

专业班级电气工程及其自动化

学生姓名学号

指导教师职称

完成日期年月

摘要

【摘要】近年来,机器人的应用越来越广泛,从原来单一的制造业,逐渐拓展到像医疗、家务、娱乐等非制造业和服务行业。

它的出现有力的推动了科技的进步和社会经济的发展,带给人们巨大的经济财富。

机器人技术是在新技术革命中迅速发展起来的一门新兴学科,是人类最伟大的发明之一,其研究一直是国内外极为重视的高技术领域,各国的研究机构已经根据需要研制出多种不同用途的机器人。

移动机器人是机器人学中的一个重要分支,具有重要的军用和民用价值。

本文首先研究了车式移动机器人的运动学模型,建立了机器人的运动学模型。

然后根据其模型,提出了机器人自适应轨迹跟踪控制方法。

比较了现阶段常用的几种用于机器人轨迹跟踪控制的方法。

最后选用了滑模轨迹跟踪控制,并用反步法(Backstepping)设计控制器。

采用MATLAB软件对圆形和直线两种线路分别进行仿真。

给出了仿真结果。

【关键词】车式移动机器人;轨迹跟踪;反步法(Backstepping);滑模控制。

 

Abstract

【ABSTRACT】Inrecentyears,Robotusedmorewidely,Fromtheoriginalsinglemanufacturing,Graduallyexpandtolikemedical,housework,entertainment,andthemanufacturingandserviceindustries.Theemergenceofthepowerfulpromotedtheprogressofscienceandtechnologyandthedevelopmentofsocialeconomy,bringhugeeconomicwealthtopeople.Robotictechnologyisrapidlyinnewtechnologyrevolutiondevelopedanewsubject,isoneofthegreatestinventionsinhumanbeings.Theresearchhasbeenagreatimportanceathomeandabroad,thehightechnologyfields,nationalresearchinstitutionshavedevelopedaccordingtotheneedofdifferentusesofrobot.Mobilerobotisanimportantbranchoftherobotics,havingimportantmilitaryandcivilianvalue.

Thispaperfirststudiedcartypemobilerobotkinematicsmodel,thenestablishingtherobot’skinematicsmodel.Thenaccordingtothemodel,putingforwardrobotadaptivetrajectorytrackingcontrolmethod.Comparethepresentseveraldifferentmethodsforrobottrajectorytrackingcontrol.Finallychoosetheslidingmodetrajectorytrackingcontrol,andusetheBackteppingtodesignthecontroller.

BasedonMATLABsoftwareofcircularandlineartwocircuitsimulationrespectively.Givingthesimulationresults.

【KEYWORDS】Car-likemobilerobot;Trajectorytracking;Backstepping;slidingmodecontrol。

 

目 录

1绪论

1.1引言

近年来,机器人的应用越来越广泛,从原来单一的制造业,逐渐拓展到像医疗、家务、娱乐等非制造业和服务行业[1]。

它的出现有力的推动了科技的进步和社会经济的发展,带给人们巨大的经济财富。

机器人技术是在新技术革命中迅速发展起来的一门新兴学科,是人类最伟大的发明之一,其研究一直是国内外极为重视的高技术领域,各国的研究机构已经根据需要研制出多种不同用途的机器人。

在自动化生产、工农业生产、危险环境作业等方面,具有自主感知、决策和执行能力的移动机器人有着人类无可比拟的优势。

由于机器人在不断发展和其具有的模糊性,各界对机器人的定义一直是见仁见智的。

一般的定义是:

移动机器人是一种在复杂环境下工作的,具有自行组织、自主运行、自主规划的融合了计算机技术、信息技术、通信技术、微电子技术等的智能机器系统。

1988年法国的埃斯皮奥则将机器人定义为:

“机器人学是指设计能根据传感器信息实现预先规划好的作业系统,并以此系统的使用方祛作为研究对象”[2]。

众所周知,移动机器人是一个及其复杂的综合智能系统。

它包括了环境感知、决策自定义、决策执行等诸多功能。

而对于自主式移动机器人来说运动控制是最基本也是必须实现的底层功能,是移动机器人实现其他高级功能的基础。

由于移动机器人是一个非完整的系统,也就是说系统中具有不可积分的高级方程,因此它成为了一个十分艰巨和棘手的课题,业界专家学者花费大量人力物力进行研究。

1.2非完整移动机器人的运动控制问题

非完整移动机器人是近年来日益受到国内外专家关注的课题,相关的研究也在不断开展之中。

通常在机器人的整个运动过程中,要考虑许多因素,譬如环境温度,湿度,地理地形等。

像这样的要考虑外界一些限制因素的系统,通常被称为受限系统。

这些约束条件一般都可以表示为广义坐标中位移、速度及加速度之间的关系,它们又可分为完整约束和非完整约束两类。

如果受控对象只有空间位置受到限制,或者空间位置和速度同时受到限制但是经过积分等手段后仍可转化为只对空间位置的约束,这样的系统我们称为完整约束系统。

由于可以从约束条件中通过积分或线性变换等方法解出有限个状态变量,从而可将原受限系统转化为一个低维系统,所以此类系统的分析与综合问题与无约束系统相比而言要简单许多,对其的研究已有重大突破并取得了很好的实际应用效果。

而如果同时对空间位置和运动速度有限制的系统,则称为非完整约束系统,这样的系统我们无法通过积分等手段使系统只对受控对象的空间位置进行限制。

具有非完整约束的系统也被称为非完整系统。

这类非完整系统,由于存在不可积分的高阶方程,且不能对其进行任何降维变换,就使得该类系统非常复杂,一些在非线性控制中比较有效的方法用在这里得不到让人满意的结果,这样一来让非完整系统显得十分棘手和难以处理。

另一方面,由于非完整性移动机器人具有其它类型机器人不能比拟的良好的机动性,可靠性和灵活性,而且这类机器人允许某些关节可以无驱动,使其可以大大降低生产成本、重量和能耗值,因此非完整性移动机器人近年来受到了的广泛的关注。

1.3移动机器人的轨迹跟踪控制方法分类

机器人运动控制的一个极其重要的方面就是移动机器人轨迹跟踪控制,当要求机器人在一个特定的时间达到一个特定点时,必须采用轨迹跟踪控制。

在轨迹跟踪控制中,移动机器人要求跟踪的期望轨迹是以时间关系曲线给出的。

过去多年对移动机器人的研究不断深入,到现阶段可以用于实际应用的方法大致有后面介绍的几种。

1.4移动机器人轨迹跟踪控制方法简介

(1)计算力矩方法

这种方法虽然会考虑到各种因素,包括所建模型自身的不确定因素,但是其效果取决于它所依据的动力学模型的精度。

而事实上即使外界没有干扰,要建立非完整移动机器人的精确的动力学建模是非常困难的,而且在实际应用中该方法的鲁棒性较差。

该方法一般不在实际应用中考虑。

(2)自适应控制方法

自适应控制和常规的反馈控制和最优控制一样,也是一种基于数学模型的控制方法,当受控对象的参数发生变化时,自适应控制能修正系统的特性以适应对象和扰动的动态特性的变化。

该方法可以借鉴的经验只是比较少。

其优点是计算比较简单,对于系统具有良好的鲁棒性能。

该方法比较明显的缺点是比起其他常规控制方法过于复杂,且成本高昂,所以一般只有在常规控制方法不能满足性能要求时才会考虑。

此外,当系统自身带有不确定因素时,自适应控制很难保证系统的稳定性。

(3)非线性状态反馈方法

所谓非线性控制系统是指状态变量和输出变量相对于输入变量的运动特性不能用线性关系描述的控制系统。

该方法是基于非完整移动机器人运动学模型,为此我们需要设计一个闭环系统,其中必须有非线性状态反馈控制律。

前面所指的“状态”可以理解为移动机器人在系统方程中的“状态向量”。

我们可以用移动机器人的实际位置与期望位置之间的位置误差来表示该“状态向量”。

这种方法一个最大的显而易见的缺点是无法使整个系统在原点处处于平衡状态。

特别说明,该方法不能用于移动机器人的直线轨迹跟踪控制,因为该方法要求预设角速度不能为0。

(4)滑模控制方法

该方法本质上是一种特殊的非线性控制,且多表现为不连续控制。

该方法与其他控制方法最大的不同之处在于可以使系统不处于一个“固定”的状态,换言之,系统处在一个动态过程中。

该方法的原理,根据期望得到的动态特性设计一个切换超平面,再设计一个滑动模态控制器使整个系统实现从超平面之外向切换超平面收束。

一旦整个系统到达了切换超平面,这种控制作用将保证系统沿切换超平面到达系统原点,这个过程我们称之为滑模控制。

该方法具有良好的控制效果,能克服系统带有的不确定性。

特别是对于干扰和没有建模的系统具有很好的鲁棒性能(鲁棒性是指控制系统在某种类型的扰动作用下,包括自身模型的扰动下,系统某个性能指标保持不变的能力)。

该方法的缺点是会使系统出现“抖振”现象,可能导致得到的实际效果不能尽如人意。

(5)反步控制方法

该方法的基本思想是将复杂的非线性系统分解成不超过系统阶数的子系统,并且以一种递归的方式为每个子系统设计构造出Lyapunovi函数,最后推导出可以使整个闭环系统呈Lyapunov稳定的控制律的设计方法[3]。

当不确定非线性系统可状态线性化,或者具有严参数反馈时,可以考虑用该中方法。

(6)智能控制方法

上述几种方法几乎都要为机器人建立各种模型,而该种控制方法则不需要进行建模,这就摆脱了线性局限,是一种研究移动机器人轨迹跟踪的新手段,有良好的应用前景和研究价值。

1.5移动机器人发展动向和趋势

所有对于移动机器人的轨迹跟踪控制研究到最后都是为了服务于现实,也就是让其能够在实际的机器人平台上得到实现,能有预期的效果。

在设计可行的控制律的同时,人们总是希望还能兼有下面的特性:

(a)光滑性:

最好让控制对象的控制参数以一种平滑的方式渐变,以延长工作寿命降低损耗;(b)实时性:

系统能速度做出相应的同时占用最少的资源;(c)鲁棒性:

在外界突发变故,或突加干扰时,可不改变系统自身的参数设定而让系统继续保持稳定;(d)稳定性:

整个系统可以在原点处达到一种渐近稳定;(e)通用性:

可以在不同的机器人平台上运行;(f)可行性:

不管是软件编程还是硬件设计到最后都能在实际的机器人平台上运行。

移动机器人的运动学模型在和动力学模型相比时,有一个明显的优点:

模型非常简单,没有不确定项。

此外还有一个显而易见的优点是,在建立运动学模型时已经考虑了非完整约束条件,所以再设计控制律时就可以不考虑非完整约束条件了。

综上所述,运用智能控制方法进行移动机器人轨迹跟踪控制理论研究会是未来几年主流的研究方法。

其目的不言而喻,就是要在移动机器人系统的稳定性,抗干扰能力,光滑性等方面实现突破。

在实际应用方面,还是会基于非完整移动机器人运动学模型进行研究,以状态反馈控制方法为主流研究方法,同时在机器人系统的稳定性、鲁棒性、光滑性等方面寻求改善,以确保整个系统的可行性、通用性和实时性。

2

Matlab软件及Simulink简介

2.1Matlab语言特点

MATLAB最明显的也是最突出的优点就是“简洁”。

它更直观,也更符合人们思维习惯,完全不像C语言或者FORTRAN编程起来冗长繁琐。

MATLAB的编程环境简洁清爽,用户一目了然。

下面简单介绍一下MATLAB的特点。

①MATLAB不像C有诸多语言限制,用户自由发挥余地较C大许多。

②MATLAB程序有很好的移植性,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

③MATLAB有C++面向对象的特性,也具有结构化的控制语句,如for循环、while循环、break语句和if语句。

④库函数丰富,语言简单易懂。

MATLAB的程序书写相比C或FORTRAN来说是最随意的,可以利用丰富的库函数避开可能要自己书写的繁琐的方程程序。

而且MATLAB的库函数都由专家编写,用户完全不用担心其中的函数会出现错误。

从这个意义上说,用MATLAB进行科技开发是站在专家的肩膀上。

⑤运算符丰富。

MATLAB与C语言异曲同工,所以C语言中的运算符在MATLAB中都可以找到,如果能够很好的利用这些运算符,会大大简化用户的编程量。

具体运算符见附表。

⑥MATLAB具有C语言或FORTRAN不可比拟的强大的图形功能,数据的图形化变得简单。

MATLAB还具有较强的编辑图形界面的能力。

⑦MATLAB语言有较强的开放性。

除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。

⑧MATLAB具有功能强大的工具箱。

MATLAB包含两个部分:

核心部分和各种可选的工具箱。

核心部分中有数百个核心内部函数。

其工具箱又可分为两类:

功能性工具箱和学科性工具箱。

功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能[4]。

⑨MATLAB也有其缺点,其程序执行速度较慢。

2.1.1Matlab基本功能

MATLAB提供的基本算术运算有:

加(+)、减(-)、乘(*)、除(/)、幂次方(^)。

MATLAB的关系和逻辑运算符与其他软件基本相同,仅列表加以说明:

表2-1Matlab基本运算符

符号

功能

符号

功能

=

赋值运算

&

逻辑与运算

==

关系运算,相等

|

逻辑或运算

<>

不等于

-

逻辑非运算

<

小于

xor

逻辑异或运算

<=

小于等于

……

续行标志

>

大于

分行符,结果不显示

>=

大于等于

分行符,结果显示

%

注释标志

矩阵转置

.’

向量转量

MATLAB可以将计算结果以不同的精度输出,列表说明如下:

表2-2MATLAB输出结果精度定义

命令

说明

formatshort

默认显示,保留小数点后4位

formatlong

有效数字16位

formatlonge

有效数字16位加3位指数

formatshorte

有效数字5位加3位指数

formatbank

保留两位小数位

format+

只给出正、负

formatrational

以分数形式表示

formathex

16进制数

formatlongg

15位有效数

formatshortg

5位有效数

MATLAB对使用变量名称的规定:

(1)变量名称的英文大小写是有区别的(apple、Apple、AppLe三个变量不同)。

(2)变量的长度上限为19个字母。

(3)变量名的第一个字母必须是英文,随后可以掺杂英文字、数字或是下划线。

下表给出MATLAB所定义的特殊变量及其意义:

表2-3MATLAB定义的特殊变量及其意义

变量名

意义

help

在线帮助,如helpquit

who

列出所有定义过的变量名称

ans

默认的用来表示计算结果的变量名

eps

极小值=2.2204e-16

pi

π值

inf

无穷大的数∞

nan

非数值

1、友好的工作平台和编程环境

MATLAB提供用户丰富的库函数和各种文件,多采用的是图形用户界面。

譬如MATLAB命令窗口、编辑器、文件浏览器等。

MATLAB随着发展的深入,其界面也越来越精致,更加接近Windows的标准界面,使其有了更强的人机交互能力,操作界面越来越简洁。

虽然MATLAB的编程环境简洁无比,但是它同时具有完备的调试系统,用户编写完程序无需编译,而可以直接运行。

MATLAB会及时反馈用户编写的程序错误之处,告知用户错误的原因。

2、程序语言简单易用

MATLAB和C语言既有不同之处,也有相似之处,它也是面向对象的。

用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

现在开发的新版本MATLAB和C++相比有过之而无不及,更符合用户编程习惯,有更强的移植性,所以让它受到越来越多尖端科技人才的青睐。

在尖端领域的应用也越来越广泛。

3、超强的数据处理能力

Matlab拥有十分丰富的运算公式和函数。

而且这些函数都是业界专家花费大量心血编写和改进的,确保其正确率。

在一般的情况下,如果能用C或C++程序完成的功能,用MATLAB也能完成,而且相比前两者MATLAB程序更为简单明了,可以大大降低用户工作量。

Matlab的库函数包括范围及其广泛,从基本到复杂的都有,可以满足普通用户和专业人士的要求。

这些函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等[11]。

4、具有优势的图形处理能力

在MATLAB开发之初,开发者就提供了将向量和矩阵图形化的功能,这使得MATLAB有简单易用的数据可视化功能。

对于这些图形,MATLAB也提供标注或者打印之类的功能。

MATLAB对于专业人士也特意提供了高级图形的设计和可视化,譬如二维乃至三维图形的可视化,表达式的作图等。

这样一来,MATLAB不仅可满足普通用户的一般需求,也可以让其在专业领域内大展拳脚,譬如工业工程。

最近开发的MATLAB对于图形可视化做了很大改进,使其具有了更多其他软件不能提供的新功能(例如图形的光照处理、色度处理以及四维数据的表现等)。

为了同时满足普通用户和层次较高的用户的需求,MATLAB开发者特意编写相应的库函数,让此软件可以处理一些特殊的图形可视化要求对一些特殊的可视化要求,例如图形对话。

5、功能强大的模块集合工具箱

MATLAB在许多领域内都有专门的工具箱。

而且此类工具箱都是有专业人士编写的,用户无需担心函数出错。

因此这让MATLAB在各个领域内都有很广泛的应用。

2.2Simulink工具简介

SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。

所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。

2.2.1Simulink模块库介绍

SIMILINK模块库按功能进行分为以下8类子库:

Continuous(连续模块)

Discrete(离散模块)

Function&Tables(函数和平台模块)

Math(数学模块)

Nonlinear(非线性模块)

Signals&Systems(信号和系统模块)

Sinks(接收器模块)

Sources(输入源模块)

功能模块的基本操作,包括模块的移动、复制、删除、转向、改变大小、模块命名、颜色设定、参数设定、属性设定、模块输入输出信号等[6]。

模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。

在模型窗口中,选中模块,则其4个角会出现黑色标记。

此时可以对模块进行以下的基本操作。

1、移动:

选中模块,按住鼠标左键将其拖曳到所需的位置即可。

若要脱离线而移动,可按住shift键,再进行拖曳。

2、复制:

选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。

3、删除:

选中模块,按Delete键即可。

若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。

也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除

4、转向:

为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。

在菜单Format中选择FlipBlock旋转180度,选择RotateBlock顺时针旋转90度。

或者直接按Ctrl+F键执行FlipBlock,按Ctrl+R键执行RotateBlock。

5、改变大小:

选中模块,对模块出现的4个黑色标记进行拖曳即可。

6、模块命名:

先用鼠标在需要更改的名称上单击一下,然后直接更改即可。

名称在功能模块上的位置也可以变换180度,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。

HideName可以隐藏模块名称。

7、颜色设定:

Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。

8、参数设定:

用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。

参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。

通过对模块的参数设定,就可以获得需要的功能模块。

9、属性设定:

选中模块,打开Edit菜单的BlockProperties可以对模块进行属性设定。

包括Description属性、Priority优先级属性、Tag属性、Openfunction属性、Attributesformatstring属性。

其中Openfunction属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。

10、模块的输入输出信号:

模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。

缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。

某些模块通过对参数的设定,可以使模块输出向量信号。

3滑模变结构控制简介

3.1滑模变结构控制

滑模控制(slidingmodecontrol,SMC)也叫变结构控制,从本质上来说也是一种特殊的非线性控制。

与其他控制方法相比此方法最大的特点是它所组成的系统不“固定”,而总是保持一种动态过程。

因为滑动模块的设计与

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2