三轮全向机器人原理及matlab仿真

合集下载

MATLAB中的三相异步电动机仿真

MATLAB中的三相异步电动机仿真

目录前言 (1)1 异步电动机动态数学模型 (2)1.1电压方程 (2)1.2磁链方程 (3)1.3转矩方程 (5)1.4运动方程 (6)2 坐标变化和变换矩阵 (8)2.1三相--两相变换(3/2变换) (8)3 异步电动机仿真 (9)3.1异步电机仿真框图及参数 (9)3.2异步电动机的仿真模型 (12)4 仿真结果 (16)5 结论 (17)参考文献 (18)前言随着电力电子技术与交流电动机的调速和控制理论的迅速发展,使得异步电动机越来越广泛地应用于各个领域的工业生产。

异步电动机的仿真运行状况和用计算机来解决异步电动机控制直接转矩和电机故障分析具有重要意义。

它能显示理论上的变化,当异步电动机正在运行时,提供了直接理论基础的电机直接转矩控制(DTC),并且准确的分析了电气故障。

在过去,通过研究的异步电动机的电机模型建立了三相静止不动的框架。

研究了电压、转矩方程在该模型的功能,同相轴之间的定子、转子的线圈的角度。

θ是时间函数、电压、转矩方程是时变方程这些变量都在这个运动模型中。

这使得很难建立在αβ两相异步电动机的固定框架相关的数学模型。

但是通过坐标变换,建立在αβ两相感应电动机模型框架可以使得固定电压、转矩方程,使数学模型变得简单。

在本篇论文中,我们建立的异步电机仿真模型在固定框架αβ两相同步旋转坐标系下,并给出了仿真结果,表明该模型更加准确地反映了运行中的电动机的实际情况。

1 异步电动机动态数学模型在研究三相异步电动机数学模型时,通常做如下假设 1) 三相绕组对称,磁势沿气隙圆周正弦分布;2) 忽略磁路饱和影响,各绕组的自感和互感都是线性的; 3) 忽略铁芯损耗4) 不考虑温度和频率对电阻的影响异步电机的数学模型由下述电压方程、磁链方程、转矩方程和运动方程组成。

1.1 电压方程三相定子绕组的电压平衡方程为(1-1)与此相应,三相转子绕组折算到定子侧后的电压方程为(1-2)式中 A u , B u , C u , a u , b u ,c u —定子和转子相电压的瞬时值;A i ,B i ,C i , a i , b i ,c i —定子和转子相电流的瞬时值;A ψ,B ψ,C ψ, a ψ, b ψ,c ψ—各相绕组的全磁链; Rs, Rr —定子和转子绕组电阻上述各量都已折算到定子侧,为了简单起见,表示折算的上角标“ ’”均省略,以下同此。

利用matlab的机器人试验仿真

利用matlab的机器人试验仿真

选择MATLAB2016a版,高版本不能安装。

安装好按照下面的操作做出来,然后截图做成Word文档发给我。

MATLAB2016a版同学们网上下载安装,安装方法网上随便可找到。

机器人工具箱我发给你们。

一、将文件夹放到MATLAB安装文件夹指定目录下放到安装目录的toolbox文件夹下,如下图是笔者的电脑的位置,其中那个installation address是我自己取得名字,英语不好,不要见怪。

三、打开MATLAB软件,进行手动启动(1)打开matlab,依次点击file(文件)-setpath(设置路径)-add with subfolder (添加子文件夹),然后选择这个rvctools文件夹就好了,然后save(保存)-close (关闭)(2)在命令行窗口输入startup_rvc,回车,如图,显示了一段英语,我恩可以看到,版本是9.10。

本文主要是给大家一个系统的概念,如何用Matlab实现六轴机器人的建模和实现轨迹规划。

以后将会给大家讲解如何手写正逆解以及轨迹插补的程序。

程序是基于Matlab2016a,工具箱版本为Robotic Toolbox 9.10。

1.D-H建模三个两两相互垂直的XYZ轴构成欧几里得空间,存在六个自由度:沿XYZ 平移的三个自由度,绕XYZ旋转的三个自由度。

