Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc;
- clear all;
- close all;
- data = tdfread('Q2_Clean_03.txt'); % Takes in the data from Q2
- Intervals = [11, 101, 1001, 10001]; % Different number of intervals
- % Energy stored in capacitor over 60ms calculated via simpsons rule
- fprintf('Energy stored in capacitor over 60ms calculated via simpsons rule\n');
- for i = 1:length(Intervals)
- N = Intervals(i);
- data.timei = linspace(min(data.time), max(data.time), N);
- data.Presi = interp1(data.time, data.Pres, data.timei);
- data.Pcapi = interp1(data.time, data.Pcap, data.timei);
- a = min(data.time);
- b = max(data.time);
- n = N - 1;
- dx = (b - a)/n;
- % Simpsons rule for Capacitor
- first = data.Pcapi(1);
- last = data.Pcapi(end);
- Pcapi_middle = data.Pcapi(2:end-1);
- odd_terms = Pcapi_middle(1:2:end);
- even_terms = Pcapi_middle(2:2:end);
- % Simpsons rule for Resistor
- first_R = data.Presi(1);
- last_R = data.Presi(end);
- Presi_middle = data.Presi(2:end-1);
- odd_terms_R = Presi_middle(1:2:end);
- even_terms_R = Presi_middle(2:2:end);
- CapacitorEnergy = dx/3 * (first + last + 4*sum(odd_terms) + 2*sum(even_terms));
- Resistor_Energy = dx/3 * (first_R + last_R + 4*sum(odd_terms_R) + 2*sum(even_terms_R));
- fprintf('N = %d, E_capacitor = %.6f J\n', N, CapacitorEnergy);
- fprintf('N = %d, E_Resistor = %.6f J\n', N, Resistor_Energy);
- end
- % Time is 10ms
- TimeLimit = data.time <= 0.01;
- Limit_time = data.time(TimeLimit);
- Limit_Pcap = data.Pcap(TimeLimit);
- Limit_Pres = data.Pres(TimeLimit);
- fprintf('Energy stored in capacitor over 10ms calculated via simpsons rule\n');
- for i = 1:length(Intervals)
- N = Intervals(i);
- timei = linspace(min(Limit_time), max(Limit_time), N);
- Pcapi = interp1(Limit_time, Limit_Pcap, timei);
- Presi = interp1(Limit_time, Limit_Pres, timei);
- a = min(Limit_time);
- b = max(Limit_time);
- n = N - 1;
- dx = (b - a)/n;
- first = Pcapi(1);
- last = Pcapi(end);
- Pcapi_middle = Pcapi(2:end-1);
- odd_terms = Pcapi_middle(1:2:end);
- even_terms = Pcapi_middle(2:2:end);
- first_R = Presi(1);
- last_R = Presi(end);
- Presi_middle = Presi(2:end-1);
- odd_terms_R = Presi_middle(1:2:end);
- even_terms_R = Presi_middle(2:2:end);
- E_capi_Simp = dx/3 * (first + last + 4*sum(odd_terms) + 2*sum(even_terms));
- Resistor_Energy10 = dx/3 * (first_R + last_R + 4*sum(odd_terms_R) + 2*sum(even_terms_R));
- fprintf('N = %d, E_capacitor = %.6f J\n', N, E_capi_Simp);
- fprintf('N = %d, E_Resistor = %.6f J\n', N, Resistor_Energy10);
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement