33 lines
1.2 KiB
Go
33 lines
1.2 KiB
Go
|
package main
|
|||
|
|
|||
|
import "log/slog"
|
|||
|
|
|||
|
func main() {
|
|||
|
a1 := calculateAvgAcc(136960.88, 24.41978)
|
|||
|
a2 := calculateAvgAcc(34874, 14.97515)
|
|||
|
slog.Info("根据位移和时间计算平均加速度", "通号平均加速度", a1, "动力学平均加速度", a2)
|
|||
|
avt1 := calculateAvgAccByV(6.94444, 24.41978)
|
|||
|
avt2 := calculateAvgAccByV(6.94444, 14.97515)
|
|||
|
slog.Info("根据速度和时间计算平均加速度", "通号平均加速度", avt1, "动力学平均加速度", avt2)
|
|||
|
s1 := calculateS(0.28437766432762146, 24.41978)
|
|||
|
s2 := calculateS(0.46373090147972107, 14.97515)
|
|||
|
slog.Info("根据加速度和时间计算位移", "通号最小位移", s1, "动力学最小位移", s2)
|
|||
|
slog.Info("实际位移", "通号实际位移差", 136960.88-s1, "动力学实际位移差", 34874-s2)
|
|||
|
}
|
|||
|
|
|||
|
// 根据位移和时间计算平均加速度(初始速度为0)
|
|||
|
// s单位为mm,t单位为s
|
|||
|
func calculateAvgAcc(s float32, t float32) float32 {
|
|||
|
return 2 * s / (t * t) / 1000
|
|||
|
}
|
|||
|
|
|||
|
// 根据速度和时间计算平均加速度(初始速度为0)
|
|||
|
func calculateAvgAccByV(v float32, t float32) float32 {
|
|||
|
return v / t
|
|||
|
}
|
|||
|
|
|||
|
// 根据加速度和时间计算位移(初始速度为0)
|
|||
|
func calculateS(a float32, t float32) float32 {
|
|||
|
return 0.5 * a * t * t * 1000
|
|||
|
}
|