function []=lab_6()

    clear;clc;clf;

    %исходные данные не меняются
    S = [
         0.6-0.9i   ;
     0.8+0.3i   ;
     -1+0i      ;
     -0.1+0.7i  ;
     -0.9+1i    ;
     0    ];

    U0 = 10      ;
    U  = [0;0;0;0;0;0];
    Zv = [
        0.8+1.6i    ;
    1+2i        ;
    0.2+0.4i    ;
    0.6+1.2i    ;
    0.8+1.6i    ;
    0.8+1.6i    ;
    0.4+0.8i    ];
    Yv = 1./Zv;

    A = [
    0   0    0    1   0   -1  0;
    1   0    -1   0   0   0   0;
    0   1    0    -1  0   0   0;
    0   0    0    0   0   1   -1;
    0   -1   1    0   -1  0   0;
    0   0    0    0   1   0   0];

    Y = A * diag (Yv) * A';

    %конец исходных данных


    %параметры расчета
    %здесь попробовать разный шаг от 0.0001 до 1 и разное время расчета
    h = 0.01;          %шаг расчета
    t = 3;              %время расчета
    n_max = ceil(t/h);  %кол-во шагов расчета

    %константы
    %сопротивления ветвей необходимо разделить на активное сопротивление
    %и индуктивность для записи уравнений
    R = real(Zv);
    L = imag(Zv)/314.15;

    %далее делаем n_max шагов метода Эйлера
    %на каждом шаге решаем систему диф. ур, предварительно записав
    for n = 0:n_max

        %начальные условия
        %это будет вектор токов Iv
        %начальным условием будет режим, который считали в предыдущих лабах    
        J = conj ( S ./ (U+U0) /1.732 ); %правая часть МУН    
        U = 1.732 * inv(Y) * J;
        Iv = A' * U .* Yv /1.732; 

        %аварийное возмущение в момент времени 1 сек
        if (h*n>1)
            Iv(1)=0;
        end

        %дальше записывается система уравнений, которая состоит из
        %линейных ур-й + дифур

        %матрица коэффициентов этих уравнений
         W = [
             A'               -diag(L)   ;
             zeros(size(A,1))    A      ];

         %матрица свободных членов
         V = [
             Iv.*R;
             J];

         %делаем расчет по методу Гаусса
         X = inv(W)*V;

         %выделение только нужных переменных из вектора результатов X
         dI_dt = X(length(U)+1:length(X));

         %промежуточное сохранение для вывода на график
         Jv(:,n+1) = abs(Iv);

         %метод Эйлера
         Iv = Iv + h * dI_dt;
    end

    disp('Напряжения в конце расчёта:')
    disp(abs(U+U0))
    %вывод на график токов в ветвях
    plot( ...
            [0:h:t],Jv(1,:),'r',...
            [0:h:t],Jv(2,:),'g',...
            [0:h:t],Jv(3,:),'b',...
            [0:h:t],Jv(4,:),'k',...
            [0:h:t],Jv(5,:),'r--',...
            [0:h:t],Jv(6,:),'g--',...
            [0:h:t],Jv(7,:),'b--');
        
end

  %В отчёте показать графики для шага расчёта h=1; 0.1; 0.01; 0.001
  %Для каждого шага h подобрать оптимальное время расчёта t для лучшей наглядности
  %В выводе написать на что влияет шаг расчёта h и как от него зависит точность расчёта? Как отключение линии влияет на напряжения в узлах?
  %Отчёт по этой лабораторной выложить до 17:00 12.11.2021 в группу в Тимс Путь:Файлы/Гр.90201/Л.Р. №6
  %Отчёты по остальным лабораторным выкладываем в соответствующую папку в Тимс Путь:Файлы/Гр.90201/
Соседние файлы в папке лаба 6