控制系统数字仿真

简介: matlab

matlab学习笔记3(控制系统仿真)

1、典型二阶系统
H\left(S\right)=\frac{\omega_n^2 }{S^2 +2\xi \omega_n S+\omega_n^2 }
,绘制
\omega_n =6
,
\xi
分别为0.1、0.2、0.3、···、1.0和2.0时的单位阶跃响应。

clear
clc
Wn=0.6;
kesai=[0.1:0.1:1,2];
hold on
for k=kesai
    num=Wn^2;
    den=[1 2*k*Wn Wn^2];
    step(num,den);
end
title('step response');
figure_0.png

2、对1中的典型二阶系统,绘制出当
\xi =0\ldotp 7

\omega_n \textrm{取2},4,6,8,10,12
时的单位阶跃响应。

clear
clc
W=2:2:12;
kesai=0.7;
hold on
for wn=W
    num=wn^2;
    den=[1 2*kesai*wn wn^2];
    step(num,den);
end
title('step response');
hold off
figure_1.png

3、求三阶系统
H(s)=\frac{5\left(s^2 +5s+6\right)}{s^3 +6s^2 +10s+8}
的单位阶跃响应。

clear
clc
num=[5 25 30];
den=[1 6 10 8];
step(num,den);
title('step response');
figure_2.png

4、求典型二阶系统
H(s)=\frac{\omega_n^2 }{s^2 +2\xi \omega_n +\omega_n^2 }
,当
\xi =0\ldotp 7,\omega_n =6
时的单位阶跃响应。

clear
clc
Wn=6;
kesai=0.7;
num=Wn^2;
den=[1 2*kesai*Wn Wn^2];
step(num,den);
title('step response');
figure_3.png

5、有高阶系统$\left\lbrace \begin{array}{l} \dot{x} =\left\lbrack \begin{array}{cccc} -1.6 & -0.9 & 0 & 0\\ 0.9 & 0 & 0 & 0\\ 0.4 & 0.5 & -5.0 & -2.45\\ 0 & 0 & 2.45 & 0 \end{array}\right\rbrack x+\left\lbrack \begin{array}{l}
1\
0\
1\
0
\end{array}\right\rbrack u\
y=\left\lbrack \begin{array}{llll} 1 & 1 & 1 & 1 \end{array}\right\rbrack x
\end{array}\right.
,求单位阶跃响应,单位冲激响应和零输入响应,设初始状态
x_0 ={\left\lbrack 1\;,1,\;1,-1\right\rbrack }^T$。

a0=[-1.6,-0.9,0,0;0.9,0,0,0;0.4,0.5,-5.0,-2.45;0,0,2.45,0];
b0=[1 0 1 0]';
c0=[1 1 1 1];
d0=[0];
t=0.5;   %采样周期
[a,b,c,d]=c2dm(a0,b0,c0,d0,t,'tustin');%连续系统离散化
subplot(2,2,1);
dstep(a,b,c,d);%离散系统的单位阶跃响应
title('discrete step response');
subplot(2,2,2);
dimpulse(a,b,c,d);%离散系统的单位冲激响应
title('discrete impulse response');
subplot(2,2,3);
x0=[1 1 1 -1]';%离散系统初始状态
dinitial(a,b,c,d,x0);
axis([0 6 -0.5 2.5]);
title('discrete initial response');
subplot(2,2,4);
[z,p,k]=ss2zp(a,b,c,d,1);%状态方程转化为零极点增益形式
zplane(z,p);
title('discrete ploe-zero map');
figure_4.png

6、多输入多输出系统$\left\lbrace \begin{array}{l} \dot{x} =\left\lbrack \begin{array}{cccc} 2.25 & -5 & -1.25 & -0.5\\ 2.25 & -4.25 & -1.25 & -0.25\\ 0.25 & -0.5 & -1.25 & -1\\ 1.25 & -1.75 & -0.25 & -0.75 \end{array}\right\rbrack x+\left\lbrack \begin{array}{cc}
4 & 6\
2 & 4\
2 & 2\
0 & 2
\end{array}\right\rbrack u\
y=\left\lbrack \begin{array}{cccc} 0 & 0 & 0 & 1\\ 0 & 2 & 0 & 2 \end{array}\right\rbrack x
\end{array}\right.$,求单位阶跃响应和单位冲激响应。

