質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Q&A

0回答

2156閲覧

MATLAB 二階の微分方程式系のプログラムの組み方

risaco.

総合スコア0

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

0グッド

0クリップ

投稿2020/05/05 12:49

前提・実現したいこと

MATLAB simulink にある自動車サスペンションのプログラムで、PSO(粒子群最適化)を適用したいと考えています。(URL:https://jp.mathworks.com/help/simulink/slref/automotive-suspension.html)

方法としては、以下の二階の微分方程式系を解き、particleswarm関数に適用させてみようと考えています。
![イメージ説明   イメージ説明

発生している問題・エラーメッセージ

以下のようなプログラムを組みました。実行は問題なくできたのですが、導出された解は t の式ではなく z や、係数の C1 などが残ってしまいます。また、式の途中に「4116, z, 1」などが出てきてしまい、式としても完全な形ではないです。

該当のソースコード

matlab

1kf = 28000; 2Lf = 0.9; 3cf = 2500; 4kr = 21000; 5Lr = 1.2; 6cr = 2000; 7mb = 1200; 8Iyy = 2100; 9My = 100; 10g = 9.81; 11 12syms z(t) tht(t) 13Dz = diff(z); 14Dtht = diff(tht); 15Ff = 2*kf*(Lf*tht-z)+2*cf*(Lf*Dtht-Dz); 16Mf = -Lf*Ff; 17Fr = -2*kr*(Lr*tht+z)-2*cr*(Lr*Dtht-Dz); 18Mr = Lr*Fr; 19 20ode1 = diff(z,t,2) == (1/mb)*(Ff + Fr - mb*g); 21ode2 = diff(tht,t,2) == (1/Iyy)*(Mf + Mr + My); 22odes = [ode1;ode2]; 23 24cond1 = z(0) == 0; 25cond2 = Dz(0) == 0; 26cond3 = tht(0) == 0; 27cond4 = Dtht(0) == 0; 28conds = [cond1;cond2;cond3;cond4]; 29[zSol(t), thtSol(t)] = dsolve(odes,conds) 30zSol = simplify(zSol) 31thtSol = simplify(thtSol)

試したこと

・初期条件(cond1~cond4)
元々はcond1・cond2のみ使用していましたが、二階なのでcond3・cond4を増やしました。

・式の単純化
simplify関数を使用しなくても解は導出されましたが、式が長くなってしまったため、追加しました。

補足情報(FW/ツールのバージョンなど)

・MATLAB 2019b
・Symbolic Math Toolbox の使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問