вращение по датчику BISS-C только контур тока

This commit is contained in:
seklyuts 2024-07-26 16:32:52 +03:00
parent ca562baf47
commit ca65dd4047
16 changed files with 103 additions and 47 deletions

View File

@ -23,8 +23,6 @@
void main(void) void main(void)
{ {
InitPerif(); InitPerif();
for(;;) for(;;)
{ {

View File

@ -50,7 +50,7 @@ void Board_init()
{ {
EALLOW; EALLOW;
//PinMux_init(); // PinMux_init();
CLB_init(); CLB_init();
CLB_OUTPUTXBAR_init(); CLB_OUTPUTXBAR_init();
@ -65,16 +65,16 @@ void Board_init()
void PinMux_init() void PinMux_init()
{ {
// //
// PinMux for modules assigned to CPU1 // PinMux for modules assigned to CPU2
// //
//
// CLB_OUTPUTXBAR6 -> CLB_OUTPUTXBAR_CLKGEN_CLK_M Pinmux //CLB_OUTPUTXBAR6 -> CLB_OUTPUTXBAR_CLKGEN_CLK_M Pinmux
//
// GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_M_CLBOUTPUTXBAR_PIN_CONFIG); // GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_M_CLBOUTPUTXBAR_PIN_CONFIG);
//
// CLB_OUTPUTXBAR7 -> CLB_OUTPUTXBAR_CLKGEN_CLK_S Pinmux //CLB_OUTPUTXBAR7 -> CLB_OUTPUTXBAR_CLKGEN_CLK_S Pinmux
//
// GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_S_CLBOUTPUTXBAR_PIN_CONFIG); // GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_S_CLBOUTPUTXBAR_PIN_CONFIG);
} }

View File

@ -84,14 +84,13 @@ void GpioInit(void)
GpioDataRegs.GPCDAT.bit.GPIO95 = 1; GpioDataRegs.GPCDAT.bit.GPIO95 = 1;
GpioCtrlRegs.GPCCSEL4.bit.GPIO95 = 2; GpioCtrlRegs.GPCCSEL4.bit.GPIO95 = 2;
#endif #endif
GpioCtrlRegs.GPIO_FaultPWM_MUX.bit.GPIO_FaultPWM = 0;//FaultPWM GpioCtrlRegs.GPIO_FaultPWM_MUX.bit.GPIO_FaultPWM = 0;//FaultPWM
GpioCtrlRegs.GPIO_FaultPWM_GMUX.bit.GPIO_FaultPWM = 0; GpioCtrlRegs.GPIO_FaultPWM_GMUX.bit.GPIO_FaultPWM = 0;
GpioCtrlRegs.GPIO_FaultPWM_DIR.bit.GPIO_FaultPWM = 0; GpioCtrlRegs.GPIO_FaultPWM_DIR.bit.GPIO_FaultPWM = 0;
GpioDataRegs.GPIO_FaultPWM_DAT.bit.GPIO_FaultPWM = 0; GpioDataRegs.GPIO_FaultPWM_DAT.bit.GPIO_FaultPWM = 0;
GpioCtrlRegs.GPIO_FaultPWM_SEL.bit.GPIO_FaultPWM = 2; GpioCtrlRegs.GPIO_FaultPWM_SEL.bit.GPIO_FaultPWM = 2;
InputXbarRegs.INPUT4SELECT = 64;//xint1 InputXbarRegs.INPUT4SELECT = GPIO_FaultPWMpin;//xint1
GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 1;//EQEP GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 1;//EQEP
GpioCtrlRegs.GPAGMUX2.bit.GPIO20 = 0; GpioCtrlRegs.GPAGMUX2.bit.GPIO20 = 0;

View File

@ -1,7 +1,7 @@
/* /*
* spi_init.h * spi_init.h
* *
* Created on: 5 ñåíò. 2023 ã. * Created on: 5 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Author: seklyuts * Author: seklyuts
*/ */

View File

@ -12,7 +12,7 @@
#include "crc.h" #include "crc.h"
#define DEVICE_SYSCLK_FREQ 200000000 #define DEVICE_SYSCLK_FREQ 250000000
#define CLB_CLOCK_FREQ (DEVICE_SYSCLK_FREQ / 2) #define CLB_CLOCK_FREQ (DEVICE_SYSCLK_FREQ / 2)
@ -68,13 +68,13 @@ void BissGpioInit(void)
{ {
EALLOW; EALLOW;
GpioCtrlRegs.GPDMUX1.bit.GPIO96 = 2;//14 = 1110 GpioCtrlRegs.GPDMUX1.bit.GPIO96 = 2;//14 = 1110 CLB_OUTPUTX BAR6
GpioCtrlRegs.GPDGMUX1.bit.GPIO96 = 3; GpioCtrlRegs.GPDGMUX1.bit.GPIO96 = 3;
GpioCtrlRegs.GPDDIR.bit.GPIO96 = 1; GpioCtrlRegs.GPDDIR.bit.GPIO96 = 1;
GpioDataRegs.GPDDAT.bit.GPIO96 = 0; GpioDataRegs.GPDDAT.bit.GPIO96 = 0;
GpioCtrlRegs.GPDCSEL1.bit.GPIO96 = 2; GpioCtrlRegs.GPDCSEL1.bit.GPIO96 = 2;
GpioCtrlRegs.GPDMUX1.bit.GPIO97 = 2;//14 = 1110 GpioCtrlRegs.GPDMUX1.bit.GPIO97 = 2;//14 = 1110 CLB_OUTPUTX BAR7
GpioCtrlRegs.GPDGMUX1.bit.GPIO97 = 3; GpioCtrlRegs.GPDGMUX1.bit.GPIO97 = 3;
GpioCtrlRegs.GPDDIR.bit.GPIO97 = 1; GpioCtrlRegs.GPDDIR.bit.GPIO97 = 1;
GpioDataRegs.GPDDAT.bit.GPIO97 = 0; GpioDataRegs.GPDDAT.bit.GPIO97 = 0;

View File

@ -29,13 +29,13 @@
#define GPIO_LED_B GPIO7 #define GPIO_LED_B GPIO7
#else #else
#define GPIO_FaultPWM GPIO99 #define GPIO_FaultPWM GPIO99
#define GPIO_FaultPWM_SEL GPDCSEL1 #define GPIO_FaultPWM_SEL GPDCSEL1
#define GPIO_FaultPWM_DIR GPDDIR #define GPIO_FaultPWM_DIR GPDDIR
#define GPIO_FaultPWM_DAT GPDDAT #define GPIO_FaultPWM_DAT GPDDAT
#define GPIO_FaultPWM_GMUX GPDGMUX1 #define GPIO_FaultPWM_GMUX GPDGMUX1
#define GPIO_FaultPWM_MUX GPDMUX1 #define GPIO_FaultPWM_MUX GPDMUX1
#define GPIO_FaultPWMpin 99
#define GPIO_RS485_DE 133 #define GPIO_RS485_DE 133
#define GPIO_RS485_RE 145 #define GPIO_RS485_RE 145

View File

@ -15,6 +15,8 @@
#include "gpio_init.h" #include "gpio_init.h"
#include "frm_uart.h" #include "frm_uart.h"
#include "i2c_init.h" #include "i2c_init.h"
#include "spi_init.h"
#include "biss.h"
#define TO_CPU1 0 #define TO_CPU1 0
@ -43,10 +45,11 @@
#define CONNECT_PWM16(x) EALLOW; DevCfgRegs.CPUSEL0.bit.EPWM16 = x; EDIS #define CONNECT_PWM16(x) EALLOW; DevCfgRegs.CPUSEL0.bit.EPWM16 = x; EDIS
#define CONNECT_SCIA(x) EALLOW; DevCfgRegs.CPUSEL5.bit.SCI_A = x; EDIS #define CONNECT_SCIA(x) EALLOW; DevCfgRegs.CPUSEL5.bit.SCI_A = x; EDIS
#define CONNECT_SCIC(x) EALLOW; DevCfgRegs.CPUSEL5.bit.SCI_C = x; EDIS #define CONNECT_SPIC(x) EALLOW; DevCfgRegs.CPUSEL6.bit.SPI_C = x; EDIS
#define CONNECT_EQEP1(x) EALLOW; DevCfgRegs.CPUSEL2.bit.EQEP1 = x; EDIS #define CONNECT_EQEP1(x) EALLOW; DevCfgRegs.CPUSEL2.bit.EQEP1 = x; EDIS
#define CONNECT_I2CA(x) EALLOW; DevCfgRegs.CPUSEL7.bit.I2C_A = x; EDIS #define CONNECT_I2CA(x) EALLOW; DevCfgRegs.CPUSEL7.bit.I2C_A = x; EDIS
#define CONNECT_CLB1(x) EALLOW; DevCfgRegs.CPUSEL15.bit.CLB1 = x; EDIS #define CONNECT_CLB1(x) EALLOW; DevCfgRegs.CPUSEL15.bit.CLB1 = x; EDIS
#define CONNECT_CLB2(x) EALLOW; DevCfgRegs.CPUSEL15.bit.CLB2 = x; EDIS
void InitPerif(void) void InitPerif(void)
{ {
@ -102,6 +105,8 @@ void InitPerif(void)
I2CMasterGpioInit(); I2CMasterGpioInit();
SpiCGpioInit(); SpiCGpioInit();
BissGpioInit(); BissGpioInit();
BissInit();
// ConfigureADC(); // ConfigureADC();
@ -119,9 +124,9 @@ void InitPerif(void)
CONNECT_SCIA(TO_CPU2); CONNECT_SCIA(TO_CPU2);
CONNECT_EQEP1(TO_CPU2); CONNECT_EQEP1(TO_CPU2);
CONNECT_I2CA(TO_CPU2); CONNECT_I2CA(TO_CPU2);
CONNECT_SCIC(TO_CPU2); CONNECT_SPIC(TO_CPU2);
CONNECT_CLB1(TO_CPU2); CONNECT_CLB1(TO_CPU2);
CONNECT_CLB2(TO_CPU2);
Cpu1toCpu2IpcRegs.CPU1TOCPU2IPCBOOTMODE = 0x5A00C803; //str 716 Cpu1toCpu2IpcRegs.CPU1TOCPU2IPCBOOTMODE = 0x5A00C803; //str 716
Cpu1toCpu2IpcRegs.CPU1TOCPU2IPCSET.bit.IPC0 = 1; Cpu1toCpu2IpcRegs.CPU1TOCPU2IPCSET.bit.IPC0 = 1;

View File

@ -31,10 +31,10 @@ void main(void)
// asm (" NOP"); // asm (" NOP");
frmmstr_run(); frmmstr_run();
rele_run(); rele_run();
BissClkgenRun();
// Gpio_rainbow(diod); // Gpio_rainbow(diod);
// AdcRun(); // AdcRun();
// BissClkgenRun(); BissClkgenRun();
} }
} }

View File

@ -52,7 +52,7 @@ void Board_init()
//PinMux_init(); //PinMux_init();
CLB_init(); CLB_init();
CLB_OUTPUTXBAR_init(); // CLB_OUTPUTXBAR_init();
EDIS; EDIS;
} }
@ -65,16 +65,16 @@ void Board_init()
void PinMux_init() void PinMux_init()
{ {
// //
// PinMux for modules assigned to CPU1 // PinMux for modules assigned to CPU2
// //
//
// CLB_OUTPUTXBAR6 -> CLB_OUTPUTXBAR_CLKGEN_CLK_M Pinmux //CLB_OUTPUTXBAR6 -> CLB_OUTPUTXBAR_CLKGEN_CLK_M Pinmux
//
// GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_M_CLBOUTPUTXBAR_PIN_CONFIG); // GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_M_CLBOUTPUTXBAR_PIN_CONFIG);
//
// CLB_OUTPUTXBAR7 -> CLB_OUTPUTXBAR_CLKGEN_CLK_S Pinmux //CLB_OUTPUTXBAR7 -> CLB_OUTPUTXBAR_CLKGEN_CLK_S Pinmux
//
// GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_S_CLBOUTPUTXBAR_PIN_CONFIG); // GPIO_setPinConfig(CLB_OUTPUTXBAR_CLKGEN_CLK_S_CLBOUTPUTXBAR_PIN_CONFIG);
} }

View File

@ -12,7 +12,7 @@
#include "crc.h" #include "crc.h"
#define DEVICE_SYSCLK_FREQ 200000000 #define DEVICE_SYSCLK_FREQ 250000000
#define CLB_CLOCK_FREQ (DEVICE_SYSCLK_FREQ / 2) #define CLB_CLOCK_FREQ (DEVICE_SYSCLK_FREQ / 2)
@ -160,15 +160,16 @@ uint64_t BiSStheta = 0;
uint16_t BissCRC = 0, BissCRC_ = 0, BissCRC2_ = 0; uint16_t BissCRC = 0, BissCRC_ = 0, BissCRC2_ = 0;
uint16_t BissErr = 0; uint16_t BissErr = 0;
uint16_t BissWarn = 0; uint16_t BissWarn = 0;
uint32_t Bissth1 = 0; uint32_t Bissth1 = 0, Bissth1_ = 0;
uint16_t Bissth2 = 0; uint16_t Bissth2 = 0;
uint16_t Angle = 0, Angle_, dAngle;
uint64_t BissAllCRC; uint64_t BissAllCRC;
uint16_t BissTestShift1[16]; uint16_t BissTestShift1[16];
uint16_t BissErrData = 0; uint16_t BissErrData = 0;
uint64_t BissAll = 0; uint64_t BissAll = 0;
uint32_t WrongCS =0, RightCS = 0; uint32_t WrongCS =0, RightCS = 0, bisscErr = 0;
int16_t bissSpeed;
void BissCalc(uint64_t BissData) void BissCalc(uint64_t BissData)
{ {
@ -201,13 +202,33 @@ void BissCalc(uint64_t BissData)
if(BissCRC2_ != BissCRC) if(BissCRC2_ != BissCRC)
{ {
WrongCS++; WrongCS++;
bisscErr++;
if(bisscErr < 3) Angle = Angle_ + dAngle;
} }
else else
{ {
RightCS++; RightCS++;
Angle = -Bissth2*5;
dAngle = Angle - Angle_;
Angle_ = Angle_;
bisscErr = 0;
bissSpeed = Bissth1 - Bissth1_;
Bissth1_ = Bissth1;
} }
BissErr = (BissAll & 0x0000000008000000) >> 27; BissErr = (BissAll & 0x0000000008000000) >> 27;
BissWarn = (BissAll & 0x0000000004000000) >> 26; BissWarn = (BissAll & 0x0000000004000000) >> 26;
} }
} }
uint16_t biss_getAngle(void)
{
return Angle;
}
uint16_t biss_getErr(void)
{
return bisscErr;
}

View File

@ -1,14 +1,14 @@
/* /*
* biss.h * biss.h
* *
* Created on: 26 дек. 2023 г. * Created on: 26 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Author: seklyuts * Author: seklyuts
*/ */
#ifndef SRC_BISS_H_ #ifndef SRC_BISS_H_
#define SRC_BISS_H_ #define SRC_BISS_H_
#define BISS_C_BITS 4 //кол-во читаемых 16-битных слов #define BISS_C_BITS 4 //<EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
#define BISS_CLK_POL 1 #define BISS_CLK_POL 1
#define BISS_CLK_PHASE 1 #define BISS_CLK_PHASE 1
@ -27,6 +27,8 @@ void BissClkgenRun(void);
void BissStartSet(void); void BissStartSet(void);
void BissCalc(uint64_t BissData); void BissCalc(uint64_t BissData);
uint16_t biss_getAngle(void);
uint16_t biss_getErr(void);
#endif /* SRC_BISS_H_ */ #endif /* SRC_BISS_H_ */

View File

@ -75,8 +75,7 @@ void InitPerif(void)
PWMInitInterruptEn(); PWMInitInterruptEn();
SpiCInit(); SpiCInit();
// SpiCGpioInit();
// BissGpioInit();
BissInit(); BissInit();
vectorInitCurrLoop(); vectorInitCurrLoop();

View File

@ -20,10 +20,12 @@ void ReleOut(uint16_t out_bit)
GpioDataRegs.GPCDAT.bit.GPIO95 = out_bit; GpioDataRegs.GPCDAT.bit.GPIO95 = out_bit;
} }
#else #else
volatile uint16_t ReleErr1;
void ReleOut(uint16_t out_bit) void ReleOut(uint16_t out_bit)
{ {
uint16_t Err1; ReleErr1 = I2CWrite(I2C_FAULT_SLAVE_ADDRESS, 2, 1, true, &out_bit);
Err1 = I2CWrite(I2C_FAULT_SLAVE_ADDRESS, 2, 1, true, &out_bit);
} }
#endif #endif

