0322 Works

1000Hz
Oleg 7 months ago
parent cf58cd5b77
commit 141305c856

@ -9,6 +9,6 @@
<rts value="libc.a"/>
<templateProperties value="id=com.ti.common.project.core.emptyProjectTemplate,"/>
<isTargetManual value="false"/>
<origin value="C:/CCSWorkSpaces/DVR500Framework"/>
<origin value="C:/CCSWorkspaces/DVR1kFramework"/>
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
</projectOptions>

@ -29,18 +29,18 @@
<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.80260209" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.80260209" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
<targetPlatform id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformDebug.144554960" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformDebug"/>
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug.1149098008" name="GNU Make.Debug" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug"/>
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug.1149098008" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug"/>
<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug.1299929089" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug">
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.1242950249" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.1684737710" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.1569115973" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.921114452" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.1273100232" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.4" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.50833124" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.5" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.426354406" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.relaxed" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.1937343012" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.1242950249" name="Option deprecated, set by default (--large_memory_model, -ml)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.1684737710" name="Unified memory (--unified_memory, -mt)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.1569115973" name="Processor version (--silicon_version, -v)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.921114452" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.1273100232" name="Optimization level (--opt_level, -O)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.4" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.50833124" name="Speed vs. size trade-offs (--opt_for_speed, -mf)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.5" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.426354406" name="Floating Point mode (--fp_mode)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.relaxed" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.1937343012" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
<listOptionValue builtIn="false" value="${SRC_ROOT}/sys/include"/>
<listOptionValue builtIn="false" value="${SRC_ROOT}/DSP2833x_headers/include"/>
@ -48,36 +48,36 @@
<listOptionValue builtIn="false" value="${WORKSPACE_LOC}/FLOATPOINTLIB"/>
<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE.149577346" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE" value="--advice:performance=all" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE.1662729952" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE" valueType="definedSymbols">
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE.149577346" name="Provide advice on optimization techniques (--advice:performance)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE" value="--advice:performance=all" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE.1662729952" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_DEBUG"/>
<listOptionValue builtIn="false" value="LARGE_MODEL"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.1441670091" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.953729974" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.1789724136" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ISSUE_REMARKS.1347638696" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ISSUE_REMARKS" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.QUIET_LEVEL.530513445" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.QUIET_LEVEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.QUIET_LEVEL.QUIET" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.516418488" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ASM_LISTING.386989538" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ASM_LISTING" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.1441670091" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.953729974" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.1789724136" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ISSUE_REMARKS.1347638696" name="Issue remarks (--issue_remarks, -pdr)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ISSUE_REMARKS" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.QUIET_LEVEL.530513445" name="Quiet Level" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.QUIET_LEVEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.QUIET_LEVEL.QUIET" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.516418488" name="Application binary interface [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ASM_LISTING.386989538" name="Generate listing file (--asm_listing, -al)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ASM_LISTING" value="true" valueType="boolean"/>
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.702170906" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.415318295" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.1891525646" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS.1391197761" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS"/>
</tool>
<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug.1327456409" name="C2000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug">
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE.1998782068" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE" value="0x100" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE.1328622269" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE.905533328" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.HEAP_SIZE.879002182" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.HEAP_SIZE" value="0x100" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY.1082336086" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY" valueType="libs">
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE.1998782068" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE" value="0x100" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE.1328622269" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE.905533328" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.HEAP_SIZE.879002182" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.HEAP_SIZE" value="0x100" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY.1082336086" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY" valueType="libs">
<listOptionValue builtIn="false" value="libc.a"/>
<listOptionValue builtIn="false" value="${UTILITIES}/flash_api/2833x/28335/v210/lib/Flash28335_API_V210.lib"/>
<listOptionValue builtIn="false" value="rts2800_fpu32.lib"/>
<listOptionValue builtIn="false" value="rts2800_fpu32_fast_supplement.lib"/>
<listOptionValue builtIn="false" value="${WORKSPACE_LOC}/FLOATPOINTLIB/Debug/FLOATPOINTLIB.lib"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH.1160620700" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH" valueType="libPaths">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH.1160620700" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH" valueType="libPaths">
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
<listOptionValue builtIn="false" value="${UTILITIES}/flash_api/2833x/28335/v210/lib"/>
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
@ -87,9 +87,9 @@
<listOptionValue builtIn="false" value="${FAST_FPU32_SUPPLEMENT}/lib"/>
<listOptionValue builtIn="false" value="${WORKSPACE_LOC}/FLOATPOINTLIB/Debug"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.62041989" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER.1940356559" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO.2036702739" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.62041989" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER.1940356559" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO.2036702739" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS.1533038686" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS.464724910" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS.1647733195" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS"/>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>DVR500Framework</name>
<name>DVR1kFramework</name>
<comment></comment>
<projects>
</projects>
@ -138,7 +138,7 @@
</variable>
<variable>
<name>ORIGINAL_PROJECT_ROOT</name>
<value>file:/C:/CCSWorkSpaces/Framework_500_Hz/sys/build/framework</value>
<value>file:/C:/CCSWorkSpaces/Framework_1000_Hz/sys/build/framework</value>
</variable>
<variable>
<name>SRC_ROOT</name>

@ -53,9 +53,9 @@ void FRAMDATABASE::register_configuration_parameters(SYSCTRL::SystemControlConfi
//
// Scale Analog Signals
//
add_float( 0, &sys_config->scale_voltage_input_a, 0.166324854);//0.0227386411//0.0233486816;
add_float( 0, &sys_config->scale_voltage_input_b, 0.166955084);//0.0227597337//0.0234651081;
add_float( 0, &sys_config->scale_voltage_input_c, 0.170290515);//0.02278281//0.0236082859;
add_float( 0, &sys_config->scale_voltage_input_a, 0.171899959);// 0.166324854);//0.0227386411//0.0233486816;
add_float( 0, &sys_config->scale_voltage_input_b, 0.171521276);//0.166955084);//0.0227597337//0.0234651081;
add_float( 0, &sys_config->scale_voltage_input_c, 0.17439343);//0.170290515);//0.02278281//0.0236082859;
//
add_float( 0, &sys_config->scale_current_input_a, 0.0057266783);
add_float( 0, &sys_config->scale_current_input_b, 0.00571648451);
@ -65,9 +65,9 @@ void FRAMDATABASE::register_configuration_parameters(SYSCTRL::SystemControlConfi
add_float( 0, &sys_config->scale_current_cell_b, 0.00967073813);//0.00667640707;
add_float( 0, &sys_config->scale_current_cell_c, 0.00962774921);//0.00666095456;
//
add_float( 0, &sys_config->scale_voltage_load_a, 0.168764219);//0.0227408651//0.0232194811;
add_float( 0, &sys_config->scale_voltage_load_b, 0.167528242);//0.0227707103//0.0233941432;
add_float( 0, &sys_config->scale_voltage_load_c, 0.171417475);//0.0229060184//0.0234934501;
add_float( 0, &sys_config->scale_voltage_load_a, 0.174201488);//0.168764219);//0.0227408651//0.0232194811;
add_float( 0, &sys_config->scale_voltage_load_b, 0.172130167);//0.167528242);//0.0227707103//0.0233941432;
add_float( 0, &sys_config->scale_voltage_load_c, 0.175496697);//0.171417475);//0.0229060184//0.0234934501;
//
add_float( 0, &sys_config->scale_current_load_a, 0.00949461199);//0.00668919506;
add_float( 0, &sys_config->scale_current_load_b, 0.00953965727);//0.00669770781;
@ -359,20 +359,26 @@ void FRAMDATABASE::register_configuration_parameters(SYSCTRL::SystemControlConfi
#if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_DIFFICULT
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.gain, 0.04);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.time, 10.0e-3);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.high_saturation, 1800.0);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -1800.0);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.high_saturation, REGULATOR_VOLTAGE_ABC_SATURATION);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -REGULATOR_VOLTAGE_ABC_SATURATION);
#endif
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_SIMPLE
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.gain, 1/5.0);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.time, REGULATORVOLTAGETIME);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.high_saturation, 1800.0); // for debug!!!
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -1800.0); // for debug!!!
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.high_saturation, REGULATOR_VOLTAGE_ABC_SATURATION); // for debug!!!
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -REGULATOR_VOLTAGE_ABC_SATURATION); // for debug!!!
#endif
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
add_float( 0, &sys_config->reference_voltage_load_rms_intensity.time, REFERENCE_INTENSITY_VOLTAGE_RMS_TIME);
add_float( 0, &sys_config->regulator_voltage_load_rms.time, REGULATOR_VOLTAGE_RMS_TIME);
add_float( 0, &sys_config->regulator_voltage_load_rms.high_saturation, REGULATOR_VOLTAGE_RMS_SATURATION);
add_float( 0, &sys_config->regulator_voltage_load_rms.low_saturation, FP_ZERO);
#endif
//
add_float( 0, &sys_config->regulator_current_limit.gain, 1.0);
add_float( 0, &sys_config->regulator_current_limit.time, 5.0);
@ -384,25 +390,25 @@ void FRAMDATABASE::register_configuration_parameters(SYSCTRL::SystemControlConfi
add_float( 0, &sys_config->regulator_current_pfc.high_saturation, GRID_VOLTAGE_REFERENCE * 0.57735);
add_float( 0, &sys_config->regulator_current_pfc.low_saturation, -GRID_VOLTAGE_REFERENCE * 0.57735);
//
add_float( 0, &sys_config->current_regulator_active.gain, 0.34); // 0.34 for single winding 0.17 for double winding
add_float( 0, &sys_config->current_regulator_active.time, 0.04);
add_float( 0, &sys_config->current_regulator_active.gain, 0.17); // 0.34 for single winding 0.17 for double winding
add_float( 0, &sys_config->current_regulator_active.time, 0.08);
add_float( 0, &sys_config->current_regulator_active.high_saturation, 500.0);
add_float( 0, &sys_config->current_regulator_active.low_saturation, -500.0);
//
add_float( 0, &sys_config->current_regulator_reactive.gain, 0.34); // 0.34 for single winding 0.17 for double winding
add_float( 0, &sys_config->current_regulator_reactive.time, 0.04);
add_float( 0, &sys_config->current_regulator_reactive.gain, 0.17); // 0.34 for single winding 0.17 for double winding
add_float( 0, &sys_config->current_regulator_reactive.time, 0.08);
add_float( 0, &sys_config->current_regulator_reactive.high_saturation, 500.0);
add_float( 0, &sys_config->current_regulator_reactive.low_saturation, -500.0);
//
add_float( 0, &sys_config->current_referencer.gain, 1.0);
add_float( 0, &sys_config->current_referencer.time, 0.160);
add_float( 0, &sys_config->current_referencer.high_saturation, 20.0);
add_float( 0, &sys_config->current_referencer.low_saturation, -20.0);
add_float( 0, &sys_config->current_referencer.high_saturation, 57.8);
add_float( 0, &sys_config->current_referencer.low_saturation, -57.8);
//
add_float( 0, &sys_config->regulator_dc_voltage.gain, 0.05);
add_float( 0, &sys_config->regulator_dc_voltage.time, 800.0e-3);
add_float( 0, &sys_config->regulator_dc_voltage.high_saturation, FP_ZERO);
add_float( 0, &sys_config->regulator_dc_voltage.low_saturation, -GRID_VOLTAGE_REFERENCE * 0.57735);
//add_float( 0, &sys_config->regulator_dc_voltage.gain, 0.05);
//add_float( 0, &sys_config->regulator_dc_voltage.time, 800.0e-3);
//add_float( 0, &sys_config->regulator_dc_voltage.high_saturation, FP_ZERO);
//add_float( 0, &sys_config->regulator_dc_voltage.low_saturation, -GRID_VOLTAGE_REFERENCE * 0.57735);
#endif
//<>

Binary file not shown.

@ -467,9 +467,9 @@ void AlgorithmContext::_set_work_exe()
#if TYPECONTROL == SCALARCONTROL
//
m_env.regulator_dc_a.reset();
m_env.regulator_dc_b.reset();
m_env.regulator_dc_c.reset();
//m_env.regulator_dc_a.reset();
//m_env.regulator_dc_b.reset();
//m_env.regulator_dc_c.reset();
//
m_env.regulator_current_limit_a.set_to_high_saturation();
m_env.regulator_current_pfc_a.reset();
@ -480,6 +480,8 @@ void AlgorithmContext::_set_work_exe()
m_env.regulator_current_limit_c.set_to_high_saturation();
m_env.regulator_current_pfc_c.reset();
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
m_env.regulator_voltage_load_a_active.reset();
m_env.regulator_voltage_load_a_reactive.reset();
@ -488,6 +490,11 @@ void AlgorithmContext::_set_work_exe()
m_env.regulator_voltage_load_c_active.reset();
m_env.regulator_voltage_load_c_reactive.reset();
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
m_env.reference_voltage_load_rms_intensity.set_output(m_env.rms_voltage_load_module);
m_env.regulator_voltage_load_rms.reset();
#endif
//
#endif

@ -12,6 +12,9 @@ namespace SYSCTRL
//CONSTRUCTOR
AlgorithmStart::AlgorithmStart(SYSCTRL::SystemEnvironment& env):
SYSCTRL::AlgorithmBase(),
#if TYPECONTROL == SCALARCONTROL
m_orts(),
#endif
m_env(env),
#if TYPECONTROL == VECTORCONTROL
m_reference_zero(FP_ZERO),
@ -147,13 +150,35 @@ void AlgorithmStart::_execute_run()
m_env.start_control.phase_a.feedback.current_cell_reactive = m_env.projection_current_cell_a.reactive;
//
//-control
#if TYPE_ORTS == TYPE_ORTS_NORMAL
m_orts = m_env.main_abc_orts.phase_a;
_execute_single_phase(m_env.start_control.phase_a,
m_env.cell_dc_voltage_a_reciprocal,
m_env.current_referencer_a_active,
m_env.current_referencer_a_reactive,
m_env.current_regulator_a_active,
m_env.current_regulator_a_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_BACK
m_orts.active = m_env.main_abc_orts.phase_c.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_c.active;
_execute_single_phase(m_env.start_control.phase_a,
m_env.cell_dc_voltage_a_reciprocal,
m_env.current_referencer_a_active,
m_env.current_referencer_a_reactive,
m_env.current_regulator_a_active,
m_env.current_regulator_a_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_FORWARD
m_orts.active = -m_env.main_abc_orts.phase_b.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_b.active;
_execute_single_phase(m_env.start_control.phase_a,
m_env.main_abc_orts.phase_a,
m_env.cell_dc_voltage_a_reciprocal,
m_env.current_referencer_a_active,
m_env.current_referencer_a_reactive,
m_env.current_regulator_a_active,
m_env.current_regulator_a_reactive);
#endif
//<>
//**** Phase B ***
@ -174,13 +199,36 @@ void AlgorithmStart::_execute_run()
m_env.start_control.phase_b.feedback.current_cell_reactive = m_env.projection_current_cell_b.reactive;
//
//-control
#if TYPE_ORTS == TYPE_ORTS_NORMAL
m_orts = m_env.main_abc_orts.phase_b;
_execute_single_phase(m_env.start_control.phase_b,
m_env.cell_dc_voltage_b_reciprocal,
m_env.current_referencer_b_active,
m_env.current_referencer_b_reactive,
m_env.current_regulator_b_active,
m_env.current_regulator_b_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_BACK
m_orts.active = m_env.main_abc_orts.phase_a.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_a.active;
_execute_single_phase(m_env.start_control.phase_b,
m_env.main_abc_orts.phase_b,
m_env.cell_dc_voltage_b_reciprocal,
m_env.current_referencer_b_active,
m_env.current_referencer_b_reactive,
m_env.current_regulator_b_active,
m_env.current_regulator_b_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_FORWARD
m_orts.active = -m_env.main_abc_orts.phase_c.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_c.active;
_execute_single_phase(m_env.start_control.phase_b,
m_env.cell_dc_voltage_b_reciprocal,
m_env.current_referencer_b_active,
m_env.current_referencer_b_reactive,
m_env.current_regulator_b_active,
m_env.current_regulator_b_reactive);
#endif
//<>
@ -202,13 +250,35 @@ void AlgorithmStart::_execute_run()
m_env.start_control.phase_c.feedback.current_cell_reactive = m_env.projection_current_cell_c.reactive;
//
//-control
#if TYPE_ORTS == TYPE_ORTS_NORMAL
m_orts = m_env.main_abc_orts.phase_c;
_execute_single_phase(m_env.start_control.phase_c,
m_env.cell_dc_voltage_c_reciprocal,
m_env.current_referencer_c_active,
m_env.current_referencer_c_reactive,
m_env.current_regulator_c_active,
m_env.current_regulator_c_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_BACK
m_orts.active = m_env.main_abc_orts.phase_b.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_b.active;
_execute_single_phase(m_env.start_control.phase_c,
m_env.cell_dc_voltage_c_reciprocal,
m_env.current_referencer_c_active,
m_env.current_referencer_c_reactive,
m_env.current_regulator_c_active,
m_env.current_regulator_c_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_FORWARD
m_orts.active = -m_env.main_abc_orts.phase_a.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_a.active;
_execute_single_phase(m_env.start_control.phase_c,
m_env.main_abc_orts.phase_c,
m_env.cell_dc_voltage_c_reciprocal,
m_env.current_referencer_c_active,
m_env.current_referencer_c_reactive,
m_env.current_regulator_c_active,
m_env.current_regulator_c_reactive);
#endif
//<>
m_voltage_a = m_env.start_control.phase_a.reference.voltage_cell_relative;
@ -221,7 +291,6 @@ void AlgorithmStart::_execute_run()
#if TYPECONTROL == SCALARCONTROL
#pragma CODE_SECTION("ramfuncs");
inline void AlgorithmStart::_execute_single_phase(SYSCTRL::AlgorithmStartSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
float dc_voltage_reciprocal,
FLTSYSLIB::PIController& referencer_active,
FLTSYSLIB::PIController& referencer_reactive,
@ -238,8 +307,8 @@ inline void AlgorithmStart::_execute_single_phase(SYSCTRL::AlgorithmStartSingleP
//phase.reference.voltage_cell_ampl_active = regulator_active.execute(phase.feedback.current_cell_active, phase.test_ref.active);
//phase.reference.voltage_cell_ampl_reactive = regulator_reactive.execute(phase.feedback.current_cell_reactive, phase.test_ref.reactive);
//
phase.reference.voltage_cell_active = phase.reference.voltage_cell_ampl_active * orts.active;
phase.reference.voltage_cell_reactive = phase.reference.voltage_cell_ampl_reactive * orts.reactive;
phase.reference.voltage_cell_active = phase.reference.voltage_cell_ampl_active * m_orts.active;
phase.reference.voltage_cell_reactive = phase.reference.voltage_cell_ampl_reactive * m_orts.reactive;
//
phase.reference.voltage_cell = phase.reference.voltage_cell_active - phase.reference.voltage_cell_reactive;
phase.reference.voltage_cell_relative = phase.reference.voltage_cell * dc_voltage_reciprocal;

@ -22,6 +22,9 @@ namespace SYSCTRL
class AlgorithmStart: public SYSCTRL::AlgorithmBase
{
private:
#if TYPECONTROL == SCALARCONTROL
SYSCTRL::VectorOrthogonalProjection m_orts;
#endif
SYSCTRL::SystemEnvironment& m_env;
#if TYPECONTROL == VECTORCONTROL
private:
@ -51,7 +54,6 @@ private:
private:
inline void _execute_single_phase(SYSCTRL::AlgorithmStartSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
float dc_voltage_reciprocal,
FLTSYSLIB::PIController& referencer_active,
FLTSYSLIB::PIController& referencer_reactive,

@ -12,6 +12,9 @@ namespace SYSCTRL
//CONSTRUCTOR
AlgorithmStop::AlgorithmStop(SYSCTRL::SystemEnvironment& env):
SYSCTRL::AlgorithmBase(),
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
m_orts(),
#endif
m_env(env),
_execute(&SYSCTRL::AlgorithmStop::_execute_undef)
//
@ -99,7 +102,7 @@ void AlgorithmStop::_execute_run()
}//
#endif
//
#if TYPECONTROL == SCALARCONTROL
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
#pragma CODE_SECTION("ramfuncs");
void AlgorithmStop::_execute_run()
{
@ -137,21 +140,63 @@ void AlgorithmStop::_execute_run()
//
//control execute
#if TYPE_ORTS == TYPE_ORTS_NORMAL
m_orts = m_env.main_abc_orts.phase_a;
_execute_single_phase(m_env.phase_control.phase_a,
m_env.regulator_voltage_load_a_active,
m_env.regulator_voltage_load_a_reactive);
//
m_orts = m_env.main_abc_orts.phase_b;
_execute_single_phase(m_env.phase_control.phase_b,
m_env.regulator_voltage_load_b_active,
m_env.regulator_voltage_load_b_reactive);
//
m_orts = m_env.main_abc_orts.phase_c;
_execute_single_phase(m_env.phase_control.phase_c,
m_env.regulator_voltage_load_c_active,
m_env.regulator_voltage_load_c_reactive);
//
#endif
#if TYPE_ORTS == TYPE_ORTS_BACK
m_orts.active = m_env.main_abc_orts.phase_c.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_c.active;
_execute_single_phase(m_env.phase_control.phase_a,
m_env.main_abc_orts.phase_a,
m_env.regulator_voltage_load_a_active,
m_env.regulator_voltage_load_a_reactive);
//
m_orts.active = m_env.main_abc_orts.phase_a.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_a.active;
_execute_single_phase(m_env.phase_control.phase_b,
m_env.main_abc_orts.phase_b,
m_env.regulator_voltage_load_b_active,
m_env.regulator_voltage_load_b_reactive);
//
m_orts.active = m_env.main_abc_orts.phase_b.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_b.active;
_execute_single_phase(m_env.phase_control.phase_c,
m_env.main_abc_orts.phase_c,
m_env.regulator_voltage_load_c_active,
m_env.regulator_voltage_load_c_reactive);
//
#endif
#if TYPE_ORTS == TYPE_ORTS_FORWARD
m_orts.active = -m_env.main_abc_orts.phase_b.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_b.active;
_execute_single_phase(m_env.phase_control.phase_a,
m_env.regulator_voltage_load_a_active,
m_env.regulator_voltage_load_a_reactive);
//
m_orts.active = -m_env.main_abc_orts.phase_c.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_c.active;
_execute_single_phase(m_env.phase_control.phase_b,
m_env.regulator_voltage_load_b_active,
m_env.regulator_voltage_load_b_reactive);
//
m_orts.active = -m_env.main_abc_orts.phase_a.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_a.active;
_execute_single_phase(m_env.phase_control.phase_c,
m_env.regulator_voltage_load_c_active,
m_env.regulator_voltage_load_c_reactive);
//
#endif
if(m_env.timer_stop.is_finished()){
@ -167,19 +212,63 @@ void AlgorithmStop::_execute_run()
}//
#endif
//
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS))
#pragma CODE_SECTION("ramfuncs");
void AlgorithmStop::_execute_run()
{
m_env.hardware.ref_control_order = ORDER_START;
//
m_env.timer_stop.execute();
//
m_env.phase_control.phase_a.reference.voltage_ampl_real = m_env.reference_voltage_load_rms_intensity.execute(m_env.rms_voltage_load_module);
m_env.phase_control.phase_a.reference.voltage_cell_real = m_env.regulator_voltage_load_rms.execute(m_env.phase_control.phase_a.reference.voltage_ampl_real, m_env.rms_voltage_load_module);
//
#if TYPE_ORTS == TYPE_ORTS_NORMAL
m_env.phase_control.phase_a.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_a.active;
m_env.phase_control.phase_b.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_b.active;
m_env.phase_control.phase_c.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_c.active;
#endif
#if TYPE_ORTS == TYPE_ORTS_BACK
m_env.phase_control.phase_a.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_c.reactive;
m_env.phase_control.phase_b.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_a.reactive;
m_env.phase_control.phase_c.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_b.reactive;
#endif
#if TYPE_ORTS == TYPE_ORTS_FORWARD
m_env.phase_control.phase_a.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * (-m_env.main_abc_orts.phase_b.reactive);
m_env.phase_control.phase_b.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * (-m_env.main_abc_orts.phase_c.reactive);
m_env.phase_control.phase_c.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * (-m_env.main_abc_orts.phase_a.reactive);
#endif
//
m_env.phase_control.phase_a.reference.voltage_cell_relative = m_env.phase_control.phase_a.reference.voltage_cell * m_env.cell_dc_voltage_a_reciprocal;
m_env.phase_control.phase_b.reference.voltage_cell_relative = m_env.phase_control.phase_b.reference.voltage_cell * m_env.cell_dc_voltage_b_reciprocal;
m_env.phase_control.phase_c.reference.voltage_cell_relative = m_env.phase_control.phase_c.reference.voltage_cell * m_env.cell_dc_voltage_c_reciprocal;
//
if(m_env.timer_stop.is_finished()){
m_voltage_a = FP_ZERO;
m_voltage_b = FP_ZERO;
m_voltage_c = FP_ZERO;
}else{
m_voltage_a = m_env.phase_control.phase_a.reference.voltage_cell_relative;
m_voltage_b = m_env.phase_control.phase_b.reference.voltage_cell_relative;
m_voltage_c = m_env.phase_control.phase_c.reference.voltage_cell_relative;
}
//
}//
#endif
//
//
#if TYPECONTROL == SCALARCONTROL
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
#pragma CODE_SECTION("ramfuncs");
inline void AlgorithmStop::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive)
{
phase.reference.voltage_cell_ampl_real = regulator_active.execute(phase.reference.voltage_ampl_real, phase.feedback.voltage_ampl_real);
phase.reference.voltage_cell_ampl_jm = regulator_reactive.execute(phase.reference.voltage_ampl_jm, phase.feedback.voltage_ampl_jm);
//
phase.reference.voltage_cell_real = phase.reference.voltage_cell_ampl_real * orts.active;
phase.reference.voltage_cell_jm = phase.reference.voltage_cell_ampl_jm * orts.reactive;
phase.reference.voltage_cell_real = phase.reference.voltage_cell_ampl_real * m_orts.active;
phase.reference.voltage_cell_jm = phase.reference.voltage_cell_ampl_jm * m_orts.reactive;
phase.reference.voltage_cell = phase.reference.voltage_cell_real - phase.reference.voltage_cell_jm;
//
phase.reference.voltage_cell_relative = phase.reference.voltage_cell * phase.feedback.voltage_cell_dc_reciprocal;

@ -21,6 +21,9 @@ namespace SYSCTRL
class AlgorithmStop: public SYSCTRL::AlgorithmBase
{
private:
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
SYSCTRL::VectorOrthogonalProjection m_orts;
#endif
SYSCTRL::SystemEnvironment& m_env;
public:
AlgorithmStop(SYSCTRL::SystemEnvironment& env);
@ -33,10 +36,9 @@ public:
private:
void (AlgorithmStop::*_execute)();
void _execute_run();
#if TYPECONTROL == SCALARCONTROL
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
private:
inline void _execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive);
#endif

@ -14,6 +14,9 @@ AlgorithmWork::AlgorithmWork(SYSCTRL::SystemEnvironment& env):
AlgorithmBase(),
m_env(env),
m_reference_switcher(false),
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
m_orts(),
#endif
_execute(&SYSCTRL::AlgorithmWork::_execute_undef)
//
{}//CONSTRUCTOR
@ -52,6 +55,7 @@ void AlgorithmWork::reset()
m_env.regulator_current_limit_c.set_to_high_saturation();
m_env.regulator_current_pfc_c.reset();
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
m_env.regulator_voltage_load_a_active.reset();
m_env.regulator_voltage_load_a_reactive.reset();
@ -60,6 +64,10 @@ void AlgorithmWork::reset()
m_env.regulator_voltage_load_c_active.reset();
m_env.regulator_voltage_load_c_reactive.reset();
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
m_env.regulator_voltage_load_rms.reset();
#endif
//
#endif
@ -175,7 +183,7 @@ void AlgorithmWork::_execute_run()
#if TYPECONTROL == SCALARCONTROL
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
#pragma CODE_SECTION("ramfuncs");
void AlgorithmWork::_execute_run()
{
@ -193,38 +201,101 @@ void AlgorithmWork::_execute_run()
m_env.phase_control.phase_a.reference.current_ampl_pfc_const = m_env.phase_control.common_ref.current_pfc_rms;
m_env.phase_control.phase_b.reference.current_ampl_pfc_const = m_env.phase_control.common_ref.current_pfc_rms;
m_env.phase_control.phase_c.reference.current_ampl_pfc_const = m_env.phase_control.common_ref.current_pfc_rms;
//
#if TYPE_ORTS == TYPE_ORTS_NORMAL
m_orts = m_env.main_abc_orts.phase_a;
_execute_single_phase(m_env.phase_control.phase_a,
m_env.projection_voltage_input_a,
m_env.main_abc_orts.phase_a,
m_env.regulator_current_limit_a,
m_env.regulator_current_pfc_a,
m_env.regulator_dc_a,
m_env.cell_dc_voltage_a,
m_env.regulator_voltage_load_a_active,
m_env.regulator_voltage_load_a_reactive);
//
m_orts = m_env.main_abc_orts.phase_b;
_execute_single_phase(m_env.phase_control.phase_b,
m_env.projection_voltage_input_b,
m_env.main_abc_orts.phase_b,
m_env.regulator_current_limit_b,
m_env.regulator_current_pfc_b,
m_env.regulator_dc_b,
m_env.cell_dc_voltage_b,
m_env.regulator_voltage_load_b_active,
m_env.regulator_voltage_load_b_reactive);
//
m_orts = m_env.main_abc_orts.phase_c;
_execute_single_phase(m_env.phase_control.phase_c,
m_env.projection_voltage_input_c,
m_env.regulator_current_limit_c,
m_env.regulator_current_pfc_c,
m_env.cell_dc_voltage_c,
m_env.regulator_voltage_load_c_active,
m_env.regulator_voltage_load_c_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_BACK
m_orts.active = m_env.main_abc_orts.phase_c.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_c.active;
_execute_single_phase(m_env.phase_control.phase_a,
m_env.projection_voltage_input_a,
m_env.regulator_current_limit_a,
m_env.regulator_current_pfc_a,
m_env.cell_dc_voltage_a,
m_env.regulator_voltage_load_a_active,
m_env.regulator_voltage_load_a_reactive);
//
m_orts.active = m_env.main_abc_orts.phase_a.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_a.active;
_execute_single_phase(m_env.phase_control.phase_b,
m_env.projection_voltage_input_b,
m_env.regulator_current_limit_b,
m_env.regulator_current_pfc_b,
m_env.cell_dc_voltage_b,
m_env.regulator_voltage_load_b_active,
m_env.regulator_voltage_load_b_reactive);
//
m_orts.active = m_env.main_abc_orts.phase_b.reactive;
m_orts.reactive = -m_env.main_abc_orts.phase_b.active;
_execute_single_phase(m_env.phase_control.phase_c,
m_env.projection_voltage_input_c,
m_env.regulator_current_limit_c,
m_env.regulator_current_pfc_c,
m_env.cell_dc_voltage_c,
m_env.regulator_voltage_load_c_active,
m_env.regulator_voltage_load_c_reactive);
#endif
#if TYPE_ORTS == TYPE_ORTS_FORWARD
m_orts.active = -m_env.main_abc_orts.phase_b.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_b.active;
_execute_single_phase(m_env.phase_control.phase_a,
m_env.projection_voltage_input_a,
m_env.regulator_current_limit_a,
m_env.regulator_current_pfc_a,
m_env.cell_dc_voltage_a,
m_env.regulator_voltage_load_a_active,
m_env.regulator_voltage_load_a_reactive);
//
m_orts.active = -m_env.main_abc_orts.phase_c.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_c.active;
_execute_single_phase(m_env.phase_control.phase_b,
m_env.projection_voltage_input_b,
m_env.regulator_current_limit_b,
m_env.regulator_current_pfc_b,
m_env.cell_dc_voltage_b,
m_env.regulator_voltage_load_b_active,
m_env.regulator_voltage_load_b_reactive);
//
m_orts.active = -m_env.main_abc_orts.phase_a.reactive;
m_orts.reactive = m_env.main_abc_orts.phase_a.active;
_execute_single_phase(m_env.phase_control.phase_c,
m_env.projection_voltage_input_c,
m_env.main_abc_orts.phase_c,
m_env.regulator_current_limit_c,
m_env.regulator_current_pfc_c,
m_env.regulator_dc_c,
m_env.cell_dc_voltage_c,
m_env.regulator_voltage_load_c_active,
m_env.regulator_voltage_load_c_reactive);
#endif
m_voltage_a = m_env.phase_control.phase_a.reference.voltage_cell_relative;
m_voltage_b = m_env.phase_control.phase_b.reference.voltage_cell_relative;
@ -233,14 +304,13 @@ void AlgorithmWork::_execute_run()
}//
#endif
//
#if TYPECONTROL == SCALARCONTROL
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
#pragma CODE_SECTION("ramfuncs");
void AlgorithmWork::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::ProjectionAnalogSignalStructure& projection,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_limit,
FLTSYSLIB::PIController& regulator_pfc,
FLTSYSLIB::PIController& regulator_dc,
//FLTSYSLIB::PIController& regulator_dc,
float& dc_volatage,
FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive)
@ -255,8 +325,8 @@ void AlgorithmWork::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl&
if(phase.control_bit.signal.enable_pfc)
{
phase.reference.voltage_pfc = regulator_pfc.execute(phase.reference.current_ampl_pfc_const, phase.feedback.current_ampl_jm) +
regulator_dc.execute(phase.reference.voltage_dc, dc_volatage);
phase.reference.voltage_pfc = regulator_pfc.execute(phase.reference.current_ampl_pfc_const, phase.feedback.current_ampl_jm);
//+ regulator_dc.execute(phase.reference.voltage_dc, dc_volatage);
}
else
{
@ -304,8 +374,8 @@ void AlgorithmWork::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl&
//
}//if
//
phase.reference.voltage_cell_real = phase.reference.voltage_cell_ampl_real * orts.active;
phase.reference.voltage_cell_jm = phase.reference.voltage_cell_ampl_jm * orts.reactive;
phase.reference.voltage_cell_real = phase.reference.voltage_cell_ampl_real * m_orts.active;
phase.reference.voltage_cell_jm = phase.reference.voltage_cell_ampl_jm * m_orts.reactive;
phase.reference.voltage_cell = phase.reference.voltage_cell_real - phase.reference.voltage_cell_jm;
//
phase.reference.voltage_cell_relative = phase.reference.voltage_cell * phase.feedback.voltage_cell_dc_reciprocal;
@ -405,6 +475,42 @@ void AlgorithmWork::_execute_run()
}//
#endif
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS))
#pragma CODE_SECTION("ramfuncs");
void AlgorithmWork::_execute_run()
{
m_env.hardware.ref_control_order = ORDER_START;
//
m_env.phase_control.phase_a.reference.voltage_ampl_real = m_env.reference_voltage_load_rms_intensity.execute((0.5774)*m_env.phase_control.common_ref.voltage_module_rms);
m_env.phase_control.phase_a.reference.voltage_cell_real = m_env.regulator_voltage_load_rms.execute(m_env.phase_control.phase_a.reference.voltage_ampl_real, m_env.rms_voltage_load_module);
//
#if TYPE_ORTS == TYPE_ORTS_NORMAL
m_env.phase_control.phase_a.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_a.active;
m_env.phase_control.phase_b.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_b.active;
m_env.phase_control.phase_c.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_c.active;
#endif
#if TYPE_ORTS == TYPE_ORTS_BACK
m_env.phase_control.phase_a.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_c.reactive;
m_env.phase_control.phase_b.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_a.reactive;
m_env.phase_control.phase_c.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * m_env.main_abc_orts.phase_b.reactive;
#endif
#if TYPE_ORTS == TYPE_ORTS_FORWARD
m_env.phase_control.phase_a.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * (-m_env.main_abc_orts.phase_b.reactive);
m_env.phase_control.phase_b.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * (-m_env.main_abc_orts.phase_c.reactive);
m_env.phase_control.phase_c.reference.voltage_cell = m_env.phase_control.phase_a.reference.voltage_cell_real * (-m_env.main_abc_orts.phase_a.reactive);
#endif
//
m_env.phase_control.phase_a.reference.voltage_cell_relative = m_env.phase_control.phase_a.reference.voltage_cell * m_env.cell_dc_voltage_a_reciprocal;
m_env.phase_control.phase_b.reference.voltage_cell_relative = m_env.phase_control.phase_b.reference.voltage_cell * m_env.cell_dc_voltage_b_reciprocal;
m_env.phase_control.phase_c.reference.voltage_cell_relative = m_env.phase_control.phase_c.reference.voltage_cell * m_env.cell_dc_voltage_c_reciprocal;
//
m_voltage_a = m_env.phase_control.phase_a.reference.voltage_cell_relative;
m_voltage_b = m_env.phase_control.phase_b.reference.voltage_cell_relative;
m_voltage_c = m_env.phase_control.phase_c.reference.voltage_cell_relative;
//
}//
#endif
//
} /* namespace SYSCTRL */

@ -21,7 +21,9 @@ class AlgorithmWork: public SYSCTRL::AlgorithmBase
{
private:
bool m_reference_switcher;
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
SYSCTRL::VectorOrthogonalProjection m_orts;
#endif
private:
SYSCTRL::SystemEnvironment& m_env;
public:
@ -36,14 +38,13 @@ public:
private:
void (AlgorithmWork::*_execute)();
void _execute_run();
#if TYPECONTROL == SCALARCONTROL
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
private:
void _execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::ProjectionAnalogSignalStructure& projection,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_limit,
FLTSYSLIB::PIController& regulator_pfc,
FLTSYSLIB::PIController& regulator_dc,
//FLTSYSLIB::PIController& regulator_dc,
float& dc_volatage,
FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive);

@ -0,0 +1,32 @@
/*
* ExtremumDetection.cpp
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include "SYSCTRL/ExtremumDetection.h"
namespace SYSCTRL
{
//CONSTRUCTOR
ExtremumDetection::ExtremumDetection():
m_max_value(FP_ZERO),
m_min_value(FP_ZERO)
{}//CONSTRUCTOR
#pragma CODE_SECTION("ramfuncs");
void ExtremumDetection::execute(float ia, float ib, float ic)
{
m_max_value = fmaxf(m_max_value, ia);
m_max_value = fmaxf(m_max_value, ib);
m_max_value = fmaxf(m_max_value, ic);
//
m_min_value = fminf(m_min_value, ia);
m_min_value = fminf(m_min_value, ib);
m_min_value = fminf(m_min_value, ic);
//
} // execute
} /* namespace SYSCTRL */

@ -0,0 +1,29 @@
/*
* ExtremumDetection.h
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include <math.h>
#include <stdint.h>
#ifndef SYSCTRL_EXTREMUMDETECTION_H_
#define SYSCTRL_EXTREMUMDETECTION_H_
namespace SYSCTRL
{
class ExtremumDetection
{
private:
float m_max_value;
float m_min_value;
public:
ExtremumDetection();
void execute(float ia, float ib, float ic);
};
} /* namespace SYSCTRL */
#endif /* SYSCTRL_EXTREMUMDETECTION_H_ */

@ -309,10 +309,17 @@ void SystemControl::get_hard_code_configuration()
#if TYPECONTROL == SCALARCONTROL
//
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
m_system_configuration.regulator_voltage_load_active_reactive.gain = 0.25;
m_system_configuration.regulator_voltage_load_active_reactive.time = 40.0e-3;
m_system_configuration.regulator_voltage_load_active_reactive.high_saturation = 950.0;
m_system_configuration.regulator_voltage_load_active_reactive.low_saturation = -950.0;
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
m_system_configuration.regulator_voltage_load_rms.time = 20.0e-3;
m_system_configuration.regulator_voltage_load_rms.low_saturation = 0.0;
m_system_configuration.regulator_voltage_load_rms.time = 500.0;
#endif
//
m_system_configuration.regulator_current_limit.gain = 1.0;
m_system_configuration.regulator_current_limit.time = 1.0;

@ -1,32 +0,0 @@
/*
* MaxDetection.cpp
*
* Created on: 23 ôåâð. 2023 ã.
* Author: Oleg
*/
#include <SYSCTRL/MaxDetection.h>
namespace SYSCTRL
{
MaxDetection::MaxDetection():
max_value(FP_ZERO)
{
// TODO Auto-generated constructor stub
}
void MaxDetection::execute(float ia, float ib, float ic)
{
if(ia > max_value)
{max_value = ia;}
if(ib > max_value)
{max_value = ib;}
if(ic > max_value)
{max_value = ic;}
} // execute
} /* namespace SYSCTRL */

@ -1,28 +0,0 @@
/*
* MaxDetection.h
*
* Created on: 23 ôåâð. 2023 ã.
* Author: Oleg
*/
#include <math.h>
#include <stdint.h>
#ifndef SYSCTRL_MAXDETECTION_H_
#define SYSCTRL_MAXDETECTION_H_
namespace SYSCTRL
{
class MaxDetection
{
public:
MaxDetection();
void execute(float ia, float ib, float ic);
private:
float max_value;
};
} /* namespace SYSCTRL */
#endif /* SYSCTRL_MAXDETECTION_H_ */

@ -40,13 +40,21 @@ namespace SYSCTRL
#if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_DIFFICULT
#define HEADER_CLASS_ID ((int16_t)(0x0001))
#define HEADER_PART_ID ((int16_t)(0x0010))
#define HEADER_SOFTWARE_VERSION ((int16_t)(0x0796))
#define FOOTER_FOOT ((int16_t)(0x05A5))
#endif
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
#define HEADER_CLASS_ID ((int16_t)(0x0001))
#define HEADER_PART_ID ((int16_t)(0x0001))
#define HEADER_SOFTWARE_VERSION ((int16_t)(0x0001))
#define FOOTER_FOOT ((int16_t)(0x0001))
#endif
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_SIMPLE
#define HEADER_CLASS_ID ((int16_t)(0x4005))
@ -66,10 +74,10 @@ namespace SYSCTRL
#if TYPECONTROL == DIRECTREVERSECONTROL
#define HEADER_CLASS_ID ((int16_t)(0x0000))
#define HEADER_PART_ID ((int16_t)(0x0000))
#define HEADER_SOFTWARE_VERSION ((int16_t)(0x0000))
#define FOOTER_FOOT ((int16_t)(0x0000))
#define HEADER_CLASS_ID ((int16_t)(0x1F01))
#define HEADER_PART_ID ((int16_t)(0x1F10))
#define HEADER_SOFTWARE_VERSION ((int16_t)(0x1F11))
#define FOOTER_FOOT ((int16_t)(0x141A))
#endif
@ -284,13 +292,19 @@ struct SystemControlConfiguration
#if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
FLTSYSLIB::PIControllerConfiguration regulator_voltage_load_active_reactive;
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
FLTSYSLIB::FilterConfiguration reference_voltage_load_rms_intensity;
FLTSYSLIB::IControllerConfiguration regulator_voltage_load_rms;
#endif
FLTSYSLIB::PIControllerConfiguration regulator_current_limit;
FLTSYSLIB::PIControllerConfiguration regulator_current_pfc;
FLTSYSLIB::PIControllerConfiguration current_regulator_active;
FLTSYSLIB::PIControllerConfiguration current_regulator_reactive;
FLTSYSLIB::PIControllerConfiguration current_referencer;
FLTSYSLIB::PIControllerConfiguration regulator_dc_voltage;
//FLTSYSLIB::PIControllerConfiguration regulator_dc_voltage;
#endif
@ -393,13 +407,19 @@ struct SystemControlConfiguration
#endif
#if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
regulator_voltage_load_active_reactive(),
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
reference_voltage_load_rms_intensity(),
regulator_voltage_load_rms(),
#endif
regulator_current_limit(),
regulator_current_pfc(),
current_regulator_active(),
current_regulator_reactive(),
current_referencer(),
regulator_dc_voltage(),
//regulator_dc_voltage(),
#endif
#if TYPECONTROL == DIRECTREVERSECONTROL
@ -442,7 +462,7 @@ struct SystemControlConfiguration
regulator_current_limit.low_saturation = FP_ZERO;
regulator_current_pfc.high_saturation = reference_voltage_rms * 0.57735;
regulator_current_pfc.low_saturation = -reference_voltage_rms * 0.57735;
regulator_dc_voltage.low_saturation = -reference_voltage_rms * 0.57735;
//regulator_dc_voltage.low_saturation = -reference_voltage_rms * 0.57735;
#endif

@ -479,6 +479,8 @@ void SystemControl::setup()
#endif
#if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
m_environment.regulator_voltage_load_a_active.setup(m_environment.time_sample_control);
m_environment.regulator_voltage_load_a_reactive.setup(m_environment.time_sample_control);
_status &= m_environment.regulator_voltage_load_a_active.compare(FLTSYSLIB::PIController::CONFIGURATE);
@ -493,6 +495,13 @@ void SystemControl::setup()
m_environment.regulator_voltage_load_c_reactive.setup(m_environment.time_sample_control);
_status &= m_environment.regulator_voltage_load_c_active.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.regulator_voltage_load_c_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE);
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
m_environment.reference_voltage_load_rms_intensity.setup(m_environment.time_sample_control);
m_environment.regulator_voltage_load_rms.setup(m_environment.time_sample_control);
_status &= m_environment.reference_voltage_load_rms_intensity.compare(FLTSYSLIB::Filter::CONFIGURATE);
_status &= m_environment.regulator_voltage_load_rms.compare(FLTSYSLIB::IController::CONFIGURATE);
#endif
//
m_environment.regulator_current_limit_a.setup(m_environment.time_sample_control);
m_environment.regulator_current_pfc_a.setup(m_environment.time_sample_control);
@ -539,12 +548,12 @@ void SystemControl::setup()
_status &= m_environment.current_referencer_c_active.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.current_referencer_c_reactive.compare(FLTSYSLIB::PIController::CONFIGURATE);
//
m_environment.regulator_dc_a.setup(m_environment.time_sample_control);
m_environment.regulator_dc_b.setup(m_environment.time_sample_control);
m_environment.regulator_dc_c.setup(m_environment.time_sample_control);
_status &= m_environment.regulator_dc_a.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::CONFIGURATE);
//m_environment.regulator_dc_a.setup(m_environment.time_sample_control);
//m_environment.regulator_dc_b.setup(m_environment.time_sample_control);
//m_environment.regulator_dc_c.setup(m_environment.time_sample_control);
//_status &= m_environment.regulator_dc_a.compare(FLTSYSLIB::PIController::CONFIGURATE);
//_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::CONFIGURATE);
//_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::CONFIGURATE);
#endif
//
//<>
@ -1088,6 +1097,7 @@ void SystemControl::configure()
#endif
#if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
m_environment.regulator_voltage_load_a_reactive.configure(m_system_configuration.regulator_voltage_load_active_reactive);
_status &= m_environment.regulator_voltage_load_a_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL);
m_environment.regulator_voltage_load_b_reactive.configure(m_system_configuration.regulator_voltage_load_active_reactive);
@ -1102,8 +1112,13 @@ void SystemControl::configure()
_status &= m_environment.regulator_voltage_load_b_active.compare(FLTSYSLIB::PIController::OPERATIONAL);
m_environment.regulator_voltage_load_c_active.configure(m_system_configuration.regulator_voltage_load_active_reactive);
_status &= m_environment.regulator_voltage_load_c_active.compare(FLTSYSLIB::PIController::OPERATIONAL);
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
m_environment.reference_voltage_load_rms_intensity.configure(m_system_configuration.reference_voltage_load_rms_intensity);
m_environment.regulator_voltage_load_rms.configure(m_system_configuration.regulator_voltage_load_rms);
_status &= m_environment.reference_voltage_load_rms_intensity.compare(FLTSYSLIB::Filter::OPERATIONAL);
_status &= m_environment.regulator_voltage_load_rms.compare(FLTSYSLIB::IController::OPERATIONAL);
#endif
//
//m_system_configuration.regulator_current_limit.high_saturation = m_system_configuration.reference_voltage_rms;
//m_system_configuration.regulator_current_limit.low_saturation = FP_ZERO;
@ -1156,12 +1171,12 @@ void SystemControl::configure()
_status &= m_environment.current_referencer_c_reactive.compare(FLTSYSLIB::PIController::OPERATIONAL);
//
//m_system_configuration.regulator_dc_voltage.low_saturation = - m_environment.phase_control.common_ref.voltage_module_rms;
m_environment.regulator_dc_a.configure(m_system_configuration.regulator_dc_voltage);
m_environment.regulator_dc_b.configure(m_system_configuration.regulator_dc_voltage);
m_environment.regulator_dc_c.configure(m_system_configuration.regulator_dc_voltage);
_status &= m_environment.regulator_dc_a.compare(FLTSYSLIB::PIController::OPERATIONAL);
_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::OPERATIONAL);
_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::OPERATIONAL);
//m_environment.regulator_dc_a.configure(m_system_configuration.regulator_dc_voltage);
//m_environment.regulator_dc_b.configure(m_system_configuration.regulator_dc_voltage);
//m_environment.regulator_dc_c.configure(m_system_configuration.regulator_dc_voltage);
//_status &= m_environment.regulator_dc_a.compare(FLTSYSLIB::PIController::OPERATIONAL);
//_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::OPERATIONAL);
//_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::OPERATIONAL);
#endif
//<>

