图片缩略图

电机控制与TI发射台

版本1.4.0.0 (86.8 KB) 安东尼
基于TI LaunchPad和BOOSTXL-DRV8301的永磁同步电机磁场定向控制

72下载

更新2018年7月27日

查看版本历史

查看许可协议

本例展示了如何使用闭环磁场定向控制(FOC)算法来调节三相永磁同步电机(PMSM)的速度和转矩。本例使用了来自德州仪器C2000处理器的嵌入式编码器支持包的C28x外设块和C28x DMC库块。金宝app
对于较新版本和其他硬件设置,请在本页上检查此示例的发货版本://www.tatmou.com/help/金宝appsupportpkg/texasinstrumentsc2000/examples/permanent-magnet-synchronous-motor-field-oriented-control.html
硬件要求:
- TI F28027发射台
- BOOSTXL-DRV8301带有三相无刷电机和12-24V电源。
更多关于如何创建模型以及如何使用它们的信息在下面的视频中:
http://youtu.be/wxYTLbYfBP0

引用作为

安东尼(2021)。电机控制与TI发射台(//www.tatmou.com/matlabcentral/fileexchange/45124-motor-control-with-ti-launchpad), MATLAB中央文件交换。检索

意见及评分(93

康拉德Woermann

你好,

我想知道,在使用BOOSTXL-8305板运行这个示例时,与8301模型相比,需要进行哪些不同或更改,您能否提供一些见解?任何帮助都将不胜感激。

g g

基于滑模控制和扰动补偿的PMSM系统非线性速度控制

Youtube示范:
https://youtu.be/0aiu50EMaik

高速滑模观测器:
https://youtu.be/LksTjRLrCTo

Valentin Totev

信心Shigaonkar

信心Shigaonkar

如何使用Tiva c系列发射台进行图像处理?

Kumar王子

这个硬件模块可以用于感应电机的控制吗?

苏米特帕蒂尔

sourab sarkar

你好安东尼;
我正在尝试开发一个电机控制系统,请您通过传达我如何计算我的电机数据来帮助我,使我的电机与c28027发射台和助推器包DRV8305一起运行。帮帮我,我被这个问题困住了。

Aditya曼丁哥语

嗨,Venkatesh和Antonin,
我试图得到一个感应电机而不是pmsm电机在c2808pmsmsim模型。然而,它显示了一个代数循环错误与各种控制块。我怎么才能解出来呢?

Aditya曼丁哥语

嗨,安东尼,
我想知道这个模型是否可以进一步用于现实世界中感应电机的仿真。我正试着把它转换成感应电动机的速度控制装置。

Elisa博尔达萨

嗨,安东尼,
我有另一个问题:我可以使用Tecnik电机提供的编码器吗?即使在TI F28027发射台和BOOSTXL-DRV8305中,我没有ENCA-ENCB-ENCI输入?如果是,怎么做?

Elisa博尔达萨

嗨,安东尼,

我试图用F28379和DRV8305来做这个例子;我改变了配置参数上的硬件配置以及FOC算法中的ADC和ePWM块,但当我单击“部署到硬件”时,什么都没有发生。我还需要做些什么吗?
提前谢谢你,

Elisa

安东尼

嗨Shaomu,
您可以将ADC计数缩放到工程单位。如果你这样做,你就必须为单位找到正确的定点格式,并在操作信号或切换到效率较低的浮点时调整定点格式。虽然乍一看,单位听起来很复杂,但它让事情变得更简单、更高效。通过调整单位标量,同一算法可以适用于多个电机,在整个模型中保持定点格式不变。我们选择了Q17,它提供了足够的分辨率,同时在极少数情况下,当操作超过[-1到1]范围时,允许一些整数部分。中间计算结果的范围很少发生变化,因为将一个范围为[-1到1]的信号乘以另一个范围为[-1到1]的信号会得到一个范围为[-1到1]的结果。如果使用工程单位,则必须切换到浮点,以避免复杂的定点格式转换。这是可行的,但你会降低性能,当大量与少量相乘时,你可能会失去结果的准确性。最好是学习如何使用每个单元,这就是我在这个例子中所展示的。
ePMW块是一个接收器驱动块。为这个块提供模拟输出是具有挑战性的,并且将迫使模拟步骤在处理器频率级别上运行,这将不可避免地大大降低模拟速度。我建议开始使用平均模型进行模拟,就像在c2808pmsmsim中所做的那样。
我希望这对你们有帮助,
安东尼。

Shaomu朱

Antonin和Venkatesh你们好,

如果我理解正确的话,“Input Scaling”子系统的功能是将测量到的ADC电流转换为单位值。如果我想使用实际值而不是测量的ADC电流的单位值,我应该怎么做?直接使用两个ADC模块输出的数据是否可行?期待您的真知灼见!

Shaomu朱

Antonin和Venkatesh你们好,

我想知道为什么为fixdt(1,32,17)设置了数据类型。我注意到TI库提供的块是为32位有符号定点数设计的。但是为什么Q值为17很重要呢?这有什么原因吗?

Shaomu朱

Antonin和Venkatesh你们好,

我还有一个关于ePWM块的问题。我注意到这个块没有输出。我想知道是否可以在Simulink中读取或显示这个ePWM块的输出?金宝app

Shaomu朱

Antonin和Venkatesh你们好,

我有一些关于子系统“PWM缩放”的问题。

1.这个子系统的输入是占空比。你能告诉我为什么我们要在占空比上加上1,然后乘以一半的PWM计数器周期吗?

2.我已经建立了一个控制系统,其中mosfet直接通过开/关信号驱动。然而,我发现区块“ePWM”是基于占空比的。是否有可能直接基于“ePWM”模块的开/关信号来控制MOSFET ?或者我需要使用另一个块来实现这个?为了更清楚地说明,对于传统的SVPWM,在计算占空比后,我们使用三角形波形进行比较,以生成mosfet的开/关信号。为什么决定将占空比输入到“ePWM”块,而不是最终的开/关信号?如果输入是开/关信号而不是占空比,应该做哪些配置?

谢谢你!

马纳尔Chilapur

嗨,莱利,

请考虑使用“c2808pmsmsim”模型,该模型为仿真验证电机控制逻辑提供了一个很好的起点。请更新电机参数和控制环参数在模型内与您所需的电机参数,这样您就可以接近调整现实世界的电机。仿真模型提供了方便的方法来调整电机和控制逻辑参数,使模型工作,将产生预期的输出。一旦你让它在仿真阶段工作,你可以把这些设置向前推进到实际模型,应该做实际电机的实时控制。运行这个模拟模型需要您拥有Simscape库,没有它您就无法继续。您可以将仿真模型中的Motor替换为Simscape库中的Motor,以匹配您的真实世界中的电机。请继续使用这个仿真模型,以获得对各种参数值的良好估计。

HTH,
马纳尔C

赖利·亨德森

嗨,安东尼,

我一直试图实现您的Simulink模型来控制12V无刷直流业余电机。金宝app我已经使用TI的Motorware完成了电机识别,并将检索到的参数包含在我的c28027pmsmfoc中。M安装文件。我能够用你在视频中描述的相同过程编译代码;然而,我的电机轴似乎在两个极点之间以稳定的速度运行。你认为这是一个初始化错误导致的问题吗?如果您能给我一些建议,我可以采取哪些步骤来解决我目前面临的问题,我将不胜感激。

亲切的问候,
莱利

安东尼

你好,Arun Ashok,
1) PWMxB输出是通过PWM死带单元选项卡启用的,其中您指定B是a的有源高互补。因此,您不应该手动启用ePWMxB输出,不确定为什么必须这样做。
2)是的,在速度上有2倍的差异。这是我们在这个示例的版本中修复的一个错误,该版本与支持包一起发布,我需要更新此文件交换提交中的版本。金宝app与此同时,修复这个问题的最佳方法是将输出数据指定为fixdt(1,32,15),而不是下面块中的fixdt(1,32,16):
“c28027pmsmfoc/FOC算法/转矩控制算法/生成空间向量/生成裸空间向量/滑模观测器(SMO)/Debounce/数据类型转换1”
我会尽快修改提交的内容。
谢谢你的意见。
最好的问候,
安东尼。

