Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ЛЕКЦИЯ 1. function dT=m1(x,T) % функція правої частини диф.рівняння

M4_n.m

M3_n.m

M2.m

M1.m

48.9639

M2.m

M1.m

function dT=m1(x,T) % функція правої частини диф.рівняння

Tzn=10; % температура зовнішнього теплоносія

dT=0.39*(Tzn-T) % рівняння правої частини диф.рівняння

 

В другому файлі m2.m – задаються вихідні дані та початкові умови, а також рішення диференціального рівняння з використанням функції ode23 (або ode45).

L=[0 2];

T0=95;

[x,T]=ode23('m1',L,T0);

plot(x,T)

 

Після цього в робочому просторі MatLab викликаємо 2-й м-файл: m2.

В результаті на екрані з’явиться графік

 

Для визначення значень температури на виході вводимо в робочому просторі MatLab: Т. В результаті на екрані з’являться всі значення Т, отримані при чисельному інтегруванні диференціального рівняння, останнє з яких відповідає значенню температури на виході:

>> T

T =

95.0000

88.6218

82.7223

77.2654

72.2180

67.5494

63.2310

59.2367

55.5421

52.1248

Примітка. Другий м-файл m2.m можна не створювати а ввести команди в робочому просторі MatLab.

2б).Побудова моделі об’єкта з допомогою редактора dee Matlab.

Програма MatLab містить спеціальний блок - Differential Equation Editor (dee – редактор диференціальних рівнянь). З допомогою даного блока можна задавати системи диференціальних рівнянь в явній формі Коші і виконувати їх виконання. Виклик редактора виконується введенням команди dee у робочому просторі MatLab.

Далі даний блок необхідно перенести у вікно з моделлю, що створюється. У вікні настройки даного блока вводяться

 

- # of inputs – розмірність вектора вхідного сигналу,

- first order equations – рівняння першого порядку. У даному вікні необхідно ввести досліджуване рівняння у певній («машинній») формі, в якій жорстко задані назви параметрів, які вводяться у вигляді векторів: u – вхідні параметри, х – параметри стану.

Вихідне рівняння (3) у «машинній» формі (, ) матиме вигляд:

- у вікні - задаються початкові умови.

Після цього необхідно задати проміжок від 0 до 2м знаходження вихідної величини. В данному випадку - це час моделювання, який вибарається через меню: Simulation/Simulation Parameters: де у полях Start time та Stop time встановити відповідно 0 та 2.

 

В результаті отримаємо модель та відповідні результати

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

Наприклад, аналогічною попередній моделі є модель

3. Моделювання теплообмінників типу "труба в трубі" у випадку прямотоку.

 

Рис.1. Схема теплообмінника

 

Рідина охолоджується в теплообміннику типу «труба в трубі». Охолоджувальна рідина і холодоагент рухаються паралельно (прямотоком). Необхідно визначити температури потоків на виході теплообмінника , якщо:

- початкова температура охолоджувальної рідини рівна ,

- початкова температура холодоагенту ,

- густина охолоджувальної рідини і холодоагенту ,

- діаметри труб теплообмінника: внутрішній , зовнішній (для холодоагенту) ,

- довжина теплообмінника ,

- теплоємність рідини і холодоагенту ,

- об’ємна витрата охолоджувальної рідини , холодоагенту ,

- коефіцієнт теплопередачі .

Температурний профіль по довжині для кожного із потоків визначається диференціальним рівняння (16)

,

.

де - площа поверхні теплообміну, - діаметр труби теплообміну, - об’єм речовини,

-швидкість руху речовини.

У данному випадку

- для охолоджувальної рідини:

- для холодоагента

,

де - температури охолоджувальної рідини і холодоагенту.

Отже, для рішення поставленої задачі, необхідно розв’язати систему рівнянь

Після підстановки у систему рівнянь вихідних даних, матимемо

(*)

В Маtlab модель, побудована за рівнянням (*) методом пониження порядку похідної має вигляд

 

 

Вікна настройки відповідних блоків

 

