Matlab: де її застосовують

Борис Манзон

У статті "Matlab 5.1 - симфонія алгоритмів" (див. PC Week / RE, № 14, c. 61) ми розповіли про чудовому мовою матричного програмування Matlab, ввібрав в себе унікальні бібліотеки матричних алгоритмів LINPACK і EISPACK Департаменту енергетики США. У цій мові згадані алгоритми інтегровані в самосогласованной і зручною для використання формі, що дозволило автору статті назвати програму Matlab симфонією алгоритмів.

Ця стаття присвячена численним областям застосування Matlab в рішенні різноманітних наукових, технічних і економічних завдань, а також професійним додаткам, які розширюють можливості Matlab в конкретних областях.

Програма Simulink: моделювання явищ і процесів в середовищі MATLAB

Matlab є ідеальним середовищем для моделювання фізичних явищ, інженерних і економічних систем.

Для посилення цих "здібностей" фірма MathWorks разом з Matlab поставляє супутню інтерактивну програму Simulink для імітації динамічних систем. Цей продукт дозволяє представити досліджувану динамічну систему за допомогою з'єднаних між собою функціональних блоків (блок-діаграми), а потім вивчити її поведінку в динаміці. Як приклад на рис. 1 представлена ​​діаграма дуже простий динамічної системи: гумового м'яча, що скаче по плоскій поверхні після кидка вгору.

1 представлена ​​діаграма дуже простий динамічної системи: гумового м'яча, що скаче по плоскій поверхні після кидка вгору

Мал. 1. Блок-діаграми поведінки динамічної системи

Ця блок-діаграма побудована з блоків, що входять в бібліотеку пакета Simulink (на малюнку в лівому верхньому кутку кожна піктограма містить палітру блоків і розкривається подвійним клацанням). У бібліотеку входять блоки, що дозволяють моделювати лінійні, нелінійні, безперервні і дискретні багатоступінчасті системи з багатьма змінними.

Сам процес побудови діаграми дуже простий: необхідні блоки за допомогою миші перетягуються з бібліотеки в робоче вікно пакета і потрібним чином з'єднуються (також мишею). Їх параметри налаштовуються в діалогових вікнах, що викликаються подвійним клацанням миші на блоці, і після цього оформляється зовнішній вигляд блок-діаграми: вибираються розмір і колір блоків, їх найменування, розмір і тип шрифту для написів і т. Д.

Є різниця між моделюванням систем блоковими діаграмами пакета Simulink і моделюванням з використанням команд Matlab. При Simulink-моделюванні команди всіх блоків на кожному часовому кроці виконуються одночасно (так звана імітація тимчасового потоку). Наприклад, на двох екранах, представлених на рис. 1, можна спостерігати, як в процесі руху м'яча змінюються його швидкість і координата. Команди Matlab виконуються послідовно (імітація потоку даних). Для спеціальних додатків можуть знадобитися як ті, так і інші моделі систем.

Професійні додатки Matlab

Поєднання програм Matlab і Simulink дозволило створити широкий клас професійних інструментальних додатків (toolboxes) для генерації, аналізу та оптимізації систем.

Ці додатки - не просто набір корисних функцій. Без перебільшення можна сказати, що вони представляють собою останнє слово в розробці (дослідженнях) в таких областях, як управління, обробка сигналів, ідентифікація систем, і багатьох інших. Тому, освоївши і застосовуючи додатки Matlab, можна досягти рівня розробників (дослідників) світового рівня. Наведемо деякі важливі характеристики додатків:

- кожне побудовано на програмах, надійність і точність яких перевірена багаторічним досвідом;

- всі програми сумісні і легко інтегруються не тільки з Matlab, але і з Simulink і будь-яким іншим встановленим пакетом;

- завдяки тому, що додатки написані в коді відкритої архітектури Matlab, вони дозволяють прочитати все m-файли, зробити до них свої додавання або використовувати їх як шаблони при створенні власних функцій;

- кожне застосування може функціонувати на будь-якої комп'ютерної платформі, на якій працює Matlab.

Для багатьох додатків (таких, як комунікація, обробка сигналів, енергетичні системи та ін.) Поставляються набори блоків (blocksets), що дозволяють створювати динамічні моделі за допомогою блок-діаграм програми Simulink.

Розглянемо деякі професійні додатки, поширювані в даний час компанією MathWorks. Їх список швидко розширюється, щороку розробляються нові пакети.

Комунікації. Комунікаційне додаток містить засоби розробки сучасних комунікаційних систем, включаючи моделювання в реальному масштабі часу. Воно охоплює такі сфери застосування, як електронні телекомунікації, телефонія, авіація та космонавтика, а також комп'ютерне периферійне устаткування.

Системи управління. "Системи управління" - це основний пакет Matlab для моделювання, аналізу і проектування автоматичних систем управління. Він широко застосовується в розробці високотехнологічних систем, наприклад, в автомобільній і аерокосмічній техніці, виробництві комп'ютерної периферії і управлінні процесами, а також в менш очевидних додатках, таких, як розробка пральних машин та фотокамер.

Фінансовий модуль. Фінансовий модуль програми Matlab містить необхідні функції для введення, обробки і виведення фінансових даних, фінансового аналізу і прогнозу. Області його застосування включають цінову політику, розрахунок відсотків і доходів, аналіз похідних і оптимізацію портфелів. Пакет оперує у взаємодії зі статистичними додатком і модулем оптимізації. Рекомендується також графічний інтерфейс пакета Simulink для моделювання фінансових систем як нестохастична методами, так і методами Монте-Карло.

Ідентифікація систем методом спектрального аналізу. Модуль Frequency-Domain System Identification (FDSI) включає набір m-файлів для моделювання лінійних систем на основі вимірів їх частотних окликів.

Нечітка логіка. Пакет "Нечітка логіка" містить засоби, призначені для проектування, моделювання та аналізу систем з нечітким відгуком. Він має потужні і в той же час легко освоюються кошти для перетворення вхідних даних у вихідні за допомогою системи правил і зв'язків довільної складності, виражених звичайною мовою. Системи можуть бути імітовані в MATLAB або включені в блокові діаграми Simulink з можливістю генерації коду для незалежного виконання.

Спектральний аналіз високого порядку. Цей модуль (Higher-Order Spectral Analysis) містить інструменти для обробки сигналів, що є результатом нелінійних процесів або процесів, спотворення не гаусовим шумом, з використанням спектрального розкладання високого порядку.

Обробка зображень. Модуль Image Processing містить функції аналізу, статистичної обробки посилення, відновлення і двомірного перетворення зображень (фільтри, колір, геометрія, морфологія).

Управління (оптимізація) лінійними матричними нерівностями. Модуль LMI Control дозволяє з високою ефективністю вирішувати системи лінійних матричних нерівностей (Linear Matrix Inequalities), з якими доводиться стикатися при вирішенні завдань управління, розпізнавання, фільтрації, проектування структур, теорії графів і лінійної алгебри. Пакет містить також функції для проектування і аналізу таких характеристик систем управління, як стійкість, продуктивність і ін.

Моделювання передбачуваного управління. Ця програма (Model Predictive Control) особливо корисно при управлінні системами з великою кількістю вхідних і вихідних змінних, що мають багато зв'язків. Широко застосовується для управління процесами в хімічній інженерії.

Мю-аналіз і синтез. Пакет містить набір функцій для використання при аналізі та проектуванні стійких лінійних систем з багатьма змінними. Його мета - зробити доступними деякі останні досягнення в теорії систем управління в середовищі Matlab, а саме H-нескінченне оптимальне управління, m-аналіз і синтез.

The NAG Foundation. Модуль The NAG Foundation включає більше 200 підпрограм чисельного розрахунку з добре відомих бібліотек NAG Fortran, застосовуваних для задач прикордонного шару, оптимізації, адаптивної квадратури, підгонки за допомогою кривої або поверхні і багатьох інших.

Нейронні мережі. Пакет Neural Network представляє собою набір Matlab-функцій для проектування і імітації нейронних мереж. Нейронні мережі - це комп'ютерна архітектура, інспірована біологічними нервовими системами. Вони застосовуються там, де формальний аналіз надзвичайно важкий або неможливий, наприклад при розпізнаванні образів, ідентифікації та управлінні нелінійними системами.

Оптимізація. Модуль Optimization включає методи знаходження екстремумів лінійних і нелінійних функціоналів при наявності зв'язків і обмежень.

