24小时热门版块排行榜    

查看: 6851  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

容墨竹止

新虫 (初入文坛)

[求助] 【ode45】matlab 用积分出现关于积分公差的警告 已有1人参与

这个问题一直解决不了,又很急,希望有懂的朋友帮帮我。

代码如下:

M文件:
function dx=F_LTV_0(t,x)
dx=zeros(6,1);
global m n b_0 w_c

r0=10;
re=13;

r=r0+(1-exp(-t))*(re-r0);

dr=exp(-t)*(re-r0);
ddr=-exp(-t)*(re-r0);

rr=sqrt(x(1)^2+x(2)^2+x(3)^2);

x10 = sqrt(1/6)*r;
x20 = 0;
x30 = sqrt(5/6)*r;
x40 = sqrt(1/6)*dr;
x50 = 0;
x60 = sqrt(5/6)*dr;
x70 = sqrt(1/6)*ddr;
x80 = 0;
x90 = sqrt(5/6)*ddr;


DX=[x(1)-x10
    x(2)-x20
    x(3)-x30
    x(4)-x40
    x(5)-x50
    x(6)-x60];   



% % %

p1=(-x(1)^2-x(2)^2+2*x(3)^2)*x(5)-3*x(2)*x(3)*x(6)+w_c*x(1)*(x(1)^2+x(2)^2-2*x(3)^2);
p2=(x(1)^2+x(2)^2-2*x(3)^2)*x(4)+3*x(1)*x(3)*x(6)+w_c*x(2)*(x(1)^2+x(2)^2-2*x(3)^2);
p3=3*x(3)*(x(2)*x(4)-x(1)*x(5)+w_c*(x(1)^2+x(2)^2));

P=[ 0;
    0;
    0;
    p1;
    p2;
    p3]';



%
%
Q=[2*sign(x(1)-x10),2*sign(x(2)-x20),sign(x(3)-x30),2*n*x(5)+3*n^2*x(1)-x70,-2*n*x(4),-n^2*x30-x90];


AA=Q*DX;
BB=P*DX;

U=-m*rr^5/b_0*(AA/BB);


% % 状态方程------------------------------

dx(1)=x(4);
dx(2)=x(5);
dx(3)=x(6);
dx(4)=2*n*x(5)+3*n^2*x(1)+(U)*b_0/(m*rr^5)*p1;
dx(5)=-2*n*x(4)+(U)*b_0/(m*rr^5)*p2;
dx(6)=-n^2*x(3)+(U)*b_0/(m*rr^5)*p3;

%---------------------------------------------

dx=[dx(1);dx(2);dx(3);dx(4);dx(5);dx(6)];
end

主程序:
close all;
clear;
clc
  global  m n b_0 w_c


%% Constants
m=50;
n=2*pi/5400/2;
b_0=20;
w_c=500*pi;


r0 = 10;
x_1=sqrt(1/6)*r0;
x_2=0;
x_3=sqrt(5/6)*r0;
x_4=0;
x_5=0;
x_6=0;

%% Solve ODEs
xe= [x_1;x_2;x_3;x_4;x_5;x_6];
tspan = [0 10000];
options =odeset('RelTol',1e-9,'AbsTol',1e-9);
[t,x] = ode45(@F_LTV_0,tspan,xe,options);
y = x';


出现了如下警告并且ode不再继续运行。
警告: 在 t=1.596171e+00 处失败。在时间 t 处,若不将步长降至允许的最小值(3.552714e-15)以下,积分公差要求无法满足。

我把ode45换成其他的ode积分也不行。除非把绝对误差和相对误差调大到10^(-5)以上,但是这样出来的结果也不对。我怀疑是U的设计不对,但是反复检查后确实表达式是这样。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

容墨竹止

新虫 (初入文坛)

仿真时间太短了,我也不确定结果是否正确。
正确积分后的结果应该是这样:x1=5.307, x2=0, x3=11.8673.

请问你是怎么改的?
3楼2017-04-14 20:53:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

chendequan

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
未知是否正确
【ode45】matlab 用积分出现关于积分公差的警告
1.jpg


【ode45】matlab 用积分出现关于积分公差的警告-1
2.jpg


【ode45】matlab 用积分出现关于积分公差的警告-2
3.jpg

QQ:516477448,真心帮助解决MATLAB相关问题,提供详细资料,Word文档明确具体问题及要求,尽力而为!
2楼2017-04-14 10:46:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 时间戳变了,能看出什么问题? +8 基诺咪客 2026-08-17 11/550 2026-08-18 17:13 by 悠然熊猫
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +50 医学老男孩 2026-08-13 109/5450 2026-08-18 16:56 by 医学老男孩
[基金申请] 重要消息,中午系统在维护 +9 yuleib84 2026-08-18 10/500 2026-08-18 16:52 by archvillain
[教师之家] 两姐妹,一个辛辛苦苦30岁工作当大学教师,另一个23岁就工作当开车教练 +3 瞬息宇宙 2026-08-11 7/350 2026-08-18 16:42 by LNP@mRNA
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 8/400 2026-08-18 11:47 by gltch
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +4 Tide man 2026-08-14 5/250 2026-08-18 11:35 by Tide man
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
信息提示
请填处理意见