怎样在ansys中用耦合自由度的方法模拟铰接关系呢,希望具体一些,新手~谢谢哦

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在ansys中用耦合自由度的方法模拟铰接关系呢,希望具体一些,新手~谢谢哦相关的知识,希望对你有一定的参考价值。

选择要模拟铰接的两个点,限制平移自由度及部分转动自由度(可能需要建立局部坐标)
下例为模拟x相可转的铰链
cp,next,ux,点1,点2 !x平移自由度限制
cp,next,uy,点1,点2 !y平移自由度限制
cp,next,uz,点1,点2 !z平移自由度限制
cp,next,roty,,点1,点2 !y转动自由度限制
cp,next,rotz,,点1,点2 !z平移自由度限制
更简单的是选用带铰链的单元模拟铰链,如Beam44单元,可以通过释放节点自由度模拟铰链
参考技术A 耦合节点的自由度(cp,),耦合方程(ce,),具体用法可以查询帮助,有很详细的用法

什么是耦合?解耦合的方法有哪几种?

项目的开发过程中,我们经常强调项目的代码模块尽量做到低耦合高内聚,但是什么是耦合?怎样做到低耦合?

什么是耦合?

耦合指的就是两个类之间的联系的紧密程度,看下面这段代码:

public class A
    public int i;


public class B
    public void put(A a)
        System.out.println(a.i);
    

上面这个例子中A类和B类之间存在一种强耦合关系,B类的put方法参数必须是A类类型,不可以是非A类类型。有强耦合关系当然也存在所谓的弱耦合关系,请看下面这段代码:

public interface IBase
    void say();


public class A implements IBase

    @Override
    public void say() 
        System.out.println("I am A");
    


public class B implements IBase

    @Override
    public void say() 
        System.out.println("I am B");
    


public class C
    public void put(IBase base)
        base.say();
    

上面这段代码中C类与A类、B类之间就存在一种弱耦合关系,C类的put方法的参数可以使A类类型也可以是B类类型,不像强耦合关系中必须是A类类型其他类型皆不可的情形。

怎么实现低耦合?

实现低耦合就是对两类之间进行解耦,解除类之间的直接关系,将直接关系转换成间接关系,下面来提供两种解耦思路。

使用类的向上转型或接口回调的方式进行解耦

这两个方式其实都是一种思想,都是利用多态的思想,上面的弱耦合样例代码是接口回调的方式,下面展示利用类向上转型如何解耦:

public class Base
    public void say()
        System.out.println("I am Base");
    

public class A extends Base

    @Override
    public void say() 
        System.out.println("I am A");
    


public class B extends Base

    @Override
    public void say() 
        System.out.println("I am B");
    


public class C
    public void put(Base base)
        base.say();
    

看到这段代码是不是感觉跟上面的利用接口实现的弱耦合代码很相似,他们都是利用继承思想实现的多态性。

利用适配器模式进行解耦

所谓的强耦合不就是类之间存在着直接关系,从而使得他们俩联系特别紧密,那我在他们之间加一层,使直接关系变成间接关系,请看下面这段代码:

public class A

    public void aSay() 
        System.out.println("I am A");
    


public class Base

    public A a;
    public Base(A a)
        this.a=a;
    
    public void baseSay()
        a.aSay();
    


public class B
    public void put(Base base)
        base.baseSay();
    


public static void main(String[] args)
    A a=new A();
    Base base=new Base(a);
    B b=new B();
    b.put(base);

上面这段代码就是适配器模式进行解耦的代码例子,可能有人会很疑惑这样解耦有什么意义,以上代码只做演示确实看不出这种解耦的好处,但是在实际的项目开发过程中,如果有关A类的一些需求发生改变,我们可能只需要修改Base中的相关代码就可以进行整体需求的改变,否则的话,我们不仅要 修改A,还很有可能会导致B的修改。

解耦的本质就是将类之间的直接关系转换成间接关系,不管是类向上转型,接口回调还是适配器模式都是在类之间加了一层,将原来的直接关系变成间接关系,使得两类对中间层是强耦合,两类之间变成弱耦合关系。

 

参考:

 

以上是关于怎样在ansys中用耦合自由度的方法模拟铰接关系呢,希望具体一些,新手~谢谢哦的主要内容,如果未能解决你的问题,请参考以下文章

ansys workbench 中耦合自由度的方法

ansys中beam188和link8的共同节点该如何处理,需不需要耦合,如需要,如何耦合呢?谢谢

ANSYS如何对所选面上的节点耦合自由度

请问在ansys模拟中,怎样加载扭距及求变形角度!

ANSYS自由度耦合

ansys怎么用命令流将底座和轴承支架相邻的俩个面上的节点自由度耦合,求高手解答,小弟感激不尽