<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wanrenqi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wanrenqi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wanrenqi]]></copyright><item><title><![CDATA[实际应用中电机电流环带宽的测试方法]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/132480366</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/132480366</guid><author>wanrenqi</author><pubDate>Thu, 24 Aug 2023 21:06:55 +0800</pubDate><description><![CDATA[同样为了在测试带宽的时候不让电机转动，我们令Iqref = 0，Idref 给一个正弦信号，我们通过改变Idref信号的频率，来测得不同频率下响应的Id的幅值。当响应的Id信号幅值衰减为Idref 幅值的0.707倍时（-3dB），此时Idref的信号频率就是电流环的带宽。前面我们讲了电流环参数的整定方法，假设我们按照前面讲的方法，设计电流环的带宽为400Hz，那么真正运行在实物上的电流环带宽是多少呢，是否和设计的一致呢。下面我们讲下实际应用中的电流环带宽的测试方法。f 为电流环的带宽，单位Hz。]]></description><category></category></item><item><title><![CDATA[基于STM32 FOC下桥三电阻采样方式的电机相电流重构方法]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/132183810</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/132183810</guid><author>wanrenqi</author><pubDate>Thu, 10 Aug 2023 14:02:33 +0800</pubDate><description><![CDATA[如何提高三电阻采样的调制率]]></description><category></category></item><item><title><![CDATA[Matlab基础——数组及其引用]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/132116320</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/132116320</guid><author>wanrenqi</author><pubDate>Sat, 05 Aug 2023 11:05:01 +0800</pubDate><description><![CDATA[Matlab中数组是按列存储的。]]></description><category></category></item><item><title><![CDATA[永磁同步电机矢量控制（三）——电流环 PI 参数整定(三)]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/131523107</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/131523107</guid><author>wanrenqi</author><pubDate>Tue, 04 Jul 2023 10:57:21 +0800</pubDate><description><![CDATA[从伯德图中可以看出：如果实际带延迟时间的电流环中，PI参数按理想的不带延迟时间整定时，其实际的电流环带宽会比设置的大很多，甚至达到2~3倍。而考虑延迟时间来整定的PI参数，和理想的需要设置的带宽相差不大。图上是不考虑延迟时间的电流控制回路的框图，如果我们要设计电流环的带宽为w，那么根据上一节所讲，Kp Ki的参数就整定为。但是在实际的控制系统回路中是存在延时的，那当我还想要设计电流环的带宽为w时，那么这时电流环的参数该如何整定呢？这节我们讲下考虑延迟时间的电流控制回路中，带宽的设计和PI参数的整定。]]></description><category></category></item><item><title><![CDATA[宏替代和内联函数的用法]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/129237192</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/129237192</guid><author>wanrenqi</author><pubDate>Mon, 27 Feb 2023 11:42:35 +0800</pubDate><description><![CDATA[宏的方法]]></description><category></category></item><item><title><![CDATA[永磁同步电机矢量控制（四）——速度环 PI 参数整定(四)]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/125089241</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/125089241</guid><author>wanrenqi</author><pubDate>Sat, 25 Jun 2022 23:10:56 +0800</pubDate><description><![CDATA[上一节讲了速度环参数整定的理论知识，这节讲下实际应用中速度环PI参数的整定方法。假如，有如下速度闭环系统：
其中，电机的极对数Pn=4；磁链 flux =0.0083；转动惯量J = 0.000258；系统本身的一阶惯性环节的时间常数为T= 0.00004s；这些都是系统的真实参数。假如我们调节速度环PI参数时，这些真实参数都不知道，那么该怎么调节PI参数呢？第一步，我们是知道电机的速度环是可以按典型II系统整定的。而典型II系统只要整定K和τ就可以，而我们前面推导出了K，τ，和并行PI速度环参数Kp，Ki]]></description><category></category></item><item><title><![CDATA[永磁同步电机矢量控制（四）——速度环 PI 参数整定(三)]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/125012777</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/125012777</guid><author>wanrenqi</author><pubDate>Sat, 25 Jun 2022 23:09:41 +0800</pubDate><description><![CDATA[上一节讲了电机控制中速度环的开环传递函数，然后按照典型II系统整定。

]]></description><category></category></item><item><title><![CDATA[永磁同步电机矢量控制（四）——速度环 PI 参数整定(二)]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/125002460</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/125002460</guid><author>wanrenqi</author><pubDate>Sat, 25 Jun 2022 23:07:38 +0800</pubDate><description><![CDATA[下面我们直接给出速度环的传递函数框图：

然后我们再讲讲各个环节的由来。
第一个：转速环PI调节器，转速环PI调节器的传递函数就是传统的PI控制器传函。这里要注意的是
转速环PI调节器的输入是参考转速和反馈转速之差，单位（RPM），输出的是电流环的给定值
一般是iqref。
第二个：电流内环的等效传递函数，一般在研究外环时，将内环闭环传函视作一阶惯性环节，其实这
里对于电流内环的近似纯粹只是考虑其在控制时间上带来的延迟效果，具体推导参考前一节讲
解。G(s)close=13Ts+1G_{(s)close} ]]></description><category></category></item><item><title><![CDATA[永磁同步电机矢量控制（四）——速度环 PI 参数整定(一)]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/124992651</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/124992651</guid><author>wanrenqi</author><pubDate>Sat, 25 Jun 2022 23:05:42 +0800</pubDate><description><![CDATA[一般在整定外环的PI参数时，我们会把内环等效成一阶惯性环节。电机控制中也一样，我们在整定速度环的PI参数时，把电流环近视等效成一阶惯性环节。
那么怎么把电流环

]]></description><category></category></item><item><title><![CDATA[巴特沃斯(Butterworth)滤波器（二）]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/124737768</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/124737768</guid><author>wanrenqi</author><pubDate>Tue, 17 May 2022 21:20:16 +0800</pubDate><description><![CDATA[前面讲了下巴特沃斯（Butterworth）模拟滤波器的设计，这节讲下如何将模拟滤波器离散化，变成数字滤波器，然后在单片机中实现。
我们前面讲过很多离散化方法，其中最常用的一种叫做双线性变换
s=2Ts1−z−11+z−1
\begin{aligned}
  s=\frac{2}{T_{s}}\frac{1-z^{-1}}{1+z^{-1}}
\end{aligned}
s=Ts​2​1+z−11−z−1​​
把这个公式代入传递函数就可以得到一个Z域的差分方程。
但是如果我们直接使用双线性变换进行离散化后，]]></description><category></category></item><item><title><![CDATA[巴特沃斯(Butterworth)滤波器（一）]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/124717517</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/124717517</guid><author>wanrenqi</author><pubDate>Tue, 17 May 2022 21:12:02 +0800</pubDate><description><![CDATA[首先考虑一个归一化（截止频率为1rad/s）的低通滤波器,其幅频特性表达式如下：

其幅频特性曲线如下图：

当n–&gt; ∞\infty∞ 时，得到一个理想的低通滤波器：
当w&gt;1(截止频率)时，增益为0；
当w&lt;1(截止频率)时，增益为1；
当w=1(截止频率)时，增益为0.707（衰减到-3dB）；
其次，我们根据上面的幅频特性表达式求滤波器传递函数
根据以下三个公式：

s = jw
∣H(s)∣2=H(s)H(s)‾\left | H_{(s)}\right |^{2}=H_{(s)]]></description><category></category></item><item><title><![CDATA[永磁同步电机矢量控制（三）——电流环 PI 参数整定(二)]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/124409005</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/124409005</guid><author>wanrenqi</author><pubDate>Mon, 25 Apr 2022 20:59:48 +0800</pubDate><description><![CDATA[前面我们把电流环的闭环传递函数整定成了典型的二阶系统。

]]></description><category></category></item><item><title><![CDATA[Matlab的信号频谱分析]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/123802390</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/123802390</guid><author>wanrenqi</author><pubDate>Mon, 28 Mar 2022 23:15:56 +0800</pubDate><description><![CDATA[FFT是离散傅立叶变换的快速算法，可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的。但是如果变换到频域之后，就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外，FFT可以将一个信号的频谱提取出来，这在频谱分析方面也是经常用的。 通俗点说FFT就是将一个信号解析成是由不同频率、幅值，相位的正弦波叠加而成的。
一：FFT变换的步骤
1：对模拟信号离散化
一个模拟信号，经过ADC采样之后，就变成了离散的数字信号。
2：采样频率（Fs）的选取
根据采样定理，采样频率需大于信号频率的两倍。]]></description><category></category></item><item><title><![CDATA[Matlab扫频法求系统传递函数]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/123714046</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/123714046</guid><author>wanrenqi</author><pubDate>Fri, 25 Mar 2022 09:53:20 +0800</pubDate><description><![CDATA[对于一些不好求传递函数的系统，我们还可以使用扫频法来快速获得传递函数，相对于建模法计算的系统传函，扫频法得到的传函进度可能差点。下面以一阶RC滤波电路为例，利用扫频法获取传递函数。
1：在simulink中建立一阶RC低通滤波电路，如下：

2：设置系统的输入和输出
如上图，设置受控电压源的输入为系统输入，电压表的输出为系统输出。
3：打开 Model Linearizer—&gt;ESTIMATION,设置input signal 为正弦输入

4 :对输入正弦信号的参数进行设置如图：
1：设置输入正弦的]]></description><category></category></item><item><title><![CDATA[传递函数的离散化（二）—— C实现]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/123412426</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/123412426</guid><author>wanrenqi</author><pubDate>Mon, 14 Mar 2022 19:41:41 +0800</pubDate><description><![CDATA[为什么我们要把传递函数转化为状态空间方程呢？
一：转化的目的

]]></description><category></category></item><item><title><![CDATA[Simulink代码生成——硬件支持包的安装（2018b版本和2022b版本）]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/121208836</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/121208836</guid><author>wanrenqi</author><pubDate>Mon, 08 Nov 2021 17:06:37 +0800</pubDate><description><![CDATA[当使用默认的代码生成时，在生成的代码中，我们会发现对于数学函数，比如sin 、cos都是调用的标准数学库math.h里的函数。而这个数学库是针对通用定点MCU的，执行效率会比较低。那么怎么生成带有浮点运算单元，和自己数学库的MCU的嵌入式C代码呢？比如stm32F4系列MCU。Simulink是通过硬件支持包的形式，来支持其专用代码的生成。那么怎么设置呢。
1：硬件支持包的安装
通过matlab——&gt;附加功能——&gt;获取硬件支持包。搜索ARM，选择Embedded Coder Support Pa]]></description><category></category></item><item><title><![CDATA[Simulink代码生成——SIL测试]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/121204526</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/121204526</guid><author>wanrenqi</author><pubDate>Mon, 08 Nov 2021 14:38:59 +0800</pubDate><description><![CDATA[   Saftware In Loop(SIL)测试即软件在环测试。
1：SIL测试目的
**SIL测试的目的就是为了验证自动生成的代码和用于代码生成的模型的行为上是否一致。**即验证生成的代码是否正确。我们把控制策略模型替换成由控制策略模型转换得到的C代码编译后的.DLL文件（注意：SIL使用的是windows下的编译器，例如Visual Studio C++）,如果两者的输出效果一致，则认为生成的代码正确。如下图，也就是说SIL测试是一种等效性测试。

2：SIL测试
simulink提供了SIL仿真模]]></description><category></category></item><item><title><![CDATA[Simulink自动代码生成（一）]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/121054356</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/121054356</guid><author>wanrenqi</author><pubDate>Mon, 01 Nov 2021 15:32:05 +0800</pubDate><description><![CDATA[  一个simulink模型能够生成代码首先要满足的条件：
 1：确保模型仿真的正确性
 2：将需要的输入和输出改成input和output模块
 3：离散化模型，设置求解器为离散，固定步长

满足上面条件后，接下来怎么生成嵌入式C代码呢？
一 :  嵌入式C代码生成
1：将系统目标文件（system target file）设置成 ert. tlc( Embedded Coder ) 如下图：

2：硬件实现规定（Hardware Implenmatation） 假如生成的代码用到的硬件平台是stm32，]]></description><category></category></item><item><title><![CDATA[Simulink自动代码生成（二）]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/121079679</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/121079679</guid><author>wanrenqi</author><pubDate>Mon, 01 Nov 2021 15:23:56 +0800</pubDate><description><![CDATA[  接着simulink自动代码生成（一）讲，下面举一个简单的例子，simulink模型如下：

然后按照simulink自动代码生成（一）中的设置，生成C代码如下：

可以看出生成的代码名称都是结构体，看起来略显复杂，接下来将使用“数据对象”进行数据管理，让代码看起来更简单化。
1：封装成子系统，然后在信号线上添加信号名，如下图：

2：然后在数据字典中，添加 x，y，z三个 mpt.signal（输入输出信号对象），并且设置他们的数据类型为float型单精度。这样再通过点击Signal Properti]]></description><category></category></item><item><title><![CDATA[Simulink数据字典的建立和模型关联]]></title><link>https://blog.youkuaiyun.com/wanrenqi/article/details/121043200</link><guid>https://blog.youkuaiyun.com/wanrenqi/article/details/121043200</guid><author>wanrenqi</author><pubDate>Fri, 29 Oct 2021 22:42:48 +0800</pubDate><description><![CDATA[  simulink模型中的数据对象可以关联到：
  1：Base Workspace（基本的工作空间）
  2：Data Dictionary（数据字典）；


]]></description><category></category></item></channel></rss>