我是靠谱客的博主 寒冷花卷,最近开发中收集的这篇文章主要介绍matlab:分析控制系统稳定性综合实例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

matlab/Simulink与控制系统仿真,作者王正林,例5-18,P137,综合实例

clc;clear all
num1 = [20];        %传递函数的分子
den1 = [1 2 0];     %传递函数的分母
sys1 = tf(num1,den1);   %二阶系统的传递函数
num2 = [0.1 0];        %传递函数的分子
den2 = [0 1];     %传递函数的分母
sys2 = tf(num2,den2);   %二阶系统的传递函数
sys_inner = feedback(sys1, sys2);   %内环反馈的传递函数
sys_outer = feedback(sys_inner, 1);   %外环反馈的传递函数
%       20
%   --------------
%   s^2 + 4 s + 20
%进行稳定性分析
den = [1 4 20];         %分母
roots(den)              %求闭环系统特征多项式的根
figure(1) 
pzmap(sys_outer);       %绘制系统零极点图
grid on;
%系统特征根均有负实部,因此闭环系统是稳定的
%求阶跃响应
num = [20];
den = [1 4 20];         %分母
[y,t,x] = step(num,den) %计算闭环系统的阶跃响应
figure(2) 
plot(x,y)
grid on

%分析系统的响应特性
%计算系统的超调量
y_stable =1;            %阶跃响应的稳态值
max_response = max(y);  %闭环系统阶跃响应的最大值
sigma = (max(max_response-y_stable))/y_stable %阶跃响应的超调量

%计算系统的上升时间
for i= 1:length(y)      %遍历响应曲线
    if y(i) > y_stable  %某时刻的输出值大于稳态值
        break;
    end
end
tr = x(i);          %计算此时对应的时间,即上升时间

%计算峰值时间
[max_response, index] = max(y);     %查找阶跃响应的最大值
tp = x(index)                      %计算此时对应的时间,就是阶跃响应的峰值时间

%计算系统的调整时间,取误差带为2%
N = length(y) ;
for i= 1:N      %遍历响应曲线
    if max(y(i:N))<= 1.02*y_stable  %如果当前响应值在误差带内
       if min(y(i:N)) >= 0.98*y_stable
        break;
       end
    end
end
ts = x(i)            %计算此时对应的时间,即调整时间

运行结果:

 

 

最后

以上就是寒冷花卷为你收集整理的matlab:分析控制系统稳定性综合实例的全部内容,希望文章能够帮你解决matlab:分析控制系统稳定性综合实例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部