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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
一一一一::确定ug支持的matlab版本4 K9 V* l3 X$ a. ^9 @( ~6 t
      从ug目录下的ug8.5\ug8.50\MECH\cosim\ nx_client.m文件可以看出% |' g6 |8 ?7 Y+ y$ K7 n+ B

, a" c) K* B: e7 p
, G3 |+ S# W8 u) o2 K8 e二二二二::进行ug设置: N8 t% R/ q" \. b: M
       1111:::添加matlab目录和 ug读取matlab产生的仿真文件时间间隔=  设置为1 (一秒采样一次)
* ?$ f2 ?$ r  A" O. Q                  设置完重启ug) q: P) b5 d1 q# Z! Q

- U1 A0 E9 U# Y+ n' y7 Y6 m4 O$ H6 l  \/ S4 ^
2222:ug 运动仿真环境几个设置
0 i. y4 Q: L3 j. U5 b; P4 O, a      1---环境
) k! m1 U- F' E# I2 --- 建立12个标记点,共分6对(6个点在运动副,6个在连杆,每对csys方向和一个运动副相同)
  n& o& o& @8 s7 N' t$ A3 d2 r         3 -- -建立6个工厂输入和  6个驱动% k$ S- M0 b+ _. Y; f- E7 w$ ^5 s
         4---建立 工厂输入函数 和   6个 运动变量【【【 az(标记点2,标记点1)*180/pi*180/pi*】】】函数,
9 e, Y+ g5 P3 f4 L                  说明::【az函数是返回 标记点1相对标记点2绕着z轴转动的 弧度,再*180/pi 就是转换为返回角度,,本应返回角度却反回弧度只得在乘*180/pi】+ @+ r* V1 h* J! k. u7 t4 \& R0 h' K
         5—加载函数  建立6个工厂输出【函数分别选为已建立的 AZ( 标记点 , 标记点)函数】
" p" q. W, I+ H                         6个驱动分别选择6个运动副和 6个 工厂输入函数
  s  ~% C( h( c        6-----解算方案【关于  仿真时间:由matlab决定, 仿真步数::由matlab的simulink中的NXMotion Plant Block 模块决定是NXMotion_step==100】
2 @. o+ N3 j4 `9 ]$ y" j' A                     说明: 仿真步数==仿真时间/仿真步长    ,仿真时间不是现实时间而是虚拟时间,现实时间和电脑cpu的运算速度有关
" [% ]6 x2 p" A) n' v( S                            一般仿真设置::1 确定仿真   关节所转圈数   ==解算方案仿真时间/驱动中的 圈数 red/S 和 角度 deg/s1 m  }+ X# z! y# `
                                             2确定仿真   步数(也是变化次数)          ====直接在解算方案 设置即可* j: |7 A* u. O- n0 ^

* @' F, d% H. U# G0 z" s! s+ J  m2 C- {2 P
三三三三进行matlab设置   & b; B" P' d; H4 a# o7 a& C
        1  设置matlab和ug产生的两个 .M文件目录在同一目录
& _5 D+ H5 n+ G1 d: o7 N9 L/ O' Z        2 测量ug模型关节长度 填入 matlab程序数据
+ c9 r6 ]6 ]9 d$ S         3 运行这个代码 和 ug产生的.m文件== motion_2_Solution_1_Plant.m文件' d1 R- _# a  Y  z, ~; ]$ n
         4 设置simulink仿真时间和 程序t=0:1:150;相同也可大于但是会在末尾自动插值,插值的大小和末尾方向一致
