M files – RCL Κυκλώματα Στο MATLAB γράφουμε τις δικές μας εντολές και προγράμματα μέσω αρχείων που καλούνται ‘m-Files’. Έχουν το επίθεμα ‘.m’ π.χ compute.m Υπάρχουν δύο είδη m-files: τα αρχεία script (script files) και τα αρχεία συναρτήσεων (function files). Aρχεια script : Σειρα από εντολές που επεξεργάζονται από το Matlab, χωρίς δεδομένα εισόδου η εξόδου (πολλές εντολές η μια μετά την άλλη) Τα αρχεία συναρτήσεων (function),, έχουν δεδομένα εισόδου (και εξόδου) και λειτουργούν σαν μια καινούργια εντολή της MATLAB ή ακόμα και σαν ένα υπολογιστικό πρόγραμμα. Δημιουργούνται σε ξεχωριστό παράθυρο (edit window).
Δημιουργία αρχείου MATLAB Στο κυρίως παράθυρο επιλέξτε: File → New → M-file (θα ανοίξει το MATLAB editor). Πληκτρολογήστε τις εντολές που φαίνονται στο σχήμα
Αρχεία MATLAB Για να μπορεί να τρέξει το πρόγραμμα που γράψαμε , το αποθηκεύουμε σε ένα φάκελο ( directory ) και προσθέτουμε τον φάκελο στην λίστα φακέλων που το πρόγραμμα matlab αναγνωρίζει. File → Set Path → Add Folder και επιλέγουμε το folder στο οποίο βρίσκεται το αρχείο. Επιλέγουμε το Save και ακολούθως Close. Για να τρέξουμε το πρόγραμμα πληκτρολογούμε το όνομα του αρχείου π.χ compute στο κυρίως παράθυρο, η στον editor του Matlab : Debug → Save and Run
Συναρτήσεις (functions) Η συνάρτηση είναι ένα αρχείο Μ με τη μόνη διαφορά ότι οι μεταβλητές είναι τοπικές (local) και όχι σφαιρικές (global). Ξεκινά με τον ορισμό της συνάρτησης ο οποίος καθορίζει τις μεταβλητές εισόδου και εξόδου. Οι συναρτήσεις χωρίζονται σε ενσωματωμένες συναρτήσεις (built-in) και οριζόμενες από το χρήστη (user-defined). Οι περισσότερες εντολές στο MATLAB είναι συναρτήσεις.
Συναρτήσεις (functions) Τρόπος σύνταξης: function [out1, out2, …] = function_name(in1, in2, …); Μεταβλητές εξόδου (αν δεν υπάρχουν, τότε μπορεί να μην χρησιμοποιηθούν οι αγκύλες) Το όνομα της συνάρτησης (πρέπει απαραιτήτως το αρχείο να ονομαστεί με το ίδιο ακριβώς όνομα) Κωδική λέξη (απαραίτητη)
Συναρτήσεις (functions) Παράδειγμα: Στο παράθυρο του Matlab γράφουμε: >> [determinantA, Χ] = solvex(1) determinantA = 3 Χ = 1.6667 2.0000 -3.6667 >> who Your variables are: determinantA z
Αρχεία MATLAB To σύμβολο % χρησιμοποιείται μπροστά από τα σχόλια (comments) (ότι ακολουθεί στην ίδια γραμμή αγνοείται). Τα σχόλια είναι πολύ σημαντικά για να μπορούν και άλλοι να καταλαβαίνουν τον κώδικα μας, αλλά και να θυμούμαστε τι έχουμε κάνει.
AC - Kυκλώματα RLC Εαν η συχνότητα μεταβάλλεται από 10Hz έως 25 MHz . Ζητείται το εύρος και η φάση στην R1 ω=2pf , Zc = 1/jωC, ZL = jωL, ZΤ = Zc+ZR+ΖL
AC - Kυκλώματα RLC Matlab code: clear all format compact VAC = 1; % τάση Εισόδου R= 1e3; L= 10e-6; C= 1e-9; f = 1e1:1e3:25e6; % Μεταβολή συχνότητας Αρχή: βήμα: τέλος omega = 2*pi*f; ZC = 1./(i*omega*C); % Αντίσταση πυκνωτή ZL = i*omega*L; % Αντίσταση πηνίου ZTotal = R+ZC+ZL; ITotal = VAC./ZTotal; ITmagnitude = abs(ITotal); ITphase = angle(ITotal); Vload = ITotal*R; VloadMagnitude = abs(Vload); % Εύρος τάσεως VloadPhase = angle(Vload); % Φάση σε Rads figure(1) plot(f,VloadMagnitude) xlabel('Frequency, Hz') ylabel('Amplitude, V‘) figure(2) plot(f,VloadPhase) ylabel('Phase, Radian')
Άσκηση 1 Με γνωστά τα στοιχεία R = 120Ω, L = 0.15 mH και C = 0.26 nF και για συχνότητες f = 1e5:5e4:1e7 απεικονίσατε το ευρος και την φάση του ρεύματος εξόδου συναρτήσει της συχνότητας με ημι-λογαριθμική απεικόνιση (semilogx)
Άσκηση 1: Συνέχεια Τυπικός κώδικας matlab: % Kαθορισμός Περιοχής Συχνότητας f=10e4:50e3:10e6; % Τιμές Στοιχειων Κυκλώματος Vs= 120; C = 0.265e-9 L=0.15e-3; R=120; w= 2*pi*f; % Εξίσωση Ρεύματος Κυκλώματος Io=Vs./(R+j*2*pi*f*L-j./(2*pi*f*C)) % Φάση Ρεύματος Κυκλώματος phase = angle(Io)*180/pi % Δημιουργια Γραφηματων σε Ημι-Λογαριθμηκό Σχήμα figure(1) ; subplot(2,1,1); semilogx(f,abs(Io), 'Linewidth',2) % Τίτλος γραφήματος με Εντονα Γραμματα title('\bf Ευρος Ρευματος εναντι συχνότητας') ylabel('\bf Ευρος (A)') %Δημιουργια Grid grid on; subplot(2,1,2) semilogx(f,phase,'Linewidth',2); title('\bf Φάση Ρευματος εναντι συχνότητας'); ylabel('\bf Μεατβολή φάσεως (Deg)')
Άσκηση 1: Συνεχεια Σχήμα
Άσκηση 2 Όπως στη άσκηση 1, την περιοχή των συχνοτήτων την καθορίζεται εσείς
Άσκηση 3: Kirchhoff's για σύνθετες αντιστάσεις Υπολογίστε την τάση V1 και V2 για ω = 1 και 10 rad/sec. Βοηθητικές εξισώσεις
Άσκηση 4: Για R = 10 KΩ και C = 1μF απεικονίσατε την τάση εξόδου (εύρος – φάση) για τις εξής περιπτώσεις: x (t) = cos (t) x (t) = cos (10t) x (t) = cos (100t)
Άσκηση 5 Ζητείται η απεικόνιση της εξόδου για συχνότητες 300 ως 30000ΗZ με βήμα 100, Vs=1 Plot (Συχνότητα, Vout)
Βηματικη Απόκριση DC - Kυκλώματος RC Στο κύκλωμα εικoνα . 1.1, i είναι το ρεύμα που περνά δια της αντιστάσεως R και του πυκνωτή C είναι ισο με :
Εξισώσεις φόρτισης πυκνωτη Στο κύκλωμα, i είναι το ρεύμα που περνά δια της αντιστάσεως R και του πυκνωτή C και είναι ισο με :
Εξισώσεις φόρτισης πυκνωτη Εάν η πηγή (μπαταρία) αντικατασταθεί με ένα βραχυκύκλωμα (Όταν ο πυκνωτής έχει πλήρως φορτιστεί), τότε το φορτίο της θετικής πλάκας του πυκνωτή δια μέσω της αντίστασης R ρέει προς την αρνητική πλάκα του πυκνωτή με αποτέλεσμα την εκφόρτιση του.
Προσομοίωση με Matlab % Κύκλωμα RC R=100; C=1.e-6 ;vin =12; tau=R*C; t=[0:tau/50:3*tau]; vc=vin*(1-exp(-t/tau)); % Για εκφορτιση vc=vmac*exp(-t/tau); plot(t,vc), xlabel('t(s)'),ylabel('Vc(volts)')
Απλό Κύκλωμα RC a % Κυματομορφη φόρτισης πυκνωτή με Διαφορετικές σταθερές χρόνου τ ein=1; % Τάση εισοδου t=0:0.1:10; % Χρονικά σημεία άξονα χρόνου (t) % Προσδιορισμός της σταθεράς χρόνου τ for tau= 0.5:5:15.5 eout=ein*(1-exp(-t/tau)); % εξίσωση φόρτισης % πυκνωτή grid subplot(2,1,1), plot(t,ein,'ko'), xlabel ('time[sec]') ylabel('Amplitude [Volt]') title(' Βηματική τάση εισόδου.') subplot(2,1,2),plot(t,eout,'r-'), title(' Βηματικη συναρτιση με διαφορετικες τιμες σταθερας χρόνου.') % Οι τρει βηματικες αποκρισεις % help text % help ishold % help hold % help ~= text(1.5,0.8,'tau=0.5'); text(2.5,0.3,'tau=5.5'); text(5.5,0.5,'tau=10.5'); text(8.5,0.3,'tau=10.5'); % ishold on if ishold~=1,hold on, end % θέτει την εντολή hold on μετά την πρώτη καμπύλη. end hold off % Σταματά την εντολή hold on μετά την τελευταία καμπύλη. τελευταία καμπύλη.
Άσκηση Δίνεται το κύκλωμα: Με στοιχεία: R1=6,L=4,R2=12,C=1/24, Α=12,ω=2, Ζητείται η απεικόνιση της τάσεως εισόδου και εξόδου για τρεις περιόδους και με χρήση 100 σημείων. Να βάλλεται τίτλους στους άξονες και στο γράφημα
Συνέχεια άσκησης Τυπικός Κώδικας: %Πηγή τάσωες Εισόδου w=2; A=12; theta=(pi/180)*60; Vs=A*exp(j*theta); % Τιμές στοιχείων κυκλώματος R1=6; L=4; R2=12; C=1/24; % Υπολογισμός συνθέτων αντιστάσεων Z1= R1*j*w*L; Y2=1/R2+j*w*C; Z2=1/Y2; % Υπολογισμός τάσεως και φασεως εξόδου Vo=Vs*Z2/(Z1+Z2); B=abs(Vo); phi = angle(Vo); %Υπολογισμος κυκλων (περιοδοι) απεικονισης τασωες T=3*pi/w; tf = 3*T;N=100;dt=tf/N; t=0:dt:tf; %Απεικόνιση τασεως εισοδου και εξοδου for k = 1:101 vs(k) = A*cos(w*t(k)+theta); vo(k) = B*cos(w*t(k)+phi); end plot(t,vs,'-r',t,vo,'-b')
Γράφημα Γράφημα