Нашёл в профильной статье код программы, написанной в матлаб, но рабочих файлов приложено не было. Вытащил код программы из текста статьи, внес в матлаб - не работает. потихоньку устраняю найденные огрехи, но последняя ошибка вводит в ступор. Может, кто встречался с таким?
P.S. Сроки поджимают, в конце неделb результаты испытаний программы показывать(
Основная программа:
Код: Выделить всё
%параметры трансформатора
L2=3.644*10^-5; %индуктивность вторичной обмотки, Гн
Ln=0.001146; %индуктивность нагрузки ТТ, Гн
R2=0.31; %сопротивление вторичной обмотки, Ом
Rn=0.48; %сопротивление нагрузки ТТ, Ом
w1=1; w2=200; %число витков первичной и вторичной обмотки
s=0.0007; %площадь сечения магнитопровода, м^2
l=0.37; %средняя длина магнитного пути, м
%коэффициенты кривой намагничивания
a=10^-12; b=19.04; c=18.1;
%задание массива времени
tk=0.2; %время окончания расчета, с
tsample=0.0001; %шаг расчета, с
ti=0:tsample:tk;
%задание массива первичного тока
i1m=10000; %амплитуда первичного тока, А
om=2*pi*50; %циклическая частота, рад/с
phi=-pi/2; %начальная фаза первичного тока, рад
i1=i1m*sin(om*ti+phi)+i1m*exp(-10*ti);
%задание массива производной первичного тока
di1=diff(i1)./diff(ti);
%начальные условия
%индукция
B0=0;
%вторичный ток
i20=i1(1,1)*w1/w2;
for i=1:length(di1)
%решение системы уравнений
[t,x] = ode45('CT',[ti(i) ti(i+1)],[B0;i20]);
%запись в массив
i2(i+1)=x(length(x(:,2)),2);
B(i+1)=x(length(x(:,1)),1);
%новые начальные условия
B0=x(length(x(:,1)),1);
i20=x(length(x(:,2)),2);
end
Код файла-функции:
Код: Выделить всё
function F=CT(t,x)
%x1 – индукция
%x2 – ток во вторичной обмотке
global L2 Ln R2 Rn w1 w2 s l a b c di1 i
L2=3.644*10^-5; %индуктивность вторичной обмотки, Гн
Ln=0.001146; %индуктивность нагрузки ТТ, Гн
R2=0.31; %сопротивление вторичной обмотки, Ом
Rn=0.48; %сопротивление нагрузки ТТ, Ом
w1=1; w2=200; %число витков первичной и вторичной обмотки
s=0.0007; %площадь сечения магнитопровода, м^2
l=0.37; %средняя длина магнитного пути, м
%коэффициенты кривой намагничивания
a=10^-12; b=19.04; c=18.1;
%задание массива времени
tk=0.2; %время окончания расчета, с
tsample=0.0001; %шаг расчета, с
ti=0:tsample:tk;
%задание массива первичного тока
i1m=10000; %амплитуда первичного тока, А
om=2*pi*50; %циклическая частота, рад/с
phi=-pi/2; %начальная фаза первичного тока, рад
i1=i1m*sin(om*ti+phi)+i1m*exp(-10*ti);
%задание массива производной первичного тока
di1=diff(i1)./diff(ti);
%начальные условия
%индукция
B0=0;
%вторичный ток
i20=i1(1,1)*w1/w2;
F=zeros(2,1);
a =(w2*x(2)*(R2+Rn)+(L2+Ln)*w1*di1(i));
b =(w2*s*w2+(L2+Ln)*l*(a*b*cosh(b*x(1))+c));
F(1)=a/b;
F(2)=(-l*(a*b*cosh(b*x(1))+c)*x(2)*(R2+Rn)+w2*s*w1*di1(i))/(w2*s*w2+(L2+Ln)*l*(a*b*cosh(b*x(1))+c));
end