阿伦Ashok

嗨,安东尼,
在做了一些修改之后,我就可以在F28027发射台+ 8301助推器包上运行这个模型了:
1.我必须在所有三个pwm中启用ePWMxB,并配置为与ePWMxA互补(在CMPA比较字段中更改设置和清除,在其他地方不做任何操作)。
2.实际速度是600转/分(使用转速表测量),尽管我们将其设置为0.5(300转/分)。这是由于Speed_loop_delay和Max_measurable_speed计算中的缩放因子2 (BEMF估计中的atanPU输出为0到1,而不是-1到1)。如果我错了,请纠正我。

最好的问候,
阿伦Ashok

阿伦Ashok

嗨,安东尼,
谢谢你的回复。我将尝试在我们的自定义板,看看结果。同时我想知道为什么嵌入式编码器仍然基于控制套件而不是更新的电机套件?这是由于许可问题还是封闭代码(如FAST估计器)?

最好的问候,
阿伦Ashok

安东尼

嗨,阿伦,

好问题,你可以使用我们的执行分析功能来分析你的代码。下面是一个例子的链接,解释了这个技巧:

//www.tatmou.com/help/金宝appsupportpkg/texasinstrumentsc2000/examples/real-time-code-execution-profiling.html

请注意,在运行在90MHz的F28069上,我们旋转2个电机,并在50µS内运行两次FOC算法。我模糊地记得,在F28069上运行电流控制循环大约需要17µs,在F28027上运行控制循环大约需要25µs。在100千赫的频率下工作是很困难的。为了达到这个速率,您应该升级到更快的设备(F28379D - 200MHz),简化控制逻辑(您可以去掉无传感器并使用位置传感器),并考虑将一些处理工作卸载到CLA。

我希望这对你们有帮助,

安东尼。

阿伦Ashok

你好,
我试图为PMSM创建FOC控制。我看到在你的例子中,你的PWM运行在20Khz(50 usec),然后我假设你的控制回路运行在25微秒或更少。在实际将代码部署到目标板之前,是否有方法测量循环执行时间?
我想尝试和测试100khz或更高的PWM代码,那么我的控制回路时间应该< 5usec。是否有可能在simulink中做到这一点,或者我应该尝试直接在CCS金宝app中编码来实现这一点?如果我错了,请指正。
提前谢谢!

sudhansu tripathy

嗨,如何控制BLDC的角度

安东尼

嗨,拉胡尔,

我建议从controlSuite内部的TI文档开始。
如果你没有控制套件,请在这里下载:www.ti.com/tool/controlsuite
安装完成后,转到电机控制库文档。在我的机器上:
“C: \ ti \ controlSUITE \填词\ app_libs \ motor_control \ math_blocks ~ \ v4.3 \ Docs \ DMC MATH_v13.1.pdf”
你也可以看看:
http://www.ti.com/lit/ug/spru485a/spru485a.pdf而且http://cache.freescale.com/files/microcontrollers/doc/ref_manual/DRM099.pdf
在高层次上,你应该看:https://en.wikipedia.org/wiki/Sliding_mode_control
我希望这对你们有帮助,
谢谢,
安东尼。

Rahulkumar Lukhi

你好安东尼,

你能分享一下你是如何制作滑模观测器的吗?如果你能提供任何可以帮助构建SMO的来源,那么它将对我的项目非常有帮助。

谢谢你!

问候
拉胡尔Lukhi

zhitian郑

Suhwan金