在欧几里得空间中任意线性变换都可以通过这六个自由度完成。

Denavit-Hartenberg提出的D-H参数模型能满足机器人学中的最小线性表示约定,用4个参数就能描述坐标变换:绕X轴平移距离a;绕X轴旋转角度alpha;绕Z轴平移距离d;绕Z轴旋转角度theta。

2.标准D-H模型和改进D-H模型对比来看参数并没有改变,标准的D-H 模型是将连杆的坐标系固定在该连杆的输出端(下一关节),也即坐标系i-1与关节i对齐;改进的D-H模型则是将坐标系固定在该连杆的输入端(上一关节),也即坐标系i-1与关节对齐i-1。

MATLAB建模与仿真应用程序_第12章 机器人控制系统的设计与仿真

MATLAB建模与仿真应用程序_第12章 机器人控制系统的设计与仿真
1. 仿真实例一:针对带有摩擦的情况
根据动力学模型及控制律完成控制器 S 函数“chap12_1ctrl.m”、 被控对象 S 函数“chap12_1plant.m”及作图程序“chap12_1plot.m” M文件的编写。
12.1 基于模糊补偿的机器人自适应模糊控制
12.1.4 仿真实例
1. 仿真实例一:针对带有摩擦的情况 9. 运行仿真模型
系统函数模块的参数设置
12.1 基于模糊补偿的机器人自适应模糊控制
12.1.4 仿真实例
1. 仿真实例一:针对带有摩擦的情况 4. 模型参数设置
数据输出模块 的参数设置
仿真时间模块的参数设置
12.1 基于模糊补偿的机器人自适应模糊控制
12.1.4 仿真实例
1. 仿真实例一:针对带有摩擦的情况
5. 仿真参数设置
12.2 工作空间中机器人的神经网络自适应控制
12.2.4 仿真实例
6. 运行仿真模型
末关节节点的位置跟踪
末关节节点的速度跟踪
12.2 工作空间中机器人的神经网络自适应控制
12.2.4 仿真实例
6. 运行仿真模型
末关节节点的位置跟踪
的逼近
第12章 结束
自适应模糊控制器的设计,不需要对被控对象建立精确的数学 模型,它能对模糊系统的参数进行在线调整,设计合适的自适应律 来保证控制系统的稳定性。
12.1 基于模糊补偿的机器人自适应模糊控制
12.1.1 机器人动力学模型建立
机器人系统的动力学模型反映了系统中各个关节位置、速度和加速度 三者之间的数学关系。
普通高等教育系列教材
MATLAB 建模与仿真应用教程
MATLAB建模与仿真应用教程 第12章 机器人控制系统的设计与仿真

三轮全向机器人原理与matlab仿真设计

三轮全向机器人原理与matlab仿真设计

11
3.4. 传感器设计 ........................................................
12
3.5. 控制器设计 .........................................................
13
3.5.1 电机控制器设计 . ...............................................
20
4.1 x 轴方向的误差 ......................................................
20
4.2 y 轴方向的误差 ......................................................
20
4.3 前进方向偏角 ......................................................
21
4.4 速度误差 ...........................................................
21
五、致 .....................................................................
22
六、附录(路径规划函数) ....................................................
4.1 x 轴方向的误差
我们的设计
从两图对比可以看出,我们的性能比学长的提高了
300%。
学长的设计
4.2 y 轴方向的误差
22

MATLAB机器人仿真程序

MATLAB机器人仿真程序

