首页 > 其他分享 >【刚度矩阵推导】2d frame 单元

【刚度矩阵推导】2d frame 单元

时间:2024-04-26 12:22:23浏览次数:23  
标签:12 frame bornoulli 2d Iz stiffness 刚度

2d frame 单元是x-y平面上的单元,每个节点上有2个平移自由度的和一个转动自由度.局部坐标系下,单元位移向量为:

\( u=[ u_1 ,u_2 ,u_3, u_4, u_5, u_6]^{T} \)

其局部坐标系下的刚度矩阵可以由2d truss单元和2d bornoulli-beam单元的刚度矩阵组合而成.

alt text

使用matlab进行推导:

% ! bornoulli-beam element stiffness matrix in local system
clc
clear

syms E Iz L A

a=0.5*L;

k_e_bornoulli_beam_stiffness=E*Iz/(2*a^3)*[3 3*a -3 3*a ;3*a 4*a*a -3*a 2*a*a; -3 -3*a 3 -3*a;3*a 2*a*a -3*a 4*a*a ];
disp('k_e_bornoulli_beam_stiffness:')
simplify(k_e_bornoulli_beam_stiffness)

% todo : 2d truss element stiffness matrix in local system

k_e_2d_truss_stiffness=(E*A/L)*[1 -1; -1 1];

% todo : elem's dof 
frame_2d_stiffness=sym(zeros(6,6));

frame_2d_stiffness([1,4],[1,4])=k_e_2d_truss_stiffness;

frame_2d_stiffness([2,3,5,6],[2,3,5,6])=k_e_bornoulli_beam_stiffness;
disp('frame_2d_stiffness:')
simplify(frame_2d_stiffness)

<!-- 输出结果 -->

k_e_bornoulli_beam_stiffness:
 
[ (12*E*Iz)/L^3,  (6*E*Iz)/L^2, -(12*E*Iz)/L^3,  (6*E*Iz)/L^2]
[  (6*E*Iz)/L^2,    (4*E*Iz)/L,  -(6*E*Iz)/L^2,    (2*E*Iz)/L]
[-(12*E*Iz)/L^3, -(6*E*Iz)/L^2,  (12*E*Iz)/L^3, -(6*E*Iz)/L^2]
[  (6*E*Iz)/L^2,    (2*E*Iz)/L,  -(6*E*Iz)/L^2,    (4*E*Iz)/L]
 
frame_2d_stiffness:
 
[ (A*E)/L,              0,             0, -(A*E)/L,              0,             0]
[       0,  (12*E*Iz)/L^3,  (6*E*Iz)/L^2,        0, -(12*E*Iz)/L^3,  (6*E*Iz)/L^2]
[       0,   (6*E*Iz)/L^2,    (4*E*Iz)/L,        0,  -(6*E*Iz)/L^2,    (2*E*Iz)/L]
[-(A*E)/L,              0,             0,  (A*E)/L,              0,             0]
[       0, -(12*E*Iz)/L^3, -(6*E*Iz)/L^2,        0,  (12*E*Iz)/L^3, -(6*E*Iz)/L^2]
[       0,   (6*E*Iz)/L^2,    (2*E*Iz)/L,        0,  -(6*E*Iz)/L^2,    (4*E*Iz)/L]

标签:12,frame,bornoulli,2d,Iz,stiffness,刚度
From: https://www.cnblogs.com/aksoam/p/18159778

相关文章

  • Visual Studio 安装 旧版本(.NET Framework 4.0 和 4.5)
    VisualStudio2022安装程序中单个组件中没有 .NETFramework4.0 或者 .NETFramework4.5其他NET版本直接在下载适用于VisualStudio的.NETSDK中的开发者工具包解决方式:通过nuget下载4.0安装包下载地址:https://www.nuget.org/packages/Microsoft.NETFramework.......
  • 【CC2DX随笔】多个精灵播放同一个动画时的问题(只播放最后一个动画)
    多个精灵播放同一个动画时的问题代码摘要//pSpReinit在2次循环里代表2个精灵.for(shortj=0;j<2;j++){for(shorti=0;i<THMAX_ANI_COUNT;i++){if(0==strcmp(m_arrpAniGroup[i]->szarrDesc,"batMove")){pAniMoveTo=m_arrpAni......
  • dotnet 修复多框架 TargetFrameworks 包含不受支持平台导致构建失败
    本文将告诉大家如何修复dotnet项目里的多框架TargetFrameworks如果包含了当前系统无法支持的平台时,如何进行跳过。解决在Linux平台构建时提示MacCatalyst不受支持而构建失败故事的背景是我期望在GitHub的Action里面构建一个项目,我期望能够在Windows和Linux和Ma......
  • C#的基于.net framework的Dll模块编程(二) - 编程手把手系列文章
          今天继续这个系列博文的编写。接上次的篇幅,这次介绍关于C#的Dll类库的创建的内容。因为是手把手系列,所以对于需要入门的朋友来说还是挺好的,下面开始咯: 一、新建Dll类库;这里直接创建例子的Dll类库项目,至于项目文件目录的存放布局后面的例子中会介绍。......
  • 处理DataFrame的技巧
    DataFrame:user_idnameagecountryscorecontinent1001Mark55Italy4.5Europe1000John33USA6.7America1002Tim41USA3.9America1003Jenny12Germany9Europe如果在构造DataFrame时没有提供列名,那么pandas会用从0开始的数字为列编号。us......
  • QT 程序使用 Framebuffer 显示 UI
    桌面版本的Linux都会带有类似xorg这样的图形服务,桌面程序和应用程序的UI都是通过图形服务渲染的。但是有些系统为了减少系统体积、提升性能,会把图像服务和没有用到的模块裁剪掉,如:嵌入式系统。没有图形服务程序就不能直接渲染显示UI,这时候我们可以使用Framebuffer进行渲......
  • Occ中gce、GC、GCE2D构造对象的区别
    这三个名字很接近,不知道为何取名字这么容易误解。gce是构造产生gp_前缀的对象;GC是构造产生Geom_前缀的对象;GCE2D是构造产生Geom2d_前缀的对象。gce中有的类继承自gce_root;GC中有的类继承自GC_Root;GCE2D中有的类继承自GCE2d_Root。gce_root,GC_Root,GCE2d_Root中有一个gce_ErrorTy......
  • 微信小程序canvas2d实现可滑动的圆环形进度条
     最近在搞一个微信小程序,有一个圆环的进度条,而且要求颜色要渐变的,本来想用秋云插件实现,但是秋云的插件不能滑动这个进度条,后面用canvas实现成品效果图:避坑:  <canvasid="myCanvas"type="2d"></canvas><canvascanvas-id="myCanvas"></canvas>两个canvas标签,一......
  • [985] Filter by Column Value & Multiple Conditions in Pandas dataframe
    ref:WaystofilterPandasDataFramebycolumnvaluesFilterbyColumnValue:Toselectrowsbasedonaspecificcolumnvalue,usetheindexchainmethod.Forexample,tofilterrowswheresalesareover300:Pythongreater_than=df[df['Sales&#......
  • Virtuoso绘制模拟模块Frame并导出LEF
    数模混合Flow时一些pin多的模拟模块可以通过导出lib和LEF,合并到数字flow中进行自动布线。第一步肯定是和后端那边确定macro的形状以及各个端口的出pin方向和metallayer。这些确认完了之后,就可以开始做lef了。网络上的教程交的是用abstract做,但实际上这是个很老旧的软件了,现在vi......