




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安电子科技大学 机器人避障控制目 录摘要.3 前言.4第一章 模糊逻辑.5 1-1 模糊逻辑概念5 1-2 模糊逻辑的特点6第二章 机器人避障控制的原理8第三章 开发工具V basic语言介绍15 3-1 Visual Basic 的发展.15 3-2 什么是Visual Basic.15 3-3 Visual Basic 的特点.163-4 Visual Basic的软硬件配置.193-5 Visual Basic设计平台.193-5-1 事件驱动.213-5-2 过程驱动.223-6 循环语句.22 3-6-1 计数循环For.Next.22 3-6-2 Whilewend.233-6-
2、3 条件式循环.243-6-3-1 前测试循环.243-6-3-2 后测试循环.253-6-4 嵌套循环.273-7 子程序与函数.273-7-1 子程序.273-7-2 过程.283-7-2-1 子程序.283-7-2-2 Function过程.293-7-2-3 Call语句.293-7-3 子程序的调用与参数传递.30- 1 -西安电子科技大学 机器人避障控制3-7-4 内置函数.303-7-4-1 数学函数.303-7-4-2 整数函数.303-7-4-3 处理字符串函数.313-7-4-4 类型转换函数.323-7-4-5 日期和时间函数.323-7-4-6 随机数函数.333-7-
3、5 传值调用与传址调用.333-7-5-1 传值调用.333-7-5-2 传址调用.343-7-5-3 On Error语句343-7-5-3-1 On Error GoTo.343-7-5-3-2 On Error Resume35第四章 设计过程.36结束语致谢参考文献- 2 -西安电子科技大学 机器人避障控制摘 要本设计是一个关于机器人避障控制程序的设计。介绍了模糊控制理论中基于行为分类的模糊控制器的设计方法,这是整个控制过程的重要思想。这种方法成功地解决了机器人在未知复杂环境中的导航能力。包括三个重要的原则:避障及弯曲和狭窄道路上减速行为。边沿跟踪行为。目标导向行为。该程序运用V ba
4、sic语言,充分利用了其类的方便性和易用性。利用V basic的图形用户界面设计的功能对整个控制过程进行了仿真。机器人能够成功地避开各种障碍物并且选择最佳路径到达目的地,达到了预期的目的。AbstractThis design describes a program about robots avoiding obstacle control. It introduces the measures of fuzzy controller based on behavior-classification in fuzzy control theory, and this is the idea
5、of the whole control process. This measure successfully solves the navigation ability of robots in unknown environment and it includes three important principles:avoiding obstacle and deceleration on the crooked and narrow roadedge tracking behaviortarget-oriented behaviorThis program uses V basic l
6、anguage and takes full advantage of its convenience and easily using. We imitate the whole control process by using the function designed for GUI of V basic. Robots can successfully avoid all kinds of obstacles and select the best path to get to the destination. This achieves the anticipated purpose
7、.- 3 -西安电子科技大学 机器人避障控制前 言基于解析模型的控制方法有着较长的发展历史,经过许多学者不懈努力已经建立了一套完善的理论体系,并且非常成功地解决了许多问题。但是,当人们将这种控制方法应用于具有非线形动力学特征的复杂系统时,受到了严峻的挑战。特别是,面对无法精确解析建模的物理现象和信息不足的病态过程,基于解析模型的控制理论更是束手无策。这就迫使人们去寻找新的控制方法和途径去解决这类问题,在这样一个背景下诞生了基于模糊控制逻辑的控制方法,并且今天它已经成长为最活跃和最为有效的一种智能控制技术。模糊逻辑基于人类的模糊思维这一抽象机理,它描述的是与人类的思维方式相关的宏观过程。将模糊逻
8、辑与工程控制相结合,而使工程控制得到了人类思维一样的控制过程和特性,所以模糊控制是一种智能控制。模糊控制是模糊逻辑应用的最多也是最广泛的一个领域。模糊控制器是一种非线形的控制器,它的控制规则是以条件语句来描述的,符合人类的思维方式,因此很直观,易于理解。自20世纪60年代模糊数学建立以来,由于生产和科学研究的飞速发展,以及微机控制的日益普及,模糊逻辑控制理论和方法被不断的完善和发展,并日益受到人们的重视,越来越显示出它无限的生命力和广阔的应用前景,它已经渗透到生产,管理,商业,军事,决策等各个领域,各种应用模糊逻辑的商品也出现在市场上,如模糊控制洗衣机,热水器等。因此,特选取机器人的避障控制此
9、课题进行毕业设计,借此学习模糊逻辑控制的设计方法,了解当今模糊控制的最新趋势。本篇的论文的理论模型设计和编写完成,均得到薄华老师的悉心指导和帮助,遇到困难也在她的指点下得到解决。在此,特别感谢薄华老师。由于作者的水平有限,本文难免存在缺点和错误,殷切期望各位老师批评指正。- 4 -西安电子科技大学 机器人避障控制第一章 模糊逻辑1-1 模糊逻辑概念什么是模糊逻辑呢?模糊逻辑是一种简单的将一空间的输入映射到另一空间的输出的一种规则。这种映射关系是模糊逻辑其他应用的基础和起点。模糊性反映事物的不确定性。它是以一种严密的数学框架来处理人类那些具有模糊特性的概念,如:很多,很少,热与冷。模糊逻辑通常是
10、利用模糊集合论来描述。什么是模糊集合呢?在以布尔逻辑(二进制逻辑)为基础的传统集合论中,一个特定的研究对象对于一个给定集合来说只有两种可能,即:或者属于这个集合或者不属于。与布尔逻辑相反,在模糊集合论中一个特定的研究对象在一个给定的集合中有一个隶属度,而这个隶属度是介于0(完全不属于这个集合)和1(完全属于这个集合)之间的函数值。显然,模糊逻辑能以一种更接近自然的方式来处理人类那些具有模糊特征的概念。例如:按照布尔逻辑像“张三是高个子”这条语句仅是“对”(TRUE)和“错”(FALSE)这两种结果之一。相反,模糊逻辑将通过“张三是个高个子”这条语句将给“张三”在高个子人这个集合中赋予一个隶属度
11、,如:0.7。在基于模糊逻辑的模糊控制中,一个重要的概念是语言变量。一个语言变量的重要特征是这种变量的值用一个或多个词或句子来表达而不是用一个数字来表达。以“温度”语言变量为例,T(水温)=冷,适中,热,稍微热,稍微冷,很热,很冷。此处每个语言变量值,如冷,适中,热等都是定义在论域U=0,100。按照习惯可认为低于15为“冷”,36左右为“适中”,大于50为“热”。具体的这些模糊逻辑语言变量值的定义是由研究人员自行按照合理的原则来决定的。上述语言变量的定义中在基本的模糊语言“冷”、“热”前面加上了语言的含义,相应的其隶属度函数将发生变化但有存在一定的联系,这种关系就是语义规则研究的内容。模糊集
12、合的同义词是隶属度函数。因为模糊子集中元素的隶属性没有明确的边界。所以人们也将问题论域中的元素与他们在模糊子集中相应隶属度之间的映射关系称之为隶属度函数,当一个数值是清晰值时,它的隶属度就是模糊子集的隶属度函数在该清晰值的值。模糊逻辑中常用的另一个重要的概念是产生式规则即“如果-则”规则又称 - 5 -西安电子科技大学 机器人避障控制 “if-then”规则。前面介绍的模糊集合等是模糊逻辑的主体,而“如果-则”规则则是包含这些模糊逻辑的条件陈述语句。一个最简单的规则具有如下的形式:if x is A then y is B(如果x是A,则y是B)其中A和B分别定义在论域X和Y上的模糊语言变量。
13、规则的“如果部分”被称作前提部分,“那么部分”被称作结论部分。在MIMO的模糊逻辑系统中,常常可能会有很多条规则,而且这些规则的前提部分和结论部分也可以是由许多部分组成。上面所列的“if-then”规则只是最简单的形式,是最基本的模糊系统单元,对于复杂的模糊推理系统,可以用连接词“and”、“or”和“also”连接一系列规则的多个输入和多个输出,“also”用来连接多条不同的模糊规则。那么在模糊控制中是如何完成这些产生式规则的运算呢?这将是我们下面要介绍的模糊控制中的另一个重要概念:模糊逻辑推理。在建立了模糊集合和输入输出语言变量,并构造完成模糊规则之后,就可以执行模糊推理计算了。模糊推理方
14、法有很多种,其中较为常用的是Mamdani模糊推理算法和对于输出为精确量的一类特殊模糊逻辑系统Takagi-Sugeno模糊推理系统,采用了将模糊推理去模糊化结合的运算算法。本文所建立的模糊系统中的模糊控制器采用的则是建立在第二种系统上的ANFIS系统。1-2 模糊逻辑的特点模糊逻辑强调的重点是简单和方便,这也是模糊逻辑被广泛应用的原因。 随着社会的进步和科学技术的发展,人们逐渐发现,现有的精确理论在解决一些问题时往往会显得烦琐和束手无策,原因主要有以下三点: 精确理论一般需要用数学微分方程来描述自然科学的某些基本规律或系统,但实际中有的系统所涉及的因素有很多,而每个因素之间还存在着偶合的关系
15、;同时,系统多处的条件也千变万化,要用微分方程来描述这种系统,要么根本无法实现,要么要设定大量的约束条件,最终无法取得结果。 有的学科,例如语言学、心理学、文学、生物学和社会科学,过去是极少采用数学方法去解决问题的,往往是采用文字方法进行定性的推理或估计。现在人们对这些学科的准确性提出了更高的要求,因此,在这些学科中解决问题就需要定量化和数学化,而这些学科- 6 -西安电子科技大学 机器人避障控制中的大多数问题都具有模糊性,比如,语言的“幽默”与“流畅”,心理的“正常”与“不平衡”,文学作品的“通俗”与“严肃”等,都是模糊的概念。很明显,用传统的精确理论是无法对这些学科进行数学化和定量分析的。
16、 人的本身就具有精确和模糊两种特性。对于各种计算,人的思维是具有精确性的,而对于各种事物的识别、归纳、推理、学习、经验就具有模糊性。控制论的创始人维纳在指出人能超过任何最完善的机器时,明确指明起重要原因是“人具有运用模糊概念的能力”。实际上,人运用模糊概念的时间占了生活的大部分,对这些具有模糊概念和性质的问题采用精确数学的方法是无法恰当解决的。上述这些也就是模糊逻辑立足于解决的问题。相对于精确逻辑,模糊逻辑在工程应用上还具有如下特点: 模糊逻辑是柔性的。对于给定的系统,很容易处理以及直接增加新的功能,而不需要从头做起。 模糊逻辑建立在自然语言的基础上,对数据的精确性要求不高。模糊逻辑几建立在人
17、类交流的基础上,针对数据的不精确性所提出的一种方法。系统的数据主要来自语言描述的知识,而不确定性是语言信息的重要特点。 模糊逻辑能充分利用专家信息。相比于神经网络,模糊逻辑建立在已经熟悉相关系统的专家基础上,能够充分利用现有的专家知识。 模糊逻辑易于与传统的控制技术相结合。模糊系统不需要替代传统的控制方法,在很多情况下,只是在原有的控制方法上作简单的修改。- 7 -西安电子科技大学 机器人避障控制第二章 机器人避障控制的原理基于行为分类的模糊控制器的设计方法,这里将模糊逻辑和行为控制的思想相结合,为移动机器人在未知环境中导航这一难题提出了新方法。移动机器人的一个关键的问题是提高它在未知和复杂环
18、境中的导航能力。为了保证机器人与未知障碍物不相碰撞而达到目标,必须利用传感器来获取现实世界的信息。显然,利用这类信息很难建立一个精确而完整的环境模型来实时规划机器人的非碰撞路径。基于生理学的反射行为,“感识-动作”行为控制被用来实现机器人的导航。例如,机器人的漫游行为可以用如下两个简单的“感识-动作”来描述:如果障碍物在机器人的左侧,机器人向右拐;如果障碍物在机器人的右侧,机器人向左拐。因为这一方法不需要建立一个完整的环境模型复杂的推理过程,所以它适宜于机器人在动态环境中导航。然而在实际应用中,必须补充更多的“感识-动作”行为使机器人完成复杂的操作,所以该方法的关键问题之一是如何有效地协调多个
19、“感识-动作”行为之间的冲突与竞争。Brooks教授利用定义行为优先级的策略来进行多个行为之间的协调。但是,当机器人在复杂环境中操作时这一策略不十分有效。图6.31中的例子说明:机器人必须根据局部的环境信息来有效地融合如避障、边沿跟踪和目标导向这些多个“感识-动作”行为,以至于它能够达到U型物体内的目标。实现“感识-动作”行为的一般方法时人工势场法。人工势场法的重要缺点是:针对不同的行为,如:避障、漫游和目标导向,在预编程过程中必须付出极大的代价来实验和调节一些有关势场的预值。特别是这些预值与环境的状态密切相关。图6.32 利用局部环境信息进行机器人的导航- 8 -西安电子科技大学 机器人避障
20、控制在这里我们介绍了一种在非结构化环境中基于模糊逻辑的移动机器人“感识-动作”行为控制的新方法。不同于基于人工试场的行为控制方法,该方法是利用模糊逻辑来融合多个“感识-动作”行为而不是根据优先级来抑制某些行为。这一方法也不同于一般仅用于避障的模糊控制,因为在我们的方法中利用了“感识-动作”行为的思想;将感识和决策集成在同一模式中,并且直接面向动态环境来改善系统的实时响应和可靠性。图6.35给出了移动机器人的模糊逻辑控制方案。为了获取环境的信息,15个超声传感器被安装在THMR-II(Tinghua Mobile Robot-Model II)移动机器人上,这些超声传感器被分为三组分别来测试左方
21、,前方和右方的障碍物,如图6.32所示。该机器人具有两个主动轮和一个从动轮。两个主动轮的速度由一个驱动系统来控制。模糊控制器的输入信号是机器人和障碍物之间的距离以及机器人与目标之间的方位角,分别记为左方障碍距离left-obs,前方障碍距离front-obs,右方障碍距离right-obs和方位角head-ang,当目标位于机器人的左面时方位角定义为正;反之为负,如图6.34所示。根据局部的环境信息,模糊逻辑算法融合所有的“感识-动作”行为来控制机器人主动轮的速度。在本文中,left-v和right-v分别代表机器人左右轮的速度。语言变量fast,med(medium)和slow来模糊化lef
22、t-obs,front-obs和ght-obs;P(positive),Z(zero)和N(negtive)来模糊化head-ang;far,med和near来模糊化left-v和right-v。下面我们利用模糊逻辑来描述“感知-动作”行为。为了使机器人能够在复 - 9 -西安电子科技大学 机器人避障控制 杂的环境中达到给定的目标,机器人必须具备如下“感知-动作”行为:(1)避障;(2)边沿跟踪;(3)目标导向;(4)在弯曲和狭窄道路上减速。为此,我们建立一个模糊逻辑规则库来描述上述这些行为。下面列举一些模糊逻辑规则来说明这些行为是如何被实现的:1避障及弯曲和狭窄道路上减速行为当环境信息表明机
23、器人接近障碍物或在弯曲和狭窄道路上行驶时,它的主要行为是减速避障,为了实现这一行为采用如下If-Then规则:If(left-obs is near and front-obs is near and right-obs is near and head-ang is any) Then(left-v is fast and right-v is slow)If(left-obs is med and front-obs is near and right-obs is near and head-ang is any) Then(left-v is slow and right-v is f
24、ast)If(left-obs is near and front-obs is near and right-obs is med and head-ang is any) Then(left-v is fast and right-v is slow)If(left-obs is near and front-obs is med and right-obs is near and head-ang is any) Then(left-v is med and right-v is med)2边沿跟踪行为当机器人移向一个位于U型物体内的目标时(见图6.32)或从这样一个物体中逃避出来时,机
25、器人必须表现出边沿跟踪行为。可利用如下规则来实现这一行为:If(left-obs is far and front-obs is far and right-obs is near and head-ang is P)Then(left-v is med and right-v is med)If(left-obs is near and front-obs is far and right-obs is far and head-ang is N)Then(left-v is med and right-v is med)If(left-obs is far and front-obs is
26、 med and right-obs is near and head-ang is P) Then(left-v is med and right-v is med)If(left-obs is near and front-obs is med and right-obs is far and head-ang os N) Then(left-v is med and right-v is med)这些规则表明当障碍物和目标点同时在机器人的左侧(或右侧)时,机器人应该沿着障碍物的边沿行走。- 10 -西安电子科技大学 机器人避障控制当局部信息表明在机器人周围没有障碍物时,它的主要反射行为是
27、目标导向。可利用如下规则来实现这一行为:If(left-obs is far and front-obs is far and right-obs is far and head-ang is Z)Then(left-v is fast and right-v is fast)If(left-obs is far and front-obs is far and right-obs is far and head-ang is N)Then(left-v is slow and right-v is fast)If(left-obs is far and front-obs is far an
28、d right-obs is far and head-ang is P)Then(left-v is fast and right-v is slow)这些规则表明当机器人周围没有障碍物时机器人主要调节它的方向并且快速地移向目标。在基于人工势场法“感知-动作”行为控制中,机器人主动轮的速度是通过行为抑制的策略来决定的。为此,在预编程过程中必须付出极大的努力来实验和调节人工势场法的一些预值。另外,这些预值随环境的改变而改变。在基于模糊逻辑的“感知-动作”行为控制中,因为“感知-动作”行为是通过模糊集合来描述,所以“感知-动作”行为的融合可以方便地利用Min-Max推理算法和求质心的清晰化方法来
29、完成。图6.35 机器人在一个混乱环境中的运动为了说明所提方法的有效性和鲁棒法,下面给出机器人在未知环境中导航的仿真模拟结果。图6.35模拟了机器人达到一个位于一U型物体内目标的导航过 - 11 -西安电子科技大学 机器人避障控制 程。在开始阶段,由于机器人周围有较大的非碰撞空间,所以机器人的目标导向行为强于其它的行为,因此它以高速向目标运动。当它接近U型物体时,它自动减少目标导向行为的权值和增加避障和边沿行走行为的权值。当机器人发现U型物体的入口时,它增加避障和目标导向行为的权值,使机器人缓慢地达到目标。图6.35模拟了机器人在一个混乱环境中的运动。在这个环境中,我们任意地选取一些目标点。可
30、以看到:仅利用超声传感器所获取的局部信息,机器人通过有效地融合所有的“感知-动作”行为却达到所给定的目标。图6.36给出在未知环境中与一个运动障碍物避免碰撞的例子。在这个例子中运动障碍物的运动方向正好封锁了机器人的路径,如图6.36(b)所示。当机器人探测到这个障碍物时急剧右转弯,如图6.36(a)和6.36(b)所示。当机器人绕过该运动障碍物后,直接达到目标,如图6.36(c)和6.36(d)所示。图6.36 机器人与一个运动障碍的碰撞避免在这里,我们利用了模糊逻辑来描述“感知-动作”行为。因为该方法是利用模糊逻辑的近似推理来融合多个“感知-动作”行为而不是根据行为的优先级来激发某一行为,所
31、以它比传统的“感知-动作”行为控制方法更为有效。仿真模拟实验结果表明,利用该方法可以改善机器人在未知环境中的导航能力。另外, - 12 -西安电子科技大学 机器人避障控制 该方法还适于多传感器的集成与融合。最后我们来讨论如何利用行为分类的思想来设计模糊-神经控制系统。众所周知,模糊控制器的设计准则是利用模糊逻辑将知识和经验集成在控制器内,而获取这些知识和经验的过程是被控对象的响应行为而不是分析系统的解析模型。因此,利用模糊逻辑可以建立一种新的建模方式,即通过定义某些响应“行为”来描述系统的特征。这种描述系统特性的思想如下:因为模糊控制器的输出信号时由系统的响应“行为”来决定,所以利用同一模糊控
32、制器来控制具有“类似”行为的系统(尽管他们的动力学方程不同)将产生“类似”的控制结果。我们将利用下面的模拟来说明该思想的可行性。设有如下二阶系统:该二阶系统的开环和闭环阶跃响应如图 6.37。在这里,=1.4和=0.575。闭环控制的响应是通过优化模糊控制器而得到的。(a)二阶线形系统的开环和闭环响应 (b)二阶非线形系统的开环和闭环响应图6.37 二阶系统的开环和闭环响应现在我们将这一优化好的模糊控制器来控制来控制公式(6-5)的非线性系统,同样获得了与二阶系统一样好的闭环响应,尽管公式(6-21)二阶系统的动力学方程和它的参数(=1.4和=0.575)不同于公式(6-5)非线形系统的动力学
33、方程和它的参数(=1和=1)。按照行为分类的观点,对于一个给定的输 - 13 -西安电子科技大学 机器人避障控制 入来说,我们可以将所有具有“类似”响应行为的系统归纳为一类,而不管是否非线形或具有不确定性。因为在同一模糊控制器作用下,这一类系统将获得“相同”的控制特性,所以我们便可以从这一类系统中挑选出一个最简单的系统(例如:二阶系统)来设计模糊控制器。图 6.38 基于行为建模的混合控制系统在这个思想的基础上,我们提出如下的模糊-神经网络的控制系统。该控制系统是在图6.38的控制系统的基础上增加了一个神经网络来“感知”系统的响应行为和确定最佳的模糊控制器参数。为了实现这一目的,神经网络的输入
34、样本是一族具有不同和的二阶系统,神经网络的输出样板是相对于这些优化好的模糊控制器的隶属度函数的参数K=(Kb,Ks,Kz),如图所示。这种基于“行为”分类的神经-模糊控制系统的设计方法具有上述Nelder Mead优化方法和模糊神经控制器的优点,即既具有较好的收敛性又具有在线学习的能力。- 14 -西安电子科技大学 机器人避障控制第三章 开发工具V basic语言介绍Visual Basic是Windows 环境下广泛使用的开发图形用户界面的程序开发工具。Visual Basic意即可视化程序设计语言BASIC。使用这种开发工具,程序员不需要编写大量的代码去描述界面元素的外观相位置,只要把预先
35、建立的界面元素用鼠标拖放到屏幕上的适当位置即可设计出一个易于使用的Windows应用程序界面。3-1 Visual Basic 的发展BASIC语言是1963年由John Kemeny和Thomas Kurtz设计的。这种程序设计语言对于初学者来说最容易学会。其特点很明显:每个语句前都有行号;书写不缩进;GOTO和GOSUB都以行号为控制转移的目的。但是,它不符合后来发展起来的结构化程序设计的概念:也是由于上述特点,而被人们认为是不能适应于现实世界程序设计任务的编程语言。随着个人计算机发展和软件技术的进步。BASIC也从一个效率低下、非结构化的解释型语言发展成为一个效率较高、结构化的解释/编译
36、型语言,可用于开发范围广泛的应用程序。Microsoft公司的Windows系列操作系统(Windows3x,Windows95/98和Windows NT)以新颖、直观、方便易用的图形工作环境赢得了广大用户的青睐,成为PC机上最为重要的运行操作环境。但同时也使windows环境下的程序设计工作变得越来越复杂。例如在MSDOS下用任意一种程序语言编写一个在屏幕上显示一条信息的程序,最多只需4行语句就够了,而在Windows下编写同一功能的程序则其代码却可能长达23页之多。对于专业人员来说,这也许不是一个大问题,但是对于非计算机专业的人员来说,要在Windows下设计满足自己需要的应用程序却变得
37、相当困难。如果能有一个高效、易用的Windows应用程序开发环境,则开发基于Windows的应用程序就会容易些。Microsoft公司外发设计出的Visual Basic就是这样的开发环境,它给广大的开发人员带来了福音。3-2 什么是Visual BasicVisual Basic是一个在Windows环境下的程序开发工具,它利用面向对象的概念巧妙地屏蔽了Windows环境下程序设计的复杂性,使Windows程序设计变 - 15 -西安电子科技大学 机器人避障控制 得简单、方便、快捷。Visual Basic基于结构化的BASIC语言和一系列的可视化的窗口设计工具,提供了窗口、菜单、按钮、对话
38、框、消息框、滚动条等Windows程序的标准界面对象,使程序设计人员很容易在较短的时间内,设计出十分复杂的窗口界面。此外,Visual Basic也是首批采用事件驱动的程序设计机制的程序语言之一。从微软公司于1991年推出Visual Basic l.0版,到目前为止,己推出6个版本,获得了极大的成功。Visual Basic是在Windows环境中广泛使用的应用程序开发工具。从字面上看,Visual Basic包含两个含义。“Visual”一词的含义是“视觉的、可视的”,引申到程序设计领域中就变成了“可视化程序设计”,指的是开发图形用户界面(GUI)的一种方法。使用这种方法,程序员不用编写大
39、量代码去描述界面元素的外观和位置,而只要把预先建立的界面元素(如文本框、命令按钮等)用鼠标拖放到屏幕上的适当位置即可;“Basic”指的是BASIC(Beginners A11Purpose Symbo1it Instruction Code)语言。BASIC语言是计算机发展史上应用得最广泛的语言,全世界会使用BASIC语言的人数以千万计。Visual Basic是在原有BASIC语言的基础上发展起来的,至今包含了数百条语句、函数和关键字。将“visual”和“Basic”这两个词连在一起,就表示用BASIC语言来可视化地进行应用程序的开发。当然,Visual Basic绝不仅仅是一个可视化的
40、BASIC语言,它的特征除了“可视化”之外,还包括“事件驱动”。“事件驱动”是指Windows应用程序的运行是通过事件来驱动的,每当用户或系统触发一个事件,就执行一段程序代码来响应。例如,屏幕上有一个命令按钮,当用户单击该按钮时将产生鼠标单击事件,而产生该事件时将执行一段代码来完成指定的操作。完成后程序就暂停,直到下一事件发生。正是“可视化”相“事件驱动”这两个特征构成了使用Visual Basic进行Windows程序开发的精髓。3-3 Visual Basic 的特点1可视化的界面设计以往的Windows应用程序开发工具在设计图形用户界面时,都是直接采用程序来实现的。一个大型应用程序大概有
41、90的程序代码用来处理用户界面,只有10的程序才是真正用来实现应用程序功能的,而且在程序设计过程中看不到界面显示的效果,只有在程序执行时才能观察到,当界面效果不佳时还需回 - 16 -西安电子科技大学 机器人避障控制 到程序中去修改。Visual Basic提供新颖的可视化设计工具,可以直接可视化地设计用户界面,开发人员不必再为界面设计而编写大量程序代码,设计者仅需采用现有工具按要求在屏幕上进行布局设计、设置对象属性即可。Visual Basic自动产生界面设计代码,程序员的编程工作仅需要写出功能实现的那部分代码。这样可以大幅度提高程序设计的效率。2基于对象的程序设计思想在Visual Bas
42、ic中,VB已经把程序和数据封装起来成为一个个对象,并为每个对象赋予各种属性,使对象成为实在的东西,程序设计人员在设计时无需编写每个对象的创建和描述程序代码,直接使用即可。程序设计人员所要做的仅只是编写针对某个事件需要完成的功能的程序。这种基于对象的程序设计具有简便、高效的待点。3事件驱动的编程机制在VB程序中,对象与程序的交互是通过事件来实现的,即针对每个对象,可能会有多种事件产生,每个事件都能驱动一段程序运行,完成相应的工作。如按钮(Button)是对象,用户用鼠标单击一个按钮(Click)就会产生一个事件,响应此事件的程序代码,放在ButtonClick子程序中,单击按钮就可得到需要的功
43、能。对于大型的Windows应用程序,用VB编程,无需构造一个完整的具有明显开始和结束的大型程序(VB程序中没有明显的主程序,而只需创建若干个较小的子程序。这些子程序均对应某个对象由用户操作引发的事件来驱动完成某种特定功能,或是由事件驱动程序调用完成菜功能的公共子模块程序)。这样,程序设计人员可以方便地设计功能强大的Windows应用程序,提高工作效率。4方便、易用Visual Basic是一种高级语言,它具有其它高级语言所具有的优秀特性:结构化的程序结构,更接近于人类的语言相逻辑思维方式,语句简单易懂等。此外,Visual Basic还支持巨型数组、长字符串、动态数组等。VB程序编辑器还支持
44、彩色代码,可用于句法错误检查、判别标识符和断点。VB还具有功能强而且灵活的调试器和编译器。Visual Basic是解释性语言,在编写代码的同时,解释程序将高级语言分解成计算机能识别的机器指令,并判断语句的语法错误。Visual Basic程序随时可以运行,而且在整个应用程序调试好以后可编译生成ExE的 - 17 -西安电子科技大学 机器人避障控制 可执行文件,使得用Visual Basic语言开发的Windows应用程序可脱离VB环境,直接在Windows环境下运行。5基于构件的程序开发在Visual Basic程序设计中,可以使用已经设计好的程序构件,通过构件的重用和共享,迅速建立起应用系
45、统,完成应用程序的开发。可以使用Visual C+、BC+、DELPHI等开发用于VB的专用构件,来扩展VB的应用开发能力(在5.0以后的版本中也可以使用VB开发自己的构件)。VB构件可以加入到VB工具箱中供开发人员使用。6对象的链接与嵌入(OLE)Visual Basic3.0以上的专业版中将工业标准OLE 2.0 Automation技术加入到VB中。OLE是个应用程序访问其它应用程序对象的一种方法。利用OLE技术,在VB程序中,可以将其他应用软件作为一个对象嵌入到VB应用程序中,而且对嵌入对象的处理就好像处理VB本身的对象一样,可以对它赋予各种属性和运行程序。可通过OLE技术把符合OLE
46、标淮的各种不同的Windows的应用程序嵌入到VB程序小,实现声音、视像、影像、动画、三维立体、变换几何形状、绘制各种图形图像等多媒体功能。VB允许开发人员通过对现有应用程序的集成建立自己的应用程序,这就为方案设计人员、软件并发人员和独立的软件商带来更加广泛的市场发展机会。7数据库访问功能Visual Basic系统本身提供了非常好的数据库管理功能。利用数据库管理窗口,用户可直接创建Access数据库,还可直接编辑和访问其他外部数据库,如FoxPro、dBASE、FoxBase等等。此外,Visual Basic还提供了开放式数据库访问功能,可通过VB提供的数据库访问对象方式直接访问外部数据库
47、,还可以通过ODBC建立连接的方式来使用和操纵外部数据库,如SQL Server、Oracle、Informix、Sysbase等。8功能强大的辅助开发工具Visual Basic中的setup wizard可为用户制作生成规范的带安装的用户盘,使程序设计人员采用VB开发工具设计的应用程序在编译生成EXE可执行文件以后,脱离VB环境,并制作成标准安装盘提交给用户使用,用户可直接在Windows - 18 -西安电子科技大学 机器人避障控制 环境下进行安装和运行。Visual Basic中还具有报表生成器,可用来制作各种报表。另外,还具有为应用程序制作Help帮助的功能,可在word字处理软件的
48、Help编辑器中编辑应用程序的帮助,生成帮助文件,在采用VB进行应用程序设计中利用菜单和通用对话框的方式将帮助信息集成到应用程序中,并以Windows下标准帮助窗口方式进行显示和检索。3-4 Visual Basic的软硬件配置使用安装程序安装Visual Basic时,安装程序将Visual Basic本身、联机帮助系统、应用程序示例,以及其它产品部件均安装到本机的硬盘上。安装Visual Basic之前,请检查计算机是否满足最低的软、硬件要求。在一台PC机上运行Visual Basic的最低配置要求如下:软件:Windows 95/98或者Windows NT或Workstation 4.
49、0(推荐使用ServicePack 3以上版本)。硬件:CPU:80486DX主频66MHz或更高;CDROM光驱;四倍速以上;显示器:Microsoft Windows支持的VGA或分辨率更高的监视器;内存:Windows 95下16MB以上,Windows NT下32MB以上;输入设备:键盘、鼠标。3-5 Visual Basic设计平台进入Visual Basic6.0后,会出现如图122所示的起始画面- 19 -西安电子科技大学 机器人避障控制由于标准EXE在完成后,会变成一般的可执行文件(*.exe),而且在设计过程中较易调试,故适用于初学者。因此,请选择标准EXE图标,并单击打开。
50、- 20 -西安电子科技大学 机器人避障控制3-5-1 事件驱动事件驱动是一种新式的程序设计概念,它将整个程序的流程,包括运行的方式,全都交给用户来决定。因此在Visual Basic的程序代码窗口中,提供了众多的事件供用户选择。同一事件作用在不同的对象斤会产生不同的结果,同样地,不同的事件作用在同一对象上,也会引发不同的事件程序。用户在写程序代码时,只要打入对象名称,然后输入“”时,会自动出现所有属性与方法,图- 21 -西安电子科技大学 机器人避障控制 中列表里绿色图标的是“方法”,其他都是属性,用鼠标双击所要的属性后,VB就自动帮你填入对象属性于程序代码里。3-5-2 过程驱动不是由事件
51、来驱动,而是由别的过程来调用的过程,即称为“通用过程”,也就是传统的“子程序”。 此种由其他过程束驱动的方式称之为“过程驱动”。要在窗体设计一个“通用过程”,可在程序代码窗口的对象栏选择“通用”,然后直接输入过程名称和程序代码。Private Sub 过程名称 (参数行.)和事件过程有相当大的差别。值得注意的是,事件过程的程序名称参数行是默认的,通用过程的程序名称和参数行是用户自定义的。在“通用”对象下输入程序Private Sub Hi(),此时事件栏会自动变成Hi。3-6 循环语句3-6-1 计数循环For.Next- 22 -西安电子科技大学 机器人避障控制For.Next是属于计数式的
52、循环结构,就是说,当程序中语句块重复运行的次数是可以计数的时候,都会用For.Next循环来设计。例如,做5次的乘法,10次的除法等等,就可以利用For.Next循环来设计。语法For 变量 = 初值 To 终值 i step 增值(减值)语句块Next 变量说明1. 变量:循环中的变量名称:2. 初值:变星在此循环中的初始值。3. 终值:变量在此循环中的终止值。4. 增值:每运行一次此循环,变量所增加的值,默认值为1。5. 语句块:运行此循环时,希望重复运行的工作。6. 最后一定要再加“Next变量”。在图中可以看出For.Next的特件,在循环运行的过程中,是先运行语句,然后再把计数变量加
53、上增值或减值,然历再判断是否越出终值。3-6-2 Whilewend当有一行或数行程序一直重复运行,可利用条件式重复结构来完成,While.Wend是属于条件式的重复循环结构,这和前面所介绍的For.Next计数式语句就大不相同了。条件式重复结构的条件就是要当条件式为“真(True)”时,才可以运行while内的语句。语法- 23 -西安电子科技大学 机器人避障控制While 条件语句块Wend说明当条件成立(真)时,才开始运行While内的语句。而在语句中,必须要有改变条件结果的语句,不然条件永远成立,就会一直运行While内的语句,这将会造成无穷循环。3-6-3 条件式循环当运行的次数无法
54、事先预测时,可以利用条件式循环来设计。条件式循环可以分为两种前测式循环及后测式循环。3-6-3-1 前测试循环先进行条件判断,看条件是否成立,再运行循环内的语句,因此可分为当条件成立,和条件不成立两种,所要运行的语句块不相同。一. 当条件成立时,则运行语句块;也就是判断式为真时,才运行语句块。 语法Do while 条件语句块Loop说明1. 前测式循环,先测试条件是合成立,若条件成立则运行语句块。2. 运行到Loop时,又回到Do While语句,直到判断条件不成立时才结束循环。- 24 -西安电子科技大学 机器人避障控制二. 当条件不成立,所运行的语句块;也就是判断式为假时,才运行语句块。
55、 语法Do Until 条件语句块Loop说明1. 前测试循环,先测试条件是否成立,若条件不成立则运行语句块。2. 与Do While.Loop语法相反。3. 运行到Loop时,再回到Do Until语句,直到判断条件成立时才结束循环。3-6-3-2 后测试循环后测试循环,先运行语句,再运行测试条件是否成立,再回头继续运竹语句,因此可分为当条件成立时,再回头做语句;或当条件不成立时,再回头做语句。一. 先运行语句,当条件成立时,再回头做语句语法Do语句块Loop While 条件说明1. 后测试循环,先运行语句,再判断条件是否成立,当条件成立时,再回- 25 -西安电子科技大学 机器人避障控制头继续运行语句。2. 先运行一次Do循环的语句。3. 当运行到Loop While时,若条件不成立时,则离开循环;反之则回到Do循环的语句,继续运行。二. 先运行语句,当条件不成立时,再回头做语句语法Do语句块Loop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 足球社团工作总结模版
- 区块链赋能金融风控现状与未来趋势
- 小学的体育下学期工作总结模版
- 区块链技术如何保障商业供应链的交易安全
- 中心城区供热系统升级与改造可行性研究
- 微课题研究助力教师协同成长策略
- 小学生写秋游活动方案
- 小学班主任个人先进事迹材料范文
- 提升学校治理效能的创新路径
- 小学数学六年级下册教案
- 废品入库单模板
- 2023年版-肿瘤内科临床路径
- 婚育情况登记表
- word精美小升初简历欧式模板
- 复旦大学附属眼耳鼻喉医院耳鼻喉进修汇报
- 岩芯鉴定手册
- DB32-T 3916-2020建筑地基基础检测规程-(高清现行)
- 快速排序算法高校试讲PPT
- 甘肃历史与甘肃文化
- 2022年执业医师证件租赁协议书
- 太上三官宝经(共12页)
评论
0/150
提交评论