Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 8 additions & 47 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,50 +1,11 @@
cmake_minimum_required (VERSION 3.5.1)
cmake_minimum_required (VERSION 3.0.0)
project (OpenDiscon)

# OpenDiscon include directories
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/src/ikClwindconWTCon/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/src/ikClwindconWTConfig/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/src/ikTpman/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/src/ikPowman/)
# choose a configuration
set( CONFIGURATION "CL-Windcon" CACHE STRING
"Choose a configuration.\n\
Available configurations are:\n\
CL-Windcon" )

# OpenDiscon source files
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/src/ikTpman/ikTpman.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/src/ikPowman/ikPowman.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/src/ikClwindconWTConfig/ikClwindconWTConfig.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/src/ikClwindconWTCon/ikClwindconWTCon.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/src/discon/discon.c)

# OpenWitcon include directories
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikConLoop)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLinCon)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLutbl)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikNotchList)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikRegionSelector)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikSlti)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikStpgen)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikTfList)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikVfnotch)

# OpenWitcon source files
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikConLoop/ikConLoop.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLinCon/ikLinCon.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLutbl/ikLutbl.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikNotchList/ikNotchList.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikRegionSelector/ikRegionSelector.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikSlti/ikSlti.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikStpgen/ikStpgen.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikTfList/ikTfList.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikVfnotch/ikVfnotch.c)

# shared OpenDiscon library
include_directories ("${OPENDISCON_INCLUDE_DIRS}")
include_directories ("${OPENWITCON_INCLUDE_DIRS}")
include_directories ("${PROJECT_BINARY_DIR}")
include (GenerateExportHeader)
add_library (OpenDiscon SHARED ${OPENDISCON_SOURCES})
GENERATE_EXPORT_HEADER (OpenDiscon
BASE_NAME OpenDiscon
EXPORT_MACRO_NAME OpenDiscon_EXPORT
EXPORT_FILE_NAME OpenDiscon_EXPORT.h
STATIC_DEFINE OpenDiscon_BUILT_AS_STATIC
)
# run configuration-specific cmake script
include( ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/CMakeLists.txt )
55 changes: 55 additions & 0 deletions CONFIGURATION/CL-Windcon/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# choose a distribution
set( DISTRIBUTION "DISCON" CACHE STRING
"Choose a distribution.\n\
Available distributions are:\n\
DISCON\n\
S-Function" )

# OpenDiscon include directories
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconResetSensorSignals/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconWTCon/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconWTConfig/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconInputMod/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikTpman/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikPowman/)
set (OPENDISCON_INCLUDE_DIRS ${OPENDISCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikSpdman/)

# OpenDiscon source files
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikSpdman/ikSpdman.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikTpman/ikTpman.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikPowman/ikPowman.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconInputMod/ikClwindconInputMod.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconWTConfig/ikClwindconWTConfig.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconWTCon/ikClwindconWTCon.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/ikClwindconResetSensorSignals/ikClwindconResetSensorSignals.c)

# OpenWitcon include directories
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikConLoop)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLinCon)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLutbl)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikNotchList)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikRegionSelector)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikSlti)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikStpgen)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikTfList)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikVfnotch)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikIpc)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikVector)
set (OPENWITCON_INCLUDE_DIRS ${OPENWITCON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikSensorDiagnoser)

# OpenWitcon source files
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikConLoop/ikConLoop.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLinCon/ikLinCon.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikLutbl/ikLutbl.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikNotchList/ikNotchList.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikRegionSelector/ikRegionSelector.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikSlti/ikSlti.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikStpgen/ikStpgen.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikTfList/ikTfList.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikVfnotch/ikVfnotch.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikIpc/ikIpc.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikVector/ikVector.c)
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/OpenWitcon/src/ikSensorDiagnoser/ikSensorDiagnoser.c)

# run distribution-specific cmake script
include( ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/DISTRIBUTION/${DISTRIBUTION}/CMakeLists.txt )
14 changes: 14 additions & 0 deletions CONFIGURATION/CL-Windcon/DISTRIBUTION/DISCON/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/discon/discon.c)

# shared OpenDiscon library
include_directories ("${OPENDISCON_INCLUDE_DIRS}")
include_directories ("${OPENWITCON_INCLUDE_DIRS}")
include_directories ("${PROJECT_BINARY_DIR}")
include (GenerateExportHeader)
add_library (OpenDiscon SHARED ${OPENDISCON_SOURCES})
GENERATE_EXPORT_HEADER (OpenDiscon
BASE_NAME OpenDiscon
EXPORT_MACRO_NAME OpenDiscon_EXPORT
EXPORT_FILE_NAME OpenDiscon_EXPORT.h
STATIC_DEFINE OpenDiscon_BUILT_AS_STATIC
)
10 changes: 10 additions & 0 deletions CONFIGURATION/CL-Windcon/DISTRIBUTION/S-Function/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set (OPENDISCON_SOURCES ${OPENDISCON_SOURCES} ${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/sfunc/sfunc.c)

string (REPLACE ";" " -I" OPENDISCON_INCLUDE_DIRS "${OPENDISCON_INCLUDE_DIRS}")
string (REPLACE ";" " " OPENDISCON_SOURCES "${OPENDISCON_SOURCES}")

string (REPLACE ";" " -I" OPENWITCON_INCLUDE_DIRS "${OPENWITCON_INCLUDE_DIRS}")
string (REPLACE ";" " " OPENWITCON_SOURCES "${OPENWITCON_SOURCES}")

configure_file (${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/sfunc/makeOpenDiscon.m ${PROJECT_BINARY_DIR}/)
configure_file (${PROJECT_SOURCE_DIR}/CONFIGURATION/${CONFIGURATION}/src/sfunc/OpenDiscon_block.mdl ${PROJECT_BINARY_DIR}/)
100 changes: 100 additions & 0 deletions CONFIGURATION/CL-Windcon/src/discon/discon.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/*
Copyright (C) 2017 IK4-IKERLAN

This file is part of OpenDiscon.

OpenDiscon is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

OpenDiscon is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with OpenDiscon. If not, see <http://www.gnu.org/licenses/>.
*/

#define NINT(a) ((a) >= 0.0 ? (int) ((a)+0.5) : ((a)-0.5))

#include "ikClwindconResetSensorSignals.h"
#include "ikClwindconInputMod.h"
#include "ikClwindconWTConfig.h"
#include "OpenDiscon_EXPORT.h"
#include <stdio.h>

void OpenDiscon_EXPORT DISCON(float *DATA, int FLAG, const char *INFILE, const char *OUTNAME, char *MESSAGE) {
int err;
static ikClwindconWTCon con;
double output = -12.0;
static FILE *f = NULL;
const double deratingRatio = 0.0; /* later to be got via the supercontroller interface */

if (NINT(DATA[0]) == 0) {
ikClwindconWTConParams param;
ikClwindconWTCon_initParams(&param);
setParams(&param);
ikClwindconWTCon_init(&con, &param);
f = fopen("log.bin", "wb");
}

con.in.deratingRatio = deratingRatio;
con.in.externalMaximumTorque = 230.0; /* kNm */
con.in.externalMinimumTorque = 0.0; /* kNm */
con.in.externalMaximumPitch = 90.0; /* deg */
con.in.externalMinimumPitch = 0.0; /* deg */
con.in.generatorSpeed = (double) DATA[19]; /* rad/s */
con.in.rotorSpeed = (double) DATA[20]; /* rad/s */
con.in.maximumSpeed = 480.0/30*3.1416; /* rpm to rad/s */
con.in.azimuth = 180.0/3.1416 * (double) DATA[59]; /* rad to deg */
con.in.maximumIndividualPitch = 0.0; /* deg */
con.in.yawErrorReference = 0.0; /* deg */
con.in.yawError = 180.0/3.1416 * (double) DATA[23]; /* rad to deg */
con.in.bladeRootMoments[0].c[0] = 1.0e-3 * (double) DATA[68]; /* Nm to kNm */
con.in.bladeRootMoments[0].c[1] = 1.0e-3 * (double) DATA[29]; /* Nm to kNm */
con.in.bladeRootMoments[0].c[2] = 0.0; /* kNm */
con.in.bladeRootMoments[1].c[0] = 1.0e-3 * (double) DATA[69]; /* Nm to kNm */
con.in.bladeRootMoments[1].c[1] = 1.0e-3 * (double) DATA[30]; /* Nm to kNm */
con.in.bladeRootMoments[1].c[2] = 0.0; /* kNm */
con.in.bladeRootMoments[2].c[0] = 1.0e-3 * (double) DATA[70]; /* Nm to kNm */
con.in.bladeRootMoments[2].c[1] = 1.0e-3 * (double) DATA[31]; /* Nm to kNm */
con.in.bladeRootMoments[2].c[2] = 0.0; /* kNm */

ikClwindconInputMod(&(con.in));
ikClwindconResetSensorSignals(&(con.in));
ikClwindconWTCon_step(&con);

/* ####################################### */

DATA[46] = (float) (con.out.torqueDemand*1.0e3); /* kNm to Nm */
DATA[41] = (float) (con.out.pitchDemandBlade1/180.0*3.1416); /* deg to rad */
DATA[42] = (float) (con.out.pitchDemandBlade2/180.0*3.1416); /* deg to rad */
DATA[43] = (float) (con.out.pitchDemandBlade3/180.0*3.1416); /* deg to rad */
err = ikClwindconWTCon_getOutput(&con, &output, "collective pitch demand");
DATA[44] = (float) (output/180.0*3.1416); /* deg to rad (collective pitch angle) */

err = ikClwindconWTCon_getOutput(&con, &output, "individual pitch control>pitch y from control");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "individual pitch control>pitch z from control");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "individual pitch control>My");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "individual pitch control>Mz");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "individual pitch control>pitch increment 1");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "individual pitch control>pitch increment 2");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "individual pitch control>pitch increment 3");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "generator speed equivalent");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "speed sensor manager>signal 1");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "speed sensor manager>signal 2");
fwrite(&(output), 1, sizeof(output), f);
err = ikClwindconWTCon_getOutput(&con, &output, "speed sensor manager>signal 3");
fwrite(&(output), 1, sizeof(output), f);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
Copyright (C) 2017 IK4-IKERLAN

