0322 Works

1000Hz
Oleg 7 months ago
parent cf58cd5b77
commit 141305c856

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

@ -29,18 +29,18 @@
<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/> <listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/> <listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
</option> </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"/> <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"> <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.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" 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.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" 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.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" 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.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" 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_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" 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.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" 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 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" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath"> <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="${CG_TOOL_ROOT}/include"/>
<listOptionValue builtIn="false" value="${SRC_ROOT}/sys/include"/> <listOptionValue builtIn="false" value="${SRC_ROOT}/sys/include"/>
<listOptionValue builtIn="false" value="${SRC_ROOT}/DSP2833x_headers/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="${WORKSPACE_LOC}/FLOATPOINTLIB"/>
<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/> <listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
</option> </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 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" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE" valueType="definedSymbols"> <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="_DEBUG"/>
<listOptionValue builtIn="false" value="LARGE_MODEL"/> <listOptionValue builtIn="false" value="LARGE_MODEL"/>
</option> </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.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" 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.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" 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.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" 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.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" 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.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" 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.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" 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.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__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__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__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"/> <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>
<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"> <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.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" 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.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" 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.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" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.HEAP_SIZE" value="0x100" 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" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY" valueType="libs"> <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="libc.a"/>
<listOptionValue builtIn="false" value="${UTILITIES}/flash_api/2833x/28335/v210/lib/Flash28335_API_V210.lib"/> <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.lib"/>
<listOptionValue builtIn="false" value="rts2800_fpu32_fast_supplement.lib"/> <listOptionValue builtIn="false" value="rts2800_fpu32_fast_supplement.lib"/>
<listOptionValue builtIn="false" value="${WORKSPACE_LOC}/FLOATPOINTLIB/Debug/FLOATPOINTLIB.lib"/> <listOptionValue builtIn="false" value="${WORKSPACE_LOC}/FLOATPOINTLIB/Debug/FLOATPOINTLIB.lib"/>
</option> </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="${CG_TOOL_ROOT}/lib"/>
<listOptionValue builtIn="false" value="${UTILITIES}/flash_api/2833x/28335/v210/lib"/> <listOptionValue builtIn="false" value="${UTILITIES}/flash_api/2833x/28335/v210/lib"/>
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/> <listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
@ -87,9 +87,9 @@
<listOptionValue builtIn="false" value="${FAST_FPU32_SUPPLEMENT}/lib"/> <listOptionValue builtIn="false" value="${FAST_FPU32_SUPPLEMENT}/lib"/>
<listOptionValue builtIn="false" value="${WORKSPACE_LOC}/FLOATPOINTLIB/Debug"/> <listOptionValue builtIn="false" value="${WORKSPACE_LOC}/FLOATPOINTLIB/Debug"/>
</option> </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.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" 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.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" 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.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__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__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"/> <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"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>DVR500Framework</name> <name>DVR1kFramework</name>
<comment></comment> <comment></comment>
<projects> <projects>
</projects> </projects>
@ -138,7 +138,7 @@
</variable> </variable>
<variable> <variable>
<name>ORIGINAL_PROJECT_ROOT</name> <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>
<variable> <variable>
<name>SRC_ROOT</name> <name>SRC_ROOT</name>

