为什么我收到“错误使用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;
但它并没有帮助。
我会很感激有用的评论和提示,以及进一步的资源来更好地理解这个问题。
提前谢谢。
亲切的问候
马丁因特网
5个评论
马丁因特网
马丁因特网 2022年2月28日
最后一个版本我可以运行如下:
N_EQ = 4;% DAE系统的方程
N_DIFF = 1;% 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)
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);
= (
ua1 / N% = phia_dot
ua1 + ua1 - uaQ
N * ia + (phib) * - (-phia-phib) * Rmc元人民币
2 * N * ia + phia * Rma - phib *元
];
结束
如果我想有一个变量,ua2,它不。因此,我添加一个颂歌。
在这里我一定遗漏了一些关键点。是我dae系统矛盾/坏脾气的?
是不可能添加熟视无睹,歌唱让ua2在变量向量?
我的意思是,在上面的版本我可以区分phib ua2那样。我希望包括直接进入系统。
这是非工作版本:
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,选项);
函数= 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 *元
];
结束

登录置评。

接受的答案

Torsten
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 *元
];
结束
6个评论
马丁因特网
马丁因特网 2022年3月28日
编辑:马丁因特网 2022年3月28日
您应该检查通过插入的解决微分方程转化为代数方程。
我认为这对我来说不是那么容易支票,因为我没有使用一个常数磁阻在实际模型,这意味着Rm值取决于φ和给定的饱和曲线。
兆瓦代表什么?
我不相信愚蠢的问题。兆瓦意味着 最小的工作示例 。我认为 最小的可再生的例子 是更常见的术语。
的问候!
马丁

登录置评。

更多的答案(0)

类别

找到更多的在通用应用程序帮助中心文件交换

下载188bet金宝搏


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!