Hi Mariusz, I think the problem is that you have to provide a *solved* target case, because the Jacobian should be evaluated *at the solution*.
Even for the base case, it wouldn't hurt to run a powerflow, since you can't always trust that the input file is a solved case. -- Jose L. Marin Grupo AIA 2018-05-20 11:58 GMT+02:00 Mariusz Drabecki <[email protected]>: > Dear All, > > > > I am working on Modal Analysis. I would like to show to my students, that > in the bifurcation point at least one of the reduced Jacobian eigenvalues > is zero. This is why I calculate these values once for the base case and > then for the nose point ( lambda max calculated by the CPF). > > > > Unfortunately there is no change in the results. Could anyone help? > > > > The results of the eigenvalues are as follows (for case14) > > > > Eigb= > > [ > > 65,4207 > > 39,9533 > > 21,9939 > > 18,9118 > > 16,4492 > > 11,3421 > > 2,70658 > > 5,56886 > > 7,66373 > > ] > > > > And *exactly the same ones* in the nose points. > > > > I would greatly appreciate any help from you as I got terribly stuck. > > > > Best, > > Mariusz Drabecki > > > > > > Here is my code: > > > > define_constants > > mpc=loadcase(case14); > > inc=2.5; > > > > %% CPF options > > mpopt = mpoption('out.all', 0, 'verbose', 2); > > mpopt = mpoption(mpopt, 'cpf.stop_at', 'NOSE', 'cpf.step', 0.1); > > mpopt = mpoption(mpopt, 'cpf.plot.level', 2); > > %% Base case (base solution operating points) > > %CPF > > mpcb=mpc; > > mpct = mpcb; % set up target case with > > mpct.gen(:, [PG QG]) = mpcb.gen(:, [PG QG]) * inc; % increased generation > > mpct.bus(:, [PD QD]) = mpcb.bus(:, [PD QD]) * inc; % and increased load > > cpf1 = runcpf(mpcb, mpct, mpopt); > > lambda_max=cpf1.cpf.max_lam; > > > > %Modal Analysis for Base Case > > [jb11,jb12,jb21,jb22,jacb,~,~,~] = makeJac(mpcb); > > jb11=full(jb11); > > jb12=full(jb12); > > jb21=full(jb21); > > jb22=full(jb22); > > Hb=jb11; > > Mb=jb12; > > Nb=jb21; > > Kb=jb22; > > % The reduced Jacobian for the base case (Q-V sensitivities) > > jacb_red=Kb-Nb*inv(Hb)*Mb; > > > > % The eigenvalues of the reduced Jacobian (Q-V sensitivities) > > [leftb eigb rightb]=(eig(jacb_red)); > > > > %% Target case (nose point) > > mpct.gen(:, [PG QG]) = mpct.gen(:, [PG QG]) * lambda_max; % increased > generation > > mpct.bus(:, [PD QD]) = mpct.bus(:, [PD QD])* lambda_max; % and increased > load > > % The Jacobian for the target case > > [jt11,jt12,jt21,jt22,jact,~,~,~] = makeJac(mpct); > > jt11=full(jb11); > > jt12=full(jb12); > > jt21=full(jb21); > > jt22=full(jb22); > > njact=size(jact,1); > > Ht=jt11; > > Mt=jt12; > > Nt=jt21; > > Kt=jt22; > > % The reduced Jacobian for the target case > > jact_red=Kt-Nt*inv(Ht)*Mt; > > % Eigenvalue decomposition of the reduced Jacobian for the target case > > [leftt eigt rightt]=(eig(jact_red)); > > > > > > > > >
