Simulink как скрыть подсистему. Создание модели устройства в программе Simulink. Чтобы изменить название модельного окна


Учебные вопросы:


1. Определение понятий "цветовая модель" и "цветовое пространство" (повторение).
2. Цветовое координатное пространство RGB.
3. Цветовое координатное пространство YCBCR и преобразование из RGB в YCBCR.
4. Примеры работы в пространстве YCBCR.
5. Гистограммы изображений

Основные цветовые пространства, которые используются при сжатии изображений – это RGB (классическое пространство) и YCrCb – так называемоецветоразностное пространство. Но прежде чем вести разговор о цветовых преобразованиях, необходимо определить, что такое цветовое пространство.

Цветовое пространство – область изменения и существования цвета в заданной цветовой системе ( RGB , HSB ). Цветовой системой называется цветовое пространство с организованной системой цифровых цветовых координат для любого цвета. По-другому цветовое пространство представляет собойматематическое представление множества цветов. Существует три наиболее популярных цветовых пространства, используемых в машинной графике

RGB – red , green , blue (красная, синяя и зеленая составляющие), применяется в компьютерной графике (излучаемые цвета).

YCrCb (или YIQ , YUV ), используется в видеосистемах и в алгоритмах сжатия информации (например, JPEG ).

CMYK – используется при печати (отраженные цвета).

Кратко опишем цветовое пространство RGB , а затем перейдем к рассмотрению пространства YCrCb .

Цветовое пространство RGB широко применяется в компьютерной графике. Эти цвета являются основными, для формирования нужного цвета составляется комбинация трех цветов. Цвет, таким образом, представляется в трехмерной, декартовой системе координат. Можно представить цветовое пространство RGB в виде следующего изображения.

Рис.1. Цветовой куб RGB


Цвета RED , GREEN , BLUE являются компонентами пространства RGB (аддитивные цвета, нужный цвет получается смешением цветов), а, в свою очередь, цвета CAYN (голубой), MAGENTA (пурпурный), YELLOW (желтый) являются компонентами пространства CMYK (K – черный, BLAK – субтрактивные цвета, для образования цвета используется вычитание). Хотя цветовое пространство RGB идеально подходит для использования в компьютерной графике, но его использование не совсем эффективно при работе с реалистическими изображениями. Поэтому были разработаны другие цветовые пространства:

  • YUV , используется в системах PAL (Phase Alternation Line – линия с чередующейся фазой), NTSC (National Television System Committee – национальный комитет по телевизионной системе) и SECAM . Системы, транслирующие черно-белое видеоизображение используют только Y (светимость) и информацию о цвете (составляющие U и V ). Они сочетаются таким образом, что ресивер получает нормальную черно-белую картинку. Цветной ресивер декодирует дополнительную информацию о цветном изображении.
  • YIQ – цветовое пространство, опционально используемое в стандарте композитного NTSC . I обозначает фазу, Q – т.н. «квадратуру», которая является методом модуляции, использующегося для передачи цветной информации.
  • YCrCb – цветовое пространство, разработанное как часть рекомендации ITU - R BT .601, в процессе разработки глобального цифрового компонента стандарта видео.

Мы рассмотрим цветовое пространство YCrCb . Его составляющие определяют следующим образом:

  • Y - светимость (яркость).
  • Cb – цветность синего (хроматический синий)
  • Cr – цветность красного (хроматический красный).

Рассматриваемое цветовое пространство[ Ian E . G . richardson , H .264 and MPEG -4, 200] и его варианты (иногда именуется как YUV ) является одним из популярных методов эффективного представления цветных изображений. Y – светимость. Показатель может быть определен как среднее взвешенное компонентов R , G , B , запишется следующее соотношение:


гдекоэффициенты k – доли цветов, специальные коэффициенты. Они определены в рекомендации ITU - BT .601 следующим образом: k r = 0.299, k b = 0,114. Коэффициент k g не определяем, поскольку сумма трех коэффициентов равна 1.

Информация о цветах может быть представлена как цветовая разница (хроматические данные или насыщенность цвета). В этом случае каждая компонента представляет собой разницу между R , G , B и светимостью Y.


Полное описание цветного изображения дается с помощью компонента светимости ( Y ) и трех цветоразностных компонентов Cb , Cr , Cg , представляющие собой разность между интенсивностью цвета и означают светимость каждого компонента изображения.

Заслуживает внимания то, что получили четыре компоненты вместо трех. Однако выражение Cb + Cr + Cg постоянно и необходимо запомнить только две из трех цветоразностных компонент, а третья может всегда может быть посчитана. В цветовом пространстве YCrCb для передачи записывается только компонента светимости ( Y ), синяя (Cb ) и красная (Cr ) компоненты.Цветовое пространство YCrCb имеет важное преимущество перед пространством RGB , состоящее в том, что компоненты Cb и Cr могут быть представлены с более низким разрешением, чем компонента светимости, поскольку система человеческого зрения менее чувствительна к цвету, чем к светимости (яркости). Это снижает стоимость данных, необходимых для представления хроматических компонент, не оказывая существенного влияния на качество отображения. Для случайного наблюдателя нет очевидной разницы между RGB -изображением и YCrCb -изображением с пониженным разрешением хроматических компонент. Использование представления насыщенности цвета с более низким разрешением, чем светимость, является простой, но эффективной формой сжатия изображений.

