我有一个实验室,我需要首先为四阶质量弹簧阻尼系统驱动传递函数,然后将其绘制成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
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
虽然不是一个干净的解决方案,但这可行:
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)
Run Code Online (Sandbox Code Playgroud)