一、实验目的
  1. 了解离散相似法的基本原理
  2. 掌握离散相似法仿真的基本过程
  3. 应用离散相似法仿真非线性系统
  4. MATLAB实现离散相似法的非线性系统仿真
  5. 掌握SIMULINK仿真方法,应用于非线性系统的仿真,并对实验结果进行分析比较

二、实验原理

  在ASR的输出增加限幅装置(饱和非线性,饱和界为c=8 )。 Ce=0.031,其它参数不变。输入为单位阶跃,用离散相似法求系统各环节的输出。

  要求:采用零阶保持器和一阶保持器离散化系统,分别完成本实验。

  1、各环节的参数:

  由5个典型环节组成:

  A=[0 0 1 1 0];

  B=[tn ti Ts Tl Tm*Ce];
  C=[Kn Ki Ks 1/R R];
  D=[Kn*tn Ki*ti 0 0 0];

  还有一饱和非线性环节:c=8;

  2、各环节的离散化系数矩阵

3、各环节的输入作用

   

    (1)、u(n)可通过联接矩阵直接求得:

      

      u(n)=[u1(n), u2(n),…,un(n)]为各环节的输入量, n为环节数。 Y(n)=[Y1(n), Y2(n),…,Yn(n)]为各环节的输出量, r为外中参考输入量。

    (2)、U(n)由近似表达式求得:
      

    (3)、u(n+1)用折线法近似求得:

      

  4、状态和输出计算

    (1)、一阶保持器
      X=FI'.*X+FIM'.*Uk+FIJ'.*Udot;
      Y=FIC'.*X+FID'.*Uf;
    (2)、零阶保持器
      X=FI'.*X+FIM'.*Uk;
      Y=FIC'.*X+FID'.*Uf;

  5、饱和非线性环节

  看作环节1(ASR)的一部分。建立satur.m文件:

function [uo]=satur(ui,c)
if (abs(ui)<=c)
uo=ui;
elseif ( ui > c )
uo = c;
else
uo=-c;
end
end

 三、实验过程

  1、新建脚本文件,命名为satur.m

function [uo]=satur(ui,c)
if (abs(ui)<=c)
uo=ui;
elseif ( ui > c )
uo = c;
else
uo=-c;
end
end

  2、新建脚本文件,命名为test3.m

  完整代码:

clc;
clear;
% ****** 各环节参数 ****** %
Kn=26.7;
tn=0.03;
Ki=0.269;
ti=0.067;
Ks=;
Ts=0.00167;
R=6.58;
T1=0.018;
Tm=0.25;
Ce=0.031;
Alpha=0.00337;
Beta=0.4;
A=[ ];
B=[tn ti Ts T1 Tm*Ce];
C=[Kn Ki Ks /R R];
D=[Kn*tn Ki*ti ];
c=;
r=;
W=[ -Alpha;
-Beta ;
;
-Ce;
];
W0=[ ]';
h=0.001;
t_end=0.5;
t=:h:t_end;
n=length(t);
% ****** 各环节离散化系数 ****** %
block_num=;
for k=:block_num
if(A(k)==)
FI(k)=;
FIM(k)=h*C(k)/B(k);
FIJ(k)=h*h*C(k)/B(k)/;
FIC(k)=;
FID(k)=;
if(D(k)~=)
FID(k)=D(k)/B(k);
end
else
FI(k)=exp(-h*A(k)/B(k));
FIM(k)=(-FI(k))*C(k)/A(k);
FIJ(k)=h*C(k)/A(k)-FIM(k)*B(k)/A(k);
FIC(k)=;
FID(k)=;
if(D(k)~=)
FIC(k)=C(k)/D(k)-A(k)/B(k);
FID(k)=D(k)/B(k);
end
end
end Y0=[ ]';
Y=Y0;
X=zeros(block_num,);
result1=Y;
Uk=zeros(block_num,);
Ub=Uk; for m=:(n-)
Ub=Uk;
Uk=W*Y+W0*r;
Uf=*Uk-Ub;
Udot=(Uk-Ub)/h; %****** 零阶保持器 ******%
X=FI'.*X+FIM'.*Uk;
Y=FIC'.*X+FID'.*Uf; Y()=satur(Y(),c);
result1=[result1,Y];
end Y0=[ ]';
Y=Y0;
X=zeros(block_num,);
result2=Y;
Uk=zeros(block_num,);
Ub=Uk;
for m=:(n-)
Ub=Uk;
Uk=W*Y+W0*r;
Uf=*Uk-Ub;
Udot=(Uk-Ub)/h; %****** 一阶保持器 ******%
X=FI'.*X+FIM'.*Uk + FIJ'.*Udot;
Y=FIC'.*X + FID'.*Uf; Y()=satur(Y(),c);
result2=[result2,Y];
end

