PSMC函数,可以直接用哦C/matlab/python

function [f, a] = psmc(T, Kp, Ki, Kd, F, lambda, rd, rd_dot, r, r_dot, a_prev, a_prev_prev)
% T is the sampling period
% Kp, Ki, Kd are the PID-type virtual coupling parameters
% F is the actuator force magnitude limit
% lambsa is the time constant
 
sigma = (rd - r) + lambda * (rd_dot - r_dot);
delta_a_prev = (a_prev - a_prev_prev) ;
f_star = (Kd + Kp*T+Ki*T*T) / (lambda + T) * sigma + Ki*a_prev + (Kp*lambda +Ki*T*lambda-Kd) / (lambda * T + T*T) * delta_a_prev;
n= f_star / F;
if (abs(n) > 1)
f = F*sign(n);
else
f = n;
end
 

a = 1 / (Kd + Kp*T + Ki*T*T) * ((Kd + Kp*T) * a_prev + Kd*delta_a_prev + T*T*f );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值