フィルターのクリア

while loop in simscape language

14 ビュー (過去 30 日間)
Tomas Iesmantas
Tomas Iesmantas 2011 年 6 月 7 日
回答済み: Vishnu Teja Vithala 2018 年 7 月 9 日
Hi, I'm having some troubles in creating ssc file where I need to use while loop (or maybe for). Here is my code:
parameters
gain = { [0 0 1/3], '1' }; % Gain
max={[0.3 0.1 0.25],'1'} %Maximum pressures
end
parameters
stop = { 0, '1' };
k={1,'1'};
end
equations
while stop<1
if I<=sum(max(1:k))
stop=1;
coef=gain(k);
end
k=k+1;
end
O == coef * I;
end
And when I try to build library with ssc_build I get message like this:
Illegal flow control construct 'while' in equation block
Am I doing something wrong, or there is no possibility in simscape language to use "while" and "for" statements (although conditional "if" is allowed)?
Thanks in advance.

採用された回答

Arnaud Miege
Arnaud Miege 2011 年 6 月 7 日
while and for loops are not allowed in the Simscape language, see the equations documentation ("Supported Functions" section) and Defining Component Equations in the Simscape documentation. What are you trying to do?
Arnaud
  5 件のコメント
Arnaud Miege
Arnaud Miege 2011 年 6 月 8 日
I would suggest doing this in Simulink/Stateflow or Embedded MATLAB and using a Simulink->PS Converter block to feed to the flow rate sources. Alternatively, if you want to stay within the Simscape environment, you could probably use the PS Switch block in conjunction with the PS Max and PS Min blocks.
Andreas
Andreas 2015 年 11 月 6 日
Hi Arnaud,
while and for would be helpful, to create parameter-driven discretisations of simscape-blocks (like in Modelica language) for any type of lumped models.

サインインしてコメントする。

その他の回答 (1 件)

Vishnu Teja Vithala
Vishnu Teja Vithala 2018 年 7 月 9 日
I agree, Simscape not supporting while and for loops is pretty big limitation

カテゴリ

Help Center および File ExchangeComposite Components についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by