Рівняння в приватних похідних. Додаток Partial Differential Equation (PDE) призначене для вирішення рівнянь в приватних похідних в двомірному просторі і в часі методом кінцевих елементів. Воно включає набір функцій і інтуїтивний графічний користувальницький інтерфейс для попередньої обробки, рішення і подальшої візуалізації. На рис. 2 показаний модуль pdetool, за допомогою якого виконується побудова області рішення, завдання виду рівняння і граничні умови, а також побудова сітки елементів. Тут зображена сітка, створена автоматично для визначення поверхні мильної плівки, натягнутої на двох тяганині.

Мал. 2. Сітка для вирішення завдання про форму поверхні

На рис. 3 можна бачити графік вирішення цього рівняння. Вид і атрибути графіка також задаються за допомогою модуля pdetool; тривимірну поверхню, побудовану в додатку PDE, можна обертати в просторі, використовуючи мишу.

Вид і атрибути графіка також задаються за допомогою модуля pdetool;  тривимірну поверхню, побудовану в додатку PDE, можна обертати в просторі, використовуючи мишу

Мал. 3. Графік виконання завдання про форму поверхні

У пакеті є можливості автоматичного і адаптивного створення сітки, а також вісім готових модулів для вирішення таких інженерних і фізичних задач, як перенесення тепла, будівельна механіка, електростатика, магнітостатика і дифузія.

Проектування управління із застосуванням теорії кількісних зворотних зв'язків

Додаток QFT Control Design являє собою приклад застосування спектрального наближення в проектуванні контролерів для невизначених систем. Оптимальне рішення тут досягається на основі компромісу між складністю контролерів (а отже, і можливістю впровадження) та їх технічними характеристиками.

Стале управління. Пакет Robust Control містить спеціалізований набір інструментів для аналізу і синтезу систем керування, стійких до випадкових збурень, які можуть виникнути в реальному світі.

Обробки сигналів. Додаток обробки сигналів (Signal Processing) знаходить застосування в розробці аудіосистем (аналогова і цифрова аудіозапис), відеосистем (цифрове телебачення, обробка сигналів і стиснення даних), телекомунікації (факс і голосовий телефон), в медицині (CAT-сканування, магнітно зображення), геофізики і економетрики.

Сплайн. Пакет являє собою набір m-файлів для конструювання сплайнів, які використовуються для кусково-поліноміальної апроксимації інших функцій. Апроксимація сплайнами має деякі переваги в порівнянні з іншими видами апроксимації.

Статистика. Додаток містить набір m-файлів і графічних засобів для дослідження фундаментальних законів статистики і теорії ймовірностей, статистичного аналізу даних і моделювання методом Монте-Карло.

Символьна математика. Додаток Symbolic Math дозволяє виконувати в середовищі Matlab аналітичні обчислення з використанням команд і деяких додаткових спеціалізованих функцій основною символьної бібліотеки програми Maple V.

Ідентифікація систем. Пакет System Identification включає набір засобів, призначених для оцінки та ідентифікації систем. Він дозволяє побудувати математичну модель фізичної системи (наприклад, електричного мотора або навіть фінансового ринку) тільки на основі вхідних і вихідних характеристик.

Елементарні хвилі. Пакет Wavelet містить великий набір програм, які дозволяють підвищити продуктивність методів, які використовують техніку Фур'є-аналізу для вивчення багатомасштабних або нестаціонарних явищ, а також допомагає краще зрозуміти їх. Він застосовується в багатьох додатках обробки сигналів і зображень, включаючи голосову і аудіообработку, в комунікаціях, геофізики, фінансової галузі та медицині.

Simulink - майстерня реального часу. Генеруючи Сі-код прямо з блокових діаграм пакета Simulink, додаток Real-Time Workshop дозволяє створювати безперервні, дискретні і гібридні системи на багатьох комп'ютерних платформах, включаючи апаратуру реального часу.

Така майстерня може бути використана для швидкого створення програмного забезпечення вбудованих контролерів реального часу. Коди для систем обробки цифрових сигналів можуть бути згенеровані, крос-компілювати, пов'язані і завантажені в будь-який обраний користувачем процесор. Майстерня реального часу підтримує плати цифрової обробки сигналів і широкий діапазон продукції, що виготовляється і доступною для користувачів апаратури.

Наукова та інженерна графіка в середовищі Matlab. Графічна система Matlab включає високорівневі команди для двомірної і тривимірної візуалізації даних, обробки зображень, анімації і побудови графіків. Вона містить також низькорівневі команди, які дозволяють повністю налаштувати вигляд графіків, а також створити графічний користувальницький інтерфейс Matlab-додатки.

Двомірні графіки будуються в лінійному, подвійному логарифмічному або напівлогарифмічному масштабі з можливістю зміни кольору (7 кольорів) і виду ліній (безперервна, штрихова, пунктирна, штрих-пунктирна). При точковому зображенні графіка можна вибрати будь-який з 14 різних символів для точок. Система дозволяє розміщувати кілька кривих на одному графіку, змінювати кількість міток на осях, включати в графік найменування осей, титул і легенди для ліній, що розрізняються розміром і зображенням символів.

У тривимірному просторі (рис. 4) користувач може будувати як лінії, так і поверхні, змінюючи при цьому точку спостереження. Для поверхонь налаштовуються способи освітлення, алгоритми забарвлення і зображення тіней.

Для поверхонь налаштовуються способи освітлення, алгоритми забарвлення і зображення тіней

Мал. 4. Для тривимірних поверхонь можна налаштовувати спосіб

освітлення, алгоритми забарвлення і зображення тіней

Поверхня може бути представлена ​​у вигляді дротяного каркаса (команда mesh), в якому зображувані на графіку лінії проходять через задані точки, або у вигляді суцільної поверхні (команда surf). Можливо також подання на одному графіку з поверхнею контурного графіка на площині (команди meshc і surfc відповідно); або її проекції на координатну площину (команда meshz); можна отримати поверхню, освітлену в певному напрямку (команда surf1).

Щоб надати поверхневому графіком реалістичність, використовуються різні схеми освітлення: можна вибрати колір випромінювача (опція AmbientLightColor), потужність випромінювача (опція AmbientStrength), задати дифузне, спрямоване або змішане випромінювання, а також коефіцієнт відбиття поверхні, коефіцієнт забарвлення відбитого світла кольором поверхні, коефіцієнт світіння самої поверхні і т. д. Можливо роздільне завдання кольору поверхні і ребер.

Для камери спостереження задаються наступні параметри: стан камери, вісь спостереження, кут огляду, переміщення камери уздовж осі спостереження або по сцені (наприклад, обертання навколо спостерігається поверхні зі збереженням точки спостереження). Ці переміщення можна записати у вигляді анімації. Зауважимо, що близькі можливості має програма Macsyma, проте там все зазначені команди виконуються безпосередньо в інтерактивному режимі за допомогою кнопок інтерфейсної панелі.

Крім описаних видів графіків програма Matlab пропонує широкий набір спеціалізованих графіків для подання статистичних та інших видів даних. Це різні діаграми (дво- і тривимірні стовпчасті, лінійні, кругові і ін.) І гістограми розподілу, дво- і тривимірні графіки векторних полів, контурні графіки у прямокутній і полярній системах координат.

Як уже згадувалося, можлива анімація. Для цього в Matlab існує два способи. Перший полягає в створенні серії картинок, які потім послідовно показуються у вигляді фільму. Інший спосіб - безперервно прати, а потім знову малювати об'єкт, роблячи невеликі зміни в кожному наступному малюнку.

Що нового у версії 5.х

У Matlab 5.x додані наступні можливості:

- візуалізація даних - нові команди trisurf і trimesh, що дозволяють будувати поверхні і дротяні каркаси з осередків трикутної форми, команда contourf для побудови зафарбованих контурних графіків, а також функція zoom, що дозволяє вести спостереження з заданим коефіцієнтом збільшення;

- нові функції з управління кольором, освітленням, камерою, написами;

- спеціальні графіки - різного виду діаграми і векторні поля.

Потрібно відзначити, що Matlab дозволяє з високою ефективністю створювати програми, які виконуються як у власному середовищі, так і незалежно від неї.

Крім згаданих можливостей мови для створення алгоритмів, система містить також багаті засоби для проектування призначеного для користувача інтерфейсу. Для їх посилення в версію 5.х включений модуль Guide, куди входять такі взаємоузгоджені інструменти (рис. 5):

Мал. 5. Інструменти модуля Guide для створення ГІП