嗨,安东尼,
谢谢你的无传感器控制逻辑。我想通过快速使用积分器来检查theta信息,但有一个错误“在异步子系统中只允许恒定(inf)或继承(-1)采样时间”。因为这个逻辑是带有硬件中断的异步结构,所以它不能使用连续块。我试图改变求解器连续块,但它没有改变任何。有什么方法可以在这个逻辑中检验信息吗?
非常感谢,
Suhwan金
skim67@sheffield.ac.uk

基督教radici

你好,安东宁,感谢你的工作和时间,我有一些问题,在我看来,对大家都有用。
首先是我的设置:
-电机:BLDC-42BF01 rs=1.1欧姆,ls = 454e-6 H,峰值电流5.7A,(额定电流1.9A),电压24V…第一个问题:什么是基本频率,你如何计算它?
使用DRV8301和改进的simulink模型启动xl - f28069m金宝app
系统在工作,电机在旋转,但有时它移动了几步,然后就停止了,我认为这是由于模型的各种参数的设置。特别是你能解释它们中的每一个(Speed_rpm_scaler, Macx_measurable_speed, max_ideal_measuring等等)吗?如何计算它们呢?

其次,我设法使用主机。Rx,为什么期望速度等于0.5?它是一个规范化的值wrt到某个参数?我们该如何改变呢?
真的非常感谢你。
基督教

露西娅·坎德拉

露西娅·坎德拉

你好安东尼,

非常感谢你的视频和例子!
我想请你帮忙……我正在运行一个类似于这个例子的控制,但我的问题是我不能让adc读取IA和IB电流。它们一直在读取Vref (1.65V),就好像没有电流一样……我怀疑问题出在SOC上,但我有PWM和ADC的所有设置,如果你给我你的电子邮件(你可以写信给我:lcdiaz@unizar.es),我可以给你发一些截图…我能做错什么?
我已经在TI论坛上寻求帮助,但是没有人回复。我有点卡在这里了,非常感谢你的帮助。

谢谢你!
露西亚。

meriam米拉

嗨,安东尼,
我很抱歉打扰了,但我在Matlab R2016a和CCSv6之间的连接有问题,这是我的checkEnvSetup('ccs', 'f28069', 'check')

1.CCS(代码作曲工作室)
你的版本:
要求版本:3.3.82.13
所需:自动化和代码生成

2.CGT(德州仪器C2000代码生成工具)
你的版本:
要求版本:5.2.1
需要:代码生成

3.DSP/BIOS(实时操作系统)
你的版本:
要求版本:5.33.05
需要:实时数据交换(RTDX)

4.2806x C/ c++头文件
您的版本:1.51
要求版本:1.36
需要:代码生成
DSP2806x_INSTALLDIR = " C: \ ti \ controlSUITE 金宝app\ device_support \ f2806x \ v151”

5.Flash工具(TMS320F2806x Piccolo(TM) Flash API)
你的版本:1.00a
要求版本:1.00
要求:Flash编程
FLASH_2806X_API_INSTALLDIR = " C: \ ti \ controlSUITE \ libs \工具\ flash_api \ 2806 x \ v100a”

最好的问候,
Meriam

tarek doghish

非常感谢,安东宁。现在起作用了。我所需要的是一个20V的电源和更高的安培,而不是我一直使用的24V。

tarek doghish

嗨,安东尼,

我现在尝试了一下,但仍然不工作,我把MCU连接到笔记本电脑上,所有跳线都关闭了,然后构建了程序,把MCU连接到驱动器上,为驱动器供电,但仍然不工作。

我想把结果截图发给你,你能发邮件给我吗?或者发邮件到tarek.m.yehia@gmail.com

安东尼

嗨Tarek,

我用Teknic M-2310P-LN-04K测试了这款机型,电机旋转平稳。

有一点要记住:你需要在启动程序之前(或同时)施加20V(或24V)。该计划有一些集成器,如果它开始没有20V电源,这些集成器将轨道到他们的最大速度非常快。避免这种情况的一个简单方法是在代码闪烁后拔下USB线,确保此时没有任何电源,并为助推器包启用20V电源。这将为你的控制器以及你的电源模块和马达提供动力。

我希望这对你们有帮助,

安东尼。

安东尼

你好斯蒂芬,

这种类型的许可证的原因是,这是我们的TI C2000处理器嵌入式编码器支持包的标准运输示例。金宝app从支持包附带的模型开始,您应该可以处理许可问题。金宝app

我希望这对你们有帮助,

安东尼。

Stefan Marterstock

你好,
首先,这是一个很棒的教程。
我有一个问题的许可证文件,这是zip文件夹的一部分:
我读了许可协议,我不知道我是否理解了。

“3。许可限制。本许可证以明示为准
限制规定如下。被许可方不得,也不得允许任何
第三方:

3.1.修改,或创建任何衍生作品,任何部分的许可
材料

3.2.改编、翻译、复制或转换全部或任何部分材料
以创造软件或其他材料为主要目的
是(a)执行与材料相同或相似的功能还是
MathWorks授权的任何其他技术或材料,或(b)用于替代
材料的任何组成部分或任何其他技术或材料
由MathWorks授权;”

这个教程/文件的目的是什么?

我拥有Matlab许可证,但我将不被允许使用这个例子来开发自己的产品(包括改编/或从中派生)?下载188bet金宝搏

最好的问候,

Stefan

tarek doghish

嗨,安东尼,

如果我最近给你发了很多信息,打扰你了,我很抱歉。我解决了串行连接的问题,所以你可以忽略最后的评论。现在,我面临着一个不同的问题,因为电机仍然不旋转,当我第一次将USB线连接到我的笔记本电脑时,它只旋转了一秒钟或两秒钟,主机中的理想速度范围正确地指向0.5。但实际速度范围给出小的随机脉冲,扭矩需求范围指向1。

如果这有帮助,我就按照实际速度跟踪这些随机脉冲,以找出它们从哪里开始。我发现它们是从公园变换和(SMO)的循环开始的,所以我从不稳定的Theta, Vd和Vq中得到这些脉冲。

