我怎么能找到机器的重心SimMechanics 3.1.1 (R2009b) ?

10视图(30天)
我有多个机构中各个位置SimMechanics模型,我想知道整个机器的重心是定义的尸体。换句话说,我想知道全球的参考CG位置的所有尸体乘以它们的质量。我怎么能这样做呢?

接受的答案

MathWorks支万博1manbetx持团队
编辑:MathWorks支万博1manbetx持团队 2019年4月4日
能力做自动检测机的重心不是availalble SimMechanics 3.2 (R2010a_pre)。您可以使用以下方法作为一种解决方案:
您可以定义中定义的所有身体与CG世界参考平原,然后编写一个MATLAB脚本手动执行此计算。这将使用FIND_SYSTEM和GET_PARAM命令来查询这些信息等;
%的体块在当前的模型。
h = find_system (gcs,“名称”,“身体”)
%提取质量值的向量。
质量= str2num (cell2mat (get_param (h,“质量”)))
%提取一个向量的重心位置。
i = 1:长度(h)
CGstring = get_param (h{我},“重心”)
p = textscan (CGstring' % s ',“分隔符”,“美元”)
研究生院理事会(我:)= str2num (p {1} {3})
结束
%的加权平均的CGs质量值。
machineCG = (0 0 0);
i = 1:长度(h)
machineCG = machineCG +群众研究生院理事会(我)*(我:);
结束
machineCG = machineCG /笔(大众);
研究生院理事会的情况下所有的身体不一定是定义在世界坐标可以使用身体传感器块为你做这种转换,但这需要手动连接这个阻碍身体每一块在你的模型。正文选择器连接到身体的CG块并选择世界坐标系统的输出位置并将此信息发送给工作区或无论你想计算CG。
2的评论
晨祷Saeedkondori
晨祷Saeedkondori 2015年10月29日
你好,我是试图执行该代码,将有一些基本问题。你介意解释一下?我需要重心的2 d图像的人体,

登录置评。

答案(1)

彼得Kovesdi
彼得Kovesdi 2019年12月18日
有什么更新吗?在Matlab 2017 b,甚至命令
h = find_system (gcs,“名称”,“身体”)
工作了。

类别

找到更多的在故障排除帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!