@ -53,9 +53,9 @@ void FRAMDATABASE::register_configuration_parameters(SYSCTRL::SystemControlConfi
// //
// Scale Analog Signals // 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_a, 0.171899959);// 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_b, 0.171521276);//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_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_a, 0.0057266783);
add_float( 0, &sys_config->scale_current_input_b, 0.00571648451); 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_b, 0.00967073813);//0.00667640707;
add_float( 0, &sys_config->scale_current_cell_c, 0.00962774921);//0.00666095456; 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_a, 0.174201488);//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_b, 0.172130167);//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_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_a, 0.00949461199);//0.00668919506;
add_float( 0, &sys_config->scale_current_load_b, 0.00953965727);//0.00669770781; 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 TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_DIFFICULT #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.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.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.high_saturation, REGULATOR_VOLTAGE_ABC_SATURATION);
add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -1800.0); add_float( 0, &sys_config->regulator_voltage_load_active_reactive.low_saturation, -REGULATOR_VOLTAGE_ABC_SATURATION);
#endif #endif
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_SIMPLE #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.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.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.high_saturation, REGULATOR_VOLTAGE_ABC_SATURATION); // 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.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 #endif
// //
add_float( 0, &sys_config->regulator_current_limit.gain, 1.0); add_float( 0, &sys_config->regulator_current_limit.gain, 1.0);
add_float( 0, &sys_config->regulator_current_limit.time, 5.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.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->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.gain, 0.17); // 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.time, 0.08);
add_float( 0, &sys_config->current_regulator_active.high_saturation, 500.0); 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_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.gain, 0.17); // 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.time, 0.08);
add_float( 0, &sys_config->current_regulator_reactive.high_saturation, 500.0); 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_regulator_reactive.low_saturation, -500.0);
// //
add_float( 0, &sys_config->current_referencer.gain, 1.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.time, 0.160);
add_float( 0, &sys_config->current_referencer.high_saturation, 20.0); add_float( 0, &sys_config->current_referencer.high_saturation, 57.8);
add_float( 0, &sys_config->current_referencer.low_saturation, -20.0); 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.gain, 0.05);
add_float( 0, &sys_config->regulator_dc_voltage.time, 800.0e-3); //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.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.low_saturation, -GRID_VOLTAGE_REFERENCE * 0.57735);
#endif #endif
//<> //<>

Binary file not shown.

@ -467,9 +467,9 @@ void AlgorithmContext::_set_work_exe()
#if TYPECONTROL == SCALARCONTROL #if TYPECONTROL == SCALARCONTROL
// //
m_env.regulator_dc_a.reset(); //m_env.regulator_dc_a.reset();
m_env.regulator_dc_b.reset(); //m_env.regulator_dc_b.reset();
m_env.regulator_dc_c.reset(); //m_env.regulator_dc_c.reset();
// //
m_env.regulator_current_limit_a.set_to_high_saturation(); m_env.regulator_current_limit_a.set_to_high_saturation();
m_env.regulator_current_pfc_a.reset(); 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_limit_c.set_to_high_saturation();
m_env.regulator_current_pfc_c.reset(); 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_active.reset();
m_env.regulator_voltage_load_a_reactive.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_active.reset();
m_env.regulator_voltage_load_c_reactive.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 #endif

@ -12,6 +12,9 @@ namespace SYSCTRL
//CONSTRUCTOR //CONSTRUCTOR
AlgorithmStart::AlgorithmStart(SYSCTRL::SystemEnvironment& env): AlgorithmStart::AlgorithmStart(SYSCTRL::SystemEnvironment& env):
SYSCTRL::AlgorithmBase(), SYSCTRL::AlgorithmBase(),
#if TYPECONTROL == SCALARCONTROL
m_orts(),
#endif
m_env(env), m_env(env),
#if TYPECONTROL == VECTORCONTROL #if TYPECONTROL == VECTORCONTROL
m_reference_zero(FP_ZERO), 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; m_env.start_control.phase_a.feedback.current_cell_reactive = m_env.projection_current_cell_a.reactive;
// //
//-control //-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, _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.cell_dc_voltage_a_reciprocal,
m_env.current_referencer_a_active, m_env.current_referencer_a_active,
m_env.current_referencer_a_reactive, m_env.current_referencer_a_reactive,
m_env.current_regulator_a_active, m_env.current_regulator_a_active,
m_env.current_regulator_a_reactive); m_env.current_regulator_a_reactive);
#endif
//<> //<>
//**** Phase B *** //**** 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; m_env.start_control.phase_b.feedback.current_cell_reactive = m_env.projection_current_cell_b.reactive;
// //
//-control //-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, _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.cell_dc_voltage_b_reciprocal,
m_env.current_referencer_b_active, m_env.current_referencer_b_active,
m_env.current_referencer_b_reactive, m_env.current_referencer_b_reactive,
m_env.current_regulator_b_active, m_env.current_regulator_b_active,
m_env.current_regulator_b_reactive); 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; m_env.start_control.phase_c.feedback.current_cell_reactive = m_env.projection_current_cell_c.reactive;
// //
//-control //-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, _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.cell_dc_voltage_c_reciprocal,
m_env.current_referencer_c_active, m_env.current_referencer_c_active,
m_env.current_referencer_c_reactive, m_env.current_referencer_c_reactive,
m_env.current_regulator_c_active, m_env.current_regulator_c_active,
m_env.current_regulator_c_reactive); m_env.current_regulator_c_reactive);
#endif
//<> //<>
m_voltage_a = m_env.start_control.phase_a.reference.voltage_cell_relative; m_voltage_a = m_env.start_control.phase_a.reference.voltage_cell_relative;
@ -221,7 +291,6 @@ void AlgorithmStart::_execute_run()
#if TYPECONTROL == SCALARCONTROL #if TYPECONTROL == SCALARCONTROL
#pragma CODE_SECTION("ramfuncs"); #pragma CODE_SECTION("ramfuncs");
inline void AlgorithmStart::_execute_single_phase(SYSCTRL::AlgorithmStartSinglePhaseControl& phase, inline void AlgorithmStart::_execute_single_phase(SYSCTRL::AlgorithmStartSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
float dc_voltage_reciprocal, float dc_voltage_reciprocal,
FLTSYSLIB::PIController& referencer_active, FLTSYSLIB::PIController& referencer_active,
FLTSYSLIB::PIController& referencer_reactive, 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_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_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_active = phase.reference.voltage_cell_ampl_active * m_orts.active;
phase.reference.voltage_cell_reactive = phase.reference.voltage_cell_ampl_reactive * orts.reactive; 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 = phase.reference.voltage_cell_active - phase.reference.voltage_cell_reactive;
phase.reference.voltage_cell_relative = phase.reference.voltage_cell * dc_voltage_reciprocal; phase.reference.voltage_cell_relative = phase.reference.voltage_cell * dc_voltage_reciprocal;

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

@ -12,6 +12,9 @@ namespace SYSCTRL
//CONSTRUCTOR //CONSTRUCTOR
AlgorithmStop::AlgorithmStop(SYSCTRL::SystemEnvironment& env): AlgorithmStop::AlgorithmStop(SYSCTRL::SystemEnvironment& env):
SYSCTRL::AlgorithmBase(), SYSCTRL::AlgorithmBase(),
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
m_orts(),
#endif
m_env(env), m_env(env),
_execute(&SYSCTRL::AlgorithmStop::_execute_undef) _execute(&SYSCTRL::AlgorithmStop::_execute_undef)
// //
@ -99,7 +102,7 @@ void AlgorithmStop::_execute_run()
}// }//
#endif #endif
// //
#if TYPECONTROL == SCALARCONTROL #if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
#pragma CODE_SECTION("ramfuncs"); #pragma CODE_SECTION("ramfuncs");
void AlgorithmStop::_execute_run() void AlgorithmStop::_execute_run()
{ {
@ -137,21 +140,63 @@ void AlgorithmStop::_execute_run()
// //
//control execute //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, _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_active,
m_env.regulator_voltage_load_a_reactive); 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, _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_active,
m_env.regulator_voltage_load_b_reactive); 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, _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_active,
m_env.regulator_voltage_load_c_reactive); 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()){ if(m_env.timer_stop.is_finished()){
@ -167,19 +212,63 @@ void AlgorithmStop::_execute_run()
}// }//
#endif #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"); #pragma CODE_SECTION("ramfuncs");
inline void AlgorithmStop::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase, inline void AlgorithmStop::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_active, FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive) 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_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_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_real = phase.reference.voltage_cell_ampl_real * m_orts.active;
phase.reference.voltage_cell_jm = phase.reference.voltage_cell_ampl_jm * orts.reactive; 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 = 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; 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 class AlgorithmStop: public SYSCTRL::AlgorithmBase
{ {
private: private:
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
SYSCTRL::VectorOrthogonalProjection m_orts;
#endif
SYSCTRL::SystemEnvironment& m_env; SYSCTRL::SystemEnvironment& m_env;
public: public:
AlgorithmStop(SYSCTRL::SystemEnvironment& env); AlgorithmStop(SYSCTRL::SystemEnvironment& env);
@ -33,10 +36,9 @@ public:
private: private:
void (AlgorithmStop::*_execute)(); void (AlgorithmStop::*_execute)();
void _execute_run(); void _execute_run();
#if TYPECONTROL == SCALARCONTROL #if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
private: private:
inline void _execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase, inline void _execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_active, FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive); FLTSYSLIB::PIController& regulator_reactive);
#endif #endif

