先进PID控制MATLAB——数字PID控制

一、PID基础

1.3 数字PID控制

  位置式PID

  按模拟PID控制算法,


以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向查分近似代替微分,即


可得离散PID表达式


式中,T为采样周期,k为采样序号。控制系统图和程序框图如下所示。


根据实际情况,对控制器输出进行限幅。

仿真

电机模型,M函数,ODE45求微分方程。

chap1_6.m

%Discrete PID control for continuous plant

clear all;

close all;

 

ts=0.001;  %Sampling time

xk=zeros(2,1);

e_1=0;

u_1=0;

 

for k=1:1:2000

time(k) = k*ts;

 

yd(k)=0.50*sin(1*2*pi*k*ts);

  

para=u_1;

tSpan=[0 ts];

[tt,xx]=ode45('chap1_6plant',tSpan,xk,[],para);

xk = xx(length(xx),:);

y(k)=xk(1); 

 

e(k)=yd(k)-y(k);

de(k)=(e(k)-e_1)/ts; 

 

u(k)=20.0*e(k)+0.50*de(k);

%Control limit

if u(k)>10.0

   u(k)=10.0;

end

if u(k)<-10.0

   u(k)=-10.0;

end

 

u_1=u(k);

e_1=e(k);

end

figure(1);

plot(time,yd,'r',time,y,'k:','linewidth',2);

xlabel('time(s)');ylabel('yd,y');

legend('Ideal position signal','Position tracking');

figure(2);

plot(time,yd-y,'r','linewidth',2);

xlabel('time(s)'),ylabel('error');

chap1_6plant

function dy = PlantModel(t,y,flag,para)

u=para;

J=0.0067;B=0.1;

 

dy=zeros(2,1);

dy(1) = y(2);

dy(2) = -(B/J)*y(2) + (1/J)*u;

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在Matlab中进行PID控制算法的仿真,可以参考以下步骤: 1. 首先,建立一个二阶负反馈控制系统,并确定其开环传递函数为比例控制。这个传递函数描述了系统的输入和输出之间的关系。 2. 使用Matlab中的控制系统工具箱,可以使用函数tf(num, den)来创建传递函数对象。其中,num是分子多项的系数,den是分母多项的系数。根据比例控制的传递函数,创建传递函数对象。 3. 接下来,可以使用Matlab中的pid函数创建PID控制器对象。pid函数的输入参数是PID控制器的增益参数。可以根据实际需求调整这些参数,以获得合适的控制效果。 4. 在仿真过程中,可以使用Matlab中的step函数模拟系统的响应。step函数的输入参数是系统传递函数和仿真时间范围。 5. 最后,通过绘制输出信号随时间的变化图形,可以观察系统的响应情况。可以使用Matlab中的plot函数绘制图形。 关于PID控制算法在Matlab中的仿真,你可以参考和中提供的源码来实现。这些源码包含了基于MatlabPID神经网络控制算法和PSO算法优化的仿真实现。你可以下载源码并参考其中的实现细节。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [深入浅出PID控制算法(一)————连续控制系统的PID算法及MATLAB仿真](https://blog.csdn.net/kilotwo/article/details/79828201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Matlab实现PID控制仿真(附上30个完整仿真源码+数据)](https://blog.csdn.net/m0_62143653/article/details/131845551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值