diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..7164337 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Work 1/report/AUThReport"] + path = Work 1/report/AUThReport + url = ssh://git@git.hoo2.net:222/hoo2/AUThReport.git diff --git a/Work 1/lab01_2025.pdf b/Work 1/lab01_2025.pdf new file mode 100644 index 0000000..c390667 Binary files /dev/null and b/Work 1/lab01_2025.pdf differ diff --git a/Work 1/report/AUThReport b/Work 1/report/AUThReport new file mode 160000 index 0000000..74ec4b5 --- /dev/null +++ b/Work 1/report/AUThReport @@ -0,0 +1 @@ +Subproject commit 74ec4b5f6c66382e5f1b6d2e6930897e4ed53ea6 diff --git a/Work 1/report/Work1_report.pdf b/Work 1/report/Work1_report.pdf new file mode 100644 index 0000000..9cf8105 Binary files /dev/null and b/Work 1/report/Work1_report.pdf differ diff --git a/Work 1/report/Work1_report.tex b/Work 1/report/Work1_report.tex new file mode 100644 index 0000000..1d21553 --- /dev/null +++ b/Work 1/report/Work1_report.tex @@ -0,0 +1,153 @@ +% +% !TEX TS-program = xelatex +% !TEX encoding = UTF-8 Unicode +% !TEX spellcheck = el-GR +% +% AUTH report template for english +% +% Requires compilation with pdfLaTeX or XeLaTeX +% +% authors: +% Χρήστος Χουτουρίδης ΑΕΜ 8997 +% cchoutou@ece.auth.gr + +% Options: +% +% 1) mainlang= +% Default: english +% Set the default language of the document which affects hyphenations, +% localization (section, dates, etc...) +% +% example: \documentclass[mainlang=greek]{AUThReport} +% +% 2) +% Add hyphenation and typesetting support for other languages +% Currently supports: english, greek, german, frenc +% +% example: \documentclass[english, greek]{AUThReport} +% +% 3) short: Requests a shorter title for the document +% Default: no short +% +% example: \documentclass[short]{AUThReport} +% +\documentclass[a4paper, 11pt, mainlang=greek, english]{AUThReport/AUThReport} + +\CurrentDate{\today} + +% Greek report document setup suggestions +%--------------------------------- +% Document configuration +\AuthorName{Χρήστος Χουτουρίδης} +\AuthorAEM{8997} +\AuthorMail{cchoutou@ece.auth.gr} + +%\CoAuthorName{CoAuthor Name} +%\CoAuthorAEM{AEM} +%\CoAuthorMail{CoAuthor Mail} + +% \WorkGroup{Ομάδα Χ} + +\DocTitle{Εργασία 1} +\DocSubTitle{Εκτίμηση Άγνωστων Παραμέτρων - Μέθοδος Ελαχίστων Τετραγώνων} + +\Department{Τμήμα ΗΜΜΥ. Τομέας Ηλεκτρονικής} +\ClassName{Προσομοίωση και Μοντελοποίηση Δυναμικών Συστημάτων} + +\InstructorName{Γ. Ροβιθάκης} +\InstructorMail{rovithak@auth.gr} + +\CoInstructorName{Λ. Μπίκας} +\CoInstructorMail{lnmpikas@ece.auth.gr} + + +% Local package requirements +%--------------------------------- +%\usepackage{tabularx} +%\usepackage{array} +%\usepackage{commath} + +\usepackage{amsmath, amssymb, amsfonts} +\usepackage{graphicx} +\usepackage{float} + +\begin{document} + +% Request a title page or header +\InsertTitle + +\section{Εισαγωγή} +Η παρούσα εργασία έχει ως αντικείμενο τη μελέτη ενός απλοποιημένου δυναμικού συστήματος — συγκεκριμένα ενός γραμμικοποιημένου εκκρεμούς με ροπή εισόδου — με σκοπό την κατανόηση της συμπεριφοράς του και την εκτίμηση των φυσικών παραμέτρων του μέσω της μεθόδου των ελαχίστων τετραγώνων. +Στο πρώτο μέρος της εργασίας εξετάζεται η δυναμική του συστήματος, η οποία περιγράφεται από μία διαφορική εξίσωση δευτέρας τάξης, και προσεγγίζεται τόσο θεωρητικά όσο και αριθμητικά μέσω προσομοίωσης στο περιβάλλον MATLAB. +\par +Αρχικά, το σύστημα αναδιατυπώνεται σε μορφή κατάστασης ώστε να καταστεί κατάλληλο για ανάλυση και προσομοίωση. +Στη συνέχεια, εφαρμόζεται ημιτονική διέγερση και εξετάζεται η απόκριση του συστήματος. Ιδιαίτερο ενδιαφέρον παρουσιάζει ο τρόπος με τον οποίο το σύστημα φτάνει στη μόνιμη περιοδική του συμπεριφορά, καθώς και ο ρυθμός με τον οποίο αποκλίνουν οι ταλαντώσεις από τη μεταβατική φάση. +Η ανάλυση αυτή θέτει τη βάση για τα επόμενα μέρη της εργασίας, όπου επιχειρείται η εκτίμηση των παραμέτρων του μοντέλου με τη χρήση δεδομένων εξόδου του συστήματος. + +\subsection{Παραδοτέα} +Τα παραδοτέα της εργασίας αποτελούνται από: +\begin{itemize} + \item Την παρούσα αναφορά. + \item Τον κατάλογο \textbf{scripts/}, που περιέχει τον κώδικα της MATLAB. + \item Το \href{https://git.hoo2.net/hoo2/SystemModling}{σύνδεσμο} με το αποθετήριο που περιέχει όλο το project με τον κώδικα της MATLAB, της αναφοράς και τα παραδοτέα. +\end{itemize} + +\section{Θέμα 1 – Μοντελοποίηση και Προσομοίωση Συστήματος Εκκρεμούς} + +Το σύστημα που μελετάται περιγράφεται από τη γραμμικοποιημένη διαφορική εξίσωση: +\[ +mL^2 \ddot{q}(t) + c \dot{q}(t) + mgL q(t) = u(t) +\] +όπου $q(t)$ είναι η γωνία του εκκρεμούς, $u(t)$ η ροπή εισόδου, και $m$, $L$, $c$, $g$ φυσικές σταθερές του συστήματος. + +Ορίζοντας ως διάνυσμα κατάστασης: +\[ +x(t) = \begin{bmatrix} q(t) \\ \dot{q}(t) \end{bmatrix} +\] +οι εξισώσεις κατάστασης γράφονται ως: +\[ +\dot{x}(t) = A x(t) + B u(t) +\] +όπου: +\[ +A = +\begin{bmatrix} + 0 & 1 \\ + -\frac{g}{L} & -\frac{c}{mL^2} +\end{bmatrix}, +\quad +B = \begin{bmatrix} 0 \\ \frac{1}{mL^2} \end{bmatrix} +\] + +Η συνάρτηση μεταφοράς του συστήματος προκύπτει από την αρχική εξίσωση ως: +\[ +G(s) = \frac{Q(s)}{U(s)} = \frac{1}{mL^2 s^2 + c s + mgL}. +\] + +Για την προσομοίωση χρησιμοποιήθηκε ημιτονική είσοδος $u(t) = A_0 \sin(\omega t)$, με $A_0 = 4$ και $\omega = 2$. +Οι υπόλοιπες παράμετροι ήταν $m = 0.75$, $L = 1.25$, $c = 0.15$, $g = 9.81$. +Ο αρχικός χρόνος προσομοίωσης ορίστηκε σε $20$ δευτερόλεπτα, όπως ζητείται στην εκφώνηση. + +\subsection*{Παρατήρηση Συμπεριφοράς Συστήματος} + +Το σύστημα παρουσίασε περιοδική απόκριση, η οποία όμως δεν σταθεροποιήθηκε γρήγορα. +Όπως φαίνεται στο Σχήμα~\ref{fig:20s}, το πλάτος των ταλαντώσεων συνεχίζει να μεταβάλλεται ακόμη και μετά από 20 δευτερόλεπτα, γεγονός που δείχνει ότι το σύστημα βρίσκεται ακόμη σε μεταβατική κατάσταση. + +Η καθυστερημένη σύγκλιση οφείλεται κυρίως: +\begin{itemize} + \item στην πολύ μικρή τιμή του συντελεστή απόσβεσης ($c = 0.15$), και + \item στο γεγονός ότι η συχνότητα της εισόδου ($\omega = 2$ rad/s) είναι κοντά στη φυσική συχνότητα του εκκρεμούς ($\omega_n = \sqrt{g/L} \approx 2.8$ rad/s), προκαλώντας φαινόμενο ενίσχυσης (quasi-resonance). +\end{itemize} + +Για τον λόγο αυτό, επεκτείναμε τη διάρκεια προσομοίωσης στα $90$ δευτερόλεπτα. +Όπως φαίνεται στο Σχήμα~\ref{fig:90s}, το σύστημα σταθεροποιείται τελικά σε περιοδική μορφή περίπου μετά από $50$ δευτερόλεπτα. + +\InsertFigure{!ht}{1}{fig:20s}{../scripts/Prob1_responce_20s.png}{ + Απόκριση του συστήματος για $t \in [0, 20]$ sec. Η μεταβατική φάση παραμένει ενεργή. +} +\InsertFigure{!ht}{1}{fig:90s}{../scripts/Prob1_responce_90s.png}{ + Απόκριση του συστήματος για $t \in [0, 90]$ sec. Το σύστημα σταθεροποιείται σε περιοδική συμπεριφορά μετά τα $50$ sec. +} + + +\end{document} diff --git a/Work 1/scripts/Prob1_responce_20s.png b/Work 1/scripts/Prob1_responce_20s.png new file mode 100644 index 0000000..be998bf Binary files /dev/null and b/Work 1/scripts/Prob1_responce_20s.png differ diff --git a/Work 1/scripts/Prob1_responce_90s.png b/Work 1/scripts/Prob1_responce_90s.png new file mode 100644 index 0000000..fad95af Binary files /dev/null and b/Work 1/scripts/Prob1_responce_90s.png differ diff --git a/Work 1/scripts/Problem1.m b/Work 1/scripts/Problem1.m new file mode 100644 index 0000000..6e4a789 --- /dev/null +++ b/Work 1/scripts/Problem1.m @@ -0,0 +1,47 @@ +% Parameters +m = 0.75; +L = 1.25; +c = 0.15; +g = 9.81; +A0 = 4; +omega = 2; + +% Time span +tspan = [0 20]; +dt = 1e-3; +t_eval = 0:dt:20; + +% ODE Function +odefun = @(t, x) [ + x(2); + (1/(m*L^2)) * (A0*sin(omega*t) - c*x(2) - m*g*L*x(1)) +]; + +x0 = [0; 0]; % Initial conditions +[t, x] = ode45(odefun, t_eval, x0); % Solve + +% Plots +figure('Name', 'System responce', 'Position', [100, 100, 1280, 860]); +subplot(2,1,1); +plot(t, x(:,1)); ylabel('q(t) [rad]'); grid on; title('Γωνία'); +subplot(2,1,2); +plot(t, x(:,2), 'r'); ylabel('dq(t) [rad/s]'); xlabel('t [sec]'); grid on; title('Γωνιακή Ταχύτητα'); + +saveas(gcf, 'Prob1_responce_20s.png'); + + +% Time span +tspan = [0 90]; +t_eval = 0:dt:90; + +x0 = [0; 0]; % Initial conditions +[t, x] = ode45(odefun, t_eval, x0); % Solve + +% Plots +figure('Name', 'System responce', 'Position', [100, 100, 1280, 860]); +subplot(2,1,1); +plot(t, x(:,1)); ylabel('q(t) [rad]'); grid on; title('Γωνία'); +subplot(2,1,2); +plot(t, x(:,2), 'r'); ylabel('dq(t) [rad/s]'); xlabel('t [sec]'); grid on; title('Γωνιακή Ταχύτητα'); + +saveas(gcf, 'Prob1_responce_90s.png'); \ No newline at end of file