@ -14,6 +14,9 @@ AlgorithmWork::AlgorithmWork(SYSCTRL::SystemEnvironment& env):
AlgorithmBase(), AlgorithmBase(),
m_env(env), m_env(env),
m_reference_switcher(false), m_reference_switcher(false),
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
m_orts(),
#endif
_execute(&SYSCTRL::AlgorithmWork::_execute_undef) _execute(&SYSCTRL::AlgorithmWork::_execute_undef)
// //
{}//CONSTRUCTOR {}//CONSTRUCTOR
@ -52,6 +55,7 @@ void AlgorithmWork::reset()
m_env.regulator_current_limit_c.set_to_high_saturation(); m_env.regulator_current_limit_c.set_to_high_saturation();
m_env.regulator_current_pfc_c.reset(); 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_active.reset();
m_env.regulator_voltage_load_a_reactive.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_active.reset();
m_env.regulator_voltage_load_c_reactive.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 #endif
@ -175,7 +183,7 @@ void AlgorithmWork::_execute_run()
#if TYPECONTROL == SCALARCONTROL #if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
#pragma CODE_SECTION("ramfuncs"); #pragma CODE_SECTION("ramfuncs");
void AlgorithmWork::_execute_run() 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_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_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; 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, _execute_single_phase(m_env.phase_control.phase_a,
m_env.projection_voltage_input_a, m_env.projection_voltage_input_a,
m_env.main_abc_orts.phase_a,
m_env.regulator_current_limit_a, m_env.regulator_current_limit_a,
m_env.regulator_current_pfc_a, m_env.regulator_current_pfc_a,
m_env.regulator_dc_a,
m_env.cell_dc_voltage_a, m_env.cell_dc_voltage_a,
m_env.regulator_voltage_load_a_active, m_env.regulator_voltage_load_a_active,
m_env.regulator_voltage_load_a_reactive); 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, _execute_single_phase(m_env.phase_control.phase_b,
m_env.projection_voltage_input_b, m_env.projection_voltage_input_b,
m_env.main_abc_orts.phase_b,
m_env.regulator_current_limit_b, m_env.regulator_current_limit_b,
m_env.regulator_current_pfc_b, m_env.regulator_current_pfc_b,
m_env.regulator_dc_b,
m_env.cell_dc_voltage_b, m_env.cell_dc_voltage_b,
m_env.regulator_voltage_load_b_active, m_env.regulator_voltage_load_b_active,
m_env.regulator_voltage_load_b_reactive); 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, _execute_single_phase(m_env.phase_control.phase_c,
m_env.projection_voltage_input_c, m_env.projection_voltage_input_c,
m_env.main_abc_orts.phase_c,
m_env.regulator_current_limit_c, m_env.regulator_current_limit_c,
m_env.regulator_current_pfc_c, m_env.regulator_current_pfc_c,
m_env.regulator_dc_c,
m_env.cell_dc_voltage_c, m_env.cell_dc_voltage_c,
m_env.regulator_voltage_load_c_active, m_env.regulator_voltage_load_c_active,
m_env.regulator_voltage_load_c_reactive); m_env.regulator_voltage_load_c_reactive);
#endif
m_voltage_a = m_env.phase_control.phase_a.reference.voltage_cell_relative; 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_b = m_env.phase_control.phase_b.reference.voltage_cell_relative;
@ -233,14 +304,13 @@ void AlgorithmWork::_execute_run()
}// }//
#endif #endif
// //
#if TYPECONTROL == SCALARCONTROL #if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
#pragma CODE_SECTION("ramfuncs"); #pragma CODE_SECTION("ramfuncs");
void AlgorithmWork::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase, void AlgorithmWork::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::ProjectionAnalogSignalStructure& projection, SYSCTRL::ProjectionAnalogSignalStructure& projection,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_limit, FLTSYSLIB::PIController& regulator_limit,
FLTSYSLIB::PIController& regulator_pfc, FLTSYSLIB::PIController& regulator_pfc,
FLTSYSLIB::PIController& regulator_dc, //FLTSYSLIB::PIController& regulator_dc,
float& dc_volatage, float& dc_volatage,
FLTSYSLIB::PIController& regulator_active, FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive) FLTSYSLIB::PIController& regulator_reactive)
@ -255,8 +325,8 @@ void AlgorithmWork::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl&
if(phase.control_bit.signal.enable_pfc) 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) + 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); //+ regulator_dc.execute(phase.reference.voltage_dc, dc_volatage);
} }
else else
{ {
@ -304,8 +374,8 @@ void AlgorithmWork::_execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl&
// //
}//if }//if
// //
phase.reference.voltage_cell_real = phase.reference.voltage_cell_ampl_real * orts.active; 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 * orts.reactive; 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 = 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; phase.reference.voltage_cell_relative = phase.reference.voltage_cell * phase.feedback.voltage_cell_dc_reciprocal;
@ -405,6 +475,42 @@ void AlgorithmWork::_execute_run()
}// }//
#endif #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 */ } /* namespace SYSCTRL */

