フィードバックループ
ファンクションノード内では、時間遅延を伴うフィードバックループを使用して、未来のノードにアクセスすることができます。これは、ダイナミックモデルでも使用できます。以下に、概念図とASCMO-MOCAでの設定例を示します。
メインのファンクションノード
engine_speed[-] = timeDelay(%Output%, 0)
engine_torque[-] = %PID Controller%(%engine_speed_setpoint%, %engine_speed%, %Ki%, %Kp%)
Output[-] = %Plant%(%engine_torque%)
PIDコントローラのファンクションノード
diff[-] = %engine_speed_setpoint% - %engine_speed_act%
diff_integrated[-] = timeDelay(%diff_integrated%, 0) + dT .*%diff%
engine_torque[-] = %Kp% .*%diff% + %Ki% .*%diff_integrated%
時間遅延エレメント(timeDelay)は、"Insert/Edit Node" ウィンドウで使用できる演算子のひとつです。
参照