Скачиваний:
19
Добавлен:
30.12.2020
Размер:
6.21 Кб
Скачать
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;

U1phi=120*(1-Xphi+Xphi);

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

U1psi=120*(1-exp(-1/tau * (10^(-4)-(120-Xpsi)/300000))); %введи свою функцию напряжения U1psi
U1l=120*(2-exp(-1/tau * (10^(-4)-(120-X1l)/300000))); %введи свою функцию напряжения U1l
U20=60*exp(-1/tau * (10^(-4)-(X20-120)/300000)); %введи свою функцию напряжения U20

figure;
hold on;
grid on;

plot(Xphi,U1phi,'-','LineWidth',1.3,'color',[255 255 0]/255); %строим U1phi
plot([90 120],[120 120],'--','LineWidth',1.3,'color',[255 255 0]/255);
plot(Xpsi,U1psi,'--','LineWidth',1.3,'color',[0 0 255]/255); %строим U1psi
plot(X1l,U1l,'-','LineWidth',1.3,'color',[255 0 0]/255); %строим U1l
plot(X20,U20,'-','LineWidth',1.3,'color',[0 255 0]/255); %строим U20

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


ylabel('u(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, 8,'х,км', 'FontSize',12);


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

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

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

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

%строим вертикальную прямую по середине. Меняйте значение высоты, если надо
plot([120 120], [min([min(U1psi) min(U1phi) min(U1l) min(U20)])-75 -13],'-','LineWidth',1.3,'color',[0 0 0]);
plot([120 120], [0 max([max(U1psi) max(U1phi) max(U1l) max(U20)])+100],'-','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(U1l) min(U20)])-30 min([min(U1psi) min(U1phi) min(U1l) min(U20)])-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(U1l) min(U20)])-40 min([min(U1psi) min(U1phi) min(U1l) min(U20)])-40]; %меняйте координаты высоты стрелки, если надо
x2.LineWidth = 1;
x2.HeadWidth = 8;
x2.HeadLength = 8;

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

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

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

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

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

%U1l
u1l = annotation('arrow');
u1l.Parent = gca;
u1l.X = [X1l(2000) X1l(2000)-15];
u1l.Y = [U1l(2000) U1l(2000)];
u1l.LineWidth = 0.5;
u1l.HeadWidth = 4;
u1l.HeadLength = 4;
text(X1l(2000)-15+2, U1l(2000)+10,'u_{1l}(x_{1}'')', 'FontSize',12);

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

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