Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Додаток В






Інтегрована система автоматизації

математичних та науково-технічних розрахунків MATLAB

MATLAB (MATrix LABoratory – матрична лабораторія) – одна з найдавніших, ретельно пророблених і апробованих систем автоматизації математичних розрахунків. Вона побудована на розширеному поданні матричних операцій. Але синтаксис мови програмування системи продуманий наскільки ретельно, що матричне спрямування MATLAB не відчувається користувачами, яких не цікавлять матричні обчислення.

Система MATLAB з точки зору її розробників пропонується, як мова програмування високого рівня для математичних та науково-технічних обчислень. Вона відобразила в собі не тільки весь досвід розвитку та комп‘ютерної реалізації чисельних методів за останні три десятиліття, а і досвід розвитку математики за всю історію Людства. Системою користуються більш ніж 500 000 тисяч легально зареєстрованих користувачів.

Система MATLAB має на сьогоднішній день 12 реалізацій, 12-а реалізація відома як версія 6.0. Розробник системи фірма – MathWorks. Inc – піклуючись про рейтинг системи доповнила її пакетами програм, що призначені для розв‘язання складних сучасних технічних задач (таблиця В1).

 

Перелік основних програмних продуктів класу MATLAB.

Таблиця В1

Назва пакету програм Призначення.
     
  MATLAB for Windows Ядро системи, основні бібліотеки для розв‘язання науково-технічних, інженерних та математичних задач
  а) MATLAB Compiler Компілятор для програм на мові програмування системи MATLAB. Транслює коди цих програм в програми на мові С. Застосування компілятора забезпечує можливість створення виконуваних кодів (програм), час виконання яких для програм з великим числом циклічних операцій зменшується у 10-15 раз.
     
  б) MATLAB C Math Library Бібліотека додаткових математичних функцій на мові С, що розширює можливості базової системи по розв‘язанню математичних задач.
  в) MATLAB C++ Math Library Бібліотека додаткових математичних функцій на мові С++, що є більш сучасним варіантом мови С. Бібліотека розширює можливості базової системи по розв‘язанню математичних задач.
  Simulink for Windows Система імітаційного моделювання моделей, що складаються з графічних блоків із заданими властивостями (параметрами). Компоненти моделей можуть бути одиничними графічними блоками та субмоделями, з особистою структурою та зв‘язками. До складу моделей можна включати з бібліотеки Simulink джерела сигналів різного виду, віртуальні реєструючі пристрої, графічні засоби анімації.

 

 

     
  Simulink Real Time Workshop (RTW) Підсистема імітаційного моделювання в реальному масштабі часу (при наявності додаткових апаратних засобів у вигляді плат розширення ПК), що підключається до Simulink.
  Excel Link Програмний засіб для створення інтерфейсу зв‘язку з табличним процесором класу Excel, створених фірмою Microsoft Inc. Пакет забезпечує двосторонній зв‘язок та обмін даними, перегляд, редагування та обробка даних з середовища MATLAB в Excel, підготовка Excel-додатків та ін.
  NAG Foundation Toolbox Одна з найбільших бібліотек математичних функції, створена групою The Numerical Algorithms Group Ltd. Пакет вміщує понад 240 функцій, організованих у вигляді М-файлів.
  Neural Networks Toolbox Пакет прикладних програм, що має засоби для побудови нейронних мереж, які ґрунтуються на поведінці нейрона. Пакет забезпечує ефективну підтримку проектування, навчання та моделювання багатьох відомих мережевих парадигм, від базових моделей персептрона до найсучасніших асоціативних та самоорганізуючихся мереж. Пакет застосовується для обробки сигналів, нелінійного управління, фінансового моделювання та ін.
  Spline Toolbox Пакет прикладних програм для роботи зі сплайнами. Підтримує одновимірну та багатовимірну сплайн-інтерполяцію, апроксимацію. Забезпечує подання і відображення складних масивів даних і підтримку графіки.
  Statistics Toolbox Пакет прикладних програм по статистиці. Вміщує великий набір засобів генерації випадкових чисел, векторів, матриць та масивів з різними законами розподілу, а також великий набір статистичних функцій. Має кілька інтерактивних інструментів для динамічної візуалізації та аналізу даних.
  Optimization Toolbox Пакет прикладних програм для розв‘язання задач оптимізації і систем нелінійних рівнянь.
  Fizzy Logic Toolbox Пакет прикладних програм для розв‘язання задач, що стосуються теорії розмитих множин.
  Partial Differencial Equations Toolbox Пакет прикладних програм для розв‘язання систем диференційних рівнянь у частинних похідних. Надає ефективні засоби для розв‘язання систем диференційних рівнянь, у тому числі і жорстких. В пакеті використовується метод кінцевих елементів.
  Symbolic Math Toolbox Пакет прикладних програм для розв‘язання задач у символьному (аналітичному) вигляді, з реалізацією точної арифметики довільної розрядності.
  Control System Toolbox Пакет для моделювання аналізу і проектування систем автоматичного керування: безперервних та дискретних.
  Nonlsnear Control Design Toolbox Пакет призначений для побудови нелінійних систем контролю та управління. Він реалізує метод динамічної оптимізації для систем керування.
  Robust Control Toolbox Пакет має звсоби для проектування і аналізу багатопараметричних стійких систем керування. Це системи з модельними похибками, динаміка яких відома не повністю чи параметри яких можуть змінюватися в процесі моделювання.

 

     
  LMI Control Toolbox Пакет забеспечує інтегроване середовище для постановки і розв‘язання задач лінійного програмування. Призначений попередньо для проектування систем керування, пакет дозволяє розв‘язувати будь-які задачі лінійного програмування практично в будь-якій сфері діяльності.
  System Identification Toolbox Пакет вміщує засоби для створення математичних моделей динамічних систем на основі спостереження вхідних-вихідних даних.
  Signai Processing Toolbox Пакет призначений для аналізу, моделювання та проектування пристроїв обробки різноманітних сигналів, забезпечення їх фільтрації та інших перетворень.
  Image Processing Toolbox Пакет подає широкий спектр засобів для цифрової обробки і аналізу зображень.
  Wavelet Toolbox Пакет подає повний набір програм для дослідження багатовимірних нестаціонарних явищ. Методи пакету розширюють можливості користувача в тих областях, де зазвичай застосовується техніка Фурьє-розкладань. Пакет може застосовуватися для обробки звуків мови і аудиосигналів, телекомунікації, при вирішенні задач геофізики, фінансів, медицини.

 

 

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

 

