永磁同步电机无位置传感器控制,采用的是龙贝格,基于模型的 定点开发,仿真效果和实际95%高度吻合,可以仿真学习,也可以直接移植到项目中
FOC 代码生成技巧主要讲解的是代码如何建模,优化代码,至于 FOC 电机控制原理需要
个人自己去了解。本文档分为 2 部分,一部分是标定数据/参数如何导入,一部分是如何优
化模型,让模型生成的代码可读性较好。整体情况如下面三幅图所示:
(二)
数据创建以及管理
在进行手写程序设计时,一般都要进行数据的管理工作,比如查表的固定数据,标定的数据 ,
另外还有一些函数与函数的信号传递,都需要各种各样的变量和常量。在模型开发也是一样,
数据对象的定义以及管理是一个很重要的工作,虽然不定义任何数据对象,代码也可以生成,
但是也会造成生成的代码可读性很差,不方便测试调试,不方便管理等一些系列问题。下面
介绍
Simulink
中如何创建数据对象。
Simulink
可以创建如下数据对象,但是一般情况用的较
多的只有两个,
Simulink Parameter
以及
Simulink Signal
,下面简称
数据和信号。
一、一般情况导入到
Simulink
的数据和信号工作空间有三种方式,如下所示:
(
1
) 直接
M
文件创建数据导入
(
2
) 由
Excel
管理数据,再由
M
文件导入数据
(
3
) 直接
MATLAB
自带的数据字典(
sldd
)导入
三种方式各有优缺点,如下所示:
优点
缺点
方法一
直接,便于理解
当数据较多时,难以管理
方法二
直接,易理解,易管理
需要编写脚本文件,数据不好管理,不利于单元测试
方法三
管理较方便,方便模块化数
据管理,利于单元测试
数据没有方法二可视化管理方便
本文以常见的第三种方式数据对象进行介绍
二、数据字典管理数据,(方法三)
1
、新建数据字典
file->new->data dictionary
4
、在创建数据或者信号时,下面表格为一些常见的信号,数据解释以及推荐设置
信号类
型
1
Storageclass
信号类型为
custom
,常见的为,
Const
变量,
volatile
变量,局部变
量(此局部变量为伪局部变量)。
推荐设置
:信号类一般不会设置成
custom
,一
般按照信号类型
2
进行设置
信号类
型
2
Storageclass
信号类型为非
custom
,一般指全局变量或者外部导入的变量,或者默
认数据类型(结构体定义)。
推荐设置
:一般设置成
ExportedGlobal,
也就是全局变
量(确保芯片资源足够)
数据类
型
1
Storageclass
数据类型为
custom
,常见的为,
Const
变量,宏定义,
volatile
变量,
局部变量,结构体变量等。
推荐设置:
此处数据设置较灵活,按照具体需求自行
定义
数据类
型
2
Storageclass
数据类型为非
custom
,一般指全局变量或者外部导入的变量,或者默
认数据类型(结构体定义)
推荐设置:此处数据设置较灵活,按照具体需求自行
定义,不过一般定义成
ExportedGlobal
4
、注意点:可以将数据字典中数据导出,导入,读者可以自己摸索,初学时,可以先将示
例定义的数据进行吸收。
(三)数据与模型关联
创建在数据字典中的数据和信号本身不会自动与模型关联,因为很多情况,同一个模型可能
对应几份数据对象(设计,测试,产品发布每一个过程都有其数据管理对象)所以要将目标
数据对象与模型关联。关联的步骤如下:
1
、打开设计的模型,
File->Model Properties->link to dictionary(
注意,最新的
2019
版本界面
较
2018
以及
2018
之前的版本界面变化较大,但是也在
Model Properties
这个按钮下面
)
![](https://i-blog.csdnimg.cn/blog_migrate/5bb31f49c2ea76ed884f978e7ff73aeb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/51c7f61ee66aef52d463a72907855c2b.png)
相关代码,程序地址:http://lanzouw.top/642079012761.html