Обычное изображение после захвата может быть преобразовано в YCrCb -изображение с целью уменьшения затрат памяти, необходимой для хранения изображения и/или для передачи по каналу связи. Перед отображением на экране монитора необходимо выполнить обратное преобразование: перевод в RGB -изображение. Приведем соотношения, необходимые для преобразования цветовых пространств .


Y = 16 + 65.481 * R + 128.553 * G + 24.966 * B ;

Cb = 128 - 37.797 * R - 74.203 * G + 112 * B;

Cr = 128 + 112 * R - 93.786 * G -18.214 * B;

Эти формулы были определены в рекомендации CCIR 601-2. Цветовое пространство YCrCb разработано как основа для стандарта цифрового видео. Компонента светимости Y имеет значения от 16 до 235, хроматические компоненты Cr и Cb изменяются в диапазоне 16 – 240, причем 128 соответствует нулевым значениям. Также описаны в рекомендации несколько форматов YCrCb , которые используются для дальнейшей обработки сигналов: 4:4:4, 4:2:2, 4:1:1. Мы о них поговорим в следующих лекциях, когда будем изучать алгоритм сжатия JPEG , а также выясним, почему были получены именно такие соотношения.

В цветовой модели RGB используется три основных цвета, с помощью которых можно получить любой оттенок видимого спектра. Максимальное количество различных цветовых оттенков определяется глубиной цвета, которая, в свою очередь, определяется количеством битов, используемых для кодирования цвета. В популярной модели RGB 24 с глубиной цвета 24 бита для каждого цвета отводится по 8 битов. С помощью 8 битов можно задать 256 различных цветовых оттенков соответственно красного, зеленого и синего цветов. Каждому оттенку присваивается значение от 0 до 255. К примеру, красный цвет может принимать 256 градаций: от чисто красного (255) до черного (0). Максимальное значение кода соответствует чистому цвету, а код каждого цвета принято располагать в следующем порядке: красный, зеленый и синий. Например, код чистого красного цвета записывается в виде (255, 0, 0), код зеленого цвета - (0, 255, 0), а код синего цвета - (0, 0, 255). Желтый цвет можно получить смешением красного и зеленого, и его код записывается в виде (255, 255, 0) .

Основное достоинство модели YUV (YCrCb) заключается в том, что этот метод кодирования хотя и более сложен, чем RGB, однако требует меньшей полосы пропускания. Дело в том, что чувствительность человеческого глаза к яркостному Y-компоненту и цветоразностным компонентам неодинакова, поэтому вполне допустимым представляется выполнение этого преобразования с прореживанием (интерливингом) цветоразностных компонентов, когда для группы из четырех соседних пикселов (2×2) вычисляются Y-компоненты, а цветоразностные компоненты используются общие (так называемая схема 4:1:1).

Рис.2. Слева - изображение в пространстве RGB, справа - в пространстве YCBCR.

Y – это набор яркостей, который основывается по большей части на зелёном цвете, лучше всего воспринимаемом человеческим глазом. Наборы Cr и Cb хранят ключи для восстановления красного и синего цвета из Y. Использование разложения YCrCb позволяет сильнее сжимать изображение при меньших потерях качества, так как главная информация для человека в картинке – это именно информация о яркости отдельных точек. Составляющие Cr и Cb хорошо сжимаются, не внося сильных ухудшений в качество картинки, сами по себе они менее чёткие, чем Y. С помощью команд пакета MATLAB можно выделить составляющие изображения и сравнить их с составляющими обычного RGB -изображения.

Рис.3. Слева - канал Y, по центру и справа - каналы Cb и Cr

Если посмотрим на R , G , B -каналы изображения, то увидим отличия:

Рис.4. Каналы: Red(слева), Green(по центру), Blue (справа)

Почему мы рассматриваем цветовое пространство YCrCb ? Необходимость использования пространствавытекает из того соображения, что значения соседних пикселей обычно похожи и сильно зависимы. Одни и те же детали изображения представлены во всех цветовых каналах, все исходное изображение можно наблюдать на каждом компоненте в отдельности.

В современных алгоритмах сжатия кодирование компонент происходит независимо друг от друга, при сжатии не учитывается взаимная связь между сигналами. При анализе уравнений преобразования цветовых пространств можно заметить следующий факт: существуют две точки: набор для черного (0,0,0) и набор для белого (255, 255, 255) цвета, для которых можно однозначно вывести значения в YCrCb пространстве. Для пространства YCrCb эти значения будут следующими: черный YCrCb = (0,0,0) и белый YCrCb = (255,128,128). Цветовой куб пространства выглядит следующим образом:

Рис.5. Цветовой куб YCBCR