Далі, використовуючи можливості програми Matlab, побудуємо інші типи моделей об’єкта.

Застосуємо функцію ode45 для розв’язання вихідної задачі. Для числового інтегрування системи диференціальних рівнянь в MatLab необхідно створити два м-файла. В перщому файлі m1.m описуються функції для розрахунку правої частини диференціального рівняння.

function dT=m1(x,T)

dT=[2.239*(T(2)-T(1));0.888*(T(1)-T(2))]

 

Можлива інша форма запису файла m1.m, а саме

function dT=m1(x,T)

dT=zeros(2,1);

dT(1)=2.239*(T(2)-T(1));

dT(2)=0.888*(T(1)-T(2));

 

В другому файлі m2.m – задаються вихідні дані та початкові умови, а також рішення диференціального рівняння з використанням функції ode45.

L=1;

T10=179;

T20=15;

[x,T]=ode45('m1',[0,L],[T10,T20]);

plot(x,T)

Т

 

 

Примітка. zeros(М,N) - створює матрицю розміром (М*N) із нульовими елементами, наприклад:

» zeros(3,5)

ans =

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

 

Після цього в робочому просторі MatLab викликаємо 2-й м-файл: m2.

Після цього на екрані з’явиться графік

 

та значення температур

………. ………

66.7216 59.5303

 

Використовуючи блок dee отримаємо модель

 

 

 

Вихідна система рівнянь

у «машинній» формі (, ) матиме вигляд:

у вікні - задаються початкові умови.

 

4. Моделювання теплообмінників типу "труба в трубі" у випадку протитоку.

 

Змоделюємо статичний режим теплообмінника типу «труба в трубі» для випадку протитоку. При цьому приймемо повну довжину теплообмінника . Необхідно визначити температури потоків на виході , якщо:

- початкова температура охолоджувальної рідини рівна ,

- початкова температура холодоагенту ,

- густина охолоджувальної рідини і холодоагенту ,

- діаметри труб теплообмінника: внутрішній , зовнішній (для холодоагенту) ,

- теплоємність рідини і холодоагенту ,

- об’ємна витрата охолоджувальної рідини , холодоагенту ,

- коефіцієнт теплопередачі .

 

 

Рис. Схема теплообмінника

 

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

(1)

(2)

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

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

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

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

В Matlab для розв’язання рівняння () побудуємо 2 файли:

function dT=m3_n(x,T)

ro=900;

D1=0.1; cp=3.35e3;

G1=2.28e-4; G2=5.75e-4;

K=4900;

b1=K*pi*D1/(ro*cp*G1);

b2=K*pi*D1/(ro*cp*G2);

dT=[b1*(T(2)-T(1));-b2*(T(1)-T(2))];

 

L=2.5;

T10=170;

T20=75.2;

[x,T]=ode23('m3_n',[0,L],[T10,T20])

plot(x,T)

 

В результаті

 

x =

0.0641

0.2917

0.5417

0.7917

1.0417

1.2917

1.5417

1.7917

2.0417

2.2917

2.5000

 

 

T =

 

170.0000 75.2000

156.9717 70.0340

118.7705 54.8864

88.3669 42.8307

66.6953 34.2375

51.2480 28.1123

40.2373 23.7463

32.3889 20.6342

26.7946 18.4160

22.8070 16.8348

19.9647 15.7078

18.2324 15.0208

Отже, температури на виході – охолоджувальної рідини – , холодоагенту .

 

5.Моделювання теплообмінників типу "змішування – змішування".

 

Розглянемо перехідний режим теплообмінника типу «змішування – змішування».

Рис. Схема теплообмінника

 

Теплообмінник представляє собою двокамерну ємкість. В першу камеру ємкості поступає охолоджувальна рідина, в іншу – холодоагент. Для забезпечення однорідного розподілу температури по об’єму в камерах встановлені мішалки. При цьму є відомі:

- густина відповідно охолоджувальної рідини та холодоагента, ,

- об’єми камер рівні і складають ,