clear
clc
a=[2.25 -5 -1.25 -0.5;
   2.25 -4.25 -1.25 -0.25;
   0.25 -0.5 -1.25 -1;
   1.25 -1.75 -0.25 -0.75];
b=[4,6;2,4;2,2;0,2];
c=[0 0 0 1;0 2 0 2];
d=zeros(2,2);
subplot(1,2,1);
step(a,b,c,d);
title('step response');
subplot(1,2,2);
impulse(a,b,c,d);
title('impule response');
figure_5.png

a0=[-1.6,-0.9,0,0;0.9,0,0,0;0.4,0.5,-5.0,-2.45;0,0,2.45,0];
b0=[1 0 1 0]';
c0=[1 1 1 1];
d0=[0];
t=0.5; %采样周期
[a,b,c,d]=c2dm(a0,b0,c0,d0,t,'tustin');%连续系统离散化
subplot(2,2,1);
dstep(a,b,c,d);%离散系统的单位阶跃响应
title('discrete step response');
subplot(2,2,2);
dimpulse(a,b,c,d);%离散系统的单位冲激响应
title('discrete impulse response');
subplot(2,2,3);
x0=[1 1 1 -1]';%离散系统初始状态
dinitial(a,b,c,d,x0);
axis([0 6 -0.5 2.5]);
title('discrete initial response');
subplot(2,2,4);
[z,p,k]=ss2zp(a,b,c,d,1);%状态方程转化为零极点增益形式
zplane(z,p);
title('discrete ploe-zero map');

matlab学习笔记4(控制系统仿真)

1、将5中的连续系统,以t=0.5 取样周期,采用双线性变换算法转换成离散系统,然后求出离散系统的单位阶跃响应、单位冲激响应及零输入响应,初始状态$x_0 ={\left\lbrack 1\;1\;1-1\right\rbrack }^T$ 。

clear
clc
a=[-1.6 -0.9 0 0;0.9 0 0 0;0.4 0.5 -5 -2.45;0 0 2.45 0];
b=[1,0,1,0]';
c=[1 1 1 1];
d=[0];
H=ss(a,b,c,d);
t=0.5;%采样周期
Gd=c2d(H,t,'tustin');%连续时间系统转化为离散时间系统
[ad,bd,cd,dd]=ssdata(Gd);
subplot(2,2,1);
dstep(ad,bd,cd,dd);
title('discrete step response');
subplot(2,2,2);
dimpulse(ad,bd,cd,dd);
title('discrete impulse response');
subplot(2,2,3);
x0=[1 1 1 -1]';
dinitial(ad,bd,cd,dd,x0);
axis([0 6 -0.5 2.5]);
title('discrete initial response');
subplot(2,2,4);
[z,p,k]=ss2zp(ad,bd,cd,dd,1);
zplane(z,p);
title('discrete ploe-zero map');
figure_6.png

2、设开环传递函数$H(s)=\frac{k(3s+1)}{s(2s+1)}$,绘制出通过单位负反馈构成的闭环系统的根轨迹.

clear
clc
num=[3,1];
den=[2,1,0];
rlocus(num,den);
sgrid
title('根轨迹');
figure_7.png

3、设开环系统$H\left(S\right)=\frac{k\left(S+5\right)}{S\left(S+2\right)\left(S+3\right)}$,绘制出闭环系统的根轨迹,并确定交点处的增益K。

clear
clc
num=[1 5];
den=[1 5 6 0];
rlocus(num,den);
sgrid
title('根轨迹');
[k,p]=rlocfind(num,den);
Select a point in the graphics window

selected_point = - 1.9896 - 0.09931

figure_8.png

10、已知开环传递函数为$H\left(S\right)=\frac{k}{S^4 +{16S}^3 +36S^2 +80S}$,绘制处闭环系统根轨迹,并分析其稳定性。