! S: o  S8 \. C: j: m2 u=======================================================' H4 _1 l& z8 K/ Y
========================matlab程序======================
) m# z/ ~) r" ^%【z轴夹角==扭角   关节长度=z和下一坐标z轴距离   x夹角=和下一坐标三线之距离     】
0 H& W8 i$ A% _8 ?6 _%  =0=617.8157     =1= 640.8633   =2= 759.2167    =3=1335.9324  =4= 129.8272  =5= 133.5056   =6= 185.9378
8 J0 P5 i- G3 K8 ~7 d0 ~+ v7 `% b%变换顺序 先绕老Z轴确定 x轴 夹角(关节角)——》 在绕老轴X 确定z轴夹角(扭角)--》沿着新z轴移动 (横距)长度---- ---》沿着新x轴 移动(关节长度), N0 L; N2 K3 u0 G
L{1} = link([0        0        0 1258.678 0],'mod');
0 x' Z3 \# p( }; x/ Z) ^& a0 XL{2} = link([-pi/2    0  0   0   0],'mod');
$ `% E. D5 i3 U: wL{3} = link([0     759.2167    0  0    0],'mod');
4 z' Q( [; d/ mL{4} = link([0     1335.9324   0 0     0],'mod');( U# U3 j4 Q0 A2 w; S# n
L{5} = link([-pi/2  129.8272    0  0    0],'mod');
1 |9 g. \6 X7 nL{6} =  link([pi/2    133.5056   0  0    0],'mod');  m$ g0 ^' f( b! ^, e9 c
L{7} = link([pi/2     186       0 0     0],'mod');, ?7 x0 h. R$ ~$ w$ O
p560m=robot(L);7 _. k+ F. m* ]  G& d
u=pi/180*2;%%初始角度全部是2度
7 A6 s0 b; f7 U* a; rc=[ u u u u u u u];%%初始化关节角1 Z& P$ b3 k) W2 D1 I/ E2 a3 w/ K
%drivebot(p560m,c)
  j, `' B* {' m$ T2 \  D4 P
. q+ A1 ^( W) |9 e
" m0 j0 @: K! s! f+ sT1=fkine(p560m,c);! j- O* e* g& d8 x. P6 w
T2=[0 0 0 -1000;0 0 0 2000;0 0 0 1000;0 0 0 0];, F) |( ?: w1 j; ~) L
t=0:1:150;
0 m+ {, M2 @2 w: J8 a3 kT=ctraj(T1,T2,length(t));
0 D# z6 s9 Y$ R  b: a& Sp=ikine(p560m,T,c);2 j" ]% E) m- i

2 s  X" |! u" e+ ~0 y0 E# S& N
" ~+ S# o( A7 \" Gfor i=1:2:length(t)% 正常轨迹 i=1:length(t)- e9 P) @7 I5 Z, z
x(i)=T(1,4,i);6 \* l+ E0 f% B4 `; j$ ^
y(i)=T(2,4,i);' J, n  T' m( k, l
z(i)=T(3,4,i);
7 l, }" u7 j3 r+ Lend
: g5 c; v; g; m( }! m5 ^/ Vhold on;
. Z( p# x2 ~# J# ?/ \4 bplot3(x,y,z);%画出运动轨迹22222' c, r# P; K/ g7 p: p" q
plot(p560m,p);
. j- n/ C5 i/ L& H6 I' f4 yhold off;9 _" }2 E$ V& s3 h! f  j2 ?

1 P! C, t$ `3 b0 b' \
- Q% m7 c& b6 W/ K; L1 sp2=rem(p,pi*2) ;      %对差角取余数 得到一圈之内的角度
) e9 l/ K: s  V- b& Sp1=p2/(pi/180);
6 x5 h+ z8 _, U5 M" T9 Gfigure,plot(p1);%%画出角度变化==也是关节角& ]3 v* H9 {4 e# a& G. ]  A
% [4 ]" M; j. z% a, W2 l( h7 e
& N; c% a% m3 B: @+ i
t1=t';
+ S5 H4 y+ T; E7 I  I( M! o9 @' Da=[t1 -p1];%输出到 simulink的变量 [t1,a1]   【因为matlab 和ug输入的运动方向相反,因此输出角度取反】
0 K2 N& p5 ^! v3 ^$ B: Z% l3 M, t! U
  Z/ u7 k2 D/ T+ M* R+ H
% plot(p560m,c);%%%%查看每步角度变化
6 k- A8 c/ u7 P+ O3 u% for i=1:length(t)
* W' I  C: W7 v0 m%     hold on;. c. c) g! T- V) L9 |" F& }: _
%     plot(p560m,p(i,: ));9 y0 `0 m- |6 i% J
% end
5 R" k- |* _; a, E0 H9 ~2 ?8 j6 }" {' y: H2 a* Y0 ?
1 K/ v* ?9 d$ l& K- O
- c; e% K" T: a
四四四四   ug运行仿真文件5 c. I# {# Z$ o7 F. _; t- ^  ?
       1 建立一个跟踪 ===跟踪对象是在机械手末端那个标记点A011. c8 y: k" R1 H  |. S, b5 G
       2 打开ug播放动画  选中跟踪0 F# @9 Q( c8 a+ p
       3  查看返回的角度变化值    打开ug作图添加6个工厂输出

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 11:38 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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