⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m_chap3_ex2.m

📁 simulink建模与仿真 基础入门源代码
💻 M
字号:
clear

%  求解单元 1 的刚度矩阵
x=sym ('x');        L1=sym ('L1');      % 定义x和L1为符号变量
E=3e11;        I=5.2e-7;
N=[ 1 - 3 * (x^2) / (L1^2) + 2 * (x^3) / (L1^3),  x - 2 * (x^2) / L1 + (x^3) / (L1^2),....
      3 * (x^2) / (L1^2) - 2 * (x^3) / (L1^3),  -(x^2) / L1 + (x^3) / (L1^2) ];           % 形函数
Ni=diff ( N, x, 2 ); % 对形函数进行2次微分
Nt=transpose ( Ni);
kk1=Nt * Ni;
K1=E* I * int (kk1, 0, 'L1');      % 对kk1进行积分,积分区间0-L1
K1=subs (K1, 'L1', 5);             % 将K1矩阵中的L1代换成5,重新计算K1

%  求解单元 2 的刚度矩阵
x=sym ('x');        L2=sym ('L2'); % 定义x和L2为符号变量
N=[ 1 - 3 * (x^2) / (L2^2) + 2 * (x^3) / (L2^3),  x - 2 * (x^2) / L2 + (x^3) / (L2^2),....
      3 * (x^2) / (L2^2) - 2 * (x^3) / (L2^3),  -(x^2) / L2 + (x^3) / (L2^2) ];           % 形函数
Ni=diff (N, x, 2 );    % 对形函数进行2次微分
Nt=transpose ( Ni);
kk2=Nt * Ni;
K2=E * I * int (kk2, 0, 'L2');     % 对kk2进行积分,积分区间0-L2
K2=subs (K2, 'L2', 5);             % 将K1矩阵中的L2代换成5,重新计算K2

%  单元 1 的受力转为节点载荷
format  rat          %将计算结果用分数表示
x=sym ( 'x' );      L1=sym ( 'L1');
w= -1000;
N=[ 1 - 3 * (x^2) / (L1^2) + 2 * (x^3) / (L1^3),  x - 2 * (x^2) / L1 + (x^3) / (L1^2),....
       3 * (x^2) / (L1^2) - 2 * (x^3) / (L1^3),  -(x^2) / L1 + (x^3) / (L1^2) ];            % 形函数
P= x * w / L1;      %  外力分布函数
F= int ( P * transpose ( N ), x, 0, 'L1');
F=subs (F, 'L1', 5);

%  单元 2 的受力转为节点载荷
x=sym ( 'x' );      L2=sym ( 'L2');
w= -1000;
N=[ 1 - 3 * (x^2) / (L2^2) + 2 * (x^3) / (L2^3),  x - 2 * (x^2) / L2 + (x^3) / (L2^2),....
       3 * (x^2) / (L2^2) - 2 * (x^3) / (L2^3),  -(x^2) / L2 + (x^3) / (L2^2) ];             % 形函数
P= ( (1-x) * w / L2 );      %分布函数
F= int (P * transpose ( N ), x, 0, 'L2');
F=subs (F, 'L2', 5);

%  合并刚度矩阵
K1=[K1,zeros(4,2);zeros(2,6)];      K2=[zeros(2,6);zeros(4,2),K2];
KK=K1+K2;

%  求解最后结果
F=[ -750;  -2500 / 3;  -3500;  0;  -750;  2500 / 3 ];
KK(1,  :)=[1,  0,  0,  0,  0,  0];   % 加入边界条件,将第一行用此行代替            
KK(5,  :)=[0,  0,  0,  0,  1,  0];   % 加入边界条件,将第五行用此行代替
F(1,1)=0;                            %  将F矩阵第一行用零代替
F(5,1)=0;                            %  将F矩阵第五行用零代替
format  long
u=inv (KK) * F

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -