adams做动态静力学分析(牛头刨床为例)机械原理课设(完整)
前言
在上一篇博客基础上,进行拓展。刚学的adams,一些细节处理,花了一段时间弄明白。分享出来帮到同学们和新手们,避免一些坑。如果有帮助的话点个赞,或者关注涨粉,有问题的话下方评论。
介于文章篇幅限制,不可能非常详细,对于 没有接触过adams且对下文描述操作不清楚的 同学,建议先刷一遍教程。我刷的是:
【ADAMS2019从入门到精通(基础篇)】快速上手Adams,全面讲解
https://www.bilibili.com/video/BV1Xg4y1z7uX?p=4
两倍速刷即可,掌握基本的安装和操作
上一篇博客链接:
solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
https://blog.csdn.net/lxtm5/article/details/106605107
动态静力分析的简述、题目及解析 都已经介绍过了,在这不赘述
solidworks模型的导入到adams,关节约束
模型加了两个pin(红色)
方法一:
solidworks另存为的格式,名称用英文
打开adam,新建模型
导入文件,文件读取处双击空白选择
刷新显示
添加约束
1.添加固定副,下图下方有选择的英文提示
左边菜单栏找到下图约束栏,右键点击可修改约束,或双击左键
固定的一端要设置为大地,设置描述如下图
2.添加铰链
中间的黄球可调整显示模式
核对选择的是否正确,不正确的要修改
3.添加动力
一秒转360度
加了一部分约束,先仿真看看效果,看看约束加的是否正确,便于修改
前两个参数可修改,可确定仿真时间和步数,便于观察,后续还有细讲
驱动方向不对,可加负号
4.添加滑动副
为便于选择,点击零件,右键选择隐藏遮挡零件
方法二:
参考别人的博客:
利用Solidworks Motion将带有质量信息和关节约束的三维模型导入ADAMS
https://blog.csdn.net/weixin_38294178/article/details/74002293?depth_1-
一些问题其评论下方已有解答
这种方法就要让solidworks设置的配合和adams兼容,具体操作这里不赘述。因为该构件简单,我这次没用这种方法。
添加力的函数和质心质量、转动惯量
1、添加力的函数,单一力
力是随物体移动的,力的作用如下图红坐标系原点
点击红色圈,函数
可以看到这里也有IF语句,用法和solidworks是一样的
在solidworks中,我们输入的表达式是:
IF({速度2}:0,0,IF({线性位移11}-168:IF({线性位移11}+168:0,-9000,-9000),0,0))
由此我们要找运动位移和速度,
x方向的位移找到,点红色圈内,选择从哪个坐标系开始测量,到哪个坐标系,沿哪个坐标系可以是以上两坐标系之一
具体操作如下:
右键–marker–browse—找到如下图
接下来找速度
速度也是一样的步骤
IF({速度2}:0,0,IF({线性位移11}-168:IF({线性位移11}+168:0,-9000,-9000),0,0))
把速度和位移代入上式,得到
IF(VX(MARKER_34, MARKER_9, MARKER_9, MARKER_9):0,0,IF(DX(MARKER_34, MARKER_9, MARKER_9)-168:IF(DX(MARKER_34, MARKER_9, MARKER_9)+168:0,-9000,-9000),0,0))
仿真如下,为便于观察,设置前两参数使速度慢点,当有阻力使有红箭头存在,存在情况满足题目要求。
2.设置杆的质心
发现杆3的质心有点偏离圆心
新建一个坐标系,加在零件上,圆心会自动识别的
设置质心位置如下图即可
设置杆5的质心
一样的操作
3.设置杆件的质量和转动惯量
设置杆件3的质量和转动惯量,注意到质心坐标x轴垂直界面,所以是Ixx 单位kgmmmm
设置杆件5的质量
为减少计算误差,其他杆件均设为0
生成图像和表格对比数据
1.生成阻力的图像来核对函数是否正确
一秒转360度
原c语言以15度显示一次数据
360/15=24
仿真步数设为24
点击图表处理模块
注意到杆5上的一个坐标系原点,用它相对于整个装配模型原点的位置横坐标作为x,自变量
先点击红色圈内,设置自变量为数据(x轴),数据设置为上述坐标系原点的位移,如下图,先来验证下力的函数是否正确
纵坐标,先选择力,再点红圈,添加图像
可以看到效果大体还可以,当时力变化不是突变,而是一条斜线,就是因为前面的步长给的是24,绘图精度不够
打开仿真,先把步长改为240,运行仿真一次
再重复上述操作,不同的是,横线部分更改为再建一个图,最后点圈内生成图按钮
这回效果好多了,点击黄色部分按钮,能捕捉点
效果可以,x还是很接近-168的,可以看到有两条线,底下为0的线 是速度为反方向时 位置对应的力。
2.生成(原机构简图对应)1点的支反力的图像和表格数据核对
这里先选测量传感器,用角度作为图像x坐标
界面选择 Motion(添加的运动)
参数设置如下图
确定得到如下图
打开仿真,先把步长改为24,运行仿真一次
完成结果如下图
右键转换为全图
结果显示如下,点圈内显示最大最小值,情况符合实际情况
用测量的角度作为图像x坐标
先在source下拉设置为测量,x坐标由time切换到date,选择测量角度
(原机构简图对应)1点对应的是铰链5
设置y坐标如下图,先添加x方向的力
点添加曲线,曲线如下
再在原图上添加y方向的力
点添加曲线,曲线如下
点击曲线编辑工具
先实现FxFx曲线的运算,再实现FyFy曲线的运算,
得到新的两条曲线,至此一共四条
让新得的两条曲线相加,即FxFx+FyFy
至此一共5条
导出表格操作
填写形式如下
右键 ----设置单元格格式----文本
开根号得力的大小,注意所在格的单元格格式为—常规
拖动下拉即可得到所有角度对应的力的大小
C语言工作目录下新建一个文本 -----force1.txt
在指定位置 添加几行代码如下
FILE *fp1, *fp2, *fp3, *fp4, *fp5 ; //用于生成txt文件,单一类型格式,复制到表格中好核对
if((fp1=fopen("force1.txt","w"))==NULL)
{
printf("Can't open this file./n");
exit(0);
}
fprintf(fp1,"%13.3f\n" ,fr1) ;
编译运行没问题,在文件夹中运行exe文件会生成数据
把txt中的数据一次性复制到表格中对比,大体数据差不多,或多或少有些计算误差
关于角度的计算如下
下拉得到全部
C语言操作一样的
if((fp2=fopen("angle1.txt","w"))==NULL)
{
printf("Can't open this file./n");
exit(0);
}
fprintf(fp2,"%13.3f\n" ,bt1/dr) ;
角度大体都是一样的,有的可能因为atan的问题,还要补加180(红色部分),有的+360的肯定是没问题的
3.生成(原机构简图对应)2点的支反力的图像和表格数据核对
操作都是一样的,只不过选的铰链不同而已,不赘述,直接看结果。数据处理,±180(红色部分)或±360,还是有点误差。当算不出结果时,一定记得设置单元格格式为常规
4.平衡力矩的图像和表格数据核对
同样的操作不赘述
结果如下,180°后面的感觉符号有问题,不知道。。。大小是差不多的
另一种操作形式求合力矩
按趋势来讲,变号部分为红色,180°前面的感觉符号有问题,
总结
终于做完了,一些结果存在误差或感觉有点问题,不知道你们的结果怎么样?欢迎探讨,提意见或问题,欢迎评论
参考资料
1.《机械原理课程设计》 王淑仁
2.段胜儒牛头刨床
http://www.doc88.com/p-9955781305463.html
3.solidworks做运动学分析Motion(牛头刨床为例)机械原理课设(详细)
https://blog.csdn.net/lxtm5/article/details/106579578
4.solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
https://blog.csdn.net/lxtm5/article/details/106605107
5.利用Solidworks Motion将带有质量信息和关节约束的三维模型导入ADAMS
https://blog.csdn.net/weixin_38294178/article/details/74002293?depth_1-
6.ADAMS2019从入门到精通(基础篇)】快速上手Adams,全面讲解
https://www.bilibili.com/video/BV1Xg4y1z7uX?p=4
补充修正
在与同组同学的交流讨论下,最终发现了之前存在问题的原因,即力的方向角度(补±180)和力矩部分符号不对的问题。在这也非常感谢。分享与交流还是很能促进问题的发现与解决。
问题在于 之前给的工作阻力有问题。回顾一下:
IF(VX(MARKER_34, MARKER_9, MARKER_9, MARKER_9):0,0,IF(DX(MARKER_34, MARKER_9, MARKER_9)-168:IF(DX(MARKER_34, MARKER_9, MARKER_9)+168:0,-9000,-9000),0,0))
注意到仿真时,杆件向右移动时,很长的红线是指向右的,这代表工作阻力的方向,这里反了,把-9000改成9000即可。
IF(VX(MARKER_34, MARKER_9, MARKER_9, MARKER_9):0,0,IF(DX(MARKER_34, MARKER_9, MARKER_9)-168:IF(DX(MARKER_34, MARKER_9, MARKER_9)+168:0,9000,9000),0,0))
最后结果如下:
点1处的力和角度
点2处的力和角度
主动杆件1的平衡力矩
可以看到整体效果还是很好的,就只有在-90°的时候,两个力的角度相差180(红色字体部分)