この場合の代数ループとは
Revolute Jointの出力qが、Prismatic jointの入力pになっているからです。
Revolute JointとPrismatic jointの間には遅れがありません。
Revolute Jointの計算をするのに、Prismatic jointの情報が必要ですが、Prismatic jointの情報は
Revolute Jointの情報から計算されます。
このように、自分自身の現在の情報を計算をするのに自分自身の現在の情報を
遅れなく使う場合が代数ループとなります。
簡単な対処法は、添付のように、Memory blockなどを置き、過去の情報から計算するようにモデルを変えます。
このとき、Memory Blockは、入力の1ステップ前の値を出すの代数ループエラーは回避されます。