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

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

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

U1psi=120*(1-exp(-1/tau * (3*10^(-4)-(120-X1psi)/300000))); %введи свою функцию напряжения U1psi
U1=120*(2-exp(-1/tau * (3*10^(-4)-(120-X1)/300000))); %введи свою функцию напряжения U1l
U2phi=60*exp(-1/tau * (3*10^(-4)-(X2phi-120)/300000)); %введи свою функцию напряжения U2phi
U2phipravo=60*exp(-1/tau * (3*10^(-4)-(X2psi-120)/300000)); %введи свою функцию напряжения U2phi, но оставь X2psi
U2psi=220/3*exp(-2500 * (10^(-4)-(180-X2psi)/300000))-400/3 * exp(-25000 * (10^(-4)-(180-X2psi)/300000)); %введи свою функцию напряжения U2psi
UH=U2phipravo+U2psi;

figure;
hold on;
grid on;

plot(X1phi,U1phi,'-','LineWidth',1.3,'color',[255 255 0]/255); %строим U1phi
plot([30 120],[120 120],'--','LineWidth',1.3,'color',[255 255 0]/255);
plot(X1psi,U1psi,'--','LineWidth',1.3,'color',[0 0 255]/255); %строим U1psi
plot(X1,U1,'-','LineWidth',1.3,'color',[255 0 0]/255); %строим U1l
plot(X2phi,U2phi,'-','LineWidth',1.3,'color',[255 255 0]/255); %строим U2phi
plot(X2psi,U2psi,'--','LineWidth',1.3,'color',[0 0 255]/255); %строим U2psi
plot(XH,UH,'-','LineWidth',1.3,'color',[255 0 0]/255); %строим UH

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


ylabel('u(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, -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(178.65, -7,'180', 'FontSize',12);

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


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

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

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

for i=13:14
plot([10*i 10*i], [0 U2phi(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 UH(1000*(i-15)+1)],'-','LineWidth',1.3,'color',[0.7 0.7 0.7]);
end

%строим вертикальную прямую по середине. Меняйте значение высоты, если надо
plot([120 120], [0 max([max(U1psi) max(U1phi) max(U1) max(U2phi) max(U2psi) max(UH)])+100],'-','LineWidth',1.3,'color',[0 0 0]);
plot([120 120], [min([min(U1psi) min(U1phi) min(U1) min(U2phi) min(U2psi) min(UH)])-10 -13],'-','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);
%}

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

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

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


text(X2phi(100)+2, U2phi(100)+10,'u_{\phi2}', 'FontSize',12);

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

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

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