锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

GCKontrol与嵌入式系统:STM32实现电机控制案例

时间:2022-11-08 21:30:00 传感器油门踏板kt电阻器

摘要:系统设计与模拟软件GCKontrol可以建模、模拟和测试控制系统。基于模型自动生成的软件代码可以满足嵌入式系统的要求。GCKontrol该模型属于应用层软件STM32 ARM Cortex实现芯片的电机控制案例。

一、本项目总体介绍

1.1 基于模型的设计

基于模型的设计为复杂系统的开发提供了一种数学和形象化的方法。其核心是系统地运用基于模型的设计理念,包括需求分析、系统架构建模、设计实现、模拟、自动代码生成、验证和确认。基于模型的设计使开发人员能够在项目的早期阶段发现和纠正产品开发的缺陷和设计问题。在项目过程中,他们还可以适应不断变化的客户需求。项目结束时,他们通过软件在环上(SiL)、模型在环(MiL)、硬件在环(HiL)模拟后,确保最终交付系统能够满足客户的需求。

1.2 从控制系统模型到嵌入式控制器代码

在嵌入式开发中,利用模拟软件的相关功能模块构建模拟模型后,一个非常重要的步骤是利用代码生成功能将构建的系统转换为代码,并与嵌入式平台的芯片软件工程集成,使我们开发的系统能够在单片机上运行,实现产品的功能要求。

在这种情况下,我们采用世冠科技开发GCKontrol系统设计和模拟软件建模和生成控制器策略的代码STM32开发板(类似于汽车控制)ECU),控制汽车节气门的实物。

本方案实施步骤如下:

1.基于控制策略建模:GCKontrol建模控制器策略;

2.基于被控对象的建模:GCKontrol建模被控对象节气门;

3.基于环测试的模型:GCKontrol模型在环测试控制策略和被控对象;

4.控制策略优化:优化和迭代控制器策略,以获得预期的控制效果;

5.基于C代码生成:GCKontrol生成C代码或定点操作C代码进行控制器策略;

6.将代码部署到嵌入式系统C代码部署到STM32开发板;

7.快速原型验证:建立完整的硬件系统(汽车踏板) STM32控制器 节气门实物(RCP)验证。

总体流程如下图所示:

二、硬件系统介绍

2.一般硬件系统

在这种情况下,控制器策略对汽车节气门的控制是基于四个关键模块:

1.滑线变阻器:模拟汽车踏板电压传感器信号;

2.STM32开发板:作为控制器运行控制策略输出PWM波;

3.电机驱动板:对STM32输出的PWM放大波,输出电压;

4.汽车节气门:实物,接收电机驱动板电压,实时控制节气门。

如下图所示:

2.2滑线变阻器

滑动变阻器模拟油门踏板的输入模拟信号-电压信号。踩踏油门踏板的深度决定了节气门的开度,节气门的开度控制汽油的燃烧,从而提供不同级别的动力。在这种情况下,油门踏板的输出电压用滑动变阻器的输出电压表示。

2.3 STM32开发板-控制器

STM32开发板型号为STM32-F103-ZET具体参数如下:

1.主流微控制器,大型生态系统。ARM内核,32位。

2.本案可选开发板有CAN、模拟、数字I/O。没有电源,只有逻辑([mA])。

3.在这种情况下,电机驱动板是基于PWM波模式,输出1[A]电流。

2.4 电机驱动板

电机驱动板及其连接如下图所示:

2.5 实物汽车节气门

在这种情况下使用EA211,1.6T节气门。

三、GCKontrol控制器模型

3.1 PWM波介绍

PWM控制电机的基本原理:PWM脉宽调制器通过调制器为电机提供具有一定频率和可调脉冲宽度的脉冲电。脉冲宽度越大即占空比越大,提供给电机的平均电压就会越大,电机转速因而越高。相反,脉冲宽度越小,占空比越小,提供给电机的平均电压越小,电机转速越低。PWM无论是高电平还是低电平,电机都在旋转,电机的速度取决于平均电压。

3.2 介绍控制器模型

首先,制定节气门的控制策略。由于节气门相对简单,传统节气门可以直接使用PID控制策略,所以主要的工作是找出控制量和构建PID控制模型。对于控制量,我们可以设定滑线变阻器的输入量与节气门传感器的输出信号之间的差值来做为PID的控制量。PID放大后,输出量作为节气门内电机的扭矩输入,从而建立整个模型。

1.输入/输出硬件处理(模拟输入,PWM输出)

1.1.输入踏板位置电压;

1.2.输入节气门位置电压;

1.3.输出PWM空比设置和过电流保护;

2.故障诊断(模拟输入故障)

2.1.验证电压是否在预期范围内并进行合理检查;

2.2.故障保护模式;

3.控制执行机构闭环位置

3.1.正常模式:带前馈PI控制;

3.2.位置传感器故障时的备份模式:抖动前馈(备用:无反馈);

4.控制以10ms周期运行

根据上述需要,本案例GCKontrol如下图所示:

如下图所示:

3.3 环验证模型-被控对象模型

应考虑以下因素:

1.直流电机:电机电阻,Kt(扭矩增益),Kemf(反电动势常量);

2.节气门行程限位;

3.摩擦模型;

4.弹簧扭矩和预加载扭矩。

模型在环的GCKontrol如下图所示,节气门由电机驱动,右侧的子系统为控制器模块,左侧的子系统为节气门和电机模型。

节气门和电机模型的系统结构如下图所示PWM波-电压驱动节气门旋转,输出为节气门传感器电压。

3.4模型在环测试

如下图所示,油门踏板信号为输入信号,节气门信号为系统输出信号,实现节气门信号对油门踏板信号的跟踪。

四、GCKontrol生成控制器C代码

4.1 GCKontrol生成C代码介绍

GCKontrol包括支持代码生成C/C 源代码、动态库等文件,自动生成的代码是跨平台、跨硬件的全独立代码,可部署至嵌入式系统,且模型和代码具有一对一关系,易调试和追踪。

运行控制系统模型后,可得:

其中GCodeLink.c和GCodeLink.h是GCKontrol生成的C代码。

4.2 GCKontrol生成定点操作C代码

在GCKontrol控制器模型需要定点操作GCKontrol定点运算配置模型中各模块的信号属性页面,包括:数据类型、定标值、偏移等参数。

以增益、常量和加法三个模块为例,展示定点操作设置:

对增益模块FeedForward_DutyGain在信号属性中进行定点操作设置Tab选择页面,输出数据类型int16.选择定点计算CheckBox,6.偏移设置:

对常量模块FeedForward_StartPoint 15进行定点运算设置,在信号属性Tab选择页面,输出数据类型int32.选择定点计算CheckBox,在定值中选择4,偏移

对加法模块FeedFwd_duty在信号属性中进行定点操作设置Tab选择页面,输出数据类型int16.选择定点计算CheckBox,3.偏移设置为55:

本案例设置控制器算法模型的每个模块后,运行GCKontrol项目生成定点操作C代码,并将C代码部署到嵌入式系统(STM32开发板)。

.3 函数接口需求

在GCKontrol生成的C代码中,需要关键的接口函数:DoStep函数和CreateValue函数。

五、将代码载入STM32开发板

5.1 将GCKontrol生成的控制器C代码部署到STM32

启动STM32 CubeIDE如下图:

将GCodeLink.h和GCodeLink.c文件拷贝至工程下的User文件夹中,如下图所示:

5.2 STM32调用GCKontrol策略代码的接口函数

在STM32嵌入式操作系统中,代码结构如下:

1.初始化代码:无需修改,主要是设置硬件信息;

2.While循环:主控制回路;

3.读取模拟输入,传递给GCKontrol变量;

4.执行模型的DoStep()函数;

5.从GCK输出写入PWM;

6.等待10ms。

基本配置如下:

1.生成代码的变量与STM32工程变量对接;

2.变量列表位于Gcodelink中;

3.如果模型更改,列表将更改,需要更新索引。

5.3对代码进行编译并加载到STM32开发板中

基于STM32 Cube IDE对代码进行编译并加载到STM32开发板中,如下图所示:

5.4 基于STM32 Cube IDE对代码进行编译调试

调试器连接到单板,在单板执行中插入断点,调试器读取主板内存,读取或写入变量/参数。如下图所示:

下一步调试及增加断点调试,如下图:

5.5 硬件系统总体启动运行并达预期

经过以上各步骤,本案例实现了对汽车节气门实物的控制。

本案例的硬件系统如下图所示:

1.滑线变阻器-模拟踏板开度电压;

2.STM32开发板;

3.电机驱动板;

4.稳压电源-供电给电机驱动板;

5.汽车节气门。

 

六、总结

在本案例中我们采用GCKontrol系统设计与仿真软件来对控制器策略进行建模,仿真测试后生成C代码/定点计算C代码,并将生成的代码载入到嵌入式系统(系统采用STM32开发板,类似于汽车控制中的ECU),最终实现了对汽车节气门实物的控制。

文章来源:世冠科技

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章