You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
| 
								 
											2 years ago
										 
									 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * SignalDecomposeFI.h
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *      Author: Aleksey Gerasimenko
							 | 
						||
| 
								 | 
							
								 *      gerasimenko.aleksey.n@gmail.com
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "SYSCTRL/SignalDecompose.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef SYSCTRL_SIGNALDECOMPOSEFI_H_
							 | 
						||
| 
								 | 
							
								#define SYSCTRL_SIGNALDECOMPOSEFI_H_
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace SYSCTRL
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct SignalDecomposeFIConfiguration
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    FLTSYSLIB::FilterConfiguration projection_filter;
							 | 
						||
| 
								 | 
							
								    SignalDecomposeFIConfiguration():
							 | 
						||
| 
								 | 
							
								        projection_filter()
							 | 
						||
| 
								 | 
							
								    {}
							 | 
						||
| 
								 | 
							
								};//SignalDecomposeFIConfiguration
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SignalDecomposeFI: public SYSCTRL::SignalDecompose
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								    FLTSYSLIB::Filter m_projection_filter_active;
							 | 
						||
| 
								 | 
							
								    FLTSYSLIB::Filter m_projection_filter_reactive;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								    SignalDecomposeFI();
							 | 
						||
| 
								 | 
							
								    void setup(float time_sample);
							 | 
						||
| 
								 | 
							
								    void configure(const SignalDecomposeFIConfiguration& config);
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								    void reset();
							 | 
						||
| 
								 | 
							
								    void get_outputs(float& projection_active, float& projection_reactive);
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								    void execute(float reference, float ort_cos, float ort_sin);
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								    void (SignalDecomposeFI::*_execute)(float reference, float ort_cos, float ort_sin);
							 | 
						||
| 
								 | 
							
								    void _execute_undef(float reference, float ort_cos, float ort_sin);
							 | 
						||
| 
								 | 
							
								    void _execute_operational(float reference, float ort_cos, float ort_sin);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} /* namespace SYSCTRL */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* SYSCTRL_SIGNALDECOMPOSEFI_H_ */
							 |