Скачиваний:
20
Добавлен:
30.12.2020
Размер:
6.26 Кб
Скачать
clc,close all;

tau=4*10^(-4); %введи своё тау

Xphi=0:0.01:90;
Xpsi=90:0.01:120;
X1l=90:0.01:120;
X20=120:0.01:150;

i1phi=300*(1-Xphi+Xphi);

%exp(параша) - эту часть нигде не меняйте, потому что она у всех одинаковая

i1psi=-300*(1-exp(-1/tau * (10^(-4)-(120-Xpsi)/300000))); %введи свою функцию тока i1psi
i1l=300*exp(-1/tau * (10^(-4)-(120-X1l)/300000)); %введи свою функцию тока i1l
i20=150*exp(-1/tau * (10^(-4)-(X20-120)/300000)); %введи свою функцию тока i20

figure;
hold on;
grid on;

plot(Xphi,i1phi,'-','LineWidth',1.3,'color',[255 255 0]/255); %строим i1phi
plot([90 120],[300 300],'--','LineWidth',1.3,'color',[255 255 0]/255);
plot(Xpsi,i1psi,'--','LineWidth',1.3,'color',[0 0 255]/255); %строим i1psi
plot(X1l,i1l,'-','LineWidth',1.3,'color',[255 0 0]/255); %строим i1l
plot(X20,i20,'-','LineWidth',1.3,'color',[0 255 0]/255); %строим i20

xlim([0 170]);
ylim([min([min(i1psi) min(i1phi) min(i1l) min(i20)])-75 max([max(i1psi) max(i1phi) max(i1l) max(i20)])+100]); %если не работает из-за этой строчки, то ставьте сами числа на рандоме и смотрите


ylabel('i(x), А'); %название оси Y

%Строим свою ось Х
x = annotation('arrow');
x.Parent = gca;
x.X = [0 165];
x.Y = [0 0];
x.LineWidth = 1;
x.HeadWidth = 8;
x.HeadLength = 8;

%засечки на оси Х
for i=0:3:15
plot([10*i 10*i], [-3 3],'-','LineWidth',1.3,'color',[0 0 0]);
end
text(28.65, -7,'30', 'FontSize',12);
text(58.65, -7,'60', 'FontSize',12);
text(88.65, -7,'90', 'FontSize',12);
text(118.65, -7,'120', 'FontSize',12);
text(148.65, -7,'150', 'FontSize',12);

%название оси
text(160, 12,'х,км', 'FontSize',12);


%подибрайте значения, чтобы на оси Y были нужные вам засечки
set(gca,'XTick',0:30:160,'YTick',10*floor((min([min(i1psi) min(i1phi) min(i1l) min(i20)]))/10):20:max([max(i1psi) max(i1phi) max(i1l) max(i20)])+100);

%строим серую штриховку
for i=1:8
plot([10*i 10*i], [0 i1phi(1)],'-','LineWidth',1.3,'color',[0.7 0.7 0.7]);
end

for i=9:11
plot([10*i 10*i], [0 i1l(1000*(i-9)+1)],'-','LineWidth',1.3,'color',[0.7 0.7 0.7]);
end
plot([90 90], [0 i1l(1)],'-','LineWidth',1.3,'color',[0.7 0.7 0.7]);

for i=13:15
plot([10*i 10*i], [0 i20(1000*(i-12)+1)],'-','LineWidth',1.3,'color',[0.7 0.7 0.7]);
end

%строим вертикальную прямую по середине. Меняйте значение высоты, если надо
plot([120 120], [min([min(i1psi) min(i1phi) min(i1l) min(i20)])-75 -13],'-','LineWidth',1.3,'color',[0 0 0]);
plot([120 120], [0 max([max(i1psi) max(i1phi) max(i1l) max(i20)])+100],'-','LineWidth',1.3,'color',[0 0 0]);
%строим вектора
x1shtrih = annotation('arrow');
x1shtrih.Parent = gca;
x1shtrih.X = [120 80];
x1shtrih.Y = [min([min(i1psi) min(i1phi) min(i1l) min(i20)])-30 min([min(i1psi) min(i1phi) min(i1l) min(i20)])-30]; %меняйте координаты высоты стрелки, если надо
x1shtrih.LineWidth = 1;
x1shtrih.HeadWidth = 8;
x1shtrih.HeadLength = 8;

x2 = annotation('arrow');
x2.Parent = gca;
x2.X = [120 160];
x2.Y = [min([min(i1psi) min(i1phi) min(i1l) min(i20)])-40 min([min(i1psi) min(i1phi) min(i1l) min(i20)])-40]; %меняйте координаты высоты стрелки, если надо
x2.LineWidth = 1;
x2.HeadWidth = 8;
x2.HeadLength = 8;

%надписи векторов
text(80, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-15,'x_{1}''', 'FontSize',12);
text(160, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-30,'x_{2}', 'FontSize',12);

%засечки
for i=9:11
plot([10*i 10*i], [min([min(i1psi) min(i1phi) min(i1l) min(i20)])-33 min([min(i1psi) min(i1phi) min(i1l) min(i20)])-27],'-','LineWidth',1.3,'color',[0 0 0]);
end
text(88.65, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-40,'30', 'FontSize',12);
text(98.65, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-40,'20', 'FontSize',12);
text(108.65, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-40,'10', 'FontSize',12);

for i=13:15
plot([10*i 10*i], [min([min(i1psi) min(i1phi) min(i1l) min(i20)])-43 min([min(i1psi) min(i1phi) min(i1l) min(i20)])-37],'-','LineWidth',1.3,'color',[0 0 0]);
end
text(128.65, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-50,'10', 'FontSize',12);
text(138.65, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-50,'20', 'FontSize',12);
text(148.65, min([min(i1psi) min(i1phi) min(i1l) min(i20)])-50,'30', 'FontSize',12);

%Стрелки возле графиков и подписи к ним

%i1psi
ii1psi = annotation('arrow');
ii1psi.Parent = gca;
ii1psi.X = [Xpsi(2000) Xpsi(2000)-15];
ii1psi.Y = [i1psi(2000) i1psi(2000)]; %меняйте координаты высоты стрелки, если надо
ii1psi.LineWidth = 0.5;
ii1psi.HeadWidth = 4;
ii1psi.HeadLength = 4;
text(Xpsi(2000)-15, i1psi(2000)+12,'i_{\psi1}(x_{1}'')', 'FontSize',12);

%i1l
ii1l = annotation('arrow');
ii1l.Parent = gca;
ii1l.X = [X1l(2000) X1l(2000)-15];
ii1l.Y = [i1l(2000) i1l(2000)];
ii1l.LineWidth = 0.5;
ii1l.HeadWidth = 4;
ii1l.HeadLength = 4;
text(X1l(2000)-15, i1l(2000)+11,'i_{1l}(x_{1}'')', 'FontSize',12);

%i20
ii20 = annotation('arrow');
ii20.Parent = gca;
ii20.X = [X20(1500) X20(1500)+15];
ii20.Y = [i20(1500) i20(1500)];
ii20.LineWidth = 0.5;
ii20.HeadWidth = 4;
ii20.HeadLength = 4;
text(X20(1500)+15-2, i20(1500)+30,'i_{20}(x_{2})', 'FontSize',12);

%изменяйте координаты расположения текста как вам надо, чтоб было красиво
text(12, i1phi(1)+15,'i_{\phi1}', 'FontSize',12);
% ax=gca
% ax.XColor=[240 240 240]/255;
% ax.YColor=[240 240 240]/255;
Соседние файлы в папке графики для курсача в матлабе