Далее следует рассмотреть этапы кодирования по алгоритму JPEG - дискретное косинусное преобразование, квантование и энтропийное кодирование. Также посмотрим, как определяется степень потерь при сжатии (если изучается среда MATLAB, то далее целесообразно провести лабораторную работу по гистограммам изображений (смотри файл).


Лекция - цветовые пространства

1. Панов Е.А. Познание цвета: Равнозначность цвета в цифровых системах. М.: Книжный дом «ЛИБРОКОМ», 2009ю – 240 с. ISBN 978-5-397-00192-2.

2. Гонсалес Р., Вудс.Р., Эддинс С. Цифровая обработка изображений в среде MATLAB. Москва: Техносфера, 2006. – 616 с. ISBN 5-94836-092-X.

3. Сэломон Д. Сжатие данных, изображений и звука, 2006

4. http://courses.graphicon.ru/main/mdc - курсы лаборатории компьютерной графики ВМиК МГУ

Цветовое пространство YCBCR

В декабре 1992 года, перед самым Рождеством, компания Microsoft выпустила свой новый компакт-диск Microsoft Encarta. С тех пор эта мультимедиа-энциклопедия, содержащая информацию о животных, цветах, деревьях и живописных местах, не покидает списки наиболее популярных энциклопедий на компакт-дисках. В недавнем опросе Microsoft Encarta опять заняла первое место, опередив ближайшего конкурента - Комптоновскую мультимедиа-энциклопедию. Причина подобной популярности кроется в удобстве использования, высоком качестве статей и, главное, в большом количестве материалов. На диск записано 7 часов звука, 100 анимационных роликов, примерно 800 масштабируемых карт, а также 7000 качественных фотографий. И все это - на одном диске! Напомним, что обычный компакт-диск в 650 Мбайт без использования компрессии может содержать либо 56 минут качественного звука, либо 1 час видео разрешения с разрешением 320х200 в формате MPEG-1, либо 700 полноцветных изображений размером 640х480.

Чтобы разместить больше информации, необходимы достаточно эффективные алгоритмы архивации. Мы не будем останавливаться на методах архивации для видео и звука. Речь пойдет о новом перспективном алгоритме - фрактальном сжатии графической информации.

Когда в 1991 году впервые была опубликована информация о возможностях фрактального сжатия, она наделала много шуму. Майкл Барнсли, один из разработчиков алгоритма, утверждал, что разработан способ нахождения коэффициентов фрактала, сколь угодно близкого к исходной картинке.

Фракталы, эти красивые образы динамических систем, ранее использовались в машинной графике в основном для построения изображений неба, листьев, гор, травы. Красивое и, что важнее, достоверно имитирующее природный объект изображение могло быть задано всего несколькими коэффициентами. Неудивительно, что идея использовать фракталы при сжатии возникала и раньше, но считалось практически невозможным построить соответствующий алгоритм, который подбирал бы коэффициенты за приемлемое время.

Итак, в 1991 году такой алгоритм был найден. Кроме того, в дальнейших его статьях декларировался ряд уникальных возможностей новой технологии. Так, фрактальный архиватор позволяет, например, при распаковке произвольно менять разрешение (размеры) изображения без появления эффекта зернистости. Более того, он распаковывает гораздо быстрее, чем ближайший конкурент JPEG , и не только статическую графику, но и видео. В качестве примера приводилась программа, показывающая на машине с процессором i386/33 МГц цветной видеофильм с частотой 20 кадров в секунду без всякой аппаратной поддержки. В отличие от JPEG, в алгоритм изначально заложена возможность управлять степенью потерь на участках с максимальными потерями качества. Коэффициент сжатия изображений в целом примерно как у JPEG, но на некоторых реальных картинках достигалось сжатие в 10000 (!) раз.

Звучит это более чем внушительно, поэтому необходимо спокойно разобраться с преимуществами, которые обещает фрактальная компрессия, а также с возможными неприятными сторонами этого алгоритма.

История фрактального сжатия

Рождение фрактальной геометрии обычно связывают с выходом в 1977 году книги Б. Мандельброта "Фрактальная геометрия природы". Одна из основных идей книги заключалась в том, что средствами традиционной геометрии (то есть используя линии и поверхности), чрезвычайно сложно представить природные объекты. Фрактальная геометрия задает их очень просто.

Четыре года спустя появилась статья Майкла Барнсли и Стефана Демко, в которой приводилась уже достаточно стройная теория IFS. В 1987 году Барнсли основал Iterated Systems, компанию, основной деятельностью которой является создание новых алгоритмов и ПО с использованием фракталов.

Всего через год, в 1988 году, он выпустил фундаментальный труд "Фракталы повсюду". Помимо описания IFS, в ней был получен результат, известный сейчас как Collage Theorem, который лежит в основе математического обоснования идеи фрактальной компрессии.

Если построение изображений с помощью фрактальной математики можно назвать прямой задачей, то построение по изображению IFS - это обратная задача. Довольно долго она считалась неразрешимой, однако Барнсли, используя Collage Theorem, построил соответствующий алгоритм. (В 1990 и 1991 годах эта идея была защищена патентами.) Если коэффициенты занимают меньше места, чем исходное изображение, то алгоритм является алгоритмом архивации.

Первая статья об успехах Барнсли в области компрессии появилась в журнале BYTE в январе 1988 года. В ней не описывалось решение обратной задачи, но приводилось несколько изображений, сжатых с коэффициентом 1:10000, что было совершенно ошеломительно. Но практически сразу было отмечено, что несмотря на броские названия ("Темный лес", "Побережье Монтере", "Поле подсолнухов") изображения в действительности имели искусственную природу. Это, вызвало массу скептических замечаний, подогреваемых еще и заявлением Барнсли о том, что "среднее изображение требует для сжатия порядка 100 часов работы на мощной двухпроцессорной рабочей станции, причем с участием человека".

Отношение к новому методу изменилось в 1992 году, когда Арнауд Джеквин, один из сотрудников Барнсли, при защите диссертации описал практический алгоритм и опубликовал его. Этот алгоритм был крайне медленным и не претендовал на компрессию в 10000 раз (полноцветное 24-разрядное изображение с его помощью могло быть сжато без существенных потерь с коэффициентом 1:8 - 1:50); но его несомненным достоинством было то, что вмешательство человека удалось полностью исключить. Сегодня все известные программы фрактальной компрессии базируются на алгоритме Джеквина. В 1993 году вышел первый коммерческий продукт компании Iterated Systems. Ему было посвящено достаточно много публикаций, но о коммерческом успехе речь не шла, продукт был достаточно "сырой", компания не предпринимала никаких рекламных шагов, и приобрести программу было тяжело.

В 1994 году Ювал Фишер были предоставил во всеобщее пользование исходные тексты исследовательской программы, в которой использовалось разложение изображения в квадродерево и были реализованы алгоритмы оптимизации поиска. Позднее появилось еще несколько исследовательских проектов, которые в качестве начального варианта программы использовали программу Фишера.

В июле 1995 года в Тронхейме (Швеция) состоялась первая школа-конференция, посвященная фрактальной компрессии. Таким образом, многие важные события в области фрактальной компрессии произошли за последние три года: алгоритм только-только начинает развиваться.

Идея

Фрактальная архивация основана на том, что с помощью коэффициентов системы итерируемых функций изображение представляется в более компактной форме. Прежде чем рассматривать процесс архивации, разберем, как IFS строит изображение.

Строго говоря, IFS - это набор трехмерных аффинных преобразований, переводящих одно изображение в другое. Преобразованию подвергаются точки в трехмерном пространстве (x координата, у координата, яркость).

Наиболее наглядно этот процесс продемонстрировал сам Барнсли в своей книге "Фрактальное сжатие изображения". В ней введено понятие Фотокопировальной Машины, состоящей из экрана, на котором изображена исходная картинка, и системы линз, проецирующих изображение на другой экран. Каждая линза проецирует часть исходного изображения. Расставляя линзы и меняя их характеристики, можно управлять получаемым изображением. На линзы накладывается требование они должны уменьшать в размерах проектируемую часть изображения. Кроме того, они могут менять яркость фрагмента и проецируют не круги, а области с произвольной границей.

Одна шаг Машины состоит в построении с помощью проецирования по исходному изображению нового. Утверждается, что на некотором шаге изображение перестанет изменяться. Оно будет зависеть только от расположения и характеристик линз и не будет зависеть от исходной картинки. Это изображение называется неподвижной точкой или аттрактором данной IFS. Collage Theorem гарантирует наличие ровно одной неподвижной точки для каждой IFS. Поскольку отображение линз является сжимающим, каждая линза в явном виде задает самоподобные области в нашем изображении. Благодаря самоподобию мы получаем сложную структуру изображения при любом увеличении.

Наиболее известны два изображения, полученных с помощью IFS треугольник Серпинского и папоротник Барнсли Первое задается тремя, а второе - питью аффинными преобразованиями (или, в нашей терминологии, линзами). Каждое преобразование задается буквально считанными байтами, в то время, как изображение, построенное с их помощью, может занимать и несколько мегабайт.

Становится понятно, как работает архиватор, и почему ему требуется так много времени. Фактически, фрактальная компрессия - это поиск самоподобных областей в изображении и определение для них параметров аффинных преобразований.

В худшем случае, если не будет применяться оптимизирующий алгоритм, потребуется перебор и сравнение всех возможных фрагментов изображения разного размера. Даже для небольших изображений при учете дискретности мы получим астрономическое число перебираемых вариантов. Даже резкое сужение классов преобразований, например, за счет масштабирования только в определенное число раз, не позволит добиться приемлемого времени. Кроме того, при этом теряется качество изображения. Подавляющее большинство исследований в области фрактальной компрессии сейчас направлены на уменьшение времени архивации, необходимого для получения качественного изображения.

Оценка потерь и способы их регулирования

До сих пор мы не затронули несколько важных вопросов. Например, что делать, если алгоритм не может подобрать для какого-либо фрагмента изображения подобный ему? Достаточно очевидное решение - разбить этот фрагмент на более мелкие и попытаться поискать для них. Однако понятно, что процедуру эту нельзя повторять до бесконечности, иначе количество необходимых преобразований станет так велико, что алгоритм перестанет быть алгоритмом компрессии. Следовательно, допускаются потери в какой-то части изображения.

Для фрактального алгоритма компрессии, как и для других алгоритмов сжатия с потерями, очень важны механизмы, с помощью которых можно будет регулировать степень сжатия и степень потерь. К настоящему времени разработан достаточно большой набор таких методов. Во-первых, можно ограничить количество преобразований, заведомо обеспечив степень сжатия не ниже фиксированной величины. Во-вторых, можно потребовать, чтобы в ситуации, когда разница между обрабатываемым фрагментом и наилучшим его приближением будет выше определенного порогового значения, этот фрагмент дробился обязательно (для него обязательно заводится несколько линз). В-третьих, можно запретить дробить фрагменты размером меньше, допустим, четырех точек. Изменяя пороговые значения и приоритет этих условий, можно очень гибко управлять коэффициентом компрессии изображения: от побитного соответствия, до любой степени сжатия.

Возможности масштабирования

Итак, мы выяснили, что IFS задает фрактальную структуру, сколь угодно близкую к нашему изображению. При внимательном рассмотрении процесса построения изображения с ее помощью становится понятно, что восстанавливаемое изображение может иметь любое (!) разрешение. В самом деле, возвращаясь к аналогии с Фотокопировальной Машиной, можно сказать, что нам не важно до какой сетки растра будет огрубляться установившееся неподвижное изображение. Ведь Машина работает вообще с непрерывными экранами.

На этапе архивации проводится распознавание изображения, и в виде коэффициентов хранится уже не растровая информация, а информация о структуре самого изображения. Именно это и позволяет при развертывании увеличивать его в несколько раз. Особенно впечатляют примеры, в которых при увеличении изображений природных объектов проявляются новые детали, действительно этим объектам присущие (например, когда при увеличении фотографии скалы она приобретает новые, более мелкие неровности).

Но не все так гладко, как может показаться. Если изображение однородно (на фотографии только скала), то при увеличении получаются отличные результаты, однако, если сжимать изображение натюрморта, то предсказать, какие новые фрактальные структуры возникнут, очень сложно. Впрочем, вдвое-втрое можно увеличить практически любое изображение, при архивации которого задавалась небольшая степень потерь.

Масштабирование - уникальная особенность, присущая фрактальной компрессии. Со временем ее, видимо, будут активно использовать как в специальных алгоритмах масштабирования, так и во многих приложениях. Действительно, этого требует концепция "приложение в окне". Было бы неплохо, если бы изображение, показываемое в окне 100х100, хорошо смотрелось при увеличении на полный экран - 1024х768.

Сравнение с JPEG

Сегодня наиболее распространенным алгоритмом архивации графики является JPEG . Сравним его с фрактальной компрессией.

Во-первых, заметим, что и тот, и другой алгоритм оперируют 8-битными (в градациях серого) и 24-битными полноцветными изображениями. Оба являются алгоритмами сжатия с потерями и обеспечивают близкие коэффициенты архивации. И у фрактального алгоритма, и у JPEG существует возможность увеличить степень сжатия за счет увеличения потерь. Кроме того, оба алгоритма очень хорошо распараллеливаются.

Различия начинаются, если мы рассмотрим время, необходимое алгоритмам для архивации/разархивации. Так, фрактальный алгоритм сжимает в сотни и даже в тысячи раз дольше, чем JPEG . Распаковка изображения, наоборот, произойдет в 5-10 раз быстрее. Поэтому, если изображение будет сжато только один раз, а передано по сети и распаковано множество раз, то выгодней использовать фрактальный алгоритм.

Подсистема – это фрагмент Simulink -модели, оформленный в виде отдельного блока. Использование подсистем при составлении модели имеет следующие положительные стороны:

1. Уменьшает количество одновременно отображаемых блоков на экране, что облегчает восприятие модели (в идеале модель полностью должна отображаться на экране монитора).

2. Позволяет создавать и отлаживать фрагменты модели поотдельности, что повышает технологичность создания модели.

3. Позволяет создавать собственные библиотеки.

4. Дает возможность синхронизации параллельно работающих подсистем.

5. Позволяет включать в модель собственные справочные средства.

6. Дает возможность связывать подсистему с каким-либо m -файлом, обеспечивая запуск этого файла при открытии подсистемы (нестандартное открытие подсистемы).

Использование подсистем и механизма их блоков позволяет создавать блоки, не уступающие стандартным по своему оформлению (собственное окно параметров блока, пиктограмма, справка и т. п.).

Количество подсистем в модели не ограничено, кроме того, подсистемы могут включать в себя другие подсистемы. Уровень вложенности подсистем друг в друга также не ограничен.

Связь подсистемы с моделью (или подсистемой верхнего уровня иерархии) выполняется с помощью входных (блок Inport библиотеки Sources ) и выходных (блок Outport библиотеки Sinks ) портов. Добавление в подсистему входного или выходного порта приводит к появлению на изображении подсистемы метки порта, с помощью которой внешние сигналы передаются внутрь подсистемы или выводятся в основную модель. Переименование блоков Inport или Outport позволяет изменить отображаемые на пиктограмме подсистемы со стандартных (In и Out ) на те, которые нужны пользователю.

Подсистемы могут быть виртуальными (Subsystem ) и монолитными (Atomic Subsystem ). Отличие этих видов подсистем заключается в порядке выполнения блоков во время расчета. Если подсистема является виртуальной, то Simulink игнорирует наличие границ, отделяющих такую подсистему от модели при определении порядка расчета блоков. Иными словами, в виртуальной системе сначала могут быть рассчитаны выходные сигналы нескольких блоков, затем выполнен расчет блоков в основной модели, а затем вновь выполнен расчет блоков, входящих в подсистему. Монолитная подсистема считается единым (неделимым) блоком и Simulink выполняет расчет всех блоков в такой подсистеме, не переключаясь на расчеты других блоков в основной модели. Изображение монолитной подсистемы имеет более толстую рамку по сравнению с виртуальной подсистемой.

Подсистемы могут быть также управляемыми или неуправляемыми. Управляемые подсистемы всегда являются монолитными. Управляемые подсистемы имеют дополнительные (управляющие) входы, на которые поступают сигналы, активизирующие данную подсистему. Управляющие входы расположены сверху или снизу подсистемы. Когда управляемая подсистема активизирована, она выполняет вычисления. В том случае, если управляемая подсистема пассивна, она не выполняет вычисления, а значения сигналов на ее выходах определяются настройками выходных портов.

Для создания в модели подсистемы можно воспользоваться двумя способами:

1. Скопировать нужную подсистему из библиотеки Subsystem в модель.

2. Выделить с помощью мыши нужный фрагмент модели и выполнить команду Create Subsystem из меню Edit окна модели. Выделенный фрагмент будет помещен в подсистему, а входы и выходы подсистемы будут снабжены соответствующими портами. Данный способ позволяет создать виртуальную неуправляемую подсистему. В дальнейшем, если это необходимо, можно сделать подсистему монолитной, изменив ее параметры, или управляемой, добавив управляющий элемент из нужной подсистемы, находящейся в библиотеке. Отменить группировку блоков в подсистему можно командой Undo .

Рис. 2.68. Модель, использующая подсистему

Для того чтобы создать новый файл существует несколько способов:

Набор программы

При наборе программы следует соблюдать правила орфографии и пунктуации принятые для языка программированияMatLab.

Пример программы построения графика функции.

clearall; % очистка рабочей памяти (Workspace)

X= 0:pi/15:4*pi;% диапазон измененияXот 0 до 4с шагом/15

Y=exp(2*cos(X));% функция

plot(Y);% построение графика функцииY(X)

Сохранение программы.

Методов сохранения программы несколько.

При их использовании нужно помнить следующие:

    При первом сохранении в Окне сохранения необходимо задать имя файлу.

    Если не были настроены тропинки, то по умолчанию Окно сохранения предлагает для сохранения папку..\binв которой расположены служебные файлы.

    Если программа изменена, но не сохранена, то в заголовке к имени файла добавляется символ «*».

Запуск программы

Для запуска программы достаточно в командной строке набрать имя программы без расширения.

Undefinedfunctionorvariable"ххххххххх",

то это означает, что не настроены пути.

Если появляется сообщение типа:

XXXXXXXXXXXXXXX

On line XX ==>,

то это означает, что в строке XXошибка.

Simulink

Simulink, сопутствующая MatLab программа, – это интерактивная система для моделирования широкого класса динамических систем. Simulink работает с линейными и нелинейными, непрерывными и дискретными, многомерными системами. Программа обеспечивает пользователю графический интерфейс для конструирования моделей из стандартных блоков (модулей), которые собраны в библиотеки (см. Приложение).

Группируя блоки в подсистемы, вы можете создавать иерархические модели. Число блоков и связей в модели неограниченно. Simulink обладает открытой архитектурой и позволяет обогащать среду моделирования, создавая собственные блоки и библиотеки блоков с доступом из программ на MatLab,Fortranили С.

Запуск Simulink

Для запуска Simulink можно или нажать на панели инструментов кнопку илинабрать в командной строкеSimulink . На экране откроются 2 окна:

Первое окно –untitledявляется рабочим пространствомSimulink– окно, где создается рабочая модель из типовых звеньев:

Второе окно – Library:simulink(библиотекаSimulink) – содержит библиотеку блоковSimulink:

Создание новой модели

Новая модель создается

    При первом открытии Simulink.

    Из меню File Окна библиотек выбрать пунктNew подпунктModel .

2. Создание простой модели

Цель: создание типовой модели, просмотр синусоидального сигнала на осциллографе.

Типовая модель интегрирует синусоидальную волну и отображает результат совместно с самой волной (рис.1).

Напечатайте Simulink в командной строке MatLab или нажмите на панели инструментов кнопку – на экране появится пока ещё пустое окно моделиuntitledи библиотека блоковSimulink(рис.2).

Подведя указатель мыши к заголовку окна untitledи нажав левую кнопку мыши, Вы можете передвинуть окно новой модели (untitled) на правую часть экрана монитора, таким образом, вы сможете одновременно просматривать его содержимое и содержимое библиотек блоков.

В типовой модели используются блоки из следующих библиотек:

    Source library – источники (Sine Wave – блок синусоиды)

    Sinks library – приемники (Scope – блок осциллограф)

    Linear library – линейные элементы (integrator – интегрирующее звено)

    Connections library – библиотека подключений (Mux – блок)

Откройте библиотеку Source (источники) чтобы выбрать синусоиду (SineWave). Для открытия библиотеки просто необходимо два раза щелкнуть мышью на значке этой библиотеки.

Simulink отобразит на экране окно, которое содержит в себе все блоки данной библиотеки.

Например, в библиотеке источников (Sources) все блоки – это источники сигнала (рис.3).

Вы можете добавлять блоки к вашей модели путем копирования их из библиотеки или из другой ранее созданной модели. Для данного упражнения вам необходимо скопировать блок синусоиды (Sine Wave). Чтобы это сделать, наведите на него курсор, а затем нажмите и удерживайте в таком положении кнопку мыши.

Теперь просто перетащите блок в окно модели. По мере того, как вы его передвигаете, контур блока и его название передвигаются вместе с ним:

Когда указатель в окне модели окажется в том месте, куда вы хотите поместить блок, отпустите кнопку мыши. Таким образом, копия блока синусоиды (Sine Wave) находится теперь в окне модели.

Точно также скопируйте остальные блоки типовой схемы – примера в окно модели. Вы можете также передвигать эти блоки с одного места на другое в переделах окна модели, действуя также как и при копировании блока. На небольшое расстояние блок можно передвинуть, выделив его и нажав нужную направляющую клавишу (со стрелкой).

После того, как все блоки будут скопированы в окно модели, сама модель должна выглядеть примерно так:

Если вы внимательно рассмотрите значки блоков, то увидите угловую скобку с правой стороны блока синусоиды (Sine Wave) и три таких скобки на левой стороне Mux – блока. Символ > , направленный наружу из блока это выходной порт. Если символ > направлен к блоку, то этовходной порт. Сигнал переходит из выходного порта одного блока во входной порт другого через соединительную линию. Когда блоки соединены, символы портов исчезают:

Вы могли заметить, что Mux–блок имеет три входных порта, тогда как входных сигналов только два. Чтобы изменить количество портов ввода, откройте диалоговое окно Mux – блока путем двойного щелчка на блоке при помощи мыши. Измените Number of inputs (число входов) значение параметра на 2, затем щелкните на кнопкеClose (закрыть). Simulink сразу же отрегулирует количество входных портов:

Теперь настало время соединить блоки. Соединяйте блок синусоиды (Sine Wave) с верхним входным портом блока Mux: расположите указатель мыши на выходном порте с правой стороны блока синусоиды (Sine Wave). Обратите внимание, чтобы форма курсора изменилась на крестик:

Нажмите кнопку мыши и, удерживая ее, подведите курсор к верхнему входному порту блока Mux. Заметьте, что линия становится пунктирной, пока кнопка мыши нажата, и что когда курсор приблизится к блоку Mux, его форма изменится на двойной крестик.

Теперь отпустите кнопку мыши. Блоки соединены. Вы так же можете соединить линию с блоком, отпустив кнопку мыши в тот момент, когда указатель находится внутри значка блока. Если вы поступите таким образом, то линия соединится с входным портом, ближайшим к курсору:

Если вы снова посмотрите на типовую модель на рисунке 1, вы заметите, что одна из линий соединяет линию к входному порту другого блока. Эта, так называемая отходящая линия , соединяет выход синусоиды с интегрирующим звеном и пропускает тот же самый сигнал, который проходит из блока синусоиды в Mux-блок.

Рисование отходящей линии немного отличается от рисования, которое вы только что сделали. Чтобы соединиться с существующей линией, проделайте следующие операции:

1. Сначала поместите указатель на линию между синусоидой (Sine Wave) и Mux-блоком.

2. Нажмите и удерживайте так клавишу Ctrl(Control) на клавиатуре. При этом нажмите левую кнопку мыши, затем перетащите ее указатель к входному порту интегрирующего звена (integrator) или на само это звено. (Рис. 13).

3. Отпустите кнопку мыши и кнопку Ctrl. Simulink нарисует линию между начальной точкой и входным портом интегрирующего звена (см. рис.14). Этого же эффекта можно было добиться и другим способом – после шага 1, описанного выше, можно нажать правую кнопку мыши и перетаскивать её указатель ко входному порту интегрирующего звена до тех пор, пока указатель не примет форму двойного крестика, как на рис. 13.

4. Теперь необходимо соединить выходной порт интегрирующего звена (Integrator) с нижним входным портомMux-блока. Проделайте эту операцию также, как это было описано выше для блока синусоиды (SineWave) иMux-блока.

5. Точно таким же образом соедините выходной порт Mux-блока с входным портом осциллографа (Scope).

На этом создание связей между блоками заканчивается. Когда вы все это сделаете, ваша модель должна выглядеть примерно так (рис.15):

Теперь откройте блок осциллографа, чтобы просмотреть выходной сигнал созданной вами выходной модели. Окно осциллографа лучше расположить так, чтобы оно не перекрывалось (и, в свою очередь, само не находилось над) какими-либо другими окнами – так удобнее следить за процессом моделирования.

Осталось установить параметры моделирования (процесса) путём выбора пункта Parameters (параметры) из меню Simulation (моделирование). В появившемся диалоговом окне убедитесь, что Stop time (время остановки) установлено на 10 секунд (величина по умолчанию) – рис.17. Закройте диалоговое окно Simulation parameters (описание остальных параметров моделирования данного окна можно посмотреть в файле «УТС_приложение.doc») с помощью кнопкиClose (закрыть). Simulink применит введенные параметры и закроет диалоговое окно.

Выберите команду Start (Пуск) из менюSimulation (моделирование) и посмотрите на кривые со входа осциллографа. (Рис.18) Моделирование останавливается, когда истечет время, указанное в диалоговом окне Simulation parameters (параметры моделирования), либо когда вы выберете командуStop (стоп) из менюSimulation (моделирование).

Параметры собранной модели можно изменять. Например, зададим другую амплитуду синусоидального сигнала, вырабатываемого блоком SineWaveв нашей собранной модели. Для этого щёлкнем 2 раза мышкой по этому блоку. В появившемся диалоговом окне (см. рис. 17)

зададим новое значение амплитуды Amplitude: 2 (можно к тому же изменить и частотуFrequency, и фазуPhase). После этого жмём кнопкуClose и снова запускаем моделирование командойStart (Пуск) из менюSimulation. Результат смотрим в окнеScope .

Параметры модели можно задавать и в виде вектора. Покажем это на примере интегрирующего звена в нашей модели. Щёлкните 2 раза на значке интегратора, появится диалоговое окно его параметров:

Параметр начального условия (Initial condition ) следует задать так, как показано на рис. выше, т.е. вектором . Если теперь запустить процесс и посмотреть на результат в окнеScope (см. рис.19), то там можно

будет увидеть уже 5 кривых, одна из которых (желтого цвета) является заданным входным синусоидальным сигналом, а остальные 4 кривых – выходные сигналы в соответствии с 4-мя различными заданными нами начальными условиями на интеграторе. В этой простой модели объектом исследования является интегратор (Integrator), задатчиком входного сигнала – генератор синусоиды (SineWave), а выходной координатой – сигнал с интегратора.

Этот файл содержит описание модели. Чтобы завершить работу и Simulink и MatLab, выберите Exit Matlab (выход) из менюFile (файл). Вы также можете напечататьquit (выход) в командном окне MatLab (CommandWindow). Если же вы хотите выйти из программы Simulink, но остаться в MatLab, то просто закройте все окна Simulink. Появится следующее диалоговое окно (рис.21)

Раздел Sources предназначен для формирования входных сигналов, обеспечивающих работу модели. Эти блоки имеют только выходы:

    Constant – источник пост. сигнала

    Sine Wave – источник sin сигнала

    Signal Builder – созд. сигналы произвольной формы

    Random number – формирует случайный сигнал

    Pulse Generator – генератор последовательных прямоугольных импульсов

    In – входной порт для ввода сигналов из других моделей.

Раздел Sinks позволяет визуализировать получаемые при моделировании результаты и проконтролировать правильность работы отдельных блоков и системы в целом. Имеют только входы

    Scope – осциллограф (постр. графиков сигналов как ф-ий времени)

    Display – цифровой дисплей

    Out – выходной порт для вывода результатов вне модели

    X Y Graph – построение графика одного сигнала как ф-ий другого

    Flouting Scope – осциллограф, проводящий исследования в свободном режиме

    To File – обеспечивает сохранение результатов на диске в виде файла с типом.mat. Имя файла задается в окне параметров блока.

    To Workspace – сохраняет результаты в рабочей области памяти. Выходной сигнал сохраняется в виде матрицы с именем, указанным в окне параметров.

Раздел Continuous предназначен для создания линейных стационарных звеньев описываемых диф. ур. с пост. коэф.

    Directive – моделирование дифференцирующего звена

    Integrator – моделирование интегрирующего звена

    Transfer For – задание линейного звена ч/з его передаточную функцию

Раздел Signals & Routing предназначен для посылки, переключения, объединения и разделения сигналов.

    Mux – объединяет входные сигналы в единый выходной вектор

    Demux – разъединяет входной векторный сигнал на отдельные составляющие

Math Operations предназначен для использования в моделях математич операций и функций.

    Sum – суммирует поступающие на вход сигналы

    Product выполняет умножение/деление входных сигналов

С помощью блока Subsystem сложная система может быть представлена как совокупность взаимодействующих компонентов, внутренняя структура которых может быть скрыта.

Достоинства: 1) сокращение числа бесполезных блоков; 2) создание иерарх. схем

