找回密码
 注册
关于网站域名变更的通知
查看: 482|回复: 1
打印 上一主题 下一主题

#技术风云榜#matlab机器人 联合ug仿真 关于运动仿真实践

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-17 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
一一一一::确定ug支持的matlab版本
# s) A/ z: ^1 u3 M* Z, I      从ug目录下的ug8.5\ug8.50\MECH\cosim\ nx_client.m文件可以看出
: E2 d; r# g' E! f$ g) }4 K7 p3 E6 _4 _6 W# R& }) h& J
. L. J) U) P; d; Q/ @! F
二二二二::进行ug设置: ]0 M" {: k# S
       1111:::添加matlab目录和 ug读取matlab产生的仿真文件时间间隔=  设置为1 (一秒采样一次)
( o* d. y- |6 a( g* r8 }1 {+ [                  设置完重启ug  I! `- y# ?- Q1 O

& k. J# z( J( a) ?+ Z2 j7 }' n# ?1 r6 _8 `5 X' }
2222:ug 运动仿真环境几个设置: F6 [6 o6 y$ e: @2 I
      1---环境
! j: e0 U% W0 H/ t- m* T2 --- 建立12个标记点,共分6对(6个点在运动副,6个在连杆,每对csys方向和一个运动副相同)* ^* t# c1 B0 v4 a
         3 -- -建立6个工厂输入和  6个驱动
3 y0 q. k+ h# `) I1 c         4---建立 工厂输入函数 和   6个 运动变量【【【 az(标记点2,标记点1)*180/pi*180/pi*】】】函数,; z# m" d; q8 n6 G$ \4 E8 J. S
                  说明::【az函数是返回 标记点1相对标记点2绕着z轴转动的 弧度,再*180/pi 就是转换为返回角度,,本应返回角度却反回弧度只得在乘*180/pi】
- e% d% @/ u: L5 v+ \         5—加载函数  建立6个工厂输出【函数分别选为已建立的 AZ( 标记点 , 标记点)函数】& V. l  A# y$ G" P* W* J& k" f
                         6个驱动分别选择6个运动副和 6个 工厂输入函数( b( }' q5 i# R8 O, U8 b! C
        6-----解算方案【关于  仿真时间:由matlab决定, 仿真步数::由matlab的simulink中的NXMotion Plant Block 模块决定是NXMotion_step==100】
. S. D/ g2 ^" J5 [9 `7 a+ N9 f                     说明: 仿真步数==仿真时间/仿真步长    ,仿真时间不是现实时间而是虚拟时间,现实时间和电脑cpu的运算速度有关
% @% }, {: Q2 Z                            一般仿真设置::1 确定仿真   关节所转圈数   ==解算方案仿真时间/驱动中的 圈数 red/S 和 角度 deg/s
& c: m; f9 o: j" \2 o+ b, ]0 f& j                                             2确定仿真   步数(也是变化次数)          ====直接在解算方案 设置即可) f. k: R$ M" R
! e' i4 H+ x& t* b. u

0 N( O4 T- c  X9 L; o/ F& a+ v: U% s0 z三三三三进行matlab设置   / j/ |4 y/ y1 S, D; H
        1  设置matlab和ug产生的两个 .M文件目录在同一目录% k% ~  R- d3 ^
        2 测量ug模型关节长度 填入 matlab程序数据
( Z/ B1 A3 m% @* |' ~         3 运行这个代码 和 ug产生的.m文件== motion_2_Solution_1_Plant.m文件0 l9 `9 G2 C6 J7 o0 g2 {5 h
         4 设置simulink仿真时间和 程序t=0:1:150;相同也可大于但是会在末尾自动插值,插值的大小和末尾方向一致
3 y4 k3 _& }5 ?=======================================================/ K) a. f7 J$ s, g2 O/ \
========================matlab程序======================
7 B% \5 I: v( o1 M! {%【z轴夹角==扭角   关节长度=z和下一坐标z轴距离   x夹角=和下一坐标三线之距离     】
. R* A+ b  K4 c) G' x%  =0=617.8157     =1= 640.8633   =2= 759.2167    =3=1335.9324  =4= 129.8272  =5= 133.5056   =6= 185.9378" {6 s$ d' r3 r1 z6 G, m& E& U+ `0 f
%变换顺序 先绕老Z轴确定 x轴 夹角(关节角)——》 在绕老轴X 确定z轴夹角(扭角)--》沿着新z轴移动 (横距)长度---- ---》沿着新x轴 移动(关节长度)
0 h) \3 v6 p4 F3 x' U! z3 q6 q( yL{1} = link([0        0        0 1258.678 0],'mod');
! q$ E4 e# \3 H4 J9 mL{2} = link([-pi/2    0  0   0   0],'mod');
+ u& M& [2 b3 f2 q! p) ^L{3} = link([0     759.2167    0  0    0],'mod');3 I9 k0 J6 k; |! g# D4 I
L{4} = link([0     1335.9324   0 0     0],'mod');4 {+ Y9 L: r; p- l% Z3 T* ~* ?. B1 T
L{5} = link([-pi/2  129.8272    0  0    0],'mod');
) n* S/ G; W2 b+ O. WL{6} =  link([pi/2    133.5056   0  0    0],'mod');
0 e+ F( W$ K9 S' g7 QL{7} = link([pi/2     186       0 0     0],'mod');
7 R$ `* h3 Q2 e8 j5 r% t5 ~p560m=robot(L);
0 S" ~' h% F/ Z5 E3 M8 vu=pi/180*2;%%初始角度全部是2度
- t2 Y& Z1 E2 J. r( Nc=[ u u u u u u u];%%初始化关节角
/ g$ f& b( {! Q. M" {%drivebot(p560m,c)8 x* n9 p" P5 O2 s0 [0 C% R
7 n  j: \/ |' n8 N0 {, M; j8 A. u

7 Q. F5 D/ T' s! Y2 rT1=fkine(p560m,c);/ ?/ c4 f& I& h- p
T2=[0 0 0 -1000;0 0 0 2000;0 0 0 1000;0 0 0 0];
9 o2 A/ g" J/ k; P% {t=0:1:150;
2 k! z: i6 C5 i$ t7 e+ HT=ctraj(T1,T2,length(t));
3 \; ^! ?1 x, `' ep=ikine(p560m,T,c);2 h9 `  E6 Y: c: G3 D  r( o

. a, V1 }' \1 |+ r9 v
$ A$ O5 G  x9 Y6 ]: Tfor i=1:2:length(t)% 正常轨迹 i=1:length(t)
9 j) a+ e5 @" fx(i)=T(1,4,i);& f  |" e8 w8 u1 p9 f
y(i)=T(2,4,i);
$ S! Z. Y6 R$ Tz(i)=T(3,4,i);$ C3 r3 a- F) u! H- c$ I- _
end
& K8 d) F& T: bhold on;
& k3 P1 t7 L/ {- s9 ]3 [7 Splot3(x,y,z);%画出运动轨迹22222
2 E& C% p4 U# b7 Wplot(p560m,p);; C) Q9 z" u! E5 {7 \8 R1 c
hold off;: _1 \6 x5 g& N. M
: j8 z) ?5 j- L. j* r7 p

6 y; U8 M+ T) Gp2=rem(p,pi*2) ;      %对差角取余数 得到一圈之内的角度
9 j0 M( [" F; Kp1=p2/(pi/180);# |, h" n: H8 W. Y- o2 b: |
figure,plot(p1);%%画出角度变化==也是关节角
* _8 H6 C5 G% e5 l9 K5 [* h' y; [  X" ?" Q7 s' i% _: Y7 o

2 ]9 y4 o$ t/ E( y0 Z- Pt1=t';2 V* i9 H, H9 p* U$ B
a=[t1 -p1];%输出到 simulink的变量 [t1,a1]   【因为matlab 和ug输入的运动方向相反,因此输出角度取反】1 I* a1 {- m% w, X

: i0 ^. M. E: o" j5 z: n: h4 y- ?# B7 M) {2 |: J" g, W
% plot(p560m,c);%%%%查看每步角度变化
& L+ x/ f5 c6 L% for i=1:length(t)
) b9 A/ e9 ?5 ^$ y$ M4 x%     hold on;6 [' G4 x/ @  p! b. v. p/ \& y; N
%     plot(p560m,p(i,: ));. S+ S: ?: y4 u. q& I4 E+ W
% end
* r0 S: `- H" G# j) q) n  I8 x; y
5 ~2 W: Q. v0 `: z+ A
3 N  V) d' [5 N" }8 T# w' f4 D- G4 N  B- \( y
四四四四   ug运行仿真文件- e/ }: H  {$ C$ b4 v1 h4 m
       1 建立一个跟踪 ===跟踪对象是在机械手末端那个标记点A011; l- A" X5 e6 ]
       2 打开ug播放动画  选中跟踪
% m8 e: K; k' d, y4 u       3  查看返回的角度变化值    打开ug作图添加6个工厂输出

该用户从未签到

2#
发表于 2020-11-17 16:45 | 只看该作者
matlab机器人 联合ug仿真 关于运动仿真实践
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 11:21 , Processed in 0.171875 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表