UP | HOME

1ο Εργαστήριο

Table of Contents

Μερικά γενικά tips από το εργαστήριο:

Σε όλες τις σημειώσεις έχω χρησιμοποιήσει source blocks του octave γιατί εκείνο τρέχω/έχω εγκατεστημένο στο workstation μου. Προφανώς το εργαστήριο πραγματοποιήθηκε σε Matlab.

Ακόμα στην πραγματικότητα ο κώδικας εδώ δεν θα δούλευε σε octave λόγω προβλήματος με τα εμπλεκόμενα packages.

Το σύστημα

Η μοντελοποίηση του συστήματος είναι της μορφής: 221207_0858_sae1_lab1_system.png

όπου αφαιρετικά η μία είσοδος είναι η τάση και αποτελεί την είσοδο ελέγχου ενώ η δεύτερη είσοδος, απόρροια της φύσης του κινητήρα, είναι στην πραγματικότητα η ροπή.

Οι τύποι των δύο συναρτήσεων μεταφοράς \(H_v,H_t\) είναι

\begin{align} \label{eq:1} H_v&= \frac{K_m}{(R_a+sL_a)(sJ+B)+KK_m}= \frac{8000}{s^2+440.1s+5164}\\ H_t&= \frac{-(R_a+sL_a)}{(R_a+sL_a)(sJ+B)+KK_m} = \frac{-1250(s+440)}{s^2+440.1s+5164} \end{align}

Στην ανάλυση που θα πραγματοποιήσουμε θέλουμε να αναπαραστήσουμε γραφικά την έξοδο του συστήματος με διάφορες τιμές εισόδων, δίνοντας μας μια καλύτερη εικόνα για την συμπεριφορά του.

Θέσιμο παραμέτρων

Οταν φτιάχνεις array με συντελεστές πολυωνύμου προσέχεις να εισάγεις όλους τους όρους, ακόμα και εκείνους που φαινομενικά παραλείπονται.

Αρχικά φτιάχνουμε την συνάρτηση μεταφοράς της \(V\). Το o είναι εκεί για original, αποκτά σημασία πιο κάτω.

nVo = 8000;
dVo = [ 1 440.1 5164];

% tf > construct transfer func
HVo = tf(nVo,dVo);

Με τον ίδιο τρόπο την συνάρτηση μεταφοράς της \(T\)

nTo = [1250 440*(-1250)];
dTo = dVo;
HTo = tf(nTo,dTo);

Ευστάθεια συστήματος

Με την παρακάτω συνάρτηση μπορούμε να πάρουμε τις ρίζες ενός πολυωνύμου

% roots -> rizes polyonymou
p = roots(dVo);

το οποίο στην προκειμένη μας δείχνει οτι το σύστημα ευσταθές, με δύο αρνητικούς και πραγματικούς πόλους1. Ο ένας (κοντά στο 0) λέγεται αργός πόλος και καθορίζει την συμπεριφορά της συνάρτησης μεταφοράς μακροπρόθεσμα, ενώ ο δεύτερος είναι υπεύθυνος για την γρήγορη/μεταβατική απόκριση

DC Gain

Για την ενίσχυση στο Steady State (δηλαδή το dc-gain) ισχύει:

\begin{equation} \label{eq:2} \text{DCGain} = H(0) \end{equation}
dcHVo = dcgain(HVo);
% to arnitiko htan leei anamenomeno logo ths fysews tou TL kinitira
dcTVo = dcgain(HTo);

Plotting με step function

Μπορούμε να δούμε την απόκριση του συστήματος μας αν για είσοδο είχε ένα step function μέσω των παρακάτω εντολών:

step(HVo)
step(HTo)

Θεωρητικά σχόλια

  • Παρατηρούμε πως το unit step (κατά την διάρκεια του) μας επιτρέπει να φτάσουμε την ss κατάσταση του συστήματος
  • Από το γράφημα που προκύπτει:
    • Μπορείς να βάλεις να δεις τα rise time, settle time

Προσέγγιση

Μπορούμε να προσεγγίσουμε την συμπεριφορά του συστήματος αφαιρώντας τον πόλο μα κρατώντας την θέση του (αυτό οφείλεται στο οτι το μεταβατικό φεύγει γρήγορα)

HV = tf(18.69, [1 12.064]);
HT = tf([-2.92 -2.92*440], [1 12.064]);

Και μπορούμε να δούμε πάλι την προσέγγιση

step(HV)

LSIN

t = 0 : 0.001 : 0.7;
uV = 150*stepfun(t,0);

yV1 = lsim(HVo,uV,t);
yV2 = lsim(HV,uV,t);

%step(HVo)
plot(t,yV1,t,yV2);

Επίδραση φορτίου στην απόκριση στροφών

uV=150*stepfun(t,0);
uT1=0.5*stepfun(t,0);
uT2=1.0*stepfun(t,0);
uT3=1.5*stepfun(t,0);
yV=lsim(HV, uV, t);
yT1=lsim(HT, uT1, t);
yT2=lsim(HT, uT2, t);
yT3=lsim(HT, uT3, t);
y1=yV+yT1;
y2=yV+yT2;
y3=yV+yT3;
plot(t, y1, t,y2, t, y3)

Footnotes:

1

Δηλώθηκε οτι αυτό ήταν αναμενόμενο καθώς εξετάζαμε RL, παθητικό κύκλωμα, μα σε αυτή την φάση δεν μπορώ να το εξηγήσω περισσότερο.

Originally created on 2022-11-24 Thu 00:00