Объектті басқаруға негізделген Statefiow ішкі жүйесі
Simulink пакетінің негізгі міндеті жүйелерді имитациялық моделдеу болып табылады. Сонымен бірге жүйенің жүріс-тұрысына сыртқы оқиғалардың әсерлері есепке алынбайды немесе тек қана әсер көздерінің уақыт бойынша тәуелділіктері есепке алынады. Әртүрлі оқиғалардың пайда болуы жүйенің жұмысына маңызды әсер ететін жағдайда көптеген жүйелер жұмыс жасайды. Жүріс-тұрыстары сыртқы оқиғалардан (ситуациялардан) тәуелді болатын жүйелерді моделдеу оқиғалық немесе ситуациялық моделдеу деп аталады. MatLab жүйесінің Simulink пакетінде осындай моделдеу арнайы Stateflow кеңейтілу пакеті көмегімен жасалынады. Бұл пакеттің өзінің пайдаланушының графикалық интерфейсі бар, оны қолданып SF-диаграммалар деп аталатын графикалық диаграммаларды құрастыруға болады. Бұл диаграммалар моделденетін жүйенің жұмысын визуалды көрсетуге негізделген. Оған жету үшін жүйенің жұмысының барлық қадамдары анализденеді, сонымен бірге көрсетілген уақыттағы пассивті немесе активті болатын блоктар және әр түрлі шарттарды анализдеу негізінде олар арасындағы көшулердің орындалуы анализденеді.
Statefiow-диаграмманы жасау үшін біріншіден Simulink-те моделді жасау немесе бар моделді ашу керек. Содан кейін библиотекадан Statefiow диаграммасының блогын таңдап, оны өзіңіздің моделіңізге орнату керек. Осы блокты ашқан кезде Statefiow (chart)(2.1 суретті қараңыз) терезесі пайда болады; менюді және инструменттер панелін қолданып, осы терезеде күйлер мен олар арасындағы байланыстарды бейнелейсіз, айнымалылырды, қажетті көшулерді және басқа басқаруға қажетті элементтерді анықтайсыз.
Statefiow диаграммасында элементтердің негізгі екі тобы бар: графикалық және графикалық емес. Диаграмманың барлық графикалық элементтері күйлер карталарын редакторының негізгі терезесінің сол жақтағы панелінде орнатылған.
SF-диаграмманың маңызды объектісі күй (state) болып табылады. Әрбір күй оқиғалы-басқарылатын жүйенің жұмысының бір режимін бейнелейді. Егер де күйге келтіретін көшу шарты «ақиқат» мәнін қабылдаса немесе бұл күй бастапқы болса, күй активті болады. Statefiow диаграммасында әр күйдің «анасы» бар және оның «мұрагерлері» болуы мүмкін. Егер де күй жалғыз болса, оның анасы Statefiow диаграммасының өзі болып табылады (түбір диаграммасы).
2.1 сурет – Қарапайым SF-диаграмма
Күйдің графикалық бейнесін жасау үшін, панелден сәйкес батырманы таңдап, орнатылатын орынға тінтуір батырмасын басып орналастырамыз.
Күй активті болған кезде орындалатын әрекеттерді анықтайтын күйдің мәтіндік белгілері болады. Күйдің атауы бірінші енгізіледі. Күйді бейнелегенде келесі әрекеттер анықталуы мүмкін:
- name – күй аты;
- entry – күйге кірген кезде орындалатын әрекет;
- during - күй активті болып тұрғанда орындалатын әрекет;
- exit – күйден шыққан кезде орындалатын әрекет;
- on: {оқиға аты} – жүйе осы күйде орнатылса, оқиға пайда болған кезде (аты жақшада орнатылған) орындалатын әрекет.
SF-диаграмманың тағы бір маңызды графикалық объектісі - көшулер (Transition). Көшулер бір объекттің басқа объектпен байланысын көрсетеді және диаграммада стрелкалармен көрсетіледі, оның басы көз болатын күйде, ал соңы – қабылдаушы болатын күйде орнатылады. Құралдар панелінде көшулердің өз батырмасы жоқ. Көшуді сызу үшін тінтуірді көз болатын күйде орнатып, тінтуірдің сол жақтағы батырмасын басып тұрып, пайда болған көрсеткішті қабылдаушы күйге дейін созамыз. Көшу шарттарын бейнелейтін және көшу кезде орындалатын көшулердің белгілері бар. Белгі мәтінінің форматы
Event [condition] {condition_action}/transition_action,
мұнда Event – көшуді бастайтын оқиғаны анықтайды. Егер де оқиға аталмаған болса, көшу логикалық өрнегі орындалған кезде басталады. Егер де көшуді бастайтын оқиғалар бірнеше болса, олар бір-бірінен OR операторымен бөлініп, барлығы аталады;
сondition – ақиқат болған кезде көшуді бастайтын логикалық өрнек;
condition_action – көшудің өзі әлі ақиқат болып анықталмай (қабылдаушы күй анықталмады) бірақ көшу шарты ақиқат болғаннан кейін орындалатын әрекет;
transition_action – егер де алдында бейнеленген шарттардың барлығы ақиқат болса және қабылдаушы күй анықталған болса, орындалатын әрекетті анықтайды.
Statefiow пакетінің маңызды түсініктемесі оқиғалар (Event) – бұл графикалық емес диаграмманы басқаратын объекттер. Оқиғаны визуалдау үшін көшу белгілерін қолдануға болады. Stateflow диаграммасына қатысты оқиғалардың барлығы анықталған болуы керек. Оқиғалардың келесі түрлері бар: кіріс; шығудағы; жергілікті; Stateflow мен Simulink диаграммаға сыртқы көздерден еңгізілетін; Stateflow және Simulink диаграммалардан сыртқа берілетін.
SF-диаграмма редакторының Add/Event менюі көмегімен оқиға типін және оның қасиеттерін орнатуға болады.
Мәліметтер – сандық мәліметтерді сақтауға негізделген Stateflow диаграммасындағы графикалық емес объекттер. Айнымалыларды иерархияның кез-келген деңгейінде қолдануға болады. Мәліметтерді жасауға және өзгертуге Add/Data менюді қолдану керек.