Граф Легенда MATLAB For Loop - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть лаборатория, в которой мне нужно сначала получить передаточную функцию для системы массовых пружинных амортизаторов четвертого порядка, а затем построить ее для шага 200N. Коэффициент демпфирования дашпота является переменной величиной, и мы должны графически построить диапазон значений и выбрать оптимальное значение, т. Е. Наиболее близкое к критически затухающему отклику.

У меня все вышеперечисленные задачи работают полностью, как и ожидалось, и, может быть, я просто тупой, но я не могу заставить легенду графика вести себя так, как хотелось бы. В идеале я хотел бы сказать «B =» Текущее значение B для этого изменения цикла.

%Initialisations
close all;format short g;format compact;clc;clear;
k1=500000;
k2=20000;
m1=20;
m2=400;
opt=stepDataOptions('StepAmplitude',200);
for (b = [1000:1000:15000])
Hs = tf([b k2],[(m1*m2) (b*(m1+m2)) (k2*(m1+m2)+k1*m2) (b*k1) (k1*k2)]);
hold on;
stepplot(Hs,opt)
title("Shock Absorber Performance to Step Input");
ylabel("Force (N)");
legend;
hold off;
end

Заранее спасибо:)

1 Ответ

0 голосов
/ 14 ноября 2018

Хотя это не такое чистое решение, оно будет работать:

close all;format short g;format compact;clc;clear;

k1=500000;
k2=20000;
m1=20;
m2=400;
opt=stepDataOptions('StepAmplitude',200);

% initialize a cell array that will hold the labels
labels = {};

for (b = [1000:1000:15000])
    Hs = tf([b k2],[(m1*m2) (b*(m1+m2)) (k2*(m1+m2)+k1*m2) (b*k1) (k1*k2)]);
    hold on;
    stepplot(Hs,opt)
    title("Shock Absorber Performance to Step Input");
    ylabel("Force (N)");
    hold off;

    % set the label name, with the value for b
    labels{end+1} = ['B = ' num2str(b)];
end

% create the legend with the labels
legend(labels)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...