前々回は剛体の回転モデル、前回は摩擦力のモデルを練習しました。今回は前2回のモデルを結合し、摩擦のある中を回転する剛体のモデルとしたいと思います。結構「簡素」なモデルのつもりなんだけれども、出来たXcos(Scicos)フローはかなりメンドイです。後でサブブロック化して整理せんとこの先の追加ができんよ。
※「ブロックを積みながら」投稿順 index はこちら
※動作確認にはWindows 11の パソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。
Scilab 2024.0.0
モデルと結合、その想定
前々回「ブロックを積みながら(178) Scilab/Xcos、剛体の回転、回転エネルギーも表示」慣性モーメントMOIを持つ剛体に対してScilab上で「計算した」トルク波形を与えて剛体を回転させたところをアニメーション表示するものでした。トルク、角速度、回転エネルギーなどをグラフ表示。
一方、前回「ブロックを積みながら(179) Scilab/Xcos、摩擦力、動き始めと止まるところメンド」では、物体とそれを置いた面の間の静止摩擦係数、動摩擦係数、物体質量と重力加速度からもとまる摩擦力に対して、押す力Fの波形をScilab上から与えて物体の動きをグラフにしました。
今回は以下の想定で上記2つの結果を結合したモデルとしました。
-
- 物体はある回転軸の周りに回転できる「剛体」、質量M[kg]、所定の回転軸を中心とする回転モーメントはM*r2 で与えられるものとする。r はモデル上の物体の半径r [m]
- 物体は平面上に置かれており、物体には重力加速度 g [m/s2]がかかっている。
- 物体、平面間の静止摩擦係数は mus、動摩擦係数は mud とする。
- 物体に対して駆動力F [N](Scilab本体からインポート)がかかるが、Fが摩擦力を越えなければ物体は回転しない。摩擦力を越えると、そのトルクにより角速度ω [rad/s] になる回転を始める。駆動力が0になると摩擦力が物体の回転速度を減じ、そのうち物体の回転は停止する。
さて、上記想定にて作成のXcos(Scicos)フローが以下に。上半分は前々回のフローを若干改造したもの。下半分が前回のフローを若干改造したもの。
シミュレーション設定
まず、Scilab上で定義した力Fの波形が以下に。これは前回利用の波形と同じです。
F.time = (0:10)'; F.values = [0; 0.2; 2; 2; 0.2; 0; 0; 0; 0; 0; 0];
今回も実時間スケールが2倍としてあるので、実時間で10秒のシミュレーションを20秒かけてスローモーション表示することになります。ただし、アニメーションの回転は「棒が回るばかりのぜんぜんスペクタキュラーじゃないもの」なので省略っす。
シミュレーション結果
まあ予定通りか。大丈夫か?