附录MATLAB 机器人工具箱仿真程序:1)运动学仿真模型程序(Rob1.m)L1=link([pi/2 150 0 0])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})=’MOTOMAN-UP6’ % 模型的名称>>drivebot(r)2)正运动学仿真程序(Rob2.m)L1=link([pi/2 150 0 0])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})=’MOTOMAN-UP6’t=[0:0.01:10];%产生时间向量qA=[0 0 0 0 0 0 ]; %机械手初始关节角度qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹T=fkine(r,q);%正向运动学仿真函数plot(r,q);%生成机器人的运动figure('Name','up6机器人末端位移图')subplot(3,1,1);plot(t, squeeze(T(1,4,:)));xlabel('Time (s)');ylabel('X (m)');subplot(3,1,2);plot(t, squeeze(T(2,4,:)));xlabel('Time (s)');ylabel('Y (m)');subplot(3,1,3);plot(t, squeeze(T(3,4,:)));xlabel('Time (s)');ylabel('Z (m)');x=squeeze(T(1,4,:));y=squeeze(T(2,4,:));z=squeeze(T(3,4,:));figure('Name','up6机器人末端轨迹图'); plot3(x,y,z);3)机器人各关节转动角度仿真程序:(Rob3.m)L1=link([pi/2 150 0 0 ])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0 ])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})='motoman-up6't=[0:0.01:10];qA=[0 0 0 0 0 0 ];qAB=[ pi/6 pi/6 pi/6 pi/6 pi/6 pi/6]; q=jtraj(qA,qAB,t);Plot(r,q);subplot(6,1,1);plot(t,q(:,1));title('转动关节1');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,2);plot(t,q(:,2));title('转动关节2');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,3);plot(t,q(:,3));title('转动关节3');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,4);plot(t,q(:,4));title('转动关节4');xlabel('时间/s');ylabel('角度/rad' );subplot(6,1,5);plot(t,q(:,5));title('转动关节5');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,6);plot(t,q(:,6));title('转动关节6');xlabel('时间/s');ylabel('角度/rad');4)机器人各关节转动角速度仿真程序:(Rob4.m)t=[0:0.01:10];qA=[0 0 0 0 0 0 ];%机械手初始关节量qAB=[ 1.5709 -0.8902 -0.0481 -0.5178 1.0645 -1.0201]; [q,qd,qdd]=jtraj(qA,qAB,t);Plot(r,q);subplot(6,1,1);plot(t,qd(:,1));title('转动关节1');xlabel('时间/s');ylabel('rad/s');subplot(6,1,2);plot(t,qd(:,2));title('转动关节2');xlabel('时间/s');ylabel('rad/s');subplot(6,1,3);plot(t,qd(:,3));title('转动关节3');xlabel('时间/s');ylabel('rad/s');subplot(6,1,4);plot(t,qd(:,4));title('转动关节4');xlabel('时间/s');ylabel('rad/s' );subplot(6,1,5);plot(t,qd(:,5));title('转动关节5');xlabel('时间/s');ylabel('rad/s');subplot(6,1,6);plot(t,qd(:,6));title('转动关节6');xlabel('时间/s');ylabel('rad/s');5)机器人各关节转动角加速度仿真程序:(Rob5.m)t=[0:0.01:10];%产生时间向量qA=[0 0 0 0 0 0]qAB =[1.5709 -0.8902 -0.0481 -0.5178 1.0645 -1.0201]; [q,qd,qdd]=jtraj(qA,qAB,t);figure('name','up6机器人机械手各关节加速度曲线');subplot(6,1,1);plot(t,qdd(:,1));title('关节1');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)');subplot(6,1,2);plot(t,qdd(:,2));title('关节2');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)');subplot(6,1,3);plot(t,qdd(:,3));title('关节3');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,4);plot(t,qdd(:,4));title('关节4');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,5);plot(t,qdd(:,5));title('关节5');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,6);plot(t,qdd(:,6));title('关节6');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')如有侵权请联系告知删除,感谢你们的配合!。

三轮全向机器人原理及matlab仿真

三轮全向机器人原理及matlab仿真

计算机辅助设计报告三轮全向移动机器人运动控制仿真9004 余杨广9019 沈阳9031 陈斌人员分工:余杨广:总体负责,系统理解及控制器设计,PPT制作,后期报告审查及修改陈斌:PPT制作,报告撰写沈阳:资料收集,辅助其余两人完成任务目录一、............................................................. 实验目的错误!未定义书签。

二、实验原理..............................................错误!未定义书签。

控制对象——三轮全向机器人..........................错误!未定义书签。

控制系统结构.........................................错误!未定义书签。

三、实验内容..............................................错误!未定义书签。

电机模型..............................................错误!未定义书签。

物理建模..........................................错误!未定义书签。

Simulink模块搭建................................错误!未定义书签。

无刷直流电机仿真模型的验证........................错误!未定义书签。

运动学模型............................................错误!未定义书签。

物理建模..........................................错误!未定义书签。

Simulink模块搭建................................错误!未定义书签。

路径规划.............................................错误!未定义书签。

三轮全向机器人运动特性分析

三轮全向机器人运动特性分析

三轮全向机器人运动特性分析1.全方向移动能力:三轮全向机器人通过将三个轮子安装在平衡的位置上,可以实现全方向移动。

每个轮子都可以独立地控制并进行旋转。

这使得机器人在狭小的空间内可以自由移动,并能够在任意方向上快速转向。

这种特性使得三轮全向机器人在繁忙的环境中具有灵活性和机动性。

2.高度可交互性:三轮全向机器人还具有很高的可交互性。

它可以通过传感器和摄像头来感知周围环境,并能够与人进行有效的交互。

这使得机器人可以在人群中安全运动,并可以执行一些与人互动的任务,如自主导航、传递物品等。

这种可交互性使得三轮全向机器人在服务行业中有广泛的应用潜力。

3.运动灵活性:三轮全向机器人具有非常好的运动灵活性。

不仅可以在水平面上自由移动,还可以实现沿任意方向的旋转。

这种灵活性使得机器人可以根据不同的任务需求进行自适应运动,并可以在狭小的空间中灵活穿梭。

这种运动灵活性使得机器人在仓储、物流和生产等领域具有广泛的应用前景。

4.稳定性和准确性:三轮全向机器人在移动过程中具有良好的稳定性和准确性。

由于每个轮子都可以独立控制,机器人可以根据需要进行微调和平衡,这使得机器人可以在不同地面上保持稳定移动。

此外,机器人还可以通过精确控制轮子的旋转来实现精确定位和导航。

这种稳定性和准确性使得机器人能够执行一些精确度要求较高的任务,如精确导航、运输和操作等。

尽管三轮全向机器人具有上述的优势特点,但也存在一些挑战和限制。

例如,由于机器人需要较强的计算能力和感知能力来实现全方向移动和交互功能,所以需要配备先进的计算控制系统和感知设备。

此外,机器人在特殊地形上的运动性能可能会受到限制,如不平整地面、斜坡等。

因此,在设计和应用三轮全向机器人时需要综合考虑这些限制因素,以实现机器人的良好性能和可靠性。

总的来说,三轮全向机器人在机动性、交互性、灵活性、稳定性和准确性方面具有优势。

它在服务行业、仓储物流和生产等领域有广泛的应用前景,可以帮助人们提高工作效率和生活质量。

三轮全向机器人原理及matlab仿真

三轮全向机器人原理及matlab仿真

计算机辅助设计报告三轮全向移动机器人运动控制仿真9004 余杨广9019 沈阳9031 陈斌人员分工:余杨广:总体负责,系统理解及控制器设计,PPT制作,后期报告审查及修改陈斌:PPT制作,报告撰写沈阳:资料收集,辅助其余两人完成任务目录一、实验目的............................................................................................错误!未定义书签。

二、实验原理............................................................................................错误!未定义书签。

控制对象——三轮全向机器人....................................................错误!未定义书签。

控制系统结构 .........................................................................................错误!未定义书签。

三、实验内容............................................................................................错误!未定义书签。

电机模型....................................................................................................错误!未定义书签。