所用电机:Teknic M-2310P-LN-04K 6000rpm 4.6V/rpm

所使用的电源:24伏直流,最大2.5A

另一个注意事项:当我构建模型时,GPIO 0123中的4个led不是在构建模型之前的纯蓝色。他们会微微眨眼。

我真的不知道它有什么问题。

最好的问候,

Tarek Doghish

tarek doghish

嗨,安东尼,

所有的开关都打开了,无论我是否打开跳线,我仍然得到相同的警告信息。问题是,当我试图在没有将MCU连接到笔记本电脑的情况下构建c28027pmsmfoc_ert文件时,我仍然得到了与构建成功完成相同的结果,并在没有连接到笔记本电脑的情况下获得警告消息。
我使用Matlab2016a,这是我的checkenvsetup:

> > checkEnvSetup(“ccsv5”、“f28027”,“检查”)

1.CCSv5(代码编写器工作室)
您的版本:6.1.0
要求版本:5.0或更高版本
所需:代码生成
TI_DIR = " C: \ ti \ ccsv6”

2.CGT(德州仪器C2000代码生成工具)
您的版本:6.4.6
要求版本:5.2.1至6.0.2
需要:代码生成
C2000_CGT_INSTALLDIR = " C: \ \编译器\ c2000_15.12.3 ti \ ccsv6 \工具。LTS -副本"

3.DSP/BIOS(实时操作系统)
您的版本:5.42.02.10
要求版本:5.33.05 ~ 5.41.11.38
需要:代码生成
CCSV5_DSPBIOS_INSTALLDIR = " C: \ ti \ bios_5_42_02_10”

4.XDC Tools (eXpress DSP组件)
您的版本:3.32.01.22。
要求版本:3.16.02.32及以上
需要:代码生成

5.2802x C/ c++头文件
你的版本:2.20
要求版本:2.20
需要:代码生成
DSP2802x_INSTALLDIR = " C: \ ti \ controlSUITE 金宝app\ device_support \ f2802x \ v220”

6.Flash工具(TMS320F2802x Piccolo(TM) Flash API)
您的版本:2.01
要求版本:2.01
要求:Flash编程
FLASH_2802X_API_INSTALLDIR = " C: \ ti \ controlSUITE \ libs \工具\ flash_api \ 2802 x \ v201”
>>

你觉得会有什么问题?

非常感谢

Tarek Doghish

安东尼

你好,Kamal,你好,Tarek,

即使您没有连接电机,串行主机模型也应该接收数据,并且您不应该在主机上看到以下警告消息(读取不成功:指定的数据量已被读取
超时时间内未返回…)

这是首先验证代码是否在板子上运行的好方法。
请确保启动板上的启动开关全部处于“开启”位置。串行开关也应该在“开”的位置。

这是一个很好的页面,帮助确保COM端口被正确配置:

http://processors.wiki.ti.com/index.php/Using_the_serial_adapter_of_XDS100

我用DRV8305 Booster Pack成功地测试了这个示例。它的工作原理与DRV8301相同,我可以在没有修改的情况下旋转我的电机。我还测试了两个版本的发射台(F28027和F28027F),它们都可以工作。

为了安全起见,您可以主动将GPIO7驱动到高,以确保您将DRV8305从睡眠模式中取出,但对我来说,这一步是不必要的。

进入“c28027pmsmfoc_ert/FOC Algorithm/DRV8301 Enable”,在GPIO6的基础上再设置GPIO7。

另一个重要的一点,MOSFET电源需要在代码启动时“开启”。控制算法的积分器是饱和的如果系统没有反应。

我希望这有帮助,
谢谢,

安东尼。

Kamal Joshi

这也可以在LAUNCHXL - F28027F上实现低电感电机吗?

Kamal Joshi

如何为DRV8305运行类似的模型?

tarek doghish

嗨,安东尼

