pythonpid传递函数_一看就懂,关于PID控制中yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;的理解...

本文通过MATLAB代码解释了PID控制器中yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;的计算过程,涉及离散化传递函数和位置式PID控制。同时指出网络上流传的错误代码并提供修正方案。
摘要由CSDN通过智能技术生成

% clear ;

% clc ;

function [time,rin,yout]=PID_position(S)

%设一被控对象G(s)=5/(0.5*s^2+1*s),

% r ====> e ====>(Kp,Ki/s,Kd*s)====> u ====> y

%用位置式PID

%init

ts=0.001; %采样时间

sys=tf(5,[0.5,1, 0]) %tf是传递函数 即被控对象函数G();

dsys=c2d(sys,ts,'z') %把控制函数离散化取Z变换n阶定常离散系统差分方程

%dsys即Y(z)/U(z)

[num,den]=tfdata(dsys,'v');% 离散化后提取分子、分母

u_1=0.0;u_2=0.0;u_3=0.0;

y_1=0.0;y_2=0.0;y_3=0.0;

x=[0,0,0]';

error_1=0;

% S=input('输入信号选择\n1:阶跃信号, 2:方波信号 3:正弦信号 4.斜坡信号 5.抛物线信号\n'); %输入信号选择

% S=1;

%时间序列循环

for k=1:1:15000 %时间离散1500ms

time(k)=k*ts;

if S==1

% kp=0.02; Ki=Kp/Ti; kd=Kp*Td

kp=0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值