Simulacije dinamičkih sustava u programskom jeziku Python

Similar documents
ODREĐIVANJE DINAMIČKOG ODZIVA MEHANIČKOG SUSTAVA METODOM RUNGE-KUTTA

The Shooting Method for Boundary Value Problems

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

Quasi-Newtonove metode

METODE ZA IDENTIFIKACIJU PARAMETARA ASINKRONOG MOTORA

Geometrijski smisao rješenja sustava od tri linearne jednadžbe s tri nepoznanice

TEORIJA SKUPOVA Zadaci

ON THE TWO BODY PROBLEM UDC (045)=20. Veljko A. Vujičić

Primjena numeričke metode Runge-Kutta na rješavanje problema početnih i rubnih uvjeta

A Glimpse at Scipy FOSSEE. June Abstract This document shows a glimpse of the features of Scipy that will be explored during this course.

Teorem o reziduumima i primjene. Završni rad

FTN Novi Sad Katedra za motore i vozila. Drumska vozila Uputstvo za izradu vučnog proračuna motornog vozila. 1. Ulazni podaci IZVOR:

MINIMAKS OPTIMALNO UPRAVLJANJE NELINEARNIM DINAMIČKIM SUSTAVIMA

PRIPADNOST RJEŠENJA KVADRATNE JEDNAČINE DANOM INTERVALU

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje DIPLOMSKI RAD. Vladimir Milić. Zagreb, 2008.

Šime Šuljić. Funkcije. Zadavanje funkcije i područje definicije. š2004š 1

Mathcad sa algoritmima

Hamilton Jacobijeva formulacija klasične mehanike

LINEARNI MODELI STATISTIČKI PRAKTIKUM 2 2. VJEŽBE

Zlatko Mihalić MOLEKULARNO MODELIRANJE (2+1, 0+0)

MAS212 Scientific Computing and Simulation

U čemu je snaga suvremene algebre?

Pellova jednadžba. Pell s equation

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku DIOFANTSKE JEDNADŽBE

RELIABILITY OF GLULAM BEAMS SUBJECTED TO BENDING POUZDANOST LIJEPLJENIH LAMELIRANIH NOSAČA NA SAVIJANJE

ANALYSIS OF THE RELIABILITY OF THE "ALTERNATOR- ALTERNATOR BELT" SYSTEM

STATISTICAL ANALYSIS OF WET AND DRY SPELLS IN CROATIA BY THE BINARY DARMA (1,1) MODEL

Modified Zagreb M 2 Index Comparison with the Randi} Connectivity Index for Benzenoid Systems

Sveučilište Josipa Jurja Strossmayera u Osijeku Odjel za matematiku

Hornerov algoritam i primjene

MODELING AND SIMULATION OF THE SELF - EXCITED STICK-SLIP SYSTEM USING BONDSIM TOOLS UDC :

Kvaternioni i kvaternionsko rješenje kvadratne jednadžbe

MODELIRANJE SUSTAVA OBNOVE KINETIČKE ENERGIJE BOLIDA FORMULE 1

MUSICAL COMPOSITION AND ELEMENTARY EXCITATIONS OF THE ENVIRONMENT

Micropolar fluid flow with rapidly variable initial conditions

NAPREDNI FIZIČKI PRAKTIKUM II studij Geofizika MODUL ELASTIČNOSTI

Projektovanje paralelnih algoritama II

Algorithms for Uncertainty Quantification

ON POTENTIAL INEQUALITY FOR THE ABSOLUTE VALUE OF FUNCTIONS. Neven Elezović, Josip Pečarić and Marjan Praljak

Metode izračunavanja determinanti matrica n-tog reda

Matrične dekompozicije i primjene

A multidimensional generalization of the Steinhaus theorem

NAPREDNI FIZIČKI PRAKTIKUM 1 studij Matematika i fizika; smjer nastavnički MJERENJE MALIH OTPORA

ELEKTROMOTORNI POGONI

UPRAVLJANJE BRZINOM VRTNJE SINKRONOG MOTORA S PERMANENTNIM MAGNETIMA CONTROLLING THE SPEED OF THE SYNCHRONOUS MOTOR ROTATION WITH PERMANENT MAGNET

Rješavanje sustava nelinearnih jednadžbi

Uniform and constant electromagnetic fields

Case Study: The Pelican Prototype Robot

On behaviour of solutions of system of linear differential equations

Write a simple 1D DFT code in Python

COMPARISON OF LINEAR SEAKEEPING TOOLS FOR CONTAINERSHIPS USPOREDBA PROGRAMSKIH ALATA ZA LINEARNU ANALIZU POMORSTVENOSTI KONTEJNERSKIH BRODOVA

RESISTANCE PREDICTION OF SEMIPLANING TRANSOM STERN HULLS

MODELIRANJE FIZIKALNIH SUSTAVA: PROBLEM TRIJU TIJELA

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD. Dominik Iličić. Zagreb, 2018.

Chapter 4: Higher-Order Differential Equations Part 1

ANIMACIJA TOKA FLUIDA

Exponential Controller for Robot Manipulators

On the relation between Zenkevich and Wiener indices of alkanes

Formule za udaljenost točke do pravca u ravnini, u smislu lp - udaljenosti math.e Vol 28.

The Inverted Pendulum

Maja Antolović Algoritmi u teoriji brojeva

6 Non-homogeneous Heat Problems

A = (a + 1) 2 = a 2 + 2a + 1

Modeliranje sustava obnove kinetičke energije bolida formule 1

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD. Tomislav Sertić. Zagreb, 2014

Krivulja središta i krivulja fokusa u pramenu konika. konika zadanom pomoću dviju dvostrukih točaka u izotropnoj ravnini

Shear Modulus and Shear Strength Evaluation of Solid Wood by a Modified ISO Square-Plate Twist Method

Konformno preslikavanje i Möbiusova transformacija. Završni rad

Analiza stabilnosti nelinearnih sustava vo denih analitičkim neizrazitim regulatorom

Ordinary Differential Equation Theory

1. OPĆE INFORMACIJE. Strojarstvo Diplomski Diplomski - 1. semestar Obvezni Strojarstvo Preddiplomski Preddiplomski - 4.

DYNAMIC HEAT TRANSFER IN WALLS: LIMITATIONS OF HEAT FLUX METERS

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje ZAVRŠNI RAD. Mentor: Zagreb, 2014.

Find the Fourier series of the odd-periodic extension of the function f (x) = 1 for x ( 1, 0). Solution: The Fourier series is.

Neural Networks Teaser

Numerical integration of DAE s

Red veze za benzen. Slika 1.

pretraživanje teksta Knuth-Morris-Pratt algoritam

Problem Set 1 solutions

On second order sufficient optimality conditions for quasilinear elliptic boundary control problems

ESTIMACIJA BRZINE VRTNJE SINKRONOG GENERATORA VJETROAGREGATA KORIŠTENJEM KALMANOVA FILTRA

A FIELD METHOD FOR SOLVING THE EQUATIONS OF MOTION OF EXCITED SYSTEMS UDC : (045) Ivana Kovačić

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni preddiplomski studij matematike. Ivana Oreški REKURZIJE.

:,,.. ;,..,.,. 90 :.. :, , «-»,, -. : -,,, -, -., ,, -, -. - «-»:,,, ,.,.

Degree Master of Science in Mathematical Modelling and Scientific Computing Mathematical Methods I Thursday, 12th January 2012, 9:30 a.m.- 11:30 a.m.