物理建模............................................................................................错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机辅助设计报告三轮全向移动机器人运动控制仿真201103009004 余杨广201103009019 沈阳201103009031 陈斌人员分工:余杨广:总体负责,系统理解及控制器设计,PPT制作,后期报告审查及修改陈斌:PPT制作,报告撰写沈阳:资料收集,辅助其余两人完成任务目录一、实验目的 (3)二、实验原理 (3)2.1控制对象——三轮全向机器人 (3)2.2 控制系统结构 (4)三、实验内容 (5)3.1电机模型 (5)3.1.1物理建模 (5)3.1.2 Simulink模块搭建 (6)3.1.3无刷直流电机仿真模型的验证 (9)3.2运动学模型 (10)3.2.1物理建模 (10)3.2.2 Simulink模块搭建 (11)3.3 路径规划 (12)3.4. 传感器设计 (13)3.5.控制器设计 (13)3.5.1 电机控制器设计 (13)3.5.2 运动控制器设计 (15)3.6 观测器 (19)四、结果验收 (20)4.1 x轴方向的误差 (20)4.2 y轴方向的误差 (20)4.3 前进方向偏角θ (21)4.4 速度误差 (21)五、致谢 (22)六、附录(路径规划函数) (22)一、实验目的(一)建立三轮全向机器人系统的数学模型,然后基于simulink建立该系统的仿真模型并设计控制器,最终满足控制要求;(二)控制的最终目的是使该机器人能够良好跟踪预期的运动轨迹;(三)通过对复杂系统的分析、建模、仿真、验证,全面提高利用计算机对复杂系统进行辅助设计的能力;(四)通过集体作业、分工完成任务的方式培养团队意识,提高团队集体攻关能力二、实验原理2.1控制对象——三轮全向机器人三轮全向移动机器人其驱动轮由三个全向轮组成,径向对称安装,各轮互成120°角,滚柱垂直于各主轮。

三个全向轮的大小和质量完全相同,而且由性能相同的电机驱动。

图 1 三轮全向移动机器人2.2 控制系统结构图 2基于运动学模型的分层控制框图三、 实验内容3.1电机模型 3.1.1物理建模瑞士的MAXON 公司的无刷直流电机建模如下:无刷直流电机的数学模型,其等效电路如下图所示:根据上图,建立电机数学方程如下: ➢ 瞬态电压方程➢ 电压方程000000a a ab a b ac c u i R u R i R u i ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦()111a a b n b c c di dt e di L M e u dt e di dt ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+-++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦1[()()]3n a b c a b c u u u u e e e =++-++➢ 转矩方程➢ 运动方程3.1.2 Simulink 模块搭建根据以上数学模型,我们搭建电机的Simulink 模块如下:➢ 电压方程模块➢ 转矩方程模块a ab bc cem e i e i e i T ++=Ωem L T T B Jp --Ω=Ω➢运动方程模块➢其他必要模块设计反电动势模块逻辑换向模块➢模块组装——电机仿真模型➢驱动电机模块封装3.1.3无刷直流电机仿真模型的验证到此电机的建模就算完成了,但其正确性还需要结果来验证,以下是仿真结果:i.绕组端电压波形:ii.反电动势波形iii.电流波形iv.转速波形根据图像可知,仿真结果跟实际是相吻合的。

3.2运动学模型为了实现现实世界速度与机器人三个电机转速之间的转换,我们建立起运动学模型如下:3.2.1物理建模1. 建立如图所示的世界坐标系xoy和机器人坐标系XOY 。

图 3 三轮全向轮式机器人示意图图中,θ为机器人坐标系与世界坐标系之间的夹角;φ为驱动轮间的夹角,φ=120;L为机器人中心到轮子中心的水平距离。

2. 设v1,v2,v3为全向轮线速度,vx ,vy 分别为机器人在XOY 坐标系X 轴和Y 轴的速度分量;ω为机器人自转的角速度。

那么,机器人在世界坐标系中的速度与驱动轮速度之间的关系为:()()()()()()⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎭⎫⎝⎛-++---=⎪⎪⎪⎭⎫ ⎝⎛⋅⋅⋅θθθθφθφθφθφy x L L L v v v cos sin 2/cos 2/sin 2/cos 2/sin 3213.2.2 Simulink 模块搭建根据2.1中的公式,我们搭建出Simulink 模块如下:图中三个函数模块实现2.1中的矩阵转换。

