diff --git a/BT40-ER16-090.Holder b/BT40-ER16-090.Holder
index 4308158..04f07ae 100644
--- a/BT40-ER16-090.Holder
+++ b/BT40-ER16-090.Holder
@@ -2,7 +2,7 @@
default
BT40-ER16-090
-
+
(0,25)
(36.5,25)
(36.5,44.5)
@@ -10,4 +10,10 @@
(106.6,40)
(136.44,40)
+
+
+ 0.5
+ 5
+
+
\ No newline at end of file
diff --git a/CuttingParameter/S50C.mp b/CuttingParameter/S50C.mp
new file mode 100644
index 0000000..e374c03
--- /dev/null
+++ b/CuttingParameter/S50C.mp
@@ -0,0 +1,12 @@
+
+
+ S50C
+ S50C-fine-outlier-0.2. Built on 2025-01-17.
+ 781.9193047583416
+ 534.2515063930691
+ -1341.4299667097694
+ 12.488024348568263
+ 19.81313632613896
+ -20.852754261520523
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-2-fine-0.3.mp b/Output/S50C-2-fine-0.3.mp
new file mode 100644
index 0000000..6a95da3
--- /dev/null
+++ b/Output/S50C-2-fine-0.3.mp
@@ -0,0 +1,10 @@
+
+
+ S50C-2-fine-0.3.mp
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 55.68%; FilteredSampleNum = 634500
+ 835.9393964937811
+ -1715.130695335738
+ 2.6644883557656196
+ 25.33143525147404
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-3-fine-0.01.mp b/Output/S50C-3-fine-0.01.mp
new file mode 100644
index 0000000..bef008a
--- /dev/null
+++ b/Output/S50C-3-fine-0.01.mp
@@ -0,0 +1,12 @@
+
+
+ S50C-3-fine-0.01.mp
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 95.60%; FilteredSampleNum = 897480
+ 756.0011397107872
+ 578.1852014605149
+ -1269.635543586671
+ 12.937742653493165
+ 20.98247082327636
+ -20.584080069799537
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-3-fine-0.1.mp b/Output/S50C-3-fine-0.1.mp
new file mode 100644
index 0000000..21cae5d
--- /dev/null
+++ b/Output/S50C-3-fine-0.1.mp
@@ -0,0 +1,12 @@
+
+
+ S50C-3-fine-0.1.mp
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 97.18%; FilteredSampleNum = 815940
+ 780.3669554854422
+ 596.9316596203435
+ -1310.417015838393
+ 12.391230831194346
+ 20.907192079571796
+ -19.681727830259238
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-3-fine-0.3.mp b/Output/S50C-3-fine-0.3.mp
new file mode 100644
index 0000000..84b1fa0
--- /dev/null
+++ b/Output/S50C-3-fine-0.3.mp
@@ -0,0 +1,12 @@
+
+
+ S50C-3-fine-0.3.mp
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 97.28%; FilteredSampleNum = 634500
+ 763.3180746167471
+ 566.0043676932464
+ -1287.559686419554
+ 11.883071961513604
+ 21.802523813110582
+ -19.372653671987635
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-3-test-0.0001.mp b/Output/S50C-3-test-0.0001.mp
new file mode 100644
index 0000000..141fb9e
--- /dev/null
+++ b/Output/S50C-3-test-0.0001.mp
@@ -0,0 +1,12 @@
+
+
+ S50C-3-test-0.0001.mp
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 94.76%; FilteredSampleNum = 1814757
+ 764.3643665468655
+ 583.164258920612
+ -1282.345636177419
+ 13.756805454814529
+ 22.056273893144933
+ -21.96725029340066
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-3-test-0.01.mp b/Output/S50C-3-test-0.01.mp
new file mode 100644
index 0000000..14a0f9a
--- /dev/null
+++ b/Output/S50C-3-test-0.01.mp
@@ -0,0 +1,12 @@
+
+
+ S50C-3-test-0.01.mp
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 95.59%; FilteredSampleNum = 1797444
+ 779.5872688486478
+ 596.28930993024
+ -1309.5868403168329
+ 13.324542326012962
+ 21.64485174584508
+ -21.192715147229002
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-fine-0.05.mp b/Output/S50C-fine-0.05.mp
new file mode 100644
index 0000000..64bc559
--- /dev/null
+++ b/Output/S50C-fine-0.05.mp
@@ -0,0 +1,10 @@
+
+
+ S50C-fine-0.05.mp
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 60.40%; FilteredSampleNum = 861300
+ 619.7559292263653
+ -1542.9923942107466
+ 16.215754378180414
+ 10.991111697078493
+ 8
+
\ No newline at end of file
diff --git a/Output/S50C-fine-Copy-00.mp b/Output/S50C-fine-Copy-00.mp
deleted file mode 100644
index 1d5e3e1..0000000
--- a/Output/S50C-fine-Copy-00.mp
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- S50C-fine.mp
-
- 781.9193047583416
- 534.2515063930691
- -1341.4299667097694
- 12.488024348568263
- 19.81313632613896
- -20.852754261520523
- NaN
-
\ No newline at end of file
diff --git a/Output/S50C-fine.mp b/Output/S50C-fine.mp
index 1d5e3e1..57cf89f 100644
--- a/Output/S50C-fine.mp
+++ b/Output/S50C-fine.mp
@@ -1,12 +1,12 @@
-
-
+
+
S50C-fine.mp
-
- 781.9193047583416
- 534.2515063930691
- -1341.4299667097694
- 12.488024348568263
- 19.81313632613896
- -20.852754261520523
- NaN
-
\ No newline at end of file
+ SampleFlags = Fx, Fy, Fz; Correlation Coefficient R = 97.19%; FilteredSampleNum = 725220
+ 767.4540541691283
+ 577.5625378331987
+ -1295.7562085248198
+ 12.105248061444964
+ 21.088662078505013
+ -19.446881671931408
+ 8
+
\ No newline at end of file
diff --git a/S50C.hincproj b/S50C.hincproj
index a2579e8..364c1d0 100644
--- a/S50C.hincproj
+++ b/S50C.hincproj
@@ -1,13 +1,182 @@
-
-
+
+
-
+
EmptyMachine.mt
-
+
SpindleCapability/test3.SpindleCapability
+
+ P-SE0604 (Speed Tiger)
+
+ BT40-ER16-090.Holder
+
+
+
+
+
+ SolidEnd
+
+
+
+
+ 6
+ 0
+ 16
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (16,3)
+ (50,3)
+
+
+
+
+ 0.015625
+ 15
+
+
+ 4
+
+
+ 0
+
+
+ 35
+ 8
+ 5
+
+
+
+
+
+
+
+
+
+ WC-Co6-800nm
+
+ 600
+ 0
+ 1440
+ 6.7
+ 70
+ 0.34
+ 14.95
+ 3143.16
+ 400
+ 0.44
+
+ 17500
+ 14800
+ 12500
+ 10000
+
+
+ 1.19
+ 1.86
+ 7.1
+ 25.7
+
+
+
+
+
+ WC-Co6-800nm
+
+ 600
+ 0
+ 1440
+ 6.7
+ 70
+ 0.34
+ 14.95
+ 3143.16
+ 400
+ 0.44
+
+ 17500
+ 14800
+ 12500
+ 10000
+
+
+ 1.19
+ 1.86
+ 7.1
+ 25.7
+
+
+
+
+
+
+
+ TiAlN
+ Titanium Aluminum Nitride Coating
+ 500
+ 0.25
+ 1350
+ 7.5
+ 25
+ 0.55
+ 4.2
+ 3273
+ 380
+ 0.35
+
+ 25000
+ 21000
+ 17000
+ 13000
+
+
+ 0.9
+ 1.3
+ 4.8
+ 18.5
+
+ 3
+
+
+ 0.003
+
+
+ 16.806603351650548
+ 30
+ 5
+
+
+ true
+ 2
+ true
+ true
+ 0
+ 999
+
+
+
+
+ 21
+ SpindleBuckleAnc
+ -56.6
+ 44.5
+
@@ -21,9 +190,12 @@
-
+
+
+
+
-
+
@@ -47,44 +219,37 @@
-
-
- AA7075 (update on 20241219)
- AA7075 (update on 20241219) exp on 2017
- 347.79177234887237
- 1605.0902189483
- -1481.6923735052892
- 0.6751705314777301
- 0.9948729460349305
- -0.7964217170018251
- NaN
-
-
+
+ CuttingParameter/S50C.mp
+
- WorkpieceMaterial/FC30.WorkpieceMaterial
+ WorkpieceMaterial/S50C.WorkpieceMaterial
-
- 25
- 1000
-
+ 25
+
+ 25
+ 1000
+
-
-
+
+
-
+
P-SE0604 (Speed Tiger)
BT40-ER16-090.Holder
- SolidEnd
+
+
+ SolidEnd
@@ -107,7 +272,7 @@
-
+
(16,3)
(50,3)
@@ -134,7 +299,7 @@
-
+
WC-Co6-800nm
@@ -142,7 +307,7 @@
0
1440
6.7
- 70
+ 70
0.34
14.95
3143.16
@@ -161,7 +326,35 @@
25.7
-
+
+
+
+ WC-Co6-800nm
+
+ 600
+ 0
+ 1440
+ 6.7
+ 70
+ 0.34
+ 14.95
+ 3143.16
+ 400
+ 0.44
+
+ 17500
+ 14800
+ 12500
+ 10000
+
+
+ 1.19
+ 1.86
+ 7.1
+ 25.7
+
+
+
@@ -172,7 +365,7 @@
0.25
1350
7.5
- 25
+ 25
0.55
4.2
3273
@@ -196,33 +389,35 @@
0.003
- 16.806603351650548
+ 16.806603351650548
30
5
-
+
true
2
true
+ true
0
999
-
+
- 5
+ 21
SpindleBuckleAnc
-56.6
44.5
-
+
-
+
Fanuc
(0, 0, 0)
-
+ (0, 0, 0)
+ (0, 0, 0)
true
@@ -237,18 +432,18 @@
false
true
false
-
+
- (INF, INF, INF)
- (-INF, -INF, -INF)
+ (-INF, -INF, -INF)
+ (INF, INF, INF)
-
-
+
+
- (INF, INF, INF)
- (-INF, -INF, -INF)
+ (-INF, -INF, -INF)
+ (INF, INF, INF)
-
+
(60, 60, 60)
60000
20000
@@ -276,22 +471,36 @@
-
+
+
+ LineBeginCsScript
+ LineEndCsScript
+ MC.
+ CL.
+ ToolId
+ SpindleSpeed_rpm
+ Spd.Dir.
+ Feedrate_mmdmin
+ StepDuration
+ ActualTime
+
+
+
-
+
+ true
train
////一般設定////
-MillingForceCycleDivisionNum=180;
+MillingForceCycleDivisionNum=360;
MachiningResolution=0.125/8;
-DispCache_Mb = 860; //GRAM暫存空間 (Mb)
MachiningMotionResolution = FeedPerTooth;
EnableCollisionDetection = false; //是否啟用碰撞檢測開啟
EnablePauseOnCollision = false; //是否啟用碰撞發生時暫停
-EnableMillingForceEvaluation=true;
+DefaultParaTemplateDimension=3;
ClearTimeMappingData();
string dynamometerFile=$"./Managed/dynamometer-S50C/Exp09/Exp09.csv";
@@ -305,18 +514,18 @@ AddTimeDataByFile("high3",dynamometerFile,66.8694,67.2146);
//WriteRuntimeGeom("Cache/raw.wct"); //寫入暫存檔
//ReadRuntimeGeom("Cache/raw.wct"); //讀取暫存檔
-RunNcFile("NC/lines.nc");
+PlayNcFile("NC/lines.nc");
-TrainMillingPara(Fx|Fy|Fz, "Output/S50C-fine.mp",0.2);
+var outlierRatio=0.1;
+TrainMillingPara(Fx|Fy|Fz, $"Output/S50C-{DefaultParaTemplateDimension}-fine-{outlierRatio}.mp",outlierRatio);
- true
-
+
-
+
@@ -366,15 +575,15 @@ TrainMillingPara(Fx|Fy|Fz, "Output/S50C-fine.mp",0.2);
false
- false
+ false
+ true
- true
- true
false
-
+
+ 35
TrainingErrRatio
@@ -617,5 +826,4 @@ TrainMillingPara(Fx|Fy|Fz, "Output/S50C-fine.mp",0.2);
- 860
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/SpindleCapability/test3.SpindleCapability b/SpindleCapability/test3.SpindleCapability
index ed2b258..1c3fdfe 100644
--- a/SpindleCapability/test3.SpindleCapability
+++ b/SpindleCapability/test3.SpindleCapability
@@ -4,8 +4,10 @@
0.4
4000.0000000000005
-
-
+ 4.82
+ 90
+
+
0
0
@@ -23,7 +25,7 @@
2.5
-
+
0
0
@@ -41,7 +43,7 @@
5
-
+
0
0
@@ -59,9 +61,9 @@
3
-
-
-
+
+
+
0
50
@@ -91,5 +93,5 @@
5
-
+
\ No newline at end of file
diff --git a/WorkpieceMaterial/FC30.WorkpieceMaterial b/WorkpieceMaterial/FC30.WorkpieceMaterial
index bbbb723..a7eec62 100644
--- a/WorkpieceMaterial/FC30.WorkpieceMaterial
+++ b/WorkpieceMaterial/FC30.WorkpieceMaterial
@@ -8,7 +8,7 @@
200
0.01
0.46
- 52
+ 52
7.2
220
1150
diff --git a/WorkpieceMaterial/S50C.WorkpieceMaterial b/WorkpieceMaterial/S50C.WorkpieceMaterial
new file mode 100644
index 0000000..61e81f7
--- /dev/null
+++ b/WorkpieceMaterial/S50C.WorkpieceMaterial
@@ -0,0 +1,15 @@
+
+
+ S50C
+
+ 205
+ 0.28
+ 580
+ 540
+ 0.16
+ 0.49
+ 50
+ 7.85
+ 270
+ 1495
+
\ No newline at end of file
diff --git a/test-err-ratio.hincproj b/test-err-ratio.hincproj
new file mode 100644
index 0000000..7fe6def
--- /dev/null
+++ b/test-err-ratio.hincproj
@@ -0,0 +1,661 @@
+
+
+
+
+
+ EmptyMachine.mt
+
+
+ SpindleCapability/test3.SpindleCapability
+
+
+
+
+
+
+
+
+ (-45, -70, 0)
+ (45, 70, 10)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.125
+
+
+
+
+
+ (0, 0, -30)
+ (90, 140, 0)
+
+
+
+
+
+
+
+
+
+
+
+
+ CuttingParameter/S50C.mp
+
+
+ WorkpieceMaterial/S50C.WorkpieceMaterial
+
+
+
+
+
+
+ 25
+
+ 25
+ 1000
+
+
+
+
+
+
+
+ P-SE0604 (Speed Tiger)
+
+ BT40-ER16-090.Holder
+
+
+
+
+
+ SolidEnd
+
+
+
+
+ 6
+ 0
+ 16
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (16,3)
+ (50,3)
+
+
+
+
+ 0.015625
+ 15
+
+
+ 4
+
+
+ 0
+
+
+ 35
+ 8
+ 5
+
+
+
+
+
+
+
+
+
+ WC-Co6-800nm
+
+ 600
+ 0
+ 1440
+ 6.7
+ 70
+ 0.34
+ 14.95
+ 3143.16
+ 400
+ 0.44
+
+ 17500
+ 14800
+ 12500
+ 10000
+
+
+ 1.19
+ 1.86
+ 7.1
+ 25.7
+
+
+
+
+
+ WC-Co6-800nm
+
+ 600
+ 0
+ 1440
+ 6.7
+ 70
+ 0.34
+ 14.95
+ 3143.16
+ 400
+ 0.44
+
+ 17500
+ 14800
+ 12500
+ 10000
+
+
+ 1.19
+ 1.86
+ 7.1
+ 25.7
+
+
+
+
+
+
+
+ TiAlN
+ Titanium Aluminum Nitride Coating
+ 500
+ 0.25
+ 1350
+ 7.5
+ 25
+ 0.55
+ 4.2
+ 3273
+ 380
+ 0.35
+
+ 25000
+ 21000
+ 17000
+ 13000
+
+
+ 0.9
+ 1.3
+ 4.8
+ 18.5
+
+ 3
+
+
+ 0.003
+
+
+ 16.806603351650548
+ 30
+ 5
+
+
+ true
+ 2
+ true
+ true
+ 0
+ 999
+
+
+
+
+ 21
+ SpindleBuckleAnc
+ -56.6
+ 44.5
+
+
+
+
+
+
+ Fanuc
+ (0, 0, 0)
+ (0, 0, 0)
+ (0, 0, 0)
+ true
+
+
+
+ 3
+ 0
+ 157.44
+ 0
+
+
+
+ false
+ true
+ false
+
+
+ (-INF, -INF, -INF)
+ (INF, INF, INF)
+
+
+
+
+ (-INF, -INF, -INF)
+ (INF, INF, INF)
+
+
+ (60, 60, 60)
+ 60000
+ 20000
+ PT0S
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LineBeginCsScript
+ LineEndCsScript
+ MC.
+ CL.
+ ToolId
+ SpindleSpeed_rpm
+ Spd.Dir.
+ Feedrate_mmdmin
+ StepDuration
+ ActualTime
+
+
+
+
+
+
+ true
+
+
+ train
+ ////一般設定////
+MillingForceCycleDivisionNum=360;
+MachiningResolution=0.125/8;
+MachiningMotionResolution = FeedPerTooth;
+EnableCollisionDetection = false; //是否啟用碰撞檢測開啟
+EnablePauseOnCollision = false; //是否啟用碰撞發生時暫停
+
+DefaultParaTemplateDimension=3;
+ClearTimeMappingData();
+
+string dynamometerFile=$"./Managed/dynamometer-S50C/Exp09/Exp09.csv";
+
+AddTimeDataByFile("low1",dynamometerFile,16.4726,21.6107);
+AddTimeDataByFile("low2",dynamometerFile,39.5988,42.2784);
+AddTimeDataByFile("low3",dynamometerFile,51.9493,53.7441);
+AddTimeDataByFile("high1",dynamometerFile,60.0392,60.9723);
+AddTimeDataByFile("high2",dynamometerFile,64.3404,64.8226);
+AddTimeDataByFile("high3",dynamometerFile,66.8694,67.2146);
+
+//WriteRuntimeGeom("Cache/raw.wct"); //寫入暫存檔
+//ReadRuntimeGeom("Cache/raw.wct"); //讀取暫存檔
+PlayNcFile("NC/lines.nc");
+
+var outlierRatio=0.01;
+TrainMillingPara(Fx|Fy|Fz, $"Output/S50C-{DefaultParaTemplateDimension}-test-{outlierRatio}.mp",outlierRatio);
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ./Managed/dynamometer-S50C/Exp09/Exp09.csv
+ 00:00:16.4726000
+ 00:00:21.6107000
+
+
+
+
+ ./Managed/dynamometer-S50C/Exp09/Exp09.csv
+ 00:00:39.5988000
+ 00:00:42.2784000
+
+
+
+
+ ./Managed/dynamometer-S50C/Exp09/Exp09.csv
+ 00:00:51.9493000
+ 00:00:53.7441000
+
+
+
+
+ ./Managed/dynamometer-S50C/Exp09/Exp09.csv
+ 00:01:00.0392000
+ 00:01:00.9723000
+
+
+
+
+ ./Managed/dynamometer-S50C/Exp09/Exp09.csv
+ 00:01:04.3404000
+ 00:01:04.8226000
+
+
+
+
+ ./Managed/dynamometer-S50C/Exp09/Exp09.csv
+ 00:01:06.8694000
+ 00:01:07.2146000
+
+
+
+
+
+
+
+ true
+ false
+ false
+ true
+ false
+ false
+
+
+
+ 35
+
+
+ TrainingErrRatio
+
+
+
+
+ TrainingErrRatio
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+ Linear
+ 0
+ 2
+
+
+
+
+
+
+
+ Linear
+ 0
+ 1
+
+
+
+
+
+
+
+
+ Fit
+
+ -400
+ 400
+
+ ForceToToolOnToolRunningCoordinate
+
+
+
+
+
+ Fit
+
+ -10
+ 10
+
+
+
+
+
+
+
+ Fit
+
+ -10
+ 10
+
+
+
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+ Fit
+
+ 0
+ 1
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file