文档库 最新最全的文档下载
当前位置:文档库 › 自动上网抓数据的机器人

自动上网抓数据的机器人

自动上网抓数据的机器人
自动上网抓数据的机器人

在大多数情况下,上网冲浪是件令人愉快的事情。但若是数百上千的超链接摆在你面前,而你又不得不一一点击这些链接、进入相应的网页、手工筛选出每页里你需要的信息、最后再将这些信息编进数据库中、....,你将做何自动上感想?如果每天都从事这种繁杂、枯燥的工作会不会让你发疯?

“自动上网机器人”或许可救你出“苦海”:你可以喝着咖啡、听着音乐、看着“机器人”辛勤地替你工作,那感觉是不是棒极了!

本文结合实例详尽讨论了用VB实现“上网机器人”的技术细节。我们知道,搜集和下载资料是人们使用互联网的最主要的目的之一,但有些信息资源过于庞大,用手工摘取的方法是困难的或根本就是行不通的。例如,你需要搜集欧洲进口机械设备的公司名录以便给他们发信邀请其参加博览会,在网上找到这些信息并不难,但出于数据安全等方面的考虑,几乎所有提供类似信息的网站都没有提供直接下载数据的功能。

要想搜集齐想要的数据,唯一可用的方法就是一页一页地浏览每个公司的信息页,摘取其中有用的数据并存入数据库。但当公司总数超过数千时,巨大的工作量会让任何人望而却步!其实,这浩大的工作完全可以由程序来完成,因为这些任务完全是机械的重复性工作。而且,用程序完成比用手工要快得多。本文涉及的技术细节是通用的,即对实例程序稍加修改就可完成任何“自动上网冲浪”任务。

自动拨号上网、自动处理中途掉线、任务完成后自动挂断,这些都是“上网机器人”的最基本的功能之一。它还能给你带来明显的经济回报:如果你让“机器人”在晚间至凌晨的上网费优惠期内拨号上网去自动冲浪,那真可称得上是典型的“一石三鸟”----你睡觉、它工作、还省钱!有关这方面的细节将在本文的第三部分里讨论。该部分提供了实现上述各功能的若干方法,并比较了这些方法各自的优劣。

本文的第一和第二部分分别以两个实例讨论了自动浏览的技术细节:在网页上的输入区内自动填入数据以便完成诸如用户登录等的操作、自动更新CheckBox、自动选择下拉式列表(ComboBox)的值、自动点击网页上的按钮、从网页上精确提取有用的数据并存盘、将网页上二维表(Table)内的数据一一提取出来并转换且存储成可直接导入数据库或 Excel的格式,以及控制浏览进程的技巧等等。

第一部分从网页上精确提取数据

本部分的实例是:下载沪深两市全部约1100家个股的基本信息及财务数据。若用手工操作,如上图所示,需要在股票代码区内分别输入1100个股票代码,在下拉式列表(ComboBox)中分别选择“个股资料”和“财务数据解读”,算下来约是2200次操作!这样的工作当然是由程序来完成划算得多。况且手工提取数据(先选中、再使用Ctrl+C拷贝)极容易出错(多选或漏选),又很费眼神。

1. 在输入区内自动填入数据

为使程序能高效地自动浏览,需引入一些最基本的功能,如在输入区内自动填入数据、自动点击按钮等等。虽然用变换 URL地址的方法有时也能完成任务,但往往过于费力,尤其当网页上的输入区较多时更是如此。

为了在输入区内输入数据,需要先搜索到该对象的名字,然后将该对象的值置为要填入的数据即可。搜索名字的工作可编程完成,亦可用 FrontPage 轻松获得。

2. 自动在下拉式列表(ComboBox)中进行选择

同样地,首先要获得下拉式列表的名字。然后根据下拉式列表的元素总数(length属性)在列表中搜索要设置的值(列表的 Options集合中元素的Text 属性),找到后,将该元素设为选中元素(元素的Selected属性)。

3. 自动点击按钮

对于按钮来讲,可根据其名字访问,亦可根据其值访问。按钮的值就是显示在按钮上的文字。一个按钮可能没有名字,但一定有值。本例的程序就是根据值来访问按钮。执行按钮的 Click方法就相当于点击了该按钮。

图二中红色箭头所指即为程序自动填入输入框、自动在ComboBox中选择以及自动点击按钮的情况。

4. 精确提取数据

仅将有用的数据存储下来才是有意义的。必须研究网页,找出有效数据所在的Tag区(可用文本编辑器或 FrontPage),然后用该对象的innerText

属性获得最终的文本。本例中要存储的数据如下图所示,其所用的Tag为“PRE”。

下面给出的是实例程序的完整代码:

Private ConstForm_ID = 1

Dim Code(9) As String

Dim Current As Long

Private Sub Form_Load()

Form1.MousePointer = 11

' 以下是个股代码

' 为了程序简洁,这里仅使用九只代码。

' 而在真实环境中,应从数据文件中读入全部个股代码。

Code(0) = "600001": Code(1) = "600002": Code(2) = "600003"

Code(3) = "600005": Code(4) = "600006": Code(5) = "600007"

Code(6) = "600008": Code(7) = "600009": Code(8) = "600010"

Current = 0

WebBrowser1.Navigate "https://www.wendangku.net/doc/a616610955.html," ' 起始网址

End Sub

Private Sub WebBrowser1_DocumentComplete(ByValpDisp As Object, URL As Variant)

Dim i, k

Text2 = WebBrowser1.LocationURL ' 显示当前网址

' 判断当前网页是否全部调入完毕

If Not (pDisp Is WebBrowser1.Object) Then Exit Sub

On Error Resume Next

Select Case Text2

Case "https://www.wendangku.net/doc/a616610955.html,/home.htm" ' 当进入主页面时执行以下程序

For i = 0 To WebBrowser1.Document.Forms(Form_ID).length - 1 ' 找到代码输入框后填入个股代码

If WebBrowser1.Document.Forms(Form_ID)(i).Name = "code" Then _

WebBrowser1.Document.Forms(Form_ID)(i).Value =

Code(Current)

' 在下拉式列表中进行选择

If WebBrowser1.Document.Forms(Form_ID)(i).Name = "target" Then

For k = 0 To

WebBrowser1.Document.Forms(Form_ID)(i).length - 1

If

WebBrowser1.Document.Forms(Form_ID)(i).Options(k).Text _

= "个股资料" Then

WebBrowser1.Document.Forms(Form_ID)(i).Optio ns(k).Selected = True

Exit For

End If

Next k

End If

' 点击按钮

If WebBrowser1.Document.Forms(Form_ID)(i).Value = " 查询 " Then _

WebBrowser1.Document.Forms(Form_ID)(i).Click Next

Case Else ' 当进入数据页面时执行以下程序

For i = 0 To WebBrowser1.Document.All.length - 1

If WebBrowser1.Document.All(i).tagName = "PRE" Then

' 精确提取数据

Text1 = Text1 + Code(Current) + vbCrLf + _

WebBrowser1.Document.All(i).innerText + vbCrLf

Exit For

End If

Next

' 数据存盘

Open "C:\Data2.Txt" For Append As #1

Print #1, Text1: Text1 = "": Close #1

' 换下一只股票

Current = Current + 1

If Current >= 9 Then

' 上网任务完成后,应在此调用自动挂断过程。

Form1.MousePointer = 0: MsgBox "Finished!": End End If

' 回退到主页面,查询下一只股票的信息

WebBrowser1.GoBack

End Select

End Sub

第二部分将网页上的二维表导入数据库

在上一部分中,我们讨论了让程序自动在网上浏览并将所需的数据准确、快速地存储下来的方法。现在,我们将迎接更大的挑战:将网页上以表格形式存在的二维数据提取出来,并存成可直接导入数据库的“Microsoft Excel 逗号分隔值文件”(即.csv文件)。

用手工在网页上直接提取类似上图中所示的表格数据是非常困难的。如果这样的表格有数十页甚至上百页之多,手工提取工作将是不可想象的,而且非常容易出错。

本部分的实例是:将沪深两市全部约1100家个股的财务评分表数据(共54页,每页20家,如上图所示)快速、准确地转换成“.csv”文件。

1. 自动设置CheckBox的值

由于只有注册用户才能访问上述财务评分表,因此实例程序首先演示了自动注册的功能。下图显示的是注册前以及自动注册后的画面。

我们在上一部分中已讨论了自动填写输入区以及自动点击按钮等的方法。对于自动设置CheckBox值,其方法完全类似:首先要搜索到该CheckBox的名字,然后将该对象的Checked属性置为True或False即可。

2. 将网页上的二维表导入数据库

