⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pid_reg3.m

📁 异步电机矢量控制各模块仿真m函数
💻 M
字号:
function [pid_out_reg3,Y,h_out] = pid_reg3(pid_ref_reg3,pid_fdb_reg3,h_in,p)
% This function implement the PID controller with anti-windup 
% Inputs:  
%         pid_ref_reg3 = Reference signal
%         pid_fdb_reg3 = Feedback signal 
%         h_in  = [up_reg3; ui_reg3; ud_reg3] 
%         p = [T; Kp; Ti; Td; Kc; Umax; Umin]
%              1  2   3   4    5    6    7   
% Outputs:
%         pid_out_reg3 = Output signal
%         h_out  = [up_reg3; ui_reg3; ud_reg3] 
%         Y  = e_reg3; uprsat_reg3; saterr_reg3; up_reg3; ui_reg3; ud_reg3] 
% where 
%       T = Sampling period (sec)
%       Kp = Proportional gain
%       Ti = Integral (reset) time (sec)
%       Td = Derivative time (sec) 
%       Kc = Integral correction gain
%       Umax = Maximum limit of output
%       Umin = Minimum limit of output
%       e_reg3 = Error
%       uprsat_reg3 = Pre-saturated output 
%       saterr_reg3 = Saturated difference 
%       up_reg3 = Proportional output 
%       ui_reg3 = Integral output 
%       ud_reg3 = Derivative output 

% Defining PID constants
Kp_reg3 = p(2);
Ki_reg3 = p(1)/p(3);
Kd_reg3 = p(4)/p(1);  
Kc_reg3 = p(5);

% Name the variables
pid_out_max = p(6);pid_out_min = p(7);
up1_reg3 = h_in(1);
ui_reg3 = h_in(2);
ud_reg3 = h_in(3);

e_reg3 = pid_ref_reg3 - pid_fdb_reg3;
up_reg3 = Kp_reg3*e_reg3;
    
uprsat_reg3 = up_reg3 + ui_reg3 + ud_reg3;
    
if (uprsat_reg3 > pid_out_max)
    pid_out_reg3 =  pid_out_max;
elseif (uprsat_reg3 < pid_out_min)
    pid_out_reg3 =  pid_out_min;  
else
    pid_out_reg3 = uprsat_reg3;
end

saterr_reg3 = pid_out_reg3 - uprsat_reg3;
    
ui_reg3 = ui_reg3 + Ki_reg3*up_reg3 + Kc_reg3*saterr_reg3;
    
ud_reg3 = Kd_reg3*(up_reg3 - up1_reg3);
     
% History
h_out = [up_reg3; ui_reg3; ud_reg3];

% Return the results
Y  = [e_reg3; uprsat_reg3; saterr_reg3; up_reg3; ui_reg3; ud_reg3]; 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -