persistent variable simulink codegen stateflow error: "IR Construction failed"

6 ビュー (過去 30 日間)
John Hatrick
John Hatrick 2019 年 5 月 7 日
回答済み: Fangjun Jiang 2019 年 5 月 8 日
Greetings,
I'd like to include a function similar to the following in my codegen-compiled simulink model:
function u = PD_control( x )
persistent x_last_iter % save last x each iter
if isempty(x_last_iter)
x_last_iter = x; % 1st iter -> set to 1st x
end
Kp = 1; Kd = 1; % PD control params
u = -x*Kp + (x_last_iter - x)*Kd % calculate control input
end
However, I get compiler error below. "IR Construction failed" returns zero hits when I search the web.
I can avoid this error by setting the initial value to 0 instead: "x_last_iter = 0;" But this is not ideal.
Anyone understand this error? I feel I am correctly following the documentation here: Persistent Variables and Persistent Array Variables
Respectfully, John

回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2019 年 5 月 8 日
I think IR means "Internal Representation". It might be a bug. Make a simple example and submit a service request to the Mathworks.

カテゴリ

Help Center および File ExchangeSimulink Coder についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by