LabVIEW开发基于直流电机的高精度定位火星车

news2024/12/25 9:27:21

LabVIEW开发基于直流电机的高精度定位火星车

火星探测器一直用于火星探测的自动无人驾驶车辆。这些机器人远程车辆用于避免对人类不公平的条件,并减少与之相关的危险。这一研究领域引起了许多科学家和研究人员的注意,这导致了这一技术领域的显着进步。已经设计了许多不同的数字和模拟电路来控制火星探测器的移动系统。控制系统的设计主要取决于车辆的结构。当车辆结构具有更大的灵活性来自行通过不同的环境条件时,系统变得更加复杂。系统使用LabVIEW和紧凑型RIO作为控制器减少硬件来控制直流电机。

火星探测器的底盘采用摇杆转向架配置设计。这种车辆设计由六个轮子组成,如果漫游车移动,在不规则的表面上,车辆的整个重量不会放在任何一个轮子上。每个车轮都接触地面,分配重量,以保持车辆处于稳定位置。

控制器和车辆之间的无线传输不是这项工作的主要重点,因此为了使系统在现实生活中使用FM传输作为无线连接。但是,由于可能会延迟和丢失,因此可能不建议将此FM传输用于如此长距离的传输。六通道无线电飞行控制器已用于控制电机的速度和方向。其他组件包括FM接收器,电子速度控制器,齿轮直流电机,增量式旋转编码器和紧凑型RIO。车轮直接通过直流电机驱动,其速度由遥控器控制。火星探测器的方向通过改变电机的速度来改变。如果漫游车必须向右侧转动,则右侧两个轮子的速度会降低,从而导致漫游车在右侧转动,反之亦然。旋转编码器已用于测量每侧车轮的速度。其向PID控制器提供反馈,并根据所需速度调整速度。

该系统由六个轮子组成。六个车轮中有四个配有直流减速电机。一个电机解码器用于控制两个直流电机。因此,左侧和右侧电机的速度可以单独控制,火星探测器被认为是一种飞行器。因此,无线电发射器和接收器被用来控制火星探测器的速度和方向。遥控器传输两个信号,一个用于速度控制,另一个用于脉宽调制的方向控制。相比之下,火星探测器有两个ESC来分别控制两组电机。为此,信号需要分成两个独立的信号。此过程已在扫描界面模式下使用NI紧凑型RIO完成。每个信号的脉冲宽度可以通过信号来改变方向控制,也分为两个用于两组电机的速度控制。系统的这种划分基于传输信号的脉冲宽度。由于火星表面不规则,驱动火星车车轮的直流电机与所需速度相比,速度会降低。因此,为了避免这些情况,已配置PID控制器来控制直流电机的稳定性。对于该控制系统,使用两个电机增量式旋转编码器向PID控制器提供反馈,并持续监控电机旋转的速度。

无线电接收器的输出是通过示波器测量的,将遥控器的副翼/升降舵控制杆移动到极端位置。信号脉冲宽度的变化定义了电机速度的变化。根据信号的占空比,对火星探测器的运动进行编程。电机编码器是手动编程的,以定义正向和反向运动的脉冲宽度。速度信号的脉冲宽度可以通过方向信号脉冲宽度的变化来减小。信号的脉冲宽度为1200μ秒自2100μ秒和1700μ秒作为中心频率。电机控制器被编程为在信号脉冲宽度之间向前移动火星探测器2100μs从1500μs,虽然它们被编程为在脉冲宽度范围内以相反的方向移动漫游车,但脉冲宽度范围从小于1500μs为止1200μs.方向控制的信号根据信号脉冲宽度分别影响两组电机的速度。

该项目中用于控制方向的技术是降低火星探测器需要转动的一侧的车轮速度。降低的速度量是通过方向控制杆向左或向右移动的量计算的。方向控制信号的脉冲宽度范围为1700μs自2200μs对于右侧,它来自1700μs自1200μs为左侧。

对于控制系统工具的应用,已经进行了许多研究,以控制模拟设备,例如电机控制。PID控制器是此类应用中最受欢迎的工业控制工具之一。PID控制器的传递函数需要三个参数来选择,以创建输出响应。

在项目中,PID控制器在直流电机控制中的数字应用需要最小的过冲和快速的系统响应。PID控制器的输入以电机速度(RPM)为单位,通过改变数字信号的脉冲宽度来控制。由于系统具有连续输入遥控器来驱动系统,因此在此应用中需要控制器的快速响应。在这个火星探测器项目中,每个侧面,左侧和右侧车轮都使用了两个PID控制器。LabVIEW工具套件已用于实现控制器,并使用电机模型调整系数。

