Recursive type equation solution in simscape

1 回表示 (過去 30 日間)
Asif Tanveer
Asif Tanveer 2021 年 9 月 26 日
回答済み: Yifeng Tang 2022 年 7 月 27 日
Hello everybody, I am new in this community and have a related question. I have following code written in simscape. This is compiled ok as it is prepared in an existing block code. But its not working well. Infact I want to calculate fio2 and then assign its value to qo2 for the next timestep calculation. All the time i get qair = 0 and qo2 = 2.
variables (Access = private , ExternalAccess = observe)
qair = 1 % air flow
end
Parameters (ExternalAccess = observe)
fio2 = 2 %chamber o2
end
intermediates
qo2 = fio2
end
equation
fio2 == qair + qo2
end

回答 (1 件)

Yifeng Tang
Yifeng Tang 2022 年 7 月 27 日
Feels like you are trying to use Simscape like MATLAB :p, by considering how to use iterations to do the numerical integration. If I understand your intention correctly, you governing equation for this block is
or
and fio2 is just there to record the integral from last time step.
If so, you can get rid of fio2 totally and define the equation as
der(qo2) == -qair
or
qo2.der == -qair
And, add qo2 to the variable list. The initial condition can be set in the block in the variable tab.

カテゴリ

Help Center および File ExchangeFoundation and Custom Domains についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by