目录
模型搭建
上回说到开环不稳的情况,以为是自己传递函数推导的有问题导致控制器没设计好,于是乎利用Simulink建模电路仿真,通过扫频获得传递函数的方法来验证系统开环传递函数的正确性,这次同时用脚本法和Simulink的Linearization Manager APPS来辅助获得传递函数并与脚本法进行对比。模型就是普通的移相全桥的拓扑。这里没有通过相位的百分比来获得传递函数,直接通过MCU的比较值,插入延时。之前电机通过脚本法得到速度环的传递函数,脚本法方法与之类似。
永磁同步电机矢量控制速度环参数整定方法尝试—-利用Matlab通过扫伯德图生成传递函数_卡洛斯伊的博客-CSDN博客_永磁同步电机的传递函数
电路的硬件参数来自实际的硬件,毕竟是要生成代码到系统上运行的。
开环仿真没有问题
扫频操作步骤
Step1:
在输出信号处右键选择Linear Analysis Points–>Output Measurement
输入端放一个Input Perturbation
Step2:
点APPS–>Linearization Manager
弹出下面的窗口,选择Frequency Response Estimator
弹出下面的窗口,这里要选择注入信号类型
按下面的操作
1.选择频率的显示单位,这里选择Hz更方便理解
2.点加号配置注入信号的参数
3.设置注入信号的最小频率50Hz
4.设置注入信号的最大频率40Khz (这个频率根据系统控制带宽需求选取)
5.设置采样个数
上一步点OK后得到如下图所示,需要选中1处的第一个点,然后Shift+左键选中所有的点才能对其进行配置,如下所示:
对注入信号的幅值,周期进行配置,由于我们0-100%的相位对应0-12000的比较值,这里注入的信号幅值放500。对于其他的周期可以参考Help有详细的解释。
Amplitude — Amplitude of injected sine waves
Number of periods — Total number of periods at each frequency
Settling periods — Number of periods to discard for the estimation computation
Ramp periods — Number of periods for ramping up the amplitude of each sine wave to its maximum value
以上,配置好后点OK,来到这个界面,这里Input Signal已经选择好我们配置的注入信号了,点一下Bode,慢慢等等仿真完成,Bode生成就可以了,这个仿真的快慢取决于配置的点数,周期数等。
Step3:
仿真完成,这是满载扫出来的伯德图
获得传递函数
得到伯德图后把estsys1拖到Workspace
在命令窗口输入:
tfest(estsys1,4,3),这个函数的功能是把采到的点estsys1通过4个极点3个零点的传递函数拟合出来。
扫出来的和拟合出来的传递函数伯德图