首先定义一个IHTMLElementCollection对象用于收集网页上所有的Table,然后用getElementsByTagName方法执行收集工作:

一个网页上往往有多个 Table。我们用HTMLTable对象来处理每个Table:

HTMLTable对象的innerText属性记录了整个 Table的全部信息,包括字段名。因此我们可以根据字段名判断出哪个 Table是我们需要的。

为了逐行逐列地提取数据,我们还需要HTMLTableRow对象和HTMLTableCell对象:

Dim Row AsHTMLTableRow, Cell As HTMLTableCell

For i = 1 To Table1.rows.length - 1 ' 逐行处理

Set Row = Table1.rows(i)

j = 0

For Each Cell In Row.cells ' 逐列处理

' Row.cells(j).innerText即为当前行及当前列上的单元数据

Text1 = Text1 +

Trim(Row.cells(j).innerText) + ","

j = j + 1

Next

' 一行处理完毕后,去除行尾的逗号并加上回车

Text1 = Left(Text1, Len(Text1) - 1) + vbCrLf

Next

至此,当前网页上的二维表已转换成“.csv”格式。

3. 自动浏览时的页面控制技巧

我们从上个例子中就已经清晰地看到,自动浏览程序的主体是WebBrowser控件的DocumentComplete事件。只有在当前页面已被完全调入后,

我们才能开始对当前页面进行数据处理,然后再根据当前在哪个页面来决定下一步的浏览方向。

需要指出的是,DocumentComplete事件的发生并不一定意味着当前页面已被全部调入。如果页面上没有其它子框架(frames),发生 DocumentComplete 事件即表明当前页面(即主框架)已完成调入;若页面上有多个框架,则每个框架完成时都会发生 DocumentComplete事件;当所有子框架都完成后,主框架最后产生一次DocumentComplete事件。为了判断出这最后一次 DocumentComplete 事件,需要比较每次事件发生时的对象(pDisp)是否是WebBrowser控件对象本身:

下面是实例程序的完整代码(运行该程序可得到完整的1061行“.csv”格式的数据,分别代表1061个上市公司的财务信息。该文件可直接导入Access 数据库或 Excel中。):

' 程序二:将网页上的二维表导入数据库

'

' 为运行本程序,应在“菜单->工程->部件”中添加“Microsoft Internet Controls”

' 并在“菜单->工程->引用”中添加“Microsoft HTML Object Library”

'

Option Explicit

Dim Page As Long

Private Sub Form_Load()

Form1.MousePointer = 11

WebBrowser1.Navigate "https://www.wendangku.net/doc/a616610955.html," ' 起始网址

End Sub

Private Sub WebBrowser1_DocumentComplete(ByValpDisp As Object, URL As Variant)

Dim Table1 As HTMLTable, Tables As IHTMLElementCollection

Dim Row As HTMLTableRow, Cell As HTMLTableCell

Dim i, j, tmp

Text2 = WebBrowser1.LocationURL ' 显示当前网址

' 判断当前网页是否全部调入完毕

If Not (pDisp Is WebBrowser1.Object) Then Exit Sub

On Error Resume Next

Select Case Text2

Case "https://www.wendangku.net/doc/a616610955.html,/home.htm" ' 当进入主页面时执行以下程序

' 用户注册登录

For i = 0 To WebBrowser1.Document.Forms(0).length - 1

' 找到 CheckBox 后,将其值改为 False,以防止用户名及密码被存储

If WebBrowser1.Document.Forms(0)(i).Name = "checkSavePW" Then _ WebBrowser1.Document.Forms(0)(i).Checked = False

If WebBrowser1.Document.Forms(0)(i).Name = "userId" Then _ WebBrowser1.Document.Forms(0)(i).Value = "kompass_china"

If WebBrowser1.Document.Forms(0)(i).Name = "passwd" Then _ WebBrowser1.Document.Forms(0)(i).Value = "kompass1"

' 此处是按名字访问按钮(上例中是按值访问按钮)

If WebBrowser1.Document.Forms(0)(i).Name = "continue" Then _ WebBrowser1.Document.Forms(0)(i).Click

Next

Case "https://www.wendangku.net/doc/a616610955.html,/scripts/mystockstar.dll?login"

' 当用户登录完成后,准备打开表格的第一页

WebBrowser1.Navigate

"https://www.wendangku.net/doc/a616610955.html,/scripts/finance.dll?" + _ "showstkdfpm&begin=0&ret=1&index=2&concode=01"

Page = 1

Case Else ' 当进入数据页面(表格的第一页至最后一页)时执行以下程序Set Tables = WebBrowser1.Document.getElementsByTagName("Table") For Each Table1 In Tables

If Left(Table1.innerText, 2) = "名次" Then ' 找到需要的Table

' 将表格转换成“.csv”格式

For i = 1 To Table1.rows.length - 1

Set Row = Table1.rows(i)

j = 0

For Each Cell In Row.cells

Text1 = Text1 + Trim(Row.cells(j).innerText) + ","

j = j + 1

Next

Text1 = Left(Text1, Len(Text1) - 1) + vbCrLf

Next

' 数据存盘

Open "C:\Data.csv" For Append As #1

Print #1, Left(Text1, Len(Text1) - 2): Text1 = "": Close #1

Exit For

End If

Next

' 准备打开下一页

以下给出的是上述程序所存数据文件的片段:

1,乐凯胶片,600135,材

料,81.493,18.445,23.165,8.850,20.717,10.315

2,歌华有线,600037,传播娱

乐,80.553,13.009,22.256,12.141,20.304,12.844

3,外运发展,600270,仓储运

输,80.326,17.331,23.005,8.829,19.900,11.261

4,东方钽业,0962,有色金

属,80.312,15.160,22.483,11.648,21.290,9.730

5,双汇发展,0895,食

品,79.772,15.428,20.673,11.508,20.235,11.930

6,四川美丰,0731,化

肥,79.361,15.795,23.235,11.323,16.921,12.088

... ... ...

1059,轮胎橡胶,600623,车

类,7.167,8.265,10.973,-34.411,14.120,8.219

1060,PT吉轻工,0546,日用轻工产

品,-11.895,5.740,-49.149,7.999,14.136,9.379

1061,广船国际,600685,机械仪

器,-57.452,9.824,-1.528,-89.648,14.366,9.533

第三部分自动拨号、自动挂断以及自动处理中途掉线

一个出色的“自动上网机器人”程序应能按照既定的时间准时开始拨号、并当所需任务已完成后立即挂断。而且仅做到这些还不够,它还应在发出拨号指

令后跟踪拨号操作是否真的成功、上网速度如何、是否需要挂断后重新拨号、自动浏览过程中是否出现掉线、以及最终的挂断操作是否真的成功完成,等等。

因此,“机器人”程序应定时检查在线状况,以保证浏览时一定在在线状态、浏览完毕后一定不在在线状态。同时还要检查浏览进度,当浏览速度过慢时尝试挂断后重新拨号。

本部分讨论了实现“自动拨号”、“检查在线状况”、以及“自动挂断”这三个功能的若干方法,比较了诸方法各自的优劣,并总结给出了使用建议。本部分的示例程序将这三个功能的诸方法集成在一起,以便于大家对比使用(见下图)。

1. 自动拨号

方法1A:使用rnaui.dll

rnaui.dll是微软的“拨号网络用户接口”程序集,一般在

“\Windows\System”目录下。其中的RnaDial程序用于启动拨号。该程序可在命令行执行(在“开始”->“运行”中键入):

rundll32.exe rnaui.dll,RnaDial<拨号网络连接名>

其中的“RnaDial”和“<拨号网络连接名>”是区分大小写的。

但由于上述命令仅启动拨号窗口而未立即开始拨号,因此在程序中使用时还应再

送出模拟“回车”的按键:

方法1B:使用wininet.dll

wininet.dll是微软的Internet扩充函数集,一般在“\Windows\System”目录下。其中的 InternetAutodial、InternetAutodialHangup和InternetGetConnectedState三个函数分别可完成自动拨号、自动挂断和判断

在线状态等任务。InternetAutodial的定义为:

若将第一个参数(dwFlags)的值设为2,该函数无需用户干预就可自动拨号。但使用该函数有一个前提:即必须将“Internet 属性”->“连接”设成“始终拨打默认连接”(见下图)。

用InternetAutodial函数自动拨号的情况可参见下图。从图中可以看出,该方法可自动重试多次。具体的重试次数在默认连接的“设置”->“高级”中定义:

方法1C:使用RAS

RAS 是微软的远程访问服务(Remote Access Service)API集合。其中的 API函数RasDial可完成拨号任务。但由于该函数在使用上略显复杂而不太常用,故示例程序中未采纳。

