Главная » Просмотр файлов » Mоделирование процессов и систем в Matlab

Mоделирование процессов и систем в Matlab (966709), страница 20

Файл №966709 Mоделирование процессов и систем в Matlab (Моделирование процессов и систем в Matlab) 20 страницаMоделирование процессов и систем в Matlab (966709) страница 202013-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 20)

п. Создание функций от функций На практике довольно часто возникает необходимость создавать подобные собст- венные процедуры. МАТ?АВ предоставляет такие возможности. Процедура 1еча1 В МАТ1.АВ любая функция (процедура), например с именем Г))й1, может быть выполнена не только с помощью обычного обращения: Ь1.У2...УК1 = ГСНих1.х2,....хп) Ее также можно выполнить посредством специальной процедуры Сееа1: Ь1.у2..ух) = Гека)('Г))И1'.х1.х2....,хп) В этой процедуре имя функции Г))й1 является уже одной вз входных переменных — текстовой (и поэтому помещается между двумя апострофами). Преимуществом второго варианта вызова функции является то, что в этом случае не меняется форма обращения к ней при изменении ее имени, например на ГФ2.

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

Поскольку при вызове функции с помощью процедуры тека) имя функции рассматривается в качестве одного из входных параметров процедуры, то оно (имя функции) используется как переменная. Поэтому можно оформлять в М-файле обращение к данной функции, не зная еще ее имени. Примеры создания функций от функций Рассмотрим на примерах особенности создания собсгвенных функций от функций. Процедура для метода Рунге-Купа 4-го порядка численного интегрирования ОДУ Допустим, что задана система обыкновенных дифференциальных уравнений (ОДУ) в форме Коши: — = а(у г)) а(у зй где у — вектор переменных состояния системы; г — аргумент (время); 2 — вектор заданных (в общем случае нелинейных) функций, которые, собственно, и определяют конкретную систему ОДУ. Если значение вектора у в момент времени г известно, то общая формула, по которой может быть найден вектор у, значений переменных состояния системы в момент времени г, - г + А (где Ь вЂ” шаг интегрирования)„имеет такой вид: у, -у+АР(уФ).

108 Урок 2 ° Протрамиирование в среде МАТ(АВ Функция Г(у,г), связанная с вектором Е, может принимать разный вид в зависимости от выбранного метода численного интегрирования. Для метода РунгеКутта 4-го порядка выберем следующую ее форму: Р -(й,+зй,+зй,+й,)/В, где )гт = Е(у,с); й, - цу+ Ий,/3, с+ й/3); $(з = Х(у + Нсз Ист/3, г + 2Ь/3); й, -К(у+йй, -йй,-ййпг+й), Создадим М-файл процедуры, осуществляющей эти вычисления; назовем его т((о43: Гипс(топ (свис.уоцг) - гхо43(7ртцп,дд .у) ЙЯКО43 Интегрирование ОДУ нетодон Рунге-Кутта 4-то порядка, 3 правые части которых заданы процедурой 7ртцп $ Входные перененные: $ 7ртып — строка синволов, которая содервит иня процедуры вычисления правых частей ООУ д Обращение: г - тцп(г,у).

где 7р/цп - 'тцп': д à — тенущий нонент вренени; 3 у — вектор текущих значений перененних состояния: д г — вычисленные значения производных г(т) - бу(т)/бг в П вЂ” иат интегрирования; д С вЂ” предыдущий нонент врененн; 3 у — предыдущее значение вектора перененных состояния $ Выходные перененные: д Сонг — новый ионент времени: д уоиг — вычисленное значение вектора у через иат $ Расче~ проиеяуточных значений производных Я1 - теча)(7р(опл,у): 'к2 - /еча)(7р(цп.с + П/З,у + П/3'$т1): хЗ - Гена)(7ртцпД + 2'Д/З.у + пий2 - Ц/3'к1); К4 - Гека)(7р(ипд + п„у + п*(КЗ + Я1 - К2)): $ Расчет новых значений вектора переменных состояния гонг = г + ц; усцг - у + ц*(К1 + Зяй2 + ЗийЗ + й4)/В; з Конец процедуры ЯКО43 Обратите внимание на такие обстоятельства: О обращение к процедуре вычисления правых частей ие конкретизировано; нмя этой процедуры является одной из входных переменных процедуры интегрирования и должно быть конкретизировано лишь при вызове последней; О промежуточные переменные Я являются векторами-строками (как и переменные у и 2, вычисляемые в процедуре правых частей).

Процедура вычисления правых частей Оду маятника Рассмотрим процесс создания процедуры вычисления правых частей ОДУ на примере уравнения движения маятника, точка подвеса которого поступательно перемещается со временем по гармоническому закону: ./ тр+ 47/р+ тттл/(1+ и зщ(тот+ гу ))яптр = — ттфп зш(отг+ в„)сов та Создание функций от функций где: / — момент инерции маятника; >т — коэффициент демпфироваиия; гпф — козффициеит жесткости; и„— амплитуда виброперегрузки точки подвеса маятника в вертикальном направлении; я — амплитуда виброперегрузки в горизонтальном направлении; тр — угол отклонения маятника от вертикали; о> — частота колебаний точки подвеса; е г.

— начальные фазы колебаний точки подвеса в горизоптальиом и вертикальном направлениях. Чтобы составить М-файл процедуры вычисления правых частей задаииой системы ОДУ, прежде всего надо привести исходную систему ОДУ к форме Коши. Для этого введем обозначения: у! >р уз Ф Тогда исходное уравнение движения маятника можно представить в виде совокуп- насти двух дифференциальных уравнений 1-го порядка — = Уз' (у> г>г — = [-тай(яг»» Б>п (о> г + е» )сов (У> ) — гтуг — тпй[[1+ и!»г 5>п (о>г + ед ) зш(у> )) / ). >туг Сравнивая полученную систему с общей формой уравнений Коши, мож>ю сде- лать вывод, что г> =уз; гг = [-тлф п~ з(п(о>1+ е )соз(У> ) — )(Уг — птф[1+ т> г зш(о>г е ед )[ып(У> )) //.

Вычисление именно этих двух функций должно выполняться в процедуре вычислеиия правых частей. Назовем будущую процедуру гИО. Выходной переменной в ией будет вектор г=(г). 22), а входными переменными — момент времени 1 и вектор у-(у1.у2). Определеииую сложность представляет то, что постоянные козффициеиты, находящиеся в правых частях, иельзя передать в процедуру через ее ззголоаок Поэтому обьедииим зти коэффициенты в вектор К=(,),й,од),поу.

пвх,оо.еу,ех) и отнесем этот вектор к категории глобальных: д)оЬа1 К. Тогда М-файл будет иметь следующий вид: гцпсгтоп г гиО(г.у): г Процедура правых частей уравнения физического иаятника г Осунествпяет расчет вектора г" производных г от вектора "у" переиенных состояния по форнулан: г г(1) " у(2): г г(2) - (-ад!*овх'втп(ов 1 + ех)"сов(у(1)) — а"у(2)-..

г ад)*( 1 + пау"зтп(ояяг + еу))"зтп(у(1)))гц г козффициенти передаются в процедуру через гпобапьныд вектор г К - (З.д,зд).оту.пох.ов.еу.ех) О1оЬа! К 7(1) у(2); г(2) " (-К(3)"К(5)*зтп(К(6)ьг + К(З))"соз(у(1)) - К(2)"у(2) †.. К(З)*(1 + К(4)*юп(К(б)яг + К(7)))язтп(у(1)))>К(1); г конец процедуры гиО ыо Урок 2 ° Программирование а среде МАТ(ДВ При использовании этой процедуры следует помнить, что в тексте программы предварительно должен быть объявлен глобальный вектор К с помощью служебного слова д1ОЬа1, а потом определены все восемь его элементов. Данную процедуру можно несколько усложнить, сгруппировав вычисления всех внешних моментов сил, кроме момента сил тяготения, н оформив их как отдельную процедуру.

Для этого сначала преобразуем исходное уравнение, записывая его в таком виде: ~р" + зш~р = Я(т, фч йт'), где штрих обозначает производную по безразмерному времени т = итог, (Я а 5(т,д, ~р') — некоторую заданную функцию безразмерного времени, угла поворота маятника и его безразмерной скорости вар (р = —. гтт В рассматриваемом случае эта функция приобретает такой вид: Я(Кфчяр') = — 2~1р' — (нмя яп(ъ"'с+ ея)сов яр+ Вин яп(от+ еу )51пф), причем безразмерные величины г", и т определяются следующими выражениями: Я го 2 ч(тгтдт' ) ота такая безразмерная форма представления уравнений является предпочтительной, поскольку позволяет сократить количество параметров (в нашем случае вместо трех размерных параметров.)', (т и ац( остался один — т",), а также получить решение уравнения в более общей форме.

Вынесение вычисления моментов внешних действий в отдельную процедуру позволяет также сделать процедуру вычисления правых частей уравнения маятника более общей, если обращение к процедуре вычисления моментов тоже осуществлять через функцию Кеча1. Создадим процедуру Моягв1, которая будет вычислять моменты сил, действующих на маятник: топот)оп и мовтм1(т.у) $ Вичисление клиентов сип. действуощнх на физический иаятник $ Осуществляет расчет нонента "в" сил К по форнуле: $ и - -2"Йяу(2) - (пвхяятп(поят + ех)ясов(у(1)) +... К + пв(тпятп(почт + еу)чзтп(у(1)) К Козффициенти передается в процедуру через глобальний вектор К КМ1 - Иг.пиу.пих.пц.еу.ех) д1оЬа1 КМ1 В - -2ЯКМ1(1)"у(2) — (КМ1(З)чято(КМ1(4)'С + КМН6))ЯСОЗ(у(1)) +...

(падании функций ат функций 111 КМН2)шип(КМ1(4)*С + КМ1(5))вип(у(1))): $ Конец процвдуры МатРМ1 Теперь следует перестроить процедуру правых частей. Назовем этот вариант ГМ1т йасттоп т - ЕМ1(шртмп.т.у) т процедура правих частей уРавнения Физического наятника $ Осуцествляет расчет вектора з" производных д векторов "у" перененных состояния по Ворнулан: т(1) - у(2); т т(2) -втп(у(1)) + 5(т.у) т Входные параметры: т шрттю — иня процедуры 5(т.у); Ф шр(ыт - '5'. Ф С вЂ” текуций ноиент вренени: т у — текуцее значение вентора переиеннмх состояния $ Выхаюае паранетрн: д т — вектор значений производных от перененных состояния т(1) у(2); И2) " -ятп(у(1)) + теча)(шртмл,т.у): т конец процедуры ГМ1 Поскольку вид обращения к процедуре вычисления правых частей изменился (добавлена новая входная переменная — имя процедуры вычисления моментов), необходимо перестроить также процедуру численного метода.

Назовем ее КК043щ: йюсттап (том(.улиц - гко43ш(2ртоп. Мрйю.П.С.у) ВКК043ш Интегрирование ОДу нетодон Рунге-Кутта 4-го порядка. $ правые части котормх заданы проыедурани тртып и Мртып д Входные параметры: й тртмп — строка синволов. которая совершит иня прокедуРы 3 вычисления правых частей Ойу т Обращение: з - йю(мртгю,т,у). д где тртып - 'тта '.

Характеристики

Тип файла
DJVU-файл
Размер
13,98 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее