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

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

X1phi=0:0.01:30;
X1psi=30:0.01:120;
X1=30:0.01:120;
X2phi=120:0.01:180;
X2psi=150:0.01:180;
XH=150:0.01:180;

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

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

i1psi=-300*(1-exp(-1/tau * (3*10^(-4)-(120-X1psi)/300000))); %введи свою функцию тока i1psi
i1=300*exp(-1/tau * (3*10^(-4)-(120-X1)/300000)); %введи свою функцию тока i1l
i2phi=150*exp(-1/tau * (3*10^(-4)-(X2phi-120)/300000));%введи свою функцию тока i2phi
i2phipravo=150*exp(-1/tau * (3*10^(-4)-(X2psi-120)/300000)); %введи свою функцию тока i2phi, но оставь Х2psi
i2psi=-550/3*exp(-2500 * (10^(-4)-(180-X2psi)/300000))+1000/3 * exp(-25000 * (10^(-4)-(180-X2psi)/300000)); %введи свою функцию тока i2psi
iH=i2phipravo+i2psi;

figure;
hold on;
grid on;

plot(X1phi,i1phi,'-','LineWidth',1.3,'color',[255 255 0]/255); %строим i1phi
plot([30 120],[300 300],'--','LineWidth',1.3,'color',[255 255 0]/255);
plot(X1psi,i1psi,'--','LineWidth',1.3,'color',[0 0 255]/255); %строим i1psi
plot(X1,i1,'-','LineWidth',1.3,'color',[255 0 0]/255); %строим i1
plot(X2phi,i2phi,'-','LineWidth',1.3,'color',[255 255 0]/255); %строим i2phi
plot(X2psi,i2psi,'--','LineWidth',1.3,'color',[0 0 255]/255); %строим i2psi
plot(XH,iH,'-','LineWidth',1.3,'color',[255 0 0]/255); %строим iH

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


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

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

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

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


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

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

for i=4:11
plot([10*i 10*i], [0 i1(1000*(i-3)+1)],'-','LineWidth',1.3,'color',[0.7 0.7 0.7]);
end
plot([30 30], [0 i1(1)],'-','LineWidth',1.3,'color',[0.7 0.7 0.7]);

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

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

%строим вертикальную прямую по середине. Меняйте значение высоты, если надо
plot([120 120], [0 max([max(i1psi) max(i1phi) max(i1) max(i2phi) max(i2psi) max(iH)])+100],'-','LineWidth',1.3,'color',[0 0 0]);
plot([120 120], [min([min(i1psi) min(i1phi) min(i1) min(i2phi) min(i2psi) min(iH)])-10 -20],'-','LineWidth',1.3,'color',[0 0 0]);

%{
%строим вектора
x1shtrih = annotation('arrow');
x1shtrih.Parent = gca;
x1shtrih.X = [120 80];
x1shtrih.Y = [min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-30 min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-30]; %меняйте координаты высоты стрелки, если надо
x1shtrih.LineWidth = 1;
x1shtrih.HeadWidth = 8;
x1shtrih.HeadLength = 8;

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

%надписи векторов
text(80, min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-20,'x_{1}''', 'FontSize',12);
text(160, min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-30,'x_{2}', 'FontSize',12);

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

for i=13:15
plot([10*i 10*i], [min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-43 min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-37],'-','LineWidth',1.3,'color',[0 0 0]);
end
text(128.65, min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-50,'10', 'FontSize',12);
text(138.65, min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-50,'20', 'FontSize',12);
text(148.65, min([min(U1psi) min(U1phi) min(U1) min(U2phi)])-50,'30', 'FontSize',12);
%}

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

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

%i1
ii1 = annotation('arrow');
ii1.Parent = gca;
ii1.X = [X1(2000) X1(2000)-15];
ii1.Y = [i1(2000) i1(2000)];
ii1.LineWidth = 0.5;
ii1.HeadWidth = 4;
ii1.HeadLength = 4;
text(X1(2000)-15+2, i1(2000)+15,'i_{1}', 'FontSize',12);


text(X2phi(100)+2, i2phi(100)+20,'i_{\phi2}', 'FontSize',12);

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

%UH
iiH = annotation('arrow');
iiH.Parent = gca;
iiH.X = [XH(1000) XH(1000)-15];
iiH.Y = [iH(1000) iH(1000)];
iiH.LineWidth = 0.5;
iiH.HeadWidth = 4;
iiH.HeadLength = 4;
text(XH(1000)-15, iH(1000)+15,'i_{2}', 'FontSize',12);

%изменяйте координаты расположения текста как вам надо, чтоб было красиво
text(12, i1phi(1)+15,'i_{\phi1}', 'FontSize',12);
Соседние файлы в папке графики для курсача в матлабе