Fortran Coder

查看: 11578|回复: 2
打印 上一主题 下一主题

[求助] 想用Fortran写一个时间-坐标的函数

[复制链接]

7

帖子

3

主题

0

精华

入门

F 币
48 元
贡献
25 点
跳转到指定楼层
楼主
发表于 2020-5-8 01:51:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

如图所示,是一个几十个周期的函数,延O1-L1-O2-R1-O3----一直运动,需要用fortran写好子程序,将该路径嵌入到其他软件中,有没有大佬有比较好的思路来编写这个时间-坐标函数啊?万分感激,上方和下方的圆点代表在该点出停留0.2s,中间的圆点代表在该点停留0.1s (图中笔误),O1-L1的时间是0.05s,L1-O2的时间也是0.05s,每一小段折线的时间都是0.05s。跪求大佬提供个思路。谢谢。下面是我写的一个周期(O1-O3)的坐标-时间函数,因为周期数太多,不可能一直这么些下去,之前没接触过Fortran,跪求大佬可以给个思路,万分感谢!

[Fortran] 纯文本查看 复制代码
      t1=0.05
      t2=0.25
      t3=0.30
      t4=0.40
      t5=0.45
      t6=0.65
      t7=0.70
      t8=0.80
      x1=0
      y1=0
      z1=0
      if(t<t1)then
      x2=x1+0.01*t
      y2=y1+0.16*t
      z2=z1
      endif
      if(t1<t .and. t<t2)then
      x2=x1+0.0005
      y2=y1+0.008
      z2=z1
      endif
      if(t2<t .and. t<t3)then
      x2=x1+0.0005+0.01*(t-t2)
      y2=y1+0.008-0.16*(t-t2)
      z2=z1
      endif
      if(t3<t .and. t<t4)then
      x2=x1+0.001
      y2=y1
      z2=z1
      endif
      if(t4<t .and. t<t5)then
      x2=x1+0.001+0.01*(t-t4)
      y2=y1-0.16*(t-t4)
      z2=z1
      endif
      if(t5<t .and. t<t6)then
      x2=x1+0.0015
      y2=y1-0.008
      z2=z1
      endif
      if(t6<t .and. t<t7)then
      x2=x1+0.0015+0.01*(t-t6)
      y2=y1-0.008+0.16*(t-t6)
      z2=z1
      endif
      if(t7<t .and. t<t8)then
      x2=x1+0.002
      y2=y1
      z2=z1
      endif


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

798

帖子

2

主题

0

精华

大宗师

F 币
3793 元
贡献
2268 点
沙发
发表于 2020-5-8 08:57:21 | 只看该作者
周期函数,t先除以周期T0,n=t/T0,再取余数 t=mod(t,t0), 然后用余数参与上述计算,所得结果加上 x=x+n*0.002

7

帖子

3

主题

0

精华

入门

F 币
48 元
贡献
25 点
板凳
 楼主| 发表于 2020-5-8 16:59:16 | 只看该作者
li913 发表于 2020-5-8 08:57
周期函数,t先除以周期T0,n=t/T0,再取余数 t=mod(t,t0), 然后用余数参与上述计算,所得结果加上 x=x+n*0. ...

谢谢谢谢,我去学习一下,十分感谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-25 14:46

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表