当前位置: 首页 > news >正文

寻找项目做的网站班级优化大师官方免费下载

寻找项目做的网站,班级优化大师官方免费下载,免费域名注册网站,深圳龙华医院网站建设目录 一、建立系统数学模型二、控制器设计1. 设计滑模面(切换面)2.设计控制器 u3. 稳定性证明 三、 Matlab 仿真1. s-function 模型2. 主要代码3. 仿真结果(采用符号函数sign(s))4. 仿真结果(采用饱和函数sat(s)) 一、建立系统数学模型 { x ˙ 1 x 2 x ˙ 2 x 3 x ˙ 3 x 1 …

目录

  • 一、建立系统数学模型
  • 二、控制器设计
    • 1. 设计滑模面(切换面)
    • 2.设计控制器 u
    • 3. 稳定性证明
  • 三、 Matlab 仿真
    • 1. s-function 模型
    • 2. 主要代码
    • 3. 仿真结果(采用符号函数sign(s))
    • 4. 仿真结果(采用饱和函数sat(s))

一、建立系统数学模型

{ x ˙ 1 = x 2 x ˙ 2 = x 3 x ˙ 3 = x 1 + x 2 x 3 + u \begin{aligned} \left\{ \begin{array}{l} \dot{x}_1 = x_2 \\ \dot{x}_2 = x_3 \\ \dot{x}_3 = x_1 + x_2 x_3 + u \end{array} \right. \end{aligned} x˙1=x2x˙2=x3x˙3=x1+x2x3+u
该数学模型参考:通俗理解滑模变结构控制

二、控制器设计

设计滑模控制器需要满足以下条件:

  1. 稳定性条件:在s=0的滑模面上,状态是收敛的,即滑动模态存在;
  2. 可达性条件:在切换面s=0以外的运动点将于有限时间内到达切换面;
  3. 保证滑模运动的稳定性;
  4. 达到控制系统运动品质要求。

1. 设计滑模面(切换面)

s = x 1 + 2 x 2 + x 3 \begin{align*} s = x_1 + 2x_2+x_3 \end{align*} s=x1+2x2+x3

2.设计控制器 u

对滑模面函数求导得
s ˙ = x ˙ 1 + 2 x ˙ 2 + x ˙ 3 \dot{s} = \dot{x}_1+2\dot{x}_2+\dot{x}_3 s˙=x˙1+2x˙2+x˙3

将数学模型中状态变量表达式代入可得
s ˙ = x ˙ 1 + 2 x ˙ 2 + x ˙ 3 = x 2 + 2 x 3 + x 1 + x 2 x 3 + u = x 1 + x 2 + 2 x 3 + x 2 x 3 + u \begin{align*} \dot{s} &= \dot{x}_1+2\dot{x}_2+\dot{x}_3 \\ &=x_2+2x_3+x_1+x_2 x_3+u \\ &= x_1+x_2+2x_3+x_2 x_3 + u \end{align*} s˙=x˙1+2x˙2+x˙3=x2+2x3+x1+x2x3+u=x1+x2+2x3+x2x3+u

s ˙ \dot{s} s˙ = 趋近律, 采用指数趋近律 s ˙ = − s g n ( s ) − s \dot{s} = -sgn(s)-s s˙=sgn(s)s s g n ( s ) sgn(s) sgn(s)为符号函数)求得控制器 u u u
u = − s g n ( s ) − s − x 1 − x 2 − 2 x 3 − x 2 x 3 \begin{align*} u = -sgn(s) - s -x_1 -x_2 -2x_3-x_2 x_3 \end{align*} u=sgn(s)sx1x22x3x2x3

3. 稳定性证明

设计 L y a p u n v o Lyapunvo Lyapunvo函数 V = 1 2 s 2 V = \frac{1}{2}s^2 V=21s2 , 求得其导数 V ˙ = s s ˙ = − ∣ s ∣ − s 2 \dot{V} = s\dot{s} = -|s|-s^2 V˙=ss˙=ss2
由此可知,该 L y a p u n v o Lyapunvo Lyapunvo 函数的导数负定,系统渐进稳定, t → ∞ t \rightarrow \infty t 时, s → 0 s \rightarrow 0 s0。因此 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3都趋于 0 0 0

三、 Matlab 仿真

1. s-function 模型

在这里插入图片描述

2. 主要代码

仿真中,为避免与模板中的 u u u 冲突,将输入 u 用 control_u 替代。

pa = struct('c1',1, ...'c2',2);
  case 1,sys=mdlDerivatives(t,x,u,pa);
  case 3,sys=mdlOutputs(t,x,u,pa);
sizes.NumContStates  = 3; %3个连续状态变量
sizes.NumDiscStates  = 0; %input只有输出,没有输入,即没有自身状态
sizes.NumOutputs     = 4; %输出为:dx1,dx2,dx3,control_u
sizes.NumInputs      = 0; %输入个数为0
sizes.DirFeedthrough = 0; %输入不会直接影响输出。输出是仅仅由状态变量决定的
sizes.NumSampleTimes = 1;   % at least one sample time is needed
%状态方程的更新通过输入u 来计算新的状态值,然后输出这些状态值。
%这意味着输入u 不直接影响输出,而是通过状态更新来间接影响输出。
%所以 DirFeedthrough 应该设置为 0。
% 初始化状态变量
x0  = [3;0;0]; 
function sys=mdlDerivatives(t,x,u,pa)
c1 = pa.c1;
c2 = pa.c2;
x1 = x(1);
x2 = x(2);
x3 = x(3);
%滑模面
s = x3+c2*x2+c1*x1;
%控制输入
control_u = -sign(s)-s-x1-x2-2*x3-x2*x3;
%系统状态方程
dx1 = x2;
dx2 = x3;
dx3 = x1+x2*x3+control_u;
sys = [dx1;dx2;dx3];
%输出函数
function sys=mdlOutputs(t,x,u,pa)
c1 = pa.c1;
c2 = pa.c2;
x1 = x(1);
x2 = x(2);
x3 = x(3);
%滑模面
s = x3+c2*x2+c1*x1;
%控制输入
control_u = -sign(s)-s-x1-x2-2*x3-x2*x3;   %使用符号函数sign(s)
%control_u = -sat(s)-s-x1-x2-2*x3-x2*x3;     %使用饱和函数消除抖振(改进)
% 输出状态变量 x1, x2, x3 以及 control_u
sys = [x;control_u]; %或者sys = [x(1);x(2);x(3);control_u];

3. 仿真结果(采用符号函数sign(s))

在这里插入图片描述
使用符号函数的控制器u,会产生明显抖振,为了消除抖振,可以采用饱和函数来替代符号函数
即指数趋近律 s ˙ = − s g n ( s ) − s \dot{s} = -sgn(s)-s s˙=sgn(s)s 换为 s ˙ = − s a t ( s ) − s \dot{s} = -sat(s)-s s˙=sat(s)s
其中

s a t ( s ) = { 1 s > Δ k s ∣ s ∣ ≤ Δ , k = 1 / Δ − 1 s < − Δ sat(s)= \left\{ \begin{array}{ll} 1 & s > \Delta \\ ks & |s| \leq \Delta, k = 1/\Delta\\ -1 & s < -\Delta \end{array} \right. sat(s)= 1ks1s>ΔsΔk=1/Δs<Δ

取阈值 Δ = 1 \Delta = 1 Δ=1 , 改进后的控制器u为
u = − s a t ( s ) − s − x 1 − x 2 − 2 x 3 − x 2 x 3 \begin{align*} u = -sat(s) - s -x_1 -x_2 -2x_3 -x_2 x_3 \end{align*} u=sat(s)sx1x22x3x2x3

更改代码实现饱和函数控制器,只需把之前函数输出部分代码中 s i g n ( s ) sign(s) sign(s)改为 s a t ( s ) sat(s) sat(s),其余不变

function sys=mdlOutputs(t,x,u,pa)
c1 = pa.c1;
c2 = pa.c2;
x1 = x(1);
x2 = x(2);
x3 = x(3);
%滑模面
s = x3+c2*x2+c1*x1;
%控制输入
%control_u = -sign(s)-s-x1-x2-2*x3-x2*x3;   %使用符号函数sign(s)
control_u = -sat(s)-s-x1-x2-2*x3-x2*x3;     %使用饱和函数消除抖振% 输出状态变量 x1, x2, x3 以及 control_u
sys = [x;control_u]; %或者sys = [x(1);x(2);x(3);control_u];

并在s-function函数最下方(即 m d l T e r m i n a t e ( t , x , u ) mdlTerminate(t,x,u) mdlTerminate(t,x,u)函数后面)添加 s a t ( s ) sat(s) sat(s)饱和函数的实现:

%function sys=mdlTerminate(t,x,u)
%sys = [];
% end mdlTerminate% y = sat(s) 将输入 s 限制在 [-1, 1] 范围内,其中 k = 1 / D
function y = sat(s)   
D = 1; %设置阈值 D
k = 1 / D; %设置比例常数 k
if s > Dy = 1;
elseif s < -Dy = -1;
elsey = k * s;
end

4. 仿真结果(采用饱和函数sat(s))

在这里插入图片描述
可以看出,抖振被有效消除。

http://www.tj-hxxt.cn/news/95037.html

相关文章:

  • 郑州中原区网站建设亚马逊提升关键词排名的方法
  • 北京网站设计济南兴田德润团队怎么样站内营销推广途径
  • 天天seo站长工具百度云资源搜索引擎
  • 做网站公搜索引擎优化好做吗
  • 网站建设业务好做吗seo成功的案例和分析
  • 哈尔滨网站建设优化公司淘宝流量平台
  • java做网站需要什么网络广告文案案例
  • 惠州建设局网站首页市场营销策划ppt
  • 自己做网站seo优化海南百度推广总代理
  • 生鲜电商网站建设策划书长春百度网站快速排名
  • wix做网站步骤免费网站alexa排名查询
  • 自己做的网站根目录哪里找到免费推广网站
  • 上海网站 备案星乐seo网站关键词排名优化
  • 广东微信网站制作公司小时seo加盟
  • 临朐县网站建设sem竞价专员是干什么的
  • 做受视频网站 mcb3dbd产品推广方案范文500字
  • 做网站找模版好吗郑州网站推广排名公司
  • 医院网站源码 asp大数据分析
  • 怎么免费建立网店网站浙江seo外包费用
  • 云南省住房和城乡建设局网站站长之家端口扫描
  • 企业网站 建设 外包娱乐热搜榜今日排名
  • 手机wap网站开发教程常见的网络推广方法有哪些
  • 重庆市有网站设计维护厨师培训机构 厨师短期培训班
  • 怎样制作企业的网站谷歌排名优化入门教程
  • 佛山网站建设找千界餐饮最有效的营销方案
  • 网站建设开发文档品牌网络营销策划
  • wordpress后台白屏搜索引擎优化自然排名
  • 邯郸市哪里有做网站的怎么注册网站平台
  • 做网站属于什么备案seo是什么味
  • 跨境商城网站开发alexa全球网站排名分析