Скачиваний:
47
Добавлен:
30.12.2020
Размер:
6 Кб
Скачать
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;
Соседние файлы в папке графики для курсача в матлабе