【控制系统数字仿真与CAD】实验三:离散相似法数字仿真
一、实验目的
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】实验三:离散相似法数字仿真的更多相关文章
- 实验三 Java猜数字游戏开发
课程:Java实验 班级:201352 姓名:程涵 学号:20135210 成绩: 指导教师:娄佳鹏 实验日期:15.06.03 实验密级: ...
- 2017-2018-1 20155308&20155321&20155330《信息安全技术》实验三——数字证书应用1
2017-2018-1 20155308&20155321&20155330<信息安全技术>实验三--数字证书应用1 实验目的 了解PKI体系 了解用户进行证书申请和CA颁 ...
- 20145213《Java程序设计》实验三敏捷开发与XP实践
20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...
- 20162330 实验三 《敏捷开发与XP实践》 实验报告
2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验三 <敏捷开发与XP实践> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623班 ...
- 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...
- 2018-2019-2 20175230 实验三《Java面向对象程序设计》实验报告
目录 实验三 实验三 敏捷开发与XP实践 实验内容 实验要求 实验步骤 (一) 编码标准 (二)敏捷开发与XP (三)敏捷开发与XP 实验体会 实验三 实验三 敏捷开发与XP实践 实验内容 1.XP基 ...
- 20155327 实验三 敏捷开发与XP实践
20155327 实验三 敏捷开发与XP实践 实验内容 任务一 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装al ...
- 20155232 《Java程序设计》实验三实验报告
20155232 <Java程序设计>实验三实验报告 实验内容 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 敏捷开发(Agile ...
- 201871030110-何飞 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
201871030110-何飞 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...
随机推荐
- Redis事务深入解析和使用
作为关系型数据库中一项非常重要的基础功能--事务,在 Redis 中是如何处理并使用的? 1.前言 事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只有在执行完事务中的所有命 ...
- 百万年薪python之路 -- 面试之葵花宝典
关于for面试题: for i in "alex": pass print(i) 结果: x 关于字符串的面试题: s = "给章超印倒一杯卡布奇洛" s[:: ...
- Smali语言基础语法
1.Smali语言基础语法-数据类型与描述符 smali中有两类数据类型:基本类型和引用类型.引用类型是指数组和对象,其它都是基础类型. 基本类型以及每种类型的描述符: Java类型 类型描述符 说明 ...
- Node.js 使用 express-jwt 解析 JWT
Node.js 上 Token 鉴权常用的是 passport,它可以自定义校验策略,但如果你是用 express 框架,又只是解析 JWT 这种简单需求,可以尝试下 express-jwt 这个中间 ...
- 学习笔记50_mongodb
MongoVUE,MongoDB可视化客户端: 添加一个连接: 数据库下就是集合. 实际上是json数据的集合 Mongodb->数据库->文档集合:相当于表->文档:相当于表里面的 ...
- [考试反思]1025csp-s模拟测试87:生存
想起一句话 课上求生存,课下求发展 发展还好说,如何生存? 生存很困难... 没什么可抱怨的.有AK的.高分的也很多. 该说的在<Dust>里说完了,安静会吧. 这场rank43怎么追? ...
- Head First设计模式——单例模式
单例模式是所有设计模式中最简单的模式,也是我们平常经常用到的,单例模式通常被我们应用于线程池.缓存操作.队列操作等等. 单例模式旨在创建一个类的实例,创建一个类的实例我们用全局静态变量或者约定也能办到 ...
- 利用Nginx中的Upstream模块配置服务器负载均衡
1. 前言 nginx有一个最大的功能就是可以实现服务器的负载均衡,本篇博文就利用nginx中的upstream模块来配置一个简单的负载均衡.关于nginx的安装和配置文件可以查阅博文:windows ...
- 曹工杂谈:为什么很少需要改Spring源码,因为扩展点太多了,说说Spring的后置处理器
前言 最近发了好几篇,都是覆盖框架源码,但是spring的代码,我是从没覆盖过,毕竟,如果方便扩展,没谁想去改源码,而spring就是不需要改源码的那个,真的是"对扩展开放,对修改关闭&qu ...
- 爬虫学习--Day4(小猿圈爬虫开发_2)
requests模块 - urllib模块 - requests模块 requests模块:python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高.作用:模拟浏览器发送请求. 如 ...