Google word2vec算法 数学原理
文档是 word2vec 算法 数学原理详解。word2vec是google的一个开源工具,能够仅仅根据输入的词的集合计算出词与词直接的距离,既然距离知道了自然也就能聚类了,而且这个工具本身就自带了聚类功能,很是强大。32预备知识本节介绍word2v中将用到的一些重要知识点,包括 sigmoid函数、 Bccs公式和Huffman编码等821 sigmoid函数sigmoid函数是神经网络中常用的激活函数之一,其定义为1+e该函数的定义域为(-∞,+∞),值域为(0,1).图1给出了 sigmoid函数的图像0.56图1 sigmoid函数的图像sigmoid函数的导函数具有以下形式(x)=0(x)1-0(x)由此易得,函数loga(x)和log(1-0(x)的导函数分别为log a(a)-1 a(a),log(1 o(a))l-a(a),(2.1)公式(2.1)在后面的推导中将用到32.2逻辑回归生活中经常会碰到二分类问题,例如,某封电子邮件是否为垃圾邮件,某个客户是否为潜在客户,某次在线交易是否存在欺诈行为,等等设{(x;)}温1为一个二分类问题的样本数据,其中x∈Rn,∈{0,1},当v=1时称相应的样本为正例当v=0时称相应的样本为负例利用 sigmoid函数,对于任意样本x=(x1,x2,…,xn),可将二分类问题的 hypothesis函数写成h(x)=o(6o+b1x1+62+…+bnxn)其中θ=(0,61,…,On)为待定参数.为了符号上简化起见,引入x0=1将x扩展为(x0,x1,x2,……,xn),且在不引起混淆的情况下仍将其记为ⅹ.于是,he可简写为取阀值T=0.5,则二分类的判别公式为ho(x)≥0.5:X)=0,ha(x)6),可分别用000001、010、011、100、101对“A,E,R,T,F,D”进行编码发送,当对方接收报文时再按照三位一分进行译码显然编码的长度取决报文中不同字符的个数.若报文中可能出现26个不同字符,则固定编码长度为5(25=32>26).然而,传送报文时总是希望总长度尽可能短.在实际应用中各个字符的出现频度或使用次数是不相同的,如A、B、C的使用颗率远远高于X、Y、Z,自然会想到设计编码时,让使用频率高的用短码,使用频率低的用长码,以优化整个报文编码为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的岀现频率作为字符结点的权值赋于该结点上,显然字使用频率越小权值起小,权值越小叶子就越靠下,于是频率小编码长,频率高编码短,这样就保证了此树的最小带权路径长度,效果上就是传送报文的最短长度.因此,求传送报文的最短长度问题转化为求由字符集中的所有字符作为叶子结点,由字符出现频率作为其权值所产生的 Huffman树的问题.利用 Huffman树设计的二进制前缀编码,称为 Huffman编码,它既能满足前缀编码的条件,又能保证报文编码总长最短本文将介绍的word2ve工具中也将用到 Huffman编码,它把训练语料中的词当成叶子结点,其在语料中岀现的次数当作权值,通过构造相应的 Huffman树来对每一个词进行Huffman编码图3给岀了例2.1中六个词的 Huffman编码,其中约定(词频较大的)左孩子结点编码为1,(词频较小的)右孩子编码为0.这样一来,“我”、“喜欢”、“观看”、“巴西”、“足球”、“世界杯”这六个词的 Huffman编码分别为0,111,110,101,1001和100000欢观有巴西足球图3 Huffman编码示意图注意,到目前为止关于 Huffman树和 Huffman编码,有两个约定:(1)将权值大的结点作为左孩子结点,权值小的作为右孩子结点;(②)左孩子结点编码为1,右孩子结点编码为0.在word2vee源码中将权值较大的孩子结点编码为1,较小的孩子结点编码为θ.为亐上述约定统一起见,下文中提到的“左孩子结点”都是指权值较大的孩子结点3背景知识word2vec是用来生成词向量的工具,而词向量与语言模型有着密切的关系,为此,不妨先来了解一些语言模型方面的知识83.1统计语言模型当今的互联网迅猛发展,每天都在产生大量的文本、图片、语音和视频数据,要对这些数据进行处理并从中挖掘出有价值的信息,离不开自然语言处理( Nature Language processingNIP)技术,其中统计语言模型( Statistical language model)就是很重要的一环,它是所有NLP的基础,被广泛应用于语音识别、机器翻译、分词、词性标注和信息检索等任务例3.1在语音识别亲统中,对于给定的语音段Voie,需要找到一个使概率p(Tcrt| Voice最大的文本段Tert.利用 Bayes公式,有P(Teact Voice)p(VoiceTert)p(Text)P(Veonce其中p( Voice Teat)为声学模型,而p(Tert)为语言模型(l8])简单地说,统计语言模型是用来计算一个句子的概率的概率模型,它通常基于一个语料库来构建那什么叫做一个句子的概率呢?假设W=m1:=(n1,w2,…,tr)表示由T个词1,2,…,ur按顺序构成的一个句子,则n,U2,…,wr的联合概率p(W)=p(u1)=p(u1,u2,…,r)就是这个句子的概率.利用 Baves公式,上式可以被链式地分解为1)=p(u1)·p(u2l1)·p(vai)…p(ur1-)3.1其中的(条件)概率p(1),p(U2mn1),p(u3),…,p(urln1-1)就是语言模型的参数,若这些参数巳经全部算得,那么给定一个句子1,就可以很快地算出相应的p(1)了看起来妤像很简单,是吧?但是,具体实现起来还是有点麻烦.例如,先来看看模型参数的个数.刚才是考虑一个给定的长度为T的句子,就需要计算T个参数.不妨假设语料库对应词典D的大小(即词汇量)为N,那么,如果考虑长度为T的任意句子,理论上就有N种可能,而每种可能都要计算T个参数,总共就需要计算TN个参数.当然,这里只是简单估算,并没有考虑重复参数,但这个量级还是有蛮吓人.此外,这些概率计算好后,还得保存下来,因此,存储这些信息也需要很大的內存开销此外,这些参数如何计算呢?常见的方法有 II-gram模型、决策树、最大熵模型、最大熵马尔科夫模型、条件随杋场、神经网络等方法.本文只讨论n-gram模型和神经网络两种方法.首先来看看n-gram模型32n-gram模型考虑pko4-)(k>1)的近似计算.利用 Baves公式,有p(wr wi)P(uP(w根据大数定理,当语料库足够大时,p(k4-1)可近似地表示为P(wwi)count(wi)(3.2)count(a其中 count(u4)和 count-)分别表示词串t和v-在语料中出现的次数,可想而知,当k很大时, count(o4)和 count(4-1)的统计将会多么耗时从公式(3.1)可以看出:一个词出现的慨率与它前面的所有词都相关.如果假定一个词出现的概率只与它前面固定数目的词相关呢?这就是n-gran模型的基本思想,它作了一个n-1阶的 Markov假设,认为一个词出现的概率就只与它前面的n-1个词相关,即-1)≈p(kk-1+),于是,(3.2)就变成了p(wxJuk-)count(n+1countri(3.3以〃=2为例,就有p(uk4-1)≈count(k-1, Wk)count(Wk-1)这样一简化,不仅使得单个参数的统计变得更容易(统计时需要匹配的词串更短),也使得参数的总数变少了那么, n-gran中的参数n取多大比较合适呢?一般来说,n的选取需要同时考虑计算复杂度和模型效果两个因素表1模型参数数量与n的关系模型参数数量1( ingram)2×1052(bigram)4×10103( trigram)8×10154(4grm)16×10在计算复杂度方面,表1给出了n-gram模型中模型参数数量随着n的逐渐增大而变化的情况,其中假定词典大小N=2000(汉语的词汇量大致是这个量级).事实上,模型参数的量级是N的指数函数(O(N"),显然n不能取得太大,实际应用中最多的是采用n=3的三元模型在模型效果方面,理论上是π越大,效果越奷.现如今,互联网的海量数据以及机器性能的提升使得计算更高阶的语言模型(如n>10)成为可能,但需要注意的是,当n大到一定程度时,模型效果的提升幅度会变小.例如,当n从1到2,再从2到3时,模型的效果上升显著,而从3到4时,效果的提升就不显著了(具体可参考吴军在《数学之美》中的相关章节).事实上,这里还涉及到一个可靠性和可区别性的问题,参数越多,可区别性越好,但同时单个参数的实例变少从而降低了可靠性,因此需要在可靠性和可区别性之间进行折中另外, n-gran模型中还有一个叫做平滑化的重要环节.回到公式(3.3),考虑两个问题:若 count(uk-n+1)=0,能否认为p(kln1-1)就等于0呢?若 count(kn+)= count(uk-+1,能否认为p(uur-)就等于1呢?显然不能!但这是一个无法回避的问题,哪怕你的语料库有多么大.平滑化技术就是用来处理这个问题的,这里不展开讨论,具体可参考[11总结起来,n-gram模型是这样一种模型,其主要工作是在语料中统计各种词串岀现的次数以及平滑化处理.概率值计算好之后就存储起来,下次需要计算一个句子的概率时,只需找到相关的概率参数,将它们连乘起来就好了然而,在机器学习领域有一种通用的招数是这样的:对所考虑的问题建模后先为其构造一个目标函数,然后对这个目标函数进行优化,从而求得一组最优的参数,最后利用这组最优参数对应的模型来进行预測对于统计语言模型而言,利用最大似然,可把目标函数设为plwlConteat(w))∈C其中C表示语料( Corpus), Context(u)表示词U的上下文( Context),即周边的词的集合.当 Context(u)为空时,就取p( Context(w)=p(u).特别地,对于前面介绍的 n-gran模型,就有 Context(mn)=2-n+1注3.1语料¢和词典仍的区别:词典仍是从语料¢中抽取岀来的,不存在重复的词;而语料C是指所有的文本內容,包括重复的词当然,实际应用中常采用最大对数似然,即把目标函数设为∑ logp(u( ontext(o)(3.4)然后对这个函数进行最大化从(3.4)可见,概率p( CONtex()已被视为关于和 Context()的函数,即p(w Context(w))= F(w, Conteact(w), 0)
- 2020-06-14下载
- 积分:1
ADAMS在机械设计中的应用
ADAMS在机械设计中的应用,清晰完整版分享一下,感谢支持前言为什么要写这本书呢?主要出于以下几个原因。第一个原因,是笔者在近十年给机械学院的研究生上“虚拟样机技术及其应用”这门课程的过程中,一直没有找到自己想要的教材。“虚拟样机技术及其应用”这门课,就其传统意义而言,就是谈 Adams应用的。但是 Adams在许多学科中都有应用,那么在选择教材的内容时,应该选择哪些方面的应用呢?是谈机械振动方面的应用,还是刚柔耦合方面的应用?是汽车设计方面的应用,还是试验设计方面的应用?当然这些知识都是有用的,但是对于学生而言,他们是否会觉得谈这种应用很突然呢?就教学规律本身而言,它讲究知识的前后衔接,要求能够给学生一个合理的符合逻辑体系的知识架构,而不是突然从天而降一个空中楼阁,让人不可拾级而上。所有机械专业的学生都学习过理论力学、机械原理和机械设计,而 Adams对这三个方面均提供了大量的支持,如果从这三门课程开始接着谈 Adams,他们会觉得熟悉而亲切,也便于迅速了解 Adams。可惜的是,笔者没有发现这样的书籍。所以很早,笔者就想从这三门课程着手,来谈 Adams对于这些学科的支持,从而为机械专业的硏究生们接触 Adams提供一个合适的切入点。第二个原因,来自于笔者给机械学院的本科生上“理论力学”和“机械原理”这两门课程中所遇到的困惑。理论力学这门课,逻辑严密,题目千变万化,很多动力学的问题,即便像笔者这样教学多年的人,初次遇见时仍旧感到束手无策。所以教学这么多年以来,笔者一直致力于寻求通用解法,希望使用这种通用解法,能够求解一切理论力学的问题。2003年笔者读博士时,偶然接触到计算多体动力学理论,此时突然发现,笔者所苦苦寻找的通用解法,实际上就是计算多体动力学所采用的基本方法。而基于这种计算多体动力学理论,已经出现了几款专门的仿真软件, Adams就是其中之一。所以笔者迅速转人到 Adams,并开始利用它来求解理论力学的各种问题,结果发现它异常好用。无论多么复杂的动力学问题,只要正确建模, Adams都可以给出相当精确的答案。这一发现让笔者如获至宝,所以在近几年给学生上理论力学这门课时,已经开始有意地在上课期间向学生推荐这款软件,也开始在机械创新设计这门机械学院的选修课中向本科生们讲解这款软件的人门知识。此外,在笔者教授机械原理这门课的过程中,更深刻地感受到该软件对于“机械原理”的重要性。机械原理主要讲机构的设计与分析,但是如果学生对于机构的动作并无感性认识,那么无论是分析还是设计都感到困难。而使用 Adams,可以迅速地对机构进行建模、仿真,之后就可以浏览动画,从而对于机构有非常直观的感性认识。除了做动画以外, Adams对于凸轮机构的设计也很有用处。鉴于以上原因,笔者以为, Adams软件并不需要等到研究生阶段才对学生介绍,而是应该在本科阶段就引入。第三个原因,来自笔者带学生参加全国机械创新设计比赛中的体会。在连续三届带领学生参加全国机械创新设计比赛的过程中,笔者深切地感受到学生们在做设计时的那种无助与茫然。他们不知道方案设计从哪里开始,如何给出一个可行的方案,也不明白所给出的方案到底有没有用,无法对方案进行正确的评估,甚至连选择电机的功率都觉得很费劲。而当好不容易给出一个方案以后,他们也不明白结构设计该如何进行。他们所设计的轴和齿轮,基本上没有经过严格的力学计算。这并非他们不想进行计算,而是因为一旦机构复杂化后,几乎无法进行力学计算。我们在学习“理论力学”的静力学部分时,较为复杂的问题也只有四五根杆件,而且还只是平面结构。而对于我们设计的机械产品,一条传动链上可能就有十几个构件,而且还是空间结构。如何根据执行端的受力,正确推算出传动链上各个构件的受力,这是一个艰巨的任务。此时,所谓的解题技巧已经完全没有用处,而只能使用通用解法,也就是一个物体列出6个方程。如果传动链上有10个物体,这就需要列出60个方程。即便我们正确地列出了60个方程,那么该如何求解这60个方程呢?难道准备用手工计算吗?这令人望而生畏。这还仅仅是静力学问题,对于动力学问题该如何处理呢?难道对每个物体列出刚体平面运动微分方程后,再追加加速度关系吗?这更令人不寒而栗。因此许多学生放弃了计算这条途径,而只能随便给一个数据。对于所给定的这个数据,他们心中一点底都没有。到产品设计、加工、装配出来以后,一旦进行加载试验,才发现作品千疮百孔,到处都是问题,似乎每个地方都可能会发生断裂或者变形过大,学生们对自己的作品毫无信心。笔者在连续经过三次这样的比赛以后,深感计算的重要性,也深感我们的确需要一些称手的工具来帮助我们计算,而非手工计算。所以,像 Adams这种进行机构力学计算的软件几乎变得必不可少。所以,笔者深感在机械专业的高等教育中引人像 Adams这样的仿真软件,已经不仅仅是种时髦,也不是一种噱头。对于机械设计而言,他们就如同空气对于人类一样的重要。传统的手工计算方法无法求解复杂机构,对于复杂机构,几乎只有借助专业软件这一条道路。如果不使用专业软件,我们在大学所学习的许多课程,在实践中将会显得毫无用处。笔者以为,这也是为什么我们所培养的学生,在工作过程中觉得大学课程没有用处的一个重要原因。许多课程,对于所研究的对象做了大幅简化,为了能够给岀解析解,使学生可以做课后作业、进行考试,这些课程只能做一些简单的习题。但是实际问题是复杂的、变化万千的,教材所给出的方法很难在实践中得到应用,这就导致了理论与实践的严重脱节,导致了“读书无用论”的泛滥。鉴于此,笔者感到很有必要写一本关于 Adams的书。在这本书中,谈论如何用它对机械专业基础课程中的问题进行求解,使学生在本科或者研究生学习阶段,就能领会这种方法,从而在日后的工作中,能够有意识地使用专业软件来辅助自己的设计,使自己所学习的知识没有白费,这就是笔者写这本书的主要原因。鉴于以上原因,笔者在本书中主要谈了 Adams在理论力学、机械原理和机械设计这三门课程中的应用。在谈这些应用的时候,笔者以例题为主线来展开讨论,这些例题,绝大部分都来自于上课时使用的教材。这样做的目的,是想告诉学生, Adams就是为解决这种问题服务的。除了谈 Adams在这三门课程中的应用外,为了解决更复杂的问题,笔者也专门开辟出两章,一章谈 Adams对于三维的复杂机构是如何进行仿真的,另一章谈如何进行编程。在机械设计过程中,我们经常需要在三维建模软件中做出装配体,然后导入 Adams中进行动力学分析,以考察结构的受力和运动。笔者发现,许多学生对于这种方式很陌生,在进行模型转换时没有使用正确的方法,结果在把模型导亼 Adams后,发现构件数目众多,给建模和调试带来了相当的困扰。笔者在多年的模型转化过程中,找到了一些经验,希望能够分享这种经验,让学生们或者机械工程师们在遇到这种问题时少走弯路。这就是笔者开辟一章谈Ad-ams对于三维复杂机构进行仿真的原因所在。至于编程那一章,来自于笔者在与许多CAE爱好者交流时他们所提出的困惑。他们发现,有时需要对 adams进行二次开发,但是市面上关于 Adams的书籍,谈 Adams二次开发的不多,有的谈到了,但是并没有给出一道完整的例题。这使得他们必须自己一点点摸索、研究、调试,而在遇到问题以后也没有人讨论,觉得自学起来十分费劲,急需得到有效的指导。此外,笔者也发现,很多CAE爱好者,虽然大学时学习过某种编程语言,但是他们实际上并没有编制过多少实用的程序,所以对于如何编程,本身就很模糊。有鉴于此,笔者专门开辟出一章,以一个折叠机构为例,非常详细地说明了如何用 Adams对之进行编程,并伃细阐释了编程中的几乎所有细节问题,包括变量的定义,编程思路的形成,等等。这是一道十分完整的例题,它来自于笔者带领学生做创新设计比赛时遇到的一个实际问题,笔者希望这种详细的讲解能够让大家进入 Adams编程的大门。因此,这应该是一本密切联系实际的书,它的目的是希望学生在学会书中的知识以后,能够在实际设计中,能在 Adams的帮助下使用自己在大学阶段所学到的专业知识;这是一本充满例题的书:第Ⅰ章就有1道单摆的入门例题,理论力学部分有l道例题,机械原理部分有10道例题,机械设计部分有6道例题,编程部分是1道完整的例题,复杂机构部分有3道例题。希望读者在学习这些例题以后,能够触类旁通,举一反三。这也是一本讲解细致的书,对于所有的例题,我们都做了相当详尽的讲解,包括在建模前的理论分析,建模中的详细说明,以及建模后的讨论与小结,等等。我们这样做的目的,是希望读者不仅仅会操作,而且能深刻理解这种操作的由来,并及时总结经验,从而能够非常清晰地理解知识和软件本身。所以,理论联系实际、大量列举例题、详细说明原理,是本书的三大特色。就总体编排而言,本书分为7章。其中,第3章、第4章和第5章,分别讨论 Adams在理论力学、机械原理和机械设计中的应用,这是本书的核心部分;第6章和第7章,分别谈论 Adams的编程以及它对于复杂机构的仿真,这算是扩展部分;第1章是对于 Adams的入门介绍,它简要地介绍了 Adams的两个核心模块: Adams/View和 Adams/ Post processor的最重要功能及一般使用过程,并以一个单摆为例说明如何使用这两个模块;第2章谈的是 Adams,/View的10种基本使用技术。因为这些技术在后面几章的建模和仿真中使用的频率相当高,为了节省全书篇幅,就在该章中对这些常用技术进行了集中讲解,而到后面几章中用到这些技术时,一带而过,所以这两章是基础。因此,本书是由基础篇(第1,2章)、核心篇(第3,4,5章)和扩展篇(第6,7章)组成的。本书的绝大部分内容由宋少云写作,由尹芳反复修改后最终定稿。在本书的写作过程中,我们得到了许多在校学生以及CAE网友的大力支持,尤其是得到了笔者所带的研究生张凤姣、李小力、侯晶晶、李祖吉、满续文的大力帮助,他们提出了很多建设性的建议和意见,并为本书的校稿付出了很多心血,在此一并感谢。本书中的模型文件,读者可以在国防工业出版社网站(htp:w.ndip.cn)“资源下载”栏目下载。由于时间紧张,本书在撰写过程中难免会有一些错误,读者若有意见和建议,请在百度中搜索“宋博士的博客”(htt://blog.sina.com.cn/doctorsongshaoyun),给我留言。目录2.3.8移动构件………………34第1章绪论2.3.9小结…341.1 Adams软件简介12.4如何建模坐标点……………341.2 Adams/View人门…………2.4.1创建单个的坐标点……341.2.1界面介绍2.4.2创建一批坐标点………351.2.2一般使用方法52.4.3小结……………………361.3 Adams/ Post Processor入门……102.5如何创建转动副和移动副…361.3.1界面介绍……2.5.1创建转动副…361.3.2一般使用方法2.5.2创建移动副371.4实例:单摆…………………142.5.3小结…………………384.1问题描述…142.6如何创建驱动381.4.2理论分析………142.6.1施加常数类型的旋转1.4.3建模……………………14驱动…………………381.4.4仿真………………182.6.2施加函数类型的旋转1.4.5后处理18驱动…381.4.6讨论242.7如何施加力…………422.7.1任务描述………………42第2章使用 Adams/view的十种基本2.7.2操作技术262.8如何使用仿真控制对话框432.1如何建模实体262.9如何创建测量………………452.1.1创建连杆………262.9.1观察结果的四种方法…452.1.2创建凸轮2.9.2测量的种类452.1.3小结2929.3创建对象测量的方法…462.2如何观察模型………302.10如何使用文本框…………482.3如何修改实体312.3.1了解构件的内部表示…31第3章 Adams在理论力学中的应用…512.3.2修改构件的名称……323.1引言…512.3.3修改构件的颜色,,323.2静力学分析………………522.3.4修改构件的可见性………323.2.1简支梁的平衡计算……522.3.5修改构件的透明度333.2.2外伸梁的平衡计算582.3.6激活/休眠构件………333.2.3平面桁架内力的计算…652.3.7删除构件343.2.4空间结构的内力计算…74Ⅶ3.3运动学分析805.2齿轮机构的建模与分析……1863.3.1牛头刨床的运动分析…805.2.1概述………………………1863.3.2凸轮机构的加速度5.2.2斜齿圆柱齿轮机构的建模分析……89与分析…883.3.3纯滚动的建模与仿真…975.2.3直齿锥齿轮机构的建模3.4动力学分析104与分析……………1963.4.1质点系动力学………1045.2.4复合轮系的建模与3.4.2三棱柱的滑动…………111仿真…1993.4.3板上有滚子的动力学5.3链传动的建模与分析205问题…………………1205.3.1概述………………………2053.4.4滑轮组的动力学1275.3.2滚子链传动的运动学建模与仿真207第4章 Adams在机械原理中的5.4带传动的建模与分析213应用1335.4.1概述…………………2134.1引言…………………1335.4.2V带传动的建模与4.2核心机构的建模……………134仿真………2154.2.1四杆机构的建模与5.5滚动轴承的建模与分析225仿真………1345.5.1概述2254.2.2六杆机构的建模与5.5.2滚轴轴承的建模与仿真……………………139仿真2264.2.3小结…………………143第6章 Adams编程入门…………2364.2.4尖底推杆盘形凸轮机构的建模436.1引言……………2364.2.5外啮合圆柱齿轮机构的6.2主要建模命令分析237建模……………1486.2.1任务分析………………2374.2.6齿轮齿条机构的6.2.2主要建模命令237建模……1536.3 Adams/view的逻辑控制语句…2464.3高级建模技术…1576.3.1如何使用循环语句……2464.3.1棘轮机构的建模……1576.3.2如何使用条件语句……2484.3.2槽轮机构的建模……1646.4程序片段的编制……2494.3.3凸轮机构的设计……1676.4.1创建关键点的算法……2494.3.4复杂机构的建模与6.4.2创建连杆的算法………252仿真………………1736.4.3创建滑块的算法…2554.3.5大型模型合并技术……1766.4.4创建转动副的算法……2566.4.5创建移动副的算法……260第5章 Adams在机械设计中的应用6.4.6创建集中力的算法…1846.4.7施加速度驱动的5.1引言…184算法…2616.5创建宏………………2627.2凸轮演示机构的运动学仿真…2756.5.1概述2627.2.1问题描述……………2756.5.2创建折叠机构的宏2627.2.2建模分析………2766.6对话框2647.2.3仿真过程2776.6.1概述2647.3单缸发动机的动力学仿真……2886.6.2创建折叠机构的7.3.1问题描述……………288对话框………………2657.3.2建模分析2896.7定义菜单2707.3.3仿真过程2806.7.1概述…2707.3.4讨论3036.7.2创建折叠机构的7.3.5小结303菜单项…殳计2717.4飞剪机的优化设…………3046.8程序的应用……………………2737.4.1问题描述3047.4.2建模分析305第7章 Adams在机械设计中的综合使用7.4.3仿真过程306275参考文献……3227.1引言…………………………275Ⅸ第1章绪论1.1 Adams软件简介Adams的英文全称是 Automatic Dynamic Analysis of Mechanical System,其对应的中文翻译是“机械系统的自动动力学分析”。从该名称可以看出,该软件用于对机械系统进行动力学分析,而机械系统正是机械专业学生进行设计、分析和制造的对象,所以 Adams主要是为机械类学生服务的一款专业软件。Adams是对机械系统进行动力学分析的,这就意味着它与 AutoCAD,Po/ Engineer,Solid Works等软件的设计目的是不一样的。这些软件的主要目的是为机械设计及机械制造服务的,虽然它们也含有分析功能,但 Adams是专门为动力学分析服务的,其动力学分析功能更全面而强大。所谓动力学分析,是指对于某一个系统,当在它上面加上力和或运动后,经过计算,我们可以得到其上任何一个构件或者某个点的位移、速度、加速度,以及在运动副处(如果有的话)的受力情况。这样,对 Adams而言,它输入的是机械系统,输出的主要是位移,速度,加速度和力四种力学量我们知道,动力学分析是诸如理论力学课程所解决的问题。理论力学中已经花费了大量的篇幅谈论如何用动量定理、动量矩定理、动能定理、达朗贝尔原理以及拉格朗日方程来求解动力学问题,为什么还需要用软件来对动力学问题进行分析呢?实际上,仔细研究理论力学中的问题就可以发现,理论力学所提出的解法看似很完美,但只要机构稍微复杂一点(例如有3~5个构件),手工求解就十分麻烦。而在实际工程中我们面对的构件数目成百上千,手工计算其工作量不可思议。工作量大还只是一个方面,更麻烦的在于有些问题从数学上根本就不可能得到解析解,而只能得到所谓的数值解。在这种情况下,对机械系统进行手工动力学分析就成为一件几乎不可能完成的任务。为了解决这个难题,研究人员提出用计算机求解机械系统的动力学问题,并相应地开发出一些动力学分析软件,比较著名的如 Adams, Recurdyn, Simpack, Nucars, Samcef等。Adams只是其中之一,但也是非常重要的一款,它发展到至今也不过30多年,其创始人是美国的 Michael E. Korybalski1973年, Michael E. Korybalski在美国密西根大学安娜堡分校( University of Michigan,AnArbor)获得机械工程硕士学位后,进入福特汽车公司工作,担任产品工程师。四年后,他与人合作在密执安州安娜堡镇创立了MDI公司( Mechanical Dynamics Inc),到1980年开发出第套3D机构运动分析系统商品化软件,称为 Adams。2002年,MDI公司被 MSC Software公司收购,这样 Adams成为MSC产品线的一个组成部分,更名为MSC. Adams。经过多年的发展,如今 Adams发展成为 Adams2013版,这也是本书所使用的版本。Adams发展至今,其包含的内容已经相当广阔,在其内部包含了很多模块,可以求解的问题也超越了单个学科的范围,而成为一个多学科的仿真软件。下面以 Adams2013为例,对其组成做一个简要介绍。Adams2013中包含一系列模块,按照功能总体上可以分为四类:●基础类。包含4个模块: Adams/view主要用于建模,它是本书中使用最多的一个模块Adams/Solver用于计算,初级用户很少会直接使用它,而是在 Adams/vew中通过一个按钮间接调用该模块; Adams/ Post processor用于进行后处理,本书也会经常使用它; Adams/Insight是专门用于做虚拟试验的一个模块,本书不会涉及它●高级类。包含六个模块: Adams/Controls用于机械一控制系统的联合仿真;Adams/ Durability用于耐久性仿真; Adams/Flex用于创建柔性体; Adams/ Mechatronics用于机电一体化系统的仿真; Adams/Vibration用于振动系统的仿真;Ⅴ iew Flex用于创建柔性体●汽车类。包含七个模块: Adams/Car(汽车模块); Adams/Car Ride(平顺性分析模块);Adams/Car Truck(卡车模块); Adams/(has专业底盘模块); Adams/ riverine(传动系统模块);Adams /SmartDriver(高级驾驶员模块); Adams/ire(轮胎模块)。这些模块主要用于汽车设计中。●机械类。 Adams^. Machinery(机械模块),里面包含了对齿轮机构、带传动、链传动、轴承的建模和仿真,这主要是为通用机械设计而提供的一个模块。本书会专门开辟一章介绍其中的内容。下面将主要介绍 Adams的基础类中的两个模块: Adams/View和 Adams/ PostProcessor,它们是我们在实际仿真中用的最多的两个模块,本书的绝大部分任务都是在这两个模块中解决的。12 Adams/view入门Adams/view是 Adams系列产品的核心模块之一,主要用于机械系统的建模。本节介绍两个内容: Adams /view的界面以及 Adams/View的一般使用方法。1.21界面介绍从 Windows的【启动菜单】→【所有程序】→【 MSC Software】【 Adams2013】→【view】→【 Adams-view】进入 Adams/view的欢迎界面(图1-1)。可以看到,该欢迎界面有三个选项● New model(新模型):用于创建一个新的模型。● Existing Model(现存的模型):用于打开一个现有的模型。Exit(退出):退出 Adams/view。这里选择 New Model创建一个新模型,接着弹出了一个 Create New Model(创建新模型)的对话框(图1-2)。该对话框主要用于确定新模型的最基本属性。① Model namer(模型名)。指定该新模型的名称,请使用英文或者汉语拼音,而不要使用中文字符。② Gravity(重力)。用于指定是否需要考虑重力,以及重力的方向。运动学分析不需要考虑重力;动力学分析一般需要考虑重力;而对于静力学分析,基于问题的性质,会有选择性的考虑是否需要重力。对于该项,也可以在进入 Adams,/vew的主界面后再通过主菜单进行设置。③ Units(单位)。主要用于确定模型的长度、质量、力、时间、角度的单位。对于机械产品而言,长度通常为mm,有时候为m。对于该项,同样也可以在进入 Adams/View的主界面后,通过主菜单进行设置。
- 2020-06-27下载
- 积分:1