AIR CURTAINS VAZDU[NE ZAVESE V H

CONTROL OF THE NONHOLONOMIC INTEGRATOR

1 Pogreške Vrste pogrešaka Pogreške zaokruživanja Pogreške nastale zbog nepreciznosti ulaznih podataka

Analytical Solutions of Excited Vibrations of a Beam with Application of Distribution

Metode praćenja planova

KVADRATNE INTERPOLACIJSKE METODE ZA JEDNODIMENZIONALNU BEZUVJETNU LOKALNU OPTIMIZACIJU 1

MCE 366 System Dynamics, Spring Problem Set 2. Solutions to Set 2

Oracle Spatial Koordinatni sustavi, projekcije i transformacije. Dalibor Kušić, mag. ing. listopad 2010.

SAVIJANJE TANKOSTJENIH KOMPOZITNIH ŠTAPOVA OTVORENOG POPREČNOG PRESJEKA

MATHEMATICAL ANALYSIS OF PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR FEEDING BOTTLE CAPS

FAKULTET STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD. Krešimir Duvnjak. Zagreb, 2016.

Strojno učenje. Metoda potpornih vektora (SVM Support Vector Machines) Tomislav Šmuc

FOURIEROVE PREOBRAZBE- PRIMJENA U FIZICI

Transcription:

Simulacije dinamičkih sustava u programskom jeziku Python Vladimir Milić Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje Zagreb, 19. siječnja 2017. Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 1 / 14

Sadržaj Sadržaj 1 Uvod 2 Potrebni Python paketi i moduli 3 Primjer: mehanički sustav s jednim stupnjem slobode gibanja pogonjen istosmjernim električnim motorom 4 Ukratko o problemu rubnih uvjeta i dinamičkim sustavima opisanim diferencijalno-algebarskim jednadžbama 5 Literatura i korisni linkovi Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 2 / 14

Uvod 1 Uvod 2 Potrebni Python paketi i moduli 3 Primjer: mehanički sustav s jednim stupnjem slobode gibanja pogonjen istosmjernim električnim motorom 4 Ukratko o problemu rubnih uvjeta i dinamičkim sustavima opisanim diferencijalno-algebarskim jednadžbama 5 Literatura i korisni linkovi Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 3 / 14

Uvod Uvod Razmatramo Pythonove ugradene funkcije (engl. built-in) s numeričkim metodama za aproksimaciju rješenja običnih diferencijalnih jednadžbi prvog reda oblika na vremenskom intervalu t [t 0, t f ]. ẋ(t) = f(x, t), x(t 0) = x 0, (1) Općenitiji problem je sustav od n običnih diferencijalnih jednadžbi prvog reda ẋ 1 = f 1(x 1, x 2,... x n, t), x 1(t 0) = x 10, ẋ 2 = f 2(x 1, x 2,... x n, t), x 2(t 0) = x 20,. ẋ n = f n(x 1, x 2,... x n, t), x n(t 0) = x n0, za n nepoznatih realnih funkcija x i(t), i = 1, 2,..., n. Sustav jednadžbi (2) možemo napisati u obliku analognom izrazu (1) koristeći vektorsku notaciju gdje su (2) ẋ = f(x, t), x(t 0) = x 0, (3) ẋ 1 f 1(x 1, x 2,..., x n, t) x 10 ẋ 2 f 2(x 1, x 2,..., x n, t) ẋ =, f(x, t) =.., x0 = x 20.. ẋ n f n(x 1, x 2,..., x n, t) x n0 Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 3 / 14

Uvod U matematičkom opisu dinamičkih sustava pojavljuju se diferencijalne jednadžbe višeg reda oblika ( ) x (n) = f x, ẋ, ẍ,..., x (n 1), t, x (i) (t 0) = x i0, i = 0, 1, 2,..., n 1, (4) koje se svode na sustav diferencijalnih jednadžbi prvog reda. Da bi se to postiglo potrebno je uvesti dodatne funkcije x 1(t) := x(t), x 2(t) := ẋ(t), x 3(t) := ẍ(t),. x n(t) := x (n 1) (t), čime se diferencijalna jednadžba (4) transformira u ekvivalentni sustav diferencijalnih jednadžbi prvog reda u vektorskom obliku ẋ 1 ẋ 2. ẋ n 1 ẋ n = x 2 x 3. x n f(x 1, x 2,..., x n, t), (5) pa možemo koristiti numeričke metode za rješavanje diferencijalne jednadžbe (1). Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 4 / 14

Potrebni Python paketi i moduli 1 Uvod 2 Potrebni Python paketi i moduli 3 Primjer: mehanički sustav s jednim stupnjem slobode gibanja pogonjen istosmjernim električnim motorom 4 Ukratko o problemu rubnih uvjeta i dinamičkim sustavima opisanim diferencijalno-algebarskim jednadžbama 5 Literatura i korisni linkovi Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 5 / 14

Potrebni Python paketi i moduli Potrebni Python paketi i moduli NumPy predstavlja proširenje Pythona na rješavanje numeričkih problema (prethodnik mu je Numeric) jer sadrži veliki broj funkcija koje omogućavaju matematičke operacije na višedimenzionalnim poljima i matricama. Temeljni paket za znanstveno računanje u programskom jeziku Python. >>> from numpy import* SciPy je skup paketa i modula, tj. Pythonova biblioteka (engl. library) raznih matematičkih algoritama izgradenih na NumPy objektima polja. Sadrži podpakete i module za linearnu algebru, numeričku integraciju, numeričko rješavanje diferencijalnih jednadžbi, interpolaciju, optimizaciju itd. >>> from scipy import* >>> from scipy import linalg, integrate Funkcija odeint iz modula scipy.integrate služi za numeričko rješavanje inicijalnog (početnog ili Cauchyjevog) problema sustava običnih diferencijalnih jednadžbi oblika (3). Automatski bira izmedu Adamsove metode i metode podijeljenih razlika unazad (engl. backward differentiation formula BDF) linearne višekoračne metode. >>> from scipy.integrate import odeint Matplotlib je Pythonova biblioteka za crtanje raznih vrsta grafova. >>> from matplotlib import pyplot as plt Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 5 / 14

Primjer 1 Uvod 2 Potrebni Python paketi i moduli 3 Primjer: mehanički sustav s jednim stupnjem slobode gibanja pogonjen istosmjernim električnim motorom 4 Ukratko o problemu rubnih uvjeta i dinamičkim sustavima opisanim diferencijalno-algebarskim jednadžbama 5 Literatura i korisni linkovi Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 6 / 14

Primjer Mehanički sustav s jednim stupnjem slobode gibanja pogonjen istosmjernim električnim motorom Gibanje mehaničkog sustava prikazanog na slici 1 opisano je sljedećom diferencijalnom jednadžbom J q(t) + B q(t) + m g l sin (q(t)) = T, (6) gdje su q kut zakreta članka [rad], T ulazni moment [Nm], J ukupni moment tromosti oko osi koja prolazi zglobom [kgm 2 ], B koeficijent viskoznog prigušenja [Nms/rad], masa članka [kg], l udaljenost težišta od osi zgloba [m], g akceleracija sile teže [m/s 2 ]. Slika: Preuzeto iz: R. Kelly, V. Santibanez and A. Loria: Control of Robot Manipulators in Joint Space, Springer-Verlag, London, 2005. Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 6 / 14

Primjer Dinamika el. motora prikazanog na slici 2 opisana je sljedećom diferencijalnom jednadžbom: di a(t) R a i a(t) + L a + e = u a, (7) dt gdje su u a napon armature [V], i a struja armature [A], R a ukupni radni otpor armaturnog kruga [Ω], L a ukupni induktivitet armaturnog kruga [H] i e protuelektromotorna sila [V]. Nadalje imamo, e = K e Φ n ω m = K v ω m protuelektromotorna sila, (8) τ m = K t i a moment motora uz Φ n = const., (9) pri čemu su K e konstrukcijska konstanta motora, Φ n nazivna vrijednost glavnog magnetskog toka po polu [Vs], K v naponska konstanta motora [Vs], ω m mehanička brzina vrtnje [s 1 ] i K t momentna konstanta motora [Nm/A]. R a i a L a ω m, τ m N u a e M q, T Slika: Istosmjerni motor s nezavisnom i konstantnom uzbudom. Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 7 / 14

Primjer Uzimajući u obzir prijenosni omjer N, imamo relacije pa je ukupni sustav opisan sljedećim diferencijalnim jednadžbama T = N τ m = N K t i a, (10) ω m = N q, (11) J q + B q + m g l sin(q) = N K t i a, (12) L a di a dt Uvodimo nove zavisne varijable definirane na sljedeći način + Ra ia + Kv N q = ua. (13) x 1(t) = q(t), x 2(t) = q(t), x 3(t) = i a(t). (14) Deriviranjem varijabli x 1, x 2, x 3 po vremenu t i na osnovu sustava (12)-(13) dobivamo sustav diferencijalnih jednadžbi prvog reda ẋ 1 = x 2, ẋ 2 = m g l J ẋ 3 = Kv N L a sin(x 1) B J x2 + N Kt J (15) x 3, (16) x 2 Ra L a x 3 + 1 L a u a. (17) Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 8 / 14

Primjer Simulacija u Pythonu Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 9 / 14

Ukratko 1 Uvod 2 Potrebni Python paketi i moduli 3 Primjer: mehanički sustav s jednim stupnjem slobode gibanja pogonjen istosmjernim električnim motorom 4 Ukratko o problemu rubnih uvjeta i dinamičkim sustavima opisanim diferencijalno-algebarskim jednadžbama 5 Literatura i korisni linkovi Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 10 / 14

Ukratko Problem rubnih uvjeta dinamičkih sustava Problem rubnih uvjeta dinamičkih sustava Opći oblik problema rubnih uvjeta (engl. Boundary Value Problem BVP) u vektorskoj notaciji je ẏ(x) = f(x, y(x), p), a x b, r(y(a), y(b)) = 0, gdje je p vektor nepoznatih parametara sustava. (18) Tipični oblik problema je ÿ + ψ(x) ẏ + ϕ(x) y = g(x), a x b, y(a) = y 0, y(b) = y 1. (19) Problem oblika (18) u Pythonu se može riješiti primjenom funkcije solve_bvp iz modula scipy.integrate (SciPy v0.18.1). >>> from scipy.integrate import solve_bvp Takoder, u kolekciji dodatnih paketa i modula iz SciKits nalaze se moduli bvp_solver i bvp1lg. Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 10 / 14

Ukratko Dinamički sustavi opisani diferencijalno-algebarskim jednadžbama Dinamički sustavi opisani diferencijalno-algebarskim jednadžbama Promotrimo dinamički sustav čiji je matematički model opisan implicitnom diferencijalnom jednadžbom F(ẋ(t), x(t), t) = 0. (20) ( ) F Ako je det 0 tada iz izraza (20) možemo odrediti eksplicitni oblik ẋ = f(x, t). ẋ ( ) F Ako je det = 0 tada iz izraza (20) ne možemo odrediti oblik ẋ = f(x, t) i rješenje x ẋ mora zadovoljiti odredena algebarska ograničenja. Jednostavniji je tzv. polu-eksplicitni oblik ẋ = f(x, y, t), g(x, y, t) = 0, (21) gdje je g vektor algebarskih ograničenja. Primjer: njihalo u Kartezijevom koordinatnom sustavu. Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 11 / 14

Ukratko Dinamički sustavi opisani diferencijalno-algebarskim jednadžbama Simulacije dinamičkih sustava opisanih u obliku (21) primjenom programskog jezika Python: Kombinacijom funkcija iz modula scipy.inegrate i funkcija za rješavanje nelinearnih jednadžbi iz modula scipy.optimize, npr. funkcija fsolve. U kolekciji SciKits postoji modul scikits.odes u kojem se nalazi funkcija ode s ugradenim solverom ida. Assimulo paket za simulaciju dinamičkih sustava razvijen na Sveučilištu u Lundu (Švedska). PyDSTool paket za simulaciju dinamičkih sustava razvijen na Sveučilištima u SAD-u. CasADi paket za numeričku optimizaciju s ugradenim solverima za implicitne diferencijalne jednadžbe razvijen na K. U. Leuven (Belgija). Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 12 / 14

Literatura i korisni linkovi 1 Uvod 2 Potrebni Python paketi i moduli 3 Primjer: mehanički sustav s jednim stupnjem slobode gibanja pogonjen istosmjernim električnim motorom 4 Ukratko o problemu rubnih uvjeta i dinamičkim sustavima opisanim diferencijalno-algebarskim jednadžbama 5 Literatura i korisni linkovi Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 13 / 14

Literatura i korisni linkovi H. P. Langtangen. Python Scripting for Computational Science; Chapter 4: Numerical Computing in Python. Springer-Verlag, Berlin Heidelberg, 2008. H. Sayama. Introduction to the Modeling and Analysis of Complex Systems. Open SUNY Textbooks, New York, 2015. Numpy and Scipy Documentation: http://docs.scipy.org/doc Linear Algebra (scipy.linalg): http://docs.scipy.org/doc/scipy/reference/tutorial/linalg.html Integration (scipy.integrate): http://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html Popis dodatnih SciPy paketa za znanstveno računanje: http://www.scipy.org/topical-software.html SciKits: https://scikits.appspot.com Assimulo: http://www.jmodelica.org/assimulo PyDSTool: http://www.ni.gsu.edu/ rclewley/pydstool CasADi: http://www.casadi.org Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 13 / 14

Hvala na pažnji! Vladimir Milić Nastupno predavanje Zagreb, 19. siječnja 2017. 14 / 14