问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

您好,我在使用ode45时也出现了类似的警告,请问,您当时怎么解决这个问题的,谢谢啦

发布网友 发布时间:2022-03-24 18:54

我来回答

2个回答

热心网友 时间:2022-03-24 20:23

你计算的公式应该是变量不只一个,然后两个变量的数值差的比较大,导致经过相同的时间,两参数数值变化过大。比如说如下式子
Dx=@(t,x)[(x(1)-123*x(2)));
(x(2)-1234*x(1))];
[a,x]= ode45(Dx,,[0 36000],[80 3000]);
x=x(end,:)
t1=@(t)v(t)-150000; %%%%v(t)是计算t时刻储气室体积的函数
t_zong=fzero(t1,10000) %%%%求函数t1在t=10000附近的零点
这个瞎写的式子中,假设正确的结果是总时间t_zong=3600秒,即1个小时,x(1)代表温度,开始为80,1个小时后为160;x(2)代表一个储气室的体积,开始为2500立方米,1个小时后为15万立方米。那么输出结果应该为:
x=(160 150000)
t_zong=3600
这样的话,3600秒内x(1)才变化80,而x(2)会变化十几万,相差太大,程序很容易报上面你写的那个警告,无法运算下去。
那怎么解决呢?
很简单,把x(2)看成体积除以1000,算出来结果后,分别将x(2)中的各数值乘以1000就是你要算的数,即:
Dx=@(t,x)[(x(1)-123*x(2)*1000));
(x(2)*1000-1234*x(1))];
[a,x]= ode45(Dx,,[0 36000],[80 3]);
x=x(end,:)
t1=@(t)v(t)-150; %%%%v(t)是计算t时刻储气室体积的函数
t_zong=fzero(t1,10000) %%%%求函数t1在t=10000附近的零点
最后就应该能计算出结果了,结果应该是:
x=(160 150)
t_zong=3600
最后再把150乘上1000就是正确的体积了
具体除以多少是根据变化较小的那个确定的,在这个瞎写假设的情境中,温度变化是几十,那体积除以某个数后也应该是几十到几百。
把这个方法套到你的方程中,把某个数缩小或者放大,应该就能解决问题了。

热心网友 时间:2022-03-24 21:41

您好,是这样的:
提示是说你的model里面不连续,应该使用VariableStepDiscrete仿真模式,而不是ode45模式。
有两种更改方法:
1、在该model的工具栏上选择simulation,再选择并进入configuration parameters界面,从solver里面设置,type设置为variable-step,solver设置为discrete;
2、或者在Diagnostics子菜单里将'Automatic solver parameter selection' 设置为none。追问好像不行呢,我是在matlab中使用Runge-kutta迭代方法求方程组的数值解,不是仿真中用的。。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我现在九十斤每天跑半小时可以减肥吗? 一只蛋鸡吃多少饲料 永诚财险水滴重疾2021值得推荐吗?重疾赔付次数有多少? 瑞泰保险水滴瑞选重疾险好不好?值得买吗? 水滴守护真爱重大疾病保障计划值得推荐吗?可靠吗? 去西塘和乌镇 为什么生死狙击花圣总是玩人类 江门豪江华庭带装修吗? 江门豪江华庭售楼中心电话是多少? 这种美图软件叫什么? matlab ode45用法报错 matlab中ode45使用怎么样控制步长? 怎么很好运用函数ode45() matlab中ode45括号的意思,导数? 我在编matlab程序的过程中,需要用ode45解一个一阶微分方程组,怎么做呢??? MATLAB中用ode45求解微分方程,如何设置最大步长? matlab用ode45求解问题并绘制二氧化碳浓度曲线 MATLAB 用ode45解方程组? matlab中ode45 及odeset的使用。 matlab用ode45求解微分方程组 matlab中ode45函数的使用 matlab中ODE45函数该如何使用? Matlab软件中使用ode 45 解微分方程组? matlab里ode45解决二阶常系数微分方程用法 matlab程序ode45 ode45的语法 关于matlab 的ode45用法 matlab ode45的用法 matlab ode45用法 荣耀20s怎么开启OTG模式? Mate 30 Pro泡到水里了 怎么处理? mate30Pro泡到水里了 怎么处理? 华为mate30pro掉水里了 Mate30Pro进水怎么办 要去售后吗? 我的Mate30Pro进水了,要怎么办啊? Mate 30 Pro下雨进水了,现在怎么办? mate30Pro进水怎么办 怎么修? mate30Pro掉水里了半小时了怎么办? Mate30Pro掉到水里。手续屏幕上都是。杠杠怎么办? Mate30Pro下雨进水了,现在怎么办? mate30Pro进水怎么办? 手机进水怎么办 mate30Pro? 如果华为Mate30Pro进水了开不了机怎么办啊? 手机突然移动数据不能用了,是怎么回事 手机数据用户不可用怎么解决 手机可以打电话,数据却不能用,这是怎么回事?该如何解决? 手机的移动数据开不了也用不了怎么办? 华为手机数据不能用是怎么办? 手机数据流量上不了怎么办? 手机数据连接打不开该怎么办?