%% Linear circuits
% Liniowe obwody elektryczne
% Obwody liniowe
% Proste liniowe obwody elektryczne można analizować za pomocą praw Kirchhoffa. W tym celu można wykorzystać macierze, które w  zwięzły sposób pozwalają zapisać wiele równań liniowych, które modelują obwód. W tej części labolatorium  zostanie wyprowadzina macierzowa postać równań liniowych reprezentujących obwód elektryczny. Poprzez rozwiązanie układu równań liniowych, zostaną wyznaczone prądy w tym obwodzie.
% Prawo Kirchhoffa dot. prądów
% Suma wszystkich prądów wpływających do węzła jest równa sumie prądów wypływających z węzła.
%
%
% W powyższym węźle mamy: I_1 = I_2 + I_3 + I_4
% Kirchhoff's voltage law
% Suma napięć wokół zamkniętej pętli obwodu wynosi zero. Matematycznie:
%     \sum_{k} V_k = 0
% gdzie V_k jest r©óźnicą potencjałów na k-tej gałęzi obwodu. Zastosowanie prawa Ohma daje spadek potencjału na każdym rezystorze: V = IR.
%
%
% Spadek potencjału na rezystorach w tej zamkniętej pętli musi być równy potencjałowi generowanemu przez źródło napięcia: V_1 - I_1 R_1 - I_1 R_2 - I_1 R_3 = 0
%
% Reprezentacja macierzowa obwodu
% W tej sekcji liniowy obwód elektryczy przeanalizowany przy użyciu praw Kirchhoffa zostanie zapisany w postaci macierzy.
%
% Analizowany obwód
% Wyprowadzenie równań
% Przed zapisaniem równań trzeba zdefiniować kierunek przepływu prądu w obwodzie. Nich to będzie od + do -.
%
% Na schemacie zaznaczono zamknięte pętle, oznaczając je jako (1), (2) i (3)
% Zastosowanie prawa  Kirchhoffa dla prądu do węzła centralnego pozwala zapisać równanie.
%     I_2 + I_4 = I_1 + I_3
% Zastosowanie prawa Kirchhoffa, które dotyczy napięć do trzech pętli dodaje trzy dodatkowe równania:
%     \begin{array}{rl}
% \ V_1 - I_2 R_1 - I_2 R_2  &= 0
% \\
% - V_2 - I_3 R_3 - I_4 R_4  &= 0
% \\
% \ V_1 - I_5 R_5 - I_4 R_4  &= 0
% \end{array}
% W tym momencie mamy 5 nieznanych prądów, ale tylko cztery równania. Aby móc je wyznaczyć, należy dopisać równanie dotyczące prądów w górnym węźle:
%     I_1 = I_2 + I_5
% Należy pamiętać, że istnieją dodatkowe pętle i węzły, do których można zastosować prawo Kirchhoffa - ale wszystkie z nich dadzą nadmiarowe warunki.
% Wyprowadzenie postaci macierzowej równań
% Aby zapisać te równania w postaci macierz \mathbf{AI} = \mathbf{b},należy zdefiniować wektor
%      \mathbf{I} = \left( \matrix{ I_1 \cr I_2 \cr I_3 \cr I_4 \cr I_5 } \right)
% Przeniesienie wszystkich zmiennych na lewą stronę a stałych na prawą pozwala na zapisanie  pięcu równań:
%      \begin{array}{rl}
% \ I_2 R_1 + I_2 R_2  &= V_1
% \\
% I_3 R_3 + I_4 R_4  &=  -V_2
% \\
% I_5 R_5  + I_4 R_4  &= V_1
% \\
% I_1 - I_2 + I_3 - I_4 &= 0
% \\
% I_1 - I_2 - I_5 &= 0
% \end{array}        (1)
% Zadanie 1
% Zapisz układ równań (1) w formie \mathbf{AI} = \mathbf{b} poprzez zdefiniowanie macierzy \mathbf{A} i \mathbf{b}.

%Miejsce na kod 

% Zadanie 2
% Oblicz iloczyn macierzy \mathbf{AI}, aby sprawdzić, czy postać macierzy odpowiada oryginalnemu układowi (1).

%Miejsce na kod

%
% Rozwiązanie układu równań
% Określine rozwiązanie
% Zadanie 3
% Załóżmy, że rezystory i źródła napięcia mają określone wartości:
%        \begin{array}{l}
% R_1 = 10+m \ \Omega
% \\
% R_2 = 100-m \ \Omega
% \\
% R_3 = 10+m/2 \ \Omega
% \\
% R_4 = 1+m \ k\Omega
% \\
% R_5 =  330 \ \Omega
% \end{array}         \begin{array}{l}
% V_1 = 1.5m \ \text{V}
% \\
% V_2 = 1.5m \ \text{V}
% \end{array}
% gdze to m to indywidualny mumer przypisany do zespołu.
% Jakie są prądy płynące przez obwód? Zapisz wektor prądów w zmiennej I.
% Prądy oblicz z zależności \mathbf{I}= \mathbf{A}^{-1} \mathbf{b}.

%Miejsce na kod

%
% Rozwiązanie symboliczne
% Użyj zmiennych symbolicznych symbolicznej, aby znaleźć prądy płynące przez ten obwód dla dowolnych rezystancji i napięć.
% (a) Zdefiniuj zmienne symboliczne dla rezystancji i napięć (e.g., syms R_1 V_1 ).

%Miejsce na kod

% (b) Rozwiąż równanie, korzystając z funkcji solve. Rozwiązanie zapisz w zmiennej Ifun.

%Miejsce na kod

%
% (c) Wyznaczyć wartość funkcji wyznaczoną w (b) dla argumentów:
% Wynik zapisać w zmiennej  Ispec.

%Miejsce na kod

% Wskazówka: Rozwiązanie symboliczne można obliczyć dla określonych wartości zmiennych w programie MATLAB. W tym celu należy użyć funkcji matlabFunction aby wygenerować uchwyt funkcji MATLAB, a następnie wywołać go z określonymi wartościami parametrów. Proces ten został zilustrowany w poniższym przykładzie.
% syms x y                    % Zmienne symboliczne
% g = x^2 + y^2               % Funkcja symboliczna
% gfunc = matlabFunction(g)   % Uchwyt do funkcji MATLAB
% gfunc(2,3)                  % Wyznaczenie wartości funkcji dla argumentów (x,y)=(2,3)
% Kod ten tworzy funkcję symboliczną g, która jest następnie konwertowana na uchwyt funkcji MATLAB gfunc. Następnie wyznaczano jest jej wartość dla argumentów x = 2 i y = 3.