backstepping 例子1,MATLAB进行计算编程,替代纸张

用MATLAB进行计算,代替纸张,我采用实时文件编写,更加方便,仿真采用simulink
backstepping
for example1
differential equation
x1_dot = x1^2-x1^3 +x2
x2_dot = u
clc;
clear all;
close all;
%定义符号symbol system
syms x1 x2 u real
syms phil(x1)
syms z2
x1_dot = x1^2-x1^3 +x2
x2_dot = u
x1dot_1 = x1^2 - x1^3 + x2
x2dot_1 = u;
%把x1dot_1中的x2替换
x1dot = subs(x1dot_1, x2, z2+phil)
把z2项替换成0,目的
v = 1/2 * x1^2 + 1/2 * z2^2
v_dot = x1 * (x1^2 - x1^3 + z2 + φ) + z2 *  (u - φdot)
提出带有z2的项,(面对复杂的方程更有效)
v_dot = x1 * (x1^2 - x1^3  + φ) + z2 *  (u - φdot + x1)
%把x1dot中z2换成zero
x1dot_wu_z2 = subs(x1dot, z2, 0)
z2_to_add_to_parentheis_z2 = (x1dot - x1dot_wu_z2) *x1 / z2
let x1^2 - x1^3 +phil  == -x1 -x1^3, 这样就可以求出phil
%x1dot_wu_z2 == -x1 - x1^3,下面的语句更有效
%求出Phil
phil(x1) = rhs(isolate(x1dot_wu_z2 == -x1 - x1^3, phil))  %求出phil
%求Phil的differential,对x1求导
phil_dot = diff(phil,x1) * x1dot_1
z2 = x2 - φ 跟踪误差
z2 = x2 - phil(x1)
z2dot = x2dot_1 - phil_dot
let x1 + u - phil_dot = -z2 ,其实是z2项要等于-z2^2
u = rhs(isolate(z2_to_add_to_parentheis_z2 + z2dot == -z2, u))
simplify(u)
 

clc;
clear all;
close all;
%定义符号symbol system
syms x1 x2 u real
syms phil(x1)
syms z2
x1dot_1 = x1^2 - x1^3 + x2
x2dot_1 = u;
%把x1dot_1中的x2替换
x1dot = subs(x1dot_1, x2, z2+phil)
%把x1dot中z2换成zero
x1dot_wu_z2 = subs(x1dot, z2, 0)
z2_to_add_to_parentheis_z2 = (x1dot - x1dot_wu_z2) *x1 / z2
%x1dot_wu_z2 == -x1 - x1^3,下面的语句更有效
%求出Phil
phil(x1) = rhs(isolate(x1dot_wu_z2 == -x1 - x1^3, phil))  %求出phil
%求Phil的differential,对x1求导
phil_dot = diff(phil,x1) * x1dot_1
z2 = x2 - phil(x1)
z2dot = x2dot_1 - phil_dot
u = rhs(isolate(z2_to_add_to_parentheis_z2 + z2dot == -z2, u))
simplify(u)

simulink 仿真

function u = fcn(x1,x2)

u = 2*x1^4 - 2*x2 - 2*x1*x2 - 2*x1^2 - x1^3 - 2*x1;
end

其中plant

function [x1dot,x2dot] = fcn(x1, x2, u)
x1dot = x1^2 - x1^3 +x2;
x2dot = u;
end

controller

积分初始条件设置成1

仿真结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值