| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /* --------------------------- (C) COPYRIGHT 2020 Fortiortech ShenZhen -----------------------------
- File Name : FiledWeaken.c
- Author : Fortiortech Appliction Team
- Version : V1.0
- Date : 2020-10-15
- Description : This file contains flux_weakening function used for Motor Control.
- ----------------------------------------------------------------------------------------------------
- All Rights Reserved
- ------------------------------------------------------------------------------------------------- */
- #include "FU68xx_5.h"
- #include <Myproject.h>
- #if (FiledWeakenCompEnable==1)
- FieldWeakeningTypeDef xdata mcFieldWeaken;
- void FiledWeakenControl(int16 Ud, int16 Uq, uint16 Dcbusk, int16 Is)
- {
- //获取Us和Udc。
- SCAT1_COS = Ud;
- SCAT1_SIN = Uq;
- SMDU_RunBlock(1, 5);
- mcFieldWeaken.FieldWeakenActualUS_Q15 = SCAT1_RES1;
- mcFieldWeaken.FieldWeakenActualDcbus_Q15 = Dcbusk;
- //获取Is的角度。
- PI1_EK = mcFieldWeaken.FieldWeakenActualDcbus_Q15 - mcFieldWeaken.FieldWeakenActualUS_Q15;
- SMDU_RunBlock(1, 7); //调用MDU运算单元0中的PI模式(7)
- mcFieldWeaken.FieldWeakenIsTheta = PI1_UKH;
- //获取D轴电流和Q轴电流参考值。
- SCAT1_COS = Is;
- SCAT1_THE = mcFieldWeaken.FieldWeakenIsTheta;
- SCAT1_SIN = 0;
- SMDU_RunBlock(1, 4);
- mcFieldWeaken.mcIdref = SCAT1_RES2 ;//sin的结果
- mcFieldWeaken.mcIqref = SCAT1_RES1;//cos的结果
- }
- ///* -------------------------------------------------------------------------------------------------
- // Function Name : GetFieldWeakenUsAndUdc_Q15
- // Description : 获取Us和Udc。
- // Date : 2020-10-15
- // Parameter : Ud: [输入]
- //** Uq: [输入]
- //** Dcbus: [输入]
- //------------------------------------------------------------------------------------------------- */
- //void GetFieldWeakenUsAndUdc_Q15(int16 Ud, int16 Uq , uint16 Dcbus)
- //{
- //// mcFieldWeaken.FieldWeakenRunUD = Ud;
- //// mcFieldWeaken.FieldWeakenRunUQ = Uq;
- //// mcFieldWeaken.FieldWeakenActualDcbus = Dcbus * mcFieldWeaken.FieldWeakenHwBoardVoltMax / 32767.0;//求出实际母线电压
- ////
- //// // mcFieldWeaken.FieldWeakenRunUS = mcFieldWeaken.FieldWeakenRunUD* mcFieldWeaken.FieldWeakenRunUD + mcFieldWeaken.FieldWeakenRunUQ * mcFieldWeaken.FieldWeakenRunUQ;//
- //// mcFieldWeaken.FieldWeakenActualUS_Q15 = sqrt(mcFieldWeaken.FieldWeakenRunUD * mcFieldWeaken.FieldWeakenRunUD + mcFieldWeaken.FieldWeakenRunUQ * mcFieldWeaken.FieldWeakenRunUQ) * mcFieldWeaken.FieldWeakenActualDcbus / 1.732 / mcFieldWeaken.FieldWeakenHwBoardVoltageBase;// sqrt(mcFieldWeaken.FieldWeakenRunUS) / 1.732 / mcFieldWeaken.FieldWeakenHwBoardVoltageBase;
- ////
- //// mcFieldWeaken.FieldWeakenActualDcbus_Q15 = Dcbus * mcFieldWeaken.FieldWeakenDcbusK;
- //
- // SCAT2_COS = Ud;
- // SCAT2_SIN = Uq;
- // SMDU_RunBlock(2, 5);
- // mcFieldWeaken.FieldWeakenActualUS_Q15 = SCAT2_RES1;
- // mcFieldWeaken.FieldWeakenActualDcbus_Q15=DcbusK;
- //
- //
- //}
- ///* -------------------------------------------------------------------------------------------------
- // Function Name : GetFieldWeakenUsAndUdc_Q15
- // Description : 获取D轴电流和Q轴电流参考值。
- // Date : 2020-10-15
- // Parameter : Is: [输入]
- //------------------------------------------------------------------------------------------------- */
- //void GetFieldWeakenIdRefAndIqRef_Q15(int16 Is)
- //{
- //// mcFocCtrl.IqRef = Is * cos(mcFieldWeaken.FieldWeakenIsTheta);
- //// mcFocCtrl.IdRef = Is * sin(mcFieldWeaken.FieldWeakenIsTheta);
- //
- // SCAT3_COS = Is;
- // SCAT3_THE = mcFieldWeaken.FieldWeakenIsTheta;
- // SCAT3_SIN = 0;
- // SMDU_RunBlock(3,4);
- // mcFieldWeaken.mcIdref = SCAT3_RES2 ;//sin的结果
- // mcFieldWeaken.mcIqref = SCAT3_RES1;//cos的结果
- //
- //}
- ///* -------------------------------------------------------------------------------------------------
- // Function Name : GetFieldWeakenIsTheta_Q15
- // Description : 获取Is的角度。
- // Date : 2020-10-15
- // Parameter : None
- //------------------------------------------------------------------------------------------------- */
- //void GetFieldWeakenIsTheta_Q15(void)
- //{
- // mcFieldWeaken.FieldWeakenIsTheta = mcFieldWeakenPI(mcFieldWeaken.FieldWeakenActualUS_Q15 ,mcFieldWeaken.FieldWeakenActualDcbus_Q15) ;
- //}
- ///* -------------------------------------------------------------------------------------------------
- // Function Name : mcFieldWeakenPI
- // Description : 功率环PI函数
- // Date : 2020-09-16
- // Parameter : feedbackvalue: [输入]
- //** referencevalue: [输入]
- //------------------------------------------------------------------------------------------------- */
- //int16 mcFieldWeakenPI(int16 feedbackvalue, int16 referencevalue)
- //{
- // PI1_EK = referencevalue - feedbackvalue;
- // SMDU_RunBlock(1 , 7); //调用MDU运算单元0中的PI模式(7)
- // return PI1_UKH;
- //}
- #endif
|