This file is part of OpenDiscon.

OpenDiscon is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

OpenDiscon is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with OpenDiscon. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* @file ikClwindconInputMod.c
*
* @brief CL-Windcon wind turbine controller input modification
*/

#include "ikClwindconInputMod.h"

void ikClwindconInputMod(ikClwindconWTConInputs *in) {

ikGeneratorSpeedSingalFail(in);

}

void ikGeneratorSpeedSingalFail(ikClwindconWTConInputs *in) {
static int _n = 0;

/*! [Speed sensor fault] */
/*
####################################################################
Speed sensor fault

A generator speed measurement of val is enforced after N sampling
intervals (N <= 0 to disable).

Set parameters here:
*/
const int N = 10000;
const double val = 0.0;
/*
####################################################################
*/
/*! [Speed sensor fault] */

if (0 < N && _n < N) {
_n++;
return;
}

in->generatorSpeed = val;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
Copyright (C) 2017 IK4-IKERLAN

This file is part of OpenDiscon.

OpenDiscon is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

OpenDiscon is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with OpenDiscon. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* @file ikClwindconInputMod.h
*
* @brief CL-Windcon wind turbine controller input modification
*/

#ifndef IKCLWINDCONINPUTMOD_H
#define IKCLWINDCONINPUTMOD_H

#ifdef __cplusplus
extern "C" {
#endif

#include "ikClwindconWTCon.h"

void ikClwindconInputMod(ikClwindconWTConInputs *in);
void ikGeneratorSpeedSingalFail(ikClwindconWTConInputs *in);

#ifdef __cplusplus
}
#endif

#endif /* IKCLWINDCONINPUTMOD_H */

Loading