Скачиваний:
5
Добавлен:
14.04.2019
Размер:
2.61 Кб
Скачать

clc
clear all
%% Ввод личных данных
gr = 14; % Введите номер группы
br = 10; % Введите номер бригады
fprintf(' Группа № %2.0f \n Бригада № %2.0f \n', gr, br)

%% Задайте Т-список в формате [1;2;3]
begin_nodes = [2;1;6;3;4;6;5;]; % Пример [4;1;1;2;3;3...]
end_nodes = [1;3;2;6;3;5;4;]; % Пример [1;4;2;3;2;4...]
Gv = [1;2.2;1;1;1;1;2];% Пример [1;1;2.2;0;2...]
Jv = [1;0;0;0;0;0;1];% Пример [1;0;0;0;2.2...]
N = length(Gv);
branch = (linspace(1,N,N))';
table(branch, begin_nodes, end_nodes,Gv, Jv)

%% Формирование расширенных (полных) матрицы узловых проводимостей и %вектора задающих токов
m=max(max(begin_nodes),max(end_nodes)); %всего узлов
N=length(Gv); %всего ветвей
% Вывод Т-списка
branch = (linspace(1,N,N))';
table(branch, begin_nodes, end_nodes,Gv, Jv)
%-------------------------------------------------------------------------
% введите размерность матриц Gp и Jp
%-------------------------------------------------------------------------
Gp = zeros(m,m); % см. описание
Jp = zeros(m,1); % см. описание
Ap = zeros(m,N); % см. описание
for i=1: N; % сколько раз должен отработать цикл for?
k=begin_nodes(i);
l=end_nodes(i);
%-------------------------------------------------------------------------
% введите выражение для пошагового расчета матрицы узловых проводимостей,
% вектора задающих токов, матрицы соединений
%-------------------------------------------------------------------------
Gp(k,k) = Gp(k,k)+Gv(i);
Gp(l,l) = Gp(l,l)+Gv(i);
Gp(k,l) = Gp(k,l)-Gv(i);
Gp(l,k) = Gp(l,k)-Gv(i);
Jp(k) = Jp(k)-Jv(i);
Jp(l) = Jp(l)+Jv(i);
Ap(k,i) = 1;
Ap(l,i) = -1;

end

%% Удаление строки и столбца последнего узла (базисного)
G=Gp;
G(m,:)=[];
G(:,m)=[];
J=Jp;
J(m,:)=[];
A=Ap;
A(m,:)=[];
G
J
A
%% Решение
%-------------------------------------------------------------------------
% выражение для расчета узловых напряжений
%-------------------------------------------------------------------------
U = G^(-1)*J;

%-------------------------------------------------------------------------
% выражение для расчета токов ветвей
%-------------------------------------------------------------------------
I = diag(Gv)*A'*U+Jv;

%-------------------------------------------------------------------------
% вывод результатов в командное окно
%-------------------------------------------------------------------------

fprintf('\nРасчёт потенциалов:\n\n');
for i=1:length(U)
fprintf('fi%1.0f = %0.3f В\n',i,U(i))
end
fprintf('\n\nРасчёт токов:\n\n');
for i=1:length(I);
fprintf('I%1.0f = %0.3f A\n',i,I(i))
end
Соседние файлы в папке код