@ -21,7 +21,9 @@ class AlgorithmWork: public SYSCTRL::AlgorithmBase
{ {
private: private:
bool m_reference_switcher; bool m_reference_switcher;
#if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
SYSCTRL::VectorOrthogonalProjection m_orts;
#endif
private: private:
SYSCTRL::SystemEnvironment& m_env; SYSCTRL::SystemEnvironment& m_env;
public: public:
@ -36,14 +38,13 @@ public:
private: private:
void (AlgorithmWork::*_execute)(); void (AlgorithmWork::*_execute)();
void _execute_run(); void _execute_run();
#if TYPECONTROL == SCALARCONTROL #if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC))
private: private:
void _execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase, void _execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase,
SYSCTRL::ProjectionAnalogSignalStructure& projection, SYSCTRL::ProjectionAnalogSignalStructure& projection,
SYSCTRL::VectorOrthogonalProjection& orts,
FLTSYSLIB::PIController& regulator_limit, FLTSYSLIB::PIController& regulator_limit,
FLTSYSLIB::PIController& regulator_pfc, FLTSYSLIB::PIController& regulator_pfc,
FLTSYSLIB::PIController& regulator_dc, //FLTSYSLIB::PIController& regulator_dc,
float& dc_volatage, float& dc_volatage,
FLTSYSLIB::PIController& regulator_active, FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive); 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 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.gain = 0.25;
m_system_configuration.regulator_voltage_load_active_reactive.time = 40.0e-3; 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.high_saturation = 950.0;
m_system_configuration.regulator_voltage_load_active_reactive.low_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.gain = 1.0;
m_system_configuration.regulator_current_limit.time = 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 TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
#if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_DIFFICULT #if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_DIFFICULT
#define HEADER_CLASS_ID ((int16_t)(0x0001)) #define HEADER_CLASS_ID ((int16_t)(0x0001))
#define HEADER_PART_ID ((int16_t)(0x0010)) #define HEADER_PART_ID ((int16_t)(0x0010))
#define HEADER_SOFTWARE_VERSION ((int16_t)(0x0796)) #define HEADER_SOFTWARE_VERSION ((int16_t)(0x0796))
#define FOOTER_FOOT ((int16_t)(0x05A5)) #define FOOTER_FOOT ((int16_t)(0x05A5))
#endif #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 #if TYPEVOLTAGEDECOMPOSE == TYPEVOLTAGEDECOMPOSE_SIMPLE
#define HEADER_CLASS_ID ((int16_t)(0x4005)) #define HEADER_CLASS_ID ((int16_t)(0x4005))
@ -66,10 +74,10 @@ namespace SYSCTRL
#if TYPECONTROL == DIRECTREVERSECONTROL #if TYPECONTROL == DIRECTREVERSECONTROL
#define HEADER_CLASS_ID ((int16_t)(0x0000)) #define HEADER_CLASS_ID ((int16_t)(0x1F01))
#define HEADER_PART_ID ((int16_t)(0x0000)) #define HEADER_PART_ID ((int16_t)(0x1F10))
#define HEADER_SOFTWARE_VERSION ((int16_t)(0x0000)) #define HEADER_SOFTWARE_VERSION ((int16_t)(0x1F11))
#define FOOTER_FOOT ((int16_t)(0x0000)) #define FOOTER_FOOT ((int16_t)(0x141A))
#endif #endif
@ -284,13 +292,19 @@ struct SystemControlConfiguration
#if TYPECONTROL == SCALARCONTROL #if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
FLTSYSLIB::PIControllerConfiguration regulator_voltage_load_active_reactive; 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_limit;
FLTSYSLIB::PIControllerConfiguration regulator_current_pfc; FLTSYSLIB::PIControllerConfiguration regulator_current_pfc;
FLTSYSLIB::PIControllerConfiguration current_regulator_active; FLTSYSLIB::PIControllerConfiguration current_regulator_active;
FLTSYSLIB::PIControllerConfiguration current_regulator_reactive; FLTSYSLIB::PIControllerConfiguration current_regulator_reactive;
FLTSYSLIB::PIControllerConfiguration current_referencer; FLTSYSLIB::PIControllerConfiguration current_referencer;
FLTSYSLIB::PIControllerConfiguration regulator_dc_voltage; //FLTSYSLIB::PIControllerConfiguration regulator_dc_voltage;
#endif #endif
@ -393,13 +407,19 @@ struct SystemControlConfiguration
#endif #endif
#if TYPECONTROL == SCALARCONTROL #if TYPECONTROL == SCALARCONTROL
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
regulator_voltage_load_active_reactive(), 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_limit(),
regulator_current_pfc(), regulator_current_pfc(),
current_regulator_active(), current_regulator_active(),
current_regulator_reactive(), current_regulator_reactive(),
current_referencer(), current_referencer(),
regulator_dc_voltage(), //regulator_dc_voltage(),
#endif #endif
#if TYPECONTROL == DIRECTREVERSECONTROL #if TYPECONTROL == DIRECTREVERSECONTROL
@ -442,7 +462,7 @@ struct SystemControlConfiguration
regulator_current_limit.low_saturation = FP_ZERO; regulator_current_limit.low_saturation = FP_ZERO;
regulator_current_pfc.high_saturation = reference_voltage_rms * 0.57735; regulator_current_pfc.high_saturation = reference_voltage_rms * 0.57735;
regulator_current_pfc.low_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 #endif

@ -479,6 +479,8 @@ void SystemControl::setup()
#endif #endif
#if TYPECONTROL == SCALARCONTROL #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_active.setup(m_environment.time_sample_control);
m_environment.regulator_voltage_load_a_reactive.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); _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); 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_active.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.regulator_voltage_load_c_reactive.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_limit_a.setup(m_environment.time_sample_control);
m_environment.regulator_current_pfc_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_active.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.current_referencer_c_reactive.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_a.setup(m_environment.time_sample_control);
m_environment.regulator_dc_b.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); //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_a.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::CONFIGURATE); //_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::CONFIGURATE);
_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::CONFIGURATE); //_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::CONFIGURATE);
#endif #endif
// //
//<> //<>
@ -1088,6 +1097,7 @@ void SystemControl::configure()
#endif #endif
#if TYPECONTROL == SCALARCONTROL #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); 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); _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); 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); _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); 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); _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.high_saturation = m_system_configuration.reference_voltage_rms;
//m_system_configuration.regulator_current_limit.low_saturation = FP_ZERO; //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); _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_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_a.configure(m_system_configuration.regulator_dc_voltage);
m_environment.regulator_dc_b.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); //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_a.compare(FLTSYSLIB::PIController::OPERATIONAL);
_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::OPERATIONAL); //_status &= m_environment.regulator_dc_b.compare(FLTSYSLIB::PIController::OPERATIONAL);
_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::OPERATIONAL); //_status &= m_environment.regulator_dc_c.compare(FLTSYSLIB::PIController::OPERATIONAL);
#endif #endif
//<> //<>