最终,模块封装如下:3.3 路径规划路径规划方面,我们利用B样条曲线规划方法,取了几个点作为控制点,生成了一条类似S的曲线,来检验小车的跟随情况。

Simulink模块如下:其中,MATLAB FCN为核心算法,因代码较长,放至附录部分,在此不一一赘述。

模块中,Vd为待输入的期望速度值,xs为期望的x轴位置,ys为期望的y轴位置, ths为期望的小车前进偏角。

最后,曲线生成模块封装图如下图所示:3.4. 传感器设计为了实现对小车自身状态(包括自身位置信息和朝向信息)的感知,我们设计了一个传感器模块,以便引入反馈。

搭建的Simulink模块如下:其中,v1,v2,v3为三个电机的线速度,中间的函数实现电机线速度到真实世界中Vx,Vy和w的转化。

最后,我们将传感器模块封装,封装图如下:3.5.控制器设计对于小车的控制,我们认为无非要解决两个问题,一个是小车是否受控听话即电机的控制问题;第二个问题是小车是否足够聪明知道该怎样走,即运动学控制问题。

下面我们将就这两个方面展开论述。

3.5.1 电机控制器设计从电机模型一节中可以看出,电机模型的数学公式非常复杂,推算电压V和转速w之间的关系非常的困难,我们推算了很久也没有成功。

后来我们想到,不管是交流电动机或者是直流电动机,他们的本质都是电动机。

而电动机的传递函数都是一阶的,对于一阶模型我们利用P控制就能够实现很好的控制,而且也非常好调试,比例环节K 的值越大越好,总能够实现较好的动态性能。

最终我们出于消除稳态误差的考虑,采用了PI 控制加上前置滤波的控制方式。

经过调试,最终我们的PI 控制器为2(S+100)S,前置滤波器为100S+100。

最终的控制simulink 图如下图所示:为了检验我们控制器的效果,我们特意与学长的控制器进行了对比,对比方式为控制下的电机阶跃响应性能。

对比图如下图所示:学长电机控制的阶跃响应图我们的电机控制阶跃响应图从图中我们可以看出,不管是从调节时间还是从稳定性、超调量来看,我们的控制器都有着绝对的优越性。

3.5.2 运动控制器设计对于运动控制即位置控制,我们认为控制框图应该如下图所示:为了运动控制有更深层次的理解,我们建立如下数学模型:一个在真实坐标戏中运动的小车模型如下图所示:设Vu 为轴向前进速度;θ为小车中轴线与水平线夹角;[x ,y]为小车中心位置,L 为车中心到小车前端的距离,Vs 为速度误差,d 为位置误差,则根据上图可建立以下公式:ẋ =V u ∗Cosθ ẏ =V u ∗Sinθθ =V u L∗tanϕ 小车在前进过程中,轨迹与预期的轨迹之间的误差如下图所示:其中,,p s p sθθθθθθ=-=-要达到良好的控制效果,设计上必须要确定一个控制目标。

在设计中,我们要达到的目的有3个:1.θp →02. Vs →期望速度Vd3. d →0因为我们能够控制电机的转速,所以速度控制暂不考虑,我们只需考虑小车的期望向角ϕd 。

而这三个目标只要能够保证d->0,其他目标就能够实现。

根据以上公式,可以推导出ϕd 到d 的函数传递关系图如下:根据以上函数传递图,可以推导出以下关系图:我们要得到的是预期输入d 为0,输出也为0;我们采用内外环控制方式,引入反馈d 和θp ,因为内外环均是一阶环节,采用比例控制就能获得很好的控制效果。

最终我们的内环的比例控制是100,外环的比例控制是30,因此ϕd =-3000d-30θp ;控制器的阶跃响应图如下图所示:12*cos tan s s s y y d R x x πθ-⎛⎫⎛⎫-=-- ⎪ ⎪ ⎪-⎝⎭⎝⎭*sin tan u p s pd V V θθ==最后,得到真实世界坐标系中的预期期望速度:V x=V d∗Cos(θ+ϕd)V y=V d∗Sin(θ+ϕd)最后,经过世界坐标系到机器坐标系的转换,得到预期的电机线速度。

