![](/user_photo/2706_HbeT2.jpg)
Методичка Stateflow
.pdf![](/html/2706/242/html_bmpoCAKTGw.QYsn/htmlconvd-v0_KDX31x1.jpg)
отображаться в командной строке системы MATLAB каждый раз при выполнении диаграммы потоков. Действие условия может содержать множество операторов присвоения, отделенных друг от друга точками с запятой. Условие и действие условия могут разделяться переводом строки, а также операторы присваивания в действии условия могут быть отделены друг от друга переводами строк (знаки разделителей в виде точек с запятой сохраняются).
На рис. 21 приведена структура цикла. Цикл содержит два перехода. Первый переход – ветвь от соединительного перехода соединения к самому себе. Этот переход повторяется, пока условие истинно, и на каждой итерации происходит действие условия. Когда условие не истинно, происходит безусловный переход. Также на данном переходе могут быть заданы дополнительные действия условия.
Пример 2. Диаграмма потоков последовательности приближенных решений нелинейного уравнения по методу Ньютона-Рафсона
Предположим, что необходимо реализовать блок системы Simulink, который вычисляет корни уравнения:
ax3 + 2x + 1 = 0 .
Коэффициент а – это вход блока и действительный корень х – это выход блока. Диаграмма потоков Stateflow (рис. 22), которая реализует данный алгоритм, использует итерационный процесс по методу Ньютона-Рафсона. Блок включён в модель системы Simulink, которая приведена на рис. 23. В этой диаграмме потоков переменная а определена как входная, переменная х – как выходная, и все остальные переменные определены как локальные. Таким образом, блок Stateflow имеет один скалярный входной порт и один скалярный выходной порт. Блок настроен на непрерывное обновление, т.е. значение переменной х будет вычисляться на каждом шаге моделирования.
Рис. 22. Диаграмма потоков, реализующая итерационный процесс по методу Ньютона
31
![](/html/2706/242/html_bmpoCAKTGw.QYsn/htmlconvd-v0_KDX32x1.jpg)
Рис. 23. Модель системы Simulink с блоком итерационного процесса по методу Ньютона
12. Графические функции
Графические функции обеспечивают возможность создания блоков состояния в программном средстве Stateflow и предназначены для той же цели, что и функции системы MATLAB или S-функции системы Simulink. Графическую функцию можно рассматривать как внутреннюю подпрограмму или функцию на диаграмме Stateflow. Графические функции могут использовать входные данные и возвращать значения. Графические средства могут использоваться в любой диаграмме Stateflow, но они являются полезным средством в диаграммах потоков.
На рис. 24 приведена структура графических функций. Данная диаграмма реализует тот же алгоритм, что и диаграмма цикла на рис. 21. Изображения блоков графических функций имеют прямые углы (в отличие от закругленных углов изображений блоков состояний), и метками блоков являются прототипы функций, в которых определяются имена функций, входные переменные и возвращаемые переменные.
Рис. 24. Пример цикла с использованием графических функций
32
Для создания графической функции необходимо выполнить следующие действия:
1)На панели инструментов выбирается пиктограмма State.
2)Блок состояния размещается в поле диаграммы.
3)Указатель мыши устанавливается на изображение созданного в п. 2 блока состояния и нажимается правая клавиша мыши.
4)В контекстном меню выбирается команда Type и затем в меню второго уровня выбирается команда Function.
После выполнения п. 4 блок состояния будет преобразован в блок графической функции. В качестве метки блока графической функции будет вставлен прототип функции.
Чтобы добавить имя функции, входные и выходные переменные, метку следует отредактировать. Графические функции должны содержать, как минимум, переход по умолчанию, заканчивающийся на соединении.
Входные и выходные параметры в графической функции являются формальными. Поэтому их имена не обязательно должны совпадать с именами переменных, используемых при вызове функции. Не допускается передача графической функции матричных аргументов.
13. Печать диаграмм Stateflow
Печать диаграмм Stateflow осуществляется двумя способами. Первый способ заключается в использовании команды Print меню File главного меню окна Stateflow. Второй способ заключается в использовании команды sfprint системы MATLAB.
Диалоговое окно печати Stateflow обеспечивает возможность настройки параметров печати текущего вида диаграммы Stateflow, а также печати полной диаграммы. Вывод файла на печать можно производить как непосредственно на принтер, так и в файл.
Команда sfprint имеет два варианта синтаксиса. Первый вариант синтаксиса имеет вид: sfprint. Данная версия команды эквивалентна выбору команды Print меню File главного меню Stateflow. Второй вариант синтаксиса:
sfprint (chart name, format),
где chart name – строка MATLAB, содержащая название диаграммы Stateflow (название блока диаграммы в модели системы Simulink) и format – строка MATLAB, содержащия формат выходного файла из таблицы. Если используется второй вариант синтаксиса команды, то изображение текущего окна программного средства Stateflow будет сохранено в файле chart name.format. В случае, когда указано сохранение в буфере обмена, изображение диаграммы будет сохранено в буфере обмена.
33
Таблица. Параметры команды SFPRINT
Формат |
Значение |
eps |
Encapsulated PostScript |
epsc |
Color Encapsulated PostScript |
ps |
PostScript |
psc |
Color PostScript |
tif |
Tagged image format |
jpg |
JPEG format |
png |
PNG format |
clipboard |
сохранить в буфер обмена |
14.Заключение
Вметодических указаниях были рассмотрены конечные автоматы, диаграммы Stateflow и приведены основные операции по построению диаграмм. Был представлен пример построения диаграммы Stateflow, рассмотрены основы определения событий и данных, а также интерфейс диаграмм Stateflow с моделями системы Simulink.
Вменю MATLAB Help в разделе Demos можно посмотреть примеры использования программного средства Stateflow в разных областях науки и техники.
Литература
1.Simulink 4. Секреты мастерства / Дж. Б. Дебни, Т. Л. Харман; Пер. с англ. М. Л. Симонова. – М.: БИНОМ. Лаборатория знаний, 2003.
2.Stateflow User's Guide, The MathWorks, Inc., Natick, MA, 2000.
Интернет-ссылки
1.www.mathworks.com – официальный сайт разработчика
2.http://matlab.exponenta.ru/ - консультационный сайт компании Softline
34