轮全向机器人原理及matlab仿真
- 格式:docx
- 大小:879.87 KB
- 文档页数:26
选择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 机器人工具箱仿真程序: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)')如有侵权请联系告知删除,感谢你们的配合!。
计算机辅助设计报告三轮全向移动机器人运动控制仿真9004 余杨广9019 沈阳9031 陈斌人员分工:余杨广:总体负责,系统理解及控制器设计,PPT制作,后期报告审查及修改陈斌:PPT制作,报告撰写沈阳:资料收集,辅助其余两人完成任务目录一、............................................................. 实验目的错误!未定义书签。
二、实验原理..............................................错误!未定义书签。
控制对象——三轮全向机器人..........................错误!未定义书签。
控制系统结构.........................................错误!未定义书签。
三、实验内容..............................................错误!未定义书签。
电机模型..............................................错误!未定义书签。
物理建模..........................................错误!未定义书签。
Simulink模块搭建................................错误!未定义书签。
无刷直流电机仿真模型的验证........................错误!未定义书签。
运动学模型............................................错误!未定义书签。
物理建模..........................................错误!未定义书签。
Simulink模块搭建................................错误!未定义书签。
路径规划.............................................错误!未定义书签。
使⽤MATLAB完成⼀个双轮差速驱动的移动机器⼈“⾛8字”的仿真,并⽣成视频使⽤MATLAB完成⼀个双轮差速驱动的移动机器⼈“⾛8字”的仿真,,并⽣成视频(⼀)任务⽬标 完成⼀个双轮差速驱动的移动机器⼈“⾛8字”的仿真。
(⼆)问题描述 1. 描述机器⼈运动的微分⽅程 差速驱动轮式移动机器⼈的位置坐标和朝向⾓⽤ xi,yi,θi 表⽰,如图1所⽰。
移动机器⼈的线速率为 vi,转向⾓速率为wi 。
图1. 差速驱动移动机器⼈位姿表⽰ 根据刚体运动学的原理,可得到以下微分⽅程,简化描述机器⼈的运动⾏为。
(式⼀) 2. “8”字轨迹的⽅程 期望机器⼈的运动轨迹为 xd(t)、yd(t) ,具体⽅程为:(式⼆) 3. ⼯作任务 (1)推导出合适的 vi(t)和 wi(t),即线速率和⾓速率随时间变化的函数,使得 xi(t)=xd(t), yi(t)=yd(t)。
(2)根据上⼀步推导的 vi(t) 和 wi(t),编写MATLAB程序,数值求解式1中的微分⽅程,并绘制移动机器⼈⾛过的路径(看是否是“8”字)、朝向⾓随时间变化的曲线。
(3)实现机器⼈运动过程的可视化,⽤“圆”代表机器⼈本体,⽤“箭头”代表机器⼈的运动⽅向。
编写matlab程序,实现以下a和b 两项功能,建议将画圆和箭头的程序封装成函数(输⼊⼀个坐标和朝向⾓,画出对应的圆和箭头)。
. a. 在“8”字曲线上选择若⼲位置,将机器⼈形状和运动⽅向绘制下来(选择的位置不要太多,画出的图案容易重叠) b. 将机器⼈运动过程录制成视频⽂件。
(⼀种思路,等时间间隔选择数据,画⼀幅⼀幅figure,再⽤指令将其连成视频,注意设置帧速率)步骤及思路(附程序代码):步骤及思路(附程序代码): (由于第⼀次在CSDN发⽂章,排版尚不熟练,以下部分以图⽚形式展⽰,图⽚内容我会放在附件⾥)以上代码便可以⽣成matlab的仿真视频,以上步骤我会放在附件中的Word⽂档中以下是运⽤matlab仿真的代码:out=VideoWriter('robot3.avi');out.FrameRate=25;open(out);syms t;X=10*sin(t/10);Y=10*sin(t/20);X2=10*sin((t+0.1)/10);Y2=10*sin((t+0.1)/20);Q=atan((Y2-Y)/(X2-X));w=diff(Q,1);t0=[0:0.04:150];f0=[0.4637,0,0];[t,x]=ode45('car',t0,f0);plot(x(:,2),x(:,03),'b')axis([-1313-1313]);axis manualtitle('机器⼈运动轨迹平⾯图');xlabel('x轴运动分量');ylabel('y轴运动分量');hold onfor s=1:3750figure(s)plot(x(:,2),x(:,3),'b')axis([-1313-1313]);axis manualtitle('机器⼈运动轨迹平⾯图');xlabel('x轴运动分量');ylabel('y轴运动分量');hold onr_x=x(s,2);r_y=x(s,3);r_Q=x(s,1);robot(r_x,r_y,0.5,r_Q)F=getframe(gcf);writeVideo(out,F);close all %注意此语句不可省略,我第⼀次没有写导致画出来的figure⼀直在后台,我的电脑是32G内存,画到1400张左右的时候,内存占⽤98%,程序被系统杀死了,此语句可以在画下⼀幅之前把之前画的关掉,释放内存endclose(out);以下函数⽤于构造简易图形组合并将其画出(x,y,r为圆的圆⼼坐标及半径,Q为当前机器⼈的运动⽅向与x轴夹⾓)function []=robot(x,y,r,Q)%.该函数⽤于构造简易图形组合并将其画出%x,y,r为圆的圆⼼坐标及半径,Q为当前机器⼈的运动⽅向与x轴夹⾓rectangle('Position',[x-r,y-r,2*r,2*r],'Curvature',[1,1],'LineWidth',5),axis equalhold onx2=x+1.2*cos(Q);y2=y+1.2*sin(Q);Q2=Q-0.46364761;Q3=Q+0.46364761;x3=x+0.894427*cos(Q2);y3=y+0.894427*sin(Q2);x4=x+0.894427*cos(Q3);y4=y+0.894427*sin(Q3);plot([x,x2],[y,y2],'r','LineWidth',5)plot([x2,x3],[y2,y3],'r','LineWidth',3)plot([x2,x4],[y2,y4],'r','LineWidth',3)end以下是ode45求解时⽤到的函数function r=car(t,x)r=zeros(3,1);r(1)=((cos(t/20)/2-cos(t/20+1/200)/2)/(10*sin(t/10)-10*sin(t/10+1/100))-((10*sin(t/20)-10*sin(t/20+1/200))*(cos(t/10)-cos(t/10+1/100)))/(10*sin(t/1 0)-10*sin(t/10+1/100))^2)/((10*sin(t/20)-10*sin(t/20+1/200))^2/(10*sin(t/10)-10*sin(t/10+1/100))^2+1);r(2)=((cos(t/10)^2+cos(t/20)^2/4)^(1/2))*cos(x(1));r(3)=((cos(t/10)^2+cos(t/20)^2/4)^(1/2))*sin(x(1));end以上代码的matlab⽂件我也放在了附件中,欢迎⼤家积极交流。
MATLAB仿真程序1、摘要:简要介绍仿真程序的目的和应用领域。
2、简介2.1 背景:介绍仿真技术的背景和发展趋势。
2.2 目标:阐述本文档旨在实现的目标和预期成果。
2.3 使用范围:说明本文档适用的MATLAB版本和相关工具。
3、系统需求3.1 软件需求:列出在运行仿真程序时需要的MATLAB版本和相关工具。
3.2 硬件需求:描述在运行仿真程序时所需的最低硬件配置要求。
4、数据准备4.1 输入数据:说明仿真程序所需的输入数据,包括模型、环境参数、运动规划等。
4.2 数据处理:描述对输入数据进行预处理和转换的方法和算法。
5、仿真实现5.1 建模:介绍如何使用MATLAB建立模型。
5.2 运动规划:讲解如何使用运动规划算法的轨迹。
5.3 运动控制:详细说明如何控制的关节运动和末端执行器的运动。
6、结果分析6.1 数据保存:指示如何保存仿真过程和结果的数据。
6.2 数据可视化:说明如何使用MATLAB绘制仿真结果图表。
6.3 结果评估:解析实验结果,验证仿真程序的准确性和可行性。
7、总结和下一步工作简要总结此次仿真程序的实现和结果,提出改进的建议,并探讨下一步工作的方向。
附件:本文档涉及的附件包括:- 模型文件- 仿真环境场景文件- 运动规划算法实现代码- 仿真结果数据文件法律名词及注释:1、版权:著作权法规定的著作物享有的法律保护。
2、许可证:根据许可证要求,特定行为(如使用、复制、修改)被允许或拒绝使用。
3、商标:商标是注册商标办公室注册的标志,用于识别产品或服务来源。
4、法律依据:涉及到法律的相关内容,应根据当地法律依据进行操作。
matlab机器人运动学仿真代码以下是一个简单的MATLAB机器人运动学仿真代码示例,假设机器人是一个二维平面上的两轴机器人,其中关节1和关节2的长度分别为L1和L2:matlab.% 定义关节长度。
L1 = 1;L2 = 1;% 定义关节角度。
theta1 = 0:0.01:2pi; % 关节1角度范围。
theta2 = 0:0.01:2pi; % 关节2角度范围。
% 初始化末端点坐标。
x = zeros(length(theta1), length(theta2));y = zeros(length(theta1), length(theta2));% 计算末端点坐标。
for i = 1:length(theta1)。
for j = 1:length(theta2)。
x(i,j) = L1 cos(theta1(i)) + L2 cos(theta1(i) + theta2(j));y(i,j) = L1 sin(theta1(i)) + L2 sin(theta1(i) + theta2(j));end.end.% 绘制机器人末端点轨迹。
figure;plot(x(:), y(:), 'b.');xlabel('X');ylabel('Y');title('机器人末端点轨迹');这段代码实现了一个简单的两轴机器人的运动学仿真。
首先定义了机器人的关节长度和关节角度范围,然后计算了末端点的坐标,并绘制了机器人末端点的轨迹。
当然,实际的机器人运动学仿真会更加复杂,涉及到不同类型的机器人和运动学模型,但这段代码可以作为一个简单的起点,帮助你开始进行机器人运动学仿真的工作。
MATLAB机器人仿真程序哎呀,说起 MATLAB 机器人仿真程序,这可真是个有趣又充满挑战的领域!我还记得有一次,我带着一群学生尝试做一个简单的机器人行走仿真。
那时候,大家都兴奋极了,眼睛里闪着好奇的光。
我们先从最基础的开始,了解 MATLAB 这个工具的各种函数和命令。
就像是给机器人准备好各种“零部件”,让它能顺利动起来。
比如说,我们要设定机器人的初始位置和姿态,这就好像是告诉机器人“嘿,你从这里出发,站好啦!”然后,再通过编程来控制它的运动轨迹。
有的同学想让机器人走直线,有的同学想让它拐个弯,还有的同学想让它走个复杂的曲线。
在这个过程中,可遇到了不少问题呢。
有个同学不小心把坐标设置错了,结果机器人“嗖”地一下跑到了不知道哪里去,大家哄堂大笑。
还有个同学在计算速度和加速度的时候出了差错,机器人的动作变得奇奇怪怪的,像是在跳“抽筋舞”。
不过,大家并没有气馁,而是一起努力找错误,修改代码。
终于,当我们看到那个小小的机器人按照我们设想的轨迹稳稳地行走时,那种成就感简直无法形容。
回到 MATLAB 机器人仿真程序本身,它其实就像是一个神奇的魔法盒子。
通过输入不同的指令和参数,我们可以创造出各种各样的机器人运动场景。
比如说,我们可以模拟机器人在不同地形上的行走,像是平坦的地面、崎岖的山路或者是湿滑的冰面。
这时候,我们就要考虑摩擦力、重力等各种因素对机器人运动的影响。
想象一下,机器人在冰面上小心翼翼地走着,生怕滑倒,是不是很有趣?而且,MATLAB 机器人仿真程序还能帮助我们优化机器人的设计。
比如说,如果我们发现机器人在某个动作上消耗了太多的能量,或者动作不够灵活,我们就可以通过调整程序中的参数来改进。
这就像是给机器人做了一次“整形手术”,让它变得更完美。
另外,我们还可以用它来进行多机器人的协同仿真。
想象一下,一群机器人在一起工作,有的负责搬运东西,有的负责巡逻,它们之间需要相互配合,避免碰撞。
这就需要我们精心设计它们的通信和协调机制,让它们像一支训练有素的团队一样高效工作。
图1 两轮机器人(1997—),女,四川什邡人,硕士研究生。
研究方向:机器人。
图2 简化的两轮机器人 运动学模型、v y 、v z 是平面内机器人在各个坐标轴上的分量,车体重心与底盘轴的距离,m 为机器人的总重量,θ为机器人的倾斜角度,θ·l 为左轮的角速度,θ·r 为右轮的角速度,为机器人左右轮速度不一致导致的航偏角,R 为车轮半径。
左右轮的前进速度分别为:lR θ −= rR θ −= 机器人的前进速度为:2rl v v +=()() +−−+++r l z r l z 2mR +m R m f J R mR m R m f J R 2mR +m l R 2+J 4444444222222l 2图3 模糊PID控制原理框图图4 模糊PID子模块图5是在MATLAB中设置的模糊规则。
模糊规则以模糊语言的形式描述人们的知识和经验,以规定的形式反映专家的经验和知识集。
一般情况下,模糊规则以“If条件then 结果”的形式,将模糊输入语言变量转化为模糊输入语言变量。
该形式化表示的模糊规则在很大程度上符合人们通过自然语言对知识进行描述的习惯[13]。
模糊规则一般会影响模糊PID的最终控制效果,所以模糊规则的选择十分重要。
引入模糊PID控制的目的是根据制定的模糊规则得到3个参数的修正值,这样PID控制器就能根据系统响应主动调整参数,可提高系统的动态响应性能和鲁棒性。
图5 模糊规则4 联合仿真和系统分析不同的模糊规则会影响模糊PID的控制效果,所以笔者在仿真实验中选用3种不同的模糊规则进行比较。
实验的大致步骤:利用ADAMS和MATLAB/SIMULINK联合仿真,从ADAMS中导出两轮机器人的机械系统,然后用MATLAB/ SIMULINK将其打开,在SIMULINK中搭建仿真环境。
4.1 联合仿真系统设计ADAMS和Matlab的联合仿真过程如下:在ADAMS/ View中建立两轮机器人简化模型,包括机体、车轮和路面,因为建模时将机器人的电机、驱动等部件略去,所以会在左右轮上施加一定的力矩来驱动机器人运动。
计算机辅助设计报告三轮全向移动机器人运动控制仿真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 速度误差 (22)五、致谢 (22)六、附录(路径规划函数) (23)一、实验目的(一)建立三轮全向机器人系统的数学模型,然后基于simulink建立该系统的仿真模型并设计控制器,最终满足控制要求;(二)控制的最终目的是使该机器人能够良好跟踪预期的运动轨迹;(三)通过对复杂系统的分析、建模、仿真、验证,全面提高利用计算机对复杂系统进行辅助设计的能力;(四)通过集体作业、分工完成任务的方式培养团队意识,提高团队集体攻关能力二、实验原理2.1控制对象——三轮全向机器人三轮全向移动机器人其驱动轮由三个全向轮组成,径向对称安装,各轮互成120°角,滚柱垂直于各主轮。
三个全向轮的大小和质量完全相同,而且由性能相同的电机驱动。
图 1 三轮全向移动机器人2.2 控制系统结构图 2基于运动学模型的分层控制框图-三、实验内容3.1电机模型3.1.1物理建模瑞士的MAXON公司的无刷直流电机建模如下:无刷直流电机的数学模型,其等效电路如下图所示:根据上图,建立电机数学方程如下:➢瞬态电压方程➢电压方程000000a aab a bac cu iRu R iRu i⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦()111aabnbccdidt ediL M e udtedidt⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+-++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦1[()()]3n a b c a b cu 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.转速波形根据图像可知,仿真结果跟实际是相吻合的。
轮全向机器人原理及m a t l a b仿真--------------------------------------------------------------------------作者: _____________--------------------------------------------------------------------------日期: _____________计算机辅助设计报告三轮全向移动机器人运动控制仿真004 余杨广沈阳人员分工:余杨广:总体负责,系统理解及控制器设计,PPT制作,后期报告审查及修改陈斌:PPT制作,报告撰写沈阳:资料收集,辅助其余两人完成任务目录一、实验目的.............................................................................................................................二、实验原理.............................................................................................................................2.1控制对象——三轮全向机器人.....................................................................................2.2 控制系统结构 ...................................................................................................................三、实验内容.............................................................................................................................3.1电机模型 ............................................................................................................................3.1.1物理建模 ..................................................................................................................3.1.2 Simulink模块搭建.....................................................................................................3.1.3无刷直流电机仿真模型的验证..............................................................................3.2运动学模型 ........................................................................................................................3.2.1物理建模..................................................................................................................3.2.2 Simulink模块搭建 ....................................................................................................3.3 路径规划 ...........................................................................................................................3.4. 传感器设计 .....................................................................................................................3.5.控制器设计 .......................................................................................................................3.5.1 电机控制器设计......................................................................................................3.5.2 运动控制器设计 ....................................................................................................3.6 观测器 ...............................................................................................................................四、结果验收 ....................................................................................................................................4.1 x轴方向的误差 ................................................................................................................4.2 y轴方向的误差 ................................................................................................................4.3 前进方向偏角θ .................................................................................................................4.4 速度误差 ...........................................................................................................................五、致谢 ............................................................................................................................................六、附录(路径规划函数).............................................................................................................一、实验目的(一)建立三轮全向机器人系统的数学模型,然后基于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 。