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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
一一一一::确定ug支持的matlab版本. [6 ]% [" e! }# O7 G) K
      从ug目录下的ug8.5\ug8.50\MECH\cosim\ nx_client.m文件可以看出
3 Z, S- @5 X) r+ g9 c( m2 Q. K  h" h9 ^& C+ [$ W4 J, p
  s# u$ F5 Y: t- x
二二二二::进行ug设置! d) D* n- l, Q5 Z  K+ Q
       1111:::添加matlab目录和 ug读取matlab产生的仿真文件时间间隔=  设置为1 (一秒采样一次)
: C, N; k* S/ _9 |! W8 n) @2 ?8 Z" f( S                  设置完重启ug1 E- M) u+ ?9 q% C; c) }" s( l

$ F  m9 _) ]  j5 m. D
/ c' u8 i/ ]* z, A3 ]' V2222:ug 运动仿真环境几个设置
( F3 x3 _% T5 Z/ g& T      1---环境! }  b$ I0 q% D! q
2 --- 建立12个标记点,共分6对(6个点在运动副,6个在连杆,每对csys方向和一个运动副相同)4 m; Y+ E1 f) ]  n- T* A
         3 -- -建立6个工厂输入和  6个驱动$ i: z" `) ]1 ~% K
         4---建立 工厂输入函数 和   6个 运动变量【【【 az(标记点2,标记点1)*180/pi*180/pi*】】】函数,
! J. s1 k  g( R. L8 H3 @% |  d) Y* l                  说明::【az函数是返回 标记点1相对标记点2绕着z轴转动的 弧度,再*180/pi 就是转换为返回角度,,本应返回角度却反回弧度只得在乘*180/pi】" ~8 ?# N6 {$ K! o! h. G! s8 i. A
         5—加载函数  建立6个工厂输出【函数分别选为已建立的 AZ( 标记点 , 标记点)函数】
. ~& ]! `0 G4 o' _                         6个驱动分别选择6个运动副和 6个 工厂输入函数& }- S8 M4 |1 t! E( U; t3 i5 h
        6-----解算方案【关于  仿真时间:由matlab决定, 仿真步数::由matlab的simulink中的NXMotion Plant Block 模块决定是NXMotion_step==100】
& l+ B) {1 {- z* T! |$ _; H+ p                     说明: 仿真步数==仿真时间/仿真步长    ,仿真时间不是现实时间而是虚拟时间,现实时间和电脑cpu的运算速度有关& F& [! j" l/ W* H  h1 Q
                            一般仿真设置::1 确定仿真   关节所转圈数   ==解算方案仿真时间/驱动中的 圈数 red/S 和 角度 deg/s$ t* j! g# H+ W+ G* b' G$ _
                                             2确定仿真   步数(也是变化次数)          ====直接在解算方案 设置即可
9 q9 U9 f/ E5 y: x3 F) a
2 O# e* ]# H- Y0 K- O# u2 |) L; M, k! P4 P  _, N! F
三三三三进行matlab设置   6 I: i" X7 p7 E  q
        1  设置matlab和ug产生的两个 .M文件目录在同一目录
# Q9 N! a" h, i) A0 ?) j+ B" b        2 测量ug模型关节长度 填入 matlab程序数据; `& C* F& I1 p9 w. ~* ^
         3 运行这个代码 和 ug产生的.m文件== motion_2_Solution_1_Plant.m文件1 _; L; w+ E( c4 W3 C
         4 设置simulink仿真时间和 程序t=0:1:150;相同也可大于但是会在末尾自动插值,插值的大小和末尾方向一致
. i, N8 J/ a# [, y7 n- J  l: j/ |0 s$ O=======================================================+ Y4 b4 o" o9 h: W' o
========================matlab程序======================
0 }7 G  W6 N5 y0 ^% U3 H5 O0 V; `0 l; p%【z轴夹角==扭角   关节长度=z和下一坐标z轴距离   x夹角=和下一坐标三线之距离     】9 S! p4 i5 I9 `9 {
%  =0=617.8157     =1= 640.8633   =2= 759.2167    =3=1335.9324  =4= 129.8272  =5= 133.5056   =6= 185.9378
& B# ~- D& X- `%变换顺序 先绕老Z轴确定 x轴 夹角(关节角)——》 在绕老轴X 确定z轴夹角(扭角)--》沿着新z轴移动 (横距)长度---- ---》沿着新x轴 移动(关节长度): e; Z( l  [4 z
L{1} = link([0        0        0 1258.678 0],'mod');
3 ^% A3 x  r1 J* e! y8 S# NL{2} = link([-pi/2    0  0   0   0],'mod');
& N$ j9 E5 l6 ^0 o* b; m) bL{3} = link([0     759.2167    0  0    0],'mod');
$ B5 c" D/ n. C1 q: G9 ]) J! cL{4} = link([0     1335.9324   0 0     0],'mod');
; `) I; }) `0 yL{5} = link([-pi/2  129.8272    0  0    0],'mod');* S' e; W# d' G) R& C/ Y4 F0 E
L{6} =  link([pi/2    133.5056   0  0    0],'mod');' k4 u# e' X0 f5 [
L{7} = link([pi/2     186       0 0     0],'mod');
1 D( F3 w- u) P/ u& B% U5 f1 I/ U! Tp560m=robot(L);
! B7 c  T! F' l( |. c6 @0 b9 Uu=pi/180*2;%%初始角度全部是2度4 P2 R5 ^7 V  }7 a' }
c=[ u u u u u u u];%%初始化关节角8 W' z0 g1 A  u: X$ z
%drivebot(p560m,c)
. v% F0 q% y4 }, ^. X0 k/ o  @  {

) i( d" t7 x5 |5 i. [4 W  Z  ?T1=fkine(p560m,c);
5 Q' p9 Z( n- D5 n3 O! y$ e$ eT2=[0 0 0 -1000;0 0 0 2000;0 0 0 1000;0 0 0 0];
" E" X' c& x+ [7 R9 l: N2 q- `9 R. Zt=0:1:150;* n+ _3 e. \7 [6 U& M$ w
T=ctraj(T1,T2,length(t));
, n) K% W" J) N5 ?3 q; Op=ikine(p560m,T,c);( s) T; J0 u* C, c" k% @6 E7 r

