一. 实验目的
  1. 掌握结构图法仿真复杂控制系统的方法;
  2. 掌握复杂系统联接矩阵W和输入联接矩阵W0的求解过程;
  3. 掌握复杂系统的环节连接,矩阵A、 B、 C、D的求解过程;
  4. 掌握MATLAB编制结构图数字仿真的程序,并运用MATLAB程序对仿真结构进行处理。
  

    

二、实验内容

  1、实验要求

  上图系统中,各子系统的初始值均为零,输入Un*为单位阶跃。试编写仿真程序,求各环节输出响应(求解闭环状态方程时,指定采用RK4方法)。记录仿真结果及程序中计算得到的Ab和Bb。

  仿真步长:0.001,仿真时间:1.5s。

  2、根据结构图写出联接矩阵

  (1)环节连接关系:

  

  即:

  其中为联接矩阵, 为输入联接矩阵。为各环节输入向量,为各环节输出向量 。

  (2)输出方程:

  

  其中:

  (3)环节输入输出关系:(A+Bs)y(s)=(C+Ds)u(s)

  3、系统参数输入与闭环参数的生成:
  (1)输入输出关系参数输入矩阵P:

P=[ 0, tn,    kn,  kn*tn ;
0, ti, ki, ki*ti ;
1, ts, ks, 0 ;
1, tl, 1/R, 0 ;
0, ce*tm, R, 0 ];

  (2)闭环系数阵A, B, C, D的生成:

A=diag( P(:,1) );
B=diag( P(:,2) );
C=diag( P(:,3) );
D=diag( P(:,4) );

  (3)系统参数输入与闭环参数的生成:

  连接矩阵输入方法:建立非零元素矩阵WIJ(m*3型),将非零元素按照i, j, wij次序输入。其中i为被作用环节号; j为作用环节号; wij为作用关系值; m为非零元素个数(包括W0阵)。

  

WIJ=[1, 0, 1     ;
1, 5, -Alpha;
2, 1, 1 ;
2, 4, -Beta ;
3, 2, 1 ;
4, 3, 1 ;
4, 5, -ce ;
5, 4, 1 ];

  (4)闭环系数阵W, W0的生成:

m=length(WIJ(:,3));
n=5;
W0=zeros(n,1);
W =zeros(n,n);
for k=1:m
if(WIJ(k,2)==0)
W0(WIJ(k,1))=WIJ(k,3);
else
W( WIJ(k,1),WIJ(k,2) ) = WIJ(k,3);
end
end

  (5)系统参数输入与闭环参数的生成:
  闭环系数阵Ab, Bb的生成:

Q=B-D*W;    Qn=inv(Q);
R=C*W-A; V1=C*W0;
Ab=Qn*R; Bb=Qn*V1;

  (6)数值积分求解

  采用RK4算法求解所得的闭环状态方程。

三、实验完整代码

clear;
clc;
%******* 初始化参数 ********%
kn=26.7; tn=0.03; ki=0.269; ti=0.067;
ks=76; ts=0.00167;
R=6.58; tl=0.018; tm=0.25; ce=0.131;
Alpha=0.00337; Beta=0.4; Idl=0;
%******* 输入矩阵 ********%
P=[ 0, tn, kn, kn*tn ;
0, ti, ki, ki*ti ;
1, ts, ks, 0 ;
1, tl, 1/R, 0 ;
0, ce*tm, R, 0 ];
%******* 闭环系数阵 ********%
A=diag( P(:,1) );
B=diag( P(:,2) );
C=diag( P(:,3) );
D=diag( P(:,4) );
WIJ=[1, 0, 1 ;
1, 5, -Alpha;
2, 1, 1 ;
2, 4, -Beta ;
3, 2, 1 ;
4, 3, 1 ;
4, 5, -ce ;
5, 4, 1 ];
%******* 计算W、W0 ********%
m=length(WIJ(:,3));
n=5;
W0=zeros(n,1);
W =zeros(n,n);
for k=1:m
if(WIJ(k,2)==0)
W0(WIJ(k,1))=WIJ(k,3);
else
W( WIJ(k,1),WIJ(k,2) ) = WIJ(k,3);
end
end
%******* 闭环系统阵Ab、Bb生成 ********%
Q=B-D*W; Qn=inv(Q);
R=C*W-A; V1=C*W0;
Ab=Qn*R; Bb=Qn*V1;
h = 0.001;
x = [];
y = [0;0;0;0;0];
y1 = [];
y2 = [];
y3 = [];
y4 = [];
y5 = [];
% ******** 4阶龙格-库塔法 **********%
for i = 0:1:1000
t = i*h; % simulation time: 1s
x(i+1) = t;
k1 = Ab * y + Bb;
k2 = Ab * (y+h*k1/2) + Bb;
k3 = Ab * (y+h*k2/2) + Bb;
k4 = Ab * (y+h*k3) + Bb;
y = y + (k1 + 2*k2 +2*k3 + k4) * h/6;
y1(i+1) = y(1,1);
y2(i+1) = y(2,1);
y3(i+1) = y(3,1);
y4(i+1) = y(4,1);
y5(i+1) = y(5,1);
end
%******* 绘图 ********%
plot(x, y1, x, y2,'--', x, y3,'*', x, y4,'.-', x, y5,'x');
xlabel(' time /s ');ylabel(' Output ');title('系统输出情况 ');
legend('Y1','Y2','Y3','Y4','Y5');

