📄 fm_upfc.m
字号:
t316 = 1./t12; t318 = sqrt(t315.*t316); t319 = t318.*t59; t320 = Xt+Xse; t321 = 1./V2; t325 = omega.*Imd; t328 = 1./omega; t330 = t62-t320.*(x2+Kp.*(t204.*t321-Imq)+t325).*t328; t335 = omega.*Imq; t339 = t68-t59.*V2-t320.*(x1+Kp.*(t171.*t321-Imd)-t335).*t328; t340 = 1./t339; t342 = atan(t330.*t340); t343 = theta2-t342; t344 = cos(t343); t347 = t5-t7-t319.*t344./2; t349 = t3.^2; t350 = t320.^2; t352 = 1./(t349+t350); t354 = sin(theta2); t355 = V2.*t354; t356 = sin(t343); t359 = t2-t355-t319.*t356./2; t362 = t3.*t347.*t352+t320.*t359.*t352; t365 = 1./t318.*t59; t366 = t365.*t344; t401 = -4.*t271.*t35+2.*t68.*t65-2.*t62.*t70-4.*t272.*t81+2.*t194.*t87-2.*t62.*t101-4.*t272.*t104+2.*t194.*t107+4.*t78.*t274-2.*t85.*t196+2.*t68.*t200+4.*t78.*t288-2.*t85.*t282+2.*t62.*t301+2.*t62.*t297+2.*t68.*t75+2.*t68.*t97; t403 = t401.*t314.*t316; t408 = t339.^2; t409 = 1./t408; t410 = t330.*t409; t412 = -t60.*t32.*t340-t410.*t62; t414 = t330.^2; t417 = 1./(1+t414.*t409); t421 = -t2-t366.*t403./4-t319.*t356.*t412.*t417./2; t424 = t365.*t356; t431 = t5-t424.*t403./4+t319.*t344.*t412.*t417./2; t434 = t3.*t421.*t352+t320.*t431.*t352; t440 = -t320.*t347.*t352+t3.*t359.*t352; t446 = -t320.*t421.*t352+t3.*t431.*t352; t451 = sqrt(6); t452 = t451.*m; t453 = Vdc.*Gsh; t454 = cos(alpha); t458 = Vdc.*Bsh; t459 = sin(alpha); t467 = t59.*t61; t468 = t467.*t12; t472 = t59.*t32; t473 = t472.*t12; t476 = t32.*V2; t477 = t476.*omega; t488 = t61.*V2; t489 = t488.*omega; t490 = t114.*Qref; t498 = t132.*Qref; t516 = -4.*t32.*t34.*t9-2.*t468.*t79.*x2-2.*t473.*t111-4.*t477.*t115+2.*t473.*t87-2.*t473.*t122-4.*t477.*t133+2.*t473.*t107-4.*t489.*t490+2.*t468.*t196-2.*t468.*t91.*x2-4.*t489.*t498+2.*t468.*t282+4.*V1.*t12.*t9+2.*t473.*t257+2.*t473.*t254-2.*t468.*t253.*Imd-2.*t468.*t236.*Imd; t518 = t516.*t314.*t316; t523 = t467.*t340-t410.*t472; t528 = t4-t366.*t518./4-t319.*t356.*t523.*t417./2; t537 = t1-t424.*t518./4+t319.*t344.*t523.*t417./2; t540 = t3.*t528.*t352+t320.*t537.*t352; t547 = -t320.*t528.*t352+t3.*t537.*t352; t551 = -t401.*t314.*t316; t555 = 1+t412.*t417; t559 = t355-t366.*t551./4+t319.*t356.*t555./2; t567 = -t7-t424.*t551./4-t319.*t344.*t555./2; t570 = t3.*t559.*t352+t320.*t567.*t352; t576 = -t320.*t559.*t352+t3.*t567.*t352; t579 = t15.*V2; t584 = t11.*V2; t597 = V2.*Xse; t600 = V2.*t9; t613 = t584.*Xse; t616 = V2.*Kp; t617 = t616.*Imd; t623 = t271.*omega; t626 = 2.*t19.*t579+2.*t10.*t579+2.*t10.*t584-0.12e2.*t33.*t73+2.*t38.*t579+2.*t40.*t579+2.*t38.*t584+2.*t40.*t584+4.*t50.*t597-4.*t62.*t600.*t96+0.8e1.*t35+4.*t68.*t600.*t300+4.*t68.*t600.*t296-0.8e1.*t170.*t136+4.*t22.*t613-4.*t186.*t617+4.*t69.*Xse.*t142-4.*t623.*t498; t627 = V2.*omega; t630 = t171.*Imd; t638 = t127.*Imq; t645 = t627.*Imq; t670 = t579.*Xse; t673 = 0.8e1.*t627.*t133-2.*t40.*t630+2.*t54.*t217-4.*t62.*t627.*t199-2.*t268.*t638+2.*t19.*t584+2.*t225.*t217-4.*t139.*t645+2.*t139.*t142-4.*t623.*t490-0.8e1.*t203.*t291-4.*t62.*t600.*t74+0.8e1.*t203.*t92+2.*t148.*V2+4.*t156.*V2.*t9+2.*t152.*V2+2.*t162.*V2+2.*t166.*V2+4.*t236.*t670; t679 = t114.*t59; t686 = t60.*t476; t692 = t60.*t488; t698 = t204.*Imq; t703 = t59.*t12; t712 = t33.*omega; t717 = t703.*omega; t724 = -0.8e1.*t170.*t264+4.*t22.*t670-4.*t679.*t181.*t335-4.*t68.*t627.*t69+4.*t686.*t87-4.*t68.*t627.*t100+4.*t692.*t196-4.*t180.*t212.*Imq-2.*t40.*t698+4.*t686.*t107+6.*t703.*t111+0.8e1.*t627.*t115+4.*t43.*t597-2.*t38.*t698-4.*t712.*t133-2.*t38.*t630-6.*t717.*t119+6.*t703.*t122+2.*t186.*t142; t725 = t616.*Imq; t735 = t627.*Imd; t740 = t241.*Imd; t770 = -4.*t225.*t725-4.*t139.*t617+4.*t679.*t212.*t325-4.*t186.*t645+4.*t225.*t735+4.*t236.*t613+2.*t268.*t740+4.*t54.*t735-4.*t54.*t725-4.*t62.*t627.*t64-6.*t717.*t136-6.*t703.*t254-6.*t703.*t257+4.*t692.*t282-4.*t712.*t115-2.*t126.*t638+2.*t126.*t740+4.*t64.*Xse.*t217-4.*t180.*t181.*Imd; t778 = (t626+t673+t724+t770).*t314.*t316-2.*t315./t34; t783 = t320.*Kp.*t59; t793 = t783.*Qref.*t316.*t328.*t340-t410.*(-t59+t783.*Pref.*t316.*t328); t798 = -t6-t365.*t344.*t778./4-t319.*t356.*t793.*t417./2; t808 = -t354-t365.*t356.*t778./4+t319.*t344.*t793.*t417./2; t811 = t3.*t798.*t352+t320.*t808.*t352; t817 = -t320.*t798.*t352+t3.*t808.*t352; DAE.J11 = DAE.J11 + sparse(bus1,bus1, -t2.*t362+t5.*t434+t5.*t440+t2.*t446,Bus.n,Bus.n); DAE.J12 = DAE.J12 + sparse(bus1,bus1, 2.*V1.*Gsh-t452.*t453.*t454./4-t452.*t458.*t459./4+t4.*t362+t5.*t540+t1.*t440+t2.*t547,Bus.n,Bus.n); DAE.J11 = DAE.J11 + sparse(bus1,bus2, t5.*t570+t2.*t576,Bus.n,Bus.n); DAE.J12 = DAE.J12 + sparse(bus1,bus2, t5.*t811+t2.*t817,Bus.n,Bus.n); DAE.J21 = DAE.J21 + sparse(bus1,bus1, t5.*t362+t2.*t434+t2.*t440-t5.*t446,Bus.n,Bus.n); DAE.J22 = DAE.J22 + sparse(bus1,bus1, -2.*V1.*Bsh+t452.*t458.*t454./4-t452.*t453.*t459./4+t1.*t362+t2.*t540-t4.*t440-t5.*t547,Bus.n,Bus.n); DAE.J21 = DAE.J21 + sparse(bus1,bus2, t2.*t570-t5.*t576,Bus.n,Bus.n); DAE.J22 = DAE.J22 + sparse(bus1,bus2, t2.*t811-t5.*t817,Bus.n,Bus.n); DAE.J11 = DAE.J11 + sparse(bus2,bus1, -t7.*t434-t355.*t446,Bus.n,Bus.n); DAE.J12 = DAE.J12 + sparse(bus2,bus1, -t7.*t540-t355.*t547,Bus.n,Bus.n); DAE.J11 = DAE.J11 + sparse(bus2,bus2, t355.*t362-t7.*t570-t7.*t440-t355.*t576,Bus.n,Bus.n); DAE.J12 = DAE.J12 + sparse(bus2,bus2, -t6.*t362-t7.*t811-t354.*t440-t355.*t817,Bus.n,Bus.n); DAE.J21 = DAE.J21 + sparse(bus2,bus1, -t355.*t434+t7.*t446,Bus.n,Bus.n); DAE.J22 = DAE.J22 + sparse(bus2,bus1, -t355.*t540+t7.*t547,Bus.n,Bus.n); DAE.J21 = DAE.J21 + sparse(bus2,bus2, -t7.*t362-t355.*t570-t355.*t440+t7.*t576,Bus.n,Bus.n); DAE.J22 = DAE.J22 + sparse(bus2,bus2, -t354.*t362-t355.*t811+t6.*t440+t7.*t817,Bus.n,Bus.n); case 3 % Differential Equations t1 = V1.^2; t3 = sqrt(6); t5 = t3.*m.*Vdc; t6 = V1.*Gsh; t7 = cos(alpha); t11 = V1.*Bsh; t12 = sin(alpha); t16 = t1.*Gsh-t5.*t6.*t7./4-t5.*t11.*t12./4; t17 = 1./Cdc; t19 = 1./Vdc; t21 = cos(theta1); t22 = V1.*t21; t23 = cos(theta2); t24 = V2.*t23; t25 = t22-t24; t27 = sin(theta1); t28 = V1.*t27; t29 = sin(theta2); t30 = V2.*t29; t31 = t28-t30; t33 = Kp.^2; t34 = Xt.*t33; t35 = Qref.^2; t39 = Pref.^2; t43 = theta2-theta1; t44 = cos(t43); t45 = V1.*t44; t46 = V2.^2; t47 = t46.*V2; t48 = omega.^2; t52 = Xse.^2; t53 = t52.*t33; t54 = Imq.^2; t55 = t54.*t46; t57 = Xt.^2; t58 = t57.*x2; t59 = t46.*omega; t60 = t59.*Imd; t63 = t57.*t33; t65 = x2.^2; t67 = t46.*Xse; t70 = Imd.^2; t71 = t70.*t46; t73 = Xt.*Kp; t74 = sqrt(2); t75 = t74.*Pref; t77 = Xse.*omega; t78 = Imq.*V2; t82 = t74.*V1; t83 = t82.*t44; t84 = t46.*t48; t90 = t46.^2; t93 = x1.^2; t97 = t57.*t48; t99 = t74.*t47; t100 = t99.*omega; t107 = t52.*t48; t112 = t82.*t44.*t46; t113 = omega.*Xt; t114 = Kp.*Imd; t118 = 4.*t34.*t35.*Xse+4.*t34.*t39.*Xse-4.*t45.*t47.*t48+t53.*t55+2.*t58.*t60+t63.*t55+2.*Xt.*t65.*t67+t53.*t71-4.*t73.*t75.*t77.*t78+2.*t83.*t84.*Xt.*Imq+t63.*t71+2.*t90.*t48+2.*Xt.*t93.*t67+t97.*t71-2.*t100.*t73.*Imd+2.*t99.*t77.*x1+t107.*t71+t107.*t55+t97.*t55+2.*t112.*t113.*t114; t128 = t57.*Kp.*t74; t130 = Pref.*omega.*t78; t133 = Xse.*Kp; t137 = t133.*Imd; t140 = Xt.*t48; t141 = t71.*Xse; t144 = t57.*x1; t146 = Kp.*t74; t147 = t146.*Pref; t150 = Xt.*x1; t155 = t63.*t74; t157 = Pref.*Imd.*V2; t160 = sin(t43); t161 = t82.*t160; t166 = Xt.*x2; t167 = t166.*t46; t171 = t52.*x2; t174 = t45.*V2; t175 = Kp.*Pref; t179 = t34.*t74; t181 = Imd.*V2; t189 = t46.*Kp; t190 = t189.*Imq; t193 = t189.*Imd; t196 = t52.*x1; t200 = t53.*t74; t207 = -2.*t83.*t59.*Xse.*x1+2.*t83.*t84.*Xse.*Imq-2.*t128.*t130+4.*t59.*t133.*Pref-2.*t100.*t137+2.*t140.*t141+2.*t144.*V2.*t147+4.*t150.*V2.*t133.*t75-2.*t155.*t157-2.*t161.*t84.*Xse.*Imd+4.*t167.*t77.*Imd+2.*t171.*t60-4.*t174.*t77.*t175-4.*t179.*Pref.*Xse.*t181-2.*t99.*t48.*Xse.*Imq-2.*t58.*t190-2.*t144.*t193+2.*t196.*V2.*t147-2.*t200.*t157-2.*t161.*t84.*Xt.*Imd; t216 = t52.*Kp.*t74; t220 = Qref.*omega.*t181; t224 = V1.*t160.*V2; t225 = Kp.*Qref; t229 = t150.*t46; t233 = t82.*t160.*t46; t234 = Kp.*Imq; t255 = t74.*Qref; t275 = Qref.*Imq.*V2; t278 = -2.*t99.*t140.*Imq+2.*t112.*t77.*t114-2.*t216.*t130+2.*t216.*t220-4.*t224.*t113.*t225-4.*t229.*t137+2.*t233.*t113.*t234+2.*t128.*t220-2.*t161.*t59.*Xse.*x2-2.*t196.*t193+2.*t34.*t141+2.*t1.*t46.*t48+t52.*t65.*t46+2.*t53.*t39+4.*t73.*t255.*t77.*t181+4.*t166.*V2.*t133.*t255-2.*t161.*t59.*t166-4.*t229.*t77.*Imq-4.*t179.*Qref.*Xse.*t78-2.*t155.*t275; t283 = t146.*Qref; t288 = t59.*Imq; t294 = t55.*Xse; t334 = -4.*t224.*t77.*t225-2.*t171.*t190+4.*t59.*t73.*Pref+2.*t63.*t39+t52.*t93.*t46+t57.*t93.*t46+2.*t63.*t35+t57.*t65.*t46+2.*t53.*t35+2.*t233.*t77.*t234+2.*t58.*V2.*t283; t342 = sqrt((t118+t207+t278-2.*t83.*t59.*t150+2.*t171.*V2.*t283-2.*t200.*t275-2.*t196.*t288-4.*t174.*t113.*t175+2.*t140.*t294-2.*t144.*t288+2.*t34.*t294-4.*t167.*t133.*Imq+2.*t99.*t113.*x1+t334)./t48./t46); t343 = a2r.*t342; t344 = Xt+Xse; t345 = 1./V2; t347 = t255.*t345-Imq; t348 = Kp.*t347; t352 = 1./omega; t357 = t75.*t345-Imd; t358 = Kp.*t357; t366 = atan((t161-t344.*(x2+t348+omega.*Imd).*t352)./(t83-t74.*V2-t344.*(x1+t358-omega.*Imq).*t352)); t367 = theta2-t366; t368 = cos(t367); t369 = t74.*t368; t372 = a2i.*t342; t373 = sin(t367); t374 = t74.*t373; t378 = Rse+Rt; t379 = t342.*t74; t382 = t22-t24-t379.*t368./2; t384 = t378.^2; t385 = t344.^2; t387 = 1./(t384+t385); t391 = t28-t30-t379.*t373./2; t394 = t378.*t382.*t387+t344.*t391.*t387; t407 = -t344.*t382.*t387+t378.*t391.*t387; t415 = t16.^2; t424 = (-t1.*Bsh+t5.*t11.*t7./4-t5.*t6.*t12./4).^2; t431 = t394.^2; t432 = t407.^2; t440 = 1./Tmac; t452 = 1./Tmdc; DAE.f(Upfc.Vdc) = t16.*t17.*t19+((a1r.*t25-a1i.*t31+t343.*t369./2-t372.*t374./2).*t394+(a1i.*t25+a1r.*t31+t372.*t369./2+t343.*t374./2).*t407).*t17.*t19-Vdc./Rdc.*t17-Rsh.*(t415+t424)./t1.*t19.*t17-Rse.*(t431+t432).*t17.*t19; DAE.f(Upfc.Vmac) = (-Vmac+Kmac.*V1).*t440; DAE.f(Upfc.m) = (Kpac.*t440-Kiac).*Vmac+Kiac.*Vrefac-Kpac.*Kmac.*t440.*V1; DAE.f(Upfc.Vmdc) = (-Vmdc+Kmdc.*Vdc).*t452; DAE.f(Upfc.alpha) = (Kpdc.*t452-Kidc).*Vmdc+Kidc.*Vrefdc-Kpdc.*Kmdc.*t452.*Vdc; DAE.f(Upfc.x1) = Ki.*t357; DAE.f(Upfc.Imd) = x1-K.*Imd+t358; DAE.f(Upfc.x2) = Ki.*t347; DAE.f(Upfc.Imq) = x2-K.*Imq+t348; for i = 1:Upfc.n if DAE.x(Upfc.Vdc(i)) <= 1e-6 DAE.x(Upfc.Vdc(i)) = 1e-6; if DAE.f(Upfc.Vdc(i)) < 0; DAE.f(Upfc.Vdc(i)) = 0; end end if DAE.x(Upfc.alpha(i)) >= alpha_max(i) DAE.x(Upfc.alpha(i)) = alpha_max(i); if DAE.f(Upfc.alpha(i)) > 0; DAE.f(Upfc.alpha(i)) = 0; end end if DAE.x(Upfc.alpha(i)) <= alpha_min(i) DAE.x(Upfc.alpha(i)) = alpha_min(i); if DAE.f(Upfc.alpha(i)) < 0; DAE.f(Upfc.alpha(i)) = 0; end end if DAE.x(Upfc.m(i)) >= m_max(i) DAE.x(Upfc.m(i)) = m_max(i); if DAE.f(Upfc.m(i)) > 0; DAE.f(Upfc.m(i)) = 0; end end if DAE.x(Upfc.m(i)) <= m_min(i) DAE.x(Upfc.m(i)) = m_min(i); if DAE.f(Upfc.m(i)) < 0; DAE.f(Upfc.m(i)) = 0; end end end % wind-up limits if Settings.init DAE.x(Upfc.Imd) = max(I_min,DAE.x(Upfc.Imd)); DAE.x(Upfc.Imq) = max(I_min,DAE.x(Upfc.Imq)); DAE.x(Upfc.Imd) = min(I_max,DAE.x(Upfc.Imd)); DAE.x(Upfc.Imq) = min(I_max,DAE.x(Upfc.Imq)); end case 4 % Jacobians of state and service variables t1 = sqrt(6); t2 = t1.*m; t3 = V1.*Gsh; t4 = cos(alpha); t5 = t3.*t4; t7 = V1.*Bsh; t8 = sin(alpha); t9 = t7.*t8; t11 = -t2.*t5-t2.*t9; t12 = 1./Cdc; t14 = 1./Vdc; t16 = V1.^2; t18 = t2.*Vdc; t19 = t18.*t5; t21 = t18.*t9; t23 = t16.*Gsh-t19./4-t21./4; t25 = Vdc.^2; t26 = 1./t25; t28 = cos(theta1); t29 = V1.*t28; t30 = cos(theta2); t31 = V2.*t30; t32 = t29-t31; t34 = sin(theta1); t35 = V1.*t34; t36 = sin(theta2); t37 = V2.*t36; t38 = t35-t37; t40 = V2.^2; t41 = t40.^2; t42 = omega.^2; t45 = Xt.^2; t46 = t45.*x1; t47 = t40.*Kp; t48 = t47.*Imd; t51 = t45.*x2; t52 = t47.*Imq; t55 = Kp.^2; t56 = Xt.*t55; t57 = Imd.^2; t58 = t57.*t40; t59 = t58.*Xse; t62 = Imq.^2; t63 = t62.*t40; t64 = t63.*Xse; t67 = Xse.^2; t68 = t67.*x1; t71 = t45.*t55; t73 = x1.^2; t74 = Xt.*t73; t75 = t40.*Xse; t78 = t45.*t42; t80 = t67.*t42; t83 = sqrt(2); t84 = t40.*V2; t85 = t83.*t84; t86 = omega.*Xt; t87 = t86.*x1; t91 = t67.*x2; t94 = Pref.^2; t98 = theta2-theta1; t99 = cos(t98); t100 = V1.*t99; t101 = t84.*t42; t104 = t67.*t55; t107 = x2.^2; t108 = Xt.*t107; t111 = t40.*omega; t112 = Xt.*Kp; t113 = t112.*Pref; t116 = 2.*t41.*t42-2.*t46.*t48-2.*t51.*t52+2.*t56.*t59+2.*t56.*t64-2.*t68.*t48+t71.*t58+2.*t74.*t75+t78.*t58+t80.*t58+t80.*t63+2.*t85.*t87+t78.*t63-2.*t91.*t52+4.*t56.*t94.*Xse-4.*t100.*t101+t104.*t63+t71.*t63+2.*t108.*t75+4.*t111.*t113; t118 = omega.*Xse; t119 = t118.*x1; t122 = Qref.^2; t126 = t111.*Imq; t129 = Xt.*t42; t134 = Xse.*Kp; t135 = t134.*Pref; t140 = t111.*Imd; t143 = t129.*Imq; t146 = t42.*Xse; t147 = t146.*Imq; t152 = t83.*V1; t153 = sin(t98); t154 = t152.*t153; t155 = Xt.*x2; t156 = t111.*t155; t159 = t152.*t99; t160 = Xt.*x1; t161 = t111.*t160; t164 = t100.*V2; t165 = Kp.*Pref; t166 = t86.*t165; t169 = t67.*t107; t171 = Xse.*x1; t172 = t111.*t171; t177 = t118.*t165; t180 = t45.*t73; t182 = t104.*t58+2.*t85.*t119+4.*t56.*t122.*Xse-2.*t68.*t126+2.*t129.*t64-2.*t46.*t126+4.*t111.*t135+2.*t129.*t59+2.*t51.*t140-2.*t85.*t143-2.*t85.*t147+2.*t91.*t140-2.*t154.*t156-2.*t159.*t161-4.*t164.*t166+t169.*t40-2.*t159.*t172+2.*t71.*t122-4.*t164.*t177+t180.*t40; t184 = t45.*t107; t190 = t67.*t73; t194 = t160.*V2; t195 = t83.*Pref; t202 = t160.*t40; t203 = t134.*Imd; t206 = t56.*t83; t207 = Pref.*Xse; t208 = Imd.*V2; t212 = t155.*t40;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -