Моят прост модел на simulink работи твърде бързо

Проектирах прости диаграми на simulink и stateflow в Matlab. Работи перфектно! Но имам два проблема:

1) Моделът работи твърде бързо. Времето за преход между две състояния е невероятно бързо, което не мога да видя. Опитах се да променя някои параметри, но не успях. Какво трябва да променя (може би в параметрите на конфигурацията на модела?), за да стане по-бавно, за да можем да видим преходите?

2) В момента просто имам постоянен вход. Как мога да задам поредица от константи, вероятно периодични? Предполагам, че трябва да има специален компонент. Имам нужда от въвеждане на да речем 0 във време 0, след това 1 след 1 минута, 2 във време 3 и т.н.?

въведете описание на изображението тук

въведете описание на изображението тук


person Community    schedule 17.11.2014    source източник
comment
Вероятно разширете мащаба на Scope и визуализирайте графиката, също така можете да намалите времето за спиране на симулацията от 1000.0 до да речем 1 или 2 или дори по-малко   -  person P0W    schedule 17.11.2014


Отговори (3)


1) Имах същите проблеми с някои интерактивни симулации, при които процесорът ги караше да работят твърде бързо, за да може потребителят да взаимодейства. Използване на блок за изпълнение в реално време на Simulink донесе решението, въпреки че натоварва силно процесора поради решението, което използва. С това, ако дефинирате 10-секундна симулация, това ще продължи. Ако не искате да преминавате през това бреме, просто удължете вашата симулация или проверете обстойно обхватите през цялата симулация (деактивиране на ограничението на точките в обхвата, щракване върху бутона Параметри и след това премахване на отметката от Хронология на данните/Ограничаване на точките от данни до последно). ..)

2) Simulink/Източници/Повтаряща се последователност. Вие дефинирате вектори на времената и стойността, която да се изведе за това време. Имайте предвид, че блокът интерполира стойностите между две точки, следователно, ако искате да промените от 2 на 3 в T=1s, трябва да дефинирате две точки, една U=2 в T=1s и друга U=3 в T=1s. Например 0 инча (0..1), 5 инча (1..2), 10 инча (2..3) и 15 инча (3..4):

Time values:   [0 1 1 2 2  3  3  4]
Output values: [0 0 5 5 10 10 15 15]
person Manex    schedule 17.11.2014
comment
Дебъгерът Stateflow също така позволява да се постави забавяне в анимацията. - person am304; 17.11.2014
comment
@Manex Грешка! Времевите стойности трябва да бъдат монолитни; две последователни числа не могат да бъдат подобни очевидно. - person ; 21.11.2014

Ако просто искате да проверите преходите, не е нужно да ги правите по-бавни. Можете да опитате да използвате режима за отстраняване на грешки, наличен в Stateflow, и можете да видите как вашият модел работи стъпка по стъпка.

person oro777    schedule 17.11.2014
comment
Благодаря. Случайно знаете дали можем също да валидираме генерирания C код освен самия модел? Трябва да проверя достъпността; че определено състояние (или част от код) никога не е постижимо. - person ; 22.11.2014
comment
@ArianaJasmine Начинът да направите това е с Simulink Design Verifier, който ще потвърди дизайна в Simulink (не кода) и Polyspace Code Prover за кода. И двата са (скъпи) допълнителни продукти към Simulink. - person am304; 03.12.2014

Опцията за забавяне на анимацията на Stateflow (така че например можете да видите по-добре преходите между състояния по време на симулация) е под менюто Дисплей в лентата с менюта на Simulink.

В последната версия (R2014b) опцията е под Display->Stateflow Animation (както и под Simulation->Stateflow Animation). (Вижте тук за повече подробности.)

В по-старите версии е под Дисплей->Показване на данни в симулация->Забавяне на анимацията на диаграма (сек) (въпреки че не съм 100% сигурен кога тази опция е преместена в менютата).

Имайте предвид, че трябва да сте вътре в диаграмата, за да бъдат активирани тези опции в менюто.

person grungetta    schedule 19.11.2014