メインコンテンツ

方程式を含む合成コンポーネント — RMS 電圧センサー

R2026b

VoltageSensorRMS コンポーネントは、2 つの電気ノード間の AC 電圧の平方根平均二乗 (RMS) 値を測定する電圧センサーを実装します。このコンポーネントの宣言セクションと方程式セクションは、No-Flow Component — Voltage Sensorで説明されている通常の電圧センサーのものと類似しています。ただし、測定した電圧の RMS 値を計算するために、この合成コンポーネントでは Simscape™ Foundation Library の PS RMS Estimator ブロックを使用します。

コンポーネントの宣言セクションには、以下が含まれます。

  • 2 つの電気ノード p および n (それぞれ + 端子および – 端子用)

  • 測定した電圧の RMS 値を物理量信号として出力する 1 つの出力端子 Vrms

  • RMS の計算用の基本周波数を指定するパラメーター f0

  • ファイル内で後で電気ドメインに接続されるアクロス変数 (電圧 v1)

センサーを通過する電流はありません。そのため、スルー変数 (電流) は宣言されておらず、branches セクションはありません。

equations セクションの 1 つ目の方程式 v1 == p.v - n.v は、コンポーネントのアクロス変数 (電圧 v1) とコンポーネントのノード (したがって、これらのノードにおけるドメインのアクロス変数) との間の関係を確立します。センサーにかかる電圧をノード電圧間の差として定義します。

2 つ目の方程式 RMS.I == v1 は電圧センサーのアクションを定義します。センサー ノード間の電圧は、ファイルの後半にメンバー コンポーネント RMS として含まれている PS RMS Estimator ブロックへの入力信号と等しくなります。

components セクションには、Simscape Foundation ライブラリの PS RMS Estimator ブロックがメンバー コンポーネントとして含まれています。また、components セクションでは、合成コンポーネントの parameters 宣言セクションで宣言されている最上位パラメーター f0 を、基となるメンバー コンポーネントの f0 パラメーターにリンクします。このパラメーターは、RMS の計算用の基本周波数を指定します。

connections セクションは、メンバー コンポーネントの出力 RMS.O を、最上位の出力端子 Vrms に接続します。

component VoltageSensorRMS
% Voltage Sensor (RMS)
% The block measures root mean square (RMS) value
% of AC voltage between two electrical ports.
% To obtain meaningful results, run the simulation for 
% at least one full time period of the signal.

    nodes
        p = foundation.electrical.electrical; % +
        n = foundation.electrical.electrical; % -
    end
    outputs
        Vrms = {0, 'V'}; % Vrms
    end
    annotations
        p : Side=top;
        n : Side=bottom;
        Vrms : Side=right;
    end
    parameters
        f0 = {60, 'Hz'}; % Base frequency
    end
    variables
        v1 = { 0, 'V' }; % Voltage
    end

    % Component Equations
    equations
        v1 == p.v - n.v;
        RMS.I == v1;
    end

    % Composite Components
    components(ExternalAccess=none)
        RMS = foundation.signal.periodic_operators.RMS(f0=f0);
    end
    connections
        connect(RMS.O,Vrms);
    end
end

参考

トピック