IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 基于MATLAB机电系统动态仿真部分习题 -> 正文阅读

[数据结构与算法]基于MATLAB机电系统动态仿真部分习题

习题2:第1~8题

第1题

在指令窗口输入: x = 1:0.2:2 和 y = 2:0.2:1 ,观察所生成的数组。

代码实现:

 x = 1:0.2:2
 y = 2:0.2:1

运行结果:

x =

    1.0000    1.2000    1.4000    1.6000    1.8000    2.0000


y =

  空的 1×0 double 行向量

第2题

要求在[ 0 , 2π ]上产生50个等距采样数据的一维数组,试用两种不同的指令实现。

代码实现:

x1 = 0:2*pi/9:2*pi;%冒号生成法
x2 = linspace(0,2*pi,10);%线性定点法

运行结果:

>> x1

x1 =

         0    0.6981    1.3963    2.0944    2.7925    3.4907    4.1888    4.8869    5.5851    6.2832

>> x2

x2 =

         0    0.6981    1.3963    2.0944    2.7925    3.4907    4.1888    4.8869    5.5851    6.2832

第3题

计算
e ? 2 t s i n t ? . \\e^{-2t}sint\,. e?2tsint.
其中,t 为 [ 0 , 2π ]上生成的10个等距采样的数组。

代码实现:

 t = linspace(0,2*pi,10);
 t1 = exp(-2*t).*sin(t);

运行结果:

>> t

t =

         0    0.6981    1.3963    2.0944    2.7925    3.4907    4.1888    4.8869    5.5851    6.2832

>> t1

t1 =

         0    0.1591    0.0603    0.0131    0.0013   -0.0003   -0.0002   -0.0001   -0.0000   -0.0000

第4题

已知
在这里插入图片描述
计算矩阵A 、B乘积和点乘。

代码实现:

 A = [1,2;3,4];
 B = [5,6;7,8];
 A1 = A * B;
 B1 = A .* B;

运行结果:

>> A1

A1 =

    19    22
    43    50

>> B1

B1 =

     5    12
    21    32

第5题

对题4中的 A,令 A ( : , 3 ) = [ 5 ,6 ] 生成 2×3 数组 , 利用 reshape ( A , 3 , 2) 指令,使A重构为 3×2 数组,再利用 “[ ]” ,裁去重构后的数组 A 的第一列 ,求最后结果。

代码实现:

 A = [1,2;3,4];
 A(:,3) = [5;6];
 reshape(A,3,2);
 A(:,1) = [];

运行结果:

>> A

A =

     2     5
     4     6

第6题

已知
在这里插入图片描述
计算 A & B ,A | B ,~A ,A == B , A > B 。

代码实现:

A = [0,2,3,4;1,3,5,0];
B = [1,0,5,3;1,5,0,5];
X1 = A & B;
X2 = A | B;
X3 = ~A;
X4 = (A == B);
X5 = (A>B);

运行结果:

>> X1

X1 =

  2×4 logical 数组

   0   0   1   1
   1   1   0   0

>> X2

X2 =

  2×4 logical 数组

   1   1   1   1
   1   1   1   1

>> X3

X3 =

  2×4 logical 数组

   1   0   0   0
   0   0   0   1

>> X4

X4 =

  2×4 logical 数组

   0   0   0   0
   1   0   0   0

>> X5

X5 =

  2×4 logical 数组

   0   1   0   1
   0   0   1   0

第7题

先产生一个 3×3 的正态随机矩阵 A , 再用 floor(A) 、ceil(A) 、fix(A) 、round(A),进行 A 的取整运算,体会不同取整方法的效果。

代码实现:

A1 = rand(3);%返回3*3的随机矩阵
A = 10 + 2*A1;%产生均值为10,方差为4的矩阵
X1 = floor(A);
X2 = ceil(A);
X3 = fix(A);
X4 = round(A);

运行结果:

>> X1

X1 =

    11    11    10
    11    11    11
    10    10    11

>> X2

X2 =

    12    12    11
    12    12    12
    11    11    12

>> X3

X3 =

    11    11    10
    11    11    11
    10    10    11

>> X4

X4 =

    12    12    11
    12    11    11
    10    10    12

第8题

将题6中的 A阵 用串转换函数转换为串B,再用size指令查看两者的结构有何不同。

代码实现:

  A = [0,2,3,4;1,3,5,0];%得到题6A矩阵
  B = num2str(A);
  Y1 = size(A);
  Y2 = size(B);

运行结果:

>> Y1

Y1 =

     2     4

>> Y2

Y2 =

     2    10

习题5:第1~7题

第1题

将下列系统的传递函数模型用MATLAB语言表达出来。
在这里插入图片描述
代码实现:

 %习题5,第1题(1):传递函数模型(有理多项式)
 num = [1,35,291,1093,1700];
 den = [1,289,254,2541,4684,1700];
 sys = tf(num,den);

运行结果:

>> sys

