pmsm simulink foc 仿真_C语言电机仿真框架

51e5b057b8d61199a61b9c5ca200f835.png

本文介绍如何用C语言实现电机控制仿真,目的是方便移植到 DSP 中执行(或阻止 Simulink 继续“祸害”广大人民群众)。

前言

呃,先在这里跟大家说声抱歉,迫于时间压力,尽管是粗制滥造的视频教程仍然还是先上传了——毕竟烂片子总比没有片子好吧。为了保证清晰度,知乎这里就不上传视频了,哔哩哔哩传送门走你(记得用至少1.25倍速度观看哦。。。):

https://www.bilibili.com/video/av51496015/​www.bilibili.com

视频暂时只介绍了如何实现感应电机的VVVF控制,但实际上有了这个框架以后,你要做反馈控制和观测都很方便了,后续会不会及时更新要随缘了哈。

下面的“正文”是按 markdown 的格式写的,建议复制粘贴到 Visual Studio Code 中,按下 ctrl+shift+v (Windows 系统)后阅读。或者,可以去我的Blog里阅读(完事后记得回来点个赞啦):https://horychen.github.io/tutorial/AC-Machine-Simulation-Framework-in-C/


正文

请注意,我已经将我的 Github 上,与本文相关的代码重新命名为 vvvf 分支(branch),原 master 分支将不断更新。
免责声明:做好将来你的拥有100台dSpace的合作者问你要Simuliink仿真结果你却没有的心理准备,然后我们开始吧。
下文须配合视频食用:哔哩哔哩传送门(右键新标签页打开)。

1. Prerequisite

  1. 1. Compiler
  • MinGW (gcc)
  • Anaconda3 (python)
 D:UsershorycAnaconda3pkgsopenssl-1.1.1b-he774522_1Librarybin
 D:UsershorycAnaconda3Lib
 D:UsershorycAnaconda3Librarybin
 D:UsershorycAnaconda3Scripts
 D:UsershorycAnaconda3
  1. 2. Editor
  • Sublime Text 3: the shell command is as follows:
{
 "working_dir": "$file_path",
 "cmd": "gcc -Wall $file_name -o $file_base_name",
 "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
 "selector": "source.c",
 "variants": 
     [
         {   
 "name": "Run",
 "shell_cmd": "gcc $file controller.c observer.c -o $file_base_name && start cmd /c "${file_path}/${file_base_name}""
         }
     ]
 }

2. Utility

  • AutoHotkey (to close all figures at once)
 #NoEnv
 #Warn
 SendMode Input  
 SetWorkingDir %A_ScriptDir%  
 SetTitleMatchMode 2
 #q:: closePythonPlot() 
 closePythonPlot()
 {
     isExist = 1
     while isExist
     {
         PostMessage, 0x112, 0xF060,,, Figure
         IfWinNotExist, Figure
         {
             isExist = 0
         }
     }
 }
    • MS Visual Studio Code (to properly read this readme.md file)
    • Hyper (good-looking terminal)
    • Windows Subsystem for Linux, a.k.a. WSL (for being cool?)
    • Git in WSL or in DOS Cmd (for version control)

2. Machine Models

2.1. Model of Induction Machine

2.2. Model of Permanent Magnet Synchronous Machine

3. Block Diagram for the Codes

Simulation procedure is as follows:

 for loop begins{
 ​
     time
 ​
     machine_simulation(); // machine_dynamics, numeric_integration
 ​
     measurement(); // speed, current
 ​
     observation(); // observer 
 ​
     control(); // speed_control, current_control
 ​
     inverter_model(); // 
 }

Future Topics (Brainstorming)

  • C语言电机仿真架构 / framework in C language (done)
  • 永磁电机的仿真
  • 电机设计的电路参数拟合
  • 变步长数值积分(DoPri54)
  • 电机参数自整定
  • 电流环系数设计
  • 转速环系数设计
  • 转动惯量辩识
  • 自抗扰控制
  • 基于带宽指标的自抗扰控制系数设计
  • 全局稳定转速自适应观测器设计
  • 逆变器非线性建模 / inverter nonlinearity
  • SPWM建模
  • SVPWM建模
  • 饱和建模 / modeling of saturation
  • 非理想电流测量环节建模
  • 母线电容建模和无轴承电机的仿佛有UPS控制
  • 无轴承感应电机建模
  • 基于扩展反电势模型的无传感器控制
  • 基于 Active Flux 模型的无传感器控制
  • 三维模型的绘制技巧
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值