Подсистемы могут функционировать лишь в составе основных моделей.

Для создания подсистем необходимо:

1. Скопировать и раскрыть блок Subsystem в окно модели

2. Для создания подсистем из существующих блоков нужно выделить необходимые блоки и выбрать кнопку Edit -> Create -> Subsystem

36. Моделирование технических систем, описанных ИДУ в Simulink .

Пример решения интегро-диф. ур-ия, описывающего простую электрич. схему:

Найти
- напряжения на конденсаторе схемы.

Правая часть интегро-диф. ур-я описывает:

н
агрузку: а остальные эл-ты схемы: Умножим первую на

1/С, где С можно задать числовым значением в блоке или в командном режиме

Смоделируем 2-ю составляющую в виде модели с 1 входом и 1 выходом. В подсистему входит интеграл, поэтому заменяем его Integrator’ом

37. Моделирование тех систем, описанных ДУ в Simulink .

Реализуем модель гидравлического демпфера в Simulink y ""+2ny"+py=0

Для решения ДУ в Simulink, его нужно привести к диф. ур. вида: y ""= –2ny"–py

Блочная модель гидравлического демпфера в Simulink состоит из 2-х подсистем:

    блок описания уравнения реализует правую часть уравнения

    блок интегрирования реализует левую часть этого уравнения