- об’ємні витрати відповідно теплоносія та холодоагенту, ,

- теплоємність відповідно рідини і холодоагенту , ,

- площа поверхні теплообміну ,

- коефіцієнт теплопередачі ,

- температура охолоджувальної рідини на вході змінюється стрибкоподібно від 115 до , а температура холодоагента від 10 до : , .

Необхідно знайти , , тобто зміну температур обох теплоносіїв на виході із теплообмінника.

У випадку ідеального змішування маємо (рівняння 12,14 лекції 7):

рівняння динаміки

У данному випадку

(1)

- температура рідини і холодоагента на вході в теплообмінник.

Отримана система рівнянь розв’язується при початкових умовах:

, , .

Значення відповідають номінальному статичному режиму (рівняння статики):

(2)

Після підстановки числових значень з умови задачі матимемо:

Після розв’язання даної системи 2-ч рівнянь на 2-і невідомі, отримаємо:

, .

Отже, маємо наступну систему рівнянь із (1):

(3)

при початкових умовах

, .

За рівняннями (3) побудуємо в MatLab модель. Для цього перетворимо систему (3) до виду

 

 

 

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

 


Тема: Візуалізація результатів досліджень об’єктів.

 

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

В мові Matlab є М-файли двох типів:

- Script – файли (файли – сценарії або керуючі програми)

- файл – функції (процедури).

Принципова відмінність Script – файлів та файл – функцій полягає в різному сприйнятті системою імен змінних в цих файлах. У файл-функціях всі імена змінних сприймаються, як локальні, тобто всі

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

ВScript – файлах всі змінні, які використовуються, утворюють так званий робочий простір (work space). Значення та їх зміст зберігаються на протязі всього сеансу роботи з системою, а значить, і при переході від виконання одного Script – файла до іншого. Таким чином, робочий простір є єдиним для всіх Script – файлів, що викликаються в поточному сеансі роботи з системою. Завдяки цьому, довгий Script – файл можна розбити на декілька.

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

Деякі стандартні функції функцій, які використовуються в Matlab:

- Хmin = fmin (‘<назва функції>’, X1, X2) – знаходження мінімуму функції одного аргументу. Результатом такого звернення буде значення Xmin аргументу функції, яке відповідає локальному мінімуму в інтервалі X1<X< X2 функції, заданої М-файлом з вказаною назвою.

- Хmin = fmins (‘<назва функції>’, X0) – знаходження мінімуму функції декількох аргументів, де Х0 означає початкове значення вектора аргументів Х, в околі якого шукається найближчий локальний мінімум функції, заданої М-фалом з вказаною назвою.

- z = fzero (‘<назва функції>’, x0, tol, trace) – знаходження коренів функції одного аргумента.

де х0 - початкове значення аргументу, в околі якого відшукується дійсний корінь функції із значеннями, які обчислюються в М-файлі з заданою назвою; tol – задана відносна похибка обчислення кореня; trace – позначення необхідності виводити на екран проміжні результати; z – значення шуканого кореня.

- fplot (‘<назва функції>’, [<інтервал>], n) – побудова графіків функції однієї змінної,

де <інтервал > - це вектор – рядок із двох чисел, які задають відповідно, нижню і верхню межі зміни аргументу; <назва функції > - назва М – файла з текстом процедури обчислення функції; n – кількість частин, на які буде розбитий вказаний інтервал. Основна відмінність даної функції від функції plot полягає в тому, що для побудови графіка функції немає необхідності в попередньому обчисленні її значень та аргументу.

Для створення файл - функції необхідно в М-файлі написати текст програми, перший рядок якої повинен бути таким:

function [y1,y2,…,yN] = <назва функції>(x1,x2,…,xk),

де x1,x2,…,xk – перелік вхідних величин; y1,y2,…,yN – вихідні величини (кожен з яких може бути матрицею). В найпростішому випадку функції однієї змінної заголовок набуде вигляду:

function y = func (x),

де func – назва функції (М-файла).

