# r"G:\2026\OpenhastV7\publish\x64\Release\net8.0\HawtC.dll"
#r "nuget:ScottPlot, 5.0.*"
//# r"C:\Users\123\.nuget\packages\skiasharp\2.88.8\interactive-extensions\dotnet\SkiaSharp.DotNet.Interactive.dll"
using OpenWECD.IO.Log;
using MathNet.Numerics.LinearAlgebra;
using OpenWECD.IO.math;
using OpenWECD.IO.Numerics;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using static OpenWECD.IO.math.LinearAlgebraHelper;
using static System.Math;
using OpenWECD.FEML;
using ScottPlot;
using OpenWECD.IO.IO;
Loading extensions from `C:\Users\123\.nuget\packages\skiasharp\2.88.9\interactive-extensions\dotnet\SkiaSharp.DotNet.Interactive.dll`
// Setup a custom formatter to display plots as images
using Microsoft.DotNet.Interactive.Formatting;
Formatter.Register(typeof(ScottPlot.Plot), (p, w) =>
w.Write(((ScottPlot.Plot)p).GetPngHtml(800, 400)), HtmlFormatter.MimeType);
//# 运行OpenFAST
//Otherhelper.RunPowershell(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\CompareWithFAST\FastModel\openfast_x64.exe G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\CompareWithFAST\FastModel\IEA-15-240-RWT-onshore.fst")
//# 运行HawtC
//Otherhelper.RunPowershell(@"G:\2026\OpenhastV7\build\HawtC.exe G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\Openhast_15MW_PowerProduction_land.hst")
//#尝试读取FAST输出的时间序列
var fastres=OpenWECD.APIL.PostAPI.PstAPI.API_GetFASTFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\CompareWithFAST\FastModel\\IEA-15-240-RWT-onshore.out");
Otherhelper.Tostring(fastres.Keys.ToArray())
Time Wind1VelX Wind1VelY Wind1VelZ Azimuth BldPitch1 BldPitch2 BldPitch3 GenSpeed IPDefl1 LSSGagMya LSSGagMza LSSTipMys LSSTipMzs LSShftFys LSShftFzs NacYaw NcIMUTAxs NcIMUTAys NcIMUTAzs OoPDefl1 PtfmHeave PtfmPitch PtfmRoll PtfmSurge PtfmSway PtfmYaw RootFxb1 RootFxb2 RootFxb3 RootFxc1 RootFxc2 RootFxc3 RootFyb1 RootFyb2 RootFyb3 RootFyc1 RootFyc2 RootFyc3 RootFzb1 RootFzb2 RootFzb3 RootFzc1 RootFzc2 RootFzc3 RootMxb1 RootMxb2 RootMxb3 RootMxc1 RootMxc2 RootMxc3 RootMyb1 RootMyb2 RootMyb3 RootMyc1 RootMyc2 RootMyc3 RootMzb1 RootMzb2 RootMzb3 RootMzc1 RootMzc2 RootMzc3 RotSpeed RotThrust RotTorq TTDspTwst TipDxb1 TipDxb2 TipDxb3 TipDxc1 TipDxc2 TipDxc3 TipDyb1 TipDyb2 TipDyb3 TipDyc1 TipDyc2 TipDyc3 TipDzb1 TipDzb2 TipDzb3 TipDzc1 TipDzc2 TipDzc3 TwHt1TPxi TwHt1TPyi TwrTpTDxi TwrTpTDyi TwrTpTDzi TwrBsFxt TwrBsFyt TwrBsFzt TwrBsMxt TwrBsMyt TwrBsMzt TwstDefl1 YawBrFxp YawBrFyp YawBrFzp YawBrMxp YawBrMyp YawBrMzp YawBrTDxt YawBrTDyt Q_B1E1 Q_B2E1 Q_B3E1 Q_B1F1 Q_B2F1 Q_B3F1 Q_B1F2 Q_B2F2 Q_B3F2 Q_Teet Q_DrTr Q_GeAz Q_RFrl Q_TFrl Q_Yaw Q_TFA1 Q_TSS1 Q_TFA2 Q_TSS2 Q_Sg Q_Sw Q_Hv Q_R Q_P Q_Y QD_B1E1 QD_B2E1 QD_B3E1 QD_B1F1 QD_B2F1 QD_B3F1 QD_B1F2 QD_B2F2 QD_B3F2 QD_Teet QD_DrTr QD_GeAz QD_RFrl QD_TFrl QD_Yaw QD_TFA1 QD_TSS1 QD_TFA2 QD_TSS2 QD_Sg QD_Sw QD_Hv QD_R QD_P QD_Y QD2_B1E1 QD2_B2E1 QD2_B3E1 QD2_B1F1 QD2_B2F1 QD2_B3F1 QD2_B1F2 QD2_B2F2 QD2_B3F2 QD2_Teet QD2_DrTr QD2_GeAz QD2_RFrl QD2_TFrl QD2_Yaw QD2_TFA1 QD2_TSS1 QD2_TFA2 QD2_TSS2 QD2_Sg QD2_Sw QD2_Hv QD2_R QD2_P QD2_Y B1N001TDx B1N002TDx B1N003TDx B1N004TDx B1N005TDx B1N006TDx B1N007TDx B1N008TDx B1N009TDx B1N010TDx B1N011TDx B1N012TDx B1N013TDx B1N014TDx B1N015TDx B1N016TDx B1N017TDx B1N018TDx B1N019TDx B1N020TDx B1N021TDx B1N022TDx B1N023TDx B1N024TDx B1N025TDx B1N026TDx B1N027TDx B1N028TDx B1N029TDx B1N030TDx B1N031TDx B1N032TDx B1N033TDx B1N034TDx B1N035TDx B1N036TDx B1N037TDx B1N038TDx B1N039TDx B1N040TDx B1N041TDx B1N042TDx B1N043TDx B1N044TDx B1N045TDx B1N046TDx B1N047TDx B1N048TDx B1N049TDx B1N050TDx B1N001TDy B1N002TDy B1N003TDy B1N004TDy B1N005TDy B1N006TDy B1N007TDy B1N008TDy B1N009TDy B1N010TDy B1N011TDy B1N012TDy B1N013TDy B1N014TDy B1N015TDy B1N016TDy B1N017TDy B1N018TDy B1N019TDy B1N020TDy B1N021TDy B1N022TDy B1N023TDy B1N024TDy B1N025TDy B1N026TDy B1N027TDy B1N028TDy B1N029TDy B1N030TDy B1N031TDy B1N032TDy B1N033TDy B1N034TDy B1N035TDy B1N036TDy B1N037TDy B1N038TDy B1N039TDy B1N040TDy B1N041TDy B1N042TDy B1N043TDy B1N044TDy B1N045TDy B1N046TDy B1N047TDy B1N048TDy B1N049TDy B1N050TDy B1N001RDz B1N002RDz B1N003RDz B1N004RDz B1N005RDz B1N006RDz B1N007RDz B1N008RDz B1N009RDz B1N010RDz B1N011RDz B1N012RDz B1N013RDz B1N014RDz B1N015RDz B1N016RDz B1N017RDz B1N018RDz B1N019RDz B1N020RDz B1N021RDz B1N022RDz B1N023RDz B1N024RDz B1N025RDz B1N026RDz B1N027RDz B1N028RDz B1N029RDz B1N030RDz B1N031RDz B1N032RDz B1N033RDz B1N034RDz B1N035RDz B1N036RDz B1N037RDz B1N038RDz B1N039RDz B1N040RDz B1N041RDz B1N042RDz B1N043RDz B1N044RDz B1N045RDz B1N046RDz B1N047RDz B1N048RDz B1N049RDz B1N050RDz B1N1Fl B1N2Fl B1N3Fl B1N4Fl B1N5Fl B1N6Fl B1N7Fl B1N8Fl B1N9Fl B1N1Fd B1N2Fd B1N3Fd B1N4Fd B1N5Fd B1N6Fd B1N7Fd B1N8Fd B1N9Fd B1N1Mm B1N2Mm B1N3Mm B1N4Mm B1N5Mm B1N6Mm B1N7Mm B1N8Mm B1N9Mm B1N1Phi B1N2Phi B1N3Phi B1N4Phi B1N5Phi B1N6Phi B1N7Phi B1N8Phi B1N9Phi B1N1VRel B1N2VRel B1N3VRel B1N4VRel B1N5VRel B1N6VRel B1N7VRel B1N8VRel B1N9VRel B1N1VUndx B1N2VUndx B1N3VUndx B1N4VUndx B1N5VUndx B1N6VUndx B1N7VUndx B1N8VUndx B1N9VUndx B1N1VUndy B1N2VUndy B1N3VUndy B1N4VUndy B1N5VUndy B1N6VUndy B1N7VUndy B1N8VUndy B1N9VUndy B1N1VUndz B1N2VUndz B1N3VUndz B1N4VUndz B1N5VUndz B1N6VUndz B1N7VUndz B1N8VUndz B1N9VUndz B1N1VDisx B1N2VDisx B1N3VDisx B1N4VDisx B1N5VDisx B1N6VDisx B1N7VDisx B1N8VDisx B1N9VDisx B1N1VDisy B1N2VDisy B1N3VDisy B1N4VDisy B1N5VDisy B1N6VDisy B1N7VDisy B1N8VDisy B1N9VDisy B1N1VDisz B1N2VDisz B1N3VDisz B1N4VDisz B1N5VDisz B1N6VDisz B1N7VDisz B1N8VDisz B1N9VDisz B1N1STVx B1N2STVx B1N3STVx B1N4STVx B1N5STVx B1N6STVx B1N7STVx B1N8STVx B1N9STVx B1N1STVy B1N2STVy B1N3STVy B1N4STVy B1N5STVy B1N6STVy B1N7STVy B1N8STVy B1N9STVy B1N1STVz B1N2STVz B1N3STVz B1N4STVz B1N5STVz B1N6STVz B1N7STVz B1N8STVz B1N9STVz B1N1Theta B1N2Theta B1N3Theta B1N4Theta B1N5Theta B1N6Theta B1N7Theta B1N8Theta B1N9Theta RtSpeed RtTSR RtSkew RtAeroPwr RtArea RtAeroCp RtAeroCq RtAeroCt B1Pitch B1Azimuth B1N1AxInd B1N2AxInd B1N3AxInd B1N4AxInd B1N5AxInd B1N6AxInd B1N7AxInd B1N8AxInd B1N9AxInd B1N1TnInd B1N2TnInd B1N3TnInd B1N4TnInd B1N5TnInd B1N6TnInd B1N7TnInd B1N8TnInd B1N9TnInd AB1N001Vrel AB1N002Vrel AB1N003Vrel AB1N004Vrel AB1N005Vrel AB1N006Vrel AB1N007Vrel AB1N008Vrel AB1N009Vrel AB1N010Vrel AB1N011Vrel AB1N012Vrel AB1N013Vrel AB1N014Vrel AB1N015Vrel AB1N016Vrel AB1N017Vrel AB1N018Vrel AB1N019Vrel AB1N020Vrel AB1N021Vrel AB1N022Vrel AB1N023Vrel AB1N024Vrel AB1N025Vrel AB1N026Vrel AB1N027Vrel AB1N028Vrel AB1N029Vrel AB1N030Vrel AB1N031Vrel AB1N032Vrel AB1N033Vrel AB1N034Vrel AB1N035Vrel AB1N036Vrel AB1N037Vrel AB1N038Vrel AB1N039Vrel AB1N040Vrel AB1N041Vrel AB1N042Vrel AB1N043Vrel AB1N044Vrel AB1N045Vrel AB1N046Vrel AB1N047Vrel AB1N048Vrel AB1N049Vrel AB1N050Vrel AB1N001Alpha AB1N002Alpha AB1N003Alpha AB1N004Alpha AB1N005Alpha AB1N006Alpha AB1N007Alpha AB1N008Alpha AB1N009Alpha AB1N010Alpha AB1N011Alpha AB1N012Alpha AB1N013Alpha AB1N014Alpha AB1N015Alpha AB1N016Alpha AB1N017Alpha AB1N018Alpha AB1N019Alpha AB1N020Alpha AB1N021Alpha AB1N022Alpha AB1N023Alpha AB1N024Alpha AB1N025Alpha AB1N026Alpha AB1N027Alpha AB1N028Alpha AB1N029Alpha AB1N030Alpha AB1N031Alpha AB1N032Alpha AB1N033Alpha AB1N034Alpha AB1N035Alpha AB1N036Alpha AB1N037Alpha AB1N038Alpha AB1N039Alpha AB1N040Alpha AB1N041Alpha AB1N042Alpha AB1N043Alpha AB1N044Alpha AB1N045Alpha AB1N046Alpha AB1N047Alpha AB1N048Alpha AB1N049Alpha AB1N050Alpha AB1N001Vindx AB1N002Vindx AB1N003Vindx AB1N004Vindx AB1N005Vindx AB1N006Vindx AB1N007Vindx AB1N008Vindx AB1N009Vindx AB1N010Vindx AB1N011Vindx AB1N012Vindx AB1N013Vindx AB1N014Vindx AB1N015Vindx AB1N016Vindx AB1N017Vindx AB1N018Vindx AB1N019Vindx AB1N020Vindx AB1N021Vindx AB1N022Vindx AB1N023Vindx AB1N024Vindx AB1N025Vindx AB1N026Vindx AB1N027Vindx AB1N028Vindx AB1N029Vindx AB1N030Vindx AB1N031Vindx AB1N032Vindx AB1N033Vindx AB1N034Vindx AB1N035Vindx AB1N036Vindx AB1N037Vindx AB1N038Vindx AB1N039Vindx AB1N040Vindx AB1N041Vindx AB1N042Vindx AB1N043Vindx AB1N044Vindx AB1N045Vindx AB1N046Vindx AB1N047Vindx AB1N048Vindx AB1N049Vindx AB1N050Vindx AB1N001Vindy AB1N002Vindy AB1N003Vindy AB1N004Vindy AB1N005Vindy AB1N006Vindy AB1N007Vindy AB1N008Vindy AB1N009Vindy AB1N010Vindy AB1N011Vindy AB1N012Vindy AB1N013Vindy AB1N014Vindy AB1N015Vindy AB1N016Vindy AB1N017Vindy AB1N018Vindy AB1N019Vindy AB1N020Vindy AB1N021Vindy AB1N022Vindy AB1N023Vindy AB1N024Vindy AB1N025Vindy AB1N026Vindy AB1N027Vindy AB1N028Vindy AB1N029Vindy AB1N030Vindy AB1N031Vindy AB1N032Vindy AB1N033Vindy AB1N034Vindy AB1N035Vindy AB1N036Vindy AB1N037Vindy AB1N038Vindy AB1N039Vindy AB1N040Vindy AB1N041Vindy AB1N042Vindy AB1N043Vindy AB1N044Vindy AB1N045Vindy AB1N046Vindy AB1N047Vindy AB1N048Vindy AB1N049Vindy AB1N050Vindy AB1N001Cn AB1N002Cn AB1N003Cn AB1N004Cn AB1N005Cn AB1N006Cn AB1N007Cn AB1N008Cn AB1N009Cn AB1N010Cn AB1N011Cn AB1N012Cn AB1N013Cn AB1N014Cn AB1N015Cn AB1N016Cn AB1N017Cn AB1N018Cn AB1N019Cn AB1N020Cn AB1N021Cn AB1N022Cn AB1N023Cn AB1N024Cn AB1N025Cn AB1N026Cn AB1N027Cn AB1N028Cn AB1N029Cn AB1N030Cn AB1N031Cn AB1N032Cn AB1N033Cn AB1N034Cn AB1N035Cn AB1N036Cn AB1N037Cn AB1N038Cn AB1N039Cn AB1N040Cn AB1N041Cn AB1N042Cn AB1N043Cn AB1N044Cn AB1N045Cn AB1N046Cn AB1N047Cn AB1N048Cn AB1N049Cn AB1N050Cn AB1N001Ct AB1N002Ct AB1N003Ct AB1N004Ct AB1N005Ct AB1N006Ct AB1N007Ct AB1N008Ct AB1N009Ct AB1N010Ct AB1N011Ct AB1N012Ct AB1N013Ct AB1N014Ct AB1N015Ct AB1N016Ct AB1N017Ct AB1N018Ct AB1N019Ct AB1N020Ct AB1N021Ct AB1N022Ct AB1N023Ct AB1N024Ct AB1N025Ct AB1N026Ct AB1N027Ct AB1N028Ct AB1N029Ct AB1N030Ct AB1N031Ct AB1N032Ct AB1N033Ct AB1N034Ct AB1N035Ct AB1N036Ct AB1N037Ct AB1N038Ct AB1N039Ct AB1N040Ct AB1N041Ct AB1N042Ct AB1N043Ct AB1N044Ct AB1N045Ct AB1N046Ct AB1N047Ct AB1N048Ct AB1N049Ct AB1N050Ct AB1N001Fn AB1N002Fn AB1N003Fn AB1N004Fn AB1N005Fn AB1N006Fn AB1N007Fn AB1N008Fn AB1N009Fn AB1N010Fn AB1N011Fn AB1N012Fn AB1N013Fn AB1N014Fn AB1N015Fn AB1N016Fn AB1N017Fn AB1N018Fn AB1N019Fn AB1N020Fn AB1N021Fn AB1N022Fn AB1N023Fn AB1N024Fn AB1N025Fn AB1N026Fn AB1N027Fn AB1N028Fn AB1N029Fn AB1N030Fn AB1N031Fn AB1N032Fn AB1N033Fn AB1N034Fn AB1N035Fn AB1N036Fn AB1N037Fn AB1N038Fn AB1N039Fn AB1N040Fn AB1N041Fn AB1N042Fn AB1N043Fn AB1N044Fn AB1N045Fn AB1N046Fn AB1N047Fn AB1N048Fn AB1N049Fn AB1N050Fn AB1N001Ft AB1N002Ft AB1N003Ft AB1N004Ft AB1N005Ft AB1N006Ft AB1N007Ft AB1N008Ft AB1N009Ft AB1N010Ft AB1N011Ft AB1N012Ft AB1N013Ft AB1N014Ft AB1N015Ft AB1N016Ft AB1N017Ft AB1N018Ft AB1N019Ft AB1N020Ft AB1N021Ft AB1N022Ft AB1N023Ft AB1N024Ft AB1N025Ft AB1N026Ft AB1N027Ft AB1N028Ft AB1N029Ft AB1N030Ft AB1N031Ft AB1N032Ft AB1N033Ft AB1N034Ft AB1N035Ft AB1N036Ft AB1N037Ft AB1N038Ft AB1N039Ft AB1N040Ft AB1N041Ft AB1N042Ft AB1N043Ft AB1N044Ft AB1N045Ft AB1N046Ft AB1N047Ft AB1N048Ft AB1N049Ft AB1N050Ft AB1N001Fx AB1N002Fx AB1N003Fx AB1N004Fx AB1N005Fx AB1N006Fx AB1N007Fx AB1N008Fx AB1N009Fx AB1N010Fx AB1N011Fx AB1N012Fx AB1N013Fx AB1N014Fx AB1N015Fx AB1N016Fx AB1N017Fx AB1N018Fx AB1N019Fx AB1N020Fx AB1N021Fx AB1N022Fx AB1N023Fx AB1N024Fx AB1N025Fx AB1N026Fx AB1N027Fx AB1N028Fx AB1N029Fx AB1N030Fx AB1N031Fx AB1N032Fx AB1N033Fx AB1N034Fx AB1N035Fx AB1N036Fx AB1N037Fx AB1N038Fx AB1N039Fx AB1N040Fx AB1N041Fx AB1N042Fx AB1N043Fx AB1N044Fx AB1N045Fx AB1N046Fx AB1N047Fx AB1N048Fx AB1N049Fx AB1N050Fx AB1N001Fy AB1N002Fy AB1N003Fy AB1N004Fy AB1N005Fy AB1N006Fy AB1N007Fy AB1N008Fy AB1N009Fy AB1N010Fy AB1N011Fy AB1N012Fy AB1N013Fy AB1N014Fy AB1N015Fy AB1N016Fy AB1N017Fy AB1N018Fy AB1N019Fy AB1N020Fy AB1N021Fy AB1N022Fy AB1N023Fy AB1N024Fy AB1N025Fy AB1N026Fy AB1N027Fy AB1N028Fy AB1N029Fy AB1N030Fy AB1N031Fy AB1N032Fy AB1N033Fy AB1N034Fy AB1N035Fy AB1N036Fy AB1N037Fy AB1N038Fy AB1N039Fy AB1N040Fy AB1N041Fy AB1N042Fy AB1N043Fy AB1N044Fy AB1N045Fy AB1N046Fy AB1N047Fy AB1N048Fy AB1N049Fy AB1N050Fy AB1N001TnInd AB1N002TnInd AB1N003TnInd AB1N004TnInd AB1N005TnInd AB1N006TnInd AB1N007TnInd AB1N008TnInd AB1N009TnInd AB1N010TnInd AB1N011TnInd AB1N012TnInd AB1N013TnInd AB1N014TnInd AB1N015TnInd AB1N016TnInd AB1N017TnInd AB1N018TnInd AB1N019TnInd AB1N020TnInd AB1N021TnInd AB1N022TnInd AB1N023TnInd AB1N024TnInd AB1N025TnInd AB1N026TnInd AB1N027TnInd AB1N028TnInd AB1N029TnInd AB1N030TnInd AB1N031TnInd AB1N032TnInd AB1N033TnInd AB1N034TnInd AB1N035TnInd AB1N036TnInd AB1N037TnInd AB1N038TnInd AB1N039TnInd AB1N040TnInd AB1N041TnInd AB1N042TnInd AB1N043TnInd AB1N044TnInd AB1N045TnInd AB1N046TnInd AB1N047TnInd AB1N048TnInd AB1N049TnInd AB1N050TnInd AB1N001AxInd AB1N002AxInd AB1N003AxInd AB1N004AxInd AB1N005AxInd AB1N006AxInd AB1N007AxInd AB1N008AxInd AB1N009AxInd AB1N010AxInd AB1N011AxInd AB1N012AxInd AB1N013AxInd AB1N014AxInd AB1N015AxInd AB1N016AxInd AB1N017AxInd AB1N018AxInd AB1N019AxInd AB1N020AxInd AB1N021AxInd AB1N022AxInd AB1N023AxInd AB1N024AxInd AB1N025AxInd AB1N026AxInd AB1N027AxInd AB1N028AxInd AB1N029AxInd AB1N030AxInd AB1N031AxInd AB1N032AxInd AB1N033AxInd AB1N034AxInd AB1N035AxInd AB1N036AxInd AB1N037AxInd AB1N038AxInd AB1N039AxInd AB1N040AxInd AB1N041AxInd AB1N042AxInd AB1N043AxInd AB1N044AxInd AB1N045AxInd AB1N046AxInd AB1N047AxInd AB1N048AxInd AB1N049AxInd AB1N050AxInd GenPwr GenTq
//#获取HawtC的输出
var hawcres1=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\MBD_Blade Motiontip Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.MBD.out");
hawcres1.Keys
[ Time, OoPDefl B_0, OoPDefl B_1, OoPDefl B_2, IPDefl B_0, IPDefl B_1, IPDefl B_2, TipDzb B_0, TipDzb B_1, TipDzb B_2, TipDxb B_0, TipDxb B_1, TipDxb B_2, TipDyb B_0, TipDyb B_1, TipDyb B_2, Tip2Twr B_0, Tip2Twr B_1, Tip2Twr B_2, TipDxyc B_0 ... (5 more) ]
ScottPlot.Plot plt = new();
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["OoPDefl1"][0,-1].ToArray());
sig1.LineWidth=1.8f;
sig1.MarkerSize=0.0f;
sig1.LegendText="FAST";
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres1["OoPDefl B_0"][0,-1].ToArray());
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
sig2.LegendText="HawtC";
plt.XLabel("Time[s]");
plt.YLabel("Flapwise Dis");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["IPDefl1"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.LineWidth=1.8f;
sig1.MarkerSize=0.0f;
sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres1["IPDefl B_1"][0,-1].ToArray());
sig2.LegendText="HawtC";
sig2.LineWidth=1.8f;
sig2.MarkerSize=0.0f;
plt.XLabel("Time[s]");
plt.YLabel("Edgewise Dis");
plt.Title("FAST With HawtC");
plt
//#获取HawtC的输出
var hawcres2=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\MBD_Tower Top And Yaw Bearing Motions Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.MBD.out");
hawcres2.Keys
[ Time, TTDspFA , TTDspSS , TTDspAx ]
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrTpTDxi"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres["TTDspFA "].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrTpTDxi"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres2["TTDspFA "][0,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Top out plant Dis");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrTpTDyi"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres["TTDspSS "].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrTpTDyi"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres2["TTDspSS "][0,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Top inplant Dis");
plt
//#获取HawtC的输出
var hawcres3=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\MBD_Tower Base Loads Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.MBD.out");
hawcres3.Keys
[ Time, TwrBsFxyt , TwrBsMxyt , TwrBsFxt , TwrBsFyt , TwrBsFzt , TwrBsMxt , TwrBsMyt , TwrBsMzt ]
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsMxt"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsMxt"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsMxt"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsMxt "][0,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Base Mx");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsMyt"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsMyt"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsMyt"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsMyt "][0,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Base My");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsMzt"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsMzt"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsMzt"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsMzt "][0,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Base Mz");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsFxt"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsFxt"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsFxt"][0,-1].ToArray());
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
sig1.LegendText="FAST";
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsFxt "][0,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Base Fx [kN]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsFyt"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsFyt"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsFyt"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsFyt "].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Base Fy");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsFzt"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsFzt"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["TwrBsFzt"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres3["TwrBsFzt "].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Tower Base Fz");
plt.Title("FAST With HawtC");
plt
//#获取HawtC的输出
var hawcres4=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\MBD_Blade Root Loads Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.MBD.out");
hawcres4.Keys
[ Time, RootFxyc B_0, RootFxyc B_1, RootFxyc B_2, RootFxyb B_0, RootFxyb B_1, RootFxyb B_2, RootMxyc B_0, RootMxyc B_1, RootMxyc B_2, RootMxyb B_0, RootMxyb B_1, RootMxyb B_2, RootFxc B_0, RootFxc B_1, RootFxc B_2, RootFyc B_0, RootFyc B_1, RootFyc B_2, RootFzc B_0 ... (29 more) ]
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMxb1"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMxb B_1"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Root Mx [KN*m]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMy1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMy1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMyb1"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMyb B_0"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Root My [KN*m]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMz1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMz1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMzb1"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMzb B_0"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Root Mz [KN*m]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootFx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootFx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootFxb1"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootFxb B_0"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Root Fx [KN]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootFx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootFx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootFyb1"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootFyb B_0"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Root Fy [KN]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootFx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootFx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootFzb1"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootFzb B_0"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Root Fz [KN]");
plt.Title("FAST With HawtC");
plt
//#获取HawtC的输出
var hawcres5=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\AER_Blade Aero Load Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.AER.out");
hawcres5.Keys
[ Time, BkNjFl B_0_N_0, BkNjFl B_0_N_1, BkNjFl B_0_N_15, BkNjFl B_0_N_20, BkNjFl B_0_N_24, BkNjFl B_0_N_31, BkNjFl B_0_N_34, BkNjFl B_0_N_39, BkNjFl B_0_N_44, BkNjFd B_0_N_0, BkNjFd B_0_N_1, BkNjFd B_0_N_15, BkNjFd B_0_N_20, BkNjFd B_0_N_24, BkNjFd B_0_N_31, BkNjFd B_0_N_34, BkNjFd B_0_N_39, BkNjFd B_0_N_44, BkNjMm B_0_N_0 ... (8 more) ]
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N8Fl"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres5["BkNjFl B_0_N_39"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("B1N2Fl ");
plt.Title("FAST With HawtC");
Console.Write((fastres["B1N8Fl"][10000,-1].Max()-hawcres5["BkNjFl B_0_N_39"][10000,-1].Max())/hawcres5["BkNjFl B_0_N_39"][10000,-1].Max()*100);
plt
0.5710196467066706
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N8Fd"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres5["BkNjFd B_0_N_39"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("B1N2Fd ");
plt.Title("FAST With HawtC");
Console.Write((fastres["B1N8Fd"][10000,-1].Max()-hawcres5["BkNjFd B_0_N_39"][10000,-1].Max())/hawcres5["BkNjFd B_0_N_39"][10000,-1].Max()*100);
plt
0.0013524867190464465
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3Mm"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres5["BkNjMm B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("B1N2Mm ");
plt.Title("FAST With HawtC");
plt
//#获取HawtC的输出
var hawcres6=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\AER_Blade Airfoil Inf Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.AER.out");
Otherhelper.Tostring(hawcres6.Keys.ToArray())
Time BkNjPhi B_0_N_0 BkNjPhi B_0_N_1 BkNjPhi B_0_N_15 BkNjPhi B_0_N_20 BkNjPhi B_0_N_24 BkNjPhi B_0_N_31 BkNjPhi B_0_N_34 BkNjPhi B_0_N_39 BkNjPhi B_0_N_44 BkNjVRel B_0_N_0 BkNjVRel B_0_N_1 BkNjVRel B_0_N_15 BkNjVRel B_0_N_20 BkNjVRel B_0_N_24 BkNjVRel B_0_N_31 BkNjVRel B_0_N_34 BkNjVRel B_0_N_39 BkNjVRel B_0_N_44 BkNjTheta B_0_N_0 BkNjTheta B_0_N_1 BkNjTheta B_0_N_15 BkNjTheta B_0_N_20 BkNjTheta B_0_N_24 BkNjTheta B_0_N_31 BkNjTheta B_0_N_34 BkNjTheta B_0_N_39 BkNjTheta B_0_N_44 BkNjAxInd B_0_N_0 BkNjAxInd B_0_N_1 BkNjAxInd B_0_N_15 BkNjAxInd B_0_N_20 BkNjAxInd B_0_N_24 BkNjAxInd B_0_N_31 BkNjAxInd B_0_N_34 BkNjAxInd B_0_N_39 BkNjAxInd B_0_N_44 BkNjTnInd B_0_N_0 BkNjTnInd B_0_N_1 BkNjTnInd B_0_N_15 BkNjTnInd B_0_N_20 BkNjTnInd B_0_N_24 BkNjTnInd B_0_N_31 BkNjTnInd B_0_N_34 BkNjTnInd B_0_N_39 BkNjTnInd B_0_N_44
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N8Phi"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres6["BkNjPhi B_0_N_39"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Phi[deg] ");
plt.Title("FAST With HawtC");
Console.Write((fastres["B1N8Phi"][10000,-1].Max()-hawcres6["BkNjPhi B_0_N_39"][10000,-1].Max())/hawcres6["BkNjPhi B_0_N_39"][10000,-1].Max()*100);
plt
-3.938376637273481
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][8000,-1].ToArray(), fastres["B1N3Theta"][8000,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][8000,-1].ToArray(), hawcres6["BkNjTheta B_0_N_15"][8000,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Theta[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3VRel"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres6["BkNjVRel B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Vrel[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3AxInd"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres6["BkNjAxInd B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("AxInd[m/s]");
plt.Title("FAST With HawtC");
plt
fastres["B1N5AxInd"][0]
0.05432
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3TnInd"][1,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres6["BkNjTnInd B_0_N_15"][1,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("TnInd[m/s]");
plt.Title("FAST With HawtC");
plt
//#获取HawtC的输出
var hawcres7=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\AER_Blade Aero Inf Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.AER.out");
Otherhelper.Tostring(hawcres7.Keys.ToArray<string>())
Time BkNjVUndx B_0_N_0 BkNjVUndx B_0_N_1 BkNjVUndx B_0_N_15 BkNjVUndx B_0_N_20 BkNjVUndx B_0_N_24 BkNjVUndx B_0_N_31 BkNjVUndx B_0_N_34 BkNjVUndx B_0_N_39 BkNjVUndx B_0_N_44 BkNjVUndy B_0_N_0 BkNjVUndy B_0_N_1 BkNjVUndy B_0_N_15 BkNjVUndy B_0_N_20 BkNjVUndy B_0_N_24 BkNjVUndy B_0_N_31 BkNjVUndy B_0_N_34 BkNjVUndy B_0_N_39 BkNjVUndy B_0_N_44 BkNjVUndz B_0_N_0 BkNjVUndz B_0_N_1 BkNjVUndz B_0_N_15 BkNjVUndz B_0_N_20 BkNjVUndz B_0_N_24 BkNjVUndz B_0_N_31 BkNjVUndz B_0_N_34 BkNjVUndz B_0_N_39 BkNjVUndz B_0_N_44 BkNjVDisx B_0_N_0 BkNjVDisx B_0_N_1 BkNjVDisx B_0_N_15 BkNjVDisx B_0_N_20 BkNjVDisx B_0_N_24 BkNjVDisx B_0_N_31 BkNjVDisx B_0_N_34 BkNjVDisx B_0_N_39 BkNjVDisx B_0_N_44 BkNjVDisy B_0_N_0 BkNjVDisy B_0_N_1 BkNjVDisy B_0_N_15 BkNjVDisy B_0_N_20 BkNjVDisy B_0_N_24 BkNjVDisy B_0_N_31 BkNjVDisy B_0_N_34 BkNjVDisy B_0_N_39 BkNjVDisy B_0_N_44 BkNjVDisz B_0_N_0 BkNjVDisz B_0_N_1 BkNjVDisz B_0_N_15 BkNjVDisz B_0_N_20 BkNjVDisz B_0_N_24 BkNjVDisz B_0_N_31 BkNjVDisz B_0_N_34 BkNjVDisz B_0_N_39 BkNjVDisz B_0_N_44 BkNjSTVx B_0_N_0 BkNjSTVx B_0_N_1 BkNjSTVx B_0_N_15 BkNjSTVx B_0_N_20 BkNjSTVx B_0_N_24 BkNjSTVx B_0_N_31 BkNjSTVx B_0_N_34 BkNjSTVx B_0_N_39 BkNjSTVx B_0_N_44 BkNjSTVy B_0_N_0 BkNjSTVy B_0_N_1 BkNjSTVy B_0_N_15 BkNjSTVy B_0_N_20 BkNjSTVy B_0_N_24 BkNjSTVy B_0_N_31 BkNjSTVy B_0_N_34 BkNjSTVy B_0_N_39 BkNjSTVy B_0_N_44 BkNjSTVz B_0_N_0 BkNjSTVz B_0_N_1 BkNjSTVz B_0_N_15 BkNjSTVz B_0_N_20 BkNjSTVz B_0_N_24 BkNjSTVz B_0_N_31 BkNjSTVz B_0_N_34 BkNjSTVz B_0_N_39 BkNjSTVz B_0_N_44 BPitch B_0 BAzimuth B_0
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N1VUndx"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjVUndx B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("VUndx[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3VUndy"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjVUndy B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("VUndy[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3VUndz"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjVUndz B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("VUndz[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var fastdata=(fastres["B1N3VUndx"].PointwisePower(2)+fastres["B1N3VUndy"].PointwisePower(2)+fastres["B1N3VUndz"].PointwisePower(2)).PointwiseSqrt();
var Hawtdata=(hawcres7["BkNjVUndx B_0_N_15"].PointwisePower(2)+
hawcres7["BkNjVUndy B_0_N_15"].PointwisePower(2)+
hawcres7["BkNjVUndz B_0_N_15"].PointwisePower(2)).PointwiseSqrt();
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastdata.ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), Hawtdata.ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("VUndz[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var fastdata= (fastres["B1N3VUndy"].PointwiseDivide(fastres["B1N3VUndx"])).PointwiseAtan();
var Hawtdata=(hawcres7["BkNjVUndy B_0_N_15"].PointwiseDivide(hawcres7["BkNjVUndx B_0_N_15"])).PointwiseAtan();//(hawcres7["BkNjVUndx B_0_N_15"].PointwisePower(2)+
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastdata.ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), Hawtdata.ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("spp[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3VDisx"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjVDisx B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("VDisx[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3VDisy"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjVDisy B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("VDisy[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3VDisz"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjVDisz B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("VDisz[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3STVx"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjSTVx B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("STVx[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3STVy"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjSTVy B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("STVy[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1N3STVz"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BkNjSTVz B_0_N_15"].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("STVz[m/s]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][6000,-1].ToArray(), fastres["B1Pitch"][6000,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][6000,-1].ToArray(), hawcres7["BPitch B_0"][6000,-1].ToArray());
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("BPitch[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["B1Azimuth"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres7["BAzimuth B_0"].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("BAzimuth[deg]");
plt.Title("FAST With HawtC");
plt
2.0943951023931953*180/Math.PI
119.99999999999999
//#获取HawtC的输出
var hawcres8=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\MBD_Freedom Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.MBD.out");
Otherhelper.Tostring(hawcres8.Keys.ToArray<string>())
Time QD2_B1E1 QD2_B1F1 QD2_B1F2 QD2_B2E1 QD2_B2F1 QD2_B2F2 QD2_B3E1 QD2_B3F1 QD2_B3F2 QD2_DRTR QD2_GEAZ QD2_HV QD2_P QD2_R QD2_RFRL QD2_SG QD2_SW QD2_TFA1 QD2_TFA2 QD2_TFRL QD2_TSS1 QD2_TSS2 QD2_Y QD2_BTMD B_0 QD2_BTMD B_1 QD2_BTMD B_2 QD2_YAW QD_B1E1 QD_B1F1 QD_B1F2 QD_B2E1 QD_B2F1 QD_B2F2 QD_B3E1 QD_B3F1 QD_B3F2 QD_DRTR QD_GEAZ QD_HV QD_P QD_R QD_RFRL QD_SG QD_SW QD_TFA1 QD_TFA2 QD_TFRL QD_TSS1 QD_TSS2 QD_Y QD_BTMD B_0 QD_BTMD B_1 QD_BTMD B_2 QD_YAW Q_B1E1 Q_B1F1 Q_B1F2 Q_B2E1 Q_B2F1 Q_B2F2 Q_B3E1 Q_B3F1 Q_B3F2 Q_DRTR Q_GEAZ Q_HV Q_P Q_R Q_RFRL Q_SG Q_SW Q_TFA1 Q_TFA2 Q_TFRL Q_TSS1 Q_TSS2 Q_Y Q_YAW Q_BTMD B_0 Q_BTMD B_1 Q_BTMD B_2 Q_TTMD QD_TTMD QD2_TTMD
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), fastres["QD_B1E1"][4800,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), hawcres8["QD_B1E1 "][4800,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("BAzimuth[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), fastres["QD_B1F1"][4800,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), hawcres8["QD_B1F1 "][4800,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("QD_B1F1[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), fastres["QD_B1F2"][4800,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), hawcres8["QD_B1F2 "][4800,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("QD_B1F2[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["QD_GeAz"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres8["QD_GEAZ "][0,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("GEAZ[deg]");
plt.Title("FAST With HawtC");
plt
fastres["Q_GeAz"][0]*180.0/3.1415926-180
89.97771767096725
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["Q_GeAz"].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres8["Q_GEAZ "].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("GEAZ[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), fastres["QD_TFA1"][4800,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), hawcres8["QD_TFA1 "][4800,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("QD_TFA1");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][4800,9800].ToArray(), fastres["QD_TFA2"][4800,9800].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][4800,9800].ToArray(), hawcres8["QD_TFA2 "][4800,9800].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("GEAZ[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), fastres["QD_TSS1"][4800,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), hawcres8["QD_TSS1 "][4800,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("GEAZ[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), fastres["QD_TSS2"][4800,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"][4800,-1].ToArray(), hawcres8["QD_TSS2 "][4800,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("GEAZ[deg]");
plt.Title("FAST With HawtC");
plt
//#获取HawtC的输出
var hawcres8=OpenWECD.APIL.PostAPI.PstAPI.MBDApi_GetFileDATADirectory(@"G:\2026\OpenhastV7\demo\openhast_x64\IEA_15MW_onshore\TESTRES\Hast_Land_15MWBaseLine_PowerProduction\\CON_Pitch Control And Generator Control Openhast 15MW_Land_BaseLine_LinearBlade_NTM11.0.CON.out");
Otherhelper.Tostring(hawcres8.Keys.ToArray<string>())
Time BlPitchC B_0 BlPitchC B_2 GenTq GenPwr
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["GenPwr"][0,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres8["GenPwr "][0,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Power[deg]");
plt.Title("FAST With HawtC");
plt
ScottPlot.Plot plt = new();
// plt.Add.Scatter(fastres["Time"].ToArray(), fastres["RootMx1"].ToArray());
// plt.Add.Scatter(fastres["Time"].ToArray(), hawcres4["RootMx1"].ToArray());
var sig1=plt.Add.Scatter(fastres["Time"].ToArray(), fastres["GenTq"][4800,-1].ToArray());
sig1.LegendText="FAST";
sig1.MarkerSize=0.0f;
sig1.LineWidth=1.8f;
var sig2=plt.Add.Scatter(fastres["Time"].ToArray(), hawcres8["GenTq "][4800,-1].ToArray());//BAzimuth B_0
sig2.LegendText="HawtC";
sig2.MarkerSize=0.0f;
sig2.LineWidth=1.8f;
plt.XLabel("Time[s]");
plt.YLabel("Power[deg]");
plt.Title("FAST With HawtC");
plt
180.0/18000.0
0.01