PID in ThingSpeak code

I tried to write pid code in thingspeak app matlab analysis, but I faced some problem. Can anyone help?
sensed_output = thingSpeakRead(readChannelID), control_signal;
setpoint=23;
Kp = 1;
Ki = 1;
Kd = 1;
T= 5000;
double total_error, last_error;
int max_control=100;
int min_control=0
double error = setpoint - sensed_output;
total_error += error;
if total_error >= max_control
total_error = max_control;
elseif total_error <= min_control
total_error = min_control;
else
total_error = total_error;
end
double delta_error = error - last _error;
control_signal = Kp*error + (Ki*T)*total_error + (Kd/T)*delta_error;
if control_signal >= max_control
control_signal = max_control;
elseif control_signal <= min_control
control_signal = min_control;
else
control_signal = control_signal;
end
last_error = error;
analyzedData = control_signal;00
%% Write Data %%
thingSpeakWrite(writeChannelID, analyzedData, 'WriteKey', writeAPIKey);

1 Comment

Do not use double or int before the lines where you assign values.

Sign in to comment.

Answers (1)

Christopher Stapels
Christopher Stapels on 25 Jan 2021

0 votes

I'd suggest you have a look at the MATLAB onramp. Its a two hour introduction to MATLAB fundamentals, I think you would find it really helpful. Once you have that down, I think writing the PID code will be much easier.

Communities

More Answers in the  ThingSpeak Community

Categories

Products

Asked:

on 23 Jan 2021

Community Treasure Hunt

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

Start Hunting!