csvファイルのデータを用いた計算

19 visualizaciones (últimos 30 días)
SHOTA TOMIYAMA
SHOTA TOMIYAMA el 25 de Mayo de 2021
Respondida: Naoya el 28 de Mayo de 2021
function xt = Displacementforced(t,x)
m = 1;
k = 1;
c =0.2;
a = 0.005;
omega = 1;
xt = [x(2);-c/m.*(x(2)-a*omega*cos(omega*t))-k/m.*(x(1)-a*sin(omega*t))]
x0 = [0;0];
t = [0:0.1:30];
[T X] = ode45('Displacementforced',t,x0);
plot(T,X);
xlabel('time[s]')
ylabel('displacement[m]/velocity[m/s]')
legend('displacement','velocity')
上記のようなばねマスモデルを作成しました.
a*omega*cos(omega*t),a*sin(omega*t)にあたる部分を実験で測定したデータを使用したプログラムに変更したいです.測定データはcsvファイルとなっています.
データのインポートをしてそのまま式にいれたのですが変数が認識されませんとなってしまいました.

Respuesta aceptada

Naoya
Naoya el 28 de Mayo de 2021
ユーザが定義した時刻歴データ(点列のデータ)を微分方程式の外部入力とする場合に該当すると思われますが、関連記事が下記にございますので、一度ご参考頂ければと思います。
上記記事の "2.ode45 等の微分方程式を解く関数を用いる方法" の部分が該当します。
こちらの例では、ユーザが定義した時刻歴データが正弦波の例となっており、こちらをそのまま積分した例となっておりますが、方法としては同じことになります。

Más respuestas (0)

Categorías

Más información sobre プログラミング en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!