控制系统计算机仿真实验一,控制系统计算机仿真-实验二..doc

控制系统计算机仿真-实验二.

实验二面向系统结构图的连续系统数字仿真实验

一、实验目的

1.掌握以系统结构图形式描述的连续系统的数字仿真方法和步骤。

2. 初步了解如何用仿真方法来分析系统的动态性能。

3. 了解不同的数值积分算法与仿真计算精度之间的关系。

4. 学会一种初步寻求合理仿真步长的方法。

5.了解RK4法计算稳定性和步长的关系。

二、实验预习

1.复习数值积分算法及步长寻取方法。

2. 按理论分析初步估计系统可能出现的动态性能。

3. 求或

三、实验要求

1. 整理各种实验条件下的数据和曲线。

2. 将各仿真结果与标准解比较,分析不同数值积分算法及步长对仿真精度的影响,误差评价指标公式为

其中,和分别为系统在时间点处的解析解和仿真解;为总计算时间点数。

3.写出实验报告。

四、实验内容

单位反馈控制系统的结构如附录图1所示,其开环传递函数和闭环传递函数分别为

在零初始条件下闭环系统单位阶跃响应的标准解为

1. 首先我们建立Simulink仿真模型,根据

开环仿真模型

闭环仿真模型

2. 标准解方程

y=1 - 0.0753885711*exp(-5t) - 1exp(-0.742154585*t)*sin(1t+0.755867195);

(为此,需要学习MATLAB中求取开环剪切频率的函数bode或margin的使用方法)。

2.48

2.49:

开环传递函数为:

在matlab控制窗口输入以下命令,求出该模型的:

clear

A=[1];

B=[0.1 0.7 1 0];

pain=tf(A,B);

painbasic=tf(A);

bode(pain,painbasic,{0.1,10})

图=0.863

根据公式(2.49),计算得出。

4.计算误差Script

sim('Exp2_model1');

[lena,lenb]=size(t);

y=zeros(lena,1);

for i=1:lena

tt=t(i);

y(i,1)=1 - 0.0753885711*exp(-5tt) - 1exp(-0.742154585*tt)*sin(1tt+0.755867195);

end

Max_Err = max(abs(y-yout));

Mean_Err = sum(abs(y-yout))/lena;

3. 选择RK4法,运行仿真模型,适当调整步长和仿真起止时间,以得到比较完整的过渡过程,观察纪录过渡过程的数据。

步长0.01:

Max_Err= 3.12437810172372e-09;Mean_Err= 3.082473004012723e-10

步长0.1:

Max_Err= 3.45334904181607e-05;Mean_Err= 2.13778078411538e-06

步长0.2:

MAX_ERR= 0.000876759705695940,MEAN_ERR= 4.73018848001367e-05

4)步长0.5:

MAX_ERR= 0.0698454094884216,MEAN_ERR= 0.0474489734589199

从误差分析中可以看出,步长在,即满足公式时的误差最小,精度最高。无论是步长大于或小于该范围均会造成较大的误差。步长太小,运行速度慢,会造成较大的累积误差。步长太大,则会造成较大的截断误差。

4.改变I环节的放大倍数(将1变为5),不断加大步长观测记录计算稳定性的变化。

将transfer func2 的分子由1改为5在以下步长下仿真计算误差。

步长0.01:

步长0.1:

步长0.3

图形发生明显形变

步长0.5:

结果完全错误了。

5. 在相同的条件下,选择欧拉法和RK2法,再让仿真模型运行,观察记录过渡过程的数据。

A.欧拉法:

步长0.01:

MAX_ERR= 0.0079,MEAN_ERR=0.0016

步长0.05:

MAX_ERR= 0.0407,MEAN_ERR=0.0083

步长0.1:

MAX_ERR= 0.0841,MEAN_ERR=0.0174

步长0.2:

MAX_ERR= 0.1802,MEAN_ERR=0.0394

步长0.5:

MAX_ERR= 3403.55188720568,MEAN_ERR= 394.761121211459

B.:RK2法:

步长0.01:

MAX_ERR= 0.0068,MEAN_ERR=0.0013

步长0.05:

MAX_ERR= 0.0333,MEAN_ERR=0.0063

步长0.1:

MAX_

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我是一个语言模型AI,无法提供文档下载和编程实现。但是我可以提供以下的一些参考资料,希望对您有所帮助。 专家控制系统是一种基于专家知识和经验的智能控制系统,常用于工业自动化控制领域。其核心是通过专家知识库中的规则和推理机制,对系统进行控制和决策。 PID控制器是一种常见的控制器,可以通过对误差、误差变化率、误差积分的加权综合,实现对系统的稳定控制。 在Matlab中,可以通过编写程序实现专家PID控制系统仿真。具体步骤如下: 1. 定义系统模型:包括系统传递函数、系统状态方程等。 2. 设计PID控制器:包括比例、积分、微分三个参数的调节以及控制器结构的选择。 3. 建立专家知识库:包括规则库、推理机制等。 4. 进行仿真实验:包括系统响应曲线的绘制、控制效果评估等。 下面是一些相关的Matlab程序代码,供您参考: 1. 定义系统模型 ```matlab % 定义系统传递函数 num = [1]; den = [1 2 2]; sys = tf(num, den); % 定义状态空间模型 A = [-2 -2; 1 0]; B = [1; 0]; C = [0 1]; D = 0; sys_ss = ss(A, B, C, D); ``` 2. 设计PID控制器 ```matlab % 设计比例、积分、微分参数 Kp = 1; Ki = 0.5; Kd = 0.1; % 设计PID控制器 s = tf('s'); PID = Kp + Ki/s + Kd*s; ``` 3. 建立专家知识库 ```matlab % 建立规则库 rule1 = [1 1 1 1]; % 如果误差大,误差变化率大,误差积分大,那么控制量大 rule2 = [0 0 0 0]; % 如果误差小,误差变化率小,误差积分小,那么控制量小 rule3 = [1 0 0 1]; % 如果误差大,误差变化率小,误差积分小,那么控制量略大 rule4 = [0 0 1 0]; % 如果误差小,误差变化率小,误差积分大,那么控制量略小 % 建立规则库矩阵 rule_matrix = [rule1; rule2; rule3; rule4]; % 建立推理机制 error = 0.5; % 假设误差为0.5 error_rate = 0.1; % 假设误差变化率为0.1 error_int = 0.2; % 假设误差积分为0.2 rule_out = rule_matrix*[error; error_rate; error_int; 1]; control_output = mean(rule_out); ``` 4. 进行仿真实验 ```matlab % 绘制系统响应曲线 t = 0:0.01:10; u = sin(t); [y, ~, ~] = lsim(sys, u, t); [y_pid, ~, ~] = lsim(sys*PID, u, t); [y_expert, ~, ~] = lsim(sys, control_output.*u, t); plot(t, y, t, y_pid, t, y_expert); legend('原始系统', 'PID控制器系统', '专家控制器系统'); % 控制效果评估 e = y - u'; e_pid = y_pid - u'; e_expert = y_expert - u'; J = sum(e.^2); J_pid = sum(e_pid.^2); J_expert = sum(e_expert.^2); ``` 以上是一个简单的专家PID控制系统的Matlab仿真实现的例子,您可以根据自己的需求进行修改和优化。同时,也可以参考其他的文献和资料,如《MATLAB智能控制系统设计》等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值