M files RCL Κυκλώματα Στο MATLAB γράφουμε τις δικές μας εντολές και προγράμματα μέσω αρχείων που καλούνται m-files. Έχουν το επίθεμα.m π.χ compute.m Υπάρχουν δύο είδη m-files: τα αρχεία script (script files) και τα αρχεία συναρτήσεων (function files). Aρχεια script : Σειρα από εντολές που επεξεργάζονται από το Matlab, χωρίς δεδομένα εισόδου η εξόδου (πολλές εντολές η μια μετά την άλλη) Τα αρχεία συναρτήσεων (function),, έχουν δεδομένα εισόδου (και εξόδου) και λειτουργούν σαν μια καινούργια εντολή της MATLAB ή ακόμα και σαν ένα υπολογιστικό πρόγραμμα. Δημιουργούνται σε ξεχωριστό παράθυρο (edit window).
Δημιουργία αρχείου MATLAB 1.Στο κυρίως παράθυρο επιλέξτε: 2. 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. Ζητείται το εύρος και η φάση στην R 1 ω=2pf, Z c = 1/jωC, Z L = jωl, Z Τ = Z c +Z R +Ζ 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) xlabel('frequency, Hz') ylabel('phase, Radian')
Άσκηση 1 Με γνωστά τα στοιχεία R = 120Ω, L = 0.15 mh και C = 0.26 nf και για συχνότητες f = 1e5:5e4:1e7 απεικονίσατε το ευρος και την φάση του ρεύματος εξόδου συναρτήσει της συχνότητας με ημι-λογαριθμική απεικόνιση (semilogx)
Τυπικός κώδικας matlab: Άσκηση 1: Συνέχεια ΥΠΟΔΕΙΞΕΙΣ % Kαθορισμός Περιοχής Συχνότητας f=10e4:xxxxxxxxxx % Τιμές Στοιχειων Κυκλώματος Vs= xxxx; C = xxxx L=xxxxx; R=1xxxxx; w= 2pif; % Εξίσωση Ρεύματος Κυκλώματος Io=Vs./(R+j2pifL-j./(2pifC)) % Φάση Ρεύματος Κυκλώματος 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(χ,χ,χ) semilogx(f,phase,'linewidth',2); % Τίτλος γραφήματος με Έντονα Γράμματα για φάση ρευματος title('\bf Φάση Ρεύματος έναντι συχνότητας'); ylabel('\bf Μεταβολή φάσεως (Deg)') grid on;
Σχήμα Άσκηση 1: Συνεχεια
Άσκηση 2 Όπως στη άσκηση 1, την περιοχή των συχνοτήτων την καθορίζεται εσείς
Άσκηση 3: Kirchhoff's για σύνθετες αντιστάσεις Υπολογίστε την τάση V 1 και V 2 για ω = 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 (Συχνότητα, V out )
Βηματικη Απόκριση DC - Kυκλώματος RC Στο κύκλωμα εικoνα. 1.1, i είναι το ρεύμα που περνά δια της αντιστάσεως R και του πυκνωτή C είναι ισο με : i E in R E out de i C dt out de RC dt out E out E in dx x dt x e t t t e dt Ke
Εξισώσεις φόρτισης πυκνωτη Στο κύκλωμα, i είναι το ρεύμα που περνά δια της αντιστάσεως R και του πυκνωτή C και είναι ισο με : x E out 1 E in E out e E out t Ein e Eout t E out dt Ke E E out t in ( 1 t e ) i C de dt out i E R in t e
Εξισώσεις φόρτισης πυκνωτη Εάν η πηγή (μπαταρία) αντικατασταθεί με ένα βραχυκύκλωμα (Όταν ο πυκνωτής έχει πλήρως φορτιστεί), τότε το φορτίο της θετικής πλάκας του πυκνωτή δια μέσω της αντίστασης R ρέει προς την αρνητική πλάκα του πυκνωτή με αποτέλεσμα την εκφόρτιση του. E out E in e t E i R in e t
Vc(volts) Vc(volts) Προσομοίωση με Matlab % Κύκλωμα RC R=χχχ; C=χχχ;vin =χχχ; tau=r*c; t=[0:tau/50:3*tau]; vc=vin(1-exp(-t/tau)); 12 10 8 6 4 2 0 0 1 2 3 t(s) x 10-4 12 10 % Για εκφορτιση vc=vmac*exp(-t/tau); 8 6 4 2 plot(t,vc), xlabel('t(s)'),ylabel('vc(volts)') 0 0 1 2 3 t(s) x 10-4
Απλό Κύκλωμα RC a ΥΠΟΔΕΙΞΕΙΣ % Κυματομορφη φόρτισης πυκνωτή με Διαφορετικές σταθερές χρόνου τ ein=χχχ; t=0:0.1:10; χρόνου (t) % Τάση εισόδου % Χρονικά σημεία άξονα % Προσδιορισμός της σταθεράς χρόνου τ for tau= 0.5:5:15.5 eout=ein(1-exp(-t/tau)); % εξίσωση φόρτισης % πυκνωτή grid subplot(χ,χ,χ), plot(t,ein,'ko'), xlabel ('time[sec]') ylabel('amplitude [Volt]') 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 μετά την τελευταία καμπύλη. τελευταία καμπύλη. grid subplot(χ,χ,χ),plot(t,eout,'r-'), xlabel Γραφήματος ylabel Γραφήματος title Γραφήματος grid
Άσκηση Δίνεται το κύκλωμα: Με στοιχεία: R1=6,L=4,R2=12,C=1/24, Α=12,ω=2, Ζητείται η απεικόνιση της τάσεως εισόδου και εξόδου για τρεις περιόδους και με χρήση 100 σημείων. Να βάλλεται τίτλους στους άξονες και στο γράφημα
Τυπικός Κώδικας: Συνέχεια άσκησης %Πηγή τάσεως Εισόδου w=2; A=χχ; theta=(pi/180)60; Vs=Aexp(jtheta); % Τιμές στοιχείων κυκλώματος R1=χχ; L=χχ; R2=χχ; C=1/24; % Υπολογισμός συνθέτων αντιστάσεων Z1= R1jwL; Y2=1/R2+jwC; Z2=1/Y2; % Υπολογισμός τάσεως και φασεως εξόδου Vo=Vs*Z2/(Z1+Z2); %Υπολογισμός κύκλων (περιοδοι) απεικόνισης τασωες T=3pi/w; tf = 3T;N=100;dt=tf/N; t=0:dt:tf; %Απεικόνιση τάσεως εισόδου και εξόδου for k = 1:101 vs(k) = Acos(wt(k)+theta); vo(k) = Bcos(wt(k)+phi); end plot(t,vs,'-r',t,vo,'-b') B=abs(Vo); phi = angle(vo);
Γράφημα Γράφημα