4 A& F) P9 m( H2 v* M$ |- z
9 q  [" y" d$ w' Pfor i=1:2:length(t)% 正常轨迹 i=1:length(t)/ p# a$ c  j' f4 }2 I
x(i)=T(1,4,i);( Z9 o2 X. g( F
y(i)=T(2,4,i);
# D8 b/ I& `* `0 f7 y  S4 ^* Kz(i)=T(3,4,i);
8 ]  ]) e# G+ f: Q  ?0 Rend" ^' j4 T% u1 M0 I" l
hold on;4 ]. ?. Y, B- p3 R  D% s
plot3(x,y,z);%画出运动轨迹22222
5 {6 v! k* e; l, w" S: v, \. pplot(p560m,p);! x" H' E* |- x, C( Q$ V: C
hold off;
& G; g  e; i( N7 W6 U' O0 T9 K" i3 d8 B! Z; A

3 ^8 ~8 W- h: E# ]2 z4 W3 ip2=rem(p,pi*2) ;      %对差角取余数 得到一圈之内的角度
& U! H5 g  h, D& r& \. Q+ dp1=p2/(pi/180);) C3 B: v9 h% q9 l4 B& \- v
figure,plot(p1);%%画出角度变化==也是关节角0 W& b0 z. I3 N# {; h. N1 I
2 o: g  f% A, o5 P$ B0 S

* O0 ?1 ]) u  R- ^0 At1=t';
! ~, ~6 t4 _- n- R. Ka=[t1 -p1];%输出到 simulink的变量 [t1,a1]   【因为matlab 和ug输入的运动方向相反,因此输出角度取反】8 f- T9 k' A* a- u
* q. w) i. o. J" t' Z" W

; t7 o. W( U0 p6 |% plot(p560m,c);%%%%查看每步角度变化' _  d8 c4 z- V, H" R& Z+ N2 G
% for i=1:length(t)  Z; n# S7 W3 W2 H9 V3 P
%     hold on;* }2 B8 n/ k$ v* O" ]* L0 B
%     plot(p560m,p(i,: ));
) h2 ^6 R1 Z5 U/ c* H% end, e5 F' m1 ]& T  c
! Q7 [. b8 y+ @+ \3 |4 \
% |: N9 H8 G% h

" ^  `" g& o! J8 ~9 _3 @: g四四四四   ug运行仿真文件4 X. [5 T* ^* i" }& l+ f4 H
       1 建立一个跟踪 ===跟踪对象是在机械手末端那个标记点A011+ L6 u2 I7 G8 X  C6 M
       2 打开ug播放动画  选中跟踪# \* w( X1 D- z
       3  查看返回的角度变化值    打开ug作图添加6个工厂输出

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-30 13:15 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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