- редактор властивостей для завдання і зміни властивостей складових частин інтерфейсу;

- панель керуючих елементів, що дозволяє включати в інтерфейс і вибирати розташування різних кнопок управління, вікна тексту і списків, рамки, засоби вертикальної і горизонтальної прокрутки;

- редактор команд, що дозволяє для кожного керованого елемента інтерфейсу записати запускається їм програму;

- пристрій для вирівнювання об'єктів інтерфейсу;

- редактор меню для створення рядка меню інтерфейсу.

За простоті і наочності операції, що виконуються при створенні користувальницького інтерфейсу в середовищі Matlab, аналогічні операціям візуального програмування, які виконуються в середовищі програми Visual Basic.

Matlab Notebook

Розповідь про систему Matlab буде неповним, якщо не згадати про новому модулі Matlab Notebook, спрощує роботу в інтерактивному режимі.

Модуль інтегрує Matlab з текстовим процесором Microsoft Word, який доповнює відсутні в системі функції текстового редактора і записи формул з поліграфічною якістю (модуль Microsoft Equation).

Така інтеграція здійснюється з використанням макрокоманд, що входять в спеціальний шаблон документа Matlab Notebook - Notebook.dot. Цей шаблон розроблений для шостий і сьомий версій Microsoft Word, а також для Microsoft Office 97.

За допомогою макрокоманд шаблону в меню панелі інструментів Microsoft Word додається розділ Notebook, що містить команди зі створення обчислюваних розділів документа і виконання обчислень (рис. 6). Для виконання останніх викликається Matlab. Крім того, в розділ File додається пункт New M-book, що дозволяє створювати новий Matlab Notebook, а в розділ Help - пункт About Matlab Notebook.

Matlab Notebook - це не просто запис сесії Matlab з використанням Word-документа. Програма дозволяє прямо в робочому документі виконувати всі команди Matlab (для цього викликається математичний процесор Matlab), отримувати формули і графіки, а також редагувати і повторно обчислювати команди. Word-доповнення Microsoft Equation для запису формул, Microsoft Draw для створення малюнків і Word 7.0 для створення різних стилів оформлення дозволяють професійно оформити звіт про виконану роботу в середовищі Matlab.

Matlab Notebook особливо зручна при оформленні звіту, в якому використовуються обчислення Matlab, так як в ній можна багаторазово редагувати і змінювати один раз записані команди і результати їх виконання. Зображення побудованих графіків також розташовуються в Matlab Notebook (рис. 6).

Мал. 6. Модуль Matlab Notebook інтегрує Matlab і Word

Вхідна в Matlab Notebook система Matlab + Word за можливостями інтерактивного використання і оформлення робочого документа наближається до універсальних математичних пакетів, таким, як Mathematica, Maple і Macsyma.

На жаль, ілюстрації в цій програмі не роздруковуються через помилки в Microsoft Office 97 (як стверджують розробники Matlab), яку незабаром обіцяють усунути.

Іншим недоліком системи Matlab + Word є велика витрата системних ресурсів, в результаті чого, наприклад, на комп'ютері з процесором Pentium і 16 Мб ОЗУ робота виявляється досить повільної і не дуже стійкою.

Висновок

Сучасні програми чисельного моделювання систем і процесів стають все більш автоматизованими, полегшуючи користувачеві процес постановки і вирішення широкого класу складних завдань. Ще більший ефект дають можливості якісного візуального представлення результатів, які весь процес вирішення завдання перетворюють на захоплюючу пригоду.

Серед таких програм, безумовно, одне з лідируючих місць займає система Matlab + Simulink компанії MathWorks, на основі якої розроблено велику кількість професійних додатків для використання в особливих умовах.

Ці додатки, що зібрали досягнення чисельного моделювання певного кола завдань, є не просто набором методів і команд, але, без перебільшення, останнім словом в даному напрямку досліджень.

Програми Matlab, Simulink, а також спеціалізовані додатки до них були представлені компанією SoftLine. Її телефон: (095) 232-0023.

Професійні інструментальні додатки, що зібрали досягнення чисельного моделювання певного кола завдань, є не просто набором методів і команд, але, без перебільшення, останнім словом в даному напрямку досліджень

Версія для друку

Новости
Слова жизни
Фотогалерея