Ввод исходных данных и расчет значений можно вып несколькими способами:

    присвоить переменным числовые значения в Matlab

    включать в систему блоки const и знач мат. операций

    создать m-файл, в кот будет осущ ввод исх данных и выч знач по зад фор-ам.

М-файл д.б. выполнен раньше, чем запустится на вып основная блочная модель. Можно исп спец. функ. Matlab, которая объединяет m-файл с блочной моделью, и будет запускать его, как только запускается блочная модель. Алгоритм:

    создать m-файл (r.m)

    разработать подсистему, реализующую описание правой части ур-я: S(t,y,y")

    разработать подсистему интегрирования с вычислением y и y"

    разработать основную модель GD.mdl, включающую 2 подсистемы и запустить

П

Блок описан 2-й части уравнения

рисоединение:set_param(‘GD’,’PreLoadFcn’,’r’)

Блок описан уравн

Блок интегрир-ия

В Simulink есть блок - редактор ДУ (DEE). Но нужно приводить ОДУ или систему к виду Коши. Запускается DEE указанием имени редактора в окне команд системы Matlab. >>dee

Этот блок копируем в окно модели и раскрываем окно параметров блока DEE:

1. number of inputs – кол-во варьируемых воздействии на входе системы

2. X0 – начальные условия для решения ДУ

3. First order equations – задаются правые части LE, разрешенных относительно первых производных

4. output equations – переменные, которые будут являться решениями ОДУ

Смоделируем расчет переходного процесса в последовательном колебательном контуре, представленным системой диф. ур.:

Д

ля решения вDEE перейдем к стандартным переменным этого блока: x – для корней систем,

n – для входных воздействий

i - x(1); Uc- x(2); e – U(1)



В продолжение темы:
Windows

Часть вторая : "Важнейшие характеристики каждого семейства процессоров Intel Core i3/i5/i7. Какие из этих чипов представляют особый интерес" Введение Сначала мы приведём...

Новые статьи
/
Популярные