Why am I getting an error 'index greater than 1' when trying to simulate a circuit based on ode15s
5 ビュー (過去 30 日間)
古いコメントを表示
I am trying to simulate a circuit in a simulink model but I get an error saying that index > 1; if I change to other solvers like ode23tb or ode23s, it will have sigularity warning and the results are NaN. I have checked my code but I dont know why. Can someone help me? files are as attached.
5 件のコメント
Walter Roberson
2021 年 3 月 28 日
https://www.mathworks.com/matlabcentral/answers/102944-what-is-the-meaning-of-this-dae-appears-to-be-of-index-greater-than-1-using-ode-solvers-for-solvin
回答 (1 件)
Meme Young
2021 年 3 月 28 日
3 件のコメント
Walter Roberson
2021 年 4 月 3 日
baseMVA = 100; baseKV = 500;
Zbase = baseKV ^ 2 / baseMVA;
fn = 60; wn = 2 * pi * fn;
%% line data p.u.
r12 = 0.0014; x12 = 0.03;
r23_1 = 0.0067; l23_1 = 0.0739;
r23_2 = 0.0074; l23_2 = 0.08; c23_2 = 0.55 * l23_2;
r34 = 2e-4; x34 = 0.02;
%% line data nominal
R12 = Zbase * r12; L12 = Zbase * x12 / wn;
R23_1 = r23_1 * Zbase; L23_1 = l23_1 * Zbase / wn;
R23_2 = r23_2 * Zbase; L23_2 = l23_2 * Zbase / wn; C23_2 = 1 / (c23_2 * Zbase * wn);
R34 = r34 * Zbase; L34 = x34 * Zbase / wn;
M = diag([ones(1,5), zeros(1,5)]);
A = [-R12 / L12 0 0 0 0 1 / L12 0 0 0 0;
0 -R23_1 / L23_1 0 0 0 0 1 / L23_1 0 0 0;
0 0 -R23_2 / L23_2 0 0 0 0 1 / L23_2 0 0;
0 0 0 0 0 0 0 0 1 / C23_2 0;
0 0 0 0 -R34 / L34 0 0 0 0 1 / L34;
0 0 0 1 0 0 -1 1 0 0;
0 0 0 0 0 1 1 0 0 1;
0 0 -1 0 0 0 0 0 1 0;
1 -1 -1 0 0 0 0 0 0 0;
1 0 0 0 -1 0 0 0 0 0]; % dF/dy
syms lambda
D = det(M + lambda * A);
R = solve(D./lambda^7, lambda);
vpa(R)
subs(M, lambda, R(3))
That is obviously singular.
Therefore, there are three lambda values (one of them real) for which M + lambda*A is singular.
If you are correct that "the (M + lamda * dF/dy) has to be non-singular for all nonzero lamda" then you do not meet the conditions, and that would imply that you cannot reduce the DAE order.
Since the slx file can run, it must be a set of solvable DAE
Your code might possibly not match the slx model.
参考
カテゴリ
Help Center および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!