sys =
 
        s^4 + 35 s^3 + 291 s^2 + 1093 s + 1700
  --------------------------------------------------
  s^5 + 289 s^4 + 254 s^3 + 2541 s^2 + 4684 s + 1700
 
Continuous-time transfer function.

代码实现:

  %习题5,第1题(2):零-极点模型
 z = -3;
 p = [-1,-5,-15];
 k = 15;
 sys = zpk(z,p,k);

运行结果:

>> sys

sys =
 
       15 (s+3)
  ------------------
  (s+1) (s+5) (s+15)
 
Continuous-time zero/pole/gain model.

代码实现:

%习题5,第1题(3):两个传递函数串联
 z = [0,-2,-2];
 p = [-1,1];
 k = 100;
 [num1,den1] = zp2tf(z',p,k);
 sys1 = tf(num1,den1);
 
 num = [1,3,2];
 den = [1,2,5,2];
 sys2 = tf(num,den);
 
 sys = series(sys1,sys2);

运行结果:

>> sys

sys =
 
  100 s^5 + 700 s^4 + 1800 s^3 + 2000 s^2 + 800 s
  -----------------------------------------------
           s^5 + 2 s^4 + 4 s^3 - 5 s - 2
 
Continuous-time transfer function.

第2题

求第 1 题中各个系统模型的等效状态空间模型。

代码实现:

 %习题5,第2题(1):传递函数模型→状态空间模型
 num = [1,35,291,1093,1700];
 den = [1,289,254,2541,4684,1700];
 sys = tf(num,den);
 Gss = ss(sys);

运行结果:

>> Gss

Gss =
 
  A = 
           x1      x2      x3      x4      x5
   x1    -289  -15.88  -9.926  -4.574   -1.66
   x2      16       0       0       0       0
   x3       0      16       0       0       0
   x4       0       0       4       0       0
   x5       0       0       0       1       0
 
  B = 
       u1
   x1   2
   x2   0
   x3   0
   x4   0
   x5   0
 
  C = 
           x1      x2      x3      x4      x5
   y1     0.5   1.094  0.5684  0.5337  0.8301
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

代码实现:

 %习题5,第2题(2):零-极点模型→传递函数模型→状态空间模型
 z = -3;
 p = [-1,-5,-15];
 k = 15;
 [num,den] = zp2tf(z,p,k);
 sys = tf(num,den);
 Gss = ss(sys);

运行结果:

>> Gss

Gss =
 
  A = 
           x1      x2      x3
   x1     -21  -11.88  -2.344
   x2       8       0       0
   x3       0       4       0
 
  B = 
       u1
   x1   2
   x2   0
   x3   0
 
  C = 
           x1      x2      x3
   y1       0  0.9375  0.7031
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

代码实现:

%习题5,第2题(3):两个传递函数串联,状态空间模型
 z = [0,-2,-2];
 p = [-1,1];
 k = 100;
 [num1,den1] = zp2tf(z',p,k);
 sys1 = tf(num1,den1);
 
 num = [1,3,2];
 den = [1,2,5,2];
 sys2 = tf(num,den);
 
 sys = series(sys1,sys2);
 Gss = ss(sys);

运行结果:

>> Gss

Gss =
 
  A = 
         x1    x2    x3    x4    x5
   x1    -2    -2     0  1.25     1
   x2     2     0     0     0     0
   x3     0     1     0     0     0
   x4     0     0     2     0     0
   x5     0     0     0   0.5     0
 
  B = 
       u1
   x1  64
   x2   0
   x3   0
   x4   0
   x5   0
 
  C = 
          x1     x2     x3     x4     x5
   y1  7.813  10.94  15.63  5.078  1.563
 
  D = 
        u1
   y1  100
 
Continuous-time state-space model.

第3题

将以下系统状态空间模型用MATLAB语言表达出来。
在这里插入图片描述
代码实现:

%习题5,3题:状态空间模型
 A = [3,2,1;0,4,6;0,-3,-5];
 B = [1,2,3]';
 C = [1,2,5];
 D = 0;
 Gss = ss(A,B,C,D);

运行结果:

>> Gss

Gss =
 
  A = 
       x1  x2  x3
   x1   3   2   1
   x2   0   4   6
   x3   0  -3  -5
 
  B = 
       u1
   x1   1
   x2   2
   x3   3
 
  C = 
       x1  x2  x3
   y1   1   2   5
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

第4题

求第 3 题中的系统模型的等效传递函数模型和零极点模型。

代码实现:

%习题5,4题:状态空间模型→传递函数模型,传递函数模型→零-极点模型
 A = [3,2,1;0,4,6;0,-3,-5];
 B = [1,2,3]';
 C = [1,2,5];
 D = 0;
 Gss = ss(A,B,C,D);
 [num,den] = ss2tf(A,B,C,D);
 
 sys = tf(num,den);
 Gzpk = zpk(sys);

运行结果:

>> sys

sys =
 
   20 s^2 - 83 s + 138
  ---------------------
  s^3 - 2 s^2 - 5 s + 6
 
Continuous-time transfer function.

>> Gzpk

Gzpk =
 
  20 (s^2 - 4.15s + 6.9)
  ----------------------
    (s+2) (s-3) (s-1)
 
Continuous-time zero/pole/gain model.

第5题

已知系统动力学方程如下,试用MATLAB语言写出它们的传递函数。
在这里插入图片描述
代码实现:

%习题5,第5题(1):传递函数模型
num = [1,2,0];
den = [1,15,50,500];
sys = tf(num,den);

运行结果:

>> sys

sys =
 
          s^2 + 2 s
  -------------------------
  s^3 + 15 s^2 + 50 s + 500
 
Continuous-time transfer function.

代码实现:

%习题5,第5题(2):传递函数模型
num = [4,0];
den = [1,3,6,4];
sys = tf(num,den);

运行结果:

>> sys

sys =
 
           4 s
  ---------------------
  s^3 + 3 s^2 + 6 s + 4
 
Continuous-time transfer function.

第6、7题
在这里插入图片描述

代码实现:

%习题5,6题:传递函数模型
k = 7;
c1 = 0.5;
c2 = 0.2;
m1 = 3.5;
m2 = 5.6;
num = [m1,c1,k];
den = [m1*m2,c1*m1+c2*m1+c1*m2,c1*c2+m2*k,c1*k+c2*k,0];
sys = tf(num,den);

运行结果:

>> sys

sys =
 
           3.5 s^2 + 0.5 s + 7
  --------------------------------------
  19.6 s^4 + 5.25 s^3 + 39.3 s^2 + 4.9 s
 
Continuous-time transfer function.

代码实现:

%习题5,7题:传递函数模型
m1 = 12;
m2 = 38;
k = 1000;
c = 0.1;
num = [c,k];
den = [m1*m2,m1*c+m2*c,m1*k+m2*k,0,0];
sys1 = tf(num,den);

num1 = [m1,c,k];
den = [m1*m2,m1*c+m2*c,m1*k+m2*k,0,0];
sys2 = tf(num1,den);

运行结果:

>> sys1

sys1 =
 
         0.1 s + 1000
  ---------------------------
  456 s^4 + 5 s^3 + 50000 s^2
 
Continuous-time transfer function.

>> sys2

sys2 =
 
     12 s^2 + 0.1 s + 1000
  ---------------------------
  456 s^4 + 5 s^3 + 50000 s^2
 
Continuous-time transfer function.

习题6:第2~4题

第2题

将例 6-2 中的微分方程改写为以下形式:
在这里插入图片描述
求 u 分别为1、2时,在时间区间 t = [ 0 , 20 ] 微分方程的解(提示:使用附加变量的ode算法)

代码实现:

 %习题6,2题,主函数
 tspan = [0,20];
 x0 = [0,1];
 
 ps = 1;
 [T1,X1] = ode45('wffc',tspan,x0,odeset,ps);
 ps = 2;
 [T2,X2] = ode45('wffc',tspan,x0,odeset,ps);
 plot(T1,X1(:,1),'r',T2,X2(:,1),'b--');
 title('微分方程的解','fontsize',18);xlabel('时间t','fontsize',15);
 legend('T1','T2');
 %习题6,2题,子函数
function dx = wffc(t,x,flag,ps)
%微分方程的解

dx = zeros(2,1);
dx(1) = x(2);
dx(2) = ps*(1-x(1)^2)*x(2)-x(1);

end

运行结果:
在这里插入图片描述
第3、4题

在这里插入图片描述

代码实现:

%习题6,第3题(1)
num = [1,0.5];
den = [1,0.1];
sys1 = tf(num,den);

 z = [];
 p = [0,-2,-10];
 k = 20;
 sys2 = zpk(z,p,k);
 
 sys3 = series(sys1,sys2);
 sys4 = feedback(sys3,1,-1);
 
 %习题6,第3题(2)
 subplot(1,2,1)
 step(sys4);%计算系统对单位阶跃输入的响应
 
  %习题6,第3题(3)
  [u,t] = gensig('square',30,60);
  subplot(1,2,2)
  lsim(sys4,'r',u,t);%计算系统对任意输入的响应

运行结果1:

>> sys4

sys4 =
 
                  20 (s+0.5)
  -------------------------------------------
  (s+10.23) (s+0.8195) (s^2 + 1.052s + 1.193)
 
Continuous-time zero/pole/gain model.

运行结果2:
在这里插入图片描述
代码实现:

%习题6,第4题(1)
num = 1;
den = [1,0.2,1.01];
sys = tf(num,den);

subplot(1,2,1)
step(sys);

%习题6,第4题(2)
sys1 = c2d(sys,0.3,'zoh');%传递函数离散
[num1,den1] = tfdata(sys1,'v');%离散后提取分子分母
subplot(1,2,2)
dstep(num1,den1);

运行结果:
在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:53:04  更:2022-06-14 22:53:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 13:29:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码