基于motoharw平台的电机控制策略模型simulink仿真实现
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于motoharw平台的电机控制策略模型simulink仿真实现相关的知识,希望对你有一定的参考价值。
目录
一、理论基础
HCU的控制算法开发是一个极其复杂的过程。其过程包括多个步骤:功能概念定义、算法开发、软件编程、底层操作系统和驱动程序开发、匹配标定及验证、ECU软件灌装等。这些步骤在多数情况下相互关联且反复循环。MotoTron公司的基于产品级ECU的控制策略快速开发平台(包括:MotoHawk算法开发软件,MotoTune刷写及标定软件,产品级ECU硬件)配合ATI公司的VISION标定工具,可为客户提供一套完整的解决方案。
MotoHawk - Production ECU-based Rapid Prototyping
MotoHawk是基于MotoTron的ControlCore产品级软件架构和产品级ECU硬件下的策略开发软件,开发人员在Matlab/Simulink/Stateflow/RTW 编译环境下编写基于体系结构的应用软件,其可应用在ECU开发、标定及测试的各个阶段。MotoHawk利用产品级ECU硬件平台,集成了车上常用的传感器接口和执行器驱动,大大缩短了从开发到产品化的周期,降低成本。
二、核心程序
这个是基于原来那个模型,做了部分简化,然后增加了一个stateflow控制模块,其内部的状态转移结构如下所示:
速度大于2000为状态0,速度小于2000位状态1,如果没有外部输入激励,状态2.
clc;
clear;
close all;
warning off;
%加载数据
load train_data.mat
data1 = a(:,2);
data2 = a(:,3);
E = data1 - data2;
Ec = diff(E);
E = E(1:length(Ec));
pstudy1 = E;
pstudy2 = Ec;
trnData1 = pstudy1;
trnData2 = pstudy2;
trnData = [trnData1,trnData2,data1(1:length(Ec))];
%由训练数据直接生成模糊推理系统
numMFs = 7;%隶属度函数个数
mfType = 'gbellmf';%类型
fisMat = genfis1(trnData,numMFs,mfType);
[x1,mf1] = plotmf(fisMat,'input',1);%初始隶属度函数
[x2,mf2] = plotmf(fisMat,'input',2);%初始隶属度函数
figure;
subplot(121);plot(x1,mf1);title('E-Initial membership functions');
subplot(122);plot(x2,mf2);title('Ec-Initial membership functions');
%使用进行给定数据的神经模糊建模
numEpochs=400;%训练次数
fisMat1=anfis(trnData,fisMat,numEpochs);
%训练后模糊推理系统的隶属函数曲线
[x1,mf1]=plotmf(fisMat1,'input',1);
[x2,mf2]=plotmf(fisMat1,'input',2);
figure;
subplot(121);plot(x1,mf1);title('E - Fiual Membership Functions');
subplot(122);plot(x2,mf2);title('Ec - Fiual Membership Functions');
% save patient1.mat fisMat
save patient2.mat fisMat1
figure;
plot(data1(1:length(Ec)),'b');hold on
plot(evalfis([E,Ec],fisMat1),'r-o');hold off;
三、仿真测试结果
为了测试方便,我这里做的简化,主要有如下几个方面:
第一、去掉了原来的模糊控制器,这样仿真速度可以快点,测试简单;
第二、将控制模型简化了,用一个传递函数来表示;
第三、增加了stateflow状态转移控制器。
仿真结果如下所示:
基本上信号的输入输出都需要借助工具箱中的CANread和CANsend模块进行输入输出。因为这个涉及到硬件,所以你这边自己需要根据硬件设备对CANread和CANsend做简单的配置。
然后我仔细看了下硬件设备的接口配置,所以我们需要预留如下接口,作为在环设计的输入和输出接口。
再整个模型中,首先放如下如下的模块:
另外,再设置下canread和canwrite就可以了。我提供的第一个文件夹的工程,就是用来给你熟悉设备使用的。
A22-15
以上是关于基于motoharw平台的电机控制策略模型simulink仿真实现的主要内容,如果未能解决你的问题,请参考以下文章
MATLAB实战系列(三十一)-基于MATLAB的异步电机调速系统仿真