​‍

三个NI模块已用于cRIO的输入和输出。NI-9472已用于两组直流电机的PWM输出。而用于速度和方向控制的无线电信号的输入以及编码器输出的测量则使用了NI-9401。数字输出模块NI-9472还用于为车辆提供任何数字输出,例如打开或关闭车灯。拟议的设计仅用于漫游车的移动性。可更换模块可以增加或更改,以在车辆中引入机械臂或其他机械功能。cRIO在火星探测器转向/定位中的应用是,它可以带来灵活性,在不改变电子电路的情况下升级车辆的功能。LabVIEW和cRIO的结合使其能够消除电路的复杂性,从而能够更快速、有效地运行。

电机旋转的反馈可以通过多种方式获得。用于数字电机控制系统的最常见传感器是旋转编码器。这些传感器可分为绝对式和增量式编码器。在需要非常高精度的更复杂的系统中,使用高分辨率光学数字传感器。用于火星车应用的传感器是差分输出编码器。它在输出端提供三个脉冲序列。

通过比较编码器输出A和B的上升沿来测量运动方向。如果端子A的输出在B处出现上升沿时为高电平,则运动方向为顺时针。如果端子A的输出在端子B信号上升沿时为低电平,则运动方向将逆时针方向。此外,只需将车轮的周长乘以旋转次数即可估计所覆盖的距离。在此设计中,测量的距离可能不准确,因为它只是通过车轮的旋转来估计的。但是,这种设计没有提供任何距离传感器。因此,车轮旋转中的任何滑移也可以计算为覆盖的距离。

通过基于硬件的直流电机转矩控制技术,控制火星车来实现。在本项目中,对编码器在直流电机反馈领域的PID控制和应用有了更微观的理解。在没有任何物理转向装置的情况下,火星探测器的方向控制任务已经完成。该项目背后的想法是如何非常精确地控制直流电机,以及PID控制器如何为稳定的电机输出工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/698274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL-SQL InnoDB引擎 (中)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

23款奔驰S400豪华型升级裸眼3D仪表盘,体验高配乐趣

3D驾驶员显示屏能帮助您密切留意该显示屏中的重要信息。驾驶辅助系统的警告图标和功能图标都有醒目的3D效果,能够立即引起驾驶员的注意。不仅如此,显示屏还能以出色的 3D 影像来显示车辆前方的汽车、卡车、客车和摩托车等车辆。

Unity 遮挡剔除

渲染时 摄像机视锥体会裁切一部分 其实还可以遮挡剔除 首先要设置下 阻挡别人的 被阻挡的 设置好以后 点一下bake 摄像机记得要设置这个 Occlusion Culling 右下第一个选项 Camera Volumes 相机进入这个范围内 才会触发 遮挡剔除 勾选上 就可以看到 剔除的效果 也就是说 …

Mysql批量插入1000条数据

使用mysql的存储过程 1.现有如下一张表&#xff1a;site_row 2.创建存储过程 CREATE PROCEDURE p01 () BEGIN declare i int; set i1;while i<1000 doINSERT INTO site_row(row_id,row_num) VALUES ( i,i);set ii1; end WHILE;END; 3.执行存储过程 CALL p01(); 4.查看效…

6.2.3 取得路径的文件名称与目录名称

每个文件的完整文件名包含了前面的目录与最终的文件名&#xff0c;而每个文件名的长度都可以到达255 个字符。取得文件名或者是目录名称&#xff0c;一般的用途应该是在写程序的时候用来判断之用。所以&#xff0c;这部分的指令可以用在第三篇内的 shell scripts 里头。 6.3 文…

关于后台管理系统的学习:主界面

关于管理系统的主界面布局基本上都是下面这个格式&#xff1a; 系统中展示的所有内容都是基于这个文件(index.vue)的&#xff0c;通常会将主页面进行组件的拆分&#xff0c;比如&#xff1a; <template><div><!-- 模块区 --><layout-header v-if"m…

蓝桥杯专题-试题版-【危险系数】【网络寻路】【高僧斗法】【约数倍数选卡片】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

【Java高级编程】IO流

IO流 1、File类的使用1.1、File类的理解1.2、File的实例化1.3、常用方法 2、IO原理及流的分类2.1、流的分类2.2、流的体系结构2.3、输入、输出的标准化过程 3、节点流&#xff08;或文件流&#xff09;3.1、FileReader的使用3.2、FileWriter的使用3.3、文本文件的复制3.4、File…