clearclcnum=[1];den=[1 16 36 80 0];rlocus(num,den);title('根轨迹');
Select a point in the graphics window
figure_9.png
select_point = 0.0152 + 3.13651
figure(2);k1=55;num1=k1*num;den1=conv(den,den);G1=tf(num1,den1);[num_F1,den_F1]=feedback(G1,1,-1);%单位负反馈G1_0=tf(num_F1,den_F1);impulse(G1_0);title('impulse response(k=55)');
figure_11.png
figure(3);
k2=56;
num2=k2*num;
den2=conv(den,den);
G2=tf(num2,den2);
[num_F2,den_F2]=feedback(G2,1,-1);
G2_0=tf(num_F2,den_F2);
impulse(G2_0);
title('impulse response(k=56)');
figure_12.png
相关文章
|
编译器 C++
C++ Trick:小心,子类隐藏父类成员函数
学习面向对象的语言,了解继承是必不可少的。您可能觉得这太基础了,大家可都是老“996”了,还用介绍封装、继承、多态那老三样吗?
336 0
分布式系统设计,中心化和去中心化设计需要知道的内容(2)
分布式系统设计,中心化和去中心化设计需要知道的内容(2)
425 2
|
9月前
|
数据可视化 JavaScript 定位技术
Cesium第1篇,CesiumJS第1篇,CesiumJS使用详细,在vue中使用Cesium.js(WebGIS中的Cesium地图可视化应用)
Cesium是一种基于WebGL开源的虚拟地球技术,可以用于构建高性能、跨平台的三维地球应用程序,它支持多种数据格式和地图服务,可以实现地球表面的高精度渲染、地形分析、数据可视化等功能。Cesium还提供了丰富的API和插件,方便开发者进行二次开发和定制化,且可免费商用,在航空航天、国防、城市规划、教育等领域得到了广泛应用。
532 0
Cesium第1篇,CesiumJS第1篇,CesiumJS使用详细,在vue中使用Cesium.js(WebGIS中的Cesium地图可视化应用)
|
Linux 测试技术 Docker
软件测试|使用docker搞定 Python环境搭建
软件测试|使用docker搞定 Python环境搭建
|
9月前
|
前端开发 Java 开发工具
盘点Java GUI框架
盘点Java GUI框架
494 0
|
JSON 数据格式 Python
Tkinter小结 界面+快捷键设置
前言 基础知识点 前导篇 Button篇 Label篇 Entry篇 其他控件 事件篇 小应用 总结 前言 之前写过一个关于Python 使用easyUI创建桌面小应用的博客,虽然easyUI很实用,但是安装方面确实存在一些小小的问题。
1644 0
|
3天前
|
人工智能 自然语言处理 Shell
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
仅用3分钟,百炼调用满血版Deepseek-r1 API,享受百万免费Token。阿里云提供零门槛、快速部署的解决方案,支持云控制台和Cloud Shell两种方式,操作简便。Deepseek-r1满血版在推理能力上表现出色,尤其擅长数学、代码和自然语言处理任务,使用过程中无卡顿,体验丝滑。结合Chatbox工具,用户可轻松掌控模型,提升工作效率。阿里云大模型服务平台百炼不仅速度快,还确保数据安全,值得信赖。
157353 24
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
|
5天前
|
人工智能 API 网络安全
用DeepSeek,就在阿里云!四种方式助您快速使用 DeepSeek-R1 满血版!更有内部实战指导!
DeepSeek自发布以来,凭借卓越的技术性能和开源策略迅速吸引了全球关注。DeepSeek-R1作为系列中的佼佼者,在多个基准测试中超越现有顶尖模型,展现了强大的推理能力。然而,由于其爆火及受到黑客攻击,官网使用受限,影响用户体验。为解决这一问题,阿里云提供了多种解决方案。
16969 37
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
5天前
|
并行计算 PyTorch 算法框架/工具
本地部署DeepSeek模型
要在本地部署DeepSeek模型,需准备Linux(推荐Ubuntu 20.04+)或兼容的Windows/macOS环境,配备NVIDIA GPU(建议RTX 3060+)。安装Python 3.8+、PyTorch/TensorFlow等依赖,并通过官方渠道下载模型文件。配置模型后,编写推理脚本进行测试,可选使用FastAPI服务化部署或Docker容器化。注意资源监控和许可协议。
1310 8

热门文章

最新文章