【控制系统数字仿真与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 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...
随机推荐
- HTML CSS整理笔记
——修改placeholder提示的样式: 1.除IE外通用写法 类名或标签名::placeholder {color: red;}2.加兼容前缀写法 css超出一行显示省略号:给定宽度(width: ...
- 简易数据分析 13 | Web Scraper 抓取二级页面
这是简易数据分析系列的第 13 篇文章. 不知不觉,web scraper 系列教程我已经写了 10 篇了,这 10 篇内容,基本上覆盖了 Web Scraper 大部分功能.今天的内容算这个系列的最 ...
- C++两个队列实现一个栈
C++两个队列实现一个栈 /* * source.cpp * * Created on: 2015年6月21日 * Author: codekiller */ #include "iostr ...
- element ui实现手动上传文件,且只能上传单个文件,并能覆盖上传。
element ui提供了成熟的组件场景,但实际工作中难免会遇到认(sha)真(diao)的产品.比如,最近遇到的,要求实现手动上传特定格式文件(用户点击“上传文件”按钮,确定之后,只是单纯选择了文件 ...
- css四种基本选择器
css选择器是什么? 要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器. HTML页面中的元素就是通过CSS选择器进行控制的. CSS选择器:就是指定CS ...
- Linux后台运行Jar方法
原文地址:http://blog.csdn.net/c1481118216 https://blog.csdn.net/c1481118216/article/details/53010963 在li ...
- EXCEL批量导入到Sqlserver数据库并进行两表间数据的批量修改
Excel 大量数据导入到sqlserver生成临时表并将临时表某字段的数据批量更新的原表中的某个字段 1:首先要对EXCEL进行处理 列名改成英文,不要有多余的列和行(通过ctrl+shift 左或 ...
- commix工具配合命令注入
commix简介 commix是一款由python编写,开源自动化检测系统命令注入工具 https://github.com/commixproject/commix commix 参数 选项: - ...
- 非旋treap (fhq treap) 指针版
传送门 看了一圈,好像真的没什么用指针的呢.. 明明觉得指针很好看(什么??你说RE???听不见听不见) 其实我觉得用数组的话不RE直接WA调起来不是更困难嘛,毕竟通过gdb还可以知道哪里RE,WA就 ...
- 原生JS实现call,apply,bind函数
1. 前言 使用原生JS实现call和apply函数,充分了解其内部原理.call和apply都是为了解决改变this的指向.作用都相同,只是传参的方式不同.除了第一个参数外,call可以接受一个参数 ...