@ -10,6 +10,7 @@
#include <math.h>
#include <stdint.h>
#include <SYSCTRL/ExtremumDetection.h> // for debug!!!
#include "framework.h"
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
@ -23,7 +24,6 @@
#include "SYSCTRL/VectorSpinner.h"
#include "SYSCTRL/TypeControl.h"
#include "SYSCTRL/MaxDetection.h" // for debug!!!
#ifndef TRAPSWRST
@ -49,10 +49,10 @@ private:
SYSCTRL::AlgorithmContext::algorithm_t m_algorithm_executed;
bool turnQ1On;
private:
// for debug!!!
MaxDetection IcellMax;
MaxDetection IloadMax;
MaxDetection IinputMax;
// for debug!!! (
ExtremumDetection m_icell_extremum;
ExtremumDetection m_iload_extremum;
ExtremumDetection m_iinput_extremum;
//Decompose Signals
SYSCTRL::SignalDecomposeFIV m_decompose_voltage_input_a;
SYSCTRL::SignalDecomposeFIV m_decompose_voltage_input_b;

@ -56,16 +56,18 @@ void SystemControl::_additional_operational()
m_environment.rms_voltage_load_ca = m_rms_filter_voltage_load_c.execute(m_environment.voltage_load_c - m_environment.voltage_load_a);
//<>
IcellMax.execute(m_environment.current_cell_a, m_environment.current_cell_b, m_environment.current_cell_c); // for debug!!!
IinputMax.execute(m_environment.current_input_a, m_environment.current_input_b, m_environment.current_input_c); // for debug!!!
IloadMax.execute(m_environment.current_load_a, m_environment.current_load_b, m_environment.current_load_c); // for debug!!!
m_icell_extremum.execute(m_environment.current_cell_a, m_environment.current_cell_b, m_environment.current_cell_c); // for debug!!!
m_iinput_extremum.execute(m_environment.current_input_a, m_environment.current_input_b, m_environment.current_input_c); // for debug!!!
m_iload_extremum.execute(m_environment.current_load_a, m_environment.current_load_b, m_environment.current_load_c); // for debug!!!
//
// RMS Module
//
// xrms = sqrt((xa*xa + xb*xb + xc*xc)/3)
SYSCTRL::SystemControl::_rms_module_calculator(m_environment.voltage_grid_a, m_environment.voltage_grid_b, m_environment.voltage_grid_c, m_environment.rms_voltage_input_module);
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC)) || (TYPECONTROL == VECTORCONTROL) || (TYPECONTROL == DIRECTREVERSECONTROL)
SYSCTRL::SystemControl::_rms_module_calculator(m_environment.voltage_load_a, m_environment.voltage_load_b, m_environment.voltage_load_c, m_environment.rms_voltage_load_module);
#endif
SYSCTRL::SystemControl::_rms_module_calculator(m_environment.current_input_a, m_environment.current_input_b, m_environment.current_input_c, m_environment.rms_current_input_module);
SYSCTRL::SystemControl::_rms_module_calculator(m_environment.current_load_a, m_environment.current_load_b, m_environment.current_load_c, m_environment.rms_current_load_module);
SYSCTRL::SystemControl::_rms_module_calculator(m_environment.current_bypass_a, m_environment.current_bypass_b, m_environment.current_bypass_c, m_environment.rms_current_bypass_module);
@ -497,14 +499,12 @@ void SystemControl::_execute_operational()
!m_environment.system_fault.boolbit.b0 &
m_environment.input_discrete.signal.hw_dvr_ready &
m_environment.input_discrete.signal.bypass_ready &
//(bool)m_environment.external_q1_on.signal.is_on);
turnQ1On);
(bool)m_environment.external_km1_on.signal.is_on);
SYSCTRL::TriggerRegister::setReset(m_km1_external_command_trigger,
(m_environment.system_fault.boolbit.b0 & m_environment.auxiliary_km2.state.signal.is_on) |
!m_environment.input_discrete.signal.hw_dvr_ready |
!m_environment.input_discrete.signal.bypass_ready |
//(bool)m_environment.external_q1_off.signal.is_on);
!turnQ1On);
(bool)m_environment.external_km1_off.signal.is_on);
SYSCTRL::TriggerRegister::execute_reset_priority(m_km1_external_command_trigger);
//<>
//
@ -527,12 +527,14 @@ void SystemControl::_execute_operational()
!m_environment.system_fault.boolbit.b0 &
m_environment.input_discrete.signal.hw_dvr_ready &
m_environment.input_discrete.signal.bypass_ready &
(bool)m_environment.external_q1_on.signal.is_on);
//(bool)m_environment.external_q1_on.signal.is_on);
turnQ1On);
SYSCTRL::TriggerRegister::setReset(m_q1_external_command_trigger,
(m_environment.system_fault.boolbit.b0 & m_environment.auxiliary_km2.state.signal.is_on) |
!m_environment.input_discrete.signal.hw_dvr_ready |
!m_environment.input_discrete.signal.bypass_ready |
(bool)m_environment.external_q1_off.signal.is_on);
//(bool)m_environment.external_q1_off.signal.is_on);
!turnQ1On);
SYSCTRL::TriggerRegister::execute_reset_priority(m_q1_external_command_trigger);
//<>
@ -626,6 +628,16 @@ void SystemControl::_execute_operational()
SYSCTRL::TriggerRegister::execute_set_priority(m_system_fault_trigger);
m_environment.system_fault.boolbit.b0 = (bool)m_system_fault_trigger.signal.is_on;
if (m_environment.system_fault.boolbit.b0 && m_environment.trig) // for debug!!!
{
m_environment.trig = false;
m_environment.fault_trig = m_environment.system_faults_register;
m_environment.fault_trig.phase_a.all |= m_phase_alert_monitor.status.phase_a.fault.all;
m_environment.fault_trig.phase_b.all |= m_phase_alert_monitor.status.phase_b.fault.all;
m_environment.fault_trig.phase_c.all |= m_phase_alert_monitor.status.phase_c.fault.all;
} // for debug!!!
//
@ -923,8 +935,8 @@ void SystemControl::_execute_operational()
m_environment.twisted_abc_orts.phase_b.reactive,
m_environment.twisted_abc_orts.phase_c.reactive);
//
//m_environment.main_abc_orts = m_environment.pll_abc_orts;
m_environment.main_abc_orts = m_environment.twisted_abc_orts;
m_environment.main_abc_orts = m_environment.pll_abc_orts;
//m_environment.main_abc_orts = m_environment.twisted_abc_orts;
//
FLTSYSLIB::Transformation::clarke_forward(m_environment.main_abc_orts.phase_a.active,
m_environment.main_abc_orts.phase_b.active,
@ -1137,6 +1149,16 @@ void SystemControl::_execute_operational()
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS))
//
// RMS Module
//
// xrms = sqrt((xa*xa + xb*xb + xc*xc)/3)
SYSCTRL::SystemControl::_rms_module_calculator(m_environment.voltage_load_a, m_environment.voltage_load_b, m_environment.voltage_load_c, m_environment.rms_voltage_load_module);
#endif
/*
harmonica_multiplyer(m_environment.main_ab_orts.active, m_environment.main_ab_orts.reactive,
m_environment.main_ab_orts.active, m_environment.main_ab_orts.reactive,
@ -1324,7 +1346,7 @@ void SystemControl::_execute_operational()
//
// Scale Compute
//
/*
if(m_environment.scale_compute_voltage_command.bit.start == 1)
{
m_environment.scale_compute_voltage_command.bit.start = 0;
@ -1332,7 +1354,7 @@ void SystemControl::_execute_operational()
m_environment.scale_compute_voltage_load.fix();
//
}//if
*/
//
/*
if(m_environment.scale_compute_current_command.bit.start == 1)

@ -1392,10 +1392,18 @@ void SystemControl::_modbusrtu_rubus_configurate()
#if TYPECONTROL == SCALARCONTROL
//
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
m_rubus_data.add_register_float(375, 0, &m_system_configuration.regulator_voltage_load_active_reactive.gain);
m_rubus_data.add_register_float(376, 0, &m_system_configuration.regulator_voltage_load_active_reactive.time);
m_rubus_data.add_register_float(377, 0, &m_system_configuration.regulator_voltage_load_active_reactive.high_saturation);
m_rubus_data.add_register_float(378, 0, &m_system_configuration.regulator_voltage_load_active_reactive.low_saturation);
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
m_rubus_data.add_register_float(375, 0, &m_system_configuration.reference_voltage_load_rms_intensity.time);
m_rubus_data.add_register_float(376, 0, &m_system_configuration.regulator_voltage_load_rms.time);
m_rubus_data.add_register_float(377, 0, &m_system_configuration.regulator_voltage_load_rms.high_saturation);
m_rubus_data.add_register_float(378, 0, &m_system_configuration.regulator_voltage_load_rms.low_saturation);
#endif
//
m_rubus_data.add_register_float(379, 0, &m_system_configuration.regulator_current_limit.gain);
m_rubus_data.add_register_float(380, 0, &m_system_configuration.regulator_current_limit.time);

@ -291,9 +291,17 @@ void SystemControl::get_hvcell_dc_voltage()
//m_environment.cell_dc_voltage_b_reciprocal = hvcell_dc_voltage_reciprocal(m_environment.cell_dc_voltage_b_average);
//m_environment.cell_dc_voltage_c_reciprocal = hvcell_dc_voltage_reciprocal(m_environment.cell_dc_voltage_c_average);
m_environment.cell_dc_voltage_a_reciprocal = 1.0/5.0/900.0;
m_environment.cell_dc_voltage_b_reciprocal = 1.0/5.0/900.0;
m_environment.cell_dc_voltage_c_reciprocal = 1.0/5.0/900.0;
#if (TYPECONTROL == SCALARCONTROL) && (SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC)
m_environment.cell_dc_voltage_a_reciprocal = 1.0/REGULATOR_VOLTAGE_ABC_SATURATION;
m_environment.cell_dc_voltage_b_reciprocal = 1.0/REGULATOR_VOLTAGE_ABC_SATURATION;
m_environment.cell_dc_voltage_c_reciprocal = 1.0/REGULATOR_VOLTAGE_ABC_SATURATION;
#endif
#if (TYPECONTROL == SCALARCONTROL) && (SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS)
m_environment.cell_dc_voltage_a_reciprocal = 1.0/REGULATOR_VOLTAGE_RMS_SATURATION;
m_environment.cell_dc_voltage_b_reciprocal = 1.0/REGULATOR_VOLTAGE_RMS_SATURATION;
m_environment.cell_dc_voltage_c_reciprocal = 1.0/REGULATOR_VOLTAGE_RMS_SATURATION;
#endif
#if TYPECONTROL == SCALARCONTROL
m_environment.phase_control.phase_a.feedback.voltage_cell_dc_reciprocal = m_environment.cell_dc_voltage_a_reciprocal;

@ -159,16 +159,41 @@ union BoolRegister
#define REGULATORVOLTAGETIME DECOMPOSEVOLTAGETIME_5HZ
#endif
#ifndef REGULATOR_VOLTAGE_RMS_TIME
//#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/50.0)
//#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/40.0)
//#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/30.0)
//#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/25.0)
//#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/20.0)
//#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/10.0)
//#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/5.0)
#define REGULATOR_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/1.0)
#endif
#ifndef REFERENCE_INTENSITY_VOLTAGE_RMS_TIME
//#define REFERENCE_INTENSITY_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/30.0)
//#define REFERENCE_INTENSITY_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/20.0)
//#define REFERENCE_INTENSITY_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/10.0)
#define REFERENCE_INTENSITY_VOLTAGE_RMS_TIME (float)(1.0/2.0/FP_PI/5.0)
#endif
#ifndef REGULATOR_VOLTAGE_ABC_SATURATION
#define REGULATOR_VOLTAGE_ABC_SATURATION (float)(1800.0)
//#define REGULATOR_VOLTAGE_ABC_SATURATION (float)(4500.0)
#endif
#ifndef REGULATOR_VOLTAGE_RMS_SATURATION
//#define REGULATOR_VOLTAGE_RMS_SATURATION (float)(1800.0)
#define REGULATOR_VOLTAGE_RMS_SATURATION (float)(4500.0)
#endif
#define CURRENT_LIMIT_RMS (float)(100.0)
#define CURRENT_PFC_RMS (float)(0.0)
#define GRID_VOLTAGE_REFERENCE (float)(6050.0) //6000
#define GRID_VOLTAGE_REFERENCE (float)(6100.0) //6000
#define GRID_VOLTAGE_HIGH_LIMIT (float)(6600.0)
#define CELL_DC_VOLTAGE_REFERENCE (float)(5.0*950.0)

@ -423,6 +423,8 @@ SystemEnvironment::SystemEnvironment():
enable_work_is_off(),
enable_work_reset(),
system_faults_register(),
fault_trig(),
trig(true),
external_command_word(),
external_start(),
@ -547,12 +549,18 @@ SystemEnvironment::SystemEnvironment():
//
//
#if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
regulator_voltage_load_a_active(),
regulator_voltage_load_a_reactive(),
regulator_voltage_load_b_active(),
regulator_voltage_load_b_reactive(),
regulator_voltage_load_c_active(),
regulator_voltage_load_c_reactive(),
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
reference_voltage_load_rms_intensity(),
regulator_voltage_load_rms(),
#endif
//
regulator_current_limit_a(),
regulator_current_pfc_a(),
@ -574,9 +582,9 @@ SystemEnvironment::SystemEnvironment():
current_referencer_c_active(),
current_referencer_c_reactive(),
//
regulator_dc_a(),
regulator_dc_b(),
regulator_dc_c(),
//regulator_dc_a(),
//regulator_dc_b(),
//regulator_dc_c(),
#endif
#if TYPECONTROL == DIRECTREVERSECONTROL

@ -915,6 +915,8 @@ public:
SYSCTRL::BoolRegister enable_work_is_off;
SYSCTRL::BoolRegister enable_work_reset;
SYSCTRL::SystemFaultsRegister system_faults_register;
SYSCTRL::SystemFaultsRegister fault_trig; // for debug!!!
bool trig; // for debug!!!
//External Command
@ -1082,6 +1084,7 @@ public:
#if TYPECONTROL == SCALARCONTROL
//
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
FLTSYSLIB::PIController regulator_voltage_load_a_active;
FLTSYSLIB::PIController regulator_voltage_load_a_reactive;
//
@ -1090,6 +1093,11 @@ public:
//
FLTSYSLIB::PIController regulator_voltage_load_c_active;
FLTSYSLIB::PIController regulator_voltage_load_c_reactive;
#endif
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_RMS
FLTSYSLIB::Filter reference_voltage_load_rms_intensity;
FLTSYSLIB::IController regulator_voltage_load_rms;
#endif
//
//Load Current Regulators
FLTSYSLIB::PIController regulator_current_limit_a;
@ -1122,9 +1130,9 @@ public:
FLTSYSLIB::PIController current_referencer_c_reactive;
//
//POWER CELL DC Voltage Regulator
FLTSYSLIB::PIController regulator_dc_a;
FLTSYSLIB::PIController regulator_dc_b;
FLTSYSLIB::PIController regulator_dc_c;
//FLTSYSLIB::PIController regulator_dc_a;
//FLTSYSLIB::PIController regulator_dc_b;
//FLTSYSLIB::PIController regulator_dc_c;
//
#endif

@ -23,8 +23,8 @@
#ifndef TYPECONTROL
//#define TYPECONTROL VECTORCONTROL
//#define TYPECONTROL SCALARCONTROL
#define TYPECONTROL DIRECTREVERSECONTROL
#define TYPECONTROL SCALARCONTROL
//#define TYPECONTROL DIRECTREVERSECONTROL
#endif
@ -61,5 +61,36 @@
// SCALAR CONTROL
#ifndef SCALARCONTROL_VOLTAGEREGULATOR_ABC
#define SCALARCONTROL_VOLTAGEREGULATOR_ABC 7
#endif
#ifndef SCALARCONTROL_VOLTAGEREGULATOR_RMS
#define SCALARCONTROL_VOLTAGEREGULATOR_RMS 8
#endif
#ifndef SCALARCONTROL_VOLTAGEREGULATOR
//#define SCALARCONTROL_VOLTAGEREGULATOR SCALARCONTROL_VOLTAGEREGULATOR_ABC
#define SCALARCONTROL_VOLTAGEREGULATOR SCALARCONTROL_VOLTAGEREGULATOR_RMS
#endif
#ifndef TYPE_ORTS_NORMAL
#define TYPE_ORTS_NORMAL 10
#endif
#ifndef TYPE_ORTS_BACK
#define TYPE_ORTS_BACK 11
#endif
#ifndef TYPE_ORTS_FORWARD
#define TYPE_ORTS_FORWARD 12
#endif
#ifndef TYPE_ORTS
#define TYPE_ORTS TYPE_ORTS_NORMAL
//#define TYPE_ORTS TYPE_ORTS_BACK
//#define TYPE_ORTS TYPE_ORTS_FORWARD
#endif
#endif /* SYSCTRL_TYPECONTROL_H_ */

Loading…
Cancel
Save