How to make decreasing quadratic curve?

2 次查看(过去 30 天)
Hi, I am looking a decreaing quadratic of red colour in the image below. But when I script, I get the curve (in blue). Can someone help me to fix this?
clear all; close all; clc;
fs = 10200; % sampling frequency
dt = 1/fs;
T = 26; % total time
tVec = dt:dt:T; % time vector
rpm2 = 4500; f2 = rpm2/60;
rpm3 = 0; f3 = rpm3/60;
beta = (f3-f2)/T.^2; % slope rate;
finst = f2 + beta*tVec.^2.';
Speed = finst * 60;
figure()
plot(tVec, Speed)
grid on; box on;

采纳的回答

DGM
DGM 2022-10-20
Are you after something like this?
fs = 10200; % sampling frequency
dt = 1/fs;
T = 26; % total time
rpm2 = 4500; f2 = rpm2/60;
rpm3 = 0; f3 = rpm3/60;
tVec = dt:dt:T; % time vector
beta = (f3-f2)/T.^2; % slope rate;
finst = f3 - beta*(T-tVec).^2.';
Speed = finst * 60;
plot(tVec, Speed)
grid on; box on;

更多回答(1 个)

Image Analyst
Image Analyst 2022-10-20
Well your formula just doesn't do that. But here's something closer. At least I have the colors of the lines changing.
all_rpm2 = linspace(4500, -1000, 10);
numCurves = numel(all_rpm2)
numCurves = 10
% Create red colormap
cmap = zeros(numCurves, 3);
cmap(:, 1) = linspace(0.2, 1, numCurves)';
fs = 10200; % sampling frequency
dt = 1/fs;
T = 26; % total time
tVec = dt:dt:T; % time vector
for k = 1 : length(all_rpm2)
rpm2 = all_rpm2(k)
f2 = rpm2/60;
rpm3 = 0;
f3 = rpm3/60;
beta = (f3-f2)/T.^2; % slope rate;
finst = f2 + beta * tVec.^2.';
Speed = finst * 60;
plot(tVec, Speed, 'Color', cmap(k, :), 'LineWidth', 3)
grid on;
box on;
hold on;
end
rpm2 = 4500
rpm2 = 3.8889e+03
rpm2 = 3.2778e+03
rpm2 = 2.6667e+03
rpm2 = 2.0556e+03
rpm2 = 1.4444e+03
rpm2 = 833.3333
rpm2 = 222.2222
rpm2 = -388.8889
rpm2 = -1000

类别

Help CenterFile Exchange 中查找有关 Frequency Transformations 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by