как да конвертирате контролния дизайн от simulink в C

Проектирах система за контрол в Simulink за моя проект. Сега трябва да конвертирам този дизайн в C код. Но в момента не е решен конкретен хардуерен процесор, върху който да се намира кодът. Така че трябва да стартирам кода си от matlab. Аз съм много нов в индустрията, така че не съм наясно със стъпките, които се следват, за да се промени контролният дизайн от simulink на вграден C.

Тъй като нямам практически опит относно работния процес, който трябва да следвам, мога ли да получа някои насоки за това какви са общите норми, които трябва да бъдат изпълнени, за да постигна моето изискване.


person saya    schedule 13.05.2013    source източник


Отговори (2)


Препоръка за работен процес:

Уверете се, че вашият дизайн е достатъчно тестван със симулация. Не искате да откривате прости грешки, когато контролирате истински хардуер.

Проучете/решете целевите изисквания. Ако имате ограничени ресурси (памет/скорост) и трябва да персонализирате генерирания код, за да отговаря на целевия интерфейс, трябва да използвате вграден кодер. В противен случай Simulink кодерът може да е достатъчен (ако имате вграден кодер, използвайте го все пак).

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

Задайте правилната цел в конфигурационните параметри/Генериране на код/Системен целеви файл. grt.tlc за код за бързо прототипиране и ert.tlc за вграден код. След това можете да прегледате свойствата за оптимизиране и генериране на код и да зададете както искате. Ако вашата цел има специфични типове данни, трябва също да промените внедряването на вградения хардуер, за да съответства на типовете данни на вашата цел.

Генериране на код (ctrl-b).

Интегрирайте кода във вашия целеви проект. Първо извикайте _initialize веднъж, след това във времеви цикъл задайте входове, извикайте _step и прочетете изходите.

Възможно е също така да направите собствена персонализирана цел, за да персонализирате интерфейса на кода и да предоставите желания изход директно, включително компилиране и изтеглянеn към целта. Това е главно за бързо създаване на прототипи и препоръчвам да го направите ръчно първо няколко пъти и след това да решите дали си струва усилието за автоматизиране.

person user2398623    schedule 19.05.2013

Може да искате да започнете да разглеждате някои от примерите или видеоклиповете на Simulink Coder и вграден кодер. Simulink Coder е за генериране на C/C++ код, но не е непременно оптимизиран за работа на вградени процесори (може да е за целите на Rapid Prototyping или Hardware-in-the-Loop например). Embedded Coder е добавка към Simulink Coder за оптимизиране на генерирания код за работа на вграден хардуер.

Може също да искате да регистрирате някои от техните уебинари по тази тема или да разгледате някои записани (има много за избор).

person am304    schedule 16.05.2013