Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2012-12-18, 16:08   #1
jiangnanpg
初级会员
 
注册日期: 2012-12-18
年龄: 36
帖子: 4
声望力: 0
jiangnanpg 正向着好的方向发展
默认 自己编译的求解微分方程m文件不知能否供VB输入参数调用DLL

自己编译的m文件不知能否供VB输入参数调用DLL进行运算并在VB中输出结果,其中L、W、H、p、D为VB的5个文本框输入参数,THETA_A为VB的一个文本框输出参数
(m文件运算结果),求大神指导(在MATLAB中给这5个参数赋值,可以得出结果)
function [THETA_A,zdlyl]=bxyjs(L,W,H,p,D)
clear;close;clc;format long
global THETA
global THETA_A
global L
global W
global H
global p
global D
THETA=0.8;
THETA_A=2;
while abs(THETA_A-THETA)>0.001
THETA=THETA+0.0001;
y0=0;
[x1,y1]=ode45(@f,[0,L],y0);
THETA_A=max(y1);
end
t1=9.160178682401550e+008;
[x2,y2]=ode45(@q,[0:0.001:THETA_A],t1);
zdlyl=max(y2);
plot(x2,y2)
grid on
xlabel('变形角θ/rad'),ylabel('应力σmax/MPa')
title('不同压强下的应力变化曲线')
function dydx=f(x,y)% dθ/ds
global THETA
global W
global H
global p
global D
E=20.5e10;%梁的弹性模量
a=0.021;
b=0.033;%铰链,座头尺寸
dydx=(2*(pi*D^2*p/4)*(cos(THETA/2)-cos(y-THETA/2))/(E*(W*H^3/12))+((pi*D^2*p/4)*(b*cos(THETA/2)+a*sin(THETA/2))/(E*(W*H^3/12)))^2)^0.5;
function dndm=q(m,n)% dσmax/dθ
global THETA_A
global W
global H
global p
global D
E=20.5e10;%梁的弹性模量
a=0.021;
b=0.033;%铰链,座头尺寸
dndm=6*(pi*D^2*p/4)*sin(m-THETA_A/2)/(W*H^2)/((2*(pi*D^2*p/4)*(cos(THETA_A/2)-cos(m-THETA_A/2))/(E*(W*H^3/12))+((pi*D^2*p/4)*(b*cos(THETA_A/2)+a*sin(THETA_A/2))/(E*(W*H^3/12)))^2)^0.5)+(pi*D^2*p/4)*sin(THETA_A/2-m)/(W*H);
jiangnanpg 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 01:40


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.