Есть ли способ переупорядочить порядок выполнения для назначения вывода в Simulink? - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь сгенерировать C-код из модели Simulink.Я пытаюсь получить некоторые сигналы "в середине кода", чтобы перенаправить эти данные, чтобы иметь доступ к этим данным во время генерации кода.Но порядок выполнения сгенерированного кода не такой, как мне нужно.

См. Этот рисунок в качестве примера: https://www.dropbox.com/s/44zgpxdlwjvvbzo/Current.PNG?dl=0)

Это генерирует следующий код:

...
real_T rtb_Add1;
real_T rtb_Add;
rtb_Add = Test1_U.In1 + Test1_U.In2;
rtb_Add1 = rtb_Add + Test1_U.In2;
Test1_Y.Out1 = rtb_Add1;
Test1_Y.Out2 = Test1_U.In1;
Test1_Y.Out3 = rtb_Add;
Test1_Y.Out4 = rtb_Add1;
...

Но мне нужно добиться такого порядка выполнения: https://www.dropbox.com/s/jf8p6hk58z691so/Required.png?dl=0

, чтобы сгенерированный код выглядел следующим образом:

...
real_T rtb_Add1;
real_T rtb_Add;
Test1_Y.Out2 = Test1_U.In1;
rtb_Add = Test1_U.In1 + Test1_U.In2;
Test1_Y.Out3 = rtb_Add;
rtb_Add1 = rtb_Add + Test1_U.In2;
Test1_Y.Out4 = rtb_Add1;
Test1_Y.Out1 = rtb_Add1;
...

Я уже пытался адаптировать приоритеты блоков, но, похоже, у меня нет возможности установить какой-либо приоритет для атомных подсистем.Есть ли у вас какие-либо идеи, можно ли манипулировать порядком выполнения модели так, чтобы необходимый код был достигнут?

Заранее спасибо

...