我得到了与“Sreenath m”相同的问题,关于host_rxl给出一个错误(警告:不成功的读取:指定的数据量是
超时时间内未返回

你跟他说的我都做了,还有"车阳"除了腻子,我做不到,还是不行。

你能告诉我如何使用腻子或者其他可能的问题吗?

谢谢

Tarek Doghish

tarek doghish

嗨,安东尼,

我已经做了所有的事情,就像视频没有错误,模型是建立正确的,但电机没有旋转,在主机模型上,所有的范围都指向零。

你知道是什么问题吗?

提前谢谢你

Tarek Doghish

cata谭

你好,

安东宁,谢谢你的回复,我再检查一下。

欢呼,

安东尼

嗨,团队,
我要在这里解释一个常见的问题:
“为什么在Ia和Ib电流的输入缩放子系统中有-1增益”。
BOOSTXL-DRV8301使用倒立放大器电路来检测Ia, Ib和Ic上的电流。
以下文件(Ic)第7页显示了这一点:
http://www.ti.com/lit/ug/slvu974/slvu974.pdf
增益-1将电流恢复到实际值。
其他电机控制示例可能不使用此增益,这取决于在硬件上如何进行传感。
我希望这对你们有帮助,
安东尼。

S V

嗨,安东尼,

我使用的DRV8312-69M-KIT与c28069pmsmfoc_ert。基金模式。串行监视器块被添加到这个simulink模型中,但是host_rx simulink模金宝app型没有读回任何数据。COM端口号/波特率被设置为与PC端口匹配,模拟器B启用了VCP。在SCI传输中,SCI模块(A和B)的两个选项都尝试了,但没有成功。

知道哪里出了问题吗。

谢谢

维诺德·库马尔

你好,

连接TMSDOCKf28335后,我得到这个错误…

***连接到目标…
***加载程序到目标…
***程序正在运行。

***断开目标…
SEVERE:在90000ms后超时
SEVERE:从目标断开连接错误:在90000ms后超时

***正在结束调试会话…

一旦我拔掉和插入dsp,它是不保留文件

Andreas Groeger

我有一个问题运行这个版本:

IC:/MATLAB/金宝appSupportPackages/R2015b/texasinstrumentsc2000/toolbox/target/ SupportPackages/ tic2000/inc -I/f2802x_common/include -I/f2802x_headers/include -I——output_file="MW_c28xx_board. exe "obj MW_c28xx_board.c”
“mw_c28xx_board .”,第1行:致命错误:无法打开源代码文件“F2802x_Device.h”
在编译“mw_c28xx_board .”时检测到1个灾难性错误。
编译终止。

你能帮我吗?

最好的
安德烈亚斯

Aishwarya利润率

我们能够用无传感器控制运行电机。现在我也有兴趣运行它与光学编码器作为速度传感器。MATLAB模型需要做哪些改变

李彼得

嗨,安东尼。谢谢你的模型。我想知道为什么你把电流和速度缩放到每单位。谢谢。

李彼得

安东尼

> > lays25

h随编译器一起提供。确保运行targetupdater并指向有效的编译器和CCS版本。
我希望这对你们有帮助,
谢谢,
安东尼。

安东尼

> > Abdulhakim

在这个特殊的演示中,我们使用以下电机:
阿纳海姆自动化BLY172S-24V-4000

http://www.anaheimautomation.com/下载188bet金宝搏products/brushless/brushless-motor-item.php?sID=143&pt=i&tID=96&cID=22

我们还使用以下电机为其他演示:

Teknic m - 2310 - p - ln - 04 - k

https://www.teknic.com/下载188bet金宝搏products/hudson-motors/pricing-specs-hudson-motors/

我们已经使用了保守的PI增益,这使得这个例子与许多三相电机兼容,你可以调整它到任何电机与小的调整。

我希望这对你们有帮助,

安东尼。

lays25

嗨Sumith,

我真的很想听从你的建议,看看它是否有效,但与此同时,我需要重新安装Matlab,现在似乎我甚至无法回到我之前被困住的地方。我像以前一样重新运行了所有的配置步骤,但当我试图用CCS v3.3构建任何Simulink模型时,我在CCS编译期间得到的所有信息都是一个错误,由CC金宝appS试图编译的每个文件显示:“D:/programy/controlSUITE/device_support/f2802x/v220/F2802x_Device.h”,第104行:致命错误:无法打开源代码文件“stdboolh”金宝app

我的checkEnvSetup说一切都是有序的(“你的版本”等于“所需的版本”在所有5个字段)。
1.CCS(代码作曲工作室)
您的版本:3.3.82.13
要求版本:3.3.82.13
2.CGT(德州仪器C2000代码生成工具)
您的版本:5.2.1
要求版本:5.2.1
3.DSP/BIOS(实时操作系统)
您的版本:5.33.05
要求版本:5.33.05
4.2802x C/ c++头文件
你的版本:2.20
要求版本:2.20
5.Flash工具(TMS320F2802x Piccolo(TM) Flash API)
您的版本:2.01
要求版本:2.01

我到底错过了什么?在重新安装过程中是否有任何编译器被以某种方式删除?

abdulhakim

嘿,我有一个问题,你能告诉我你使用的电机的规格是什么,我从哪里可以得到一个这样的,谢谢

Sumith Sekharan

嗨lays25,

你的checkEnvSetup结果看起来不错。请使用路径
(CONTROLSUITE_PATH) \ libs \工具\ flash_api \ \ v201a \ lib \ Flash2802x_API_V201 2802 x。指定API位置参数中的lib。

(CONTROLSUITE_PATH)\libs\utilities\flash_api\2802x\v201将不能工作,因为文件夹(CONTROLSUITE_PATH)\libs\utilities\flash_api\2802x\v201\include是针对F2803x处理器的。

你也可以使用ert。基于示例c28027pmsmfoc_ert的tlc,支持CCSv4/v5的自动下载功金宝app能。

希望这能有所帮助。
Sumith

lays25

我在运行这个示例时遇到了很多问题。我使用F28027发射台,运行Matlab 2013b和CCS v3.3。我最终得到了一点,我在CCS编译期间没有错误,但Simulink打开了一个链接(金宝apphttp://www.ti.com/tool/sprc848),然后显示以下错误信息:

在退出钩子期间调用idelink_ert_make_rtw_hook,生成以下错误:
加载和运行程序时出错。

构建过程将因此终止。

引起的:
加载和运行程序时出错。
TI flash API库在您的机器上不存在。指定正确的路径或从TI的网站或TI的controlSUITE安装程序下载适当的flash api。

当然,我已经运行checkEnvSetup和我得到以下,这是我认为是正确的,意味着Flash API已经安装和它的路径配置

5.Flash工具(TMS320F2802x Piccolo(TM) Flash API)
您的版本:2.01
要求版本:2.01
要求:Flash编程
FLASH_2802X_API_INSTALLDIR = " D: \ programy \ controlSUITE \ libs \工具\ flash_api \ 2802 x \ v201”

此外,当我进入模型配置参数-> Coder目标->目标硬件资源-> Flash_API时,“指定API位置”被设置为“C:\tidcs\c28\Flash28_API\Flash2802x_API_V100\lib\Flash2802x_API_V100a.lib”。即使我将其更改为前面提到的路径,在“构建&运行”失败后,它总是重置到这个路径。所以我下载了Flash API v2.00从建议的链接(http://www.ti.com/tool/sprc848)并将其安装到默认路径(C:\tidcs\…),然后使用checkEnvSetup设置它(这次我得到:您的版本:2.00,所需版本:2.01,我猜是不正确的)。同样的故事。

顺便说一下,在“指定API位置”字段中输入任何路径并单击执行,会弹出一个窗口,提示“存在的第一个输入必须是一个字符串”。

我完全不知道如何让它工作。谁来帮帮我。

Umesh Rudrapatna

嗨,安东尼,
很棒的视频,谢谢你的详细说明。你能评论一下这些指令是否也能在运行在Linux (Ubuntu 14.04)上的Matlab (R2014a)中运行吗?我需要计划做一些调整,让它开始吗?我已经订购了硬件,希望这将是可行的。让我知道你的想法。

马丁Kocur

你好安东尼,
我不想发垃圾邮件,但我已经做到了。你是对的,这是编译器的问题,编译器的路径包含非ascii字符,所以不包含它们的新帐户有帮助。非常感谢你的帮助和你的全部工作。马丁

马丁Kocur

你好安东尼,
非常感谢你的回答,但我仍然不能使它工作。我尝试了很多编译器,最新的,例如15.6.0,6.4.6,6.2.5和许多其他的。我有CCSV5。还是有同样的问题。有时会出现这样的情况:
C: / ti /安装~ 1 / c28069pmsmfocdual_ert_rtw / MW_c28xx_board.c”
gmake: *** [MW_c28xx_board. txt]obj]错误-2147483645
我不想再打扰你了,但你知道会出什么问题吗?
非常感谢。
马丁

sreenath米

用锅改变电机转速的框图要做什么改变?我可以在哪里连接端口?

sreenath米

谢谢安东宁,我得到结果了…

安东尼

> >安娜,
听起来你有安装问题。我强烈建议您重新执行安装步骤,特别是targetupdater和checkEnvSetup。您可以选择CCSv5的安装并指向CCSv6。这将工作,只需指向CCSv6文件夹。在checkEnvSetup中,仍然需要调用带有'ccsv5'参数的函数。
我希望这对你们有帮助,
祝你好运,
安东尼。

安东尼

> > Sreenath
如果你遇到串行通信的问题,这里有一些事情你可以尝试:
像putty一样打开超级终端(http://www.putty.org/),并确认在COM端口上打开会话时是否看到输入字符。
还要确保在硬件管理器的xds100通道B上启用了VCP。在下面的页面中有关于如何做到这一点的解释:
http://processors.wiki.ti.com/index.php/Using_the_serial_adapter_of_XDS100
我希望这对你们有帮助,
安东尼。

安东尼

> >斯坦:
谢谢你的反馈。模型在14b打开并工作。它们与13b以上(包括)的所有MATLAB版本兼容。确保您完成了安装步骤。当你切换到新版本的MATLAB时,你可能不得不重新运行targetinstaller和checkEnvSetup。
对于SMO,我建议您从TI的文档开始。你可以在下面的controlSuite文件夹中查看,在我的机器上:
“C: \ ti \ controlSUITE \填词\ app_libs \ motor_control \ math_blocks \ v4.3”
搜索“\~Docs\DMC MATH_v13.1.pdf”查找SMO。
你也可以在smpos .h中查看
我希望这对你们有帮助,
祝你好运,
安东尼。

马丁Kocur

你好安东尼,
关于simulink方案的编写,我想请您帮助我解决问题。金宝app它总是这样结束:调试断言失败!
计划:C: \ ti \ ccsv5 \ \ \ c2000_1 \ bin \ cI2000.exe编译器的工具
文件:isctype.c
: 56

表达式:(无符号)(c + 1) < = 256

然后是诊断式查看器,它总是告诉我同样的事情:
内部错误:C:/ti/ccsv5/tools/compiler/c2000_1/bin/cl2000 aborted while .日志含义
处理文件C:/ti/c28069pmsmfocdual/c28069pmsmfocdual_ert_rtw/ mw_c28xx_boardc .

这是一个严重的问题。请与客户联系
金宝app支持此消息和输入文件的副本
并帮助我们继续使工具更加健壮。

gmake: *** [MW_c28xx_board. txt]obj]错误2

我非常确定,我已经正确地完成了所有的安装和验证步骤,但我就是无法解决这个巨大的障碍。你能帮帮我吗?非常感谢你的回答。
马丁
PS:我使用的是MATLAB R2015a

安娜哈里斯

嗨,安东尼,
我需要一个2014b和2802x的新工具链,它在使用28069M时与ti_ccsv5构建得很好,但对于28027:不可能!
makefile生成的目录不好,我需要在工具链中修复这个问题
所以我可以有一个,以及如何注册
谢谢

PS我也尝试了这个例子//www.tatmou.com/matlabcentral/fileexchange/45124-motor-control-with-ti-launchpadit

但是没有办法,它没有编译

//www.tatmou.com/matlabcentral/answers/229500-matlab-2014b-c2000-ccs6-1-ccsv6-toolchain-needed

安娜哈里斯

嗨,安东尼,
我需要一个2014b和2802x的新工具链,它在使用28069M时与ti_ccsv5构建得很好,但对于28027:不可能!
makefile生成的目录不好,我需要在工具链中修复这个问题
所以我可以有一个,以及如何注册
谢谢
//www.tatmou.com/matlabcentral/answers/229500-matlab-2014b-c2000-ccs6-1-ccsv6-toolchain-needed

sreenath米

你好安东尼,
我有一些问题与主机文件(串行接口电机控制)。它不能正常工作。你能帮我摆脱这个问题吗?它显示“unsuccessful read:在指定的超时时间内没有返回指定数量的数据”。你建议的方法我都试过了。我更正了端口号。我在Simulink主机模型host_rx中的信号刷新速率为50ms。金宝app在host_rx模型中

斯坦Milotinsky

你好安东尼,

出色的工作!就两个简短的问题:

Q1:在V2014a (8.3 Simulink)中无法打开/无法金宝app打开源代码/。当然它可以手动移植(与你的F28096的其他优秀例子有很多共同点-在V2014a中开放),但没有更短的方法吗?

Q2:如果可能的话,你能和我们分享一下你用来合成SMC速度观测器的来源(文章)吗?我试图从Simulink方案中直接理解它,这从来都不容易。金宝app

干得好!!
致最诚挚的问候
Stano

安东尼

嗨Sreenath,

这是良性的。它只是告诉您int8将在您的处理器上被模拟为16位中最小的容器。
作为指导原则,我建议不要在TI C2000处理器上使用8位数据类型。
我希望这对你们有帮助,
祝你好运,
安东尼。

sreenath米

先生,
而建立c28027pmsmfoc_ert我也遇到了一个
警告:数据类型“int8”使用的字大小在预期目标上不可用。使用这种数据类型的定点信号将被放入一个较大的字或多个字中。使用时,将生成额外的软件,迫使这个较大的单词或多个单词模拟较小的单词。当原型目标和最终产品目标不相同时,这种模拟非常有用。如果最终生产目标上不存在较小的单词大小,则考虑将单词大小增加到
被支持的人金宝app
我该怎么办?

安东托多罗夫

安东尼

亲爱的宠爱的Sreedharan:

从您传递的错误消息来看,代码似乎无法加载到目标上。
代码生成成功,但加载失败。
你需要运行targetupdater。第一个问题是代码生成工具(TI C2000编译器)的位置。如果您选择位于CCS文件夹中的一个(即C:\ti\ccsv5\tools\compiler\c2000_6.2.0),安装程序将足够智能地定位下载脚本工具。如果指向另一个代码生成工具的安装,则应该会收到一条消息,要求您定位位于CCS文件夹中的下载脚本工具(即C:\ti\ccsv5\ccs_base\scripting)。您可以随时运行targetupdater,无需再次下载支持包。金宝app确保您成功地完成了该步骤,它应该会修复错误并允许您自动将代码下载到目标。
我希望这对你们有帮助,
欢呼,
安东尼。

安东尼

亲爱的钟成英:
请注意,我正在监视每10毫秒更新一次的速度控制环信号。为此,我使用了一个串行传输块,通过位于Speed Controller/ serial Monitor内部的50ms速率转换块,因此Simulink主机模型host_rx中信号的刷新率为50ms。金宝app在host_rx模型中,确保你的COM端口设置正确,默认情况下我使用COM2,这必须匹配你的LaunchPad虚拟COM端口。阅读下面我对Rusu Sadu的评论,了解更多信息。
我希望这对你们有帮助,
安东尼。

正营涌

亲爱的安东尼,
PWM的周期为20KHz, SCI的波特率为115200。SCI的传输速率比中断时间慢。我很困惑,为什么主机PC中的波形可以实时运行。实际上,在运行host_rx程序时,在命令窗口显示“warning: unsuccessful read: the specified amount of data was not returned within the Timeout period”。

Indulal Sreedharan

亲爱的安东尼,
我已经成功地将代码上传到目标板,但调试端显示以下错误消息

严重:无法读取XML文件C:\MATLAB\ support ~1\R2013b\tic2000/CCS_CO~1/F28027~1中的系统设置数据。芝加哥气候交易所
解析文件错误:
致命错误在(0,0):发生异常!类型:RuntimeException,消息:无法打开主文档实体。Id=C:\MATLAB\ support ~1\R2013b\tic2000\CCS_CO~1\connections\TIXDS100usb_Connection.xml解析文件:C:\MATLAB\ support ~1\R2013b\tic2000\CCS_CO~1\connections\TIXDS100usb_Connection.xml
严重:无法启动服务器:DebugServer。1:无法从XML文件C:\MATLAB\ support ~1\R2013b\tic2000/CCS_CO~1/F28027~1读取系统设置数据。芝加哥气候交易所
解析文件错误:
致命错误在(0,0):发生异常!类型:RuntimeException,消息:无法打开主文档实体。Id=C:\MATLAB\ support ~1\R2013b\tic2000\CCS_CO~1\connections\TIXDS100usb_Connection.xml解析文件:C:\MATLAB\ support ~1\R2013b\tic2000\CCS_CO~1\connections\TIXDS100usb_Connection.xml
***无法为Board/CPU=*/*创建有效的调试会话。
确保只匹配一个单板和一个CPU。
退出……

###调用后构建工具完成。
成功完成模型:c28027pmsmfoc_ert的构建过程
创建HTML报告文件c28027pmsmfoc_ert_codegen_rpt.html

马达不动了

Matlab版本为2013b

安东尼

> >米甲
看起来模型中选择的工具链默认使用MATLAB附带的lcc编译器,而不是使用TI工具链。
如果没有正确安装TI C2000支持包,就可能发生这种情况。金宝app确保你完成了视频中描述的targetinstaller和targetupdater步骤。
在您打开模型后,应该在配置参数中选择TI工具链。我希望这能有所帮助。

安东尼

>> rusu sadu
您的COM端口设置不正确,主机块无法接收来自发射台的消息。进入Windows设备管理器,检查“端口(COM & LPT)”下的“USB串口”使用的是哪个COM端口。
在host_rx模型中,打开“SCI Receive”块以选择要使用的匹配串行端口。默认选择“COM2”。从您得到的错误消息来看,COM4似乎是应该选择的正确值。
主机串口块只支持COM端口值不超过COM4。金宝app在Windows设备管理器中,如果COM端口值大于4,您可以更改COM端口的值。如果您不想更改COM端口值,仪器控制工具箱提供了一个更强大的主机串行块,允许更广泛的COM端口选择。我希望这能有所帮助。

rusu拉

我试图在matlab 2013b中运行这个模型,但在运行host_rx ghiv时出现这个错误:
错误评估MATLAB S-Function 'c2000hostsci_setup'在'host_rx/SCI Setup'中的注册方法'Start'。下面是产生此错误的MATLAB调用堆栈(文件名和行号):
MATLAB [' C: \ Program Files \ \ R2013b \ MATLAB工具箱\ \ iofun \ @serial \ fopen。m '] [72]
MATLAB \ Sup金宝appportPackages \ [' C: \ R2013b \ tic2000 \ \面具\ c2000hostsci_setup块。m '] [156]

引起的:
Open failed:端口:COM2不可用。可用端口:COM4。
使用INSTRFIND确定是否有其他仪器对象连接到请求的设备。

米甲

我试图在Matlab 2014a中运行这个模型,不幸的是在代码生成时得到了以下错误:
创建模拟目标“c28027pmsmfoc_ert_sfun”,…


D:\motor\matlab\Launchpad_Motor_Control\slprj\_sfprj\c28027pmsmfoc_ert\_self\sfun\src>"C:\Program Files\ matlab\ R2014a\sys\lcc64\lcc64\bin\lccmake.exe" -f c28027pmsmfoc_ert_sfun.lmk
"C:\程序文件\MATLAB\R2014a\sys\lcc64\lcc64\bin\lcc64.exe" -dll -noregistrylookup -c -Zp8 -DLCC_WIN64 -DMATLAB_MEX_FILE -DMX_COMPAT_32 -nodeclspec -I"C:\程序文件\MATLAB\R2014a\ lcc64\lcc64\include64" -I"C:\程序文件\MATLAB\R2014a\extern\include" -I"C:\程序文件\MATLAB\R2014a\stateflow\ C \mex\include" -I"C:\程序文件\M金宝appATLAB\R2014a\ rcc64 \ rcc64 \ nodeclspec "matlab - i " D: \汽车\ \ Launchpad_Motor_Control \ slprj _self \ _sfprj \ c28027pmsmfoc_ert \ \ sfun \ src”“c28027pmsmfoc_ert_sfun.c”
"C:\程序文件\MATLAB\R2014a\sys\lcc64\lcc64\bin\lcc64.exe" -dll -noregistrylookup -c -Zp8 -DLCC_WIN64 -DMATLAB_MEX_FILE -DMX_COMPAT_32 -nodeclspec -I"C:\程序文件\MATLAB\R2014a\ lcc64\lcc64\include64" -I"C:\程序文件\MATLAB\R2014a\extern\include" -I"C:\程序文件\MATLAB\R2014a\stateflow\ C \mex\include" -I"C:\程序文件\M金宝appATLAB\R2014a\ rcc64 \ rcc64 \ nodeclspec "matlab - i " D: \汽车\ \ Launchpad_Motor_Control \ slprj _self \ _sfprj \ c28027pmsmfoc_ert \ \ sfun \ src”“c28027pmsmfoc_ert_sfun_registry.c”
"C:\程序文件\MATLAB\R2014a\sys\lcc64\lcc64\bin\lcc64.exe" -dll -noregistrylookup -c -Zp8 -DLCC_WIN64 -DMATLAB_MEX_FILE -DMX_COMPAT_32 -nodeclspec -I"C:\程序文件\MATLAB\R2014a\ lcc64\lcc64\include64" -I"C:\程序文件\MATLAB\R2014a\extern\include" -I"C:\程序文件\MATLAB\R2014a\stateflow\ C \mex\include" -I"C:\程序文件\M金宝appATLAB\R2014a\ rcc64 \ rcc64 \ nodeclspec ""D:\motor\matlab\Launchpad_Motor_Control\slprj\_sfprj\c28027pmsmfoc_ert\_self\sfun\src" "C:\Program Files\ matlab\ R2014a\sys\lcc64\lcc64\mex\lccstub.c"
"C:\Program Files\MATLAB\R2014a\sys\lcc64\lcc64\bin\lcclnk64.exe" -s -dll -L"C:\Program Files\MATLAB\R2014a\sys\lcc64\lcc64\lib64" -entry LibMain -map sfun. "映射-o c28027pmsmfoc_ert_sfun。mexw64 @c28027pmsmfoc_ert_sfun.lmko
时间:29.531秒

米甲

这个例子也适用于Matlab R2014a吗?在您开发的版本之后的下一个版本。在过去,我有使用c2000目标不同的Matlab版本的问题。

rusu拉

我试图运行这个很好的例子,但它给了我这个错误:
在入口钩子期间调用idelink_ert_make_rtw_hook生成以下错误:
无法连接到“配置参数”对话框中“编码器目标”窗格的“目标硬件资源”选项卡中指定的单板。

构建过程将因此终止。

引起的:
无法连接到“配置参数”对话框中“编码器目标”窗格的“目标硬件资源”选项卡中指定的单板。
无法在CCS应用程序中建立到MathWorks插件组件的连接。验证插件是否正确安装和启用。
有关故障排除的更多信息,请参阅IDE Link FAQ。

安东尼

黄凯文。
在本例中,我们使用DRV8301的默认配置,因此不需要通过SPI初始化它。
在默认配置下,“H”桥的上下两侧必须独立控制。我们迫使ePWMB作为ePWMA的补充,增加死带,以确保没有“射穿”。
我们的SPI S金宝appimulink块还可以用于将DRV8301初始化为不同的配置。
我希望这能有所帮助。

安东尼

>> Nandor Bodo。
大多数eval套件都附带一个板载xds100模拟器,该模拟器提供到处理器的串行连接和JTAG连接。需要将串行线连接到xds100,才能使串行连接正常工作。我不确定一个“现成的”xds100模拟器是否允许您连接串行线,它可能只提供JTAG连接。如果您使用ISO版本的TI控制卡,您将获得一个具有串行连接(以及JTAG)的板上xds100。我希望这能有所帮助。

凯文·黄

该型号是否包括通过SPI接口设置DRV8301配置、工作参数和读出诊断信息?

Nandor博多

嗨,安东尼,

非常有用的东西。

我使用你的应用程序开始学习C2000的Simulink编程,尽管我有一个实验者工具包平台。金宝app

我注意到你只使用一根电缆编程控制器和通过串口获得反馈。我也能这样做吗?我用usb线给我的实验者工具包编程。所以我已经在工具包上有XDS100V Jtag模拟器。

安东尼

更多关于如何创建模型以及如何使用它们的信息在下面的视频中:
http://youtu.be/wxYTLbYfBP0

Launchpad_Motor_Control