plot(t,result1(5,:),'-.',t,result2(5,:),'--',t,ScopeData.signals.values,'k');
legend('零阶保持器','一阶保持器','Simulink');

  3、在Simulink中绘制仿真图

 注意:Simulink中的变量名和工作区变量关联方法请点击:https://www.cnblogs.com/KaifengGuan/p/11942615.html

四、实验结果

【控制系统数字仿真与CAD】实验三:离散相似法数字仿真的更多相关文章

  1. 实验三 Java猜数字游戏开发

    课程:Java实验   班级:201352     姓名:程涵  学号:20135210 成绩:             指导教师:娄佳鹏   实验日期:15.06.03 实验密级:         ...

  2. 2017-2018-1 20155308&20155321&20155330《信息安全技术》实验三——数字证书应用1

    2017-2018-1 20155308&20155321&20155330<信息安全技术>实验三--数字证书应用1 实验目的 了解PKI体系 了解用户进行证书申请和CA颁 ...

  3. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

  4. 20162330 实验三 《敏捷开发与XP实践》 实验报告

    2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验三 <敏捷开发与XP实践> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623班 ...

  5. 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告

    2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...

  6. 2018-2019-2 20175230 实验三《Java面向对象程序设计》实验报告

    目录 实验三 实验三 敏捷开发与XP实践 实验内容 实验要求 实验步骤 (一) 编码标准 (二)敏捷开发与XP (三)敏捷开发与XP 实验体会 实验三 实验三 敏捷开发与XP实践 实验内容 1.XP基 ...

  7. 20155327 实验三 敏捷开发与XP实践

    20155327 实验三 敏捷开发与XP实践 实验内容 任务一 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装al ...

  8. 20155232 《Java程序设计》实验三实验报告

    20155232 <Java程序设计>实验三实验报告 实验内容 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 敏捷开发(Agile ...

  9. 201871030110-何飞 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030110-何飞 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...

随机推荐

  1. 百万年薪python之路 -- 字典(dict)

    1.字典(dict)-- dict关键字 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. ​ 字典中逗号分隔叫作一个元素 ​ 字典是无序的 ​ key必须是不可变 ...

  2. django-URL反向解析Reverse(九)

    解决path中带参数的路径. reverse(viewname,urlconf=None,args=None,Kwargs=None,current_app=None) book/views.py f ...

  3. 如何在Spring Boot项目中巧妙利用策略模式干掉if else!

    直入主题 我们都知道,设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性 ...

  4. 《大数据实时计算引擎 Flink 实战与性能优化》新专栏

    基于 Flink 1.9 讲解的专栏,涉及入门.概念.原理.实战.性能调优.系统案例的讲解. 专栏介绍 扫码下面专栏二维码可以订阅该专栏 首发地址:http://www.54tianzhisheng. ...

  5. 一个基于Net Core3.0的WPF框架Hello World实例

    目录 一个基于Net Core3.0的WPF框架Hello World实例 1.创建WPF解决方案 1.1 创建Net Core版本的WPF工程 1.2 指定项目名称,路径,解决方案名称 2. 依赖库 ...

  6. Linux中的快捷方式

    history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有 ...

  7. Web信息搜集

    文件是转载原文https://www.freebuf.com/articles/web/204883.html  如有侵权 请联系 对一个网站挖掘的深浅来说,信息收集是非常的重要的,这篇文章主要分享本 ...

  8. 这次,我是如何监控服务器CPU和内存的

    背景 在新项目A中,要结合业务做性能测试.对于做过N次性能测试的我,这次有些巧妇有难无米之炊的感觉.以往的项目,服务器都是部署在AWS或者阿里云,像这样的云服务器厂商是可以通过轻松配置各种Dashbo ...

  9. csps模拟测试57

    T1 天空龙 大神题,考察多方面知识,例如:快读 附上考试代码,以供后人学习 应某迪要求,我决定多写一点. 正如文化课有知识性失分和非知识性失分一样,OI也同样存在. 但非知识性失分往往比知识性失分更 ...

  10. 20190630模拟赛B(单调队列优化dp)

    .dp无疑了其实. 在考场上,我写了一个错解,但是数据小都能过,只是会爆空间,考场上想着怎么用滚动数组优化来着....把错解的方程列出来吧 ;i<=n;i++) { ;j<=k;j++) ...