matlab扰动观测法,扰动观测器DOB matlab仿真

【实例简介】

【实例截图】

【核心代码】

tol=400*10^(-6);

[np,dp]=pade(tol,6);

delay=tf(np,dp);

delta=tf(np,dp)-1;

sys=1/delta;

figure(1);

bode(1/delta,'r',{5,10^5});

grid on;

tol1=0.00035;

Q1=tf([3*tol1,1],[tol1^4,4*tol1^3,6*tol1^2,4*tol1,1]);

hold on;

bode(Q1,'y');

tol2=0.00125;

Q2=tf([3*tol2,1],[tol2^4,4*tol2^3,6*tol2^2,4*tol2,1]);

hold on;

bode(Q2,'b');

tol3=0.00425;

Q3=tf([3*tol3,1],[tol3^4,4*tol3^3,6*tol3^2,4*tol3,1]);

hold on;

bode(Q1,'g');

Gp=tf([56870],[0.00053,1,112,94790]);

Gn=tf([56865],[0.00050,1,111,94785]);

Q1=tf([3*tol1,1],[tol1^4,4*tol1^3,6*tol1^2,4*tol1,1]);

bode(Q1);

QGn=Q1/Gn;

[num,den]=tfdata(QGn,'v');

Y=sim('temp');

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
扰动观测器(Disturbance Observer,简称DOB)是一种用于估计和补偿系统未知扰动的控制器设计方扰动观测器可以通过观测系统输出和计算出的控制输入来估计系统扰动,并将该估计值作为补偿信号加入控制输入中,从而抑制系统扰动对系统性能的影响。 以下是一个基于MATLAB扰动观测器实现示例: ```MATLAB function [u,ydhat] = DOB_controller(yd,y,dt,A,B,C,p) % DOB_controller - 扰动观测器控制器函数 % % 输入: % yd : 参考信号 % y : 实际输出信号 % dt : 采样周期 % A,B,C : 系统状态空间模型中的参数 % p : 扰动观测器设计参数 % 输出: % u : 控制输入 % ydhat : 扰动估计值 persistent yhat % 扰动估计器状态变量 persistent ydhatdot % 扰动估计器状态变量的导数 % 初始化状态变量和导数 if isempty(yhat), yhat = zeros(size(B)); end if isempty(ydhatdot), ydhatdot = zeros(size(B)); end % 计算参考信号的导数 ydhatdot = (yd - yhat)./(p.Td); % 更新扰动估计器状态变量 yhat = yhat + dt.*(A*yhat + B.*ydhatdot - p.alpha.*(y - yd)); % 计算扰动估计值 ydhat = C*yhat; % 计算控制输入 u = (yd - ydhat)./p.beta; ``` 其中,函数输入参数包含: - $yd$:系统参考信号。 - $y$:系统实际输出。 - $dt$:采样周期。 - $A, B, C$:系统状态空间模型参数。 - $p$:扰动观测器设计参数。 函数中使用了一个扰动观测器状态变量$yhat$和其导数$ydhatdot$,并通过观测器计算出扰动估计值$ydhat$,最后计算控制输入$u$。在实际的控制器应用中,需要根据具体系统情况,选择合适的扰动观测器参数$p.alpha$和$p.beta$,以保证控制器性能和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值