四、实验结果

  

【控制系统数字仿真与CAD】实验二:结构图法数字仿真的更多相关文章

  1. 实验二 PHP基本语法实验

    实验二 PHP基本语法实验 0 实验准备 0.1实验环境和相关工具软件 具体到的机房环境,请在Windowsxp环境下做本实验: l  操作系统:Windowsxp l  Web服务器:Apache ...

  2. 20145213《Java程序设计》实验二Java面向对象程序设计实验报告

    20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...

  3. 20145221高其&20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计

    20145221高其&20145326蔡馨熠<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 l ...

  4. 20145227&20145201 《信息安全系统设计基础》实验二 固件开发

    北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)鄢曼君 李子璇 学号:(按贡献大小排名)20145227 20145201 成绩: ...

  5. 信息安全系统设计基础实验二 20135210&20135218

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础                                          班级:1352 姓名 ...

  6. 20145120 《Java程序设计》实验二实验报告

    20145120 <Java程序设计>实验二实验报告 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握U ...

  7. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二:按键模块① - 消抖

    实验二:按键模块① - 消抖 按键消抖实验可谓是经典中的经典,按键消抖实验虽曾在<建模篇>出现过,而且还惹来一堆麻烦.事实上,笔者这是在刁难各位同学,好让对方的惯性思维短路一下,但是惨遭口 ...

  8. 2017-2018-1 20155219《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155320<信息安全技术>实验二--Windows口令破解 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 实验 ...

  9. 2017-2018-1 20155312《信息安全技术》实验二——Windows口令破解实验报告

    2017-2018-1 20155312<信息安全技术>实验二--Windows口令破解实验报告 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破 ...

随机推荐

  1. win10下VSCode+CMake+Clang+GCC环境搭建

    win10下VSCode+CMake+Clang+GCC环境搭建 win10下VSCode+CMake+Clang+GCC环境搭建 安装软件 VSCode插件安装 新建文件夹, 开始撸代码 main. ...

  2. A Deep Neural Network Approach To Speech Bandwidth Expansion

    题名:一种用于语音带宽扩展的深度神经网络方法 作者:Kehuang Li:Chin-Hui Lee 2015年出来的 摘要 本文提出了一种基于深度神经网络(DNN)的语音带宽扩展(BWE)方法.利用对 ...

  3. A-04 坐标轴下降法

    目录 坐标轴下降法 一.坐标轴下降法流程 二.坐标轴下降法和梯度下降法的异同 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:http ...

  4. 『嗨威说』算法设计与分析 - PTA 数字三角形 / 最大子段和 / 编辑距离问题(第三章上机实践报告)

    本文索引目录: 一.PTA实验报告题1 : 数字三角形 1.1 实践题目 1.2 问题描述 1.3 算法描述 1.4 算法时间及空间复杂度分析 二.PTA实验报告题2 : 最大子段和 2.1 实践题目 ...

  5. drf框架中jwt认证,以及自定义jwt认证

    0909自我总结 drf框架中jwt 一.模块的安装 官方:http://getblimp.github.io/django-rest-framework-jwt/ 他是个第三方的开源项目 安装:pi ...

  6. 解决 canvas 将图片转为base64报错: Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasEleme...

    问题描述 当用户点击分享按钮时,生成一张海报,可以保存图片分享到朋友圈,用户的图片是存储在阿里云的OSS,当海报完成后,执行.canvas.toDataURL("image/png" ...

  7. window 后台运行的应用程序点击没反应

    有时候,开了几个软件,有的软件一段时间没点击,再点击软件的图标一点反应都没有,这时,可以试着这么做: window 快捷键 :win + r  , 输入命令 : taskmgr ,打开任务管理器,选择 ...

  8. Python开发【第四篇】语句与函数

    语句 statement 语句是由一些表达式组成,通常一条语句可以独立的执行来完成一部分事情,并且形成结果. 多条语句写在一行内要用分号分开 例子: print('hello world') #这是一 ...

  9. Jenkins构建 前端node项目

    1.新建一个自由风格的项目 2.配置git 3.构建-增加构建步骤-执行shell cd $WORKSPACE npm install --registry=http://ip:port --unsa ...

  10. [系列] go-gin-api 路由中间件 - 签名验证(七)

    目录 概览 MD5 组合 AES 对称加密 RSA 非对称加密 如何调用? 性能测试 PHP 与 Go 加密方法如何互通? 源码地址 go-gin-api 系列文章 概览 首先同步下项目概况: 上篇文 ...