北航惯性导航综合实验四实验报告.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北航惯性导航综合实验四实验报告

基于运动规划的惯性导航系统动态实验 二零一三年六月十日 实验4.1 惯性导航系统运动轨迹规划与设计实验 一、实验目的 为进行动态下简化惯性导航算法的实验研究,进行路径和运动状态规划,以验证不同运动状态下惯导系统的性能。通过实验掌握步进电机控制方法,并产生不同运动路径和运动状态。 二、实验内容 学习利用6045B 控制板对步进电机进行控制的方法,并控制电机使运动滑轨产生定长运动和不同加速度下的定长运动。 三、实验系统组成 USB_PCL6045B 控制板(评估板)、运动滑轨和控制计算机组成。 四、实验原理 IMU安装误差系数的计算方法 USB_PCL6045B 控制板采用了USB 串行总线接口通信方式,不必拆卸计算机箱就可以在台式机或笔记本电脑上进行运动控制芯片PCL6045B 的学习和评估。 USB_PCL6045B 评估板采用USB 串行总线方式实现评估板同计算机的数据交换,由评估板的FIFO 控制回路完成步进电机以及伺服电机的高速脉冲控制,任意2 轴的圆弧插补,2-4 轴的直线插补等运动控制功能。USB_PCL6045B 评估板上配置了全部PCL6045B 芯片的外部信号接口和增量编码器信号输入接口。由 USB_PCL6045B 评估测试软件可以进行PCL6045B 芯片的主要功能的评估测试。 图4-1-1USB_PCL6045B 评估板原理框图 如图4-1-1 所示,CN11 接口主要用于外部电源连接,可以选择DC5V 单一电源或DC5V/24V 电源。CN12 接口是USB 信号接口,用于USB_PCL6045B 评估板同计算机的数据交换。 USB_PCL6045B 评估板已经完成对PCL6045B 芯片的底层程序开发和硬件资源与端口的驱动,并封装成156 个API 接口函数。用户可直接在VC 环境下利用API 接口函数进行编程。 五、实验内容 1、操作步骤 1)检查电机驱动电源(24V) 2)检查USB_PCL6045B 控制板与上位机及电机驱动器间的连接电缆 3)启动USB_PCL6045B 控制板评估测试系统检查系统是否正常工作。 4)运行编写的定长运动程序,并比较实际位移与设定位移。 5)修改程序设定不同运动长度,并重复执行步骤4)。 6)对记录实验数据,并进行误差分析。 2、实验数据处理 基于VC的控制界面: 本次实验必须先设计控制系统的上位机,通过上位机的串口向下位机发送控制命令,下位机接收到命令后,产生PWM波,控制电机的正反转以此达到控制导轨运动的目的。系统的控制界面如图1所示: 图1 系统的控制界面 控制导轨运动,运动采取正向运动,再返回,即IMU的实际运行位移为零。并保存数据 控制界面的应用程序 源程序仅写出VC中按钮的响应程序: void CAaaDlg::Online() ////定长运动 { // TODO: Add your control notification handler code here USB_initial(); USB_default_set(); USB_set_org_logic(AXS_AX,0);//原点开关的逻辑, 负逻辑 USB_set_el_logic(AXS_AX,0);//硬极限输入逻辑,低电平使能 USB_set_sd_logic(AXS_AX,0);//减速开关的输入逻辑,负逻辑 USB_set_alm_logic(AXS_AX, 1);//报警输入信号逻辑 USB_set_inp_logic(AXS_AX,1);//in的输入信号逻辑 USB_ez_logic(AXS_AX,0);//Z相的输入逻辑 USB_set_pls_outmode(AXS_AX,1); USB_set_out_enable(AXS_AX,1);//脉冲输出使能 // USB_jog_continue(AXS_AX,150,20000,20,20,20,20,1,30000); USB_start_tr_move(AXS_AX, m_dist, 0, m_inspeed, 5000, 5000); // USB_tv_move(AXS_AX, 150, 2000, 3000); /* USB_v_change(AXS_AX, 5000, 5000); while(1) { USB_get_speed(AXS_AX, m_speed); UpdateData(FALSE); MSG msg; while(PeekMessage(msg,0,0,100,PM_REMOV

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档