как да създадете блок за прехвърляне на Simulink в реално време

Имам проста идея, но предполагам, че е трудно да я приложа на simulink. Създадох TCP/IP сървър между BeagleBone и блок за simulink, използвайки C код. Имам превключвател, свързан към костта на бийгъл като вход и идеята ми е да имам дисплей на блока на simulink, показващ дали превключвателят е затворен или отворен. Не можах да го направя, защото моят клиент (блок на simulink) е c код и ще свърши работата само веднъж, тъй като C кодът приключва изпълнението на функцията след връщане, за да получи стойността на превключвателя. Знаете ли някакъв режим на прехвърляне на simulink или фантастичен C съвет за прехвърляне на данни между клиентския блок на Simulink и дисплея?


person KJohn    schedule 14.02.2013    source източник


Отговори (1)


В симулатор, върху който работя, използвахме блок Sink с отдалечен IP адрес и IP порт, за да експортираме данните, изчислени в реално време, към външен слушател (това може да е на същата машина или свързано чрез мрежа), което в нашия случай беше компютър, извършващ рендирането на графики, което след това беше взето от код на C++, написан с помощта на Ogre 3D, и от друг модел на simulink, използващ блок източник.

Имахме и интерактивен дисплей на картограф (GPS индикация за позиция, ако желаете). Можем да получим достъп до стойностите, генерирани от simulink, като извикаме следната команда всеки път, когато е необходимо:

variable = get_param('Simulator/Chartplotter/YDot','RuntimeObject');

Можете също да извикате "set_param", за да промените постоянна стойност, разположена вътре в модела на simulink.

Нямам опит в бигъл, но си представям, че бихте могли да накарате вашия C код да изпълни matlab скрипт, който би променил логическа константа, присъстваща във вашия модел на simulink, за да посочи дали превключвателят е отворен или не.

Като алтернатива можете да проучите първата опция, но ние я използвахме само за извличане на данни от simulink в C програмата, а не обратното, както бихте искали да направите. За съжаление нямам директен достъп до получаващия C код, но ако наистина сте закъсали, мога да помоля колегите си да ми изпратят важните части.

Надявам се това да помогне.

person Artur    schedule 23.02.2013