至此,整个运动学控制结束。

根据以上推导,我们搭建的Simulink模块如下图所示:整个封装与路径规划模块、坐标转换模块的连接如下图所示:3.6 观测器为了方便观察预期与实际的误差,我们设计了一个观测器模块如下:观测器封装如下:四、结果验收为了对我们的设计效果进行评估,我们再次利用学长做对照,比较了x轴方向的误差,y轴方向的误差,前进方向偏角θ,和速度误差,结果如下:4.1 x轴方向的误差我们的设计学长的设计从两图对比可以看出,我们的性能比学长的提高了300%。

4.2 y轴方向的误差我们的设计学长的设计从两图对比可以看出,我们的性能比学长的提高了800%。

4.3 前进方向偏角θ我们的设计学长的设计从两图对比可以看出,我们的性能比学长的提高了10000倍。

4.4 速度误差我们的设计学长的设计从两图对比可以看出,我们的设计速度保持的较好而学长的速度波动较大。

五、致谢首先,非常感谢徐明老师给了我们这个机会,让我们了解了一些三轮全向机器人的基本原理,以及提高了对MATLAB运用的熟练程度。

其次,要向我们素未谋面的为我们提供了一份样板的师兄们。

他们的工作为我们节约了大量的时间。

虽然在文中我们用他们的结果作对比,来证明我们控制的优越性,但并不意味着我们比他们高明,因为他们才是开拓者,是他们完成了从无到有的过程,在此向他们致敬!六、附录(路径规划函数)function P=cal_P(t)%P=cal_P(t)%ÊäÈët£ºBÑùÌõÇúÏß²ÎÊýt%Êä³öP:[x(t);y(t);V(t);thelta(t)]%±¾³ÌÐòÓÃÓÚsimulink·ÂÕæ%Ô-ʼ¿ØÖƵãC=[0 1 2 3 4 50 0 0 0.5 4 5];V1=[1;0];V2=[1;0];L=0.254;NC=length(C);%Ôö¼Ó¿ØÖƵ㣬±£Ö¤¹ýÆðµãºÍÖÕµãRC=[C(:,1)-V1*L,C(:,1),C(:,1)+V1*L,C(:,2:NC-1),C(:,NC)-V2*L,C(:,NC),C (:,NC)+V2*L];N=length(RC);OUT=0;if(t>=N-3)I=N-4;OUT=1;dt=t-(N-3);t=1;elseI=fix(t);t=mod(t,1);endf1=(1-t).^3/6;f2=(3*t.^3-6*t.^2+4)/6;f3=(-3*t.^3+3*t.^2+3*t+1)/6;f4=t.^3/6;d1 =-1/2*(1-t)^2;d2 =3/2*t^2-2*t;d3 =-3/2*t^2+t+1/2;d4 =1/2*t^2;a1 = 1-t;a2 = 3*t-2;a3 = -3*t+1;a4 = t;P(1,1)=f1*RC(1,I+1)+f2*RC(1,I+2)+f3*RC(1,I+3)+f4*RC(1,I+4);P(2,1)=f1*RC(2,I+1)+f2*RC(2,I+2)+f3*RC(2,I+3)+f4*RC(2,I+4);V(1,1)=d1*RC(1,I+1)+d2*RC(1,I+2)+d3*RC(1,I+3)+d4*RC(1,I+4);V(2,1)=d1*RC(2,I+1)+d2*RC(2,I+2)+d3*RC(2,I+3)+d4*RC(2,I+4);A(1,1)=a1*RC(1,I+1)+a2*RC(1,I+2)+a3*RC(1,I+3)+a4*RC(1,I+4);A(2,1)=a1*RC(2,I+1)+a2*RC(2,I+2)+a3*RC(2,I+3)+a4*RC(2,I+4);vv=sqrt(V(1,1)^2+V(2,1)^2);angle=atan2(V(2,1),V(1,1));if(OUT==1)P=P+V*dt;endP=[P;vv;angle];。

相关文档
最新文档