View File

@ -74,7 +74,7 @@ float FactorCurrent = FACTOR_CURRENT_MOTOR;
TvectorCurrentLoop CurrLoop; TvectorCurrentLoop CurrLoop;
TMode Mode = OffMode; TMode Mode = OffMode;
uint16_t Step = 0, StepS, Nstep = 2, NoLoop = 0, StepShift = 6; uint16_t Step = 0, StepS, Nstep = 2, NoLoop = 0, StepShift = 6;
float CurrentRegTuneAmpl = 0, FRM_cur = 0; float CurrentRegTuneAmpl = 0, FRM_cur = 0, CurrentRegTuneAmplInpuls = 0;
int16_t Angle_test=0,sin_int,cos_int, AngleErr; int16_t Angle_test=0,sin_int,cos_int, AngleErr;
float Udc; float Udc;
uint16_t SectorCheckOn=1; uint16_t SectorCheckOn=1;
@ -83,6 +83,8 @@ volatile int16_t Udc_rele = 0;
float UdcVolt = 0; float UdcVolt = 0;
volatile float VdcFactor = FACTOR_VDC; volatile float VdcFactor = FACTOR_VDC;
volatile uint16_t VoltProcImit = 0; volatile uint16_t VoltProcImit = 0;
uint32_t Impuls = 0;
int16_t AngleOffset = 0xc000, vectorAngle;
@ -93,7 +95,9 @@ volatile uint16_t VoltProcImit = 0;
void vectorFault(void) void vectorFault(void)
{ {
Mode = OffMode; Mode = OffMode;
#ifdef REF0
XintRegs.XINT2CR.bit.ENABLE = 1; XintRegs.XINT2CR.bit.ENABLE = 1;
#endif
} }
uint16_t Num = 0; uint16_t Num = 0;
@ -106,8 +110,8 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t
Ia = -CurrentA;//sdfm_get(6); Ia = -CurrentA;//sdfm_get(6);
Ib = -CurrentB;//sdfm_get(3); Ib = -CurrentB;//sdfm_get(3);
Ic = -CurrentC;//sdfm_get(4); Ic = -CurrentC;//sdfm_get(4);
if((Ia > IMAX)||(Ib>IMAX)||(Ic>IMAX)||(Ia<-IMAX)||(Ib<-IMAX)||(Ic<-IMAX) ) {OverCur[0] = Ia; OverCur[1] = Ib; OverCur[2] = Ic; ErrCur++; if(ErrCur >= 3) {Mode = OffMode; CurFault++;}} if((Ia > IMAX)||(Ib>IMAX)||(Ic>IMAX)||(Ia<-IMAX)||(Ib<-IMAX)||(Ic<-IMAX) ) {OverCur[0] = Ia; OverCur[1] = Ib; OverCur[2] = Ic; ErrCur++; Mode = OffMode; CurFault++;}
// else ErrCur = 0;
UdcFiltered = Filter(sdfmUdc, &UdcFilter); UdcFiltered = Filter(sdfmUdc, &UdcFilter);
if(UdcFiltered < 0) UdcFiltered = 0; if(UdcFiltered < 0) UdcFiltered = 0;
@ -120,8 +124,11 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t
CurrLoop.piId.Ref = 0; CurrLoop.piId.Ref = 0;
rele_control(UdcFiltered); rele_control(UdcFiltered);
#ifdef REF0
if(Mode) {XintRegs.XINT2CR.bit.ENABLE = 0; temperature_deInit();} if(Mode) {XintRegs.XINT2CR.bit.ENABLE = 0; temperature_deInit();}
#endif
vectorAngle = biss_getAngle() + AngleOffset;
switch(Mode) switch(Mode)
{ {
@ -132,10 +139,16 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t
case StepMode: case StepMode:
PWM_ABC_StartOut(); PWM_ABC_StartOut();
vectorSinCos.Angle = Step; vectorSinCos.Angle = Step;
CurrLoop.piIq.Ref = CurrentRegTuneAmpl; if(Impuls > 0)
{
Impuls--;
CurrLoop.piIq.Ref = CurrentRegTuneAmplInpuls;
}
else CurrLoop.piIq.Ref = CurrentRegTuneAmpl;
break; break;
case StayMode: case StayMode:
PWM_ABC_StartOut(); PWM_ABC_StartOut();
CurrLoop.piIq.Ref = CurrentRegTuneAmpl;
break; break;
case CurrentRegTune: case CurrentRegTune:
vectorSinCos.Angle = 0; vectorSinCos.Angle = 0;
@ -149,6 +162,20 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t
vectorUdq.d = vectorUdq.q = 0; vectorUdq.d = vectorUdq.q = 0;
PWM_ABC_Start(Num); PWM_ABC_Start(Num);
break; break;
case VectorModeI:
if(biss_getErr()>=3)
{
PWM_ABC_StopAllClose();
Mode = OffMode;
}
else
{
PWM_ABC_StartOut();
vectorSinCos.Angle = vectorAngle;
CurrLoop.piIq.Ref = CurrentRegTuneAmpl;
CurrLoop.piId.Ref = 0;
}
break;
default: default:
Mode = OffMode; Mode = OffMode;
PWM_ABC_StopAllClose(); PWM_ABC_StopAllClose();

View File

@ -28,11 +28,11 @@ Rele.State - включение реле 1- включено, 0 - выключе
Rele.Error - появляется если после включение реле напряжение не поднялось как минимум на 5 вольт. При низком напряжении эта ошибка всегда возникает, чтобы поехать её надо сбросить вручную Rele.Error - появляется если после включение реле напряжение не поднялось как минимум на 5 вольт. При низком напряжении эта ошибка всегда возникает, чтобы поехать её надо сбросить вручную
Mode - режим работы. 0 - стоим, всё выключено, 1 - шаговый режим, 2 - режим поворота на заданный угол, 3 - режим настройки регулятора тока, 4 - шим по одному транзистору Mode - режим работы. 0 - стоим, всё выключено, 1 - шаговый режим, 2 - режим поворота на заданный угол, 3 - режим настройки регулятора тока, 4 - шим по одному транзистору, 6 - вращение по датчику с контуром тока
CurrentRegTuneAmpl - заданный ток для формирования поля когда включен контур тока CurrentRegTuneAmpl - заданный ток для формирования поля когда включен контур тока
Nstep - шаг на который инкрементируется угол поворота поля в синхронном режиме Nstep - шаг на который инкрементируется угол поворота поля в синхронном режиме (скорость вращения)
NoLoop - отключение контура тока (возможность задавать напряжение) NoLoop - отключение контура тока (возможность задавать напряжение)
@ -40,6 +40,9 @@ vectorUdq.q - поперечная составляющая напряжения
vectorUdq.d - продольная составляющая напряжения, при включенном регуляторе тока формируется регулятором, при отключенном можно задавать вручную vectorUdq.d - продольная составляющая напряжения, при включенном регуляторе тока формируется регулятором, при отключенном можно задавать вручную
Impuls - время импульса тока в секундах (когда значение не равно нулю работает обратный отсчёт и ток = CurrentRegTuneAmplInpuls, когда равно нулю значение тока = CurrentRegTuneAmpl)
CurrentRegTuneAmplInpuls - величина импульса тока в амперах
___________________________________________ ___________________________________________
в левом окне блок TestPWM - в этом режиме можно включить ШИМ на любой транзистор. в левом окне блок TestPWM - в этом режиме можно включить ШИМ на любой транзистор.