自动拨号方法小结:rnaui方法使用起来最简单,又由于它不一定非要使用默认连接,因此也最灵活。但这种灵活恰恰又给它带来了弱点,即如果不提供连接名,该方法不会自动调用默认连接。此外,这种方法还有两个最大的缺点:一是仅拨号一次,若出现占线或没有响应等情况时不会自动重试;二是调用程序不容易得到拨号是否成功的返回值。相比之下,wininet方法虽仅能拨打默认连接(无默认连接时,使用第一个连接),但它可多次试拨,并且InternetAutodial函数等待拨号成功或所有试拨结束以便给调用程序返回拨号是否成功的值,因此,在“自动上网机器人”的环境中 wininet方法是最适宜的。

2. 检查在线状况

方法2A:wininet方法

若InternetGetConnectedState函数返回True,则为在线状态。该方法最大的缺点是:若当前连接不是用wininet方法建立的,则返回值可能不准确。

方法2B:查找窗口法

拨号连接成功后,下图所示的窗口一定存在(不管它是最小化在任务栏的最右端,或是开启为下图所示的状态):

用FindWindow API函数找到该窗口即意味着当前在线。此外,查找窗口法的另一个用处是查找“重新连接”窗口:当中途掉线时,操作系统往往会询问你是否重新连接,找到该窗口并发出模拟“回车”按键即可实现再拨号。

查找窗口法的缺点是:由于找窗口时需要提供窗口标题,因此即使使用的是默认连接也必须事先知道默认连接名。

方法2C:RAS 方法

先用RasEnumConnections函数返回整个RAS集合,再用RasGetConnectStatus函数判断第一个 RAS连接的状态。RAS方法的最大优点是:不管当前连接是否是用wininet建立的,RAS 方法均可对在线状态做出正确判断。

方法2D:注册表法

在线时,注册表的

“\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services \RemoteAccess”处有键值“Remote Connection”,且其值不为零;不在线时,该处无“Remote Connection”键值(当本次系统启动后从未拨号成功时),或者其值为零(表明曾拨号成功,但现在已断掉)。

检查在线状况之方法小结:由于wininet方法的局限性,一般我们应避免使用之;查找窗口法是可靠的,只是要知道连接名;因此我们推荐使用RAS 方法

和注册表法。

3. 自动挂断

方法3A:wininet法

使用InternetAutodialHangup函数。同样地,若当前连接不是用wininet

方法建立的,则返回值可能不准确(即不能成功挂断)。

方法3B:窗口查找法

找到图九所示的窗口,然后用ShowWindow API函数使之成为当前窗口,最后发出模拟+C的按键操作(从图九中可以看出,+C是“断开连接”按键的快捷方式)。

方法3C:RAS 法

用RasHangUp函数执行挂断。不管用何种方法建立的连接,RAS 法均能可靠地完成任务。

自动挂断方法小结:相比之下,窗口查找法和RAS 法是可以信赖的。

4. 本部分总结

综上所述,对于“自动拨号”、“检查在线状况”、以及“自动挂断”的各种方法,我们推荐“1A-2C-3C” 组合。当然各方法可综合使用(如加入2D、3B 等),以确保万无一失。在具体编程时还应注意:拨号后判断结果,如不成功应重新拨号;任务进行过程中定时检查在线状态,出现掉线后应及时处理;最后的挂断操作后应再查在线状态,以确保挂断成功。

下面是实例程序的完整代码。源代码中的全局定义已按照wininet、RAS、注册表等进行分类,各具体方法也均按序排列,以便于大家挑选使用。该程序的执行情况在本部分的开始处已给出(图六)。

' 程序三:自动拨号、自动挂断以及自动处理中途掉线

'

Option Explicit

' 有关 wininet 的全局定义

Private Const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2

Private Const INTERNET_CONNECTION_MODEM = 1

Private Declare Function InternetAutodial Lib

"wininet.dll" _

(ByValdwFlags As Long, ByValdwReserved As Long) As Long

Private Declare Function InternetAutodialHangup Lib _

"wininet.dll" (ByValdwReserved As Long) As Long

Private Declare Function InternetGetConnectedState Lib _

"wininet.dll" (ByReflpdwFlags As Long, ByVal _

dwReserved As Long) As Long

' 有关“窗口查找”的全局定义

Private Declare Function FindWindow Lib "user32" _

Alias "FindWindowA" (ByVallpClassName As String, _

ByVallpWindowName As String) As Long

Private Declare Function ShowWindow Lib "user32" _

(ByValhwnd As Long, ByValnCmdShow As Long) As Long

Private Const SW_SHOW = 5

' 有关 RAS 的全局定义

Private Const RASCS_DONE = &H2000&

Private ConstRAS_MaxEntryName = 256

Private ConstRAS_MaxDeviceType = 16

Private ConstRAS_MaxDeviceName = 128

Private Type RASCONN

dwSize As Long

hRasConn As Long

szEntryName(RAS_MaxEntryName) As Byte

szDeviceType(RAS_MaxDeviceType) As Byte

szDeviceName(RAS_MaxDeviceName) As Byte

End Type

Private Type RASCONNSTATUS

dwSize As Long

RasConnState As Long

dwError As Long

szDeviceType(RAS_MaxDeviceType) As Byte

szDeviceName(RAS_MaxDeviceName) As Byte

End Type

Private Ras_Buf(255) As RASCONN

Private Ras_Status As RASCONNSTATUS

Private lpcb As Long

Private lpcConnections As Long

Private Declare Function RasEnumConnections Lib _ "rasapi32.dll" Alias "RasEnumConnectionsA" (lprasconn _ As Any, lpcb As Long, lpcConnections As Long) As Long Private Declare Function RasGetConnectStatus Lib _ "rasapi32.dll" Alias "RasGetConnectStatusA" (ByVal _ hRasConn As Long, lpRASCONNSTATUS As Any) As Long Private Declare Function RasHangUp Lib "rasapi32.dll" _ Alias "RasHangUpA" (ByValhRasConn As Long) As Long

' 有关“注册表”的全局定义

Private Const HKEY_LOCAL_MACHINE = &H80000002

Private Declare Function RegOpenKey Lib "advapi32.dll" Alias _

"RegOpenKeyA" (ByValhKey As Long, ByVallpSubKey As _ String, phkResult As Long) As Long

Private Declare Function RegQueryValueEx Lib

"advapi32.dll" _

