% Формирование анализируемой характеристики:
x=lfile0(nstart:nfinish); % Значения по абсциссе
y=lfile0(nfinish+1:nfinish+ni); % Значения по ординате
t=i0; % Переприсвоение значений абсцисс
s=y; % Переприсвоение значений ординат
s(1)=0;
N=length(t); k=N; % Длина вектора t
% Организация интерполяции сплайном
sh=1; % Счетчик
% Новые значения абсцисс с учетом известного k
t1(1)=t(1); % Переприсвоение 1 точки
for j=2:N
sti0=(i0(j)-i0(j-1))/k; % Шаг
for jv=1:k
sh=sh+1;
t1(sh)=t1(sh-1)+sti0; % Точки интерполянта по оси абсцисс
end
end
% Сплайн-интерполяция характеристики без использования возможности
% сглаживания, но представления результатов в полиномиальной форме
spl=csaps(t,s,1);
% 1-я производная в узлах интерполяции характеристики
dsdt=fnder(spl);
dsdt=fnval(dsdt,t1);
% 2-я производная в узлах интерполяции характеристики
dsdt2=fnder(spl,2);
dsdt2=fnval(dsdt2,t1);
figure(2);
hold on;
plot(t1,dsdt,'b');
hold off;
grid on;
XLABEL('X')
YLABEL('1-я производная от Y')
figure(3);
hold on;
yy2=spline(t1,dsdt2);
%plot(t,yy2,'k'); Хочешь, проверь что получится
fnplt(yy2,'k')
hold off;
grid on;
XLABEL('X')
YLABEL('2-я производная от Y')
figure(1);
hold on;
plot(t,s,'o',t1,fnval(spl,t1),'k');
hold off;
grid on;
XLABEL('Значение "Х"')
YLABEL('Значение "Y"')
LEGEND('- базовые узлы','- исходная характеристика.',...
'РАССТАНОВКУ НОВЫХ УЗЛОВ ', ...
'ВЫПОЛНЯТЬ НАЧИНАЯ С НУЛЯ.', ...
'ЧИСЛО УЗЛОВ НЕ МЕНЯТЬ!',4)
[t,y,BUTTON]=GINPUT(N); %Графический ввод предполагаемых узлов
% Обработка новых узлов
y(1)=0; % Для исключения неточности в начале
s=y;
sh=1;
%Новые значения абсцисс и ординат с учетом k
t1(1)=t(1);
for j=2:N
sti0=(i0(j)-i0(j-1))/k; % Шаг по абсциссе характеристики
for jv=1:k
sh=sh+1;
t1(sh)=t1(sh-1)+sti0;
end
end
yn=spline(t,s,t1);
spl=csaps(t,s,1);
% 1-я производная в узлах
dsdt=fnder(spl);
dsdt=fnval(dsdt,t1);
% 2-я производная в узлах
ds=fnder(spl,2);
ds2=fnval(ds,t1);
dsdt2=csaps(t1,ds2,1);
figure(1);
hold on;
plot(t,s,'+',t1,fnval(spl,t1),'-.');
hold off;
grid on;
%TITLE ('Волнистость-свидетельство плохого подбора. Продолжить -"Enter"')
XLABEL('Значение "Х"')
YLABEL('Значение "У"')
LEGEND('- базовые узлы','- исходная характеристика.', ...
'- скорректированные узлы и','- характеристика.', ...
'Для продолжения нажать "Enter".',4)
pause
figure(2);
hold on;
plot(t1,dsdt,'-.');
hold off;
grid on;
%TITLE('В пределе кривая должна быть монотонной !')
XLABEL('Значение "Х"')
YLABEL('1-я производная от "У"')
LEGEND('- исходная и','- cкоректированная',' характеристики.', ...
'КРИВАЯ ДОЛЖНА ', 'БЫТЬ УНИМОДАЛЬНОЙ!',1)
figure(3);
hold on;
plot(t1,fnval(dsdt2,t1),'-.');
hold off;
grid on;
%TITLE('Смена знака кривой-свидетельство плохого выбор узлов')
XLABEL('Значение "Х"')
YLABEL('2-я производная от "У"')
LEGEND('- исходная и','- cкоректированная',' характеристики.',...
'КРИВАЯ НЕ ДОЛЖНА ', ' БЫТЬ КОЛЕБАТЕЛЬНОЙ!',4)
% Сохранение на случай, если обработка откладывается «на потом»
save YY.DAT yn /ascii
save YY1.DAT dsdt /ascii
save Y.DAT y /ascii
save X.DAT t /ascii
[1] Намагничивающая сила каждой обмотки оценивается произведением тока в ней на число витков: Iw
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.