payfsl
級別: 工控俠客
|
首先感謝你的回復(fù)!電控確實有難度,但是機械已經(jīng)黔驢技窮了,少說也已經(jīng)努力了5年,做過很多方法,比如沖壓折彎,滾彎,拉彎,熱彎,冷彎,等等已經(jīng)說不盡了,現(xiàn)在是想在電控上面做一下配合 |
|
---|---|---|
|
payfsl
級別: 工控俠客
|
(1)位置式PID OUT= Kp *Ek+(((Kp*T)/Ti)+((Kp*Td)/T)*(Ek-Ek-1))+OUT0 (2)增量式PID △OUT=OUTk-OUTk-1= Kp (Ek-Ek-1)+((Kp*T)/Ti) Ek+((Kp*Td)/T)*(Ek-2*Ek1+Ek-2) Ek: 本次的偏差 Ek-1: 上次的偏差 Ek-2: 上上次的偏差 Kp:算法增益調(diào)節(jié) Ti: 積分時間 Td: 微分時間常數(shù) |
|
---|---|---|
|
payfsl
級別: 工控俠客
|
PID程序: pid.cpp #ifndef _PID_SOURCE_ #define _PID_SOURCE_ #include <iostream> #include <cmath> #include "pid.h" using namespace std; class PIDImpl { public: PIDImpl( double dt, double max, double min, double Kp, double Kd, double Ki ); ~PIDImpl(); double calculate( double setpoint, double pv ); private: double _dt; double _max; double _min; double _Kp; double _Kd; double _Ki; double _pre_error; double _integral; }; PID::PID( double dt, double max, double min, double Kp, double Kd, double Ki ) { pimpl = new PIDImpl(dt,max,min,Kp,Kd,Ki); } double PID::calculate( double setpoint, double pv ) { return pimpl->calculate(setpoint,pv); } PID::~PID() { delete pimpl; } /** * Implementation */ PIDImpl::PIDImpl( double dt, double max, double min, double Kp, double Kd, double Ki ) : _dt(dt), _max(max), _min(min), _Kp(Kp), _Kd(Kd), _Ki(Ki), _pre_error(0), _integral(0) { } double PIDImpl::calculate( double setpoint, double pv ) { // Calculate error double error = setpoint - pv; // Proportional term double Pout = _Kp * error; // Integral term _integral += error * _dt; double Iout = _Ki * _integral; // Derivative term double derivative = (error - _pre_error) / _dt; double Dout = _Kd * derivative; // Calculate total output double output = Pout + Iout + Dout; // Restrict to max/min if( output > _max ) output = _max; else if( output < _min ) output = _min; // Save error to previous error _pre_error = error; return output; } PIDImpl::~PIDImpl() { } #endif [ 此帖被payfsl在2022-05-12 07:49重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|
payfsl
級別: 工控俠客
|
機械制作初步完成,下周準備調(diào)試 [ 此帖被payfsl在2022-06-21 20:40重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|
payfsl
級別: 工控俠客
|
進入調(diào)試階段 [ 此帖被payfsl在2022-06-21 20:39重新編輯 ] |
|
---|---|---|
|
菜鳥學工控_1
級別: 工控俠客
|
期待樓主的好消息,個人認為很有難度和挑戰(zhàn)性,做好了也讓我們學習學習 |
---|---|
|