В якості прикладу розглянемо створення М-файла для функції: y=d sin2(x). Створивши новий М-файл, записуємо наступний текст:

function y = F1(x,d)

%Процедура обчислення значення функції y=d sin2(x).

% Звернення до неї y = F1(x,d)

y= d* sin(x).^2;

Далі необхідно зберегти цей файл під назвою F1.m. Тепер можна скористатися цією функцією при розрахунках, ввівши команду, наприклад y=F1(1,0.1), тобто вхідною величиною є х =1 та d=0.1. Можна також в якості вхідної величини х вибрати деякий вектор значень.

Щоб отримати інформацію про створену функцію, достатньо: набрати команду help f1 і командному вікні з’явиться повідомлення “Процедура обчислення значення функції y=d sin2(x). Звернення до неї y = F1(x,d).»

Основні особливості оформлення М-файлів:

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

- можна записувати декілька операторів в одному рядку, тоді попередній оператор цього рядка повинен закінчуватися символом “;”. Якщо оператор не закінчується символом “;”, то результат його дії при виконанні програми буде виведений в командне вікно;

- довгий оператор може записуватися в декілька рядків. При цьому попередній рядок оператора повинен закінчуватися трьома крапками (...);

- рядок програми, що починається з символу “%”, не виконується. Цей рядок сприймається як коментар;

- коментар, що передує першому оператору програми, сприймаються як опис програми. Саме такий коментар (або коментарі) виводяться в командне вікно, якщо в ньому набрана команда: help<назва файла>;

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

- всі змінні не описуються. Будь – яке нове ім’я що з’являється в тексті програми, сприймається системою Matlab як назва матриці. Розмір цієї матриці встановлюється при попередньому введенні значень її елементів або визначаються діями по встановленню значень її елементів, описаними в попередньому операторі або функції.

- назви змінних можуть містити лише букви латинського алфавіту або цифри і повинні починатися з букви. Загальне максимальне число символів в назві – 19. Також розрізняються великі та малі символи.

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

Основні особливості Script – файлів:

- Script – файли є незалежно виконуваними блоками операторів і команд;

- відсутній заголовок, тобто перший рядок певного вигляду та призначення;

- звернення до Script – файла не вимагає вказування ніяких імен змінних: всі змінні формуються в результаті виконання програми або сформовані раніше і існують в робочому просторі.

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

Функції для виведення і введення інформації в діалоговому режимі:

- sprintf(‘ T %g’, x)- створення текстового рядка, що складається із тексту та значення змінної;

де “T” – змінна текстового типу; х – змінна числового типу;

- disp (sprintf(‘ T %g’, x)) - виведення на екран одночасно тексту і значень змінної х,

- disp ([‘T’, num2str(x)]) – виведення на екран одночасно тексту і значень змінної х, при цьому функція num2str перетворює дані числового типу в текстовий;

х=input (‘T’) – введення даних з клавіатури та присвоєння змінній х;

x=input ([ sprintf (’ T %g’, x1),‘T’]) - виведення на екран одночасно тексту і значень змінної х та запрошення для введення даних з клавіатури та присвоєння змінній х;

pause – призупинення програми до натиснення будь-якої клавіші;

keyboard – призупинення роботи програми та передання управління клавіатурі. В цьому режимі користувач може здійснювати будь-які дії, провіряти або змінювати дані. Для закінчення даного режиму необхідно ввести команду return. Тоді система продовжить роботу програми з оператора, який слідує за командою keyboard.

k=menu (‘Заголовок’,’а1’,’а2’,…,’аn’) – створення меню користувача,

де а1, а2,..., аn – варіанти вибору, які з’являються на екрані у вигляді меню. Вибравши певний варіант, його номер присвоюється змінній k (наприклад, вибравши am, k=m). Дану команду зручно використовувати для створення розгалужень в програмі. Наприклад:

Файл Scr_f

k=1;

while k==1;

k=menu (‘Що робити?’,’Продовжити роботу Scr_f’,’Закінчити роботу Scr_f’)

end

