【控制系统数字仿真与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 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...
随机推荐
- 彻底理解Python多线程中的setDaemon与join【配有GIF示意】
在进行Python多线程编程时, join() 和 setDaemon() 是最常用的方法,下面说说两者的用法和区别. 1.join () 例子:主线程A中,创建了子线程B,并且在主线程A中调用了B. ...
- vue条件渲染2
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SpringCloud之Hystrix服务降级(七)
Hystrix设计原则 1.防止单个服务的故障,耗尽整个系统服务的容器(比如tomcat)的线程资源,避免分布式环境里大量级联失败.通过第三方客户端访问(通常是通过网络)依赖服务出现失败.拒绝.超时或 ...
- 第二篇 Flask的Response三剑客及两个小儿子
一.Response三剑客 (一)Flask中的HTTPResponse @app.route("/") #app中的route装饰器 def index(): #视图函数 ret ...
- Microsoft.Extensions.DependencyInjection 之三:展开测试
目录 前文回顾 IServiceCallSite CallSiteFactory ServiceProviderEngine CompiledServiceProviderEngine Dynamic ...
- 数竞大佬jhc的三角函数复习题
班主任让数竞大佬jhc整理的三角函数复习题,我参与编辑完成.个别题目来自参考书.度盘pdf格式下载:复习题提取码419d,答案提取码5a12 "单纯"的运算 本文由蒋浩川原创,由\ ...
- git 陷阱小记
1.文件添加陷阱: 1).git 提交命令快捷键: git commit -a -m "",能够跳过git添加文件到暂存目录步骤 2)git add . git commit -m ...
- 学习笔记59_python字符串处理
python中,字符串可以使用 '或"括起来 1. 要想写成 "hellow "aaaa" ",在python中,可以"hellow ' ...
- [2018-06-28] django项目 实例
实例一.显示一个基本的字符串在网页中 首先先进入views.py def home(request): string = u'随便写' return render(request, 'home.htm ...
- [2018-01-08] Python强化周的第一天
Python强化周的第一天 学生管理系统-制作(成绩类)模块 class Score: lesson_name = "python" # 课程名 score = 0 # 分数 # ...