• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Matlab 仿真——直流电机速度控制(2)系统分析

人工智能 chuchu 1358次浏览 0个评论

文章目录

  • Matlab 仿真——直流电机速度控制(2)系统分析
    • 0. 被控对象与设计要求
    • 1. 开环响应
    • 2. LTI 模型特征
    • 3. 其他输入信号的响应
    • 4. 引用

Matlab 仿真——直流电机速度控制(2)系统分析

  上一节我们成功在matlab建立好了电机系统模型,这一节我们来分析这个系统的时域响应

0. 被控对象与设计要求

  这里把设计需求和系统转换方程粘贴在这里:   设计需求(阶跃响应):  

  • 稳定时间<2s
  • 超调<5%
  • 稳态误差<1%

  转换方程:  
Matlab 仿真——直流电机速度控制(2)系统分析

1. 开环响应

  让我们看看该系统的开环响应如何,是否满足我们对电机的要求。matlab自带了线性系统分析工具。 Matlab运行以下代码  

<code class="prism language-python has-numbering"><span class="token operator">%</span>motor parameter
J <span class="token operator">=</span> <span class="token number">0.01</span><span class="token punctuation">;</span>
b <span class="token operator">=</span> <span class="token number">0.1</span><span class="token punctuation">;</span>
K <span class="token operator">=</span> <span class="token number">0.01</span><span class="token punctuation">;</span>
R <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
L <span class="token operator">=</span> <span class="token number">0.5</span><span class="token punctuation">;</span>
<span class="token operator">%</span>motor tf function
s <span class="token operator">=</span> tf<span class="token punctuation">(</span><span class="token string">'s'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
P_motor <span class="token operator">=</span> K<span class="token operator">/</span><span class="token punctuation">(</span><span class="token punctuation">(</span>J<span class="token operator">*</span>s<span class="token operator">+</span>b<span class="token punctuation">)</span><span class="token operator">*</span><span class="token punctuation">(</span>L<span class="token operator">*</span>s<span class="token operator">+</span>R<span class="token punctuation">)</span><span class="token operator">+</span>K<span class="token operator">^</span><span class="token number">2</span><span class="token punctuation">)</span>
<span class="token operator">%</span>求系统P_motor的阶跃响应,时间为<span class="token number">0</span>到<span class="token number">5</span>秒,步长<span class="token number">0.</span>1s
linearSystemAnalyzer<span class="token punctuation">(</span><span class="token string">'step'</span><span class="token punctuation">,</span>P_motor<span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">:</span><span class="token number">0.1</span><span class="token punctuation">:</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code>

  输出  
在这里插入图片描述   在窗口上右击选择要显示的数据,我们得到系统的稳定时间为2.07秒,终值为0.0999。稳定时间不满足我们的要求。  
在这里插入图片描述

2. LTI 模型特征

  我们选择该系统的零极点图来观察  
在这里插入图片描述  
在这里插入图片描述   发现该系统有两个实极点,一个在-2处, 一个在-10处。也因为极点没有虚部,所以系统不存在震荡。根据现代控制系统的知识,我们推测-2处的极点主导了系统的响应。为了验证这个想法,我们找到一个单极点的系统进行比较 rP_motor = 0.1/(0.5*s+1)。   代码如下  

<code class="prism language-csharp has-numbering"><span class="token operator">%</span>motor parameter
J <span class="token operator">=</span> <span class="token number">0.01</span><span class="token punctuation">;</span>
b <span class="token operator">=</span> <span class="token number">0.1</span><span class="token punctuation">;</span>
K <span class="token operator">=</span> <span class="token number">0.01</span><span class="token punctuation">;</span>
R <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
L <span class="token operator">=</span> <span class="token number">0.5</span><span class="token punctuation">;</span>
<span class="token operator">%</span>motor tf function
s <span class="token operator">=</span> <span class="token function">tf</span><span class="token punctuation">(</span><span class="token string">'s'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
P_motor <span class="token operator">=</span> K<span class="token operator">/</span><span class="token punctuation">(</span><span class="token punctuation">(</span>J<span class="token operator">*</span>s<span class="token operator">+</span>b<span class="token punctuation">)</span><span class="token operator">*</span><span class="token punctuation">(</span>L<span class="token operator">*</span>s<span class="token operator">+</span>R<span class="token punctuation">)</span><span class="token operator">+</span>K<span class="token operator">^</span><span class="token number">2</span><span class="token punctuation">)</span>
rP_motor <span class="token operator">=</span> <span class="token number">0.1</span><span class="token operator">/</span><span class="token punctuation">(</span><span class="token number">0.5</span><span class="token operator">*</span>s<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">%</span>求系统P_motor的阶跃响应,时间为<span class="token number">0</span>到<span class="token number">5</span>秒,步长<span class="token number">0.1</span>s
<span class="token function">linearSystemAnalyzer</span><span class="token punctuation">(</span><span class="token string">'step'</span><span class="token punctuation">,</span>P_motor<span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">:</span><span class="token number">0.1</span><span class="token punctuation">:</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code>

  在弹出的窗口里面我们导入新的系统阶跃响应  
在这里插入图片描述  
在这里插入图片描述  
在这里插入图片描述   可以发现系统阶跃响应很接近,这印证了我们的猜想。

3. 其他输入信号的响应

  除了阶跃响应,有时我们也想看看系统输入为其他输入信号时的情况。你可以直接导入你自己定义好的输入信号,或者用Matlab为你准备好的信号模板定制输入信号。接下来我们演示如何用模板信号。   右击,选择Plot Types——Linear Simulation  
在这里插入图片描述   定义仿真时间,步长,然后点击设计信号
在这里插入图片描述 填写信号参数,插入,然后点击仿真  
在这里插入图片描述

  1. 接着你就能看到新的输入型号的输出结果了
  2. 在这里插入图片描述

4. 引用

 
Matlab 仿真——直流电机速度控制(2)系统分析


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Matlab 仿真——直流电机速度控制(2)系统分析
喜欢 (0)

您必须 登录 才能发表评论!

加载中……