0

こんにちは、「パネル」と「タービン」の可能な組み合わせを調べるために、力ずくの方法で作業しています。

私のコードは

 for number_panels = 0:5

for number_turbines = 0:10


    for n = 1:24 % number of hours per day



deficit(n) = Demand(n) - (PV_supply(n)*number_panels) -...
 (WT_supply(n)*number_turbines);% hourly power deficit

        if deficit(n)<0

            deficit(n) = 0;

        end

上記の問題は、このコードの正しいインデックス付けをまだ考えていないことです。

私がやろうとしているのは、「number_panels」、「number_turbines」、および「n」の「不足」を見つけることです。現状では、最後の for ループの「不足」しか見つかりません。n 番目の行 (または「n」のセット、つまり 1 ~ 24) にアクセスするオプションと、「number_panels」「number_turbines」オプションを使用できるようにコーディングするにはどうすればよいですか?


ありがとう - 各赤字(n)値の合計を見つけて、24時間のそれぞれの合計赤字を得るために、私が求めていることを実行できるように思われる次のことを行いましたが、私は間違っています答え:

 daily_deficit(number_panels + 1, number_turbines + 1) =...
 sum(deficit(number_panels + 1, number_turbines + 1,n)) –
4

2 に答える 2

0

関数calcDeficit.m:

File Edit Options Buffers Tools ObjC Help                                                                              
function deficit = calcDeficit (Demand, PV_supply, WT_supply)

  % initialize the size (good practice)
  deficit = zeros(6,11,24);


  for number_panels = 0:5

    for number_turbines = 0:10

      for n = 1:24 % number of hours per day
        deficit(number_panels+1,number_turbines+1,:) = Demand(n) - (PV_supply(n)*number_panels) -...
          (WT_supply(n)*number_turbines);% hourly power deficit

        if deficit(n)<0 
          deficit(n) = 0;
        end
      end
    end
  end
return

呼び出し例:

Demand=randn(24,1); PV_supply=randn(24,1); WT_supply=randn(24,1); test(Demand,PV_supply,WT_supply)

Demandにアクセスする

Demand(panels+1,number_turbines+1,hour)
于 2012-07-13T16:07:44.443 に答える
0

あなたの問題は、1 日あたりの時間数でdeficitある value のみの関数として結果を保存していることです。n内側のループ aroundnでは、外側のループを通過するたびに値を置き換え続けるため、実行の最後にはn = 1:24at number_panels= 5 とnumber_turbines= 10 の値しかありません。

これを試して:

deficit(number_panels+1, number_turbines+1, n) = ...

そうすれば、最後に、3 つのインデックスが与えられた任意の組み合わせを確認できます。MATLAB は 1 ベースのインデックスを使用するため、number_panels と number_turbines に値 1 を追加しました。特定の数のパネルまたはタービンの結果を取得するには、確認時に必ず 1 を追加してください。

具体的には、1 日 5 時の 3 つのパネルと 4 つのタービンの場合:

disp(deficit(3+1, 4+1, 5))

EDITnumber_panels :およびの値に 1 を追加して、number_turbines0-indexing を回避しました。

于 2012-07-13T15:57:08.483 に答える