3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

学生ロケットで動翼を作ってみたーソフトウェア編ー

3
Last updated at Posted at 2026-08-17

自己紹介

こんにちは!東京科学大学ロケットサークルCREATE電装班です。
我々CREATEは、ハイブリッドロケットの制作・打ち上げを行う東京科学大学のものつくり系公認サークルです。ロケットを通じて、学生団体・ものづくり技術者としての限界を超えるべく日々開発に励んでいます。
ロケットは約1~2年の開発期間を経て完成されます。機体には目標が設定され、例えば到達高度の高高度化や機体の姿勢制御など高難易度なものも含まれます。
CREATEにはロケット・宇宙好きの人はもちろん,航空機・エンジンに興味がある人や単にものづくりがしたいという人まで在籍しています。工学院のみならず理学院から生命理工学院まで幅広い専攻の学生が集まっていることも特徴です。
そしてその中でも電装班ではロケットのパラシュートの開傘、気圧・加速度データの記録・ダウンリンクなどの仕事を行っています。
現在、最上級生が中心となって、C99Lというロケットを開発しています。C-99Lの大きな特徴の一つが、飛行中にフィンの角度を変える「動翼」による姿勢制御です。

今回は、実際のロケットに搭載するプログラムについて紹介します。
前回のハードウェアの紹介も合わせてご覧ください。
https://qiita.com/CREATE/items/4cb43e1fe435bc805491

ミッション基板の紹介

左側はKiCad上の基板レイアウト、右側は部品実装後の実物です。円形の基板外形は、機体内部の円筒形状に合わせています。

ミッション基板 img_1456_1024.jpg
KiCad上の基板レイアウト 部品実装後のミッション基板

このミッション基板の制作費のご支援をJLCPCB様からいただきました。
IMG_0838.JPG

基幹プログラムについて

ロケットの飛行に関する基本的なプログラムについて紹介します。
ロケットのプログラムの流れとしては以下のようになっています。

  1. ロケットが飛び始めたら離床検知する。
  2. タイマーでエンジン燃焼終了後から動翼の制御を開始する。
  3. 頂点に達したら頂点検知を行い,動翼制御を停止し,減速機構(パラシュート)を開放する。
  4. ロケットが着水する。

まず、ロケットが離床したことを検知するために、以下の条件で判定を行ないます。

条件①

0.001秒ごとに加速度センサから各軸の値を取得する。この各軸の値のそれぞれ20回分の平均をとり、それらの2乗の合計が4G^2を50回連続で超えたとき。

条件②

0.04秒ごとに気圧センサから値を取得する。この値のそれぞれ5回分の平均をとった際、前回の値より0.05hPa小さいことが5回連続で起きたとき。

上記の条件のいずれかが満たされたとき、その1秒前を離床時刻とします。検知に1秒かかるためです。

その後、以下の条件に基づいて、パラシュートを開放します。

条件①

離床時刻から10秒経過し、0.04秒ごとに取得した気圧センサの値5回分の平均値をとり、その平均値が前回の平均値より高い状態が1秒間連続したとき。

条件②

離床時刻から17秒経過したとき。

いずれかの条件を満たした場合、パラシュートの開放を行います。

制御プログラムについて

動翼の制御は離床検知から8秒後、つまりエンジンの燃焼終了後に行います。
制御はロケットのロール角φ、動翼の角度θをもとに現代制御で行います。
それぞれの角度の取得方法を紹介します。
ロール角は機体についている角速度計の値もとにピッチ、ロール、ヨー角に変換して計算します。
動翼の角度は前回紹介した自作エンコーダの角度を減速比で割って求めます。

6078_1024.jpg
自作エンコーダ付きDCモータ

現代制御で必要な動翼角がもとまったら、モータに適切な電圧をPWM制御で与えることで制御を行います。

現代制御とは

状態変数xを
image.png
と定義します.$\phi$は機体のロール角,$\theta$は動翼の角度,$\dot\phi$は機体のロール角速度,$\dot\theta$は動翼の角速度の変数です.このxを用いて
$\dot x=A x+Bu$
$ y=C x$
を状態方程式とよびこの更新式を用いて制御を行います.
uは入力を表しています.
このプロジェクトではゲインFを用いて$u=-Fx$として最適制御で制御を行っています.

JLCPCB様での発注方法

  1. 作りたい基板をCADで設計する。スクリーンショット 2026-03-16 12.49.39.png

  2. 完成したらgbrファイルを作成する。(ファイル→製造用出力→gbrファイル)スクリーンショット 2026-03-16 12.50.15.png

  3. 「ドリルファイルを生成」→「生成」を押して、ドリルファイルを生成する。設定項目はデフォルトで基本的に問題ない。(Kicadのプロジェクトファイルと同じところに生成される)スクリーンショット 2026-03-16 12.53.29.png

  4. 「プロット」を押して、ファイルを生成する。(これらも同じようにプロジェクトファイルに生成される)

  5. 今作成したすべてのファイルを一つのフォルダにまとめて、zip圧縮する。

  6. JLCPCBのサイトを検索して開く。

  7. アカウントを持っていない場合作成する。(googleアカウントやappleアカウントでログインできるので便利)

  8. 右上の「発注する」ボタンから発注する。

  9. 先ほど作成したzipファイルを「ガーバーファイルをアップロード」のところにアップロードする。
    スクリーンショット 2026-03-16 12.56.05.png

  10. 基板の色など、設定項目を調整する。
    Pasted image 20260316144401.png

  11. JLCPCBでは、クーポンが豊富に用意してあるので、使えるクーポンがないか、確認する。

  12. カートから発注したい基板を選択して次に進む。

  13. 届け先の住所などを入力する。

  14. クレジットカード情報、配送会社の指定などを入力し、料金を払う。

  15. プリントが開始されると、メールが来るので確認する。(基板設計にミスがあると、知らせてくれます)

  16. 約1-2週間後に基板が届く。
    Pasted image 20260316144742.png

感想

JLCPCB様のいちばんの魅力は気軽に発注できるところであると感じました。フリーソフトのKiCadで基板を作成することができ、KiCadからJLCPCB様で発注するまでの手順も簡単です。さらに一番魅力的なのが、基板発注だけなら日本円で約500円で5枚も発注できることです。基板の製作は配線ミスなどで何回か発注しなくてはいけない場面などが出てきます。その時に安く発注できることで開発の効率が大幅に上がっています。JLCPCB様いつもありがとうございます。

是非JLCPCBで発注してみましょう!

JLCPCB様のサイトを活用すると簡単に基板制作に取り組めます。是非新たに基板製作に挑戦しようとしている方はJLCPCBを活用してみてください。
IMG_0838.JPG

下のリンクからお得なクーポンをゲットできます。
https://jlcpcb.com/JPV
また、日本のユーザーには$123クーポンと多くの割引があります。
jlcpcb.com/jp?from=discountjp

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?