Vue3学习(一)创建项目集成ElementPlus

一、创建vue项目 软件安装&#xff1a;nodejs16 https://nodejs.org/download/release/v16.20.0/ 将npm设置为淘宝镜像&#xff1a; npm config set registry https://registry.npm.taobao.org 开始创建vue3项目 npm init vuelatest npm install npm run dev Eleement-Plus …

【python】dlib人脸识别初步

文章目录 安装与初步使用HOG算法人脸识别CNN人脸识别CNN车辆识别 安装与初步使用 dlib也是从C转过来的Python模块&#xff0c;正常安装非常痛苦&#xff0c;需要下载cmake还有boost&#xff0c;所以这里推荐用conda来安装&#xff0c;一行代码轻松搞定 conda install -c cond…

Rust简介

Rust简介 为什么要用Rust与其他语言比较Rust 特别擅长的领域Rust 与 FireFoxRust 的用户和案例![在这里插入图片描述](https://img-blog.csdnimg.cn/b1e0a39c53ba45d1a3c93d0dd73408fe.png)Rust 优缺点 ref: https://www.bilibili.com/video/BV1hp4y1k7SV 为什么要用Rust 与其…

构建便捷高效的宠物医疗预约服务平台:基于Spring Boot的实现

本文介绍了基于Spring Boot的宠物医疗预约服务平台的设计与实现。通过使用Spring Boot框架和相关技术,我们建立了一个功能丰富的平台,为宠物主人提供了便捷的宠物医疗预约服务。本文将详细介绍平台的架构设计和关键功能模块,并提供相关代码示例以展示技术实现的深度。 宠物…

内网渗透解析

1|0一、前言 阅读本文前需要先搞懂NAT、PAT、端口映射几个概念&#xff0c;内网宽带中的主机可以访问公网宽带主机&#xff0c;反之不可以访问&#xff1b;公网宽带主机可以和公网宽带主机双向访问&#xff1b;内网宽带中的主机和内网宽带中的主机互相无法访问。那么内网宽带中…

前端JavaScript入门-day05

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 对象 1. 对象是什么 对象&#xff08;object&#xff09;&#xff1a;JavaScript里的一种数据类型 可以理解为是一…

Elasticsearch和Kibana的安装

Elasticsearch和Lucene的关系 Elasticsearch是一个高度可扩展的、开源的、基于 Lucene 的全文搜索和分析引擎。它允许您快速&#xff0c;近实时地存储&#xff0c;搜索和分析大量数据&#xff0c;并支持多租户。 Elasticsearch也使用Java开发并使用 Lucene 作为其核心来实现所…

Docker Compose基础与实战

一、是什么 Compose 项目是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排。 二、能做什么 Compose允许用户通过一个单独的docker-compose.yml模板文件&#xff08;YAML 格式&#xff09;来定义一组相关联的应用容器为一个项目&#xff08;project&…

单链表的简介与实现(Java)

一、前言 线性结构的链式存储是用若干地址分散的存储单元存储数据元素&#xff0c;逻辑上相邻的两个数据元素在物理位置上并不一定相邻&#xff0c;必须采用附加信息来表示数据元素之间的顺序关系。因此存储一个数据元素的数据单元至少包含两部分------数据域和地址域 上述的结…

java简易计算器的设计

简易计算器的设计 1.1实训内容 模仿Windows自带的标准版计算器&#xff0c;设计并用Java语言实现简易的计算器&#xff08;根据自己的能力&#xff0c;可以适当地增加或删除部分功能&#xff09;。 最低要求&#xff1a; 计算器运行界面如下图所示&#xff0c;包含二个文本框…

Android Binder通信原理(七):java 下的C-S

源码基于&#xff1a;Android R 0. 前言 在之前的几篇博文中&#xff0c;对Android binder 的通信原理进行的深入的剖析&#xff0c;这些博文包括&#xff1a;binder 简介、servicemanager启动、service注册、service获取、Java 端的service 注册和获取。 在前一文中&#xf…

PostgreSQL处理JSON数据

源&#xff1a;https://blog.csdn.net/c_zyer/article/details/130968257?ops_request_misc&request_id&biz_id102&utm_termPostgreSQL%20%E7%9A%84JSON%20%E5%A4%84%E7%90%86&utm_mediumdistribute.pc_search_result.none-task-blog-2allsobaiduweb~default-…