sigmoid pid equation in matlab
조회 수: 8 (최근 30일)
이전 댓글 표시
hai everyone , how do i write this sigmoid pid equation into matlab
채택된 답변
Sam Chak
2022년 5월 28일
편집: Sam Chak
2022년 5월 29일
Hi Shah
I'm curious to to see how your designed Kp looks like. What is the pid equation?
Edit: Kp is a nonlinear proportional gain shaped by the sigmoid curve that is bounded by and .
% parameters
x = linspace(-6, 6, 1001);
Khigh = 5; % upper bound
Klow = 3; % lower bound
alpha = 1;
% construction of sigmoid
h = 1 + exp(-alpha*x);
g = Khigh - Klow;
f = g./h;
Kp = Klow + abs(f);
% plotting the nonlinear gain Kp
plot(x, Kp, 'linewidth', 1.5)
grid on
xlabel('error')
ylabel('Kp')
댓글 수: 5
Sam Chak
2022년 5월 29일
편집: Sam Chak
2022년 5월 29일
Hi @Shaz Shah
You did not comment about the suggested sigmoid in my previous post (edited to add an image of the plot). Anyhow, using the same parameters,
x = linspace(-6, 6, 1001);
Khigh = 5; % upper bound
Klow = 3; % lower bound
alpha = 1;
I have fixed your code
Kp = Klow - (abs(Khigh - Klow)./(1 + exp(-alpha*x)));
and plotted it
plot(x, Kp, 'linewidth', 1.5)
grid on
xlabel('error')
ylabel('Kp')
but I don't see any straight line. Sigmoid should look like an 'S'-shaped curve. Furthermore, the upper and lower bounds are definitely incorrect. You are advised to sketch the 'S'-curve with the upper and lower bounds. Only then, I can give a proper advice on getting the desired Sigmoid curve.
Edit #1: I have made a minor modification. I think that your sigmoidal equation should look like this:
Kp = Khigh - (abs(Khigh - Klow)./(1 + exp(-alpha*x)));
Perhaps you mean this one:
Edit #2: I guess you want to enter the 'AbsTol' as
1e-5
without the space between '1' and 'e'.
Query:
Is there a reason for you to select the Logistic function as a sigmoid curve? Better performance?
By the way, technically, this should work already
Kp = Khigh - (Khigh - Klow)./(1 + exp(-alpha*x));
where abs(X) is unnecessary.
추가 답변 (1개)
Mohd Ashraf
2022년 11월 30일
편집: Mohd Ashraf
2022년 11월 30일
Hi Shah,
You may refer to this link:
https://drive.google.com/uc?export=download&id=1Ut-zX3cTKn3r_kepRDe7_A5WPlsW3qjs
for the detail of the sigmoid PID code.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 PID Controller Tuning에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!