Програмування в системі MATLAB.

 

Програмами в MATLAB є М-файли текстового формату, які вміщують запис програми у вигляді програмних кодів. Засоби мови програмування MATLAB:

§ дані різних типів,

§ константи і змінні,

§ оператори, в тому числі і оператори математичних виразів,

§ вбудовані команди і функції,

§ функції користувача,

§ керуючі структури,

§ системні оператори і функції,

§ засоби розширення мови.

 

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

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

· ретельним відпрацюванням системи контролю синтаксису програм в режимі інтерпретації.

Інтерпретація значить, що MATLAB не створює виконуваних кінцевих програм. Вони існують у вигляді М-файлів. Для виконання програм необхідно знаходитися у середовищі MATLAB. Але для програм на мові MATLAB створені компілятори, що транслюють програми MATLAB в коди мови програмування С та С++. Це вирішує завдання створення виконуваних програм, що на початку створюються у середовищі MATLAB.

 

Основні типи даних.

 

Структура типів даних системи MATLAB подана на рис.1.

    array    
char   numeric   cell struct
double   unit8    
  sparse        

Рис. 1. Структура типів даних в MATLAB.

 

Типи даних array та numeric є віртуальними, оскільки до них не можна віднести, будь-які змінні. Вони служать для визначення і комплектування деяких типів даних.

Таким чином, в MATLAB визначені шість основних типів даних, що є багатовимірними масивами:

§ double – числові масиви з числами подвоєної точності,

§ char – рядкові масиви з елементами-символами,

§ sparse – розріджені матриці з елементами-числами подвоєної точності,

§ cell – масиви комірок, котрі у свою чергу можуть бути масивами,

§ struct – масиви записів з полями, які також можуть вміщувати масиви,

§ unit8 – масиви 8-розрядних цілих чисел без знаків (математичні операції з ними не передбачені), застосовуються для службових цілей.

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

Кожному типу даних відповідають деякі характерні для нього операції, що називаються методами. Дочірні типи даних, що розташовані на рис.1 нижче батьківських типів, наслідують від останніх їх методи, що є ознакою наслідування об‘єктів. Начолі ієрархії типів даних знаходяться дані типу array, а значить, що всі види даних в MATLAB є масивами.

 

Мова програмування MATLAB включає в себе всі засоби, що необхідні для реалізації різних видів програмування:

· процедурного,

· операторного,

· функціонального,

· логічного,

· структурного (модульного),

· об‘єктно-орієнтованого,

· візуально-орієнтованого.

 

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

Об‘єктно-орієнтоване програмування також широко представлене в системі MATLAB. Воно особливо проявляється при програмуванні задач графіки. Візуально-орієнтоване програмування в MATLAB представлено, в основному, в пакеті Simulink при моделюванні заданих блоками пристроїв та систем.

 

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

Функція перетворює одні дані у інші. Для багатьох функцій характерне повернення значень у відповідь на звертання до них зі вказівкою списку вхідних параметрів. Наприклад: sin(х). Більшість функцій можна використовувати в арифметичних виразах.

Для операторів (а також команд), які не повертають значення, їх застосування в арифметичних виразах абсурдно. Наприклад: вираз 2*рlot(х, у), де рlot(х, у) – оператор побудови графіка функцій, буде сприйнятий системою як помилка.

Всі функції, що повертають єдине значення (чи один масив), записуються малими буквами:

f_name(Список_параметрів)

Функції, що повертають ряд значень чи масивів, наприклад Х, Y, Z, записуються так:

[X, Y, Z, …]=f_name(Список_параметрів)

 

Оскільки мова програмування системи MATLAB орієнтований на структурне програмування, у ньому немає номерів рядків і програмних операторів безумовного переходу GOTO. Є лише керуючі структури наступних типів:

§ умовні вирази if…else…elseif…end,

§ цикли for…end, while…end,.

Їх форма схожа на використовувану в мові Pascal (область дії керуючих структур виділяється їх заголовком і словом end, але без слова begin).

Для дострокового завершення функції і виходу з неї використовуються інструкції return та break.

Ще один оператор розгалуження є оператор переключення switch…case…otherwise…end. Рядків з ключовим словом саsе може бути багато, а рядок з ключовим словом otherwise повинен бути один.

 

Для створення М-файлів використовують як вбудований редактор системи, так і будь-який текстовий редактор, що підтримує формат ASCII. Підготований і записаний на диск М-файл стає частиною системи. Його можливо викликати як з командного рядка, так і з іншого М-файлу. Розрізняють два типи М-файлів: файли-сценарії та файли-функції. В процесі свого створення вони проходять синтаксичний контроль за допомогою вбудованого в систему MATLAB редактора і відладчика М-файлів.

Файл-сценарій (Script-файл) – запис серії команд без вхідних і вихідних параметрів. Він має наступну структуру:

%Основний коментар

%Додатковий коментар

Тіло файла з будь-якими виразами.

Властивості файлів-сценаріїв:

· вони не мають вхідних і вихідних аргументів, змінні цих файлів є глобальними,

· працюють з даними з робочої області,

· в процесі виконання не компілюються,

· є зафіксованою у вигляді файлу послідовністю операцій, повністю аналогічною тій, що використовується у робочій області.

Наприклад, побудуємо файл сценарію з назвою p_red, що будує графік синусоїди червоною лінією:

%Plot with color red

% Будує графік синусоїди лінією червоного кольру

%с виділеною масштабною сіткою в інтервалі [xmin, xmax]

x=xmin: 0.1: xmax;

plot (x, sin(x), ’r’)

grid on

В даній програмі перші три рядка є коментарями: перший рядок – основний коментар, який виводиться при виконання команд lookfor та help ім‘я_каталогу. Повний коментар виводиться при виконанні команди help ім‘я_файлу. Знак % повинен починатися з першої позиції рядка, інакше коментар не сприйматиметься командою help і може видавати помилку. Далі у прикладі йде безпосередньо перелік операцій. Для того, щоб скористатися файлом необхідно задати початкові дані (перегляд файлу – команда type p_red) і звернутися до файлу:

> > xmin=-10;

> > xmax-10;

> > p_red

 

M-файл-функція є об‘єктом мови програмування системи MATLAB. Файл-функція є повноцінним модулем з точки зору структурного програмування, оскільки вміщує вхідні та вихідні параметри і використовує апарат локальних змінних. Структура такого модуля виглядає так:

function var=f_name(список_параметрів)

%Основний коментар

%Додатковий коментар

Тіло файлу з будь-якими виразами

var=вираз

 

Файл-функція має наступні властивості:

· починається з об’явлення типу function, після якого вказується ім‘я змінної – вихідного параметру, ім‘я самої функції та список її вхідних параметрів,

· функція повертає своє значення і може використовуватися у вигляді f_name(список_параметрів) в математичних виразах,

· всі змінні, що використовуються у тілі функції є локальними, тобто діють тільки у межах функції,

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

· правила виводу коментарів ті ж, що і у файлів-сценаріїв,

· файл-функція є засобом розширення системи MATLAB,

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

 

Остання конструкція var=вираз вводиться, якщо треба, щоб функція повертала результат обчислень. Якщо файл-функція завершується рядком із точкою з комою (;), то для повертання значення функції використовується програмний оператор return.

Якщо функція має більше одного вхідного параметра, то вони вказуються у квадратних дужках після слова function. Структура такого модуля має вигляд:

function [var1, var2, …]=f_name(список_параметрів)

% Основний коментар

% Додатковий коментар

Тіло файлу з будь-якими виразами

var1=вираз

var2=вираз

…………...

Така функція нагадує повноцінну процедуру. Її не можна використовувати безпосередньо в математичних виразах, оскільки вона повертає не єдиний результат, а їх множину. Тому функція використовується як окремий елемент програм виду:

[var1, var2, …]=f_name(список_параметрів)

Після застосування елементу вихідні змінні стають визначеними і їх можливо використовувати в подальших математичних обчисленнях та інших сегментах програми.

Змінні у файлах-сценаріях є глобальними, а у файлах-функціях – локальними. Застосування глобальних змінних у програмних модулях може приводити до небажаних результатів, але у деяких випадках застосування глобальних змінних у файлах-функціях є більш ефективним. Відповідальність за безпомилкову роботу в таких випадках бере на себе програміст.

Об‘являє змінні модуля функції глобальними команда:

global var1 var2 …

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

function [mean, stdev] = statv(x)

%Statv Interesting statistics.

%Приклад функції з вбудованою підфункцією

n = length (x)

mean = avg(x, n)

stdev = sqrt(sum ((x-avg(x, n)).^2)/n)

%______________________________

function m = avg(x, n)

%Mean subfunction

m = sum(x)/n;

У цьому прикладі середнє значення елементів вектора х знаходиться за допомогою підфункції avg(x, n), тіло якої записано в тілі основної функції statv. При використанні функції statv отримаємо наступні результати:

> > V=[1 2 3 4 5]

V =

1 2 3 4 5

> > [a, m]=statv(V)

a =

m =

1.4142

> > statv(V)

ans =

> > help statv


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.023 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал