使用SVM控制逆变器的技术研究

版权申诉
0 下载量 97 浏览量 更新于2024-12-10 收藏 9KB RAR 举报
资源摘要信息:"MLI_vectorielle.rar_SVM inverter_inverter svm_inverter svm_matl" ### 知识点一:空间矢量脉宽调制(SVM) 空间矢量脉宽调制(Space Vector Pulse Width Modulation, SVM)是一种用于电力电子装置中改善波形质量的技术。它通过调整功率器件的开关状态来控制逆变器输出电压的频率和幅度,以达到平滑波形的目的。SVM技术可以降低输出电流谐波,提高效率,尤其在交流驱动和电机控制领域得到了广泛应用。 ### 知识点二:逆变器(Inverter) 逆变器是一种将直流(DC)电能转换为交流(AC)电能的电力电子装置。在太阳能发电、不间断电源(UPS)以及电动汽车等领域,逆变器扮演着至关重要的角色。逆变器控制通常涉及复杂的算法和策略,以确保输出的交流电满足特定的质量要求,比如频率、相位和幅度。 ### 知识点三:支持向量机(SVM)在逆变器控制中的应用 支持向量机(Support Vector Machine)是一种常见的机器学习算法,常用于分类和回归分析。在电力电子领域,SVM也被应用于逆变器的控制策略中。通过建立数学模型来预测和控制逆变器的输出电压波形,SVM能够实现对电机等负载的高效控制。 ### 知识点四:Emdedded MATLAB与Simulink Embedded MATLAB是MathWorks公司提供的一种能够在Simulink模型中直接使用MATLAB代码的功能。这使得设计师能够在Simulink模型内嵌入自定义的MATLAB函数,以实现复杂的控制算法和信号处理。Simulink是MATLAB的一个附加产品,提供了基于图形的多域仿真和基于模型的设计环境,广泛应用于系统级的设计、仿真和实现。 ### 知识点五:文件名称"MLI_vectorielle.mdl" 文件名"MLI_vectorielle.mdl"指的是Simulink模型文件,其中"MLI"可能代表多电平逆变器(Multilevel Inverter),而"vectorielle"可能意味着该模型涉及向量或空间矢量的控制。在Simulink环境中,这个模型文件可能包含了用于实现SVM逆变器控制策略的所有图形化组件和逻辑。 ### 知识点六:SVM控制的Matlab实现 利用MATLAB实现SVM控制通常需要编写控制算法代码,构建相应的数学模型,并进行仿真测试。在实际应用中,通过MATLAB的Simulink进行模型搭建,然后将编写的控制代码嵌入到Simulink模型中,可以方便地进行仿真并观察逆变器的输出波形。这样的仿真结果可以用来验证控制策略的有效性,为实际硬件实现提供理论依据。 ### 知识点七:逆变器的SVM控制策略 逆变器的SVM控制策略是一种先进的控制方法,它能够提高逆变器输出波形的质量,减少谐波分量。SVM控制策略通常包括以下几个步骤: 1. 空间矢量的计算:根据逆变器的开关状态,计算出对应的空间矢量。 2. 电压矢量的合成:通过合理分配空间矢量的作用时间,来合成所需的输出电压矢量。 3. 时间的优化:优化各个矢量的作用时间,以达到减少开关损耗和输出谐波的目的。 4. 调制策略:采用合适的调制策略,如SVM调制策略,来生成控制逆变器开关的PWM信号。 ### 结语 SVM在逆变器控制中的应用涉及电力电子、控制理论、机器学习和软件工程等众多领域,是一个高度综合的技术。借助于Matlab和Simulink等强大的工程仿真工具,工程师可以设计出高效的逆变器控制策略,并通过仿真优化其性能。对于从事电力电子和自动化控制的专业人员来说,理解并掌握SVM控制策略的原理和应用是必不可少的技能。

优化以下代码 df_in_grown_ebv = pd.read_table(open(r"C:\Users\荆晓燕\Desktop\20230515分品种计算育种值\生长性能育种值N72分组 (7).txt"), delim_whitespace=True, encoding="gb18030", header=None) df_in_breed_ebv = pd.read_table(open(r"C:\Users\荆晓燕\Desktop\20230515分品种计算育种值\繁殖性能育种值N72分组 (7).txt"), delim_whitespace=True, encoding="gb18030", header=None) # df_in_grown_Phenotype.columns = ['个体号', '活仔EBV', '21d窝重EBV', '断配EBV'] # df_in_breed_Phenotype.columns = ['个体号', '115EBV', '饲料转化率EBV', '瘦肉率EBV', '眼肌EBV', '背膘EBV'] df_in_breed_ebv.columns = ['个体号', '活仔EBV', '21d窝重EBV', '断配EBV'] df_in_grown_ebv.columns = ['个体号', '115daysEBV', '饲料转化率EBV', '瘦肉率EBV', '眼肌EBV', '背膘EBV'] NBA_mean = np.mean(df_in_breed_ebv['活仔EBV']) NBA_std = np.std(df_in_breed_ebv['活仔EBV']) days_mean = np.mean(df_in_grown_ebv['115daysEBV']) days_std = np.std(df_in_grown_ebv['115daysEBV']) fcr_mean = np.mean(df_in_grown_ebv['饲料转化率EBV']) fcr_std = np.std(df_in_grown_ebv['饲料转化率EBV']) output = pd.merge(df_in_grown_ebv, df_in_breed_ebv, how='inner', left_on='个体号', right_on='个体号') # output['计算长白母系指数'] = 0.3 * (NBA - NBA_mean)/NBA_std - 0.3 * (days - days_mean)/days_std - 0.3 * (fcr-fcr_mean)/fcr_std + 0.1 * (pcl-pcl_mean)/pcl_std output['计算长白母系指数'] = 0.29 * (df_in_breed_ebv['活仔EBV'] - NBA_mean)/NBA_std - 0.58 * (df_in_grown_ebv['115daysEBV']- days_mean)/days_std - 0.13 * (df_in_grown_ebv['饲料转化率EBV']-fcr_mean)/fcr_std MLI_mean = np.mean(output['计算长白母系指数']) MLI_std = np.std(output['计算长白母系指数']) output['校正长白母系指数'] = 25 * ((output['计算长白母系指数'] - MLI_mean)/MLI_std) + 100 output.to_excel(r"C:\Users\荆晓燕\Desktop\20230515分品种计算育种值\权重3-N72权重指数_20230602.xlsx",index=False) print(NBA_mean) print(NBA_std) print(days_mean) print(days_std) print(fcr_mean) print(fcr_std) print(MLI_mean) print(MLI_std)

2023-06-03 上传

优化这段代码df_in_grown_ebv = pd.read_table(open(r"C:\Users\荆晓燕\Desktop\20230515分品种计算育种值\生长性能育种值N72分组 (7).txt"), delim_whitespace=True, encoding="gb18030", header=None) df_in_breed_ebv = pd.read_table(open(r"C:\Users\荆晓燕\Desktop\20230515分品种计算育种值\繁殖性能育种值N72分组 (7).txt"), delim_whitespace=True, encoding="gb18030", header=None) # df_in_grown_Phenotype.columns = ['个体号', '活仔EBV', '21d窝重EBV', '断配EBV'] # df_in_breed_Phenotype.columns = ['个体号', '115EBV', '饲料转化率EBV', '瘦肉率EBV', '眼肌EBV', '背膘EBV'] df_in_breed_ebv.columns = ['个体号', '活仔EBV', '21d窝重EBV', '断配EBV'] df_in_grown_ebv.columns = ['个体号', '115daysEBV', '饲料转化率EBV', '瘦肉率EBV', '眼肌EBV', '背膘EBV'] NBA_mean = np.mean(df_in_breed_ebv['活仔EBV']) NBA_std = np.std(df_in_breed_ebv['活仔EBV']) days_mean = np.mean(df_in_grown_ebv['115daysEBV']) days_std = np.std(df_in_grown_ebv['115daysEBV']) fcr_mean = np.mean(df_in_grown_ebv['饲料转化率EBV']) fcr_std = np.std(df_in_grown_ebv['饲料转化率EBV']) output = pd.merge(df_in_grown_ebv, df_in_breed_ebv, how='inner', left_on='个体号', right_on='个体号') # output['计算长白母系指数'] = 0.3 * (NBA - NBA_mean)/NBA_std - 0.3 * (days - days_mean)/days_std - 0.3 * (fcr-fcr_mean)/fcr_std + 0.1 * (pcl-pcl_mean)/pcl_std output['计算长白母系指数'] = 0.29 * (df_in_breed_ebv['活仔EBV'] - NBA_mean)/NBA_std - 0.58 * (df_in_grown_ebv['115daysEBV']- days_mean)/days_std - 0.13 * (df_in_grown_ebv['饲料转化率EBV']-fcr_mean)/fcr_std MLI_mean = np.mean(output['计算长白母系指数']) MLI_std = np.std(output['计算长白母系指数']) output['校正长白母系指数'] = 25 * ((output['计算长白母系指数'] - MLI_mean)/MLI_std) + 100

108 浏览量