为什么我收到“错误使用daeic12 (xx行)这DAE似乎指数大于1。“当使用DAE解决ode15s吗?
14日视图(30天)
显示旧的评论
你好亲爱的Matlab社区,
我在努力解决以下dae系统:
phia_dot = ua1 / N% = phia_dot
phib_dot = -ub1 / N% 0 phib_dot
0 = ua1 + ub1 + uc1
0 = ua2 + ub1
0 = ub2 + uc1
0 = uc2 + ua1
0 = ua1 + ua2 - uaQ
0 = N * ia + phib * Rm - Rm (-phia-phib) *
0 = 2 * N * ia + phib * Rm - phia * Rm
我得到错误消息
错误使用daeic12(第78行)
这似乎DAE指数大于1。
错误ode15s(第304行)
[y, yp, f0, dfdy nFE, nPD Jfac] = daeic12 (ICtype, odeFcn odeArgs t Mt, y, yp0, f0,…
错误spb_dgl_modell_saturation_singlePhaseSupply(11行)
[t、y] = ode15s (@ode_system tspan, y0,选项);
我用下面的代码(兆瓦):
N_EQ = 9;% DAE系统的方程
N_DIFF = 2;% DAE系统的常微分方程
对角线= horzcat (1 (1, N_DIFF), 0 (1, N_EQ-N_DIFF));
M =诊断接头(对角线);%质量矩阵
选择= odeset (“质量”米,“RelTol”1 e - 3);
tspan = [0, 0.2];
N_EQ y0 = 0 (1);
% ode求解器运行
[t、y] = ode15s (@ode_system tspan, y0,选项);
函数= ode_system (t、y)
Rm = 6.5 e7;
N = 27个;
uaQ = 10 * t;%提高输入电压从零;仅用于测试
%变量
phia = y (1);
phib = y (2);
ia = y (3);
ua1 = y (4);
ub1 = y (5);
uc1 = y (6);
ua2 = y (7);
ub2 = y (8);
uc2 = y (9);
%方程
= (…
ua1 / N% = phia_dot
-ub1 / N% = phib_dot
ua1 + ub1 + uc1
ua2 + ub1
ub2 + uc1
uc2 + ua1
ua1 + ua2——uaQ
N * ia + phib * Rm - Rm (-phia-phib) *
2 * N * ia + phib * Rm - phia * Rm
];
结束
我已经试着用小比例两个变量值:
phia = y (1) / 1 e3;
phib = y (2)。/ 1 e3;
但它并没有帮助。
我会很感激有用的评论和提示,以及进一步的资源来更好地理解这个问题。
提前谢谢。
亲切的问候
马丁因特网
接受的答案
Torsten
2022年2月28日
ODE15S解算器的八度,第二个代码也工程,并给出了正确的结果:
函数主要
N_EQ = 5;% DAE系统的方程
N_DIFF = 2;% DAE系统的常微分方程
对角线= horzcat (1 (1, N_DIFF), 0 (1, N_EQ-N_DIFF));
M =诊断接头(对角线);%质量矩阵
选择= odeset (“质量”米,“RelTol”1 e - 3);
tspan = [0, 0.2];
N_EQ y0 = 0 (1);
% ode求解器运行
[t、y] = ode15s (@ode_system tspan, y0,选项);
Rma = 6.5 e7;
= Rma *。9元;
Rmc = Rma * 1.1;
N = 27个;
图(1)
情节(t) [y (: 1), 5 / (2 * N) * t ^ 2]。)
图(2)
情节(t) [y (:, 2), 5 / (2 * N) * t ^ 2 * (Rma + 2 * Rmc) /(元+ 2 * Rmc)))
图(3)
情节(t) [y (:, 3), 5 / (4 * N ^ 2) * t。^ 2 * (Rma +元* (Rma + 2 * Rmc) /(元+ 2 * Rmc))))
图(4)
情节(t) [y (:, 4), 5 * t])
图(5)
情节(t) [y (:, 5), 5 * t * (Rma + 2 * Rmc) /(元+ 2 * Rmc)))
结束
函数= ode_system (t、y)
Rma = 6.5 e7;
= Rma *。9元;
Rmc = Rma * 1.1;
N = 27个;
uaQ = 10 * t;%提高输入电压从零;仅用于测试
phia = y (1);
phib = y (2);
ia = y (3);
ua1 = y (4);
ua2 = y (5);
= (…
ua1 / N% = phia_dot
ua2 / N% = phib_dot
ua1 + ua1 - uaQ
N * ia + (phib) * - (-phia-phib) * Rmc元人民币
2 * N * ia + phia * Rma - phib *元
];
结束