我有一个实验室,我需要首先为四阶质量弹簧阻尼器系统提供传递函数,然后绘制该函数以获得200N阶跃响应。 减震器阻尼系数是一个变量,我们将以图形方式绘制一系列值,然后选择最佳值(即最接近临界阻尼响应的值)。
我已经完成了所有上述任务,按预期进行了工作,也许我只是在这里呆呆了,但我无法使图例达到预期的效果。 理想情况下,我希望对循环的这种影响说“ B =“ B的当前值”。
import cv2
import numpy as np
img = cv2.imread('IPMP.jpg', 1)
height = img.shape[0]
width = img.shape[1]
print(height, width)
out = np.ones((height, width, 3), np.uint8)
def shearing(img, Bx, By):
for y in range(height):
for x in range(height):
img[int(x * By + y), int(x + y * Bx)] = img[x, y]
shearing(img, -0.5, 0)
cv2.imshow('shearedImage', img)
cv2.waitKey(0)
cv2.destryAllWindows()
预先感谢:)
答案 0 :(得分:5)
虽然不是一个干净的解决方案,但这将起作用:
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)