找回密码
 注册
Simdroid-非首页
查看: 94|回复: 2

[1stOpt] 请教一段1stopt求解非线性方程组的代码是否有问题,谢谢

[复制链接]
发表于 2009-5-27 21:10:52 | 显示全部楼层 |阅读模式 来自 大连理工大学
Title "bendanalysis_lnonuniformgound_v_axialsoilcompleteyield";
//定义输入参数
constant D=0.4;       //1、管道外径
constant t=0.0095;       //2、管道壁厚
constant k_1=1.3475e6;     //3、断层上盘受力弹簧刚度
constant k_2=2.0064e6;     //4、断层下盘受力弹簧刚度
constant E0=2.1e11;      //5、管道钢RO模型初始弹性模量
constant qB=1.8177e8;      //6、交叉点处的轴向应力
constant qy=413000000;      //7、管道钢RO模型屈服应力
constant r=12;       //8、管道钢RO模型参数
constant Cnr=0.7692;     //9、管道钢RO模型参数
constant DYZ=0.0866;     //10、断层错动量的横向分量
constant qu_1=6.6834e4;    //11、断层上盘横向受力土弹簧屈服力
constant qu_2=9.9519e4;    //12、断层下盘横向受力土弹簧屈服力
constant fs_1=6.9820e3;    //13、断层上盘轴向土弹簧屈服力
constant fs_2=4.9048e4;    //14、断层下盘轴向土弹簧屈服力
constant AS=0.0117;      //15、管道横截面面积
constant I=2.2228e4;       //16、管道横截面转动惯量
//求解常变量
conststr lmda_1 = (k_1/4/E0/I)^0.25;
conststr lmda_2 = (k_2/4/E0/I)^0.25;
conststr CR_1 = 2*lmda_1*E0*I;   //断层上盘弹性梁端点的旋转弹簧刚度
conststr CR_2 = 2*lmda_2*E0*I;   //断层下盘弹性梁端点的旋转弹簧刚度
//定义求解参数及范围
parameter LC_1[0,],LC_2[0,],d_1[0,],d_2[0,],alpha_B,VA_1,VA_2,MA_1,MA_2,MB_1,MB_2,VB_1,VB_2,E_1[0,E0],E_2[0,E0];   //定义无需输出的参数
parameter qmax_1,xmax_1[0,],qmax_2,xmax_2[0,];       //定义需要输出的参数
//求解方程组
function MA_1 = (qu_1*CR_1*LC_1^4 - 72*E_1*I*d_1*CR_1 + 24*E_1*I*LC_1*alpha_B*CR_1)/(12*CR_1*LC_1^2 + 48*E_1*I*LC_1);
         MA_2 = (qu_2*CR_2*LC_2^4 - 72*E_2*I*d_2*CR_2 + 24*E_2*I*LC_2*alpha_B*CR_2)/(12*CR_2*LC_2^2 + 48*E_2*I*LC_2);
         MB_1 = (-qu_1*CR_1*LC_1^5 - 72*E_1*I*d_1*CR_1*LC_1 - 6*E_1*I*qu_1*LC_1^4 - 144*E_1^2*I^2*d_1 + 48*E_1*I*alpha_B*CR_1*LC_1^2 + 144*E_1^2*I^2*alpha_B*LC_1)/(12*CR_1*LC_1^3 + 48*E_1*I*LC_1^2);
         MB_2 = (-qu_2*CR_2*LC_2^5 - 72*E_2*I*d_2*CR_2*LC_2 - 6*E_2*I*qu_2*LC_2^4 - 144*E_2^2*I^2*d_2 + 48*E_2*I*alpha_B*CR_2*LC_2^2 + 144*E_2^2*I^2*alpha_B*LC_2)/(12*CR_2*LC_2^3 + 48*E_2*I*LC_2^2);
         VA_1 = (24*E_1*I*d_1*CR_1*LC_1 - 3*E_1*I*qu_1*LC_1^4 + 24*E_1^2*I^2*d_1 - qu_1*CR_1*LC_1^5 - 12*E_1*I*alpha_B*CR_1*LC_1^2 - 24*E_1^2*I^2*alpha_B*LC_1)/(2*CR_1*LC_1^4 + 8*E_1*I*LC_1^3);
         VA_2 = (24*E_2*I*d_2*CR_2*LC_2 - 3*E_2*I*qu_2*LC_2^4 + 24*E_2^2*I^2*d_2 - qu_2*CR_2*LC_2^5 - 12*E_2*I*alpha_B*CR_2*LC_2^2 - 24*E_2^2*I^2*alpha_B*LC_2)/(2*CR_2*LC_2^4 + 8*E_2*I*LC_2^3);
         VB_1 = (24*E_1*I*d_1*CR_1*LC_1 + 5*E_1*I*qu_1*LC_1^4 + 24*E_1^2*I^2*d_1 + qu_1*CR_1*LC_1^5 - 12*E_1*I*alpha_B*CR_1*LC_1^2 - 24*E_1^2*I^2*alpha_B*LC_1)/(2*CR_1*LC_1^4 + 8*E_1*I*LC_1^3);
         VB_2 = (24*E_2*I*d_2*CR_2*LC_2 + 5*E_2*I*qu_2*LC_2^4 + 24*E_2^2*I^2*d_2 + qu_2*CR_2*LC_2^5 - 12*E_2*I*alpha_B*CR_2*LC_2^2 - 24*E_2^2*I^2*alpha_B*LC_2)/(2*CR_2*LC_2^4 + 8*E_2*I*LC_2^3);

         E_1 = E0/(1+(1+r)*Cnr*(qmax_1/qy)^r);
         E_2 = E0/(1+(1+r)*Cnr*(qmax_2/qy)^r);

         //以下为必要方程
         VA_1 = -lmda_1*MA_1;
         VA_2 = -lmda_2*MA_2;
         VB_1 = VB_2;
         MB_1 = MB_2;
         d_1 + d_2 = DYZ;

         xmax_1 = VA_1/qu_1 + LC_1 - 2*I*fs_1/D/qu_1/AS;
         xmax_2 = VA_2/qu_2 + LC_2 - 2*I*fs_2/D/qu_2/AS;
         qmax_1 = D/2/I*(-MA_1 - VA_1*(LC_1 - xmax_1) - 0.5*qu_1*(LC_1 - xmax_1)^2) + qB - fs_1*xmax_1/AS;
         qmax_2 = D/2/I*(-MA_2 - VA_2*(LC_2 - xmax_2) - 0.5*qu_2*(LC_2 - xmax_2)^2) + qB - fs_2*xmax_2/AS;
 楼主| 发表于 2009-5-27 21:14:53 | 显示全部楼层 来自 大连理工大学
Simdroid开发平台
补充一下文件,可下载直接运行,老是报错“0.4_1参数定义有误”,可我反复检查没有找到,希望达人帮助,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2009-5-29 10:38:27 | 显示全部楼层 来自 大连理工大学
已经解决!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-18 02:27 , Processed in 0.050803 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表