За наявності такого Script-файла Scr_f1, на екрані з’явиться меню: “продовжити роботу Scr_f” або “закінчити роботу Scr_f ”. Вибираючи перший варіант, k=1 та буде повторне виконання деякого Script-файла Scr_f. Вибравши другий варіант – програма припинить роботу.

Розглянемо, як з допомогою команди menu можна організувати зміну даних в діалоговому режимі. За наявності такого Script-файлу Scr_f2:

х1=-1; х2=2;

k=1;

while k<3

k=menu (‘ Що змінювати?’, sprintf (’ Параметр x1= %g’, x1),…

sprintf (’ Параметр x2= %g’, x2),…

’Нічого не змінювати ’);

if k==1,

x1=input ([ sprintf (’ Поточне значення x1= %g’, x1),...

‘ Нове значення х1=’]);

elseif k==2

x2=input ([ sprintf (’ Поточне значення x2= %g’, x2),...

‘ Нове значення х2=’]);

end

end

на екрані з’явиться меню, в якому будуть відображені також поточні значення параметрів х1, х2, а також з’явиться можливість змінити значення параметрів х1 та х2.

 

Приклад.

Побудувати меню для дослідження передаточної функції об’єкта

Розв’язання

Пояснення до функцій, що використовуватимуться для дослідження об’єкта:

% введення передаточної функції: W=tf(10,[120,1]);

% знаходження матриці рівнянь простору стану: WM=ss(W); [A,B,C,D]=ssdata(WM);

% знаходження полюсів і нулів об’єкта: [z, p, k]= zpkdata (W, 'v');

%побудова карти розміщення нулів і полюсів системи: pzmap (W);

%побудова імпульсної характеристики: impulse(W);

% побудова перехідної характеристики: step (W);

%визначимо реакцію системи на вхідне збурення довільної форми.

Для цього задамо вектор t значень часу, в яких будуть задані значення вхідної дії, а також відповідний вектор u значень вхідної величини у вказані моменти часу: t=0: 0.01: 40; u=sin (t); lsim (W, u, t);

% побудова АЧХ та ФЧХ: bode (W);

% побудова карти Нікольса об’єкта: nichols (sys);

 

M-файл S3.m матиме вигляд:

%початкові значення

b=10;a=[120,1];

W=tf(b,a);

k=1;

while k<13

k=menu('Передаточна функц. W',...

sprintf('Параметр b=%g',b),...

sprintf('Параметр a1=%g',a(1)),...

sprintf('Параметр a2=%g',a(2)),...

sprintf('Побудова матриць стану'),...

sprintf('Побудова полюсів нулів'),...

sprintf('Карта полюсів нулів'),...

sprintf('Побудова імпульсної характеристики'),...

sprintf('Побудова перехідної характеристики'),...

sprintf('Побудова реакц. обєкта'),...

sprintf('Побудова AЧХ ФЧХ'),...

sprintf('Побудова карти Нiкольса'),...

sprintf('Модель Simulink'),...

'Вихід');

if k==1

b=input([sprintf('b=%g',b),'Nove b=']);

W=tf(b,a)

elseif k==2

a(1)=input([sprintf('a1=%g',a(1)),'Nove a1=']);

W=tf(b,a)

elseif k==3

a(2)=input([sprintf('a2=%g',a(2)),'Nove a2=']);

W=tf(b,a)

elseif k==4

WM=ss(W);[A,B,C,D]=ssdata(WM)

elseif k==5

[z,p,k]=zpkdata (W, 'v')

elseif k==6

pzmap (W)

elseif k==7

impulse(W)

elseif k==8

step (W)

elseif k==9

t=0: 0.01: 40; u=sin (t); lsim (W, u, t)

elseif k==10

bode (W)

elseif k==11

nichols (W)

elseif k==12

model

end

end

Після запуску файла на виконання отримаємо наступне меню:

<== предыдущая лекция | следующая лекция ==>
Федеральний уряд | Тема: Информация и информационные процессы в организационно-экономической сфере
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 575; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.23 сек.