Alias "RegQueryValueExA" (ByValhKey As Long, ByVal _ lpValueName As String, ByVallpReserved As Long, lpType _ As Long, lpData As Any, lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" _ (ByValhKey As Long) As Long

Dim ret As Long

'自动拨号

Private Sub wininet拨号测试_Click()

If InternetAutodial(INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) _

Then MsgBox "已连接(wininet法)"

Private Sub rnaui拨号测试_Click()

ret = Shell("rundll32.exe rnaui.dll,RnaDial " + Text1, 1): DoEvents

SendKeys "{enter}", True: DoEvents

End Sub

'检查是否断线

Private Sub wininet方法_Click() ' wininet法检查是否断线If InternetGetConnectedState(INTERNET_CONNECTION_MODEM, 0) Then

MsgBox "在线."

Else

MsgBox "当前未连接。"

End If

End Sub

Private Sub 查找窗口法_Click() ' 查找窗口法检查是否断线ret = FindWindow("#32770", "重新连接")

If ret <> 0 Then

Call ShowWindow(ret, SW_SHOW)

SendKeys "{enter}", True: Exit Sub

End If

ret = FindWindow("#32770", "连接到 The95963")

If ret <> 0 Then

MsgBox "在线."

Else

MsgBox "当前未连接。"

End If

End Sub

Private Sub RAS方法_Click() ' RAS方法检查是否断线

Ras_Buf(0).dwSize = Len(Ras_Buf(0)) + 1

lpcb = 256 * Ras_Buf(0).dwSize

ret = RasEnumConnections(Ras_Buf(0), lpcb, lpcConnections)

If ret Then

MsgBox "出错!": Exit Sub

End If

Ras_Status.dwSize = Len(Ras_Status) + 2

ret = RasGetConnectStatus(Ras_Buf(0).hRasConn,

Ras_Status)

If ret = 0 And Ras_Status.RasConnState = RASCS_DONE Then MsgBox "在线."

Else

MsgBox "当前未连接。"

End If

Private Sub 注册表法_Click() ' 注册表法检查是否断线Dim SubKey As String, ValueName As String

Dim Data As Long, Result As Long

SubKey =

"System\CurrentControlSet\Services\RemoteAccess"

ret = RegOpenKey(HKEY_LOCAL_MACHINE, SubKey, Result)

If ret = 0& Then

ValueName = "Remote Connection"

ret = RegQueryValueEx(Result, ValueName, 0&, 0&, ByVal Data, 0&)

ret = RegQueryValueEx(Result, ValueName, 0&, 0&, Data, Len(Data))

If ret = 0& And Data <> 0 Then

MsgBox "在线!"

Else

MsgBox "当前未连接。"

End If

RegCloseKey (Result)

End If

End Sub

'自动挂断

Private Sub wininet法_Click() ' wininet法自动挂断

If InternetAutodialHangup(0) Then MsgBox "已挂断(wininet 法)"

End Sub

Private Sub 窗口查找法_Click() ' 窗口查找法自动挂断

ret = FindWindow("#32770", "连接到 The95963")

If ret <> 0 Then

Call ShowWindow(ret, SW_SHOW)

SendKeys "%c", True

MsgBox "已挂断(窗口查找法)"

End If

End Sub

Private Sub RAS法_Click() ' RAS法自动挂断

Ras_Buf(0).dwSize = Len(Ras_Buf(0)) + 1

lpcb = 256 * Ras_Buf(0).dwSize

ret = RasEnumConnections(Ras_Buf(0), lpcb, lpcConnections)

If ret Then

MsgBox "出错!": Exit Sub

End If

Ras_Status.dwSize = Len(Ras_Status) + 2

ret = RasGetConnectStatus(Ras_Buf(0).hRasConn,

机器人抓取装置位置控制系统系统校正装置设计

自动控制原理课程设计题目:机器人抓取装置位置控制系统校正装置设计 专业:电气工程及其自动化 : 班级:学号: 指导老师:职称: 州航空工业管理学院 机电工程学院 2011年12月

初始条件: 一个机器人抓取装置的位置控制系统为一单位负反馈控制系统,其传递函数为()()() 15.013 0++=s s s s G ,设计一个滞后校正装置,使系统的相 角裕度?=45γ。 设计容: 1.先手绘系统校正前的bode 图,然后再用MATLAB 做出校正前系统的bode 图,根据MATLAB 做出的bode 图求出系统的相角裕量。 2.求出校正装置的传递函数 3. 用MATLAB 做出校正后的系统的bode 图,并求出系统的相角裕量。 4.在matlab 下,用simulink 进行动态仿真,在计算机上对人工设计系统进行仿真调试,确使满足技术要求。 5.对系统的稳定性及校正后的性能说明 6.心得体会。

1频率法的串联滞后校正特性及方法 1.1特性:当一个系统的动态特性是满足要求的,为改善稳态性能,而又不影响其动态响应时,可采用此方法。具体就是增加一对靠的很近并且靠近坐标原点的零、极点,使系统的开环放大倍数提高β倍,而不影响开环对数频率特性的中、高频段特性。 1.2该方法的步骤主要有: ()1绘制出未校正系统的bode 图,求出相角裕量0γ,幅值裕量g K 。 ()2在bode 图上求出未校正系统的相角裕量εγγ +=期望处的频率 2c ω,2c ω作为校正后系统的剪切频率, ε用来补偿滞后校正网络2c ω处的相角滞后,通常取??=15~5ε。 ()3令未校正系统在2c ω的幅值为βlg 20,由此确定滞后网络的β值。 ()4为保证滞后校正网络对系统在2c ω处的相频特性基本不受影响,可 按10 ~ 2 1 2 2 2c c ωωτ ω= =求得第二个转折频率。 ()5校正装置的传递函数为()1 1++= s s s G C βττ ()6画出校正后系统的bode 图,并校验性能指标 2确定未校正前系统的相角裕度 2.1先绘制系统的bode 图如下:

机器人抓取运动目标轨迹规划与控制

I.引言 机器人抓取运动目标是指机器人基于内部控制系统的控制,完成运动目标的跟踪和抓取,是智能机器人的一个前沿应用课题,在工业、航天和娱乐等领域有良好的应用前景。在运动目标的捕捉中,一方面,机器人手爪必须快速跟踪并接近目标;另一方面必须能够感知环境以避开可能的障碍,其中状态反馈和路径规划需要很高的实时性和抗干扰能力。此外,系统还受到动力学约束、关节几何约束等限制,而这一切都必须在实时条件下完成。 抓取运动目标技术在航空航天、工业生产、遥感技术、军事技术、特殊环境作业等多领域有着广泛的应用。该技术的研究最典型的应用就在于太空卫星捕捉机器人,众所周知由宇航员来接近和捕捉正在旋转的卫星很危险而且困难,从而使人们意识到应该使用机器人进行太空服务,近年来越来越多的机器臂装配到了航天设备上。此外,抓取运动目标的技术还可以应用在工业生产过程中抓取装配线传送带上正在运动的零部件;球类机器人(如:足球机器人,排球机器人等);太空、深海等场合的自动对接和作业。 对于机器人抓取运动目标,其末端机械手的动作规划和目标检测等问题就需要传感技术与机器人控制技术的完美结合。目前,对于目标状态的测取一般采用图像传感(CCD摄像机),但是单视觉反馈有着它自身的缺陷,单摄像机模型往往能够获得较为精确的平面位置信息,而不能获得精确的深度信息。为此,在状态测取时,一般采用多摄像机模型或摄像机与位置传感器相结合模型。对于抓取运动目标动作规划目前一般存在有三种方法:直接瞄准法、比例导引法、以及预测-规划-执行( Prediction Planning and Execution,PPE) 方法。后文将具体讨论以上内容。 II.系统组成 下图是一个典型的机器人抓取运动目标的系统方框图。抓取运动咪表的机器人与一般的机器人相比,其操作对象大多为状态参数不确定的运动目标,同时机器人与目标之间的接触速度较高。因此必须着重研究以下问题: 实时状态测

喷漆机器人控制系统方案设计

喷涂机器人控制系统初步方案 一、控制系统组成框图 本控制系统采用了以PC104为核心,以步进电机驱动网为低层控制通道的开放式控制器。下图是整个控制系统的组成框图。

二、PC104模块选型 采用PC104是因为它有如下特点:结构小巧紧凑, 仅96 mm ×90 mm面积内集成了PC 机所有功能;采用自栈接的母线结构,级联牢固,易于扩充;整机功耗低;兼容性好,可以借鉴PC机成熟技术;外设丰富,应用简单。 本控制系统PC104模块选用研华PCM-3343F。其组成如下:核心模块DM&P V ortex86DX 的高性能低功耗CPU 模块,CPU 速度1.0 GHz,带有浮点运算单元,在板集成了256MB DDR2 SDRAM(最大可支持512MB)、显示控制器(支持LCD显示,最高分辨率为1024×768),以太网控制器等。带有PA TA硬盘接口1个,PC104扩展插槽1个,KB/MS插槽1个,USB2.0接口4个,16位GPIO口,RS-232接口3个,RS-232/422/485接口1个。 选择该嵌入式主板时,应注意: 1)购买时,要求将系统内存升级到512MB; 2)购买时,要求配齐以下配件: ①键盘及鼠标的接口线共2根(编号及图片如下); p/n: 1703060053p/n: 1700060202 ②VGA接口线1根(编号及图片如下); p/n: 1700000898

③US B×2接口线1根(编号及图片如下); p/n: 1703100260 ④RS-232×2接口线1根(编号及图片如下); p/n: 1701200220 ⑤RS-422/485接口线1根(编号及图片如下);p/n: 1703040157 ⑥IDE接口线1根(编号及图片如下); p/n: 1701440350 ⑦外接Li电池1个(编号及图片如下); p/n: 1750129010

机器人控制系统设计(毕业设计)文献综述

一、前言 1.课题研究的意义,国内外研究现状和发展趋势 1.1课题研究的意义 随着机器人在工业装配线的应用越来越广泛,工业环境对其控制系统的要求也越来越高,所以开放式机器人控制系统的设计具有工程实际意义。 课题以一四自由度关节型机器人研制为背景,设计机器人运动控制系统的硬件电路和软件结构,对机器人的运动控制电路进行设计,实现机器人按照预定轨迹或自主运动控制功能。 在机械工业中,应用机械手的意义可以概括如下: ①以提高生产过程中的自动化程度 应用机械手有利于实现材料的传送、工件的装卸、刀具的更换以及机器的装配等的自动化的程度,从而可以提高劳动生产率和降低生产成本。 ②以改善劳动条件,避免人身事故 在高温、高压、低温、低压、有灰尘、噪声、臭味、有放射性或有其他毒性污染以及工作空间狭窄的场合中,用人手直接操作是有危险或根本不可能的,而应用机械手即可部分或全部代替人安全的完成作业,使劳动条件得以改善。 ③可以减轻人力,并便于有节奏的生产 应用机械手代替人进行工作,这是直接减少人力的一个侧面,同时由于应用机械手可以连续的工作,这是减少人力的另一个侧面。因此,在自动化机床的综合加工自动线上,目前几乎都没有机械手,以减少人力和更准确的控制生产的节拍,便于有节奏的进行工作生产 随着机器人技术的发展,机器人应用领域的不断扩大,对机器人的性能提出了更高的要求,因此,如何有效地将其他领域(如图像处理、声音识别、最优控制、人工智能等)的研究成果应用到机器人控制系统的实时操作中,是一项富有挑战性的研究工作。而具有开放式结构的模块化、标准化机器人,其控制系统的研究无疑对提高机器人性能和自主能力,推动机器人技术的发展具有重大意义。 1.2国内外研究现状和发展趋势 随着机器人控制技术的发展,针对结构封闭的机器人控制器的缺陷,开发“具有开放式结构的模块化、标准化机器人控制器”是当前机器人控制器的一个发展方向。近几年,日本、美国和欧洲一些国家都在开发具有开放式结构的机器人控制器,如日本安川公司基于PC开发的具有开放式结构、网络功能的机器人控制器。我国863计划智能机器人主题也已对这方面的研究立项。 由于适用于机器人控制的软、硬件种类繁多和现代技术的飞速发展,开发一个结构完全开放的标准化机器人控制器存在一定困难,但应用现有技术,如工业PC

机器人分布式控制系统设计与实现

机器人分布式控制系统设计与实现 1引言 目前,机器人系统的特点是开放式机器人控制,强调结构化、模块化、 可扩展性、交互性,是对机器人设计结构单一、信息封闭、缺少交互性缺点的突破。分层分布式控制系统采用集中管理,分散控制方式,这种控制方法优点体 现在:集中监控和管理,管理和现场分离,管理更加综合化和系统化;实现分 散控制可使各功能模块的设计、装配、调试以及维护相互独立,系统控制的危 险性分散,可靠性提高,投资减小;采用网络通信技术,可根据需要增加以微 处理器为核心的功能模块,具有良好的系统开放性、扩展性和升级特性。 本论文详细介绍了一种分层分布式控制系统的设计方案,系统由上到下分 为主控中心决策层、车载PC运算层、下位机驱动子层以及位置反馈子层。主 控中心决策层是系统的主层,可以是台式机或笔记本电脑,基于VC++编译环 境设计的人机交互界面,满足友好、便于操作的要求,主控中心决策层的功能 是总体规划和分配任务,对机器人进行远程监控;车载PC运算层为一台笔记 本电脑,基于VC++编译环境设计了控制界面,通过无线网卡与主控中心决策 层进行数据传输,采用面向连接可靠的TCP传输控制协议,保证数据传输的可 靠性;下位机驱动子层和位置反馈子层是相互独立的功能模块,与车载PC运 算层之间通过串口进行通信;下位机驱动子层是一个完整的直流电 机闭环控制系统,包括CPU、控制芯片、驱动芯片以及增量式光电编码器;位置反馈子层通过CPU的I/O口和中断得到机器人车轮轴转角信息,结合机器 人机械系统的实际尺寸计算机器人中心的实际位置信息,处理好的位置信息通 过串口反馈给车载PC运算层。该控制系统应用在国家自然科学基金资助项目 和国家重点基础研究发展计划973项目的移动机器人平台上,运动控制测试结 果表明,分层分布式控制方式控制精度高,稳定性好,系统响应迅速;同时该 控制系统具有超强的计算能力和二次开发潜力,根据项目研究需要可在各个子 层进行分布式扩展,比如在下位机驱动子层和位置反馈子层的同级层中扩展传 感器功能子层,增加机器人的智能。该控制系统为项目的实验工作奠定基础。 2分层分布式控制系统设计 1. 基于VC++的主控中心决策层设计 主控中心决策层的作用是总体规划和分配任务,对机器人进行远程监控。 基于VC++编译环境,采用模块化方法对人机交互系统进行设计,分为网络数 据传输模块、运动参数输入模块、轨迹显示模块、视觉监控模块。如图

机器人的组成系统

一.工业机器人组成系统 工业机器人由主体、驱动系统和控制系统三个基本部分组成。主体即机座和执行机构,包括腰部、肩部、肘部和手腕部,其中手腕部有3个运动自由度。驱动系统包括动力装置和传动机构,用以使执行机构产生相应的动作。控制系统是按照输入的程序对驱动系统和执行机构发出指令信号,并进行控制。 工业机器人按执行机构运动的控制机能,又可分点位型和连续轨迹型。点位型只控制执行机构由一点到另一点的准确定位,适用于机床上下料、点焊和一般搬运、装卸等作业;连续轨迹型可控制执行机构按给定轨迹运动,适用于连续焊接和涂装等作业。 工业机器人按程序输入方式区分有编程输入型和示教输入型两类。编程输入型是将计算机上已编好的作业程序文件,通过RS232串口或者以太网等通信方式传送到机器人控制柜。 示教输入型的示教方法有两种:一种是由操作者用手动控制器(示教操纵盒),将指令信号传给驱动系统,使执行机构按要求的动作顺序和运动轨迹操演一遍;另一种是由操作者直接领动执行机构,按要求的动作顺序和运动轨迹操演一遍。在示教过程的同时,工作程序的信息即自动存入程序存储器中在机器人自动工作时,控制系统从程序存储器中检出相应信息,将指令信号传给驱动机构,使执行机构再现示教的各种动作。示教输入程序的工业机器人称为示教再现型工业机器人。 几个问题: (1)巨轮机器人JLRB20KG机器人是点位型还是连续轨迹型? (2)能不能编写一个简单程序,使机器人能够的末端能够走一个圆? (3)能不能控制机器人中每一个电机的输出功率或扭矩? (4)机器人每一个关节从驱动电机到执行机构的传递效率有没有? 二.工业机器人的主体 机器人本体由机座、腰部、大臂、小臂、手腕、末端执行器和驱动装置组成。共有六个自由度,依次为腰部回转、大臂俯仰、小臂俯仰、手腕回转、手腕俯仰、手腕侧摆。机器人采用电机驱动,电机分为步进电机或直流伺服电机。直流伺服电机能构成闭环控制、精度高、额定转速高、但价格较高,而步进电机驱动具有成本低、控制系统简单。 各部件组成和功能描述如下: (1)基座:基座是机器人的基础部分,起支撑作用。整个执行机构和驱动装置都安装在基座。 (2)腰部:腰部是机器人手臂的支撑部分,腰部回转部件包括腰部支架、回转轴、支架、谐波减速器、制动器和步进电机等。 (3)大臂:大臂和传动部件 (4)小臂:小臂、减速齿轮箱、传动部件、传动轴等,在小臂前端固定驱动手腕三个运

工业机器人的技术参数、控制系统、主要结构汇总

一、机器人的主要技术参数 机器人的技术参数反映了机器人可胜任的工作、具有的最高操作性能等情况,是设计、应用机器人必须考虑的问题。机器人的主要技术参数有自由度、分辨率、工作空间、工作速度、工作载荷等。 1、自由度 机器人具有的独立坐标轴运动的数目。机器人的自由度是指确定机器人手部在空间的位置和姿态时所需要的独立运动参数的数目。手指的开、合,以及手指关节的自由度一般不包括在内。.机器人的自由度数一般等于关节数目。机器人常用的自由度数一般不超过5~6个。 2、关节(Joint) 即运动副,允许机器人手臂各零件之间发生相对运动的机构。 3、工作空间

机器人手臂或手部安装点所能达到的所有空间区域。其形状取决于机器人的自由度数和各运动关节的类型与配置。机器人的工作空间通常用图解法和解析法两种方法进行表示。 4、工作速度 机器人在工作载荷条件下、匀速运动过程中,机械接口中心或工具中心点在单位时间内所移动的距离或转动的角度。 5、工作载荷 指机器人在工作范围内任何位置上所能承受的最大负载,一般用质量、力矩、惯性矩表示。还和运行速度和加速度大小方向有关,一般规定高速运行时所能抓取的工件重量作为承载能力指标。 6、分辨率 能够实现的最小移动距离或最小转动角度。 7、精度 重复性或重复定位精度:指机器人重复到达某一目标位置的差异程度。或在相同的位置指令下,机器人连续重复若干次其位置的分散情况。它是衡量一列误差值的密集程度,即重复度。 二、机器人的控制系统 1、机器人的控制系统 “控制”的目的是使被控对象产生控制者所期望的行为方式。.“控制”的基本条件是了解被控对象的特性。“实质”是对驱动器输出力矩的控制。

六自由度机器人控制系统设计

1前言 1.1 焊接机器人的发展历史与现状 现代机器人的研究始于20世纪中期,其技术背景是计算机和自动化的发展,以及原子能的开发利用。美国原子能委员会下属的阿尔贡研究所为解决可代替人进行放射性物质的处理问题,在1947年研制了遥控式机械手臂;1948年又相继开发了电气驱动式的主从机械手臂,从而解决了对放射性物质的进行远距离操作的问题。1954年,美国科学家戴沃尔最先提出工业机器人的概念,并申请了新的专利。其主要特点是借助伺服技术来控制机器人的关节,并利用人手对机械手臂进行动作示教,机械手臂能实现人物动作的记录和再现。这就是示教再现机械臂,现在所用的机械手臂差不多都采用这种控制方式。伴随着现代社会的发展,为了提高生产效率,稳定和提高产品的质量,加快实现工业生产机械化,改善工人劳动条件,已经大大改进了机械手臂的性能,并大量应用于实际生产中,尤其是在高压、高温、多粉尘、高噪音和重度污染的场合。焊接机器人的诞生可以追溯到上世纪70年代,是由日本发那科(FANUC)公司生产的小型机器人改进的,受限于当时的技术手段以及高昂的造价,使得当时的焊接机器人不能得到很好的应用。机械手臂是一种工业机器人,它由控制器、操作机、检测传感装置和伺服驱动系统组成,是一种可以自动控制、仿人手操作、可以重复编程、可以在三维空间进行各种动作的自动化生产设备。机械手臂首先是在汽车制造工业中使用的,它一般可进行焊接、上下料、喷漆以及搬运。它可代替人们进行从事繁重、单调的重复劳动作业,并且能够大大改善劳动生产率,提高产品的质量[1]。 到了90年代初,随着计算机技术、微电子技术、网络技术等的快速发展,机器人技术也得到了飞速发展。工业机器人的制造水平、控制速度和控制精度、可靠性等不断提高,而机器人的制造成本和价格却不断下降。在西方国家,由于劳动力成本的提高为企业带来了不小的压力,而机器人价格指数的降低又恰巧为其进一步推广应用带来了契机,采用机器人的利润显然要比采用人工所带来的利大,使得焊机机器人得到了推广,同时技术的进步也使得焊机机器人技术得到很大提高。 进入新世纪之后,由于各国对焊接机器人的不断重视,使得焊接机器人技术取得了很大的进步。同时由于其焊机精度及更低的生产成本,也使得它得到了越来越多的应用。目前,焊接机器人主要用于装卸、搬运、焊接、铸锻以及热处理等方面,无论数量、品种和性能方面都还不能满足工业生产发展需要。在一些特殊的行业,使用它来代替人工操作的,主要是在危险作业、多粉尘、高温、噪声、工作空间小等的不适于人工作业的环境。 1.2 焊接机器人发展趋势

机器人抓取装置位置控制系统校正装置设计

机器人抓取装置位置控 制系统校正装置设计 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

自动控制原理课程设计题目:机器人抓取装置位置控制系统校正装置设计 专业:电气工程及其自动化 姓名: 班级:学号: 指导老师:职称: 郑州航空工业管理学院 机电工程学院 2011年12月

初始条件: 一个机器人抓取装置的位置控制系统为一单位负反馈控制系统,其传递函数为()()() 15.013 0++=s s s s G ,设计一个滞后校正装置,使系统的相角裕 度?=45γ。 设计内容: 1.先手绘系统校正前的bode 图,然后再用MATLAB 做出校正前系统的bode 图,根据MATLAB 做出的bode 图求出系统的相角裕量。 2.求出校正装置的传递函数 3. 用MATLAB 做出校正后的系统的bode 图,并求出系统的相角裕量。 4.在matlab 下,用simulink 进行动态仿真,在计算机上对人工设计系统进行仿真调试,确使满足技术要求。 5.对系统的稳定性及校正后的性能说明 6.心得体会。

1频率法的串联滞后校正特性及方法 特性:当一个系统的动态特性是满足要求的,为改善稳态性能,而又不影响其动态响应时,可采用此方法。具体就是增加一对靠的很近并且靠近坐标原点的零、极点,使系统的开环放大倍数提高β倍,而不影响开环对数频率特性的中、高频段特性。 该方法的步骤主要有: ()1绘制出未校正系统的bode 图,求出相角裕量0γ,幅值裕量g K 。 ()2在bode 图上求出未校正系统的相角裕量εγγ +=期望处的频率2c ω,2 c ω作为校正后系统的剪切频率,ε用来补偿滞后校正网络2c ω处的相角滞后,通常取??=15~5ε。 ()3令未校正系统在2c ω的幅值为βlg 20,由此确定滞后网络的β值。 ()4为保证滞后校正网络对系统在2c ω处的相频特性基本不受影响,可按 10 ~ 2 1 2 2 2c c ωωτ ω= = 求得第二个转折频率。 ()5校正装置的传递函数为()1 1 ++= s s s G C βττ ()6画出校正后系统的bode 图,并校验性能指标 2确定未校正前系统的相角裕度 先绘制系统的bode 图如下:

面向智能家居的机器人控制系统设计

摘要 机器人技术涉及领域众多,包括电子、机械学、自动控制、传感器技术等,是一门多技术集合的领域。随着工业自动化在世界的飞速发展,移动机器人在生产生活中的地位逐渐提高。文章主要讲述了家庭机器人的设计过程,以及机械手的设计方案。 以AT89C51 单片机作为本次设计核心,借助L298N电机控制芯片以完成对直流电机的控制,比如如何启停,如何改变方向,改变行驶速度。以应对移动机器人所需完成任务动作的要求。在如何选择合适的机器人设计中,采用了脉冲宽度调制技术对电机进行控制,为了达到期望值采用调节占空比大小来实现。 关键词:智能家居机器人;AT89C51 单片机;L298N电机控制芯片;PWM控制;电机控制。 ABSTRACT Robot technology involves many fields, including electronics, mechanics, automatic control, sensor technology and so on. It is a field of multi technology collection. With the rapid development of industrial automation in the world, the position of mobile robots in production and life is gradually improving. This article mainly describes the design process of the family robot and the design plan of the manipulator. With the AT89C51 MCU as the core of this design, the control chip of L298N motor is used to control the DC motor, such as how to start and stop, how to change direction and change the speed of driving. In order to meet the requirements of mobile robot for completing tasks. In how to choose the suitable robot design, the pulse width modulation technology is used to control the motor. In order to achieve the desired value, the size of the duty ratio is realized. Key words:Screening manipulator;AT89C51 monolithic integrated circuit,;LN298 motor control chip,;PWM technology;motor control. 第一章绪论 1.1 智能家居机器人的发展现状 机器人大家都不陌生,我们首先来谈谈移动机器人。移动机器人是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。[12]随着传感器技术和自动控制技术的不断发展,机器人的性能得到不断提高。机器人的应用也不再局限与工业生产以及军事领域,它同时还广泛于民用领域,如除草、灌溉、导航、室内清洗和安全防范等等。

机器人抓取装置位置控制系统校正装置设计

自动控制原理课程设计题目:机器人抓取装置位置控制系统校正装置设计 专业:电气工程及其自动化 姓名: 班级:学号: 指导老师:职称: 郑州航空工业管理学院 机电工程学院

2011年12月 初始条件: 一个机器人抓取装置的位置控制系统为一单位负反馈控制系统,其传 递函数为G。s = 3,设计一个滞后校正装置,使系统的相 s(s+1 (0.5S + 1 ) 角裕度吋-45。 设计内容: 1先手绘系统校正前的bode图,然后再用MATLAB做出校正前系统的bode图,根据MATLAB做出的bode图求出系统的相角裕量。 2.求出校正装置的传递函数 3.用MATLAB做出校正后的系统的bode图,并求出系统的相角裕量。4在matlab下,用simulink进行动态仿真,在计算机上对人工设计系统进行仿真调试,确使满足技术要求。 5对系统的稳定性及校正后的性能说明6.心得体会。

1频率法的串联滞后校正特性及方法 1.1特性:当一个系统的动态特性是满足要求的,为改善稳态性能,而又不影响其动态响应时,可采用此方法。具体就是增加一对靠的很近并且靠近坐标原点的零、极点,使系统的开环放大倍数提高 [倍, 而不影响开环对数频率特性的中、高频段特性。 1.2该方法的步骤主要有: 1绘制出未校正系统的bode图,求出相角裕量°,幅值裕量久g。 2在bode图上求出未校正系统的相角裕量二期望」处的频率 ‘2,'2作为校正后系统的剪切频率,;用来补偿滞后校正网络,2处的相角滞后,通常取;=5?15。 3令未校正系统在^2的幅值为20lgi,由此确定滞后网络的[值。 4为保证滞后校正网络对系统在-c2处的相频特性基本不受影响,可按丄 二二?上求得第二个转折频率。 T 2 10 5校正装置的传递函数为Gc s = - S 1 削s +1 6画出校正后系统的bode图,并校验性能指标 2确定未校正前系统的相角裕度 2.1先绘制系统的bode图如下:

机器人系统设计

机器人系统设计 1微动并联机器人[2]“微动并联机器人的研制”课题研制了1台六自由度微动机器人,以其为核心建立了一套包括三自由度粗动平台、 显微视觉系统、控制系统及周边辅助设备的实验平台,并重点围绕微 操作机器人的机构选型、误差、显微视觉及系统标定等方面做了较深 入的研究。具体阐述如下:(1)通过对国内外微动机构的分析与综合, 设计出了创意独特、两级解耦的串并联微动机器人,这在微动机器人 领域尚属首例。此串并联微动机器人有六个自由度,由上(3RPS机构)、下(3RRR机构)两机构并联串接而成[2],它具有上下机构运动解耦,运动学、动力学及误差分析简便,控制成本低,加速度大,可完成粗调、细调2种功能等特点。其具体技术指标如下:外形尺寸为 100mm×100mm×100mm,工作空间为40μm×40μm×24μm,运动分辨 率为0.2μm。(2)为了合理地分配精度,充分评估各项误差对末端执行器位姿的,我们利用矢量分析的方法建立了串并联机构结构参数误差 与位姿误差的数学模型,分析了各项结构误差对末端位姿的影响水准,并得出了若干对微操作机器人设计、加工及安装有普遍指导意义的结论。(3)对压电陶瓷驱动器的驱动特性、柔性铰链的机械性能、微动机 器人末端位姿的选择、微动机器人的控制方式及图像处理等,做了较 深入的研究,积累了很多有价值的经验。(4)提出了对实验环境的若干 改进措施。 2面向生物工程的微操作机器人系统大多数机器人是按照给定的程序 做简单重复的动作(如焊接、装配、搬运等),不需要太强的智能。而 对于微操作机器人来说,情况就有很大不同。因为被操作对象十分微小,操作人员不可能十分清楚它们的精确位置,况且外界环境的变化 使得它们的相对位置不定,微观世界里的物理法则及力学特性与宏观 世界也大相径庭,这就要求机器人有很强的自动识别能力和决策能力。同时,温度变化、机械振动、噪声波动、机械蠕变等不稳定因素扰动,以及非线性微动特性、传递累积误差的影响,也使得微操作机器人必 须具有很强的自我调整能力(即自我实时标定及补偿能力)。因此微操

移动机器人控制系统设计

? 197 ? ELECTRONICS WORLD?技术交流 移动机器人控制系统设计 广东工业大学 侯晓磊 随着移动机器人在人们社会生活中的地位不断提高,设计一种 可靠、稳定的机器人控制系统越发的变得重要起来,以NI公司的MyRIO控制器以其安全可靠、编程开发简单而脱颖而出。本文基于上述控制器、L298N电机驱动芯片Labview设计一种移动机器人控制软硬件系统系统,经验证,该系统运行稳定、可靠、高效。 1.前言 新一轮科技革命引发新一轮产业革命。“互联网+制造”构建工业4.0,智能制造成为我国由制造大国向制造强国转变的关键一步,移动机器人作为智能制造中的一个组成部分,作用越发的变得举足轻重。本文给出一种以MyRIO+L298N+Labivew的移动机器人控制系统。 2.IN MyRIO控制器 NI myRIO是NI最新设计的嵌入式系统设计平台。NI myRIO中内含双核ARM Cortex-A9,实时性高,并且还可以便捷定制FPGA I/ O,给开发设计人员提供更好的设计复杂系统的平台。 NI myRIO作为可重配置控制器具有以下重要特点: 易于上手使用:引导性安装和启动界面可使开发人员更快地熟悉操作,协助开发人员快速了解工程概念,完成设计任务。编程设计简单,利用实时应用、内置WiFi等功能,开发人员可以实现远程部署应用,“无线”操控。 板载资源众多:有丰富的数字I/O接口,提供SPI串行外设接口、PWM脉宽调制输出端口、正交编码器输入端口、UART异步收发器端口和I2C总线接口、多个单端模拟输入、差分模拟输入和带参考的模拟输入等可供选择的资源。 另外,NI MyRIO还提供可靠性能较好的控制器保护电路,防止由于意外操作造成控制器不可恢复性损坏,总之,NI MyRIO为开发人员提供了一个编程简易,设计电路方便,不用刻意担心意外操作而影响控制器使用的平台。 3.L298N电机控制芯片 L298N是一种用来驱动电机的集成电路,可以较稳定的输出平稳电流和较强的功率。工作均电流为2A,最高可达4A,最高输出电压为50V,能够带动带有感性元件的负载。控制器可以直接通过输入输出口与电机驱动芯片联接,从而方便控制驱动芯片的输出。如将芯片驱动直流电机时,可以直接与步进电机相联接,通过调节控制器输出实现步进电机的的正反转功能当控制直流电机时,可以通过调节控制芯片的电压信号的极性,PWM波的占空比,从而实现直流电机转速和转向的调节。4.系统硬件部分设计 系统采用MyRIO整体框架,外围增设电机驱动电路、避障驱动电路、里程计电路、液晶显示电路、陀螺仪电路。通过MyRIO主控制发送控制信号驱动移动机器人运动,实时通过外围传感器获取位置信息反馈给主控制 器,然后控制器通过闭环系统调节当前位置以保证对目标位置的追踪。 图1 5.系统软件部分设计 系统软件部分采用经典控制理论的闭环控制系统,将电机、主控制器和外设传感器构成闭环系统,通过调节闭环统的参数,来使 移动机器人以较小偏差追踪按照预定轨迹。 图2 6.结束语 本文介绍了基于NI MyRIO控制器设计移动机器人控制系统,通过仿真和实物测试,能较好的完成对任务的追踪踪。 参考:From Student to Engineer:Preparing Future Innova-tors With the NI LabVIEW RIO Architecture https://www.wendangku.net/doc/a616610955.html,.2014-04-01;王曙光,袁立行,赵勇.机器人原理与设计.人民邮电出版社,2013 。

自平衡两轮机器人的控制系统设计

第17卷第6期机电产品开崖与钏崭V01.17,No.6』竺竺兰望=::—:=一竺塑竺竺苎堕:!唑兰竺!!堕!垒塑!兰!坐!型竺型些兰里里兰 自平衡两轮机器人的控制系统设计 傅继奋1,孙汉旭1,王亮清2,肖爱平1,赵勇1,余忠华t (1.北京邮电大学自动化学院,北京100876;2.北京航天航空大学机器人研究所,北京1008761摘要:介绍了基于LF2407ADSP的两轮机器人控制器的设计,以及电机控制pID算法。利用这个控制器实现了对两轮机器人样机的轨迹控制。 关键词:两轮机器人;PID控制;DSP控制系统 中囤分类号:TN492文献标识码:A文章编号:1002—6673(2004)06—075—03 O引言 由于移动机器人在各行各业具有广泛的应用前景, 对移动机器人的研究已成为机器人研究的一个热点研究 领域。其中轮式机器人由于其机构简单、成本低等特 点,成为移动机器人研究的一个方向。目前大多数轮式 机器人的载体都是具有导向轮的三轮或四轮小车布局,l 需要通过导向轮来平衡电机或马达的驱动力矩,从而使 得驱动力矩能够克服摩擦力矩,驱动小车的运动;本文 介绍的两轮机器人属于差动轮式移动机器人,其主要的 特点是没有冗余的平衡轮或导向轮作为平衡轮,其驱动 方式也不同于一般的轮式机器人的驱动方式,驱动电机 的主要功能是保持重心向下不动的前提下,驱动两轮机 器人的两轮相对重心作转动,从而使其前进、后退、灵 活转向和原地转圈。 两轮机器人的控制系统决定着机器人性能。我们采 用了LF2407ADSP芯片,作为机器人的主控芯片,它 具有高速低功耗,多电机控制等优点。本文将详细介绍 基于该芯片的两轮机器人控制器的硬件及软件结构。 1两轮机器人控制系统设计 我们设计的两轮机器人采用差动轮式驱动方式,具 有机构简单,运动控制简单、灵活,能够使机器人方便 的实现前进、后退,灵活的改变现在的运动方向,并能 在狭隘的空间中实现快速的自由移动和绕自身几何中心j的零半径转弯等特点。图1为这种鼹轮机器人的结构简图,其两轮分别由两个电机驱动,每台电机与一个轮构 成一个速度闭环系统。两个轮子外缘设计了防倾倒半球 外壳,这种设计使得机器人在复杂环境中永远保持平——收稿日期:2004—05—31 作者简介:傅继奋(1977一),男,硕士研究生。研究领域:机:器人。 图l两轮机器人结构简图 鸭l岛融ch阳删知嘴0f t帅训蒯蝴 衡,不至于倾倒,永保其运动能力。 两轮机器人控制系统的硬件需要解决的主要问题是:①每个轮子的速度检测;②两轮机器人行驶距离的检测;③控制系统可以对每个车轮进行单独的控制;④控制系统应具有抗干扰能力。两轮机器人样机的驱动为两个直流力矩电机。两个增量式光电码盘用于检测每个车轮的转速,以便进行速度和位置反馈。两个红外传感器用于避碰检测。无线串口通信模块用于与控制计算机之间的通讯,进行自主的路径规划。航模无线接受模块用于接受FU7rABA航模无线遥控器的控制。两轮机器人 光电码盘1 光电码盘2 75

机器人的基本结构原理

教案首页 课程名称农业机器人任课教师李玉柱第2章机器人的基本结构原理计划学时 3 教学目的和要求: 1.弄清机器人的基本构成; 2.了解机器人的主要技术参数; 3.了解机器人的手部、腕部和臂部结构; 4.了解机器人的机身结构; 5.了解机器人的行走机构 重点: 1.掌握机器人的基本构成 2.弄清机器人都有哪些主要技术参数 3.机器人的手部、腕部和臂部结构 难点: 机器人的手部、腕部和臂部结构 思考题: 1.机器人由哪些部分组成 2.机器人的主要技术参数有哪些 3.机器人的行走机构共分几类,请想象未来的机器人能 否有其它类型的行走机构

第2章概论 教学主要内容: 2.1机器人的基本构成 2.2机器人的主要技术参数 2.3人的手臂作用机能初步分析 2.4机器人的机械结构构成 2.5机器人的手部 2.6机器人的手臂 2.7机器人的机身 2.8机器人的行走机构 本章介绍了机器人的基本构成、主要技术参数,人手臂作用机能,在此基础上对机器人的手部、手腕、手部、。机身、行走机构等原理及相关的结构设计进行讨论,使学生对机器人的机构和原理有较为清楚的了解。 2.1机器人的基本构成 简单地说:机器人的原理就是模仿人的各种肢体动作、思维方式和控制决策能力。 不同类型的机器人其机械、电气和控制结构也不相同,通常情况下,一个机器人系统由三部分、六个子系统组成。这三部分是机械部分、传感部分、控制部分;六个子系统是驱动系统、机械系统、感知系统、人机交互系统、机器人-环境交互系统、控制系统等。如图2-1所示。

●是由关节连在一起的许多机械连杆的集合体, 关节通常分为转动关节和移动关节,移动关节允许连杆做直线移动,转动关节仅允许连杆之间发生旋转运动。 个主要部●常规的驱 接地与臂、腕或手上的机械连杆或关节连接在一起,也可以使用齿轮、带、链条等机械传动机构间接传动。 ●感知系统 ....由一个或多个传感器组成,用来获取内部和外部环境中的有用信息,通过这些信息确定机械部件各部分的运行轨迹、速度、位置和外部环境状态,使机械部件的各部分按预定程序或者工作需要进行动作。传感器的使用提高了机器人的机动性、适应性和智能化水平。 ●控制系统 ....其任务是根据机器人的作业指令程序以及从传感器反馈回来的信号支配机器人的执行机构去完成规定的运动和功能。若机器人不具备信息反馈特征,则为开环控制系统;若具备信息反馈特征,则为闭环控制系统。根据控制原理,控制系统又可分为程序控制系统、

机器人控制系统设计

选修结课设计 机器人控制系统设计 授课教师 学院名称工程学院专业名称电子工程

摘要 随着科学技术的发展和人们生活水平的不断提高,人们的日常生活与移动机器人的关系越来越密切。本文将介绍一种用智能手机控制机器人的设计,主要采用STC89S52单片机作为机器人的检测和控制核心;采用自己设计的Android手机软件通过蓝牙对数据进行传输,从而把信号反馈到单片机中实现控制,此软件可以新增各种控制功能,本文将简单介绍自己已成功设计出的功能。本设计结构较简单,较容易实现,但具有高度的智能化、人性化,一定程度体现了智能。 关键词:机器人Android软件蓝牙控制

Design of Control System for Mobile Robot Li Yu (College of Engineering,South China Agricultural University,Guangzhou 510642,China) Abstract: With the development of science and technology and the improvement of people's living standard,the relationship between daily life and mobile robot people more and more closely. This article introduces a kind of use smartphone to control the robot's design,mainly adopts STC89S52 single-chip microcomputer as the robot detection and control core; Using their own design of the Android mobile phone software to transmit data via bluetooth,and signal feedback to the single-chip microcomputer control,the software can add all kinds of control functions,this article will simply introduce yourself successfully designed function. The design structure is relatively simple,relatively easy to implement,but are highly intelligent,humane,to a certain extent reflects the intelligence. Key words: Mobile Robot Android software Bluetooth Control

基于机器视觉的智能导览机器人控制系统设计

1引言 移动机器人是机器人学一个重要分支,且随着相关技术的迅速发展,它正向着智能化和多样化方向发展,应用广泛,几乎渗透所有领域[1]。于春和[2]采用激光雷达的方式检测道路边界,效果较好,但干扰信号很强时,就会影响检测效果。付梦印[3]等提出以踢脚线为参考目标的导航方法,可提高视觉导航的实时性。 这里采用视觉导航方式,机器人在基于结构化道路的环境下实现道路跟踪,目标点的停靠,以及导游解说,并取得较好的效果。 2导览机器人简介 导览机器人用在大型展览馆、博物馆或其他会展中心, 引导参访者沿着固定路线参访,向参访者解说以及进行简单对话。因此导览机器人必须具有自主导航、路径规划、智能避障、目标点的停靠与定位、语音解说以及能与参访者进行简单对话等功能,并具有对外界环境快速反应和自适应能力。基于层次结构,导览机器人可分为:人工智能层、控制协调层和运动执行层。其中人工智能层主要利用CCD摄像头规划和自主导航机器人的路径,控制层协调完成多传感信息的融合,而运动执行层完成机器人行走。图1为智能导览机器人的总体结构框图[4]。3导览机器人硬件设计 3.1人工智能层硬件实现 考虑到移动机器人控制系统要求处理速度快、方便外围设备扩展、体积和质量小等要求,因此上位机选用PC104系统,其软件用C语言编程。采用USB摄像头,采集机器人前方的视觉信息,为机器人视觉导航,路径规划提供依据。外设麦克和扬声器,当机器人到达目标点后,进行导览解说。 3.1.1控制协调层的硬件实现 机器人传感器的选取应取决于机器人的工作需要和应 基于机器视觉的智能导览机器人控制系统设计 张伟,鲁守银,谭林 (山东建筑大学信息与电气工程学院,山东济南250101) 摘要:在研究机器视觉的移动机器人导航技术的基础上,基于层次结构,简单介绍导览机器人控制系统的总体方案及软硬件设计。采用图像处理中的边缘检测和模板匹配方式进行机器人的视觉导航,使机器人在结构化道路环境下能够自动躲避障碍物,停靠到目标点,并能向参访者导览解说,最后验证了该系统的有效性和优越性。 关键词:导览机器人;视觉导航;模板匹配;系统设计 中图分类号:TP242.6+2文献标识码:A文件编号:1674-6236(2009)09-0106-03 Design of intelligent tour guide robot control system based on machine vision ZHANG Wei,LU Shou-yin,TAN Lin (School of Information and Electric Engineering,Shandong Jianzhu University,Ji’nan250101,China) Abstract:On the basis of researching machine vision of mobile robot navigation,this paper introduces the total solution and hardware and software design of tour guide robot control system based on hierarchical structure.The system carries on vision navigation with the style of edge detecton and template matching among the image processing.This method makes the robot can avoid the obstacles automatically and park in the destination on the structured road,and explain to the visi-tors.Finally,the effectiveness and superiority of the system design are verified. Key words:tour guide robot;vision navigation;template matching;system design 收稿日期:2009-04-01稿件编号:200904002 作者简介:张伟(1984-),男,江苏泰州人,硕士研究生。研究方向:机器人视觉与图像处理。 图1智能导览机器人总体结构框图

相关文档
相关文档 最新文档