亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fm_sofc.m

?? 電力系統的psat
?? M
字號:
function  fm_sofc(flag)% FM_SOFC define Solyd Oxyde Fuel Cells%% FM_SOFC(FLAG)%       FLAG = 0 -> initialization%       FLAG = 1 -> algebraic equations%       FLAG = 2 -> algebraic Jacobians%       FLAG = 3 -> differential equations%       FLAG = 4 -> state Jacobians%       FLAG = 5 -> non-windup limiters%%Author:    Federico Milano%Date:      25-Nov-2003%Version:   2.0.0%%E-mail:    fmilano@thunderbox.uwaterloo.ca%Web-site:  http://thunderbox.uwaterloo.ca/~fmilano%% Copyright (C) 2002-2005 Federico Milano%% This toolbox is free software; you can redistribute it and/or modify% it under the terms of the GNU General Public License as published by% the Free Software Foundation; either version 2.0 of the License, or% (at your option) any later version.%% This toolbox is distributed in the hope that it will be useful, but% WITHOUT ANY WARRANTY; without even the implied warranty of% MERCHANDABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU% General Public License for more details.%% You should have received a copy of the GNU General Public License% along with this toolbox; if not, write to the Free Software% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,% USA.global Sofc DAE Bus PV SWIk = DAE.x(Sofc.Ik);Vk = DAE.x(Sofc.Vk);Vb = DAE.V(Sofc.bus);pH2 = DAE.x(Sofc.pH2);pH20 = DAE.x(Sofc.pH20);pO2 = DAE.x(Sofc.pO2);qH2 = DAE.x(Sofc.qH2);m = DAE.x(Sofc.m);Sn = Sofc.con(:,2);Vn = Sofc.con(:,3);Te = Sofc.con(:,4);TH2 = Sofc.con(:,5);KH2 = Sofc.con(:,6);Kr = Sofc.con(:,7);TH20 = Sofc.con(:,8);KH20 = Sofc.con(:,9);TO2 = Sofc.con(:,10);KO2 = Sofc.con(:,11);rHO = Sofc.con(:,12);Tf = Sofc.con(:,13);Uopt = Sofc.con(:,14);r = Sofc.con(:,17);N0 = Sofc.con(:,18);E0 = Sofc.con(:,19);RTon2F = 0.5*8.314*Sofc.con(:,20)/96487;Pref = Sofc.con(:,21);Vref = Sofc.con(:,22);xt = Sofc.con(:,26);Km = Sofc.con(:,27);Tm = Sofc.con(:,28);m_max = Sofc.con(:,29);m_min = Sofc.con(:,30);switch flag case 0 % initialization  % Check time constants  idx = find(Te == 0);  if idx    fcwarn(idx, ['Time constant Te cannot be zero. ', ...		 'Te = 0.001 s will be used.'])    Sofc.con(idx,5) = 0.001;  end  idx = find(TH2 == 0);  if idx    fcwarn(idx, ['Time constant TH2 cannot be zero. ', ...	   'TH2 = 0.001 s will be used.'])    Sofc.con(idx,7) = 0.001;  end  idx = find(TH20 == 0);  if idx    fcwarn(idx, ['Time constant TH20 cannot be zero. ', ...	   'TH20 = 0.001 s will be used.'])    Sofc.con(idx,10) = 0.001;  end  idx = find(TO2 == 0);  if idx    fcwarn(idx, ['Time constant TO2 cannot be zero. ', ...	   'TO2 = 0.001 s will be used.'])    Sofc.con(idx,12) = 0.001; end  idx = find(Tf == 0);  if idx    fcwarn(idx, ['Time constant Tf cannot be zero. ', ...	   'Tf = 0.001 s will be used.'])    Sofc.con(idx,15) = 0.001;  end  idx = find(Tm == 0);  if idx    fcwarn(idx, ['Time constant Tm cannot be zero. ', ...		 'Tm = 0.001 s will be used.'])    Sofc.con(idx,28) = 0.001;  end  % Find and delete PV generators  check = 1;  for j = 1:Sofc.n    idx_pv = [];    idx_sw = [];    if PV.n      idx_pv = find(PV.bus == Sofc.bus(j));    end    if SW.n      idx_sw = find(SW.bus == Sofc.bus(j));    end    if isempty(idx_pv) & isempty(idx_sw)      fm_disp(['Error: No generator found at bus #', ...	       int2str(Sofc.bus(j))])      check = 0;    elseif ~isempty(idx_pv)      PV.con(idx_pv,:) = [];      PV.bus(idx_pv) = [];      PV.n = PV.n - 1;    else      fm_disp(['Warning: fuel cells cannot ', ...	       'substitute slack buses.'])      fm_disp(['Fuel cells will be initialized but ', ...	       'eigenvalue analyses and time domain'])      fm_disp(['simulations will produce errors ', ...	       '(singularity in the Jacobian matrix).'])    end  end  if ~check    fm_disp('Fuel cells cannot be properly initialized.')    return  end  % Get generator powers  Pfc = Bus.Pg(Sofc.bus);  Qfc = Bus.Qg(Sofc.bus);  % Define reference active power  Sofc.con(:,21) = Pfc;  % Fuel Cell stae variable initialization  DAE.x(Sofc.Ik) = Sn.*Pfc./Vb./Vn;  Ik = DAE.x(Sofc.Ik);  DAE.x(Sofc.qH2) = 2*Kr.*Ik./Uopt;  qH2 = DAE.x(Sofc.qH2);  DAE.x(Sofc.pO2) = (qH2./rHO-Kr.*Ik)./KO2;  pO2 = DAE.x(Sofc.pO2);  DAE.x(Sofc.pH2) = (qH2 - 2*Kr.*Ik)./KH2;  pH2 = DAE.x(Sofc.pH2);  DAE.x(Sofc.pH20) = 2*Kr.*Ik./KH20;  pH20 = DAE.x(Sofc.pH20);  DAE.x(Sofc.Vk) = -r.*Ik./Vn + ...      N0.*(E0+RTon2F.*log(pH2.*sqrt(pO2)./pH20))./Vn;  Vk = DAE.x(Sofc.Vk);  % Base power and voltage  Sofc.con(:,23) = (Ik.*Vk.*Vn./Sn)./Pfc;  Sofc.con(:,24) = Vb./Vk;  % Adjust value of control type  Sofc.con(:,25) = ~Sofc.con(:,25);  idx = find(Sofc.con(:,25));  if idx, Sofc.con(idx,25) = Vk(idx); end  % Initialize tap ratio  DAE.x(Sofc.m) = sqrt(((xt./DAE.V(Sofc.bus)./Vk./Sofc.con(:,24)).^2) ...		       .*(Pfc.^2+(Qfc+(DAE.V(Sofc.bus).^2)./xt).^2));  % Define reference AC voltage  Sofc.con(:,22) = DAE.V(Sofc.bus)+DAE.x(Sofc.m)./Km;  fm_disp('Initialization of Solid Oxyde Fuel Cells completed.') case 1 % algebraic equations  DAE.gp = DAE.gp - sparse(Sofc.bus,1,Ik.*Vk.*Vn./Sn.*Sofc.con(:,24),Bus.n,1);  Vt = m.*Vk.*Sofc.con(:,24);  Vs = DAE.V(Sofc.bus);  Q = -Vs.*(Vs - Vt.*sqrt(1-(xt.*Ik./Vs.*Vn./Sn./m).^2))./xt;  DAE.gq = DAE.gq - sparse(Sofc.bus,1,Q,Bus.n,1); case 2  Vt = m.*Vk.*Sofc.con(:,24);  Vs = DAE.V(Sofc.bus);  sq = sqrt(1-(xt.*Ik./Vs.*Vn./Sn./m).^2);  dQdv = -2*Vs./xt+Vt./xt.*sq+0.5*Vs.*Vt./xt.*(2*((xt.*Ik.*Vn./Sn./m).^2)./(Vs.^3))./sq;  DAE.J22 = DAE.J22 - sparse(Sofc.bus,Sofc.bus,dQdv,Bus.n,Bus.n); case 3 % differential equations  Pref = Sofc.con(:,21).*Sofc.con(:,23);  Umax = 0.5*Sofc.con(:,15).*qH2./Kr;  Umin = 0.5*Sofc.con(:,16).*qH2./Kr;  Input = Sn.*Pref./Vk./Vn;  idx = find(Sofc.con(:,25));  if idx, Input(idx) = Sn(idx).*Pref(idx)./Sofc.con(idx,25)./Vn(idx); end  idx = find(Input > Umax);  if idx, DAE.f(Sofc.Ik(idx)) = (Umax(idx) - Ik(idx))./Te(idx); end  idx = find(Input < Umin);  if idx, DAE.f(Sofc.Ik(idx)) = (Umin(idx) - Ik(idx))./Te(idx); end  idx = find(Input <= Umax & Input >= Umin);  if idx, DAE.f(Sofc.Ik(idx)) = (Input(idx) - Ik(idx))./Te(idx); end  DAE.f(Sofc.Vk) = (-Vk-r.*Ik./Vn+N0.*(E0+RTon2F.*log(pH2.*sqrt(pO2)./pH20))./Vn)./1e-3;  DAE.f(Sofc.pH2) = ((qH2-2.*Kr.*Ik)./KH2-pH2)./TH2;  DAE.f(Sofc.pH20) = (2.*Kr.*Ik./KH20-pH20)./TH20;  DAE.f(Sofc.pO2) = ((qH2./rHO-Kr.*Ik)./KO2-pO2)./TO2;  DAE.f(Sofc.qH2) = (2.*Kr.*Ik./Uopt-qH2)./Tf;  DAE.f(Sofc.m) = (Km.*(Vref-DAE.V(Sofc.bus))-m)./Tm;  idx = find(m >= m_max & DAE.f(Sofc.m) > 0);  if idx, DAE.f(Sofc.m(idx)) = 0; end  DAE.x(Sofc.m) = min(DAE.x(Sofc.m),m_max);  idx = find(m <= m_min & DAE.f(Sofc.m) < 0);  if idx, DAE.f(Sofc.m(idx)) = 0; end  DAE.x(Sofc.m) = max(DAE.x(Sofc.m),m_min); case 4 % state variable Jacobians  Pref = Sofc.con(:,21).*Sofc.con(:,23);  % DAE.Fx  Umax = 0.5*Sofc.con(:,15).*qH2./Kr;  Umin = 0.5*Sofc.con(:,16).*qH2./Kr;  Input = Sn.*Pref./Vk./Vn;  idxc = find(Sofc.con(:,25));  if idxc    Input(idxc) = Sn(idxc).*Pref(idxc)./Sofc.con(idxc,25)./Vn(idxc);  end  idx = find(Input > Umax);  if idx    DAE.Fx = DAE.Fx + sparse(Sofc.Ik(idx),Sofc.qH2(idx), ...			     0.5*Sofc.con(idx,16)./Kr(idx),DAE.n,DAE.n);  end  idx = find(Input < Umin);  if idx    DAE.Fx = DAE.Fx + sparse(Sofc.Ik(idx),Sofc.qH2(idx), ...			     0.5*Sofc.con(idx,16)./Kr(idx),DAE.n,DAE.n);  end  idx = find(Input <= Umax & Input >= Umin);  idxc = find(~Sofc.con(idx,25));  if idxc, idx = idx(idxc); end  if idx    DAE.Fx = DAE.Fx + sparse(Sofc.Ik(idx),Sofc.Vk(idx), ...			     -Sn(idx).*Pref(idx)./Vk(idx).^2 ...			     ./Vn(idx)./Te(idx),DAE.n,DAE.n);  end  DAE.Fx = DAE.Fx + sparse(Sofc.Ik,Sofc.Ik,-1./Te,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.Vk,Sofc.Vk,-1e3,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.Vk,Sofc.Ik,-r./Vn./1e-3,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.Vk,Sofc.pH2,N0.*RTon2F./pH2./Vn./1e-3,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.Vk,Sofc.pH20,-N0.*RTon2F./pH20./Vn./1e-3,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.Vk,Sofc.pO2,0.5*N0.*RTon2F./pO2./Vn./1e-3,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pH2,Sofc.Ik,(-2.*Kr./KH2)./TH2,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pH2,Sofc.pH2,(-1)./TH2,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pH2,Sofc.qH2,(1./KH2)./TH2,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pH20,Sofc.Ik,(2.*Kr./KH20)./TH20,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pH20,Sofc.pH20,(-1)./TH20,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pO2,Sofc.Ik,(-Kr./KO2)./TO2,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pO2,Sofc.pO2,(-1)./TO2,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.pO2,Sofc.qH2,(1./rHO./KO2)./TO2,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.qH2,Sofc.Ik,(2.*Kr./Uopt)./Tf,DAE.n,DAE.n);  DAE.Fx = DAE.Fx + sparse(Sofc.qH2,Sofc.qH2,(-1)./Tf,DAE.n,DAE.n);  Vt = m.*Vk.*Sofc.con(:,24);  Vs = DAE.V(Sofc.bus);  sq = sqrt(1-(xt.*Ik./Vs.*Vn./Sn./m).^2);  dQdi = 0.5*Vs.*Vt./xt.*(-2*((xt.*Vn./Sn./m./Vs).^2).*Ik)./sq;  dQdv = m.*Sofc.con(:,24).*Vs./xt.*sq;  DAE.Gx = DAE.Gx - sparse(Sofc.bus+Bus.n,Sofc.Vk,dQdv,2*Bus.n,DAE.n);  DAE.Gx = DAE.Gx - sparse(Sofc.bus+Bus.n,Sofc.Ik,dQdi,2*Bus.n,DAE.n);  idx = find(m <= m_max & m >= m_min & DAE.f(Sofc.m) ~= 0);  if ~isempty(idx)    DAE.Fx = DAE.Fx + sparse(Sofc.m,Sofc.m,-1./Tm,DAE.n,DAE.n);    DAE.Fy = DAE.Fy + sparse(Sofc.m,Sofc.bus+Bus.n,-Km./Tm,DAE.n,2*Bus.n);    dQdm = Vk.*Sofc.con(:,24).*Vs./xt.*sq + ...	   0.5*Vs.*Vt./xt.*(2*((xt.*Ik.*Vn./Sn./Vs).^2)./(m.^3))./sq;    DAE.Gx = DAE.Gx - sparse(Sofc.bus+Bus.n,Sofc.m,dQdm,2*Bus.n,DAE.n);  end  % DAE.Gx  DAE.Gx = DAE.Gx - sparse(Sofc.bus,Sofc.Ik,Vk.*Vn./Sn,2*Bus.n,DAE.n);  DAE.Gx = DAE.Gx - sparse(Sofc.bus,Sofc.Vk,Ik.*Vn./Sn.*Sofc.con(:,24),2*Bus.n,DAE.n); case 5 % non-windup limiters  idx = find((m >= m_max | m <= m_min) & DAE.f(Sofc.m) == 0);  if ~isempty(idx)    global Settings    k = Sofc.m(idx);    DAE.tn(k) = 0;    DAE.Ac(:,k) = 0;    DAE.Ac(k,:) = 0;    if Settings.octave      DAE.Ac(k,k) = -eye(length(idx));    else      DAE.Ac(k,k) = -speye(length(idx));    end  endend% -------------------------------------------------------------------% function for creating warning messagesfunction fcwarn(idx, msg)fm_disp(strcat('Warning: FC #',int2str(idx),msg))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品写真在线观看| 日韩一区二区影院| 欧美电影一区二区| 欧美大片在线观看| 中文字幕乱码久久午夜不卡 | 日日噜噜夜夜狠狠视频欧美人| 蜜桃精品在线观看| 成人综合婷婷国产精品久久蜜臀| 91电影在线观看| 日韩欧美国产系列| 国产精品二区一区二区aⅴ污介绍| 亚洲国产视频直播| 精品一区二区三区在线视频| 不卡视频在线观看| 欧美美女直播网站| 国产精品全国免费观看高清| 亚洲大型综合色站| 国产经典欧美精品| 欧美另类videos死尸| 欧美成人一区二区| 国产精品欧美久久久久无广告| 亚洲国产婷婷综合在线精品| 国产精品亚洲一区二区三区在线 | 亚洲国产欧美在线| 狠狠色丁香久久婷婷综合丁香| 91香蕉视频在线| 日韩你懂的在线观看| 玉足女爽爽91| 国产酒店精品激情| 欧美日韩国产在线播放网站| 欧美国产一区二区| 蜜臀精品一区二区三区在线观看| 成人一区二区视频| 日韩丝袜情趣美女图片| 一区二区三区精品在线| 国产精品中文字幕日韩精品| 欧美精品久久久久久久久老牛影院| 国产人伦精品一区二区| 日韩电影在线一区二区| 91在线观看下载| 久久久久成人黄色影片| 日韩制服丝袜av| 欧美性感一区二区三区| 中文字幕一区二区三区不卡在线| 三级欧美韩日大片在线看| av成人免费在线观看| 欧美成人一区二区| 日韩黄色片在线观看| 在线一区二区三区四区| 久久亚洲欧美国产精品乐播| 亚洲成人动漫av| 国产精品一区二区在线看| 日韩午夜av一区| 日精品一区二区三区| 欧美日韩精品一区二区三区四区 | 午夜婷婷国产麻豆精品| 91在线视频官网| 国产精品久久久久久久蜜臀 | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 337p亚洲精品色噜噜噜| 偷窥少妇高潮呻吟av久久免费 | 日日夜夜精品免费视频| 欧美色图12p| 亚洲精品水蜜桃| 91麻豆精品一区二区三区| 国产日产欧美一区二区三区| 久久精品99久久久| 欧美日韩精品高清| 亚洲人成精品久久久久| 99久久婷婷国产综合精品电影 | 色综合久久88色综合天天6 | 欧美亚洲国产一区在线观看网站| 中文字幕制服丝袜一区二区三区| 国产aⅴ精品一区二区三区色成熟| 久久免费午夜影院| 国产剧情一区在线| 欧美一区二视频| 奇米四色…亚洲| 欧美精品一区二区三区在线播放| 久久国产精品99精品国产| 26uuu久久天堂性欧美| 韩国成人精品a∨在线观看| 欧美xfplay| 韩国成人在线视频| 亚洲国产精品传媒在线观看| 成人性生交大片| 专区另类欧美日韩| 色婷婷精品大视频在线蜜桃视频| 一区二区成人在线视频 | 麻豆精品精品国产自在97香蕉| 日韩一级欧美一级| 国产综合色精品一区二区三区| 国产老肥熟一区二区三区| 国产精品美女久久久久久久久久久 | 欧美视频在线一区二区三区| 亚洲一区二区视频在线| 4438亚洲最大| 久草在线在线精品观看| 国产清纯在线一区二区www| 91在线观看视频| 天堂蜜桃91精品| 久久影院午夜论| av动漫一区二区| 亚洲成人激情自拍| 久久麻豆一区二区| 91小宝寻花一区二区三区| 午夜一区二区三区视频| 久久久午夜电影| 99视频精品在线| 午夜精品久久久| 国产网站一区二区| 成人国产精品免费观看动漫| **欧美大码日韩| 欧美日韩一区高清| 蜜臀av性久久久久蜜臀av麻豆 | 精品一二线国产| 国产欧美日本一区视频| 欧美日韩久久久久久| 国内欧美视频一区二区| 亚洲视频一区二区免费在线观看| 欧美女孩性生活视频| 国产69精品久久久久毛片| 亚洲国产精品嫩草影院| 久久久亚洲综合| 日本精品免费观看高清观看| 韩国女主播一区| 亚洲国产综合视频在线观看| 国产亚洲欧美一区在线观看| 91亚洲精品久久久蜜桃| 蜜桃视频免费观看一区| 中文字幕va一区二区三区| 欧美日韩午夜影院| 床上的激情91.| 日日夜夜精品视频免费 | 色综合av在线| 激情久久久久久久久久久久久久久久| 国产精品嫩草99a| 欧美人xxxx| 成人精品视频一区| 亚洲成人av在线电影| 久久综合久久鬼色| 91麻豆精品国产91久久久久久| 99国产精品久久久久久久久久| 免费xxxx性欧美18vr| 亚洲免费电影在线| 中文字幕精品一区二区三区精品| 69av一区二区三区| 懂色中文一区二区在线播放| 性做久久久久久| 亚洲青青青在线视频| 91精品国产综合久久久久久久| av中文字幕不卡| 久久精品国产精品亚洲精品 | 91在线你懂得| 国产精品一区二区久久不卡 | 在线不卡中文字幕播放| 91在线观看视频| 激情综合色丁香一区二区| 亚洲精品中文字幕乱码三区 | 激情丁香综合五月| 日韩中文字幕91| 亚洲综合一区二区三区| 日本一区二区三区国色天香| 日韩三级免费观看| 欧美日韩一区二区三区视频| 成人福利视频在线| 激情欧美一区二区| 亚洲一区二区不卡免费| 亚洲欧美日韩久久| 国产米奇在线777精品观看| 视频精品一区二区| 亚洲精品欧美激情| 中文字幕一区二区三区不卡| 精品国精品国产| 欧美福利视频导航| 色诱亚洲精品久久久久久| 成人免费视频app| 国产精品一区二区三区乱码| 日韩成人一级大片| 日韩黄色片在线观看| 性久久久久久久久| 一区二区三区不卡视频| 一区二区在线看| 国产精品久久一卡二卡| 国产日产欧美一区二区视频| 欧美一二三四区在线| 日韩三级伦理片妻子的秘密按摩| 在线中文字幕不卡| 欧美女孩性生活视频| 日韩一区二区在线观看| 日韩亚洲欧美成人一区| 欧美人狂配大交3d怪物一区| 7777精品伊人久久久大香线蕉的 | 91精品国产一区二区人妖| 欧美三级欧美一级| 日本一区二区综合亚洲| 中文字幕av一区二区三区高 | 午夜国产精品影院在线观看| 亚洲va中文字幕| 婷婷综合在线观看|