@ -10,6 +10,7 @@
#include <math.h> #include <math.h>
#include <stdint.h> #include <stdint.h>
#include <SYSCTRL/ExtremumDetection.h> // for debug!!!
#include "framework.h" #include "framework.h"
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
@ -23,7 +24,6 @@
#include "SYSCTRL/VectorSpinner.h" #include "SYSCTRL/VectorSpinner.h"
#include "SYSCTRL/TypeControl.h" #include "SYSCTRL/TypeControl.h"
#include "SYSCTRL/MaxDetection.h" // for debug!!!
#ifndef TRAPSWRST #ifndef TRAPSWRST
@ -49,10 +49,10 @@ private:
SYSCTRL::AlgorithmContext::algorithm_t m_algorithm_executed; SYSCTRL::AlgorithmContext::algorithm_t m_algorithm_executed;
bool turnQ1On; bool turnQ1On;
private: private:
// for debug!!! // for debug!!! (
MaxDetection IcellMax; ExtremumDetection m_icell_extremum;
MaxDetection IloadMax; ExtremumDetection m_iload_extremum;
MaxDetection IinputMax; ExtremumDetection m_iinput_extremum;
//Decompose Signals //Decompose Signals
SYSCTRL::SignalDecomposeFIV m_decompose_voltage_input_a; SYSCTRL::SignalDecomposeFIV m_decompose_voltage_input_a;
SYSCTRL::SignalDecomposeFIV m_decompose_voltage_input_b; 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); 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!!! m_icell_extremum.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!!! m_iinput_extremum.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_iload_extremum.execute(m_environment.current_load_a, m_environment.current_load_b, m_environment.current_load_c); // for debug!!!
// //
// RMS Module // RMS Module
// //
// xrms = sqrt((xa*xa + xb*xb + xc*xc)/3) // 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); 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); 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_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_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); 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.system_fault.boolbit.b0 &
m_environment.input_discrete.signal.hw_dvr_ready & m_environment.input_discrete.signal.hw_dvr_ready &
m_environment.input_discrete.signal.bypass_ready & m_environment.input_discrete.signal.bypass_ready &
//(bool)m_environment.external_q1_on.signal.is_on); (bool)m_environment.external_km1_on.signal.is_on);
turnQ1On);
SYSCTRL::TriggerRegister::setReset(m_km1_external_command_trigger, SYSCTRL::TriggerRegister::setReset(m_km1_external_command_trigger,
(m_environment.system_fault.boolbit.b0 & m_environment.auxiliary_km2.state.signal.is_on) | (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.hw_dvr_ready |
!m_environment.input_discrete.signal.bypass_ready | !m_environment.input_discrete.signal.bypass_ready |
//(bool)m_environment.external_q1_off.signal.is_on); (bool)m_environment.external_km1_off.signal.is_on);
!turnQ1On);
SYSCTRL::TriggerRegister::execute_reset_priority(m_km1_external_command_trigger); 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.system_fault.boolbit.b0 &
m_environment.input_discrete.signal.hw_dvr_ready & m_environment.input_discrete.signal.hw_dvr_ready &
m_environment.input_discrete.signal.bypass_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, SYSCTRL::TriggerRegister::setReset(m_q1_external_command_trigger,
(m_environment.system_fault.boolbit.b0 & m_environment.auxiliary_km2.state.signal.is_on) | (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.hw_dvr_ready |
!m_environment.input_discrete.signal.bypass_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); 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); SYSCTRL::TriggerRegister::execute_set_priority(m_system_fault_trigger);
m_environment.system_fault.boolbit.b0 = (bool)m_system_fault_trigger.signal.is_on; 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_b.reactive,
m_environment.twisted_abc_orts.phase_c.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.pll_abc_orts;
m_environment.main_abc_orts = m_environment.twisted_abc_orts; //m_environment.main_abc_orts = m_environment.twisted_abc_orts;
// //
FLTSYSLIB::Transformation::clarke_forward(m_environment.main_abc_orts.phase_a.active, FLTSYSLIB::Transformation::clarke_forward(m_environment.main_abc_orts.phase_a.active,
m_environment.main_abc_orts.phase_b.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, 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, m_environment.main_ab_orts.active, m_environment.main_ab_orts.reactive,
@ -1324,7 +1346,7 @@ void SystemControl::_execute_operational()
// //
// Scale Compute // Scale Compute
// //
/*
if(m_environment.scale_compute_voltage_command.bit.start == 1) if(m_environment.scale_compute_voltage_command.bit.start == 1)
{ {
m_environment.scale_compute_voltage_command.bit.start = 0; m_environment.scale_compute_voltage_command.bit.start = 0;
@ -1332,7 +1354,7 @@ void SystemControl::_execute_operational()
m_environment.scale_compute_voltage_load.fix(); m_environment.scale_compute_voltage_load.fix();
// //
}//if }//if
*/
// //
/* /*
if(m_environment.scale_compute_current_command.bit.start == 1) if(m_environment.scale_compute_current_command.bit.start == 1)

@ -1392,10 +1392,18 @@ void SystemControl::_modbusrtu_rubus_configurate()
#if TYPECONTROL == SCALARCONTROL #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(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(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(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); 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(379, 0, &m_system_configuration.regulator_current_limit.gain);
m_rubus_data.add_register_float(380, 0, &m_system_configuration.regulator_current_limit.time); 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_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_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; #if (TYPECONTROL == SCALARCONTROL) && (SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC)
m_environment.cell_dc_voltage_b_reciprocal = 1.0/5.0/900.0; m_environment.cell_dc_voltage_a_reciprocal = 1.0/REGULATOR_VOLTAGE_ABC_SATURATION;
m_environment.cell_dc_voltage_c_reciprocal = 1.0/5.0/900.0; 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 #if TYPECONTROL == SCALARCONTROL
m_environment.phase_control.phase_a.feedback.voltage_cell_dc_reciprocal = m_environment.cell_dc_voltage_a_reciprocal; 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 #define REGULATORVOLTAGETIME DECOMPOSEVOLTAGETIME_5HZ
#endif #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_LIMIT_RMS (float)(100.0)
#define CURRENT_PFC_RMS (float)(0.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 GRID_VOLTAGE_HIGH_LIMIT (float)(6600.0)
#define CELL_DC_VOLTAGE_REFERENCE (float)(5.0*950.0) #define CELL_DC_VOLTAGE_REFERENCE (float)(5.0*950.0)

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

@ -915,6 +915,8 @@ public:
SYSCTRL::BoolRegister enable_work_is_off; SYSCTRL::BoolRegister enable_work_is_off;
SYSCTRL::BoolRegister enable_work_reset; SYSCTRL::BoolRegister enable_work_reset;
SYSCTRL::SystemFaultsRegister system_faults_register; SYSCTRL::SystemFaultsRegister system_faults_register;
SYSCTRL::SystemFaultsRegister fault_trig; // for debug!!!
bool trig; // for debug!!!
//External Command //External Command
@ -1082,6 +1084,7 @@ public:
#if TYPECONTROL == SCALARCONTROL #if TYPECONTROL == SCALARCONTROL
// //
#if SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC
FLTSYSLIB::PIController regulator_voltage_load_a_active; FLTSYSLIB::PIController regulator_voltage_load_a_active;
FLTSYSLIB::PIController regulator_voltage_load_a_reactive; 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_active;
FLTSYSLIB::PIController regulator_voltage_load_c_reactive; 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 //Load Current Regulators
FLTSYSLIB::PIController regulator_current_limit_a; FLTSYSLIB::PIController regulator_current_limit_a;
@ -1122,9 +1130,9 @@ public:
FLTSYSLIB::PIController current_referencer_c_reactive; FLTSYSLIB::PIController current_referencer_c_reactive;
// //
//POWER CELL DC Voltage Regulator //POWER CELL DC Voltage Regulator
FLTSYSLIB::PIController regulator_dc_a; //FLTSYSLIB::PIController regulator_dc_a;
FLTSYSLIB::PIController regulator_dc_b; //FLTSYSLIB::PIController regulator_dc_b;
FLTSYSLIB::PIController regulator_dc_c; //FLTSYSLIB::PIController regulator_dc_c;
// //
#endif #endif

@ -23,8 +23,8 @@
#ifndef TYPECONTROL #ifndef TYPECONTROL
//#define TYPECONTROL VECTORCONTROL //#define TYPECONTROL VECTORCONTROL
//#define TYPECONTROL SCALARCONTROL #define TYPECONTROL SCALARCONTROL
#define TYPECONTROL DIRECTREVERSECONTROL //#define TYPECONTROL DIRECTREVERSECONTROL
#endif #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_ */ #endif /* SYSCTRL_TYPECONTROL_H_ */

Loading…
Cancel
Save